react-dom 19.1.0 → 19.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,12 +41,17 @@
41
41
  function scriptReplacer(match, prefix, s, suffix) {
42
42
  return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix;
43
43
  }
44
+ function getIteratorFn(maybeIterable) {
45
+ if (null === maybeIterable || "object" !== typeof maybeIterable)
46
+ return null;
47
+ maybeIterable =
48
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
49
+ maybeIterable["@@iterator"];
50
+ return "function" === typeof maybeIterable ? maybeIterable : null;
51
+ }
44
52
  function objectName(object) {
45
- return Object.prototype.toString
46
- .call(object)
47
- .replace(/^\[object (.*)\]$/, function (m, p0) {
48
- return p0;
49
- });
53
+ object = Object.prototype.toString.call(object);
54
+ return object.slice(8, object.length - 1);
50
55
  }
51
56
  function describeKeyForErrorMessage(key) {
52
57
  var encodedKey = JSON.stringify(key);
@@ -758,79 +763,71 @@
758
763
  moduleScriptResources: {}
759
764
  };
760
765
  }
761
- function createPreambleState() {
762
- return {
763
- htmlChunks: null,
764
- headChunks: null,
765
- bodyChunks: null,
766
- contribution: NoContribution
767
- };
768
- }
769
- function createFormatContext(insertionMode, selectedValue, tagScope) {
766
+ function createFormatContext(
767
+ insertionMode,
768
+ selectedValue,
769
+ tagScope,
770
+ viewTransition
771
+ ) {
770
772
  return {
771
773
  insertionMode: insertionMode,
772
774
  selectedValue: selectedValue,
773
- tagScope: tagScope
775
+ tagScope: tagScope,
776
+ viewTransition: viewTransition
774
777
  };
775
778
  }
776
779
  function getChildFormatContext(parentContext, type, props) {
780
+ var subtreeScope = parentContext.tagScope & -25;
777
781
  switch (type) {
778
782
  case "noscript":
779
- return createFormatContext(
780
- HTML_MODE,
781
- null,
782
- parentContext.tagScope | 1
783
- );
783
+ return createFormatContext(HTML_MODE, null, subtreeScope | 1, null);
784
784
  case "select":
785
785
  return createFormatContext(
786
786
  HTML_MODE,
787
787
  null != props.value ? props.value : props.defaultValue,
788
- parentContext.tagScope
788
+ subtreeScope,
789
+ null
789
790
  );
790
791
  case "svg":
791
- return createFormatContext(SVG_MODE, null, parentContext.tagScope);
792
+ return createFormatContext(SVG_MODE, null, subtreeScope, null);
792
793
  case "picture":
793
- return createFormatContext(
794
- HTML_MODE,
795
- null,
796
- parentContext.tagScope | 2
797
- );
794
+ return createFormatContext(HTML_MODE, null, subtreeScope | 2, null);
798
795
  case "math":
799
- return createFormatContext(MATHML_MODE, null, parentContext.tagScope);
796
+ return createFormatContext(MATHML_MODE, null, subtreeScope, null);
800
797
  case "foreignObject":
801
- return createFormatContext(HTML_MODE, null, parentContext.tagScope);
798
+ return createFormatContext(HTML_MODE, null, subtreeScope, null);
802
799
  case "table":
803
- return createFormatContext(
804
- HTML_TABLE_MODE,
805
- null,
806
- parentContext.tagScope
807
- );
800
+ return createFormatContext(HTML_TABLE_MODE, null, subtreeScope, null);
808
801
  case "thead":
809
802
  case "tbody":
810
803
  case "tfoot":
811
804
  return createFormatContext(
812
805
  HTML_TABLE_BODY_MODE,
813
806
  null,
814
- parentContext.tagScope
807
+ subtreeScope,
808
+ null
815
809
  );
816
810
  case "colgroup":
817
811
  return createFormatContext(
818
812
  HTML_COLGROUP_MODE,
819
813
  null,
820
- parentContext.tagScope
814
+ subtreeScope,
815
+ null
821
816
  );
822
817
  case "tr":
823
818
  return createFormatContext(
824
819
  HTML_TABLE_ROW_MODE,
825
820
  null,
826
- parentContext.tagScope
821
+ subtreeScope,
822
+ null
827
823
  );
828
824
  case "head":
829
825
  if (parentContext.insertionMode < HTML_MODE)
830
826
  return createFormatContext(
831
827
  HTML_HEAD_MODE,
832
828
  null,
833
- parentContext.tagScope
829
+ subtreeScope,
830
+ null
834
831
  );
835
832
  break;
836
833
  case "html":
@@ -838,13 +835,56 @@
838
835
  return createFormatContext(
839
836
  HTML_HTML_MODE,
840
837
  null,
841
- parentContext.tagScope
838
+ subtreeScope,
839
+ null
842
840
  );
843
841
  }
844
842
  return parentContext.insertionMode >= HTML_TABLE_MODE ||
845
843
  parentContext.insertionMode < HTML_MODE
846
- ? createFormatContext(HTML_MODE, null, parentContext.tagScope)
847
- : parentContext;
844
+ ? createFormatContext(HTML_MODE, null, subtreeScope, null)
845
+ : parentContext.tagScope !== subtreeScope
846
+ ? createFormatContext(
847
+ parentContext.insertionMode,
848
+ parentContext.selectedValue,
849
+ subtreeScope,
850
+ null
851
+ )
852
+ : parentContext;
853
+ }
854
+ function getSuspenseViewTransition(parentViewTransition) {
855
+ return null === parentViewTransition
856
+ ? null
857
+ : {
858
+ update: parentViewTransition.update,
859
+ enter: "none",
860
+ exit: "none",
861
+ share: parentViewTransition.update,
862
+ name: parentViewTransition.autoName,
863
+ autoName: parentViewTransition.autoName,
864
+ nameIdx: 0
865
+ };
866
+ }
867
+ function getSuspenseFallbackFormatContext(resumableState, parentContext) {
868
+ parentContext.tagScope & 32 && (resumableState.instructions |= 128);
869
+ return createFormatContext(
870
+ parentContext.insertionMode,
871
+ parentContext.selectedValue,
872
+ parentContext.tagScope | 12,
873
+ getSuspenseViewTransition(parentContext.viewTransition)
874
+ );
875
+ }
876
+ function getSuspenseContentFormatContext(resumableState, parentContext) {
877
+ resumableState = getSuspenseViewTransition(parentContext.viewTransition);
878
+ var subtreeScope = parentContext.tagScope | 16;
879
+ null !== resumableState &&
880
+ "none" !== resumableState.share &&
881
+ (subtreeScope |= 64);
882
+ return createFormatContext(
883
+ parentContext.insertionMode,
884
+ parentContext.selectedValue,
885
+ subtreeScope,
886
+ resumableState
887
+ );
848
888
  }
849
889
  function pushStyleAttribute(target, style) {
850
890
  if ("object" !== typeof style)
@@ -1347,13 +1387,26 @@
1347
1387
  return content;
1348
1388
  }
1349
1389
  function injectFormReplayingRuntime(resumableState, renderState) {
1350
- (resumableState.instructions & 16) === NothingSent &&
1351
- ((resumableState.instructions |= 16),
1352
- renderState.bootstrapChunks.unshift(
1353
- renderState.startInlineScript,
1354
- formReplayingRuntimeScript,
1355
- "\x3c/script>"
1356
- ));
1390
+ if ((resumableState.instructions & 16) === NothingSent) {
1391
+ resumableState.instructions |= 16;
1392
+ var preamble = renderState.preamble,
1393
+ bootstrapChunks = renderState.bootstrapChunks;
1394
+ (preamble.htmlChunks || preamble.headChunks) &&
1395
+ 0 === bootstrapChunks.length
1396
+ ? (bootstrapChunks.push(renderState.startInlineScript),
1397
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
1398
+ bootstrapChunks.push(
1399
+ endOfStartTag,
1400
+ formReplayingRuntimeScript,
1401
+ endInlineScript
1402
+ ))
1403
+ : bootstrapChunks.unshift(
1404
+ renderState.startInlineScript,
1405
+ endOfStartTag,
1406
+ formReplayingRuntimeScript,
1407
+ endInlineScript
1408
+ );
1409
+ }
1357
1410
  }
1358
1411
  function pushLinkImpl(target, props) {
1359
1412
  target.push(startChunkForTag("link"));
@@ -1538,8 +1591,7 @@
1538
1591
  preambleState,
1539
1592
  hoistableState,
1540
1593
  formatContext,
1541
- textEmbedded,
1542
- isFallback
1594
+ textEmbedded
1543
1595
  ) {
1544
1596
  validateProperties$2(type, props);
1545
1597
  ("input" !== type && "textarea" !== type && "select" !== type) ||
@@ -2160,8 +2212,8 @@
2160
2212
  } else JSCompiler_inline_result$jscomp$3 = children$jscomp$5;
2161
2213
  return JSCompiler_inline_result$jscomp$3;
2162
2214
  case "title":
2163
- var insertionMode = formatContext.insertionMode,
2164
- noscriptTagInScope = !!(formatContext.tagScope & 1);
2215
+ var noscriptTagInScope = formatContext.tagScope & 1,
2216
+ isFallback = formatContext.tagScope & 4;
2165
2217
  if (hasOwnProperty.call(props, "children")) {
2166
2218
  var children$jscomp$6 = props.children,
2167
2219
  child = Array.isArray(children$jscomp$6)
@@ -2190,7 +2242,7 @@
2190
2242
  ));
2191
2243
  }
2192
2244
  if (
2193
- insertionMode === SVG_MODE ||
2245
+ formatContext.insertionMode === SVG_MODE ||
2194
2246
  noscriptTagInScope ||
2195
2247
  null != props.itemProp
2196
2248
  )
@@ -2205,12 +2257,14 @@
2205
2257
  (JSCompiler_inline_result$jscomp$4 = void 0));
2206
2258
  return JSCompiler_inline_result$jscomp$4;
2207
2259
  case "link":
2208
- var rel = props.rel,
2260
+ var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1,
2261
+ isFallback$jscomp$0 = formatContext.tagScope & 4,
2262
+ rel = props.rel,
2209
2263
  href = props.href,
2210
2264
  precedence = props.precedence;
2211
2265
  if (
2212
2266
  formatContext.insertionMode === SVG_MODE ||
2213
- formatContext.tagScope & 1 ||
2267
+ noscriptTagInScope$jscomp$0 ||
2214
2268
  null != props.itemProp ||
2215
2269
  "string" !== typeof rel ||
2216
2270
  "string" !== typeof href ||
@@ -2311,12 +2365,13 @@
2311
2365
  props
2312
2366
  ))
2313
2367
  : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
2314
- (JSCompiler_inline_result$jscomp$5 = isFallback
2368
+ (JSCompiler_inline_result$jscomp$5 = isFallback$jscomp$0
2315
2369
  ? null
2316
2370
  : pushLinkImpl(renderState.hoistableChunks, props)));
2317
2371
  return JSCompiler_inline_result$jscomp$5;
2318
2372
  case "script":
2319
- var asyncProp = props.async;
2373
+ var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1,
2374
+ asyncProp = props.async;
2320
2375
  if (
2321
2376
  "string" !== typeof props.src ||
2322
2377
  !props.src ||
@@ -2326,7 +2381,7 @@
2326
2381
  props.onLoad ||
2327
2382
  props.onError ||
2328
2383
  formatContext.insertionMode === SVG_MODE ||
2329
- formatContext.tagScope & 1 ||
2384
+ noscriptTagInScope$jscomp$1 ||
2330
2385
  null != props.itemProp
2331
2386
  )
2332
2387
  var JSCompiler_inline_result$jscomp$6 = pushScriptImpl(
@@ -2364,8 +2419,7 @@
2364
2419
  }
2365
2420
  return JSCompiler_inline_result$jscomp$6;
2366
2421
  case "style":
2367
- var insertionMode$jscomp$0 = formatContext.insertionMode,
2368
- noscriptTagInScope$jscomp$0 = !!(formatContext.tagScope & 1);
2422
+ var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1;
2369
2423
  if (hasOwnProperty.call(props, "children")) {
2370
2424
  var children$jscomp$7 = props.children,
2371
2425
  child$jscomp$0 = Array.isArray(children$jscomp$7)
@@ -2386,10 +2440,11 @@
2386
2440
  );
2387
2441
  }
2388
2442
  var precedence$jscomp$0 = props.precedence,
2389
- href$jscomp$0 = props.href;
2443
+ href$jscomp$0 = props.href,
2444
+ nonce = props.nonce;
2390
2445
  if (
2391
- insertionMode$jscomp$0 === SVG_MODE ||
2392
- noscriptTagInScope$jscomp$0 ||
2446
+ formatContext.insertionMode === SVG_MODE ||
2447
+ noscriptTagInScope$jscomp$2 ||
2393
2448
  null != props.itemProp ||
2394
2449
  "string" !== typeof precedence$jscomp$0 ||
2395
2450
  "string" !== typeof href$jscomp$0 ||
@@ -2455,47 +2510,64 @@
2455
2510
  'React encountered a hoistable style tag for the same href as a preload: "%s". When using a style tag to inline styles you should not also preload it as a stylsheet.',
2456
2511
  href$jscomp$0
2457
2512
  );
2458
- styleQueue$jscomp$0
2459
- ? styleQueue$jscomp$0.hrefs.push(
2460
- escapeTextForBrowser(href$jscomp$0)
2461
- )
2462
- : ((styleQueue$jscomp$0 = {
2463
- precedence: escapeTextForBrowser(precedence$jscomp$0),
2464
- rules: [],
2465
- hrefs: [escapeTextForBrowser(href$jscomp$0)],
2466
- sheets: new Map()
2467
- }),
2468
- renderState.styles.set(
2513
+ styleQueue$jscomp$0 ||
2514
+ ((styleQueue$jscomp$0 = {
2515
+ precedence: escapeTextForBrowser(precedence$jscomp$0),
2516
+ rules: [],
2517
+ hrefs: [],
2518
+ sheets: new Map()
2519
+ }),
2520
+ renderState.styles.set(
2521
+ precedence$jscomp$0,
2522
+ styleQueue$jscomp$0
2523
+ ));
2524
+ var nonceStyle = renderState.nonce.style;
2525
+ if (nonceStyle && nonceStyle !== nonce)
2526
+ console.error(
2527
+ 'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include rules if the nonce matches the style nonce "%s" that was included with this render.',
2528
+ precedence$jscomp$0,
2529
+ nonce,
2530
+ nonceStyle
2531
+ );
2532
+ else {
2533
+ !nonceStyle &&
2534
+ nonce &&
2535
+ console.error(
2536
+ 'React encountered a style tag with `precedence` "%s" and `nonce` "%s". When React manages style rules using `precedence` it will only include a nonce attributes if you also provide the same style nonce value as a render option.',
2469
2537
  precedence$jscomp$0,
2470
- styleQueue$jscomp$0
2471
- ));
2472
- var target = styleQueue$jscomp$0.rules,
2473
- children$jscomp$9 = null,
2474
- innerHTML$jscomp$6 = null,
2475
- propKey$jscomp$9;
2476
- for (propKey$jscomp$9 in props)
2477
- if (hasOwnProperty.call(props, propKey$jscomp$9)) {
2478
- var propValue$jscomp$9 = props[propKey$jscomp$9];
2479
- if (null != propValue$jscomp$9)
2480
- switch (propKey$jscomp$9) {
2481
- case "children":
2482
- children$jscomp$9 = propValue$jscomp$9;
2483
- break;
2484
- case "dangerouslySetInnerHTML":
2485
- innerHTML$jscomp$6 = propValue$jscomp$9;
2486
- }
2487
- }
2488
- var child$jscomp$2 = Array.isArray(children$jscomp$9)
2489
- ? 2 > children$jscomp$9.length
2490
- ? children$jscomp$9[0]
2491
- : null
2492
- : children$jscomp$9;
2493
- "function" !== typeof child$jscomp$2 &&
2494
- "symbol" !== typeof child$jscomp$2 &&
2495
- null !== child$jscomp$2 &&
2496
- void 0 !== child$jscomp$2 &&
2497
- target.push(escapeStyleTextContent(child$jscomp$2));
2498
- pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$9);
2538
+ nonce
2539
+ );
2540
+ styleQueue$jscomp$0.hrefs.push(
2541
+ escapeTextForBrowser(href$jscomp$0)
2542
+ );
2543
+ var target = styleQueue$jscomp$0.rules,
2544
+ children$jscomp$9 = null,
2545
+ innerHTML$jscomp$6 = null,
2546
+ propKey$jscomp$9;
2547
+ for (propKey$jscomp$9 in props)
2548
+ if (hasOwnProperty.call(props, propKey$jscomp$9)) {
2549
+ var propValue$jscomp$9 = props[propKey$jscomp$9];
2550
+ if (null != propValue$jscomp$9)
2551
+ switch (propKey$jscomp$9) {
2552
+ case "children":
2553
+ children$jscomp$9 = propValue$jscomp$9;
2554
+ break;
2555
+ case "dangerouslySetInnerHTML":
2556
+ innerHTML$jscomp$6 = propValue$jscomp$9;
2557
+ }
2558
+ }
2559
+ var child$jscomp$2 = Array.isArray(children$jscomp$9)
2560
+ ? 2 > children$jscomp$9.length
2561
+ ? children$jscomp$9[0]
2562
+ : null
2563
+ : children$jscomp$9;
2564
+ "function" !== typeof child$jscomp$2 &&
2565
+ "symbol" !== typeof child$jscomp$2 &&
2566
+ null !== child$jscomp$2 &&
2567
+ void 0 !== child$jscomp$2 &&
2568
+ target.push(escapeStyleTextContent(child$jscomp$2));
2569
+ pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$9);
2570
+ }
2499
2571
  }
2500
2572
  styleQueue$jscomp$0 &&
2501
2573
  hoistableState &&
@@ -2505,9 +2577,11 @@
2505
2577
  }
2506
2578
  return JSCompiler_inline_result$jscomp$7;
2507
2579
  case "meta":
2580
+ var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1,
2581
+ isFallback$jscomp$1 = formatContext.tagScope & 4;
2508
2582
  if (
2509
2583
  formatContext.insertionMode === SVG_MODE ||
2510
- formatContext.tagScope & 1 ||
2584
+ noscriptTagInScope$jscomp$3 ||
2511
2585
  null != props.itemProp
2512
2586
  )
2513
2587
  var JSCompiler_inline_result$jscomp$8 = pushSelfClosing(
@@ -2517,7 +2591,7 @@
2517
2591
  );
2518
2592
  else
2519
2593
  textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"),
