react-dom 19.2.0-canary-c4676e72-20250520 → 19.2.0-canary-8ce15b0f-20250522

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.
@@ -766,9 +766,6 @@
766
766
  moduleScriptResources: {}
767
767
  };
768
768
  }
769
- function createPreambleState() {
770
- return { htmlChunks: null, headChunks: null, bodyChunks: null };
771
- }
772
769
  function createFormatContext(
773
770
  insertionMode,
774
771
  selectedValue,
@@ -862,8 +859,8 @@
862
859
  ? null
863
860
  : {
864
861
  update: parentViewTransition.update,
865
- enter: null,
866
- exit: null,
862
+ enter: "none",
863
+ exit: "none",
867
864
  share: parentViewTransition.update,
868
865
  name: parentViewTransition.autoName,
869
866
  autoName: parentViewTransition.autoName,
@@ -3357,6 +3354,10 @@
3357
3354
  function hoistStylesheetDependency(stylesheet) {
3358
3355
  this.stylesheets.add(stylesheet);
3359
3356
  }
3357
+ function hoistHoistables(parentState, childState) {
3358
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
3359
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
3360
+ }
3360
3361
  function createRenderState(resumableState, generateStaticMarkup) {
3361
3362
  var idPrefix = resumableState.idPrefix,
3362
3363
  bootstrapChunks = [],
@@ -3376,7 +3377,7 @@
3376
3377
  segmentPrefix: idPrefix + "S:",
3377
3378
  boundaryPrefix: idPrefix + "B:",
3378
3379
  startInlineScript: "<script",
3379
- preamble: createPreambleState(),
3380
+ preamble: { htmlChunks: null, headChunks: null, bodyChunks: null },
3380
3381
  externalRuntimeScript: null,
3381
3382
  bootstrapChunks: bootstrapChunks,
3382
3383
  importMapChunks: [],
@@ -4478,11 +4479,14 @@
4478
4479
  };
4479
4480
  null !== row &&
4480
4481
  (row.pendingTasks++,
4481
- (row = row.boundaries),
4482
- null !== row &&
4482
+ (contentPreamble = row.boundaries),
4483
+ null !== contentPreamble &&
4483
4484
  (request.allPendingTasks++,
4484
4485
  fallbackAbortableTasks.pendingTasks++,
4485
- row.push(fallbackAbortableTasks)));
4486
+ contentPreamble.push(fallbackAbortableTasks)),
4487
+ (request = row.inheritedHoistables),
4488
+ null !== request &&
4489
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
4486
4490
  return fallbackAbortableTasks;
4487
4491
  }
4488
4492
  function createRenderTask(
@@ -4760,20 +4764,70 @@
4760
4764
  : ((request.status = 13), (request.fatalError = error));
4761
4765
  }
4762
4766
  function finishSuspenseListRow(request, row) {
4763
- for (row = row.next; null !== row; ) {
4764
- var unblockedBoundaries = row.boundaries;
4767
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4768
+ }
4769
+ function unblockSuspenseListRow(
4770
+ request,
4771
+ unblockedRow,
4772
+ inheritedHoistables
4773
+ ) {
4774
+ for (; null !== unblockedRow; ) {
4775
+ null !== inheritedHoistables &&
4776
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4777
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4778
+ var unblockedBoundaries = unblockedRow.boundaries;
4765
4779
  if (null !== unblockedBoundaries) {
4766
- row.boundaries = null;
4767
- for (var i = 0; i < unblockedBoundaries.length; i++)
4768
- finishedTask(request, unblockedBoundaries[i], null, null);
4780
+ unblockedRow.boundaries = null;
4781
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4782
+ var unblockedBoundary = unblockedBoundaries[i];
4783
+ null !== inheritedHoistables &&
4784
+ hoistHoistables(
4785
+ unblockedBoundary.contentState,
4786
+ inheritedHoistables
4787
+ );
4788
+ finishedTask(request, unblockedBoundary, null, null);
4789
+ }
4790
+ }
4791
+ unblockedRow.pendingTasks--;
4792
+ if (0 < unblockedRow.pendingTasks) break;
4793
+ inheritedHoistables = unblockedRow.hoistables;
4794
+ unblockedRow = unblockedRow.next;
4795
+ }
4796
+ }
4797
+ function tryToResolveTogetherRow(request, togetherRow) {
4798
+ var boundaries = togetherRow.boundaries;
4799
+ if (
4800
+ null !== boundaries &&
4801
+ togetherRow.pendingTasks === boundaries.length
4802
+ ) {
4803
+ for (
4804
+ var allCompleteAndInlinable = !0, i = 0;
4805
+ i < boundaries.length;
4806
+ i++
4807
+ ) {
4808
+ var rowBoundary = boundaries[i];
4809
+ if (
4810
+ 1 !== rowBoundary.pendingTasks ||
4811
+ rowBoundary.parentFlushed ||
4812
+ 500 < rowBoundary.byteSize
4813
+ ) {
4814
+ allCompleteAndInlinable = !1;
4815
+ break;
4816
+ }
4769
4817
  }
4770
- row.pendingTasks--;
4771
- if (0 < row.pendingTasks) break;
4772
- row = row.next;
4818
+ allCompleteAndInlinable &&
4819
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4773
4820
  }
4774
4821
  }
