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.
@@ -537,8 +537,8 @@ function getSuspenseViewTransition(parentViewTransition) {
537
537
  ? null
538
538
  : {
539
539
  update: parentViewTransition.update,
540
- enter: null,
541
- exit: null,
540
+ enter: "none",
541
+ exit: "none",
542
542
  share: parentViewTransition.update,
543
543
  name: parentViewTransition.autoName,
544
544
  autoName: parentViewTransition.autoName,
@@ -2876,6 +2876,10 @@ function hoistStyleQueueDependency(styleQueue) {
2876
2876
  function hoistStylesheetDependency(stylesheet) {
2877
2877
  this.stylesheets.add(stylesheet);
2878
2878
  }
2879
+ function hoistHoistables(parentState, childState) {
2880
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
2881
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
2882
+ }
2879
2883
  var bind = Function.prototype.bind,
2880
2884
  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
2881
2885
  function getComponentNameFromType(type) {
@@ -3774,11 +3778,14 @@ function createSuspenseBoundary(
3774
3778
  };
3775
3779
  null !== row &&
3776
3780
  (row.pendingTasks++,
3777
- (row = row.boundaries),
3778
- null !== row &&
3781
+ (contentPreamble = row.boundaries),
3782
+ null !== contentPreamble &&
3779
3783
  (request.allPendingTasks++,
3780
3784
  fallbackAbortableTasks.pendingTasks++,
3781
- row.push(fallbackAbortableTasks)));
3785
+ contentPreamble.push(fallbackAbortableTasks)),
3786
+ (request = row.inheritedHoistables),
3787
+ null !== request &&
3788
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
3782
3789
  return fallbackAbortableTasks;
3783
3790
  }
3784
3791
  function createRenderTask(
@@ -3943,20 +3950,56 @@ function fatalError(request, error) {
3943
3950
  : ((request.status = 13), (request.fatalError = error));
3944
3951
  }
3945
3952
  function finishSuspenseListRow(request, row) {
3946
- for (row = row.next; null !== row; ) {
3947
- var unblockedBoundaries = row.boundaries;
3953
+ unblockSuspenseListRow(request, row.next, row.hoistables);
3954
+ }
3955
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
3956
+ for (; null !== unblockedRow; ) {
3957
+ null !== inheritedHoistables &&
3958
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
3959
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
3960
+ var unblockedBoundaries = unblockedRow.boundaries;
3948
3961
  if (null !== unblockedBoundaries) {
3949
- row.boundaries = null;
3950
- for (var i = 0; i < unblockedBoundaries.length; i++)
3951
- finishedTask(request, unblockedBoundaries[i], null, null);
3962
+ unblockedRow.boundaries = null;
3963
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
3964
+ var unblockedBoundary = unblockedBoundaries[i];
3965
+ null !== inheritedHoistables &&
3966
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
3967
+ finishedTask(request, unblockedBoundary, null, null);
3968
+ }
3969
+ }
3970
+ unblockedRow.pendingTasks--;
3971
+ if (0 < unblockedRow.pendingTasks) break;
3972
+ inheritedHoistables = unblockedRow.hoistables;
3973
+ unblockedRow = unblockedRow.next;
3974
+ }
3975
+ }
3976
+ function tryToResolveTogetherRow(request, togetherRow) {
3977
+ var boundaries = togetherRow.boundaries;
3978
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
3979
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
3980
+ var rowBoundary = boundaries[i];
3981
+ if (
3982
+ 1 !== rowBoundary.pendingTasks ||
3983
+ rowBoundary.parentFlushed ||
3984
+ 500 < rowBoundary.byteSize
3985
+ ) {
3986
+ allCompleteAndInlinable = !1;
3987
+ break;
3988
+ }
3952
3989
  }
3953
- row.pendingTasks--;
3954
- if (0 < row.pendingTasks) break;
3955
- row = row.next;
3990
+ allCompleteAndInlinable &&
3991
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
3956
3992
  }
3957
3993
  }