2520
- (JSCompiler_inline_result$jscomp$8 = isFallback
2594
+ (JSCompiler_inline_result$jscomp$8 = isFallback$jscomp$1
2521
2595
  ? null
2522
2596
  : "string" === typeof props.charSet
2523
2597
  ? pushSelfClosing(renderState.charsetChunks, props, "meta")
@@ -2580,17 +2654,18 @@
2580
2654
  target$jscomp$0.push(leadingNewline);
2581
2655
  return children$jscomp$10;
2582
2656
  case "img":
2583
- var src = props.src,
2657
+ var pictureOrNoScriptTagInScope = formatContext.tagScope & 3,
2658
+ src = props.src,
2584
2659
  srcSet = props.srcSet;
2585
2660
  if (
2586
2661
  !(
2587
2662
  "lazy" === props.loading ||
2588
2663
  (!src && !srcSet) ||
2589
2664
  ("string" !== typeof src && null != src) ||
2590
- ("string" !== typeof srcSet && null != srcSet)
2665
+ ("string" !== typeof srcSet && null != srcSet) ||
2666
+ "low" === props.fetchPriority ||
2667
+ pictureOrNoScriptTagInScope
2591
2668
  ) &&
2592
- "low" !== props.fetchPriority &&
2593
- !1 === !!(formatContext.tagScope & 3) &&
2594
2669
  ("string" !== typeof src ||
2595
2670
  ":" !== src[4] ||
2596
2671
  ("d" !== src[0] && "D" !== src[0]) ||
@@ -2604,6 +2679,9 @@
2604
2679
  ("t" !== srcSet[2] && "T" !== srcSet[2]) ||
2605
2680
  ("a" !== srcSet[3] && "A" !== srcSet[3]))
2606
2681
  ) {
2682
+ null !== hoistableState &&
2683
+ formatContext.tagScope & 64 &&
2684
+ (hoistableState.suspenseyImages = !0);
2607
2685
  var sizes = "string" === typeof props.sizes ? props.sizes : void 0,
2608
2686
  key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src,
2609
2687
  promotablePreloads = renderState.preloads.images,
@@ -2695,6 +2773,7 @@
2695
2773
  var preamble = preambleState || renderState.preamble;
2696
2774
  if (preamble.headChunks)
2697
2775
  throw Error("The `<head>` tag may only be rendered once.");
2776
+ null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e");
2698
2777
  preamble.headChunks = [];
2699
2778
  var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement(
2700
2779
  preamble.headChunks,
@@ -2713,6 +2792,7 @@
2713
2792
  var preamble$jscomp$0 = preambleState || renderState.preamble;
2714
2793
  if (preamble$jscomp$0.bodyChunks)
2715
2794
  throw Error("The `<body>` tag may only be rendered once.");
2795
+ null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e");
2716
2796
  preamble$jscomp$0.bodyChunks = [];
2717
2797
  var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement(
2718
2798
  preamble$jscomp$0.bodyChunks,
@@ -2731,6 +2811,7 @@
2731
2811
  var preamble$jscomp$1 = preambleState || renderState.preamble;
2732
2812
  if (preamble$jscomp$1.htmlChunks)
2733
2813
  throw Error("The `<html>` tag may only be rendered once.");
2814
+ null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e");
2734
2815
  preamble$jscomp$1.htmlChunks = [doctypeChunk];
2735
2816
  var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement(
2736
2817
  preamble$jscomp$1.htmlChunks,
@@ -2814,16 +2895,13 @@
2814
2895
  renderState = renderState.preamble;
2815
2896
  null === renderState.htmlChunks &&
2816
2897
  preambleState.htmlChunks &&
2817
- ((renderState.htmlChunks = preambleState.htmlChunks),
2818
- (preambleState.contribution |= 1));
2898
+ (renderState.htmlChunks = preambleState.htmlChunks);
2819
2899
  null === renderState.headChunks &&
2820
2900
  preambleState.headChunks &&
2821
- ((renderState.headChunks = preambleState.headChunks),
2822
- (preambleState.contribution |= 4));
2901
+ (renderState.headChunks = preambleState.headChunks);
2823
2902
  null === renderState.bodyChunks &&
2824
2903
  preambleState.bodyChunks &&
2825
- ((renderState.bodyChunks = preambleState.bodyChunks),
2826
- (preambleState.contribution |= 2));
2904
+ (renderState.bodyChunks = preambleState.bodyChunks);
2827
2905
  }
2828
2906
  function writeBootstrap(destination, renderState) {
2829
2907
  renderState = renderState.bootstrapChunks;
@@ -2844,13 +2922,6 @@
2844
2922
  destination.push(renderState);
2845
2923
  return destination.push(startPendingSuspenseBoundary2);
2846
2924
  }
2847
- function writePreambleContribution(destination, preambleState) {
2848
- preambleState = preambleState.contribution;
2849
- preambleState !== NoContribution &&
2850
- (destination.push(boundaryPreambleContributionChunkStart),
2851
- destination.push("" + preambleState),
2852
- destination.push(boundaryPreambleContributionChunkEnd));
2853
- }
2854
2925
  function writeStartSegment(destination, renderState, formatContext, id) {
2855
2926
  switch (formatContext.insertionMode) {
2856
2927
  case ROOT_HTML_MODE:
@@ -2991,6 +3062,7 @@
2991
3062
  );
2992
3063
  var i = 0;
2993
3064
  if (hrefs.length) {
3065
+ this.push(currentlyFlushingRenderState.startInlineStyle);
2994
3066
  this.push(lateStyleTagResourceOpen1);
2995
3067
  this.push(styleQueue.precedence);
2996
3068
  for (this.push(lateStyleTagResourceOpen2); i < hrefs.length - 1; i++)
@@ -3016,7 +3088,9 @@
3016
3088
  ) {
3017
3089
  currentlyRenderingBoundaryHasStylesToHoist = !1;
3018
3090
  destinationHasCapacity = !0;
3091
+ currentlyFlushingRenderState = renderState;
3019
3092
  hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination);
3093
+ currentlyFlushingRenderState = null;
3020
3094
  hoistableState.stylesheets.forEach(hasStylesToHoist);
3021
3095
  currentlyRenderingBoundaryHasStylesToHoist &&
3022
3096
  (renderState.stylesToHoist = !0);
@@ -3040,6 +3114,7 @@
3040
3114
  var rules = styleQueue.rules,
3041
3115
  hrefs = styleQueue.hrefs;
3042
3116
  if (!hasStylesheets || hrefs.length) {
3117
+ this.push(currentlyFlushingRenderState.startInlineStyle);
3043
3118
  this.push(styleTagResourceOpen1);
3044
3119
  this.push(styleQueue.precedence);
3045
3120
  styleQueue = 0;
@@ -3088,6 +3163,15 @@
3088
3163
  styleQueue.sheets.forEach(preloadLateStyle, this);
3089
3164
  styleQueue.sheets.clear();
3090
3165
  }
3166
+ function pushCompletedShellIdAttribute(target, resumableState) {
3167
+ (resumableState.instructions & SentCompletedShellId) === NothingSent &&
3168
+ ((resumableState.instructions |= SentCompletedShellId),
3169
+ target.push(
3170
+ completedShellIdAttributeStart,
3171
+ escapeTextForBrowser("_" + resumableState.idPrefix + "R_"),
3172
+ attributeEnd
3173
+ ));
3174
+ }
3091
3175
  function writeStyleResourceDependenciesInJS(destination, hoistableState) {
3092
3176
  destination.push(arrayFirstOpenBracket);
3093
3177
  var nextArrayOpenBrackChunk = arrayFirstOpenBracket;
@@ -3192,7 +3276,7 @@
3192
3276
  destination.push(attributeName);
3193
3277
  }
3194
3278
  function createHoistableState() {
3195
- return { styles: new Set(), stylesheets: new Set() };
3279
+ return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 };
3196
3280
  }
3197
3281
  function preloadBootstrapScriptOrModule(
3198
3282
  resumableState,
@@ -3297,6 +3381,11 @@
3297
3381
  function hoistStylesheetDependency(stylesheet) {
3298
3382
  this.stylesheets.add(stylesheet);
3299
3383
  }
3384
+ function hoistHoistables(parentState, childState) {
3385
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
3386
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
3387
+ childState.suspenseyImages && (parentState.suspenseyImages = !0);
3388
+ }
3300
3389
  function createRenderState(resumableState, generateStaticMarkup) {
3301
3390
  var idPrefix = resumableState.idPrefix,
3302
3391
  bootstrapChunks = [],
@@ -3304,17 +3393,20 @@
3304
3393
  bootstrapScripts = resumableState.bootstrapScripts,
3305
3394
  bootstrapModules = resumableState.bootstrapModules;
3306
3395
  void 0 !== bootstrapScriptContent &&
3396
+ (bootstrapChunks.push("<script"),
3397
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
3307
3398
  bootstrapChunks.push(
3308
- "<script>",
3399
+ endOfStartTag,
3309
3400
  escapeEntireInlineScriptContent(bootstrapScriptContent),
3310
- "\x3c/script>"
3311
- );
3401
+ endInlineScript
3402
+ ));
3312
3403
  idPrefix = {
3313
3404
  placeholderPrefix: idPrefix + "P:",
3314
3405
  segmentPrefix: idPrefix + "S:",
3315
3406
  boundaryPrefix: idPrefix + "B:",
3316
- startInlineScript: "<script>",
3317
- preamble: createPreambleState(),
3407
+ startInlineScript: "<script",
3408
+ startInlineStyle: "<style",
3409
+ preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
3318
3410
  externalRuntimeScript: null,
3319
3411
  bootstrapChunks: bootstrapChunks,
3320
3412
  importMapChunks: [],
@@ -3343,7 +3435,7 @@
3343
3435
  scripts: new Map(),
3344
3436
  moduleScripts: new Map()
3345
3437
  },
3346
- nonce: void 0,
3438
+ nonce: { script: void 0, style: void 0 },
3347
3439
  hoistableState: null,
3348
3440
  stylesToHoist: !1
3349
3441
  };
@@ -3378,18 +3470,25 @@
3378
3470
  ? "use-credentials"
3379
3471
  : ""));
3380
3472
  preloadBootstrapScriptOrModule(resumableState, idPrefix, src, props);
3381
- bootstrapChunks.push('<script src="', escapeTextForBrowser(src));
3473
+ bootstrapChunks.push(
3474
+ '<script src="',
3475
+ escapeTextForBrowser(src),
3476
+ attributeEnd
3477
+ );
3382
3478
  "string" === typeof integrity &&
3383
3479
  bootstrapChunks.push(
3384
- '" integrity="',
3385
- escapeTextForBrowser(integrity)
3480
+ ' integrity="',
3481
+ escapeTextForBrowser(integrity),
3482
+ attributeEnd
3386
3483
  );
3387
3484
  "string" === typeof crossOrigin &&
3388
3485
  bootstrapChunks.push(
3389
- '" crossorigin="',
3390
- escapeTextForBrowser(crossOrigin)
3486
+ ' crossorigin="',
3487
+ escapeTextForBrowser(crossOrigin),
3488
+ attributeEnd
3391
3489
  );
3392
- bootstrapChunks.push('" async="">\x3c/script>');
3490
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState);
3491
+ bootstrapChunks.push(' async="">\x3c/script>');
3393
3492
  }
3394
3493
  if (void 0 !== bootstrapModules)
3395
3494
  for (
@@ -3426,24 +3525,29 @@
3426
3525
  ),
3427
3526
  bootstrapChunks.push(
3428
3527
  '<script type="module" src="',
3429
- escapeTextForBrowser(scriptConfig)
3528
+ escapeTextForBrowser(scriptConfig),
3529
+ attributeEnd
3430
3530
  ),
3431
3531
  "string" === typeof crossOrigin &&
3432
3532
  bootstrapChunks.push(
3433
- '" integrity="',
3434
- escapeTextForBrowser(crossOrigin)
3533
+ ' integrity="',
3534
+ escapeTextForBrowser(crossOrigin),
3535
+ attributeEnd
3435
3536
  ),
3436
3537
  "string" === typeof src &&
3437
3538
  bootstrapChunks.push(
3438
- '" crossorigin="',
3439
- escapeTextForBrowser(src)
3539
+ ' crossorigin="',
3540
+ escapeTextForBrowser(src),
3541
+ attributeEnd
3440
3542
  ),
3441
- bootstrapChunks.push('" async="">\x3c/script>');
3543
+ pushCompletedShellIdAttribute(bootstrapChunks, resumableState),
3544
+ bootstrapChunks.push(' async="">\x3c/script>');
3442
3545
  return {
3443
3546
  placeholderPrefix: idPrefix.placeholderPrefix,
3444
3547
  segmentPrefix: idPrefix.segmentPrefix,
3445
3548
  boundaryPrefix: idPrefix.boundaryPrefix,
3446
3549
  startInlineScript: idPrefix.startInlineScript,
3550
+ startInlineStyle: idPrefix.startInlineStyle,
3447
3551
  preamble: idPrefix.preamble,
3448
3552
  externalRuntimeScript: idPrefix.externalRuntimeScript,
3449
3553
  bootstrapChunks: idPrefix.bootstrapChunks,
@@ -3462,6 +3566,7 @@
3462
3566
  scripts: idPrefix.scripts,
3463
3567
  bulkPreloads: idPrefix.bulkPreloads,
3464
3568
  preloads: idPrefix.preloads,
3569
+ nonce: idPrefix.nonce,
3465
3570
  stylesToHoist: idPrefix.stylesToHoist,
3466
3571
  generateStaticMarkup: generateStaticMarkup
3467
3572
  };
@@ -3517,7 +3622,7 @@
3517
3622
  case REACT_PORTAL_TYPE:
3518
3623
  return "Portal";
3519
3624
  case REACT_CONTEXT_TYPE:
3520
- return (type.displayName || "Context") + ".Provider";
3625
+ return type.displayName || "Context";
3521
3626
  case REACT_CONSUMER_TYPE:
3522
3627
  return (type._context.displayName || "Context") + ".Consumer";
3523
3628
  case REACT_FORWARD_REF_TYPE:
@@ -3666,13 +3771,12 @@
3666
3771
  x >>>= 0;
3667
3772
  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;
3668
3773
  }
3669
- function noop$2() {}
3774
+ function noop() {}
3670
3775
  function trackUsedThenable(thenableState, thenable, index) {
3671
3776
  index = thenableState[index];
3672
3777
  void 0 === index
3673
3778
  ? thenableState.push(thenable)
3674
- : index !== thenable &&
3675
- (thenable.then(noop$2, noop$2), (thenable = index));
3779
+ : index !== thenable && (thenable.then(noop, noop), (thenable = index));
3676
3780
  switch (thenable.status) {
3677
3781
  case "fulfilled":
3678
3782
  return thenable.value;
@@ -3680,7 +3784,7 @@
3680
3784
  throw thenable.reason;
3681
3785
  default:
3682
3786
  "string" === typeof thenable.status
3683
- ? thenable.then(noop$2, noop$2)
3787
+ ? thenable.then(noop, noop)
3684
3788
  : ((thenableState = thenable),
3685
3789
  (thenableState.status = "pending"),
3686
3790
  thenableState.then(
@@ -3883,6 +3987,11 @@
3883
3987
  queue.next = componentIdentity;
3884
3988
  }
3885
3989
  }
3990
+ function throwOnUseEffectEventCall() {
3991
+ throw Error(
3992
+ "A function wrapped in useEffectEvent can't be called during rendering."
3993
+ );
3994
+ }
3886
3995
  function unsupportedStartTransition() {
3887
3996
  throw Error("startTransition cannot be called during server rendering.");
3888
3997
  }
@@ -3966,7 +4075,6 @@
3966
4075
  function unsupportedRefresh() {
3967
4076
  throw Error("Cache cannot be refreshed during server rendering.");
3968
4077
  }
3969
- function noop$1() {}
3970
4078
  function disabledLog() {}
3971
4079
  function disableLogs() {
3972
4080
  if (0 === disabledDepth) {
@@ -4014,6 +4122,27 @@
4014
4122
  "disabledDepth fell below zero. This is a bug in React. Please file an issue."
4015
4123
  );
4016
4124
  }
4125
+ function formatOwnerStack(error) {
4126
+ var prevPrepareStackTrace = Error.prepareStackTrace;
4127
+ Error.prepareStackTrace = void 0;
4128
+ error = error.stack;
4129
+ Error.prepareStackTrace = prevPrepareStackTrace;
4130
+ error.startsWith("Error: react-stack-top-frame\n") &&
4131
+ (error = error.slice(29));
4132
+ prevPrepareStackTrace = error.indexOf("\n");
4133
+ -1 !== prevPrepareStackTrace &&
4134
+ (error = error.slice(prevPrepareStackTrace + 1));
4135
+ prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame");
4136
+ -1 !== prevPrepareStackTrace &&
4137
+ (prevPrepareStackTrace = error.lastIndexOf(
4138
+ "\n",
4139
+ prevPrepareStackTrace
4140
+ ));
4141
+ if (-1 !== prevPrepareStackTrace)
4142
+ error = error.slice(0, prevPrepareStackTrace);
4143
+ else return "";
4144
+ return error;
4145
+ }
4017
4146
  function describeBuiltInComponentFrame(name) {
4018
4147
  if (void 0 === prefix)
4019
4148
  try {
@@ -4186,27 +4315,6 @@
4186
4315
  "function" === typeof fn && componentFrameCache.set(fn, sampleLines);
4187
4316
  return sampleLines;
4188
4317
  }
4189
- function formatOwnerStack(error) {
4190
- var prevPrepareStackTrace = Error.prepareStackTrace;
4191
- Error.prepareStackTrace = void 0;
4192
- error = error.stack;
4193
- Error.prepareStackTrace = prevPrepareStackTrace;
4194
- error.startsWith("Error: react-stack-top-frame\n") &&
4195
- (error = error.slice(29));
4196
- prevPrepareStackTrace = error.indexOf("\n");
4197
- -1 !== prevPrepareStackTrace &&
4198
- (error = error.slice(prevPrepareStackTrace + 1));
4199
- prevPrepareStackTrace = error.indexOf("react-stack-bottom-frame");
4200
- -1 !== prevPrepareStackTrace &&
4201
- (prevPrepareStackTrace = error.lastIndexOf(
4202
- "\n",
4203
- prevPrepareStackTrace
4204
- ));
4205
- if (-1 !== prevPrepareStackTrace)
4206
- error = error.slice(0, prevPrepareStackTrace);
4207
- else return "";
4208
- return error;
4209
- }
4210
4318
  function describeComponentStackByType(type) {
4211
4319
  if ("string" === typeof type) return describeBuiltInComponentFrame(type);
4212
4320
  if ("function" === typeof type)
@@ -4230,13 +4338,26 @@
4230
4338
  }
4231
4339
  return describeComponentStackByType(type);
4232
4340
  }
4233
- if ("string" === typeof type.name)
4234
- return (
4235
- (payload = type.env),
4236
- describeBuiltInComponentFrame(
4237
- type.name + (payload ? " [" + payload + "]" : "")
4238
- )
4239
- );
4341
+ if ("string" === typeof type.name) {
4342
+ a: {
4343
+ payload = type.name;
4344
+ lazyComponent = type.env;
4345
+ type = type.debugLocation;
4346
+ if (null != type) {
4347
+ type = formatOwnerStack(type);
4348
+ var idx = type.lastIndexOf("\n");
4349
+ type = -1 === idx ? type : type.slice(idx + 1);
4350
+ if (-1 !== type.indexOf(payload)) {
4351
+ payload = "\n" + type;
4352
+ break a;
4353
+ }
4354
+ }
4355
+ payload = describeBuiltInComponentFrame(
4356
+ payload + (lazyComponent ? " [" + lazyComponent + "]" : "")
4357
+ );
4358
+ }
4359
+ return payload;
4360
+ }
4240
4361
  }
4241
4362
  switch (type) {
4242
4363
  case REACT_SUSPENSE_LIST_TYPE:
@@ -4246,6 +4367,11 @@
4246
4367
  }
4247
4368
  return "";
4248
4369
  }
4370
+ function isEligibleForOutlining(request, boundary) {
4371
+ return (
4372
+ (500 < boundary.byteSize || !1) && null === boundary.contentPreamble
4373
+ );
4374
+ }
4249
4375
  function defaultErrorHandler(error) {
4250
4376
  if (
4251
4377
  "object" === typeof error &&
@@ -4261,14 +4387,13 @@
4261
4387
  "[%s] " + error[0],
4262
4388
  " " + JSCompiler_inline_result + " "
4263
4389
  )
4264
- : error.splice(0, 0, "[%s] ", " " + JSCompiler_inline_result + " ");
4390
+ : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " ");
4265
4391
  error.unshift(console);
4266
4392
  JSCompiler_inline_result = bind.apply(console.error, error);
4267
4393
  JSCompiler_inline_result();
4268
4394
  } else console.error(error);
4269
4395
  return null;
4270
4396
  }