4775
4822
  function createSuspenseListRow(previousRow) {
4776
- var newRow = { pendingTasks: 1, boundaries: null, next: null };
4823
+ var newRow = {
4824
+ pendingTasks: 1,
4825
+ boundaries: null,
4826
+ hoistables: createHoistableState(),
4827
+ inheritedHoistables: null,
4828
+ together: !1,
4829
+ next: null
4830
+ };
4777
4831
  null !== previousRow &&
4778
4832
  0 < previousRow.pendingTasks &&
4779
4833
  (newRow.pendingTasks++,
@@ -4782,28 +4836,25 @@
4782
4836
  return newRow;
4783
4837
  }
4784
4838
  function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4785
- keyPath = task.keyPath;
4786
- var previousComponentStack = task.componentStack;
4839
+ var prevKeyPath = task.keyPath,
4840
+ prevTreeContext = task.treeContext,
4841
+ prevRow = task.row,
4842
+ previousComponentStack = task.componentStack;
4787
4843
  var previousDebugTask = task.debugTask;
4788
4844
  pushServerComponentStack(task, task.node.props.children._debugInfo);
4789
- var prevTreeContext = task.treeContext,
4790
- prevRow = task.row,
4791
- totalChildren = rows.length,
4792
- previousSuspenseListRow = null;
4845
+ task.keyPath = keyPath;
4846
+ keyPath = rows.length;
4847
+ var previousSuspenseListRow = null;
4793
4848
  if (null !== task.replay) {
4794
4849
  var resumeSlots = task.replay.slots;
4795
4850
  if (null !== resumeSlots && "object" === typeof resumeSlots)
4796
- for (var n = 0; n < totalChildren; n++) {
4797
- var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
4851
+ for (var n = 0; n < keyPath; n++) {
4852
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
4798
4853
  node = rows[i];
4799
4854
  task.row = previousSuspenseListRow = createSuspenseListRow(
4800
4855
  previousSuspenseListRow
4801
4856
  );
4802
- task.treeContext = pushTreeContext(
4803
- prevTreeContext,
4804
- totalChildren,
4805
- i
4806
- );
4857
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4807
4858
  var resumeSegmentID = resumeSlots[i];
4808
4859
  "number" === typeof resumeSegmentID
4809
4860
  ? (resumeNode(request, task, resumeSegmentID, node, i),
@@ -4813,32 +4864,28 @@
4813
4864
  finishSuspenseListRow(request, previousSuspenseListRow);
4814
4865
  }
4815
4866
  else
4816
- for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4867
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4817
4868
  (n =
4818
4869
  "backwards" !== revealOrder
4819
4870
  ? resumeSlots
4820
- : totalChildren - 1 - resumeSlots),
4871
+ : keyPath - 1 - resumeSlots),
4821
4872
  (i = rows[n]),
4822
4873
  warnForMissingKey(request, task, i),
4823
4874
  (task.row = previousSuspenseListRow =
4824
4875
  createSuspenseListRow(previousSuspenseListRow)),
4825
- (task.treeContext = pushTreeContext(
4826
- prevTreeContext,
4827
- totalChildren,
4828
- n
4829
- )),
4876
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4830
4877
  renderNode(request, task, i, n),
4831
4878
  0 === --previousSuspenseListRow.pendingTasks &&
4832
4879
  finishSuspenseListRow(request, previousSuspenseListRow);
4833
4880
  } else if ("backwards" !== revealOrder)
4834
- for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4881
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4835
4882
  (resumeSlots = rows[revealOrder]),
4836
4883
  warnForMissingKey(request, task, resumeSlots),
4837
4884
  (task.row = previousSuspenseListRow =
4838
4885
  createSuspenseListRow(previousSuspenseListRow)),
4839
4886
  (task.treeContext = pushTreeContext(
4840
4887
  prevTreeContext,
4841
- totalChildren,
4888
+ keyPath,
4842
4889
  revealOrder
4843
4890
  )),
4844
4891
  renderNode(request, task, resumeSlots, revealOrder),
@@ -4848,12 +4895,12 @@
4848
4895
  revealOrder = task.blockedSegment;
4849
4896
  resumeSlots = revealOrder.children.length;
4850
4897
  n = revealOrder.chunks.length;
4851
- for (i = totalChildren - 1; 0 <= i; i--) {
4898
+ for (i = keyPath - 1; 0 <= i; i--) {
4852
4899
  node = rows[i];
4853
4900
  task.row = previousSuspenseListRow = createSuspenseListRow(
4854
4901
  previousSuspenseListRow
4855
4902
  );
4856
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4903
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4857
4904
  resumeSegmentID = createPendingSegment(
4858
4905
  request,
4859
4906
  n,
@@ -4892,7 +4939,7 @@
4892
4939
  (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4893
4940
  task.treeContext = prevTreeContext;
4894
4941
  task.row = prevRow;
4895
- task.keyPath = keyPath;
4942
+ task.keyPath = prevKeyPath;
4896
4943
  task.componentStack = previousComponentStack;
4897
4944
  task.debugTask = previousDebugTask;
4898
4945
  }
@@ -5437,7 +5484,7 @@
5437
5484
  );
5438
5485
  segment.lastPushedText = !1;
5439
5486
  var _prevContext2 = task.formatContext,
5440
- _prevKeyPath2 = task.keyPath;
5487
+ _prevKeyPath3 = task.keyPath;
5441
5488
  task.keyPath = keyPath;
5442
5489
  if (
5443
5490
  (task.formatContext = getChildFormatContext(
@@ -5478,7 +5525,7 @@
5478
5525
  request.pingedTasks.push(preambleTask);
5479
5526
  } else renderNode(request, task, _children, -1);
5480
5527
  task.formatContext = _prevContext2;
5481
- task.keyPath = _prevKeyPath2;
5528
+ task.keyPath = _prevKeyPath3;
5482
5529
  a: {
5483
5530
  var target = segment.chunks,
5484
5531
  resumableState = request.resumableState;
@@ -5545,10 +5592,10 @@
5545
5592
  request.renderState.generateStaticMarkup ||
5546
5593
  segment$jscomp$0.chunks.push("\x3c!--&--\x3e");
5547
5594
  segment$jscomp$0.lastPushedText = !1;
5548
- var _prevKeyPath3 = task.keyPath;
5595
+ var _prevKeyPath4 = task.keyPath;
5549
5596
  task.keyPath = keyPath;
5550
5597
  renderNode(request, task, props.children, -1);
5551
- task.keyPath = _prevKeyPath3;
5598
+ task.keyPath = _prevKeyPath4;
5552
5599
  request.renderState.generateStaticMarkup ||
5553
5600
  segment$jscomp$0.chunks.push("\x3c!--/&--\x3e");
5554
5601
  segment$jscomp$0.lastPushedText = !1;
@@ -5597,10 +5644,27 @@
5597
5644
  }
5598
5645
  }
5599
5646
  }
5600
- var prevKeyPath$jscomp$3 = task.keyPath;
5601
- task.keyPath = keyPath;
5602
- renderNodeDestructive(request, task, children$jscomp$0, -1);
5603
- task.keyPath = prevKeyPath$jscomp$3;
5647
+ if ("together" === revealOrder) {
5648
+ var _prevKeyPath2 = task.keyPath,
5649
+ prevRow = task.row,
5650
+ newRow = (task.row = createSuspenseListRow(null));
5651
+ newRow.boundaries = [];
5652
+ newRow.together = !0;
5653
+ task.keyPath = keyPath;
5654
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5655
+ 0 === --newRow.pendingTasks &&
5656
+ finishSuspenseListRow(request, newRow);
5657
+ task.keyPath = _prevKeyPath2;
5658
+ task.row = prevRow;
5659
+ null !== prevRow &&
5660
+ 0 < newRow.pendingTasks &&
5661
+ (prevRow.pendingTasks++, (newRow.next = prevRow));
5662
+ } else {
5663
+ var prevKeyPath$jscomp$3 = task.keyPath;
5664
+ task.keyPath = keyPath;
5665
+ renderNodeDestructive(request, task, children$jscomp$0, -1);
5666
+ task.keyPath = prevKeyPath$jscomp$3;
5667
+ }
5604
5668
  }
5605
5669
  return;
5606
5670
  case REACT_VIEW_TRANSITION_TYPE:
@@ -5630,7 +5694,7 @@
5630
5694
  } else {
5631
5695
  var prevKeyPath$jscomp$4 = task.keyPath,
5632
5696
  prevContext$jscomp$0 = task.formatContext,
5633
- prevRow = task.row,
5697
+ prevRow$jscomp$0 = task.row,
5634
5698
  parentBoundary = task.blockedBoundary,
5635
5699
  parentPreamble = task.blockedPreamble,
5636
5700
  parentHoistableState = task.hoistableState,
@@ -5638,22 +5702,13 @@
5638
5702
  fallback = props.fallback,
5639
5703
  content = props.children,
5640
5704
  fallbackAbortSet = new Set();
5641
- var newBoundary =
5642
- task.formatContext.insertionMode < HTML_MODE
5643
- ? createSuspenseBoundary(
5644
- request,
5645
- task.row,
5646
- fallbackAbortSet,
5647
- createPreambleState(),
5648
- createPreambleState()
5649
- )
5650
- : createSuspenseBoundary(
5651
- request,
5652
- task.row,
5653
- fallbackAbortSet,
5654
- null,
5655
- null
5656
- );
5705
+ var newBoundary = createSuspenseBoundary(
5706
+ request,
5707
+ task.row,
5708
+ fallbackAbortSet,
5709
+ null,
5710
+ null
5711
+ );
5657
5712
  null !== request.trackedPostpones &&
5658
5713
  (newBoundary.trackedContentKeyPath = keyPath);
5659
5714
  var boundarySegment = createPendingSegment(
@@ -5769,18 +5824,24 @@
5769
5824
  (contentRootSegment.status = COMPLETED),
5770
5825
  queueCompletedSegment(newBoundary, contentRootSegment),
5771
5826
  0 === newBoundary.pendingTasks &&
5772
- newBoundary.status === PENDING &&
5773
- ((newBoundary.status = COMPLETED),
5774
- !(500 < newBoundary.byteSize)))
5827
+ newBoundary.status === PENDING)
5775
5828
  ) {
5776
- null !== prevRow &&
5777
- 0 === --prevRow.pendingTasks &&
5778
- finishSuspenseListRow(request, prevRow);
5779
- 0 === request.pendingRootTasks &&
5780
- task.blockedPreamble &&
5781
- preparePreamble(request);
5782
- break a;
5783
- }
5829
+ if (
5830
+ ((newBoundary.status = COMPLETED),
5831
+ !(500 < newBoundary.byteSize))
5832
+ ) {
5833
+ null !== prevRow$jscomp$0 &&
5834
+ 0 === --prevRow$jscomp$0.pendingTasks &&
5835
+ finishSuspenseListRow(request, prevRow$jscomp$0);
5836
+ 0 === request.pendingRootTasks &&
5837
+ task.blockedPreamble &&
5838
+ preparePreamble(request);
5839
+ break a;
5840
+ }
5841
+ } else
5842
+ null !== prevRow$jscomp$0 &&
5843
+ prevRow$jscomp$0.together &&
5844
+ tryToResolveTogetherRow(request, prevRow$jscomp$0);
5784
5845
  } catch (thrownValue$2) {
5785
5846
  newBoundary.status = CLIENT_RENDERED;
5786
5847
  if (12 === request.status) {
@@ -5810,7 +5871,7 @@
5810
5871
  (task.blockedSegment = parentSegment),
5811
5872
  (task.keyPath = prevKeyPath$jscomp$4),
5812
5873
  (task.formatContext = prevContext$jscomp$0),
5813
- (task.row = prevRow);
5874
+ (task.row = prevRow$jscomp$0);
5814
5875
  }
5815
5876
  var suspendedFallbackTask = createRenderTask(
5816
5877
  request,
@@ -6072,22 +6133,13 @@
6072
6133
  content = props.children,
6073
6134
  fallback = props.fallback,
6074
6135
  fallbackAbortSet = new Set();
6075
- props =
6076
- task.formatContext.insertionMode < HTML_MODE
6077
- ? createSuspenseBoundary(
6078
- request,
6079
- task.row,
6080
- fallbackAbortSet,
6081
- createPreambleState(),
6082
- createPreambleState()
6083
- )
6084
- : createSuspenseBoundary(
6085
- request,
6086
- task.row,
6087
- fallbackAbortSet,
6088
- null,
6089
- null
6090
- );
6136
+ props = createSuspenseBoundary(
6137
+ request,
6138
+ task.row,
6139
+ fallbackAbortSet,
6140
+ null,
6141
+ null
6142
+ );
6091
6143
  props.parentFlushed = !0;
6092
6144
  props.rootSegmentID = name;
6093
6145
  task.blockedBoundary = props;
@@ -6769,10 +6821,6 @@
6769
6821
  if (6 === segment.status) return;
6770
6822
  segment.status = ABORTED;
6771
6823
  }
6772
- segment = task.row;
6773
- null !== segment &&
6774
- 0 === --segment.pendingTasks &&
6775
- finishSuspenseListRow(request, segment);
6776
6824
  segment = getThrownInfo(task.componentStack);
6777
6825
  if (null === boundary) {
6778
6826
  if (13 !== request.status && request.status !== CLOSED) {
@@ -6783,36 +6831,49 @@
6783
6831
  return;
6784
6832
  }
6785
6833
  boundary.pendingTasks--;
6786
- 0 === boundary.pendingTasks &&
6787
- 0 < boundary.nodes.length &&
6788
- ((task = logRecoverableError(request, error, segment, null)),
6834
+ if (0 === boundary.pendingTasks && 0 < boundary.nodes.length) {
6835
+ var errorDigest = logRecoverableError(
6836
+ request,
6837
+ error,
6838
+ segment,
6839
+ null
6840
+ );
6789
6841
  abortRemainingReplayNodes(
6790
6842
  request,
6791
6843
  null,
6792
6844
  boundary.nodes,
6793
6845
  boundary.slots,
6794
6846
  error,
6795
- task,
6847
+ errorDigest,
6796
6848
  segment,
6797
6849
  !0
6798
- ));
6850
+ );
6851
+ }
6799
6852
  request.pendingRootTasks--;
6800
6853
  0 === request.pendingRootTasks && completeShell(request);
6801
6854
  }