3958
3994
  function createSuspenseListRow(previousRow) {
3959
- var newRow = { pendingTasks: 1, boundaries: null, next: null };
3995
+ var newRow = {
3996
+ pendingTasks: 1,
3997
+ boundaries: null,
3998
+ hoistables: createHoistableState(),
3999
+ inheritedHoistables: null,
4000
+ together: !1,
4001
+ next: null
4002
+ };
3960
4003
  null !== previousRow &&
3961
4004
  0 < previousRow.pendingTasks &&
3962
4005
  (newRow.pendingTasks++,
@@ -3965,21 +4008,22 @@ function createSuspenseListRow(previousRow) {
3965
4008
  return newRow;
3966
4009
  }
3967
4010
  function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
3968
- keyPath = task.keyPath;
3969
- var prevTreeContext = task.treeContext,
3970
- prevRow = task.row,
3971
- totalChildren = rows.length,
3972
- previousSuspenseListRow = null;
4011
+ var prevKeyPath = task.keyPath,
4012
+ prevTreeContext = task.treeContext,
4013
+ prevRow = task.row;
4014
+ task.keyPath = keyPath;
4015
+ keyPath = rows.length;
4016
+ var previousSuspenseListRow = null;
3973
4017
  if (null !== task.replay) {
3974
4018
  var resumeSlots = task.replay.slots;
3975
4019
  if (null !== resumeSlots && "object" === typeof resumeSlots)
3976
- for (var n = 0; n < totalChildren; n++) {
3977
- var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
4020
+ for (var n = 0; n < keyPath; n++) {
4021
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
3978
4022
  node = rows[i];
3979
4023
  task.row = previousSuspenseListRow = createSuspenseListRow(
3980
4024
  previousSuspenseListRow
3981
4025
  );
3982
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4026
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
3983
4027
  var resumeSegmentID = resumeSlots[i];
3984
4028
  "number" === typeof resumeSegmentID
3985
4029
  ? (resumeNode(request, task, resumeSegmentID, node, i),
@@ -3989,30 +4033,26 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
3989
4033
  finishSuspenseListRow(request, previousSuspenseListRow);
3990
4034
  }
3991
4035
  else
3992
- for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4036
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
3993
4037
  (n =
3994
4038
  "backwards" !== revealOrder
3995
4039
  ? resumeSlots
3996
- : totalChildren - 1 - resumeSlots),
4040
+ : keyPath - 1 - resumeSlots),
3997
4041
  (i = rows[n]),
3998
4042
  (task.row = previousSuspenseListRow =
3999
4043
  createSuspenseListRow(previousSuspenseListRow)),
4000
- (task.treeContext = pushTreeContext(
4001
- prevTreeContext,
4002
- totalChildren,
4003
- n
4004
- )),
4044
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4005
4045
  renderNode(request, task, i, n),
4006
4046
  0 === --previousSuspenseListRow.pendingTasks &&
4007
4047
  finishSuspenseListRow(request, previousSuspenseListRow);
4008
4048
  } else if ("backwards" !== revealOrder)
4009
- for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4049
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4010
4050
  (resumeSlots = rows[revealOrder]),
4011
4051
  (task.row = previousSuspenseListRow =
4012
4052
  createSuspenseListRow(previousSuspenseListRow)),
4013
4053
  (task.treeContext = pushTreeContext(
4014
4054
  prevTreeContext,
4015
- totalChildren,
4055
+ keyPath,
4016
4056
  revealOrder
4017
4057
  )),
4018
4058
  renderNode(request, task, resumeSlots, revealOrder),
@@ -4022,12 +4062,12 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4022
4062
  revealOrder = task.blockedSegment;
4023
4063
  resumeSlots = revealOrder.children.length;
4024
4064
  n = revealOrder.chunks.length;
4025
- for (i = totalChildren - 1; 0 <= i; i--) {
4065
+ for (i = keyPath - 1; 0 <= i; i--) {
4026
4066
  node = rows[i];
4027
4067
  task.row = previousSuspenseListRow = createSuspenseListRow(
4028
4068
  previousSuspenseListRow
4029
4069
  );
4030
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4070
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4031
4071
  resumeSegmentID = createPendingSegment(
4032
4072
  request,
4033
4073
  n,
@@ -4066,7 +4106,7 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4066
4106
  (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4067
4107
  task.treeContext = prevTreeContext;
4068
4108
  task.row = prevRow;
4069
- task.keyPath = keyPath;
4109
+ task.keyPath = prevKeyPath;
4070
4110
  }
4071
4111
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
4072
4112
  var prevThenableState = task.thenableState;
@@ -4135,9 +4175,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4135
4175
  var defaultProps = type.defaultProps;
4136
4176
  if (defaultProps) {
4137
4177
  newProps === props && (newProps = assign({}, newProps, props));
4138
- for (var propName$42 in defaultProps)
4139
- void 0 === newProps[propName$42] &&
4140
- (newProps[propName$42] = defaultProps[propName$42]);
4178
+ for (var propName$43 in defaultProps)
4179
+ void 0 === newProps[propName$43] &&
4180
+ (newProps[propName$43] = defaultProps[propName$43]);
4141
4181
  }
4142
4182
  props = newProps;
4143
4183
  newProps = emptyContextObject;
@@ -4197,16 +4237,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4197
4237
  defaultProps = ref ? type[0] : newProps.state;
4198
4238
  initialState = !0;
4199
4239
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4200
- (propName$42 = type[ref]),
4201
- (propName$42 =
4202
- "function" === typeof propName$42
4203
- ? propName$42.call(newProps, defaultProps, props, void 0)
4204
- : propName$42),
4205
- null != propName$42 &&
4240
+ (propName$43 = type[ref]),
4241
+ (propName$43 =
4242
+ "function" === typeof propName$43
4243
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4244
+ : propName$43),
4245
+ null != propName$43 &&
4206
4246
  (initialState
4207
4247
  ? ((initialState = !1),
4208
- (defaultProps = assign({}, defaultProps, propName$42)))
4209
- : assign(defaultProps, propName$42));
4248
+ (defaultProps = assign({}, defaultProps, propName$43)))
4249
+ : assign(defaultProps, propName$43));
4210
4250
  newProps.state = defaultProps;
4211
4251
  }
4212
4252
  else defaultProps.queue = null;
@@ -4380,10 +4420,25 @@ function renderElement(request, task, keyPath, type, props, ref) {
4380
4420
  break a;
4381
4421
  }
4382
4422
  }
4383
- props = task.keyPath;
4384
- task.keyPath = keyPath;
4385
- renderNodeDestructive(request, task, type, -1);
4386
- task.keyPath = props;
4423
+ "together" === props
4424
+ ? ((props = task.keyPath),
4425
+ (newProps = task.row),
4426
+ (defaultProps = task.row = createSuspenseListRow(null)),
4427
+ (defaultProps.boundaries = []),
4428
+ (defaultProps.together = !0),
4429
+ (task.keyPath = keyPath),
4430
+ renderNodeDestructive(request, task, type, -1),
4431
+ 0 === --defaultProps.pendingTasks &&
4432
+ finishSuspenseListRow(request, defaultProps),
4433
+ (task.keyPath = props),
4434
+ (task.row = newProps),
4435
+ null !== newProps &&
4436
+ 0 < defaultProps.pendingTasks &&
4437
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4438
+ : ((props = task.keyPath),
4439
+ (task.keyPath = keyPath),
4440
+ renderNodeDestructive(request, task, type, -1),
4441
+ (task.keyPath = props));
4387
4442
  }
4388
4443
  return;
4389
4444
  case REACT_VIEW_TRANSITION_TYPE:
@@ -4412,7 +4467,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4412
4467
  type = task.keyPath;
4413
4468
  ref = task.formatContext;
4414
4469
  var prevRow = task.row;
4415
- propName$42 = task.blockedBoundary;
4470
+ propName$43 = task.blockedBoundary;
4416
4471
  propName = task.blockedPreamble;
4417
4472
  var parentHoistableState = task.hoistableState,
4418
4473
  parentSegment = task.blockedSegment,
@@ -4478,7 +4533,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4478
4533
  boundarySegment.textEmbedded
4479
4534
  ),
4480
4535
  (boundarySegment.status = 1),
4481
- finishedSegment(request, propName$42, boundarySegment);
4536
+ finishedSegment(request, propName$43, boundarySegment);
4482
4537
  } catch (thrownValue) {
4483
4538
  throw (
4484
4539
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
@@ -4536,18 +4591,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4536
4591
  (contentRootSegment.status = 1),
4537
4592
  finishedSegment(request, newBoundary, contentRootSegment),
4538
4593
  queueCompletedSegment(newBoundary, contentRootSegment),
4539
- 0 === newBoundary.pendingTasks &&
4540
- 0 === newBoundary.status &&
4541
- ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4594
+ 0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4542
4595
  ) {
4596
+ if (((newBoundary.status = 1), !(500 < newBoundary.byteSize))) {
4597
+ null !== prevRow &&
4598
+ 0 === --prevRow.pendingTasks &&
4599
+ finishSuspenseListRow(request, prevRow);
4600
+ 0 === request.pendingRootTasks &&
4601
+ task.blockedPreamble &&
4602
+ preparePreamble(request);
4603
+ break a;
4604
+ }
4605
+ } else
4543
4606
  null !== prevRow &&
4544
- 0 === --prevRow.pendingTasks &&
4545
- finishSuspenseListRow(request, prevRow);
4546
- 0 === request.pendingRootTasks &&
4547
- task.blockedPreamble &&
4548
- preparePreamble(request);
4549
- break a;
4550
- }
4607
+ prevRow.together &&
4608
+ tryToResolveTogetherRow(request, prevRow);
4551
4609
  } catch (thrownValue$30) {
4552
4610
  (newBoundary.status = 4),
4553
4611
  12 === request.status
@@ -4564,7 +4622,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4564
4622
  (newBoundary.errorDigest = initialState),
4565
4623
  untrackBoundary(request, newBoundary);
4566
4624
  } finally {
4567
- (task.blockedBoundary = propName$42),
4625
+ (task.blockedBoundary = propName$43),
4568
4626
  (task.blockedPreamble = propName),
4569
4627
  (task.hoistableState = parentHoistableState),
4570
4628
  (task.blockedSegment = parentSegment),
@@ -4577,7 +4635,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4577
4635
  null,
4578
4636
  fallback,
4579
4637
  -1,
4580
- propName$42,
4638
+ propName$43,
4581
4639
  boundarySegment,
4582
4640
  newBoundary.fallbackPreamble,
4583
4641
  newBoundary.fallbackState,
@@ -5167,15 +5225,15 @@ function renderNode(request, task, node, childIndex) {
5167
5225
  chunkLength = segment.chunks.length;
5168
5226
  try {
5169
5227
  return renderNodeDestructive(request, task, node, childIndex);
5170
- } catch (thrownValue$58) {
5228
+ } catch (thrownValue$60) {
5171
5229
  if (
5172
5230
  (resetHooksState(),
5173
5231
  (segment.children.length = childrenLength),
5174
5232
  (segment.chunks.length = chunkLength),
5175
5233
  (node =
5176
- thrownValue$58 === SuspenseException
5234
+ thrownValue$60 === SuspenseException
5177
5235
  ? getSuspendedThenable()
5178
- : thrownValue$58),
5236
+ : thrownValue$60),
5179
5237
  "object" === typeof node && null !== node)
5180
5238
  ) {
5181
5239
  if ("function" === typeof node.then) {
@@ -5277,10 +5335,6 @@ function abortTask(task, request, error) {
5277
5335
  if (6 === segment.status) return;
5278
5336
  segment.status = 3;
5279
5337
  }
5280
- segment = task.row;
5281
- null !== segment &&
5282
- 0 === --segment.pendingTasks &&
5283
- finishSuspenseListRow(request, segment);
5284
5338
  segment = getThrownInfo(task.componentStack);
5285
5339
  if (null === boundary) {
5286
5340
  if (13 !== request.status && 14 !== request.status) {
@@ -5293,32 +5347,40 @@ function abortTask(task, request, error) {
5293
5347
  boundary.pendingTasks--;
5294
5348
  0 === boundary.pendingTasks &&
5295
5349
  0 < boundary.nodes.length &&
5296
- ((task = logRecoverableError(request, error, segment)),
5350
+ ((segment = logRecoverableError(request, error, segment)),
5297
5351
  abortRemainingReplayNodes(
5298
5352
  request,
5299
5353
  null,
5300
5354
  boundary.nodes,
5301
5355
  boundary.slots,
5302
5356
  error,
5303
- task
5357
+ segment
5304
5358
  ));
5305
5359
  request.pendingRootTasks--;
5306
5360
  0 === request.pendingRootTasks && completeShell(request);
5307
5361
  }
5308
5362
  } else
5309
- boundary.pendingTasks--,
5310
- 4 !== boundary.status &&
5311
- ((boundary.status = 4),
5312
- (task = logRecoverableError(request, error, segment)),
5313
- (boundary.status = 4),
5314
- (boundary.errorDigest = task),
5315
- untrackBoundary(request, boundary),
5316
- boundary.parentFlushed &&
5317
- request.clientRenderedBoundaries.push(boundary)),
5363
+ 4 !== boundary.status &&
5364
+ ((boundary.status = 4),
5365
+ (segment = logRecoverableError(request, error, segment)),
5366
+ (boundary.status = 4),
5367
+ (boundary.errorDigest = segment),
5368
+ untrackBoundary(request, boundary),
5369
+ boundary.parentFlushed &&
5370
+ request.clientRenderedBoundaries.push(boundary)),
5371
+ boundary.pendingTasks--,
5372
+ (segment = boundary.row),
5373
+ null !== segment &&
5374
+ 0 === --segment.pendingTasks &&
5375
+ finishSuspenseListRow(request, segment),
5318
5376
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5319
5377
  return abortTask(fallbackTask, request, error);
5320
5378
  }),
5321
5379
  boundary.fallbackAbortableTasks.clear();
5380
+ task = task.row;
5381
+ null !== task &&
5382
+ 0 === --task.pendingTasks &&
5383
+ finishSuspenseListRow(request, task);
5322
5384
  request.allPendingTasks--;
5323
5385
  0 === request.allPendingTasks && completeAll(request);
5324
5386
  }
@@ -5425,55 +5487,120 @@ function finishedSegment(request, boundary, segment) {
5425
5487
  : (boundary.byteSize += segmentByteSize);
5426
5488
  }
5427
5489
  }
5428
- function finishedTask(request, boundary, row, segment) {
5490
+ function finishedTask(request$jscomp$0, boundary, row, segment) {
5429
5491
  null !== row &&
5430
- 0 === --row.pendingTasks &&
5431
- finishSuspenseListRow(request, row);
5432
- request.allPendingTasks--;
5492
+ (0 === --row.pendingTasks
5493
+ ? finishSuspenseListRow(request$jscomp$0, row)
5494
+ : row.together && tryToResolveTogetherRow(request$jscomp$0, row));
5495
+ request$jscomp$0.allPendingTasks--;
5433
5496
  if (null === boundary) {
5434
5497
  if (null !== segment && segment.parentFlushed) {
5435
- if (null !== request.completedRootSegment)
5498
+ if (null !== request$jscomp$0.completedRootSegment)
5436
5499
  throw Error(
5437
5500
  "There can only be one root segment. This is a bug in React."
5438
5501
  );
5439
- request.completedRootSegment = segment;
5502
+ request$jscomp$0.completedRootSegment = segment;
5440
5503
  }
5441
- request.pendingRootTasks--;
5442
- 0 === request.pendingRootTasks && completeShell(request);
5443
- } else
5444
- boundary.pendingTasks--,
5445
- 4 !== boundary.status &&
5446
- (0 === boundary.pendingTasks
5447
- ? (0 === boundary.status && (boundary.status = 1),
5448
- null !== segment &&
5449
- segment.parentFlushed &&
5450
- 1 === segment.status &&
5451
- queueCompletedSegment(boundary, segment),
5452
- boundary.parentFlushed &&
5453
- request.completedBoundaries.push(boundary),
5454
- 1 === boundary.status &&
5455
- (500 < boundary.byteSize ||
5456
- (boundary.fallbackAbortableTasks.forEach(
5457
- abortTaskSoft,
5458
- request
5459
- ),
5460
- boundary.fallbackAbortableTasks.clear(),
5461
- (row = boundary.row),
5462
- null !== row &&
5463
- 0 === --row.pendingTasks &&
5464
- finishSuspenseListRow(request, row)),
5465
- 0 === request.pendingRootTasks &&
5466
- null === request.trackedPostpones &&
5467
- null !== boundary.contentPreamble &&
5468
- preparePreamble(request)))
5469
- : null !== segment &&
5470
- segment.parentFlushed &&
5471
- 1 === segment.status &&
5472
- (queueCompletedSegment(boundary, segment),
5473
- 1 === boundary.completedSegments.length &&
5474
- boundary.parentFlushed &&
5475
- request.partialBoundaries.push(boundary)));
5476
- 0 === request.allPendingTasks && completeAll(request);
5504
+ request$jscomp$0.pendingRootTasks--;
5505
+ 0 === request$jscomp$0.pendingRootTasks && completeShell(request$jscomp$0);
5506
+ } else if ((boundary.pendingTasks--, 4 !== boundary.status))
5507
+ if (0 === boundary.pendingTasks)
5508
+ if (
5509
+ (0 === boundary.status && (boundary.status = 1),
5510
+ null !== segment &&
5511
+ segment.parentFlushed &&
5512
+ 1 === segment.status &&
5513
+ queueCompletedSegment(boundary, segment),
5514
+ boundary.parentFlushed &&
5515
+ request$jscomp$0.completedBoundaries.push(boundary),
5516
+ 1 === boundary.status)
5517
+ )
5518
+ (row = boundary.row),
5519
+ null !== row &&
5520
+ hoistHoistables(row.hoistables, boundary.contentState),
5521
+ 500 < boundary.byteSize ||
5522
+ (boundary.fallbackAbortableTasks.forEach(
5523
+ abortTaskSoft,
5524
+ request$jscomp$0
5525
+ ),
5526
+ boundary.fallbackAbortableTasks.clear(),
5527
+ null !== row &&
5528
+ 0 === --row.pendingTasks &&
5529
+ finishSuspenseListRow(request$jscomp$0, row)),
5530
+ 0 === request$jscomp$0.pendingRootTasks &&
5531
+ null === request$jscomp$0.trackedPostpones &&
5532
+ null !== boundary.contentPreamble &&
5533
+ preparePreamble(request$jscomp$0);
5534
+ else {
5535
+ if (
5536
+ 5 === boundary.status &&
5537
+ ((boundary = boundary.row), null !== boundary)
5538
+ ) {
5539
+ if (null !== request$jscomp$0.trackedPostpones) {
5540
+ row = request$jscomp$0.trackedPostpones;
5541
+ var postponedRow = boundary.next;
5542
+ if (
5543
+ null !== postponedRow &&
5544
+ ((segment = postponedRow.boundaries), null !== segment)
5545
+ )
5546
+ for (
5547
+ postponedRow.boundaries = null, postponedRow = 0;
5548
+ postponedRow < segment.length;
5549
+ postponedRow++
5550
+ ) {
5551
+ var postponedBoundary = segment[postponedRow];
5552
+ var request = request$jscomp$0,
5553
+ trackedPostpones = row;
5554
+ postponedBoundary.status = 5;
5555
+ postponedBoundary.rootSegmentID = request.nextSegmentId++;
5556
+ request = postponedBoundary.trackedContentKeyPath;
5557
+ if (null === request)
5558
+ throw Error(
5559
+ "It should not be possible to postpone at the root. This is a bug in React."
5560
+ );
5561
+ var fallbackReplayNode = postponedBoundary.trackedFallbackNode,
5562
+ children = [],
5563
+ boundaryNode = trackedPostpones.workingMap.get(request);
5564
+ void 0 === boundaryNode
5565
+ ? ((fallbackReplayNode = [
5566
+ request[1],
5567
+ request[2],
5568
+ children,
5569
+ null,
5570
+ fallbackReplayNode,
5571
+ postponedBoundary.rootSegmentID
5572
+ ]),
5573
+ trackedPostpones.workingMap.set(
5574
+ request,
5575
+ fallbackReplayNode
5576
+ ),
5577
+ addToReplayParent(
5578
+ fallbackReplayNode,
5579
+ request[0],
5580
+ trackedPostpones
5581
+ ))
5582
+ : ((boundaryNode[4] = fallbackReplayNode),
5583
+ (boundaryNode[5] = postponedBoundary.rootSegmentID));
5584
+ finishedTask(request$jscomp$0, postponedBoundary, null, null);
5585
+ }
5586
+ }
5587
+ 0 === --boundary.pendingTasks &&
5588
+ finishSuspenseListRow(request$jscomp$0, boundary);
5589
+ }
5590
+ }
5591
+ else
5592
+ null !== segment &&
5593
+ segment.parentFlushed &&
5594
+ 1 === segment.status &&
5595
+ (queueCompletedSegment(boundary, segment),
5596
+ 1 === boundary.completedSegments.length &&
5597
+ boundary.parentFlushed &&
5598
+ request$jscomp$0.partialBoundaries.push(boundary)),
5599
+ (boundary = boundary.row),
5600
+ null !== boundary &&
5601
+ boundary.together &&
5602
+ tryToResolveTogetherRow(request$jscomp$0, boundary);
5603
+ 0 === request$jscomp$0.allPendingTasks && completeAll(request$jscomp$0);
5477
5604
  }
5478
5605
  function performWork(request$jscomp$2) {
5479
5606
  if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) {
@@ -5632,19 +5759,25 @@ function performWork(request$jscomp$2) {
5632
5759
  x$jscomp$0,
5633
5760
  errorInfo$jscomp$0
5634
5761
  );
5635
- null === boundary$jscomp$0
5636
- ? fatalError(request, x$jscomp$0)
5637
- : (boundary$jscomp$0.pendingTasks--,
5638
- 4 !== boundary$jscomp$0.status &&
5639
- ((boundary$jscomp$0.status = 4),
5640
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5641
- untrackBoundary(request, boundary$jscomp$0),
5642
- boundary$jscomp$0.parentFlushed &&
5643
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5644
- 0 === request.pendingRootTasks &&
5645
- null === request.trackedPostpones &&
5646
- null !== boundary$jscomp$0.contentPreamble &&
5647
- preparePreamble(request)));
5762
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
5763
+ else if (
5764
+ (boundary$jscomp$0.pendingTasks--,
5765
+ 4 !== boundary$jscomp$0.status)
5766
+ ) {
5767
+ boundary$jscomp$0.status = 4;
5768
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
5769
+ untrackBoundary(request, boundary$jscomp$0);
5770
+ var boundaryRow = boundary$jscomp$0.row;
5771
+ null !== boundaryRow &&
5772
+ 0 === --boundaryRow.pendingTasks &&
5773
+ finishSuspenseListRow(request, boundaryRow);
5774
+ boundary$jscomp$0.parentFlushed &&
5775
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
5776
+ 0 === request.pendingRootTasks &&
5777
+ null === request.trackedPostpones &&
5778
+ null !== boundary$jscomp$0.contentPreamble &&
5779
+ preparePreamble(request);
5780
+ }
5648
5781
  0 === request.allPendingTasks && completeAll(request);
5649
5782
  }
5650
5783
  } finally {
@@ -5812,13 +5945,7 @@ function flushSegment(request, destination, segment, hoistableState) {
5812
5945
  request.renderState,
5813
5946
  boundary.rootSegmentID
5814
5947
  ),
5815
- hoistableState &&
5816
- ((boundary = boundary.fallbackState),
5817
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
5818
- boundary.stylesheets.forEach(
5819
- hoistStylesheetDependency,
5820
- hoistableState
5821
- )),
5948
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
5822
5949
  flushSubtree(request, destination, segment, hoistableState);
5823
5950
  else if (
5824
5951
  500 < boundary.byteSize &&
@@ -5834,10 +5961,7 @@ function flushSegment(request, destination, segment, hoistableState) {
5834
5961
  flushSubtree(request, destination, segment, hoistableState);
5835
5962
  else {
5836
5963
  flushedByteSize += boundary.byteSize;
5837
- hoistableState &&
5838
- ((segment = boundary.contentState),
5839
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5840
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
5964
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
5841
5965
  segment = boundary.row;
5842
5966
  null !== segment &&
5843
5967
  500 < boundary.byteSize &&
@@ -5906,7 +6030,7 @@ function flushCompletedBoundary(request, destination, boundary) {
5906
6030
  ((completedSegments.instructions |= 2),
5907
6031
  writeChunk(
5908
6032
  destination,
5909
- '$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())};'
6033
+ '$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())};'
5910
6034
  )),
5911
6035
  0 === (completedSegments.instructions & 8)
5912
6036
  ? ((completedSegments.instructions |= 8),
@@ -5919,7 +6043,7 @@ function flushCompletedBoundary(request, destination, boundary) {
5919
6043
  ((completedSegments.instructions |= 2),
5920
6044
  writeChunk(
5921
6045
  destination,
5922
- '$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())};'
6046
+ '$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())};'
5923
6047
  )),
5924
6048
  writeChunk(destination, '$RC("'));
5925
6049
  completedSegments = i.toString(16);
@@ -6165,12 +6289,12 @@ function flushCompletedQueues(request, destination) {
6165
6289
  completedBoundaries.splice(0, i);
6166
6290
  var partialBoundaries = request.partialBoundaries;
6167
6291
  for (i = 0; i < partialBoundaries.length; i++) {
6168
- var boundary$62 = partialBoundaries[i];
6292
+ var boundary$66 = partialBoundaries[i];
6169
6293
  a: {
6170
6294
  clientRenderedBoundaries = request;
6171
6295
  boundary = destination;
6172
- flushedByteSize = boundary$62.byteSize;
6173
- var completedSegments = boundary$62.completedSegments;
6296
+ flushedByteSize = boundary$66.byteSize;
6297
+ var completedSegments = boundary$66.completedSegments;
6174
6298
  for (
6175
6299
  JSCompiler_inline_result = 0;
6176
6300
  JSCompiler_inline_result < completedSegments.length;
@@ -6180,7 +6304,7 @@ function flushCompletedQueues(request, destination) {
6180
6304
  !flushPartiallyCompletedSegment(
6181
6305
  clientRenderedBoundaries,
6182
6306
  boundary,
6183
- boundary$62,
6307
+ boundary$66,
6184
6308
  completedSegments[JSCompiler_inline_result]
6185
6309
  )
6186
6310
  ) {
@@ -6190,9 +6314,20 @@ function flushCompletedQueues(request, destination) {
6190
6314
  break a;
6191
6315
  }
6192
6316
  completedSegments.splice(0, JSCompiler_inline_result);
6317
+ var row = boundary$66.row;
6318
+ null !== row &&
6319
+ row.together &&
6320
+ 1 === boundary$66.pendingTasks &&
6321
+ (1 === row.pendingTasks
6322
+ ? unblockSuspenseListRow(
6323
+ clientRenderedBoundaries,
6324
+ row,
6325
+ row.hoistables
6326
+ )
6327
+ : row.pendingTasks--);
6193
6328
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6194
6329
  boundary,
6195
- boundary$62.contentState,
6330
+ boundary$66.contentState,
6196
6331
  clientRenderedBoundaries.renderState
6197
6332
  );
6198
6333
  }
@@ -6273,19 +6408,31 @@ function abort(request, reason) {
6273
6408
  }
6274
6409
  null !== request.destination &&
6275
6410
  flushCompletedQueues(request, request.destination);
6276
- } catch (error$64) {
6277
- logRecoverableError(request, error$64, {}), fatalError(request, error$64);
6411
+ } catch (error$68) {
6412
+ logRecoverableError(request, error$68, {}), fatalError(request, error$68);
6413
+ }
6414
+ }
6415
+ function addToReplayParent(node, parentKeyPath, trackedPostpones) {
6416
+ if (null === parentKeyPath) trackedPostpones.rootNodes.push(node);
6417
+ else {
6418
+ var workingMap = trackedPostpones.workingMap,
6419
+ parentNode = workingMap.get(parentKeyPath);
6420
+ void 0 === parentNode &&
6421
+ ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]),
6422
+ workingMap.set(parentKeyPath, parentNode),
6423
+ addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones));
6424
+ parentNode[2].push(node);
6278
6425
  }
6279
6426
  }
6280
- var isomorphicReactPackageVersion$jscomp$inline_799 = React.version;
6427
+ var isomorphicReactPackageVersion$jscomp$inline_810 = React.version;
6281
6428
  if (
6282
- "19.2.0-canary-c4676e72-20250520" !==
6283
- isomorphicReactPackageVersion$jscomp$inline_799
6429
+ "19.2.0-canary-8ce15b0f-20250522" !==
6430
+ isomorphicReactPackageVersion$jscomp$inline_810
6284
6431
  )
6285
6432
  throw Error(
6286
6433
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
6287
- (isomorphicReactPackageVersion$jscomp$inline_799 +
6288
- "\n - react-dom: 19.2.0-canary-c4676e72-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
6434
+ (isomorphicReactPackageVersion$jscomp$inline_810 +
6435
+ "\n - react-dom: 19.2.0-canary-8ce15b0f-20250522\nLearn more: https://react.dev/warnings/version-mismatch")
6289
6436
  );
6290
6437
  exports.renderToReadableStream = function (children, options) {
6291
6438
  return new Promise(function (resolve, reject) {
@@ -6376,4 +6523,4 @@ exports.renderToReadableStream = function (children, options) {
6376
6523
  startWork(request);
6377
6524
  });
6378
6525
  };
6379
- exports.version = "19.2.0-canary-c4676e72-20250520";
6526
+ exports.version = "19.2.0-canary-8ce15b0f-20250522";