4271
- function noop() {}
4272
4397
  function RequestInstance(
4273
4398
  resumableState,
4274
4399
  renderState,
@@ -4294,6 +4419,7 @@
4294
4419
  this.fatalError = null;
4295
4420
  this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0;
4296
4421
  this.completedPreambleSegments = this.completedRootSegment = null;
4422
+ this.byteSize = 0;
4297
4423
  this.abortableTasks = abortSet;
4298
4424
  this.pingedTasks = [];
4299
4425
  this.clientRenderedBoundaries = [];
@@ -4364,7 +4490,7 @@
4364
4490
  null,
4365
4491
  emptyTreeContext,
4366
4492
  null,
4367
- !1,
4493
+ null,
4368
4494
  emptyContextObject,
4369
4495
  null
4370
4496
  );
@@ -4380,15 +4506,17 @@
4380
4506
  }
4381
4507
  function createSuspenseBoundary(
4382
4508
  request,
4509
+ row,
4383
4510
  fallbackAbortableTasks,
4384
4511
  contentPreamble,
4385
4512
  fallbackPreamble
4386
4513
  ) {
4387
- return {
4514
+ fallbackAbortableTasks = {
4388
4515
  status: PENDING,
4389
4516
  rootSegmentID: -1,
4390
4517
  parentFlushed: !1,
4391
4518
  pendingTasks: 0,
4519
+ row: row,
4392
4520
  completedSegments: [],
4393
4521
  byteSize: 0,
4394
4522
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -4403,6 +4531,17 @@
4403
4531
  errorStack: null,
4404
4532
  errorComponentStack: null
4405
4533
  };
4534
+ null !== row &&
4535
+ (row.pendingTasks++,
4536
+ (contentPreamble = row.boundaries),
4537
+ null !== contentPreamble &&
4538
+ (request.allPendingTasks++,
4539
+ fallbackAbortableTasks.pendingTasks++,
4540
+ contentPreamble.push(fallbackAbortableTasks)),
4541
+ (request = row.inheritedHoistables),
4542
+ null !== request &&
4543
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
4544
+ return fallbackAbortableTasks;
4406
4545
  }
4407
4546
  function createRenderTask(
4408
4547
  request,
@@ -4418,8 +4557,8 @@
4418
4557
  formatContext,
4419
4558
  context,
4420
4559
  treeContext,
4560
+ row,
4421
4561
  componentStack,
4422
- isFallback,
4423
4562
  legacyContext,
4424
4563
  debugTask
4425
4564
  ) {
@@ -4427,6 +4566,7 @@
4427
4566
  null === blockedBoundary
4428
4567
  ? request.pendingRootTasks++
4429
4568
  : blockedBoundary.pendingTasks++;
4569
+ null !== row && row.pendingTasks++;
4430
4570
  var task = {
4431
4571
  replay: null,
4432
4572
  node: node,
@@ -4443,9 +4583,9 @@
4443
4583
  formatContext: formatContext,
4444
4584
  context: context,
4445
4585
  treeContext: treeContext,
4586
+ row: row,
4446
4587
  componentStack: componentStack,
4447
- thenableState: thenableState,
4448
- isFallback: isFallback
4588
+ thenableState: thenableState
4449
4589
  };
4450
4590
  task.debugTask = debugTask;
4451
4591
  abortSet.add(task);
@@ -4464,8 +4604,8 @@
4464
4604
  formatContext,
4465
4605
  context,
4466
4606
  treeContext,
4607
+ row,
4467
4608
  componentStack,
4468
- isFallback,
4469
4609
  legacyContext,
4470
4610
  debugTask
4471
4611
  ) {
@@ -4473,6 +4613,7 @@
4473
4613
  null === blockedBoundary
4474
4614
  ? request.pendingRootTasks++
4475
4615
  : blockedBoundary.pendingTasks++;
4616
+ null !== row && row.pendingTasks++;
4476
4617
  replay.pendingTasks++;
4477
4618
  var task = {
4478
4619
  replay: replay,
@@ -4490,9 +4631,9 @@
4490
4631
  formatContext: formatContext,
4491
4632
  context: context,
4492
4633
  treeContext: treeContext,
4634
+ row: row,
4493
4635
  componentStack: componentStack,
4494
- thenableState: thenableState,
4495
- isFallback: isFallback
4636
+ thenableState: thenableState
4496
4637
  };
4497
4638
  task.debugTask = debugTask;
4498
4639
  abortSet.add(task);
@@ -4565,6 +4706,27 @@
4565
4706
  }
4566
4707
  return JSCompiler_inline_result$jscomp$0;
4567
4708
  }
4709
+ function pushHaltedAwaitOnComponentStack(task, debugInfo) {
4710
+ if (null != debugInfo)
4711
+ for (var i = debugInfo.length - 1; 0 <= i; i--) {
4712
+ var info = debugInfo[i];
4713
+ if ("string" === typeof info.name) break;
4714
+ if ("number" === typeof info.time) break;
4715
+ if (null != info.awaited) {
4716
+ var bestStack = null == info.debugStack ? info.awaited : info;
4717
+ if (void 0 !== bestStack.debugStack) {
4718
+ task.componentStack = {
4719
+ parent: task.componentStack,
4720
+ type: info,
4721
+ owner: bestStack.owner,
4722
+ stack: bestStack.debugStack
4723
+ };
4724
+ task.debugTask = bestStack.debugTask;
4725
+ break;
4726
+ }
4727
+ }
4728
+ }
4729
+ }
4568
4730
  function pushServerComponentStack(task, debugInfo) {
4569
4731
  if (null != debugInfo)
4570
4732
  for (var i = 0; i < debugInfo.length; i++) {
@@ -4605,6 +4767,18 @@
4605
4767
  pushServerComponentStack(task, node._debugInfo);
4606
4768
  }
4607
4769
  }
4770
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
4771
+ componentStack
4772
+ ) {
4773
+ return null === componentStack
4774
+ ? null
4775
+ : {
4776
+ parent: componentStack.parent,
4777
+ type: "Suspense Fallback",
4778
+ owner: componentStack.owner,
4779
+ stack: componentStack.stack
4780
+ };
4781
+ }
4608
4782
  function getThrownInfo(node$jscomp$0) {
4609
4783
  var errorInfo = {};
4610
4784
  node$jscomp$0 &&
@@ -4676,6 +4850,195 @@
4676
4850
  ? ((request.status = CLOSED), request.destination.destroy(error))
4677
4851
  : ((request.status = 13), (request.fatalError = error));
4678
4852
  }
4853
+ function finishSuspenseListRow(request, row) {
4854
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4855
+ }
4856
+ function unblockSuspenseListRow(
4857
+ request,
4858
+ unblockedRow,
4859
+ inheritedHoistables
4860
+ ) {
4861
+ for (; null !== unblockedRow; ) {
4862
+ null !== inheritedHoistables &&
4863
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4864
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4865
+ var unblockedBoundaries = unblockedRow.boundaries;
4866
+ if (null !== unblockedBoundaries) {
4867
+ unblockedRow.boundaries = null;
4868
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4869
+ var unblockedBoundary = unblockedBoundaries[i];
4870
+ null !== inheritedHoistables &&
4871
+ hoistHoistables(
4872
+ unblockedBoundary.contentState,
4873
+ inheritedHoistables
4874
+ );
4875
+ finishedTask(request, unblockedBoundary, null, null);
4876
+ }
4877
+ }
4878
+ unblockedRow.pendingTasks--;
4879
+ if (0 < unblockedRow.pendingTasks) break;
4880
+ inheritedHoistables = unblockedRow.hoistables;
4881
+ unblockedRow = unblockedRow.next;
4882
+ }
4883
+ }
4884
+ function tryToResolveTogetherRow(request, togetherRow) {
4885
+ var boundaries = togetherRow.boundaries;
4886
+ if (
4887
+ null !== boundaries &&
4888
+ togetherRow.pendingTasks === boundaries.length
4889
+ ) {
4890
+ for (
4891
+ var allCompleteAndInlinable = !0, i = 0;
4892
+ i < boundaries.length;
4893
+ i++
4894
+ ) {
4895
+ var rowBoundary = boundaries[i];
4896
+ if (
4897
+ 1 !== rowBoundary.pendingTasks ||
4898
+ rowBoundary.parentFlushed ||
4899
+ isEligibleForOutlining(request, rowBoundary)
4900
+ ) {
4901
+ allCompleteAndInlinable = !1;
4902
+ break;
4903
+ }
4904
+ }
4905
+ allCompleteAndInlinable &&
4906
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4907
+ }
4908
+ }
4909
+ function createSuspenseListRow(previousRow) {
4910
+ var newRow = {
4911
+ pendingTasks: 1,
4912
+ boundaries: null,
4913
+ hoistables: createHoistableState(),
4914
+ inheritedHoistables: null,
4915
+ together: !1,
4916
+ next: null
4917
+ };
4918
+ null !== previousRow &&
4919
+ 0 < previousRow.pendingTasks &&
4920
+ (newRow.pendingTasks++,
4921
+ (newRow.boundaries = []),
4922
+ (previousRow.next = newRow));
4923
+ return newRow;
4924
+ }
4925
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4926
+ var prevKeyPath = task.keyPath,
4927
+ prevTreeContext = task.treeContext,
4928
+ prevRow = task.row,
4929
+ previousComponentStack = task.componentStack;
4930
+ var previousDebugTask = task.debugTask;
4931
+ pushServerComponentStack(task, task.node.props.children._debugInfo);
4932
+ task.keyPath = keyPath;
4933
+ keyPath = rows.length;
4934
+ var previousSuspenseListRow = null;
4935
+ if (null !== task.replay) {
4936
+ var resumeSlots = task.replay.slots;
4937
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4938
+ for (var n = 0; n < keyPath; n++) {
4939
+ var i =
4940
+ "backwards" !== revealOrder &&
4941
+ "unstable_legacy-backwards" !== revealOrder
4942
+ ? n
4943
+ : keyPath - 1 - n,
4944
+ node = rows[i];
4945
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4946
+ previousSuspenseListRow
4947
+ );
4948
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4949
+ var resumeSegmentID = resumeSlots[i];
4950
+ "number" === typeof resumeSegmentID
4951
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4952
+ delete resumeSlots[i])
4953
+ : renderNode(request, task, node, i);
4954
+ 0 === --previousSuspenseListRow.pendingTasks &&
4955
+ finishSuspenseListRow(request, previousSuspenseListRow);
4956
+ }
4957
+ else
4958
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4959
+ (n =
4960
+ "backwards" !== revealOrder &&
4961
+ "unstable_legacy-backwards" !== revealOrder
4962
+ ? resumeSlots
4963
+ : keyPath - 1 - resumeSlots),
4964
+ (i = rows[n]),
4965
+ warnForMissingKey(request, task, i),
4966
+ (task.row = previousSuspenseListRow =
4967
+ createSuspenseListRow(previousSuspenseListRow)),
4968
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4969
+ renderNode(request, task, i, n),
4970
+ 0 === --previousSuspenseListRow.pendingTasks &&
4971
+ finishSuspenseListRow(request, previousSuspenseListRow);
4972
+ } else if (
4973
+ "backwards" !== revealOrder &&
4974
+ "unstable_legacy-backwards" !== revealOrder
4975
+ )
4976
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4977
+ (resumeSlots = rows[revealOrder]),
4978
+ warnForMissingKey(request, task, resumeSlots),
4979
+ (task.row = previousSuspenseListRow =
4980
+ createSuspenseListRow(previousSuspenseListRow)),
4981
+ (task.treeContext = pushTreeContext(
4982
+ prevTreeContext,
4983
+ keyPath,
4984
+ revealOrder
4985
+ )),
4986
+ renderNode(request, task, resumeSlots, revealOrder),
4987
+ 0 === --previousSuspenseListRow.pendingTasks &&
4988
+ finishSuspenseListRow(request, previousSuspenseListRow);
4989
+ else {
4990
+ revealOrder = task.blockedSegment;
4991
+ resumeSlots = revealOrder.children.length;
4992
+ n = revealOrder.chunks.length;
4993
+ for (i = keyPath - 1; 0 <= i; i--) {
4994
+ node = rows[i];
4995
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4996
+ previousSuspenseListRow
4997
+ );
4998
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4999
+ resumeSegmentID = createPendingSegment(
5000
+ request,
5001
+ n,
5002
+ null,
5003
+ task.formatContext,
5004
+ 0 === i ? revealOrder.lastPushedText : !0,
5005
+ !0
5006
+ );
5007
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
5008
+ task.blockedSegment = resumeSegmentID;
5009
+ warnForMissingKey(request, task, node);
5010
+ try {
5011
+ renderNode(request, task, node, i),
5012
+ pushSegmentFinale(
5013
+ resumeSegmentID.chunks,
5014
+ request.renderState,
5015
+ resumeSegmentID.lastPushedText,
5016
+ resumeSegmentID.textEmbedded
5017
+ ),
5018
+ (resumeSegmentID.status = COMPLETED),
5019
+ 0 === --previousSuspenseListRow.pendingTasks &&
5020
+ finishSuspenseListRow(request, previousSuspenseListRow);
5021
+ } catch (thrownValue) {
5022
+ throw (
5023
+ ((resumeSegmentID.status =
5024
+ 12 === request.status ? ABORTED : ERRORED),
5025
+ thrownValue)
5026
+ );
5027
+ }
5028
+ }
5029
+ task.blockedSegment = revealOrder;
5030
+ revealOrder.lastPushedText = !1;
5031
+ }
5032
+ null !== prevRow &&
5033
+ null !== previousSuspenseListRow &&
5034
+ 0 < previousSuspenseListRow.pendingTasks &&
5035
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
5036
+ task.treeContext = prevTreeContext;
5037
+ task.row = prevRow;
5038
+ task.keyPath = prevKeyPath;
5039
+ task.componentStack = previousComponentStack;
5040
+ task.debugTask = previousDebugTask;
5041
+ }
4679
5042
  function renderWithHooks(
4680
5043
  request,
4681
5044
  task,
@@ -5160,26 +5523,30 @@
5160
5523
  type.displayName || type.name || "Component"
5161
5524
  );
5162
5525
  if ("function" === typeof type.getDerivedStateFromProps) {
5163
- var _componentName2 = getComponentNameFromType(type) || "Unknown";
5164
- didWarnAboutGetDerivedStateOnFunctionComponent[_componentName2] ||
5526
+ var componentName$jscomp$4 =
5527
+ getComponentNameFromType(type) || "Unknown";
5528
+ didWarnAboutGetDerivedStateOnFunctionComponent[
5529
+ componentName$jscomp$4
5530
+ ] ||
5165
5531
  (console.error(
5166
5532
  "%s: Function components do not support getDerivedStateFromProps.",
5167
- _componentName2
5533
+ componentName$jscomp$4
5168
5534
  ),
5169
- (didWarnAboutGetDerivedStateOnFunctionComponent[_componentName2] =
5170
- !0));
5535
+ (didWarnAboutGetDerivedStateOnFunctionComponent[
5536
+ componentName$jscomp$4
5537
+ ] = !0));
5171
5538
  }
5172
5539
  if (
5173
5540
  "object" === typeof type.contextType &&
5174
5541
  null !== type.contextType
5175
5542
  ) {
5176
- var _componentName3 = getComponentNameFromType(type) || "Unknown";
5177
- didWarnAboutContextTypeOnFunctionComponent[_componentName3] ||
5543
+ var _componentName2 = getComponentNameFromType(type) || "Unknown";
5544
+ didWarnAboutContextTypeOnFunctionComponent[_componentName2] ||
5178
5545
  (console.error(
5179
5546
  "%s: Function components do not support contextType.",
5180
- _componentName3
5547
+ _componentName2
5181
5548
  ),
5182
- (didWarnAboutContextTypeOnFunctionComponent[_componentName3] =
5549
+ (didWarnAboutContextTypeOnFunctionComponent[_componentName2] =
5183
5550
  !0));
5184
5551
  }
5185
5552
  finishFunctionComponent(
@@ -5213,16 +5580,15 @@
5213
5580
  task.blockedPreamble,
5214
5581
  task.hoistableState,
5215
5582
  task.formatContext,
5216
- segment.lastPushedText,
5217
- task.isFallback
5583
+ segment.lastPushedText
5218
5584
  );
5219
5585
  segment.lastPushedText = !1;
5220
- var _prevContext = task.formatContext,
5221
- _prevKeyPath2 = task.keyPath;
5586
+ var _prevContext2 = task.formatContext,
5587
+ _prevKeyPath3 = task.keyPath;
5222
5588
  task.keyPath = keyPath;
5223
5589
  if (
5224
5590
  (task.formatContext = getChildFormatContext(
5225
- _prevContext,
5591
+ _prevContext2,
5226
5592
  type,
5227
5593
  props
5228
5594
  )).insertionMode === HTML_HEAD_MODE
@@ -5236,30 +5602,23 @@
5236
5602
  !1
5237
5603
  );
5238
5604
  segment.preambleChildren.push(preambleSegment);
5239
- var preambleTask = createRenderTask(
5240
- request,
5241
- null,
5242
- _children,
5243
- -1,
5244
- task.blockedBoundary,
5245
- preambleSegment,
5246
- task.blockedPreamble,
5247
- task.hoistableState,
5248
- request.abortableTasks,
5249
- task.keyPath,
5250
- task.formatContext,
5251
- task.context,
5252
- task.treeContext,
5253
- task.componentStack,
5254
- task.isFallback,
5255
- emptyContextObject,
5256
- task.debugTask
5257
- );
5258
- pushComponentStack(preambleTask);
5259
- request.pingedTasks.push(preambleTask);
5605
+ task.blockedSegment = preambleSegment;
5606
+ try {
5607
+ (preambleSegment.status = 6),
5608
+ renderNode(request, task, _children, -1),
5609
+ pushSegmentFinale(
5610
+ preambleSegment.chunks,
5611
+ request.renderState,
5612
+ preambleSegment.lastPushedText,
5613
+ preambleSegment.textEmbedded
5614
+ ),
5615
+ (preambleSegment.status = COMPLETED);
5616
+ } finally {
5617
+ task.blockedSegment = segment;
5618
+ }
5260
5619
  } else renderNode(request, task, _children, -1);