6802
6855
  } else
6803
- boundary.pendingTasks--,
6804
- boundary.status !== CLIENT_RENDERED &&
6805
- ((boundary.status = CLIENT_RENDERED),
6806
- (task = logRecoverableError(request, error, segment, null)),
6807
- (boundary.status = CLIENT_RENDERED),
6808
- encodeErrorForBoundary(boundary, task, error, segment, !0),
6809
- untrackBoundary(request, boundary),
6810
- boundary.parentFlushed &&
6811
- request.clientRenderedBoundaries.push(boundary)),
6856
+ boundary.status !== CLIENT_RENDERED &&
6857
+ ((boundary.status = CLIENT_RENDERED),
6858
+ (errorDigest = logRecoverableError(request, error, segment, null)),
6859
+ (boundary.status = CLIENT_RENDERED),
6860
+ encodeErrorForBoundary(boundary, errorDigest, error, segment, !0),
6861
+ untrackBoundary(request, boundary),
6862
+ boundary.parentFlushed &&
6863
+ request.clientRenderedBoundaries.push(boundary)),
6864
+ boundary.pendingTasks--,
6865
+ (segment = boundary.row),
6866
+ null !== segment &&
6867
+ 0 === --segment.pendingTasks &&
6868
+ finishSuspenseListRow(request, segment),
6812
6869
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
6813
6870
  return abortTask(fallbackTask, request, error);