5261
- task.formatContext = _prevContext;
5262
- task.keyPath = _prevKeyPath2;
5620
+ task.formatContext = _prevContext2;
5621
+ task.keyPath = _prevKeyPath3;
5263
5622
  a: {
5264
5623
  var target = segment.chunks,
5265
5624
  resumableState = request.resumableState;
@@ -5284,19 +5643,19 @@
5284
5643
  case "wbr":
5285
5644
  break a;
5286
5645
  case "body":
5287
- if (_prevContext.insertionMode <= HTML_HTML_MODE) {
5646
+ if (_prevContext2.insertionMode <= HTML_HTML_MODE) {
5288
5647
  resumableState.hasBody = !0;
5289
5648
  break a;
5290
5649
  }
5291
5650
  break;
5292
5651
  case "html":
5293
- if (_prevContext.insertionMode === ROOT_HTML_MODE) {
5652
+ if (_prevContext2.insertionMode === ROOT_HTML_MODE) {
5294
5653
  resumableState.hasHtml = !0;
5295
5654
  break a;
5296
5655
  }
5297
5656
  break;
5298
5657
  case "head":
5299
- if (_prevContext.insertionMode <= HTML_HTML_MODE) break a;
5658
+ if (_prevContext2.insertionMode <= HTML_HTML_MODE) break a;
5300
5659
  }
5301
5660
  target.push(endChunkForTag(type));
5302
5661
  }
@@ -5314,18 +5673,96 @@
5314
5673
  task.keyPath = prevKeyPath$jscomp$1;
5315
5674
  return;
5316
5675
  case REACT_ACTIVITY_TYPE:
5317
- if ("hidden" !== props.mode) {
5318
- var prevKeyPath$jscomp$2 = task.keyPath;
5676
+ var segment$jscomp$0 = task.blockedSegment;
5677
+ if (null === segment$jscomp$0) {
5678
+ if ("hidden" !== props.mode) {
5679
+ var prevKeyPath$jscomp$2 = task.keyPath;
5680
+ task.keyPath = keyPath;
5681
+ renderNode(request, task, props.children, -1);
5682
+ task.keyPath = prevKeyPath$jscomp$2;
5683
+ }
5684
+ } else if ("hidden" !== props.mode) {
5685
+ request.renderState.generateStaticMarkup ||
5686
+ segment$jscomp$0.chunks.push("\x3c!--&--\x3e");
5687
+ segment$jscomp$0.lastPushedText = !1;
5688
+ var _prevKeyPath4 = task.keyPath;
5319
5689
  task.keyPath = keyPath;
5320
- renderNodeDestructive(request, task, props.children, -1);
5321
- task.keyPath = prevKeyPath$jscomp$2;
5690
+ renderNode(request, task, props.children, -1);
5691
+ task.keyPath = _prevKeyPath4;
5692
+ request.renderState.generateStaticMarkup ||
5693
+ segment$jscomp$0.chunks.push("\x3c!--/&--\x3e");
5694
+ segment$jscomp$0.lastPushedText = !1;
5322
5695
  }
5323
5696
  return;
5324
5697
  case REACT_SUSPENSE_LIST_TYPE:
5325
- var _prevKeyPath3 = task.keyPath;
5326
- task.keyPath = keyPath;
5327
- renderNodeDestructive(request, task, props.children, -1);
5328
- task.keyPath = _prevKeyPath3;
5698
+ a: {
5699
+ var children$jscomp$0 = props.children,
5700
+ revealOrder = props.revealOrder;
5701
+ if (
5702
+ "forwards" === revealOrder ||
5703
+ "backwards" === revealOrder ||
5704
+ "unstable_legacy-backwards" === revealOrder
5705
+ ) {
5706
+ if (isArrayImpl(children$jscomp$0)) {
5707
+ renderSuspenseListRows(
5708
+ request,
5709
+ task,
5710
+ keyPath,
5711
+ children$jscomp$0,
5712
+ revealOrder
5713
+ );
5714
+ break a;
5715
+ }
5716
+ var iteratorFn = getIteratorFn(children$jscomp$0);
5717
+ if (iteratorFn) {
5718
+ var iterator = iteratorFn.call(children$jscomp$0);
5719
+ if (iterator) {
5720
+ validateIterable(
5721
+ task,
5722
+ children$jscomp$0,
5723
+ -1,
5724
+ iterator,
5725
+ iteratorFn
5726
+ );
5727
+ var step = iterator.next();
5728
+ if (!step.done) {
5729
+ var rows = [];
5730
+ do rows.push(step.value), (step = iterator.next());
5731
+ while (!step.done);
5732
+ renderSuspenseListRows(
5733
+ request,
5734
+ task,
5735
+ keyPath,
5736
+ children$jscomp$0,
5737
+ revealOrder
5738
+ );
5739
+ }
5740
+ break a;
5741
+ }
5742
+ }
5743
+ }
5744
+ if ("together" === revealOrder) {
5745
+ var _prevKeyPath2 = task.keyPath,
5746
+ prevRow = task.row,
5747
+ newRow = (task.row = createSuspenseListRow(null));
5748
+ newRow.boundaries = [];
5749
+ newRow.together = !0;
5750
+ task.keyPath = keyPath;
5751
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5752
+ 0 === --newRow.pendingTasks &&
5753
+ finishSuspenseListRow(request, newRow);
5754
+ task.keyPath = _prevKeyPath2;
5755
+ task.row = prevRow;
5756
+ null !== prevRow &&
5757
+ 0 < newRow.pendingTasks &&
5758
+ (prevRow.pendingTasks++, (newRow.next = prevRow));
5759
+ } else {
5760
+ var prevKeyPath$jscomp$3 = task.keyPath;
5761
+ task.keyPath = keyPath;
5762
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5763
+ task.keyPath = prevKeyPath$jscomp$3;
5764
+ }
5765
+ }
5329
5766
  return;
5330
5767
  case REACT_VIEW_TRANSITION_TYPE:
5331
5768
  case REACT_SCOPE_TYPE:
@@ -5334,16 +5771,27 @@
5334
5771
  );
5335
5772
  case REACT_SUSPENSE_TYPE:
5336
5773
  a: if (null !== task.replay) {
5337
- var _prevKeyPath = task.keyPath;
5774
+ var _prevKeyPath = task.keyPath,
5775
+ _prevContext = task.formatContext,
5776
+ _prevRow = task.row;
5338
5777
  task.keyPath = keyPath;
5778
+ task.formatContext = getSuspenseContentFormatContext(
5779
+ request.resumableState,
5780
+ _prevContext
5781
+ );
5782
+ task.row = null;
5339
5783
  var _content = props.children;
5340
5784
  try {
5341
5785
  renderNode(request, task, _content, -1);
5342
5786
  } finally {
5343
- task.keyPath = _prevKeyPath;
5787
+ (task.keyPath = _prevKeyPath),
5788
+ (task.formatContext = _prevContext),
5789
+ (task.row = _prevRow);
5344
5790
  }
5345
5791
  } else {
5346
- var prevKeyPath$jscomp$3 = task.keyPath,
5792
+ var prevKeyPath$jscomp$4 = task.keyPath,
5793
+ prevContext$jscomp$0 = task.formatContext,
5794
+ prevRow$jscomp$0 = task.row,
5347
5795
  parentBoundary = task.blockedBoundary,
5348
5796
  parentPreamble = task.blockedPreamble,
5349
5797
  parentHoistableState = task.hoistableState,
@@ -5351,20 +5799,13 @@
5351
5799
  fallback = props.fallback,
5352
5800
  content = props.children,
5353
5801
  fallbackAbortSet = new Set();
5354
- var newBoundary =
5355
- task.formatContext.insertionMode < HTML_MODE
5356
- ? createSuspenseBoundary(
5357
- request,
5358
- fallbackAbortSet,
5359
- createPreambleState(),
5360
- createPreambleState()
5361
- )
5362
- : createSuspenseBoundary(
5363
- request,
5364
- fallbackAbortSet,
5365
- null,
5366
- null
5367
- );
5802
+ var newBoundary = createSuspenseBoundary(
5803
+ request,
5804
+ task.row,
5805
+ fallbackAbortSet,
5806
+ null,
5807
+ null
5808
+ );
5368
5809
  null !== request.trackedPostpones &&
5369
5810
  (newBoundary.trackedContentKeyPath = keyPath);
5370
5811
  var boundarySegment = createPendingSegment(
@@ -5387,7 +5828,8 @@
5387
5828
  );
5388
5829
  contentRootSegment.parentFlushed = !0;
5389
5830
  if (null !== request.trackedPostpones) {
5390
- var fallbackKeyPath = [
5831
+ var suspenseComponentStack = task.componentStack,
5832
+ fallbackKeyPath = [
5391
5833
  keyPath[0],
5392
5834
  "Suspense Fallback",
5393
5835
  keyPath[2]
@@ -5406,6 +5848,14 @@
5406
5848
  task.blockedSegment = boundarySegment;
5407
5849
  task.blockedPreamble = newBoundary.fallbackPreamble;
5408
5850
  task.keyPath = fallbackKeyPath;
5851
+ task.formatContext = getSuspenseFallbackFormatContext(
5852
+ request.resumableState,
5853
+ prevContext$jscomp$0
5854
+ );
5855
+ task.componentStack =
5856
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5857
+ suspenseComponentStack
5858
+ );
5409
5859
  boundarySegment.status = 6;
5410
5860
  try {
5411
5861
  renderNode(request, task, fallback, -1),
@@ -5418,13 +5868,15 @@
5418
5868
  (boundarySegment.status = COMPLETED);
5419
5869
  } catch (thrownValue) {
5420
5870
  throw (
5421
- ((boundarySegment.status = 12 === request.status ? 3 : 4),
5871
+ ((boundarySegment.status =
5872
+ 12 === request.status ? ABORTED : ERRORED),
5422
5873
  thrownValue)
5423
5874
  );
5424
5875
  } finally {
5425
5876
  (task.blockedSegment = parentSegment),
5426
5877
  (task.blockedPreamble = parentPreamble),
5427
- (task.keyPath = prevKeyPath$jscomp$3);
5878
+ (task.keyPath = prevKeyPath$jscomp$4),
5879
+ (task.formatContext = prevContext$jscomp$0);
5428
5880
  }
5429
5881
  var suspendedPrimaryTask = createRenderTask(
5430
5882
  request,
@@ -5437,11 +5889,14 @@
5437
5889
  newBoundary.contentState,
5438
5890
  task.abortSet,
5439
5891
  keyPath,
5440
- task.formatContext,
5892
+ getSuspenseContentFormatContext(
5893
+ request.resumableState,
5894
+ task.formatContext
5895
+ ),
5441
5896
  task.context,
5442
5897
  task.treeContext,
5443
- task.componentStack,
5444
- task.isFallback,
5898
+ null,
5899
+ suspenseComponentStack,
5445
5900
  emptyContextObject,
5446
5901
  task.debugTask
5447
5902
  );
@@ -5453,6 +5908,11 @@
5453
5908
  task.hoistableState = newBoundary.contentState;
5454
5909
  task.blockedSegment = contentRootSegment;
5455
5910
  task.keyPath = keyPath;
5911
+ task.formatContext = getSuspenseContentFormatContext(
5912
+ request.resumableState,
5913
+ prevContext$jscomp$0
5914
+ );
5915
+ task.row = null;
5456
5916
  contentRootSegment.status = 6;
5457
5917
  try {
5458
5918
  if (
@@ -5468,19 +5928,30 @@
5468
5928
  0 === newBoundary.pendingTasks &&
5469
5929
  newBoundary.status === PENDING)
5470
5930
  ) {
5471
- newBoundary.status = COMPLETED;
5472
- 0 === request.pendingRootTasks &&
5473
- task.blockedPreamble &&
5474
- preparePreamble(request);
5475
- break a;
5476
- }
5931
+ if (
5932
+ ((newBoundary.status = COMPLETED),
5933
+ !isEligibleForOutlining(request, newBoundary))
5934
+ ) {
5935
+ null !== prevRow$jscomp$0 &&
5936
+ 0 === --prevRow$jscomp$0.pendingTasks &&
5937
+ finishSuspenseListRow(request, prevRow$jscomp$0);
5938
+ 0 === request.pendingRootTasks &&
5939
+ task.blockedPreamble &&
5940
+ preparePreamble(request);
5941
+ break a;
5942
+ }
5943
+ } else
5944
+ null !== prevRow$jscomp$0 &&
5945
+ prevRow$jscomp$0.together &&
5946
+ tryToResolveTogetherRow(request, prevRow$jscomp$0);
5477
5947
  } catch (thrownValue$2) {
5478
5948
  newBoundary.status = CLIENT_RENDERED;
5479
5949
  if (12 === request.status) {
5480
- contentRootSegment.status = 3;
5950
+ contentRootSegment.status = ABORTED;
5481
5951
  var error = request.fatalError;
5482
5952
  } else
5483
- (contentRootSegment.status = 4), (error = thrownValue$2);
5953
+ (contentRootSegment.status = ERRORED),
5954
+ (error = thrownValue$2);
5484
5955
  var thrownInfo = getThrownInfo(task.componentStack);
5485
5956
  var errorDigest = logRecoverableError(
5486
5957
  request,
@@ -5501,7 +5972,9 @@
5501
5972
  (task.blockedPreamble = parentPreamble),
5502
5973
  (task.hoistableState = parentHoistableState),
5503
5974
  (task.blockedSegment = parentSegment),
5504
- (task.keyPath = prevKeyPath$jscomp$3);
5975
+ (task.keyPath = prevKeyPath$jscomp$4),
5976
+ (task.formatContext = prevContext$jscomp$0),
5977
+ (task.row = prevRow$jscomp$0);
5505
5978
  }
5506
5979
  var suspendedFallbackTask = createRenderTask(
5507
5980
  request,
@@ -5514,11 +5987,16 @@
5514
5987
  newBoundary.fallbackState,
5515
5988
  fallbackAbortSet,
5516
5989
  [keyPath[0], "Suspense Fallback", keyPath[2]],
5517
- task.formatContext,
5990
+ getSuspenseFallbackFormatContext(
5991
+ request.resumableState,
5992
+ task.formatContext
5993
+ ),
5518
5994
  task.context,
5519
5995
  task.treeContext,
5520
- task.componentStack,
5521
- !0,
5996
+ task.row,
5997
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5998
+ task.componentStack
5999
+ ),
5522
6000
  emptyContextObject,
5523
6001
  task.debugTask
5524
6002
  );
@@ -5536,7 +6014,7 @@
5536
6014
  for (var key in props)
5537
6015
  "ref" !== key && (propsWithoutRef[key] = props[key]);
5538
6016
  } else propsWithoutRef = props;
5539
- var children$jscomp$0 = renderWithHooks(
6017
+ var children$jscomp$1 = renderWithHooks(
5540
6018
  request,
5541
6019
  task,
5542
6020
  keyPath,
@@ -5548,7 +6026,7 @@
5548
6026
  request,
5549
6027
  task,
5550
6028
  keyPath,
5551
- children$jscomp$0,
6029
+ children$jscomp$1,
5552
6030
  0 !== localIdCounter,
5553
6031
  actionStateCounter,
5554
6032
  actionStateMatchingIndex
@@ -5557,12 +6035,11 @@
5557
6035
  case REACT_MEMO_TYPE:
5558
6036
  renderElement(request, task, keyPath, type.type, props, ref);
5559
6037
  return;
5560
- case REACT_PROVIDER_TYPE:
5561
6038
  case REACT_CONTEXT_TYPE:
5562
6039
  var value$jscomp$0 = props.value,
5563
- children$jscomp$1 = props.children;
6040
+ children$jscomp$2 = props.children;
5564
6041
  var prevSnapshot = task.context;
5565
- var prevKeyPath$jscomp$4 = task.keyPath;
6042
+ var prevKeyPath$jscomp$5 = task.keyPath;
5566
6043
  var prevValue = type._currentValue2;
5567
6044
  type._currentValue2 = value$jscomp$0;
5568
6045
  void 0 !== type._currentRenderer2 &&
@@ -5583,7 +6060,7 @@
5583
6060
  currentActiveSnapshot = newNode;
5584
6061
  task.context = newNode;
5585
6062
  task.keyPath = keyPath;
5586
- renderNodeDestructive(request, task, children$jscomp$1, -1);
6063
+ renderNodeDestructive(request, task, children$jscomp$2, -1);
5587
6064
  var prevSnapshot$jscomp$0 = currentActiveSnapshot;
5588
6065
  if (null === prevSnapshot$jscomp$0)
5589
6066
  throw Error(
@@ -5605,7 +6082,7 @@
5605
6082
  var JSCompiler_inline_result$jscomp$0 = (currentActiveSnapshot =
5606
6083
  prevSnapshot$jscomp$0.parent);
5607
6084
  task.context = JSCompiler_inline_result$jscomp$0;
5608
- task.keyPath = prevKeyPath$jscomp$4;
6085
+ task.keyPath = prevKeyPath$jscomp$5;
5609
6086
  prevSnapshot !== task.context &&
5610
6087
  console.error(
5611
6088
  "Popping the context provider did not return back to the original snapshot. This is a bug in React."
@@ -5619,10 +6096,10 @@
5619
6096
  "A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."
5620
6097
  );
5621
6098
  var newChildren = render(context$jscomp$0._currentValue2),
5622
- prevKeyPath$jscomp$5 = task.keyPath;
6099
+ prevKeyPath$jscomp$6 = task.keyPath;
5623
6100
  task.keyPath = keyPath;
5624
6101
  renderNodeDestructive(request, task, newChildren, -1);
5625
- task.keyPath = prevKeyPath$jscomp$5;
6102
+ task.keyPath = prevKeyPath$jscomp$6;
5626
6103
  return;
5627
6104
  case REACT_LAZY_TYPE:
5628
6105
  var Component = callLazyInitInDEV(type);
@@ -5698,9 +6175,9 @@
5698
6175
  ">. The tree doesn't match so React will fallback to client rendering."
5699
6176
  );
5700
6177
  var childNodes = node[2];
5701
- node = node[3];
5702
- name = task.node;
5703
- task.replay = { nodes: childNodes, slots: node, pendingTasks: 1 };
6178
+ name = node[3];
6179
+ keyOrIndex = task.node;
6180
+ task.replay = { nodes: childNodes, slots: name, pendingTasks: 1 };
5704
6181
  try {
5705
6182
  renderElement(request, task, keyPath, type, props, ref);
5706
6183
  if (
@@ -5717,21 +6194,26 @@
5717
6194
  null !== x &&
5718
6195
  (x === SuspenseException || "function" === typeof x.then)
5719
6196
  )
5720
- throw (task.node === name && (task.replay = replay), x);
6197
+ throw (
6198
+ (task.node === keyOrIndex
6199
+ ? (task.replay = replay)
6200
+ : childIndex.splice(i, 1),
6201
+ x)
6202
+ );
5721
6203
  task.replay.pendingTasks--;
5722
6204
  type = getThrownInfo(task.componentStack);
5723
6205
  props = request;
5724
6206
  request = task.blockedBoundary;
5725
6207
  keyPath = x;
5726
- ref = node;
5727
- node = logRecoverableError(props, keyPath, type, task.debugTask);
6208
+ ref = name;
6209
+ name = logRecoverableError(props, keyPath, type, task.debugTask);
5728
6210
  abortRemainingReplayNodes(
5729
6211
  props,
5730
6212
  request,
5731
6213
  childNodes,
5732
6214
  ref,
5733
6215
  keyPath,
5734
- node,
6216
+ name,
5735
6217
  type,
5736
6218
  !1
5737
6219
  );
@@ -5746,38 +6228,38 @@
5746
6228
  );
5747
6229
  a: {
5748
6230
  replay = void 0;
5749
- type = node[5];
5750
- ref = node[2];
5751
- name = node[3];
6231
+ name = node[5];
6232
+ type = node[2];
6233
+ ref = node[3];
5752
6234
  keyOrIndex = null === node[4] ? [] : node[4][2];
5753
6235
  node = null === node[4] ? null : node[4][3];
5754
6236
  var prevKeyPath = task.keyPath,
6237
+ prevContext = task.formatContext,
6238
+ prevRow = task.row,
5755
6239
  previousReplaySet = task.replay,
5756
6240
  parentBoundary = task.blockedBoundary,
5757
6241
  parentHoistableState = task.hoistableState,
5758
6242
  content = props.children,
5759
6243
  fallback = props.fallback,
5760
6244
  fallbackAbortSet = new Set();
5761
- props =
5762
- task.formatContext.insertionMode < HTML_MODE
5763
- ? createSuspenseBoundary(
5764
- request,
5765
- fallbackAbortSet,
5766
- createPreambleState(),
5767
- createPreambleState()
5768
- )
5769
- : createSuspenseBoundary(
5770
- request,
5771
- fallbackAbortSet,
5772
- null,
5773
- null
5774
- );
6245
+ props = createSuspenseBoundary(
6246
+ request,
6247
+ task.row,
6248
+ fallbackAbortSet,
6249
+ null,
6250
+ null
6251
+ );
5775
6252
  props.parentFlushed = !0;
5776
- props.rootSegmentID = type;
6253
+ props.rootSegmentID = name;
5777
6254
  task.blockedBoundary = props;
5778
6255
  task.hoistableState = props.contentState;
5779
6256
  task.keyPath = keyPath;
5780
- task.replay = { nodes: ref, slots: name, pendingTasks: 1 };
6257
+ task.formatContext = getSuspenseContentFormatContext(
6258
+ request.resumableState,
6259
+ prevContext
6260
+ );
6261
+ task.row = null;
6262
+ task.replay = { nodes: type, slots: ref, pendingTasks: 1 };
5781
6263
  try {
5782
6264
  renderNode(request, task, content, -1);
5783
6265
  if (
@@ -5809,7 +6291,9 @@
5809
6291
  (task.blockedBoundary = parentBoundary),
5810
6292
  (task.hoistableState = parentHoistableState),
5811
6293
  (task.replay = previousReplaySet),
5812
- (task.keyPath = prevKeyPath);
6294
+ (task.keyPath = prevKeyPath),
6295
+ (task.formatContext = prevContext),
6296
+ (task.row = prevRow);
5813
6297
  }
5814
6298
  props = createReplayTask(
5815
6299
  request,
@@ -5821,11 +6305,16 @@
5821
6305
  props.fallbackState,
5822
6306
  fallbackAbortSet,
5823
6307
  [keyPath[0], "Suspense Fallback", keyPath[2]],
5824
- task.formatContext,
6308
+ getSuspenseFallbackFormatContext(
6309
+ request.resumableState,
6310
+ task.formatContext
6311
+ ),
5825
6312
  task.context,
5826
6313
  task.treeContext,
5827
- task.componentStack,
5828
- !0,
6314
+ task.row,
6315
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
6316
+ task.componentStack
6317
+ ),
5829
6318
  emptyContextObject,
5830
6319
  task.debugTask
5831
6320
  );
@@ -5838,6 +6327,35 @@
5838
6327
  }
5839
6328
  }
5840
6329
  }
6330
+ function validateIterable(
6331
+ task,
6332
+ iterable,
6333
+ childIndex,
6334
+ iterator,
6335
+ iteratorFn
6336
+ ) {
6337
+ if (iterator === iterable) {
6338
+ if (
6339
+ -1 !== childIndex ||
6340
+ null === task.componentStack ||
6341
+ "function" !== typeof task.componentStack.type ||
6342
+ "[object GeneratorFunction]" !==
6343
+ Object.prototype.toString.call(task.componentStack.type) ||
6344
+ "[object Generator]" !== Object.prototype.toString.call(iterator)
6345
+ )
6346
+ didWarnAboutGenerators ||
6347
+ console.error(
6348
+ "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
6349
+ ),
6350
+ (didWarnAboutGenerators = !0);
6351
+ } else
6352
+ iterable.entries !== iteratorFn ||
6353
+ didWarnAboutMaps ||
6354
+ (console.error(
6355
+ "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
6356
+ ),
6357
+ (didWarnAboutMaps = !0));
6358
+ }
5841
6359
  function renderNodeDestructive(request, task, node, childIndex) {
5842
6360
  null !== task.replay && "number" === typeof task.replay.slots
5843
6361
  ? resumeNode(request, task, task.replay.slots, node, childIndex)
@@ -5914,52 +6432,27 @@
5914
6432
  "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render."
5915
6433
  );
5916
6434
  case REACT_LAZY_TYPE:
5917
- node = callLazyInitInDEV(node);
6435
+ type = callLazyInitInDEV(node);
5918
6436
  if (12 === request.status) throw null;
5919
- renderNodeDestructive(request, task, node, childIndex);
6437
+ renderNodeDestructive(request, task, type, childIndex);
5920
6438
  return;
5921
6439
  }
5922
6440
  if (isArrayImpl(node)) {
5923
6441
  renderChildrenArray(request, task, node, childIndex);
5924
6442
  return;
5925
6443
  }
5926
- null === node || "object" !== typeof node
5927
- ? (key = null)
5928
- : ((type =
5929
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
5930
- node["@@iterator"]),
5931
- (key = "function" === typeof type ? type : null));
5932
- if (key && (type = key.call(node))) {
5933
- if (type === node) {
5934
- if (
5935
- -1 !== childIndex ||
5936
- null === task.componentStack ||
5937
- "function" !== typeof task.componentStack.type ||
5938
- "[object GeneratorFunction]" !==
5939
- Object.prototype.toString.call(task.componentStack.type) ||
5940
- "[object Generator]" !== Object.prototype.toString.call(type)
5941
- )
5942
- didWarnAboutGenerators ||
5943
- console.error(
5944
- "Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items."
5945
- ),
5946
- (didWarnAboutGenerators = !0);
5947
- } else
5948
- node.entries !== key ||
5949
- didWarnAboutMaps ||
5950
- (console.error(
5951
- "Using Maps as children is not supported. Use an array of keyed ReactElements instead."
5952
- ),
5953
- (didWarnAboutMaps = !0));
5954
- node = type.next();
5955
- if (!node.done) {
5956
- key = [];
5957
- do key.push(node.value), (node = type.next());
5958
- while (!node.done);
5959
- renderChildrenArray(request, task, key, childIndex);
6444
+ if ((key = getIteratorFn(node)))
6445
+ if ((type = key.call(node))) {
6446
+ validateIterable(task, node, childIndex, type, key);
6447
+ node = type.next();
6448
+ if (!node.done) {
6449
+ key = [];
6450
+ do key.push(node.value), (node = type.next());
6451
+ while (!node.done);
6452
+ renderChildrenArray(request, task, key, childIndex);
6453
+ }
6454
+ return;
5960
6455
  }
5961
- return;
5962
- }
5963
6456
  if ("function" === typeof node.then)
5964
6457
  return (
5965
6458
  (task.thenableState = null),
@@ -6018,6 +6511,69 @@
6018
6511
  ));
6019
6512
  }