6814
6871
  }),
6815
6872
  boundary.fallbackAbortableTasks.clear();
6873
+ task = task.row;
6874
+ null !== task &&
6875
+ 0 === --task.pendingTasks &&
6876
+ finishSuspenseListRow(request, task);
6816
6877
  request.allPendingTasks--;
6817
6878
  0 === request.allPendingTasks && completeAll(request);
6818
6879
  }
@@ -6914,55 +6975,129 @@
6914
6975
  queueCompletedSegment(boundary, childSegment);
6915
6976
  } else boundary.completedSegments.push(segment);
6916
6977
  }
6917
- function finishedTask(request, boundary, row, segment) {
6978
+ function finishedTask(request$jscomp$0, boundary$jscomp$0, row, segment) {
6918
6979
  null !== row &&
6919
- 0 === --row.pendingTasks &&
6920
- finishSuspenseListRow(request, row);
6921
- request.allPendingTasks--;
6922
- if (null === boundary) {
6980
+ (0 === --row.pendingTasks
6981
+ ? finishSuspenseListRow(request$jscomp$0, row)
6982
+ : row.together && tryToResolveTogetherRow(request$jscomp$0, row));
6983
+ request$jscomp$0.allPendingTasks--;
6984
+ if (null === boundary$jscomp$0) {
6923
6985
  if (null !== segment && segment.parentFlushed) {
6924
- if (null !== request.completedRootSegment)
6986
+ if (null !== request$jscomp$0.completedRootSegment)
6925
6987
  throw Error(
6926
6988
  "There can only be one root segment. This is a bug in React."
6927
6989
  );
6928
- request.completedRootSegment = segment;
6990
+ request$jscomp$0.completedRootSegment = segment;
6929
6991
  }
6930
- request.pendingRootTasks--;
6931
- 0 === request.pendingRootTasks && completeShell(request);
6932
- } else
6933
- boundary.pendingTasks--,
6934
- boundary.status !== CLIENT_RENDERED &&
6935
- (0 === boundary.pendingTasks
6936
- ? (boundary.status === PENDING && (boundary.status = COMPLETED),
6937
- null !== segment &&
6938
- segment.parentFlushed &&
6939
- segment.status === COMPLETED &&
6940
- queueCompletedSegment(boundary, segment),
6941
- boundary.parentFlushed &&
6942
- request.completedBoundaries.push(boundary),
6943
- boundary.status === COMPLETED &&
6944
- (500 < boundary.byteSize ||
6945
- (boundary.fallbackAbortableTasks.forEach(
6946
- abortTaskSoft,
6947
- request
6948
- ),
6949
- boundary.fallbackAbortableTasks.clear(),
6950
- (row = boundary.row),
6951
- null !== row &&
6952
- 0 === --row.pendingTasks &&
6953
- finishSuspenseListRow(request, row)),
6954
- 0 === request.pendingRootTasks &&
6955
- null === request.trackedPostpones &&
6956
- null !== boundary.contentPreamble &&
6957
- preparePreamble(request)))
6958
- : null !== segment &&
6959
- segment.parentFlushed &&
6960
- segment.status === COMPLETED &&
6961
- (queueCompletedSegment(boundary, segment),
6962
- 1 === boundary.completedSegments.length &&
6963
- boundary.parentFlushed &&
6964
- request.partialBoundaries.push(boundary)));
6965
- 0 === request.allPendingTasks && completeAll(request);
6992
+ request$jscomp$0.pendingRootTasks--;
6993
+ 0 === request$jscomp$0.pendingRootTasks &&
6994
+ completeShell(request$jscomp$0);
6995
+ } else if (
6996
+ (boundary$jscomp$0.pendingTasks--,
6997
+ boundary$jscomp$0.status !== CLIENT_RENDERED)
6998
+ )
6999
+ if (0 === boundary$jscomp$0.pendingTasks)
7000
+ if (
7001
+ (boundary$jscomp$0.status === PENDING &&
7002
+ (boundary$jscomp$0.status = COMPLETED),
7003
+ null !== segment &&
7004
+ segment.parentFlushed &&
7005
+ segment.status === COMPLETED &&
7006
+ queueCompletedSegment(boundary$jscomp$0, segment),
7007
+ boundary$jscomp$0.parentFlushed &&
7008
+ request$jscomp$0.completedBoundaries.push(boundary$jscomp$0),
7009
+ boundary$jscomp$0.status === COMPLETED)
7010
+ )
7011
+ (row = boundary$jscomp$0.row),
7012
+ null !== row &&
7013
+ hoistHoistables(row.hoistables, boundary$jscomp$0.contentState),
7014
+ 500 < boundary$jscomp$0.byteSize ||
7015
+ (boundary$jscomp$0.fallbackAbortableTasks.forEach(
7016
+ abortTaskSoft,
7017
+ request$jscomp$0
7018
+ ),
7019
+ boundary$jscomp$0.fallbackAbortableTasks.clear(),
7020
+ null !== row &&
7021
+ 0 === --row.pendingTasks &&
7022
+ finishSuspenseListRow(request$jscomp$0, row)),
7023
+ 0 === request$jscomp$0.pendingRootTasks &&
7024
+ null === request$jscomp$0.trackedPostpones &&
7025
+ null !== boundary$jscomp$0.contentPreamble &&
7026
+ preparePreamble(request$jscomp$0);
7027
+ else {
7028
+ if (
7029
+ boundary$jscomp$0.status === POSTPONED &&
7030
+ ((boundary$jscomp$0 = boundary$jscomp$0.row),
7031
+ null !== boundary$jscomp$0)
7032
+ ) {
7033
+ if (null !== request$jscomp$0.trackedPostpones) {
7034
+ row = request$jscomp$0.trackedPostpones;
7035
+ var postponedRow = boundary$jscomp$0.next;
7036
+ if (
7037
+ null !== postponedRow &&
7038
+ ((segment = postponedRow.boundaries), null !== segment)
7039
+ )
7040
+ for (
7041
+ postponedRow.boundaries = null, postponedRow = 0;
7042
+ postponedRow < segment.length;
7043
+ postponedRow++
7044
+ ) {
7045
+ var postponedBoundary = segment[postponedRow];
7046
+ var request = request$jscomp$0,
7047
+ trackedPostpones = row,
7048
+ boundary = postponedBoundary;
7049
+ boundary.status = POSTPONED;
7050
+ boundary.rootSegmentID = request.nextSegmentId++;
7051
+ request = boundary.trackedContentKeyPath;
7052
+ if (null === request)
7053
+ throw Error(
7054
+ "It should not be possible to postpone at the root. This is a bug in React."
7055
+ );
7056
+ var fallbackReplayNode = boundary.trackedFallbackNode,
7057
+ children = [],
7058
+ boundaryNode = trackedPostpones.workingMap.get(request);
7059
+ void 0 === boundaryNode
7060
+ ? ((boundary = [
7061
+ request[1],
7062
+ request[2],
7063
+ children,
7064
+ null,
7065
+ fallbackReplayNode,
7066
+ boundary.rootSegmentID
7067
+ ]),
7068
+ trackedPostpones.workingMap.set(request, boundary),
7069
+ addToReplayParent(
7070
+ boundary,
7071
+ request[0],
7072
+ trackedPostpones
7073
+ ))
7074
+ : ((boundaryNode[4] = fallbackReplayNode),
7075
+ (boundaryNode[5] = boundary.rootSegmentID));
7076
+ finishedTask(
7077
+ request$jscomp$0,
7078
+ postponedBoundary,
7079
+ null,
7080
+ null
7081
+ );
7082
+ }
7083
+ }
7084
+ 0 === --boundary$jscomp$0.pendingTasks &&
7085
+ finishSuspenseListRow(request$jscomp$0, boundary$jscomp$0);
7086
+ }
7087
+ }
7088
+ else
7089
+ null !== segment &&
7090
+ segment.parentFlushed &&
7091
+ segment.status === COMPLETED &&
7092
+ (queueCompletedSegment(boundary$jscomp$0, segment),
7093
+ 1 === boundary$jscomp$0.completedSegments.length &&
7094
+ boundary$jscomp$0.parentFlushed &&
7095
+ request$jscomp$0.partialBoundaries.push(boundary$jscomp$0)),
7096
+ (boundary$jscomp$0 = boundary$jscomp$0.row),
7097
+ null !== boundary$jscomp$0 &&
7098
+ boundary$jscomp$0.together &&
7099
+ tryToResolveTogetherRow(request$jscomp$0, boundary$jscomp$0);
7100
+ 0 === request$jscomp$0.allPendingTasks && completeAll(request$jscomp$0);
6966
7101
  }
6967
7102
  function performWork(request$jscomp$2) {
6968
7103
  if (
@@ -7141,32 +7276,37 @@
7141
7276
  errorInfo$jscomp$1,
7142
7277
  debugTask
7143
7278
  );
7144
- null === boundary$jscomp$0
7145
- ? fatalError(
7146
- request,
7147
- x$jscomp$0,
7148
- errorInfo$jscomp$1,
7149
- debugTask
7150
- )
7151
- : (boundary$jscomp$0.pendingTasks--,
7152
- boundary$jscomp$0.status !== CLIENT_RENDERED &&
7153
- ((boundary$jscomp$0.status = CLIENT_RENDERED),
7154
- encodeErrorForBoundary(
7155
- boundary$jscomp$0,
7156
- prevTaskInDEV,
7157
- x$jscomp$0,
7158
- errorInfo$jscomp$1,
7159
- !1
7160
- ),
7161
- untrackBoundary(request, boundary$jscomp$0),
7162
- boundary$jscomp$0.parentFlushed &&
7163
- request.clientRenderedBoundaries.push(
7164
- boundary$jscomp$0
7165
- ),
7166
- 0 === request.pendingRootTasks &&
7167
- null === request.trackedPostpones &&
7168
- null !== boundary$jscomp$0.contentPreamble &&
7169
- preparePreamble(request)));
7279
+ if (null === boundary$jscomp$0)
7280
+ fatalError(
7281
+ request,
7282
+ x$jscomp$0,
7283
+ errorInfo$jscomp$1,
7284
+ debugTask
7285
+ );
7286
+ else if (
7287
+ (boundary$jscomp$0.pendingTasks--,
7288
+ boundary$jscomp$0.status !== CLIENT_RENDERED)
7289
+ ) {
7290
+ boundary$jscomp$0.status = CLIENT_RENDERED;
7291
+ encodeErrorForBoundary(
7292
+ boundary$jscomp$0,
7293
+ prevTaskInDEV,
7294
+ x$jscomp$0,
7295
+ errorInfo$jscomp$1,
7296
+ !1
7297
+ );
7298
+ untrackBoundary(request, boundary$jscomp$0);
7299
+ var boundaryRow = boundary$jscomp$0.row;
7300
+ null !== boundaryRow &&
7301
+ 0 === --boundaryRow.pendingTasks &&
7302
+ finishSuspenseListRow(request, boundaryRow);
7303
+ boundary$jscomp$0.parentFlushed &&
7304
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
7305
+ 0 === request.pendingRootTasks &&
7306
+ null === request.trackedPostpones &&
7307
+ null !== boundary$jscomp$0.contentPreamble &&
7308
+ preparePreamble(request);
7309
+ }
7170
7310
  0 === request.allPendingTasks && completeAll(request);
7171
7311
  }
7172
7312
  } finally {
@@ -7351,8 +7491,8 @@
7351
7491
  ));