6020
6513
  }
6514
+ function warnForMissingKey(request, task, child) {
6515
+ if (
6516
+ null !== child &&
6517
+ "object" === typeof child &&
6518
+ (child.$$typeof === REACT_ELEMENT_TYPE ||
6519
+ child.$$typeof === REACT_PORTAL_TYPE) &&
6520
+ child._store &&
6521
+ ((!child._store.validated && null == child.key) ||
6522
+ 2 === child._store.validated)
6523
+ ) {
6524
+ if ("object" !== typeof child._store)
6525
+ throw Error(
6526
+ "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
6527
+ );
6528
+ child._store.validated = 1;
6529
+ var didWarnForKey = request.didWarnForKey;
6530
+ null == didWarnForKey &&
6531
+ (didWarnForKey = request.didWarnForKey = new WeakSet());
6532
+ request = task.componentStack;
6533
+ if (null !== request && !didWarnForKey.has(request)) {
6534
+ didWarnForKey.add(request);
6535
+ var componentName = getComponentNameFromType(child.type);
6536
+ didWarnForKey = child._owner;
6537
+ var parentOwner = request.owner;
6538
+ request = "";
6539
+ if (parentOwner && "undefined" !== typeof parentOwner.type) {
6540
+ var name = getComponentNameFromType(parentOwner.type);
6541
+ name &&
6542
+ (request = "\n\nCheck the render method of `" + name + "`.");
6543
+ }
6544
+ request ||
6545
+ (componentName &&
6546
+ (request =
6547
+ "\n\nCheck the top-level render call using <" +
6548
+ componentName +
6549
+ ">."));
6550
+ componentName = "";
6551
+ null != didWarnForKey &&
6552
+ parentOwner !== didWarnForKey &&
6553
+ ((parentOwner = null),
6554
+ "undefined" !== typeof didWarnForKey.type
6555
+ ? (parentOwner = getComponentNameFromType(didWarnForKey.type))
6556
+ : "string" === typeof didWarnForKey.name &&
6557
+ (parentOwner = didWarnForKey.name),
6558
+ parentOwner &&
6559
+ (componentName =
6560
+ " It was passed a child from " + parentOwner + "."));
6561
+ didWarnForKey = task.componentStack;
6562
+ task.componentStack = {
6563
+ parent: task.componentStack,
6564
+ type: child.type,
6565
+ owner: child._owner,
6566
+ stack: child._debugStack
6567
+ };
6568
+ console.error(
6569
+ 'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
6570
+ request,
6571
+ componentName
6572
+ );
6573
+ task.componentStack = didWarnForKey;
6574
+ }
6575
+ }
6576
+ }
6021
6577
  function renderChildrenArray(request, task, children, childIndex) {
6022
6578
  var prevKeyPath = task.keyPath,
6023
6579
  previousComponentStack = task.componentStack;
@@ -6111,81 +6667,115 @@
6111
6667
  task.debugTask = previousDebugTask;
6112
6668
  return;
6113
6669
  }
6114
- for (j = 0; j < replayNodes; j++) {
6115
- childIndex = children[j];
6116
- resumeSlots = request;
6117
- node = task;
6118
- error = childIndex;
6119
- if (
6120
- null !== error &&
6121
- "object" === typeof error &&
6122
- (error.$$typeof === REACT_ELEMENT_TYPE ||
6123
- error.$$typeof === REACT_PORTAL_TYPE) &&
6124
- error._store &&
6125
- ((!error._store.validated && null == error.key) ||
6126
- 2 === error._store.validated)
6127
- ) {
6128
- if ("object" !== typeof error._store)
6129
- throw Error(
6130
- "React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue."
6131
- );
6132
- error._store.validated = 1;
6133
- thrownInfo = resumeSlots.didWarnForKey;
6134
- null == thrownInfo &&
6135
- (thrownInfo = resumeSlots.didWarnForKey = new WeakSet());
6136
- resumeSlots = node.componentStack;
6137
- if (null !== resumeSlots && !thrownInfo.has(resumeSlots)) {
6138
- thrownInfo.add(resumeSlots);
6139
- var componentName = getComponentNameFromType(error.type);
6140
- thrownInfo = error._owner;
6141
- var parentOwner = resumeSlots.owner;
6142
- resumeSlots = "";
6143
- if (parentOwner && "undefined" !== typeof parentOwner.type) {
6144
- var name = getComponentNameFromType(parentOwner.type);
6145
- name &&
6146
- (resumeSlots =
6147
- "\n\nCheck the render method of `" + name + "`.");
6148
- }
6149
- resumeSlots ||
6150
- (componentName &&
6151
- (resumeSlots =
6152
- "\n\nCheck the top-level render call using <" +
6153
- componentName +
6154
- ">."));
6155
- componentName = "";
6156
- null != thrownInfo &&
6157
- parentOwner !== thrownInfo &&
6158
- ((parentOwner = null),
6159
- "undefined" !== typeof thrownInfo.type
6160
- ? (parentOwner = getComponentNameFromType(thrownInfo.type))
6161
- : "string" === typeof thrownInfo.name &&
6162
- (parentOwner = thrownInfo.name),
6163
- parentOwner &&
6164
- (componentName =
6165
- " It was passed a child from " + parentOwner + "."));
6166
- thrownInfo = node.componentStack;
6167
- node.componentStack = {
6168
- parent: node.componentStack,
6169
- type: error.type,
6170
- owner: error._owner,
6171
- stack: error._debugStack
6172
- };
6173
- console.error(
6174
- 'Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',
6175
- resumeSlots,
6176
- componentName
6177
- );
6178
- node.componentStack = thrownInfo;
6179
- }
6180
- }
6181
- task.treeContext = pushTreeContext(replay, replayNodes, j);
6182
- renderNode(request, task, childIndex, j);
6183
- }
6670
+ for (j = 0; j < replayNodes; j++)
6671
+ (childIndex = children[j]),
6672
+ warnForMissingKey(request, task, childIndex),
6673
+ (task.treeContext = pushTreeContext(replay, replayNodes, j)),
6674
+ renderNode(request, task, childIndex, j);
6184
6675
  task.treeContext = replay;
6185
6676
  task.keyPath = prevKeyPath;
6186
6677
  task.componentStack = previousComponentStack;
6187
6678
  task.debugTask = previousDebugTask;
6188
6679
  }
6680
+ function trackPostponedBoundary(request, trackedPostpones, boundary) {
6681
+ boundary.status = POSTPONED;
6682
+ boundary.rootSegmentID = request.nextSegmentId++;
6683
+ request = boundary.trackedContentKeyPath;
6684
+ if (null === request)
6685
+ throw Error(
6686
+ "It should not be possible to postpone at the root. This is a bug in React."
6687
+ );
6688
+ var fallbackReplayNode = boundary.trackedFallbackNode,
6689
+ children = [],
6690
+ boundaryNode = trackedPostpones.workingMap.get(request);
6691
+ if (void 0 === boundaryNode)
6692
+ return (
6693
+ (boundary = [
6694
+ request[1],
6695
+ request[2],
6696
+ children,
6697
+ null,
6698
+ fallbackReplayNode,
6699
+ boundary.rootSegmentID
6700
+ ]),
6701
+ trackedPostpones.workingMap.set(request, boundary),
6702
+ addToReplayParent(boundary, request[0], trackedPostpones),
6703
+ boundary
6704
+ );
6705
+ boundaryNode[4] = fallbackReplayNode;
6706
+ boundaryNode[5] = boundary.rootSegmentID;
6707
+ return boundaryNode;
6708
+ }
6709
+ function trackPostpone(request, trackedPostpones, task, segment) {
6710
+ segment.status = POSTPONED;
6711
+ var keyPath = task.keyPath,
6712
+ boundary = task.blockedBoundary;
6713
+ if (null === boundary)
6714
+ (segment.id = request.nextSegmentId++),
6715
+ (trackedPostpones.rootSlots = segment.id),
6716
+ null !== request.completedRootSegment &&
6717
+ (request.completedRootSegment.status = POSTPONED);
6718
+ else {
6719
+ if (null !== boundary && boundary.status === PENDING) {
6720
+ var boundaryNode = trackPostponedBoundary(
6721
+ request,
6722
+ trackedPostpones,
6723
+ boundary
6724
+ );
6725
+ if (
6726
+ boundary.trackedContentKeyPath === keyPath &&
6727
+ -1 === task.childIndex
6728
+ ) {
6729
+ -1 === segment.id &&
6730
+ (segment.id = segment.parentFlushed
6731
+ ? boundary.rootSegmentID
6732
+ : request.nextSegmentId++);
6733
+ boundaryNode[3] = segment.id;
6734
+ return;
6735
+ }
6736
+ }
6737
+ -1 === segment.id &&
6738
+ (segment.id =
6739
+ segment.parentFlushed && null !== boundary
6740
+ ? boundary.rootSegmentID
6741
+ : request.nextSegmentId++);
6742
+ if (-1 === task.childIndex)
6743
+ null === keyPath
6744
+ ? (trackedPostpones.rootSlots = segment.id)
6745
+ : ((task = trackedPostpones.workingMap.get(keyPath)),
6746
+ void 0 === task
6747
+ ? ((task = [keyPath[1], keyPath[2], [], segment.id]),
6748
+ addToReplayParent(task, keyPath[0], trackedPostpones))
6749
+ : (task[3] = segment.id));
6750
+ else {
6751
+ if (null === keyPath)
6752
+ if (((request = trackedPostpones.rootSlots), null === request))
6753
+ request = trackedPostpones.rootSlots = {};
6754
+ else {
6755
+ if ("number" === typeof request)
6756
+ throw Error(
6757
+ "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
6758
+ );
6759
+ }
6760
+ else if (
6761
+ ((boundary = trackedPostpones.workingMap),
6762
+ (boundaryNode = boundary.get(keyPath)),
6763
+ void 0 === boundaryNode)
6764
+ )
6765
+ (request = {}),
6766
+ (boundaryNode = [keyPath[1], keyPath[2], [], request]),
6767
+ boundary.set(keyPath, boundaryNode),
6768
+ addToReplayParent(boundaryNode, keyPath[0], trackedPostpones);
6769
+ else if (((request = boundaryNode[3]), null === request))
6770
+ request = boundaryNode[3] = {};
6771
+ else if ("number" === typeof request)
6772
+ throw Error(
6773
+ "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React."
6774
+ );
6775
+ request[task.childIndex] = segment.id;
6776
+ }
6777
+ }
6778
+ }
6189
6779
  function untrackBoundary(request, boundary) {
6190
6780
  request = request.trackedPostpones;
6191
6781
  null !== request &&
@@ -6209,8 +6799,8 @@
6209
6799
  task.formatContext,
6210
6800
  task.context,
6211
6801
  task.treeContext,
6802
+ task.row,
6212
6803
  task.componentStack,
6213
- task.isFallback,
6214
6804
  emptyContextObject,
6215
6805
  task.debugTask
6216
6806
  );
@@ -6241,8 +6831,8 @@
6241
6831
  task.formatContext,
6242
6832
  task.context,
6243
6833
  task.treeContext,
6834
+ task.row,
6244
6835
  task.componentStack,
6245
- task.isFallback,
6246
6836
  emptyContextObject,
6247
6837
  task.debugTask
6248
6838
  );
@@ -6255,7 +6845,8 @@
6255
6845
  previousComponentStack = task.componentStack,
6256
6846
  previousDebugTask = task.debugTask,
6257
6847
  segment = task.blockedSegment;
6258
- if (null === segment)
6848
+ if (null === segment) {
6849
+ segment = task.replay;
6259
6850
  try {
6260
6851
  return renderNodeDestructive(request, task, node, childIndex);
6261
6852
  } catch (thrownValue) {
@@ -6265,10 +6856,13 @@
6265
6856
  thrownValue === SuspenseException
6266
6857
  ? getSuspendedThenable()
6267
6858
  : thrownValue),
6268
- "object" === typeof node && null !== node)
6859
+ 12 !== request.status && "object" === typeof node && null !== node)
6269
6860
  ) {
6270
6861
  if ("function" === typeof node.then) {
6271
- childIndex = getThenableStateAfterSuspending();
6862
+ childIndex =
6863
+ thrownValue === SuspenseException
6864
+ ? getThenableStateAfterSuspending()
6865
+ : null;
6272
6866
  request = spawnNewSuspendedReplayTask(
6273
6867
  request,
6274
6868
  task,
@@ -6280,12 +6874,16 @@
6280
6874
  task.keyPath = previousKeyPath;
6281
6875
  task.treeContext = previousTreeContext;
6282
6876
  task.componentStack = previousComponentStack;
6877
+ task.replay = segment;
6283
6878
  task.debugTask = previousDebugTask;
6284
6879
  switchContext(previousContext);
6285
6880
  return;
6286
6881
  }
6287
6882
  if ("Maximum call stack size exceeded" === node.message) {
6288
- node = getThenableStateAfterSuspending();
6883
+ node =
6884
+ thrownValue === SuspenseException
6885
+ ? getThenableStateAfterSuspending()
6886
+ : null;
6289
6887
  node = spawnNewSuspendedReplayTask(request, task, node);
6290
6888
  request.pingedTasks.push(node);
6291
6889
  task.formatContext = previousFormatContext;
@@ -6293,13 +6891,14 @@
6293
6891
  task.keyPath = previousKeyPath;
6294
6892
  task.treeContext = previousTreeContext;
6295
6893
  task.componentStack = previousComponentStack;
6894
+ task.replay = segment;
6296
6895
  task.debugTask = previousDebugTask;
6297
6896
  switchContext(previousContext);
6298
6897
  return;
6299
6898
  }
6300
6899
  }
6301
6900
  }