7352
7492
  boundary &&
7353
7493
  (destination.push(clientRenderedSuspenseBoundaryError1D),
7354
- (boundary = escapeTextForBrowser(boundary)),
7355
- destination.push(boundary),
7494
+ (row = escapeTextForBrowser(boundary)),
7495
+ destination.push(row),
7356
7496
  destination.push(
7357
7497
  clientRenderedSuspenseBoundaryErrorAttrInterstitial
7358
7498
  ));
@@ -7376,12 +7516,7 @@
7376
7516
  boundary.rootSegmentID
7377
7517
  ),
7378
7518
  hoistableState &&
7379
- ((boundary = boundary.fallbackState),
7380
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
7381
- boundary.stylesheets.forEach(
7382
- hoistStylesheetDependency,
7383
- hoistableState
7384
- )),
7519
+ hoistHoistables(hoistableState, boundary.fallbackState),
7385
7520
  flushSubtree(request, destination, segment, hoistableState),
7386
7521
  destination.push(endSuspenseBoundary)
7387
7522
  );
@@ -7401,10 +7536,7 @@
7401
7536
  destination.push(endSuspenseBoundary)
7402
7537
  );
7403
7538
  flushedByteSize += boundary.byteSize;
7404
- hoistableState &&
7405
- ((segment = boundary.contentState),
7406
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
7407
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
7539
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
7408
7540
  segment = boundary.row;
7409
7541
  null !== segment &&
7410
7542
  500 < boundary.byteSize &&
@@ -7824,6 +7956,17 @@
7824
7956
  break a;
7825
7957
  }