6302
- else {
6901
+ } else {
6303
6902
  var childrenLength = segment.children.length,
6304
6903
  chunkLength = segment.chunks.length;
6305
6904
  try {
@@ -6313,16 +6912,16 @@
6313
6912
  thrownValue$3 === SuspenseException
6314
6913
  ? getSuspendedThenable()
6315
6914
  : thrownValue$3),
6316
- "object" === typeof node && null !== node)
6915
+ 12 !== request.status && "object" === typeof node && null !== node)
6317
6916
  ) {
6318
6917
  if ("function" === typeof node.then) {
6319
- childIndex = getThenableStateAfterSuspending();
6320
- request = spawnNewSuspendedRenderTask(
6321
- request,
6322
- task,
6323
- childIndex
6324
- ).ping;
6325
- node.then(request, request);
6918
+ segment = node;
6919
+ node =
6920
+ thrownValue$3 === SuspenseException
6921
+ ? getThenableStateAfterSuspending()
6922
+ : null;
6923
+ request = spawnNewSuspendedRenderTask(request, task, node).ping;
6924
+ segment.then(request, request);
6326
6925
  task.formatContext = previousFormatContext;
6327
6926
  task.context = previousContext;
6328
6927
  task.keyPath = previousKeyPath;
@@ -6333,9 +6932,12 @@
6333
6932
  return;
6334
6933
  }
6335
6934
  if ("Maximum call stack size exceeded" === node.message) {
6336
- node = getThenableStateAfterSuspending();
6337
- node = spawnNewSuspendedRenderTask(request, task, node);
6338
- request.pingedTasks.push(node);
6935
+ segment =
6936
+ thrownValue$3 === SuspenseException
6937
+ ? getThenableStateAfterSuspending()
6938
+ : null;
6939
+ segment = spawnNewSuspendedRenderTask(request, task, segment);
6940
+ request.pingedTasks.push(segment);
6339
6941
  task.formatContext = previousFormatContext;
6340
6942
  task.context = previousContext;
6341
6943
  task.keyPath = previousKeyPath;
@@ -6356,9 +6958,11 @@
6356
6958
  throw node;
6357
6959
  }
6358
6960
  function abortTaskSoft(task) {
6359
- var boundary = task.blockedBoundary;
6360
- task = task.blockedSegment;
6361
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
6961
+ var boundary = task.blockedBoundary,
6962
+ segment = task.blockedSegment;
6963
+ null !== segment &&
6964
+ ((segment.status = ABORTED),
6965
+ finishedTask(this, boundary, task.row, segment));
6362
6966
  }
6363
6967
  function abortRemainingReplayNodes(
6364
6968
  request$jscomp$0,
@@ -6392,6 +6996,7 @@
6392
6996
  wasAborted = aborted,
6393
6997
  resumedBoundary = createSuspenseBoundary(
6394
6998
  request,
6999
+ null,
6395
7000
  new Set(),
6396
7001
  null,
6397
7002
  null
@@ -6436,48 +7041,83 @@
6436
7041
  segment = task.blockedSegment;
6437
7042
  if (null !== segment) {
6438
7043
  if (6 === segment.status) return;
6439
- segment.status = 3;
7044
+ segment.status = ABORTED;
6440
7045
  }
6441
- segment = getThrownInfo(task.componentStack);
7046
+ var errorInfo = getThrownInfo(task.componentStack),
7047
+ node = task.node;
7048
+ null !== node &&
7049
+ "object" === typeof node &&
7050
+ pushHaltedAwaitOnComponentStack(task, node._debugInfo);
6442
7051
  if (null === boundary) {
6443
7052
  if (13 !== request.status && request.status !== CLOSED) {
6444
7053
  boundary = task.replay;
6445
7054
  if (null === boundary) {
6446
- logRecoverableError(request, error, segment, null);
6447
- fatalError(request, error, segment, null);
7055
+ null !== request.trackedPostpones && null !== segment
7056
+ ? ((boundary = request.trackedPostpones),
7057
+ logRecoverableError(request, error, errorInfo, task.debugTask),
7058
+ trackPostpone(request, boundary, task, segment),
7059
+ finishedTask(request, null, task.row, segment))
7060
+ : (logRecoverableError(request, error, errorInfo, task.debugTask),
7061
+ fatalError(request, error, errorInfo, task.debugTask));
6448
7062
  return;
6449
7063
  }
6450
7064
  boundary.pendingTasks--;
6451
7065
  0 === boundary.pendingTasks &&
6452
7066
  0 < boundary.nodes.length &&
6453
- ((task = logRecoverableError(request, error, segment, null)),
7067
+ ((segment = logRecoverableError(request, error, errorInfo, null)),
6454
7068
  abortRemainingReplayNodes(
6455
7069
  request,
6456
7070
  null,
6457
7071
  boundary.nodes,
6458
7072
  boundary.slots,
6459
7073
  error,
6460
- task,
6461
7074
  segment,
7075
+ errorInfo,
6462
7076
  !0
6463
7077
  ));
6464
7078
  request.pendingRootTasks--;
6465
7079
  0 === request.pendingRootTasks && completeShell(request);
6466
7080
  }
6467
- } else
6468
- boundary.pendingTasks--,
6469
- boundary.status !== CLIENT_RENDERED &&
6470
- ((boundary.status = CLIENT_RENDERED),
6471
- (task = logRecoverableError(request, error, segment, null)),
6472
- (boundary.status = CLIENT_RENDERED),
6473
- encodeErrorForBoundary(boundary, task, error, segment, !0),
6474
- untrackBoundary(request, boundary),
6475
- boundary.parentFlushed &&
6476
- request.clientRenderedBoundaries.push(boundary)),
6477
- boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
6478
- return abortTask(fallbackTask, request, error);
6479
- }),
6480
- boundary.fallbackAbortableTasks.clear();
7081
+ } else {
7082
+ node = request.trackedPostpones;
7083
+ if (boundary.status !== CLIENT_RENDERED) {
7084
+ if (null !== node && null !== segment)
7085
+ return (
7086
+ logRecoverableError(request, error, errorInfo, task.debugTask),
7087
+ trackPostpone(request, node, task, segment),
7088
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
7089
+ return abortTask(fallbackTask, request, error);
7090
+ }),
7091
+ boundary.fallbackAbortableTasks.clear(),
7092
+ finishedTask(request, boundary, task.row, segment)
7093
+ );
7094
+ boundary.status = CLIENT_RENDERED;
7095
+ segment = logRecoverableError(
7096
+ request,
7097
+ error,
7098
+ errorInfo,
7099
+ task.debugTask
7100
+ );
7101
+ boundary.status = CLIENT_RENDERED;
7102
+ encodeErrorForBoundary(boundary, segment, error, errorInfo, !0);
7103
+ untrackBoundary(request, boundary);
7104
+ boundary.parentFlushed &&
7105
+ request.clientRenderedBoundaries.push(boundary);
7106
+ }
7107
+ boundary.pendingTasks--;
7108
+ errorInfo = boundary.row;
7109
+ null !== errorInfo &&
7110
+ 0 === --errorInfo.pendingTasks &&
7111
+ finishSuspenseListRow(request, errorInfo);
7112
+ boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
7113
+ return abortTask(fallbackTask, request, error);
7114
+ });
7115
+ boundary.fallbackAbortableTasks.clear();
7116
+ }
7117
+ task = task.row;
7118
+ null !== task &&
7119
+ 0 === --task.pendingTasks &&
7120
+ finishSuspenseListRow(request, task);
6481
7121
  request.allPendingTasks--;
6482
7122
  0 === request.allPendingTasks && completeAll(request);
6483
7123
  }
@@ -6575,11 +7215,18 @@
6575
7215
  var childSegment = segment.children[0];
6576
7216
  childSegment.id = segment.id;
6577
7217
  childSegment.parentFlushed = !0;
6578
- childSegment.status === COMPLETED &&
7218
+ (childSegment.status !== COMPLETED &&
7219
+ childSegment.status !== ABORTED &&
7220
+ childSegment.status !== ERRORED) ||
6579
7221
  queueCompletedSegment(boundary, childSegment);
6580
7222
  } else boundary.completedSegments.push(segment);
6581
7223
  }
6582
- function finishedTask(request, boundary, segment) {
7224
+ function finishedTask(request, boundary, row, segment) {
7225
+ null !== row &&
7226
+ (0 === --row.pendingTasks
7227
+ ? finishSuspenseListRow(request, row)
7228
+ : row.together && tryToResolveTogetherRow(request, row));
7229
+ request.allPendingTasks--;
6583
7230
  if (null === boundary) {
6584
7231
  if (null !== segment && segment.parentFlushed) {
6585
7232
  if (null !== request.completedRootSegment)
@@ -6590,35 +7237,72 @@
6590
7237
  }
6591
7238
  request.pendingRootTasks--;
6592
7239
  0 === request.pendingRootTasks && completeShell(request);
6593
- } else
6594
- boundary.pendingTasks--,
6595
- boundary.status !== CLIENT_RENDERED &&
6596
- (0 === boundary.pendingTasks
6597
- ? (boundary.status === PENDING && (boundary.status = COMPLETED),
6598
- null !== segment &&
6599
- segment.parentFlushed &&
6600
- segment.status === COMPLETED &&
6601
- queueCompletedSegment(boundary, segment),
6602
- boundary.parentFlushed &&
6603
- request.completedBoundaries.push(boundary),
6604
- boundary.status === COMPLETED &&
6605
- (boundary.fallbackAbortableTasks.forEach(
6606
- abortTaskSoft,
6607
- request
6608
- ),
6609
- boundary.fallbackAbortableTasks.clear(),
6610
- 0 === request.pendingRootTasks &&
6611
- null === request.trackedPostpones &&
6612
- null !== boundary.contentPreamble &&
6613
- preparePreamble(request)))
6614
- : null !== segment &&
6615
- segment.parentFlushed &&
6616
- segment.status === COMPLETED &&
6617
- (queueCompletedSegment(boundary, segment),
6618
- 1 === boundary.completedSegments.length &&
6619
- boundary.parentFlushed &&
6620
- request.partialBoundaries.push(boundary)));
6621
- request.allPendingTasks--;
7240
+ } else if ((boundary.pendingTasks--, boundary.status !== CLIENT_RENDERED))
7241
+ if (0 === boundary.pendingTasks)
7242
+ if (
7243
+ (boundary.status === PENDING && (boundary.status = COMPLETED),
7244
+ null !== segment &&
7245
+ segment.parentFlushed &&
7246
+ (segment.status === COMPLETED || segment.status === ABORTED) &&
7247
+ queueCompletedSegment(boundary, segment),
7248
+ boundary.parentFlushed &&
7249
+ request.completedBoundaries.push(boundary),
7250
+ boundary.status === COMPLETED)
7251
+ )
7252
+ (row = boundary.row),
7253
+ null !== row &&
7254
+ hoistHoistables(row.hoistables, boundary.contentState),
7255
+ isEligibleForOutlining(request, boundary) ||
7256
+ (boundary.fallbackAbortableTasks.forEach(
7257
+ abortTaskSoft,
7258
+ request
7259
+ ),
7260
+ boundary.fallbackAbortableTasks.clear(),
7261
+ null !== row &&
7262
+ 0 === --row.pendingTasks &&
7263
+ finishSuspenseListRow(request, row)),
7264
+ 0 === request.pendingRootTasks &&
7265
+ null === request.trackedPostpones &&
7266
+ null !== boundary.contentPreamble &&
7267
+ preparePreamble(request);
7268
+ else {
7269
+ if (
7270
+ boundary.status === POSTPONED &&
7271
+ ((boundary = boundary.row), null !== boundary)
7272
+ ) {
7273
+ if (null !== request.trackedPostpones) {
7274
+ row = request.trackedPostpones;
7275
+ var postponedRow = boundary.next;
7276
+ if (
7277
+ null !== postponedRow &&
7278
+ ((segment = postponedRow.boundaries), null !== segment)
7279
+ )
7280
+ for (
7281
+ postponedRow.boundaries = null, postponedRow = 0;
7282
+ postponedRow < segment.length;
7283
+ postponedRow++
7284
+ ) {
7285
+ var postponedBoundary = segment[postponedRow];
7286
+ trackPostponedBoundary(request, row, postponedBoundary);
7287
+ finishedTask(request, postponedBoundary, null, null);
7288
+ }
7289
+ }
7290
+ 0 === --boundary.pendingTasks &&
7291
+ finishSuspenseListRow(request, boundary);
7292
+ }
7293
+ }
7294
+ else
7295
+ null === segment ||
7296
+ !segment.parentFlushed ||
7297
+ (segment.status !== COMPLETED && segment.status !== ABORTED) ||
7298
+ (queueCompletedSegment(boundary, segment),
7299
+ 1 === boundary.completedSegments.length &&
7300
+ boundary.parentFlushed &&
7301
+ request.partialBoundaries.push(boundary)),
7302
+ (boundary = boundary.row),
7303
+ null !== boundary &&
7304
+ boundary.together &&
7305
+ tryToResolveTogetherRow(request, boundary);
6622
7306
  0 === request.allPendingTasks && completeAll(request);
6623
7307
  }
6624
7308
  function performWork(request$jscomp$2) {
@@ -6671,7 +7355,12 @@
6671
7355
  );
6672
7356
  request.replay.pendingTasks--;
6673
7357
  request.abortSet.delete(request);
6674
- finishedTask(request$jscomp$0, request.blockedBoundary, null);
7358
+ finishedTask(
7359
+ request$jscomp$0,
7360
+ request.blockedBoundary,
7361
+ request.row,
7362
+ null
7363
+ );
6675
7364
  } catch (thrownValue) {
6676
7365
  resetHooksState();
6677
7366
  var x =
@@ -6685,7 +7374,10 @@
6685
7374
  ) {
6686
7375
  var ping = request.ping;
6687
7376
  x.then(ping, ping);
6688
- request.thenableState = getThenableStateAfterSuspending();
7377
+ request.thenableState =
7378
+ thrownValue === SuspenseException
7379
+ ? getThenableStateAfterSuspending()
7380
+ : null;
6689
7381
  } else {
6690
7382
  request.replay.pendingTasks--;
6691
7383
  request.abortSet.delete(request);
@@ -6752,6 +7444,7 @@
6752
7444
  finishedTask(
6753
7445
  request,
6754
7446
  errorDigest.blockedBoundary,
7447
+ errorDigest.row,
6755
7448
  request$jscomp$1
6756
7449
  );
6757
7450
  } catch (thrownValue) {
@@ -6765,12 +7458,40 @@
6765
7458
  ? request.fatalError
6766
7459
  : thrownValue;
6767
7460
  if (
7461
+ 12 === request.status &&
7462
+ null !== request.trackedPostpones
7463
+ ) {
7464
+ var trackedPostpones = request.trackedPostpones,
7465
+ thrownInfo = getThrownInfo(errorDigest.componentStack);
7466
+ errorDigest.abortSet.delete(errorDigest);
7467
+ logRecoverableError(
7468
+ request,
7469
+ x$jscomp$0,
7470
+ thrownInfo,
7471
+ errorDigest.debugTask
7472
+ );
7473
+ trackPostpone(
7474
+ request,
7475
+ trackedPostpones,
7476
+ errorDigest,
7477
+ request$jscomp$1
7478
+ );
7479
+ finishedTask(
7480
+ request,
7481
+ errorDigest.blockedBoundary,
7482
+ errorDigest.row,
7483
+ request$jscomp$1
7484
+ );
7485
+ } else if (
6768
7486
  "object" === typeof x$jscomp$0 &&
6769
7487
  null !== x$jscomp$0 &&
6770
7488
  "function" === typeof x$jscomp$0.then
6771
7489
  ) {
6772
7490
  request$jscomp$1.status = PENDING;
6773
- errorDigest.thenableState = getThenableStateAfterSuspending();
7491
+ errorDigest.thenableState =
7492
+ thrownValue === SuspenseException
7493
+ ? getThenableStateAfterSuspending()
7494
+ : null;
6774
7495
  var ping$jscomp$0 = errorDigest.ping;
6775
7496
  x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0);
6776
7497
  } else {
@@ -6778,42 +7499,51 @@
6778
7499
  errorDigest.componentStack
6779
7500
  );
6780
7501
  errorDigest.abortSet.delete(errorDigest);
6781
- request$jscomp$1.status = 4;
7502
+ request$jscomp$1.status = ERRORED;
6782
7503
  var boundary$jscomp$0 = errorDigest.blockedBoundary,
7504
+ row = errorDigest.row,
6783
7505
  debugTask = errorDigest.debugTask;
7506
+ null !== row &&
7507
+ 0 === --row.pendingTasks &&
7508
+ finishSuspenseListRow(request, row);
7509
+ request.allPendingTasks--;
6784
7510
  prevTaskInDEV = logRecoverableError(
6785
7511
  request,
6786
7512
  x$jscomp$0,
6787
7513
  errorInfo$jscomp$1,
6788
7514
  debugTask
6789
7515
  );
6790
- null === boundary$jscomp$0
6791
- ? fatalError(
6792
- request,
6793
- x$jscomp$0,
6794
- errorInfo$jscomp$1,
6795
- debugTask
6796
- )
6797
- : (boundary$jscomp$0.pendingTasks--,
6798
- boundary$jscomp$0.status !== CLIENT_RENDERED &&
6799
- ((boundary$jscomp$0.status = CLIENT_RENDERED),
6800
- encodeErrorForBoundary(
6801
- boundary$jscomp$0,
6802
- prevTaskInDEV,
6803
- x$jscomp$0,
6804
- errorInfo$jscomp$1,
6805
- !1
6806
- ),
6807
- untrackBoundary(request, boundary$jscomp$0),
6808
- boundary$jscomp$0.parentFlushed &&
6809
- request.clientRenderedBoundaries.push(
6810
- boundary$jscomp$0
6811
- ),
6812
- 0 === request.pendingRootTasks &&
6813
- null === request.trackedPostpones &&
6814
- null !== boundary$jscomp$0.contentPreamble &&
6815
- preparePreamble(request)));
6816
- request.allPendingTasks--;
7516
+ if (null === boundary$jscomp$0)
7517
+ fatalError(
7518
+ request,
7519
+ x$jscomp$0,
7520
+ errorInfo$jscomp$1,
7521
+ debugTask
7522
+ );
7523
+ else if (
7524
+ (boundary$jscomp$0.pendingTasks--,
7525
+ boundary$jscomp$0.status !== CLIENT_RENDERED)
7526
+ ) {
7527
+ boundary$jscomp$0.status = CLIENT_RENDERED;
7528
+ encodeErrorForBoundary(
7529
+ boundary$jscomp$0,
7530
+ prevTaskInDEV,
7531
+ x$jscomp$0,
7532
+ errorInfo$jscomp$1,
7533
+ !1
7534
+ );
7535
+ untrackBoundary(request, boundary$jscomp$0);
7536
+ var boundaryRow = boundary$jscomp$0.row;
7537
+ null !== boundaryRow &&
7538
+ 0 === --boundaryRow.pendingTasks &&
7539
+ finishSuspenseListRow(request, boundaryRow);
7540
+ boundary$jscomp$0.parentFlushed &&
7541
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
7542
+ 0 === request.pendingRootTasks &&
7543
+ null === request.trackedPostpones &&
7544
+ null !== boundary$jscomp$0.contentPreamble &&
7545
+ preparePreamble(request);
7546
+ }
6817
7547
  0 === request.allPendingTasks && completeAll(request);
6818
7548
  }
6819
7549
  } finally {
@@ -6875,6 +7605,7 @@
6875
7605
  switch (boundary.status) {
6876
7606
  case COMPLETED:
6877
7607
  hoistPreambleState(request.renderState, preamble);
7608
+ request.byteSize += boundary.byteSize;
6878
7609
  segment = boundary.completedSegments[0];
6879
7610
  if (!segment)
6880
7611
  throw Error(
@@ -6907,17 +7638,17 @@
6907
7638
  null === request.completedPreambleSegments
6908
7639
  ) {
6909
7640
  var collectedPreambleSegments = [],
7641
+ originalRequestByteSize = request.byteSize,
6910
7642
  hasPendingPreambles = preparePreambleFromSegment(
6911
7643
  request,
6912
7644
  request.completedRootSegment,
6913
7645
  collectedPreambleSegments
6914
7646
  ),
6915
7647
  preamble = request.renderState.preamble;
6916
- if (
6917
- !1 === hasPendingPreambles ||
6918
- (preamble.headChunks && preamble.bodyChunks)
6919
- )
6920
- request.completedPreambleSegments = collectedPreambleSegments;
7648
+ !1 === hasPendingPreambles ||
7649
+ (preamble.headChunks && preamble.bodyChunks)
7650
+ ? (request.completedPreambleSegments = collectedPreambleSegments)
7651
+ : (request.byteSize = originalRequestByteSize);
6921
7652
  }
6922
7653
  }
6923
7654
  function flushSubtree(request, destination, segment, hoistableState) {
@@ -6952,6 +7683,8 @@
6952
7683
  destination.push(chunks[chunkIdx]);
6953
7684
  chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx]));