7826
7958
  completedSegments.splice(0, JSCompiler_inline_result);
7959
+ var row = boundary$jscomp$0.row;
7960
+ null !== row &&
7961
+ row.together &&
7962
+ 1 === boundary$jscomp$0.pendingTasks &&
7963
+ (1 === row.pendingTasks
7964
+ ? unblockSuspenseListRow(
7965
+ clientRenderedBoundaries,
7966
+ row,
7967
+ row.hoistables
7968
+ )
7969
+ : row.pendingTasks--);
7827
7970
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
7828
7971
  boundary,
7829
7972
  boundary$jscomp$0.contentState,
@@ -7930,6 +8073,18 @@
7930
8073
  fatalError(request, error$4, reason, null);
7931
8074
  }
7932
8075
  }
8076
+ function addToReplayParent(node, parentKeyPath, trackedPostpones) {
8077
+ if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
8078
+ else {
8079
+ var workingMap = trackedPostpones.workingMap,
8080
+ parentNode = workingMap.get(parentKeyPath);
8081
+ void 0 === parentNode &&
8082
+ ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
8083
+ workingMap.set(parentKeyPath, parentNode),
8084
+ addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
8085
+ parentNode[2].push(node);
8086
+ }
8087
+ }
7933
8088
  function onError() {}
7934
8089
  function renderToStringImpl(
7935
8090
  children,
@@ -9138,7 +9293,7 @@
9138
9293
  completeSegmentScript2 = '","',
9139
9294
  completeSegmentScriptEnd = '")\x3c/script>',
9140
9295
  completeBoundaryScriptFunctionOnly =
9141
- '$RB=[];$RV=function(){$RT=performance.now();var d=$RB;$RB=[];for(var a=0;a<d.length;a+=2){var b=d[a],h=d[a+1],e=b.parentNode;if(e){var f=b.previousSibling,g=0;do{if(b&&8===b.nodeType){var c=b.data;if("/$"===c||"/&"===c)if(0===g)break;else g--;else"$"!==c&&"$?"!==c&&"$~"!==c&&"$!"!==c&&"&"!==c||g++}c=b.nextSibling;e.removeChild(b);b=c}while(b);for(;h.firstChild;)e.insertBefore(h.firstChild,b);f.data="$";f._reactRetry&&f._reactRetry()}}};$RC=function(d,a){if(a=document.getElementById(a))if(a.parentNode.removeChild(a),d=document.getElementById(d))d.previousSibling.data="$~",$RB.push(d,a),2===$RB.length&&setTimeout($RV,("number"!==typeof $RT?0:$RT)+300-performance.now())};',
9296
+ '$RB=[];$RV=function(c){$RT=performance.now();for(var a=0;a<c.length;a+=2){var b=c[a],h=c[a+1],e=b.parentNode;if(e){var f=b.previousSibling,g=0;do{if(b&&8===b.nodeType){var d=b.data;if("/$"===d||"/&"===d)if(0===g)break;else g--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||g++}d=b.nextSibling;e.removeChild(b);b=d}while(b);for(;h.firstChild;)e.insertBefore(h.firstChild,b);f.data="$";f._reactRetry&&f._reactRetry()}}c.length=0};$RC=function(c,a){if(a=document.getElementById(a))if(a.parentNode.removeChild(a),c=document.getElementById(c))c.previousSibling.data="$~",$RB.push(c,a),2===$RB.length&&setTimeout($RV.bind(null,$RB),("number"!==typeof $RT?0:$RT)+300-performance.now())};',
9142
9297
  completeBoundaryScript1Partial = '$RC("',
9143
9298
  completeBoundaryWithStylesScript1FullPartial =
9144
9299
  '$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("',
@@ -9443,5 +9598,5 @@
9443
9598
  '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 "renderToReadableStream" which supports Suspense on the server'
9444
9599
  );
9445
9600
  };
9446
- exports.version = "19.2.0-canary-c4676e72-20250520";
9601
+ exports.version = "19.2.0-canary-8ce15b0f-20250522";
9447
9602
  })();