6954
7685
  return r;
7686
+ case ABORTED:
7687
+ return !0;
6955
7688
  default:
6956
7689
  throw Error(
6957
7690
  "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React."
@@ -6964,11 +7697,15 @@
6964
7697
  return flushSubtree(request, destination, segment, hoistableState);
6965
7698
  boundary.parentFlushed = !0;
6966
7699
  if (boundary.status === CLIENT_RENDERED) {
7700
+ var row = boundary.row;
7701
+ null !== row &&
7702
+ 0 === --row.pendingTasks &&
7703
+ finishSuspenseListRow(request, row);
6967
7704
  if (!request.renderState.generateStaticMarkup) {
6968
7705
  var errorDigest = boundary.errorDigest,
6969
- errorMessage = boundary.errorMessage,
6970
- errorStack = boundary.errorStack,
6971
- errorComponentStack = boundary.errorComponentStack;
7706
+ errorMessage = boundary.errorMessage;
7707
+ row = boundary.errorStack;
7708
+ boundary = boundary.errorComponentStack;
6972
7709
  destination.push(startClientRenderedSuspenseBoundary);
6973
7710
  destination.push(clientRenderedSuspenseBoundaryError1);
6974
7711
  errorDigest &&
@@ -6985,29 +7722,27 @@
6985
7722
  destination.push(
6986
7723
  clientRenderedSuspenseBoundaryErrorAttrInterstitial
6987
7724
  ));
6988
- errorStack &&
7725
+ row &&
6989
7726
  (destination.push(clientRenderedSuspenseBoundaryError1C),
6990
- (errorStack = escapeTextForBrowser(errorStack)),
6991
- destination.push(errorStack),
7727
+ (row = escapeTextForBrowser(row)),
7728
+ destination.push(row),
6992
7729
  destination.push(
6993
7730
  clientRenderedSuspenseBoundaryErrorAttrInterstitial
6994
7731
  ));
6995
- errorComponentStack &&
7732
+ boundary &&
6996
7733
  (destination.push(clientRenderedSuspenseBoundaryError1D),
6997
- (errorComponentStack = escapeTextForBrowser(errorComponentStack)),
6998
- destination.push(errorComponentStack),
7734
+ (row = escapeTextForBrowser(boundary)),
7735
+ destination.push(row),
6999
7736
  destination.push(
7000
7737
  clientRenderedSuspenseBoundaryErrorAttrInterstitial
7001
7738
  ));
7002
7739
  destination.push(clientRenderedSuspenseBoundaryError2);
7003
7740
  }
7004
7741
  flushSubtree(request, destination, segment, hoistableState);
7005
- request.renderState.generateStaticMarkup
7006
- ? (destination = !0)
7007
- : ((request = boundary.fallbackPreamble) &&
7008
- writePreambleContribution(destination, request),
7009
- (destination = destination.push(endSuspenseBoundary)));
7010
- return destination;
7742
+ request = request.renderState.generateStaticMarkup
7743
+ ? !0
7744
+ : destination.push(endSuspenseBoundary);
7745
+ return request;
7011
7746
  }
7012
7747
  if (boundary.status !== COMPLETED)
7013
7748
  return (
@@ -7021,16 +7756,15 @@
7021
7756
  boundary.rootSegmentID
7022
7757
  ),
7023
7758
  hoistableState &&
7024
- ((boundary = boundary.fallbackState),
7025
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
7026
- boundary.stylesheets.forEach(
7027
- hoistStylesheetDependency,
7028
- hoistableState
7029
- )),
7759
+ hoistHoistables(hoistableState, boundary.fallbackState),
7030
7760
  flushSubtree(request, destination, segment, hoistableState),
7031
7761
  destination.push(endSuspenseBoundary)
7032
7762
  );
7033
- if (boundary.byteSize > request.progressiveChunkSize)
7763
+ if (
7764
+ !flushingPartialBoundaries &&
7765
+ isEligibleForOutlining(request, boundary) &&
7766
+ flushedByteSize + boundary.byteSize > request.progressiveChunkSize
7767
+ )
7034
7768
  return (
7035
7769
  (boundary.rootSegmentID = request.nextSegmentId++),
7036
7770
  request.completedBoundaries.push(boundary),
@@ -7042,10 +7776,13 @@
7042
7776
  flushSubtree(request, destination, segment, hoistableState),
7043
7777
  destination.push(endSuspenseBoundary)
7044
7778
  );
7045
- hoistableState &&
7046
- ((segment = boundary.contentState),
7047
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
7048
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
7779
+ flushedByteSize += boundary.byteSize;
7780
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
7781
+ segment = boundary.row;
7782
+ null !== segment &&
7783
+ isEligibleForOutlining(request, boundary) &&
7784
+ 0 === --segment.pendingTasks &&
7785
+ finishSuspenseListRow(request, segment);
7049
7786
  request.renderState.generateStaticMarkup ||
7050
7787
  destination.push(startCompletedSuspenseBoundary);
7051
7788
  segment = boundary.completedSegments;
@@ -7054,12 +7791,10 @@
7054
7791
  "A previously unvisited boundary must have exactly one root segment. This is a bug in React."
7055
7792
  );
7056
7793
  flushSegment(request, destination, segment[0], hoistableState);
7057
- request.renderState.generateStaticMarkup
7058
- ? (destination = !0)
7059
- : ((request = boundary.contentPreamble) &&
7060
- writePreambleContribution(destination, request),
7061
- (destination = destination.push(endSuspenseBoundary)));
7062
- return destination;
7794
+ request = request.renderState.generateStaticMarkup
7795
+ ? !0
7796
+ : destination.push(endSuspenseBoundary);
7797
+ return request;
7063
7798
  }
7064
7799
  function flushSegmentContainer(
7065
7800
  request,
@@ -7077,6 +7812,7 @@
7077
7812
  return writeEndSegment(destination, segment.parentFormatContext);
7078
7813
  }
7079
7814
  function flushCompletedBoundary(request, destination, boundary) {
7815
+ flushedByteSize = boundary.byteSize;
7080
7816
  for (
7081
7817
  var completedSegments = boundary.completedSegments, i = 0;
7082
7818
  i < completedSegments.length;
@@ -7089,6 +7825,11 @@
7089
7825
  completedSegments[i]
7090
7826
  );
7091
7827
  completedSegments.length = 0;
7828
+ completedSegments = boundary.row;
7829
+ null !== completedSegments &&
7830
+ isEligibleForOutlining(request, boundary) &&
7831
+ 0 === --completedSegments.pendingTasks &&
7832
+ finishSuspenseListRow(request, completedSegments);
7092
7833
  writeHoistablesForBoundary(
7093
7834
  destination,
7094
7835
  boundary.contentState,
@@ -7101,24 +7842,26 @@
7101
7842
  var requiresStyleInsertion = request.stylesToHoist;
7102
7843
  request.stylesToHoist = !1;
7103
7844
  destination.push(request.startInlineScript);
7845
+ destination.push(endOfStartTag);
7104
7846
  requiresStyleInsertion
7105
- ? (completedSegments.instructions & SentCompleteBoundaryFunction) ===
7847
+ ? ((completedSegments.instructions & SentClientRenderFunction) ===
7848
+ NothingSent &&
7849
+ ((completedSegments.instructions |= SentClientRenderFunction),
7850
+ destination.push(clientRenderScriptFunctionOnly)),
7851
+ (completedSegments.instructions & SentCompleteBoundaryFunction) ===
7852
+ NothingSent &&
7853
+ ((completedSegments.instructions |= SentCompleteBoundaryFunction),
7854
+ destination.push(completeBoundaryScriptFunctionOnly)),
7855
+ (completedSegments.instructions & SentStyleInsertionFunction) ===
7106
7856
  NothingSent
7107
- ? ((completedSegments.instructions =
7108
- completedSegments.instructions |
7109
- SentStyleInsertionFunction |
7110
- SentCompleteBoundaryFunction),
7111
- destination.push(completeBoundaryWithStylesScript1FullBoth))
7112
- : (completedSegments.instructions & SentStyleInsertionFunction) ===
7113
- NothingSent
7114
7857
  ? ((completedSegments.instructions |= SentStyleInsertionFunction),
7115
7858
  destination.push(completeBoundaryWithStylesScript1FullPartial))
7116
- : destination.push(completeBoundaryWithStylesScript1Partial)
7117
- : (completedSegments.instructions & SentCompleteBoundaryFunction) ===
7118
- NothingSent
7119
- ? ((completedSegments.instructions |= SentCompleteBoundaryFunction),
7120
- destination.push(completeBoundaryScript1Full))
7121
- : destination.push(completeBoundaryScript1Partial);
7859
+ : destination.push(completeBoundaryWithStylesScript1Partial))
7860
+ : ((completedSegments.instructions & SentCompleteBoundaryFunction) ===
7861
+ NothingSent &&
7862
+ ((completedSegments.instructions |= SentCompleteBoundaryFunction),
7863
+ destination.push(completeBoundaryScriptFunctionOnly)),
7864
+ destination.push(completeBoundaryScript1Partial));
7122
7865
  completedSegments = i.toString(16);
7123
7866
  destination.push(request.boundaryPrefix);
7124
7867
  destination.push(completedSegments);
@@ -7164,6 +7907,7 @@
7164
7907
  boundary = request.resumableState;
7165
7908
  request = request.renderState;
7166
7909
  destination.push(request.startInlineScript);
7910
+ destination.push(endOfStartTag);
7167
7911
  (boundary.instructions & SentCompleteSegmentFunction) === NothingSent
7168
7912
  ? ((boundary.instructions |= SentCompleteSegmentFunction),
7169
7913
  destination.push(completeSegmentScript1Full))
@@ -7186,7 +7930,9 @@
7186
7930
  if (completedRootSegment.status === POSTPONED) return;
7187
7931
  var completedPreambleSegments = request.completedPreambleSegments;
7188
7932
  if (null === completedPreambleSegments) return;
7189
- var renderState = request.renderState,
7933
+ flushedByteSize = request.byteSize;
7934
+ var resumableState = request.resumableState,
7935
+ renderState = request.renderState,
7190
7936
  preamble = renderState.preamble,
7191
7937
  htmlChunks = preamble.htmlChunks,
7192
7938
  headChunks = preamble.headChunks,
@@ -7231,7 +7977,9 @@
7231
7977
  renderState.fontPreloads.clear();
7232
7978
  renderState.highImagePreloads.forEach(flushResource, destination);
7233
7979
  renderState.highImagePreloads.clear();
7980
+ currentlyFlushingRenderState = renderState;
7234
7981
  renderState.styles.forEach(flushStylesInPreamble, destination);
7982
+ currentlyFlushingRenderState = null;
7235
7983
  var importMapChunks = renderState.importMapChunks;
7236
7984
  for (
7237
7985
  i$jscomp$0 = 0;
@@ -7245,6 +7993,7 @@
7245
7993
  renderState.scripts.clear();
7246
7994
  renderState.bulkPreloads.forEach(flushResource, destination);
7247
7995
  renderState.bulkPreloads.clear();
7996
+ resumableState.instructions |= SentCompletedShellId;
7248
7997
  var hoistableChunks = renderState.hoistableChunks;
7249
7998
  for (
7250
7999
  i$jscomp$0 = 0;
@@ -7253,13 +8002,17 @@
7253
8002
  )
7254
8003
  destination.push(hoistableChunks[i$jscomp$0]);
7255
8004
  for (
7256
- renderState = hoistableChunks.length = 0;
7257
- renderState < completedPreambleSegments.length;
7258
- renderState++
8005
+ resumableState = hoistableChunks.length = 0;
8006
+ resumableState < completedPreambleSegments.length;
8007
+ resumableState++
7259
8008
  ) {
7260
- var segments = completedPreambleSegments[renderState];
7261
- for (preamble = 0; preamble < segments.length; preamble++)
7262
- flushSegment(request, destination, segments[preamble], null);
8009
+ var segments = completedPreambleSegments[resumableState];
8010
+ for (
8011
+ renderState = 0;
8012
+ renderState < segments.length;
8013
+ renderState++
8014
+ )
8015
+ flushSegment(request, destination, segments[renderState], null);
7263
8016
  }
7264
8017
  var preamble$jscomp$0 = request.renderState.preamble,
7265
8018
  headChunks$jscomp$0 = preamble$jscomp$0.headChunks;
@@ -7277,11 +8030,44 @@
7277
8030
  destination.push(bodyChunks[completedPreambleSegments]);
7278
8031
  flushSegment(request, destination, completedRootSegment, null);
7279
8032
  request.completedRootSegment = null;
7280
- writeBootstrap(destination, request.renderState);
8033
+ var renderState$jscomp$0 = request.renderState;
8034
+ if (
8035
+ 0 !== request.allPendingTasks ||
8036
+ 0 !== request.clientRenderedBoundaries.length ||
8037
+ 0 !== request.completedBoundaries.length ||
8038
+ (null !== request.trackedPostpones &&
8039
+ (0 !== request.trackedPostpones.rootNodes.length ||
8040
+ null !== request.trackedPostpones.rootSlots))
8041
+ ) {
8042
+ var resumableState$jscomp$0 = request.resumableState;
8043
+ if (
8044
+ (resumableState$jscomp$0.instructions & SentMarkShellTime) ===
8045
+ NothingSent
8046
+ ) {
8047
+ resumableState$jscomp$0.instructions |= SentMarkShellTime;
8048
+ destination.push(renderState$jscomp$0.startInlineScript);
8049
+ if (
8050
+ (resumableState$jscomp$0.instructions &
8051
+ SentCompletedShellId) ===
8052
+ NothingSent
8053
+ ) {
8054
+ resumableState$jscomp$0.instructions |= SentCompletedShellId;
8055
+ var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_";
8056
+ destination.push(completedShellIdAttributeStart);
8057
+ var chunk$jscomp$1 = escapeTextForBrowser(shellId);
8058
+ destination.push(chunk$jscomp$1);
8059
+ destination.push(attributeEnd);
8060
+ }
8061
+ destination.push(endOfStartTag);
8062
+ destination.push(shellTimeRuntimeScript);
8063
+ destination.push(endInlineScript);
8064
+ }
8065
+ }
8066
+ writeBootstrap(destination, renderState$jscomp$0);
7281
8067
  }
7282
- var renderState$jscomp$0 = request.renderState;
8068
+ var renderState$jscomp$1 = request.renderState;
7283
8069
  completedRootSegment = 0;
7284
- var viewportChunks$jscomp$0 = renderState$jscomp$0.viewportChunks;
8070
+ var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks;
7285
8071
  for (
7286
8072
  completedRootSegment = 0;
7287
8073
  completedRootSegment < viewportChunks$jscomp$0.length;
@@ -7289,21 +8075,21 @@
7289
8075
  )
7290
8076
  destination.push(viewportChunks$jscomp$0[completedRootSegment]);
7291
8077
  viewportChunks$jscomp$0.length = 0;
7292
- renderState$jscomp$0.preconnects.forEach(flushResource, destination);
7293
- renderState$jscomp$0.preconnects.clear();
7294
- renderState$jscomp$0.fontPreloads.forEach(flushResource, destination);
7295
- renderState$jscomp$0.fontPreloads.clear();
7296
- renderState$jscomp$0.highImagePreloads.forEach(
8078
+ renderState$jscomp$1.preconnects.forEach(flushResource, destination);
8079
+ renderState$jscomp$1.preconnects.clear();
8080
+ renderState$jscomp$1.fontPreloads.forEach(flushResource, destination);
8081
+ renderState$jscomp$1.fontPreloads.clear();
8082
+ renderState$jscomp$1.highImagePreloads.forEach(
7297
8083
  flushResource,
7298
8084
  destination
7299
8085
  );
7300
- renderState$jscomp$0.highImagePreloads.clear();
7301
- renderState$jscomp$0.styles.forEach(preloadLateStyles, destination);
7302
- renderState$jscomp$0.scripts.forEach(flushResource, destination);
7303
- renderState$jscomp$0.scripts.clear();
7304
- renderState$jscomp$0.bulkPreloads.forEach(flushResource, destination);
7305
- renderState$jscomp$0.bulkPreloads.clear();
7306
- var hoistableChunks$jscomp$0 = renderState$jscomp$0.hoistableChunks;
8086
+ renderState$jscomp$1.highImagePreloads.clear();
8087
+ renderState$jscomp$1.styles.forEach(preloadLateStyles, destination);
8088
+ renderState$jscomp$1.scripts.forEach(flushResource, destination);
8089
+ renderState$jscomp$1.scripts.clear();
8090
+ renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination);
8091
+ renderState$jscomp$1.bulkPreloads.clear();
8092
+ var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks;
7307
8093
  for (
7308
8094
  completedRootSegment = 0;
7309
8095
  completedRootSegment < hoistableChunks$jscomp$0.length;
@@ -7314,57 +8100,60 @@
7314
8100
  var clientRenderedBoundaries = request.clientRenderedBoundaries;
7315
8101
  for (i = 0; i < clientRenderedBoundaries.length; i++) {
7316
8102
  var boundary = clientRenderedBoundaries[i];
7317
- renderState$jscomp$0 = destination;
7318
- var resumableState = request.resumableState,
7319
- renderState$jscomp$1 = request.renderState,
8103
+ renderState$jscomp$1 = destination;
8104
+ var resumableState$jscomp$1 = request.resumableState,
8105
+ renderState$jscomp$2 = request.renderState,
7320
8106
  id = boundary.rootSegmentID,
7321
8107
  errorDigest = boundary.errorDigest,
7322
8108
  errorMessage = boundary.errorMessage,
7323
8109
  errorStack = boundary.errorStack,
7324
8110
  errorComponentStack = boundary.errorComponentStack;
7325
- renderState$jscomp$0.push(renderState$jscomp$1.startInlineScript);
7326
- (resumableState.instructions & SentClientRenderFunction) ===
8111
+ renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript);
8112
+ renderState$jscomp$1.push(endOfStartTag);
8113
+ (resumableState$jscomp$1.instructions &
8114
+ SentClientRenderFunction) ===
7327
8115
  NothingSent
7328
- ? ((resumableState.instructions |= SentClientRenderFunction),
7329
- renderState$jscomp$0.push(clientRenderScript1Full))
7330
- : renderState$jscomp$0.push(clientRenderScript1Partial);
7331
- renderState$jscomp$0.push(renderState$jscomp$1.boundaryPrefix);
7332
- var chunk$jscomp$1 = id.toString(16);
7333
- renderState$jscomp$0.push(chunk$jscomp$1);
7334
- renderState$jscomp$0.push(clientRenderScript1A);
8116
+ ? ((resumableState$jscomp$1.instructions |=
8117
+ SentClientRenderFunction),
8118
+ renderState$jscomp$1.push(clientRenderScript1Full))
8119
+ : renderState$jscomp$1.push(clientRenderScript1Partial);
8120
+ renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix);
8121
+ var chunk$jscomp$2 = id.toString(16);
8122
+ renderState$jscomp$1.push(chunk$jscomp$2);
8123
+ renderState$jscomp$1.push(clientRenderScript1A);
7335
8124
  if (
7336
8125
  errorDigest ||
7337
8126
  errorMessage ||
7338
8127
  errorStack ||
7339
8128
  errorComponentStack
7340
8129
  ) {
7341
- renderState$jscomp$0.push(clientRenderErrorScriptArgInterstitial);
7342
- var chunk$jscomp$2 = escapeJSStringsForInstructionScripts(
8130
+ renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
8131
+ var chunk$jscomp$3 = escapeJSStringsForInstructionScripts(
7343
8132
  errorDigest || ""
7344
8133
  );
7345
- renderState$jscomp$0.push(chunk$jscomp$2);
8134
+ renderState$jscomp$1.push(chunk$jscomp$3);
7346
8135
  }
7347
8136
  if (errorMessage || errorStack || errorComponentStack) {
7348
- renderState$jscomp$0.push(clientRenderErrorScriptArgInterstitial);
7349
- var chunk$jscomp$3 = escapeJSStringsForInstructionScripts(
8137
+ renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
8138
+ var chunk$jscomp$4 = escapeJSStringsForInstructionScripts(
7350
8139
  errorMessage || ""
7351
8140
  );
7352
- renderState$jscomp$0.push(chunk$jscomp$3);
8141
+ renderState$jscomp$1.push(chunk$jscomp$4);
7353
8142
  }
7354
8143
  if (errorStack || errorComponentStack) {
7355
- renderState$jscomp$0.push(clientRenderErrorScriptArgInterstitial);
7356
- var chunk$jscomp$4 = escapeJSStringsForInstructionScripts(
8144
+ renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
8145
+ var chunk$jscomp$5 = escapeJSStringsForInstructionScripts(
7357
8146
  errorStack || ""
7358
8147
  );
7359
- renderState$jscomp$0.push(chunk$jscomp$4);
8148
+ renderState$jscomp$1.push(chunk$jscomp$5);
7360
8149
  }
7361
8150
  if (errorComponentStack) {
7362
- renderState$jscomp$0.push(clientRenderErrorScriptArgInterstitial);
7363
- var chunk$jscomp$5 =
8151
+ renderState$jscomp$1.push(clientRenderErrorScriptArgInterstitial);
8152
+ var chunk$jscomp$6 =
7364
8153
  escapeJSStringsForInstructionScripts(errorComponentStack);
7365
- renderState$jscomp$0.push(chunk$jscomp$5);
8154
+ renderState$jscomp$1.push(chunk$jscomp$6);
7366
8155
  }
7367
- var JSCompiler_inline_result = renderState$jscomp$0.push(
8156
+ var JSCompiler_inline_result = renderState$jscomp$1.push(
7368
8157
  clientRenderScriptEnd
7369
8158
  );
7370
8159
  if (!JSCompiler_inline_result) {
@@ -7390,13 +8179,15 @@
7390
8179
  return;
7391
8180
  }
7392
8181
  completedBoundaries.splice(0, i);
8182
+ flushingPartialBoundaries = !0;
7393
8183
  var partialBoundaries = request.partialBoundaries;
7394
8184
  for (i = 0; i < partialBoundaries.length; i++) {
7395
8185
  a: {
7396
8186
  clientRenderedBoundaries = request;
7397
8187
  boundary = destination;
7398
- var boundary$jscomp$0 = partialBoundaries[i],
7399
- completedSegments = boundary$jscomp$0.completedSegments;
8188
+ var boundary$jscomp$0 = partialBoundaries[i];
8189
+ flushedByteSize = boundary$jscomp$0.byteSize;
8190
+ var completedSegments = boundary$jscomp$0.completedSegments;
7400
8191
  for (
7401
8192
  JSCompiler_inline_result = 0;
7402
8193
  JSCompiler_inline_result < completedSegments.length;
@@ -7416,6 +8207,17 @@
7416
8207
  break a;
7417
8208
  }
7418
8209
  completedSegments.splice(0, JSCompiler_inline_result);
8210
+ var row = boundary$jscomp$0.row;
8211
+ null !== row &&
8212
+ row.together &&
8213
+ 1 === boundary$jscomp$0.pendingTasks &&
8214
+ (1 === row.pendingTasks
8215
+ ? unblockSuspenseListRow(
8216
+ clientRenderedBoundaries,
8217
+ row,
8218
+ row.hoistables
8219
+ )
8220
+ : row.pendingTasks--);
7419
8221
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
7420
8222
  boundary,
7421
8223
  boundary$jscomp$0.contentState,
@@ -7430,6 +8232,7 @@
7430
8232
  }
7431
8233
  }
7432
8234
  partialBoundaries.splice(0, i);
8235
+ flushingPartialBoundaries = !1;
7433
8236
  var largeBoundaries = request.completedBoundaries;
7434
8237
  for (i = 0; i < largeBoundaries.length; i++)
7435
8238
  if (
@@ -7443,23 +8246,23 @@
7443
8246
  largeBoundaries.splice(0, i);
7444
8247
  }
7445
8248
  } finally {
7446
- 0 === request.allPendingTasks &&
7447
- 0 === request.pingedTasks.length &&
7448
- 0 === request.clientRenderedBoundaries.length &&
7449
- 0 === request.completedBoundaries.length &&
7450
- ((request.flushScheduled = !1),
7451
- (i = request.resumableState),
7452
- i.hasBody &&
7453
- ((partialBoundaries = endChunkForTag("body")),
7454
- destination.push(partialBoundaries)),
7455
- i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
7456
- 0 !== request.abortableTasks.size &&
7457
- console.error(
7458
- "There was still abortable task at the root when we closed. This is a bug in React."
7459
- ),
7460
- (request.status = CLOSED),
7461
- destination.push(null),
7462
- (request.destination = null));
8249
+ (flushingPartialBoundaries = !1),
8250
+ 0 === request.allPendingTasks &&
8251
+ 0 === request.clientRenderedBoundaries.length &&
8252
+ 0 === request.completedBoundaries.length &&
8253
+ ((request.flushScheduled = !1),
8254
+ (i = request.resumableState),
8255
+ i.hasBody &&
8256
+ ((partialBoundaries = endChunkForTag("body")),
8257
+ destination.push(partialBoundaries)),
8258
+ i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)),
8259
+ 0 !== request.abortableTasks.size &&
8260
+ console.error(
8261
+ "There was still abortable task at the root when we closed. This is a bug in React."
8262
+ ),
8263
+ (request.status = CLOSED),
8264
+ destination.push(null),
8265
+ (request.destination = null));
7463
8266
  }
7464
8267
  }
7465
8268
  function startWork(request) {
@@ -7511,7 +8314,17 @@
7511
8314
  : reason;
7512
8315
  request.fatalError = error;
7513
8316
  abortableTasks.forEach(function (task) {
7514
- return abortTask(task, request, error);
8317
+ var prevTaskInDEV = currentTaskInDEV,
8318
+ prevGetCurrentStackImpl = ReactSharedInternals.getCurrentStack;
8319
+ currentTaskInDEV = task;
8320
+ ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;
8321
+ try {
8322
+ abortTask(task, request, error);
8323
+ } finally {
8324
+ (currentTaskInDEV = prevTaskInDEV),
8325
+ (ReactSharedInternals.getCurrentStack =
8326
+ prevGetCurrentStackImpl);
8327
+ }
7515
8328
  });
7516
8329
  abortableTasks.clear();
7517
8330
  }
@@ -7523,6 +8336,18 @@
7523
8336
  fatalError(request, error$4, reason, null);
7524
8337
  }
7525
8338
  }
8339
+ function addToReplayParent(node, parentKeyPath, trackedPostpones) {
8340
+ if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
8341
+ else {
8342
+ var workingMap = trackedPostpones.workingMap,
8343
+ parentNode = workingMap.get(parentKeyPath);
8344
+ void 0 === parentNode &&
8345
+ ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
8346
+ workingMap.set(parentKeyPath, parentNode),
8347
+ addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
8348
+ parentNode[2].push(node);
8349
+ }
8350
+ }
7526
8351
  function onError() {}
7527
8352
  function renderToStringImpl(
7528
8353
  children,
@@ -7541,7 +8366,7 @@
7541
8366
  children,
7542
8367
  options,
7543
8368
  createRenderState(options, generateStaticMarkup),
7544
- createFormatContext(ROOT_HTML_MODE, null, 0),
8369
+ createFormatContext(ROOT_HTML_MODE, null, 0, null),
7545
8370
  Infinity,
7546
8371
  onError,
7547
8372
  void 0,
@@ -7578,7 +8403,6 @@
7578
8403
  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
7579
8404
  REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
7580
8405
  REACT_PROFILER_TYPE = Symbol.for("react.profiler"),
7581
- REACT_PROVIDER_TYPE = Symbol.for("react.provider"),
7582
8406
  REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
7583
8407
  REACT_CONTEXT_TYPE = Symbol.for("react.context"),
7584
8408
  REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
@@ -7746,7 +8570,11 @@
7746
8570
  "aria-rowcount": 0,
7747
8571
  "aria-rowindex": 0,
7748
8572
  "aria-rowspan": 0,
7749
- "aria-setsize": 0
8573
+ "aria-setsize": 0,
8574
+ "aria-braillelabel": 0,
8575
+ "aria-brailleroledescription": 0,
8576
+ "aria-colindextext": 0,
8577
+ "aria-rowindextext": 0
7750
8578
  },
7751
8579
  warnedProperties$1 = {},
7752
8580
  rARIA$1 = RegExp(
@@ -8639,13 +9467,16 @@
8639
9467
  SentCompleteBoundaryFunction = 2,
8640
9468
  SentClientRenderFunction = 4,
8641
9469
  SentStyleInsertionFunction = 8,
9470
+ SentCompletedShellId = 32,
9471
+ SentMarkShellTime = 64,
8642
9472
  EXISTS = null,
8643
9473
  PRELOAD_NO_CREDS = [];
8644
9474
  Object.freeze(PRELOAD_NO_CREDS);
8645
- var scriptRegex = /(<\/|<)(s)(cript)/gi;
9475
+ var currentlyFlushingRenderState = null,
9476
+ endInlineScript = "\x3c/script>",
9477
+ scriptRegex = /(<\/|<)(s)(cript)/gi;
8646
9478
  var didWarnForNewBooleanPropsWithEmptyValue = {};
8647
- var NoContribution = 0,
8648
- ROOT_HTML_MODE = 0,
9479
+ var ROOT_HTML_MODE = 0,
8649
9480
  HTML_HTML_MODE = 1,
8650
9481
  HTML_MODE = 2,
8651
9482
  HTML_HEAD_MODE = 3,
@@ -8686,6 +9517,8 @@
8686
9517
  VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,
8687
9518
  validatedTagCache = new Map(),
8688
9519
  endTagCache = new Map(),
9520
+ shellTimeRuntimeScript =
9521
+ "requestAnimationFrame(function(){$RT=performance.now()});",
8689
9522
  placeholder1 = '<template id="',
8690
9523
  placeholder2 = '"></template>',
8691
9524
  startCompletedSuspenseBoundary = "\x3c!--$--\x3e",
@@ -8700,8 +9533,6 @@
8700
9533
  clientRenderedSuspenseBoundaryError1C = ' data-stck="',
8701
9534
  clientRenderedSuspenseBoundaryError1D = ' data-cstck="',
8702
9535
  clientRenderedSuspenseBoundaryError2 = "></template>",
8703
- boundaryPreambleContributionChunkStart = "\x3c!--",
8704
- boundaryPreambleContributionChunkEnd = "--\x3e",
8705
9536
  startSegmentHTML = '<div hidden id="',
8706
9537
  startSegmentHTML2 = '">',
8707
9538
  endSegmentHTML = "</div>",
@@ -8728,18 +9559,18 @@
8728
9559
  completeSegmentScript1Partial = '$RS("',
8729
9560
  completeSegmentScript2 = '","',
8730
9561
  completeSegmentScriptEnd = '")\x3c/script>',
8731
- completeBoundaryScript1Full =
8732
- '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("',
9562
+ completeBoundaryScriptFunctionOnly =
9563
+ '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};',
8733
9564
  completeBoundaryScript1Partial = '$RC("',
8734
- completeBoundaryWithStylesScript1FullBoth =
8735
- '$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RM=new Map;\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),x=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?x.push(b):("LINK"===b.tagName&&p.set(b.getAttribute("href"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement("link");a.href=\nd;a.rel="stylesheet";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute("media");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\nt,u,""),w.bind(null,t,u,"Resource failed to load"))};$RR("',
8736
9565
  completeBoundaryWithStylesScript1FullPartial =
8737
- '$RM=new Map;\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll("link[data-precedence],style[data-precedence]"),x=[],k=0;b=h[k++];)"not all"===b.getAttribute("media")?x.push(b):("LINK"===b.tagName&&p.set(b.getAttribute("href"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement("link");a.href=\nd;a.rel="stylesheet";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute("media");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\nt,u,""),w.bind(null,t,u,"Resource failed to load"))};$RR("',
9566
+ '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("',
8738
9567
  completeBoundaryWithStylesScript1Partial = '$RR("',
8739
9568
  completeBoundaryScript2 = '","',
8740
9569
  completeBoundaryScript3a = '",',
8741
9570
  completeBoundaryScript3b = '"',
8742
9571
  completeBoundaryScriptEnd = ")\x3c/script>",
9572
+ clientRenderScriptFunctionOnly =
9573
+ '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};',
8743
9574
  clientRenderScript1Full =
8744
9575
  '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("',
8745
9576
  clientRenderScript1Partial = '$RX("',
@@ -8748,18 +9579,19 @@
8748
9579
  clientRenderScriptEnd = ")\x3c/script>",
8749
9580
  regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g,
8750
9581
  regexForJSStringsInScripts = /[&><\u2028\u2029]/g,
8751
- lateStyleTagResourceOpen1 = '<style media="not all" data-precedence="',
9582
+ lateStyleTagResourceOpen1 = ' media="not all" data-precedence="',
8752
9583
  lateStyleTagResourceOpen2 = '" data-href="',
8753
9584
  lateStyleTagResourceOpen3 = '">',
8754
9585
  lateStyleTagTemplateClose = "</style>",
8755
9586
  currentlyRenderingBoundaryHasStylesToHoist = !1,
8756
9587
  destinationHasCapacity = !0,
8757
9588
  stylesheetFlushingQueue = [],
8758
- styleTagResourceOpen1 = '<style data-precedence="',
9589
+ styleTagResourceOpen1 = ' data-precedence="',
8759
9590
  styleTagResourceOpen2 = '" data-href="',
8760
9591
  spaceSeparator = " ",
8761
9592
  styleTagResourceOpen3 = '">',
8762
9593
  styleTagResourceClose = "</style>",
9594
+ completedShellIdAttributeStart = ' id="',
8763
9595
  arrayFirstOpenBracket = "[",
8764
9596
  arraySubsequentOpenBracket = ",[",
8765
9597
  arrayInterstitial = ",",
@@ -8874,16 +9706,16 @@
8874
9706
  currentHookNameInDev = "useState";
8875
9707
  return useReducer(basicStateReducer, initialState);
8876
9708
  },
8877
- useInsertionEffect: noop$1,
8878
- useLayoutEffect: noop$1,
9709
+ useInsertionEffect: noop,
9710
+ useLayoutEffect: noop,
8879
9711
  useCallback: function (callback, deps) {
8880
9712
  return useMemo(function () {
8881
9713
  return callback;
8882
9714
  }, deps);
8883
9715
  },
8884
- useImperativeHandle: noop$1,
8885
- useEffect: noop$1,
8886
- useDebugValue: noop$1,
9716
+ useImperativeHandle: noop,
9717
+ useEffect: noop,
9718
+ useDebugValue: noop,
8887
9719
  useDeferredValue: function (value, initialValue) {
8888
9720
  resolveCurrentlyRenderingComponent();
8889
9721
  return void 0 !== initialValue ? initialValue : value;
@@ -8904,9 +9736,9 @@
8904
9736
  "Invalid hook call. Hooks can only be called inside of the body of a function component."
8905
9737
  );
8906
9738
  overflow = localIdCounter++;
8907
- treeId = "\u00ab" + resumableState.idPrefix + "R" + treeId;
9739
+ treeId = "_" + resumableState.idPrefix + "R_" + treeId;
8908
9740
  0 < overflow && (treeId += "H" + overflow.toString(32));
8909
- return treeId + "\u00bb";
9741
+ return treeId + "_";
8910
9742
  },
8911
9743
  useSyncExternalStore: function (
8912
9744
  subscribe,
@@ -8936,6 +9768,9 @@
8936
9768
  },
8937
9769
  useCacheRefresh: function () {
8938
9770
  return unsupportedRefresh;
9771
+ },
9772
+ useEffectEvent: function () {
9773
+ return throwOnUseEffectEventCall;
8939
9774
  }
8940
9775
  },
8941
9776
  currentResumableState = null,
@@ -8944,6 +9779,9 @@
8944
9779
  getCacheForType: function () {
8945
9780
  throw Error("Not implemented.");
8946
9781
  },
9782
+ cacheSignal: function () {
9783
+ throw Error("Not implemented.");
9784
+ },
8947
9785
  getOwner: function () {
8948
9786
  return null === currentTaskInDEV
8949
9787
  ? null
@@ -8966,26 +9804,26 @@
8966
9804
  "function" === typeof WeakMap ? WeakMap : Map
8967
9805
  )();
8968
9806
  var callComponent = {
8969
- "react-stack-bottom-frame": function (Component, props, secondArg) {
9807
+ react_stack_bottom_frame: function (Component, props, secondArg) {
8970
9808
  return Component(props, secondArg);
8971
9809
  }
8972
9810
  },
8973
9811
  callComponentInDEV =
8974
- callComponent["react-stack-bottom-frame"].bind(callComponent),
9812
+ callComponent.react_stack_bottom_frame.bind(callComponent),
8975
9813
  callRender = {
8976
- "react-stack-bottom-frame": function (instance) {
9814
+ react_stack_bottom_frame: function (instance) {
8977
9815
  return instance.render();
8978
9816
  }
8979
9817
  },
8980
- callRenderInDEV = callRender["react-stack-bottom-frame"].bind(callRender),
9818
+ callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),
8981
9819
  callLazyInit = {
8982
- "react-stack-bottom-frame": function (lazy) {
9820
+ react_stack_bottom_frame: function (lazy) {
8983
9821
  var init = lazy._init;
8984
9822
  return init(lazy._payload);
8985
9823
  }
8986
9824
  },
8987
9825
  callLazyInitInDEV =
8988
- callLazyInit["react-stack-bottom-frame"].bind(callLazyInit),
9826
+ callLazyInit.react_stack_bottom_frame.bind(callLazyInit),
8989
9827
  lastResetTime = 0;
8990
9828
  if (
8991
9829
  "object" === typeof performance &&
@@ -9005,6 +9843,8 @@
9005
9843
  PENDING = 0,
9006
9844
  COMPLETED = 1,
9007
9845
  FLUSHED = 2,
9846
+ ABORTED = 3,
9847
+ ERRORED = 4,
9008
9848
  POSTPONED = 5,
9009
9849
  CLOSED = 14,
9010
9850
  currentRequest = null,
@@ -9014,7 +9854,9 @@
9014
9854
  didWarnAboutGetDerivedStateOnFunctionComponent = {},
9015
9855
  didWarnAboutReassigningProps = !1,
9016
9856
  didWarnAboutGenerators = !1,
9017
- didWarnAboutMaps = !1;
9857
+ didWarnAboutMaps = !1,
9858
+ flushedByteSize = 0,
9859
+ flushingPartialBoundaries = !1;
9018
9860
  exports.renderToStaticMarkup = function (children, options) {
9019
9861
  return renderToStringImpl(
9020
9862
  children,
@@ -9031,5 +9873,5 @@
9031
9873
  'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server'
9032
9874
  );
9033
9875
  };
9034
- exports.version = "19.1.0";
9876
+ exports.version = "19.2.4";
9035
9877
  })();