react-dom 19.2.0-canary-c4676e72-20250520 → 19.2.0-canary-23884812-20250520

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.
@@ -3174,6 +3174,10 @@ function hoistStyleQueueDependency(styleQueue) {
3174
3174
  function hoistStylesheetDependency(stylesheet) {
3175
3175
  this.stylesheets.add(stylesheet);
3176
3176
  }
3177
+ function hoistHoistables(parentState, childState) {
3178
+ childState.styles.forEach(hoistStyleQueueDependency, parentState);
3179
+ childState.stylesheets.forEach(hoistStylesheetDependency, parentState);
3180
+ }
3177
3181
  var bind = Function.prototype.bind,
3178
3182
  requestStorage = new async_hooks.AsyncLocalStorage(),
3179
3183
  REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference");
@@ -4116,11 +4120,14 @@ function createSuspenseBoundary(
4116
4120
  };
4117
4121
  null !== row &&
4118
4122
  (row.pendingTasks++,
4119
- (row = row.boundaries),
4120
- null !== row &&
4123
+ (contentPreamble = row.boundaries),
4124
+ null !== contentPreamble &&
4121
4125
  (request.allPendingTasks++,
4122
4126
  fallbackAbortableTasks.pendingTasks++,
4123
- row.push(fallbackAbortableTasks)));
4127
+ contentPreamble.push(fallbackAbortableTasks)),
4128
+ (request = row.inheritedHoistables),
4129
+ null !== request &&
4130
+ hoistHoistables(fallbackAbortableTasks.contentState, request));
4124
4131
  return fallbackAbortableTasks;
4125
4132
  }
4126
4133
  function createRenderTask(
@@ -4285,20 +4292,56 @@ function fatalError(request, error) {
4285
4292
  : ((request.status = 13), (request.fatalError = error));
4286
4293
  }
4287
4294
  function finishSuspenseListRow(request, row) {
4288
- for (row = row.next; null !== row; ) {
4289
- var unblockedBoundaries = row.boundaries;
4295
+ unblockSuspenseListRow(request, row.next, row.hoistables);
4296
+ }
4297
+ function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) {
4298
+ for (; null !== unblockedRow; ) {
4299
+ null !== inheritedHoistables &&
4300
+ (hoistHoistables(unblockedRow.hoistables, inheritedHoistables),
4301
+ (unblockedRow.inheritedHoistables = inheritedHoistables));
4302
+ var unblockedBoundaries = unblockedRow.boundaries;
4290
4303
  if (null !== unblockedBoundaries) {
4291
- row.boundaries = null;
4292
- for (var i = 0; i < unblockedBoundaries.length; i++)
4293
- finishedTask(request, unblockedBoundaries[i], null, null);
4304
+ unblockedRow.boundaries = null;
4305
+ for (var i = 0; i < unblockedBoundaries.length; i++) {
4306
+ var unblockedBoundary = unblockedBoundaries[i];
4307
+ null !== inheritedHoistables &&
4308
+ hoistHoistables(unblockedBoundary.contentState, inheritedHoistables);
4309
+ finishedTask(request, unblockedBoundary, null, null);
4310
+ }
4311
+ }
4312
+ unblockedRow.pendingTasks--;
4313
+ if (0 < unblockedRow.pendingTasks) break;
4314
+ inheritedHoistables = unblockedRow.hoistables;
4315
+ unblockedRow = unblockedRow.next;
4316
+ }
4317
+ }
4318
+ function tryToResolveTogetherRow(request, togetherRow) {
4319
+ var boundaries = togetherRow.boundaries;
4320
+ if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) {
4321
+ for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) {
4322
+ var rowBoundary = boundaries[i];
4323
+ if (
4324
+ 1 !== rowBoundary.pendingTasks ||
4325
+ rowBoundary.parentFlushed ||
4326
+ 500 < rowBoundary.byteSize
4327
+ ) {
4328
+ allCompleteAndInlinable = !1;
4329
+ break;
4330
+ }
4294
4331
  }
4295
- row.pendingTasks--;
4296
- if (0 < row.pendingTasks) break;
4297
- row = row.next;
4332
+ allCompleteAndInlinable &&
4333
+ unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables);
4298
4334
  }
4299
4335
  }
4300
4336
  function createSuspenseListRow(previousRow) {
4301
- var newRow = { pendingTasks: 1, boundaries: null, next: null };
4337
+ var newRow = {
4338
+ pendingTasks: 1,
4339
+ boundaries: null,
4340
+ hoistables: createHoistableState(),
4341
+ inheritedHoistables: null,
4342
+ together: !1,
4343
+ next: null
4344
+ };
4302
4345
  null !== previousRow &&
4303
4346
  0 < previousRow.pendingTasks &&
4304
4347
  (newRow.pendingTasks++,
@@ -4307,21 +4350,22 @@ function createSuspenseListRow(previousRow) {
4307
4350
  return newRow;
4308
4351
  }
4309
4352
  function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4310
- keyPath = task.keyPath;
4311
- var prevTreeContext = task.treeContext,
4312
- prevRow = task.row,
4313
- totalChildren = rows.length,
4314
- previousSuspenseListRow = null;
4353
+ var prevKeyPath = task.keyPath,
4354
+ prevTreeContext = task.treeContext,
4355
+ prevRow = task.row;
4356
+ task.keyPath = keyPath;
4357
+ keyPath = rows.length;
4358
+ var previousSuspenseListRow = null;
4315
4359
  if (null !== task.replay) {
4316
4360
  var resumeSlots = task.replay.slots;
4317
4361
  if (null !== resumeSlots && "object" === typeof resumeSlots)
4318
- for (var n = 0; n < totalChildren; n++) {
4319
- var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
4362
+ for (var n = 0; n < keyPath; n++) {
4363
+ var i = "backwards" !== revealOrder ? n : keyPath - 1 - n,
4320
4364
  node = rows[i];
4321
4365
  task.row = previousSuspenseListRow = createSuspenseListRow(
4322
4366
  previousSuspenseListRow
4323
4367
  );
4324
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4368
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4325
4369
  var resumeSegmentID = resumeSlots[i];
4326
4370
  "number" === typeof resumeSegmentID
4327
4371
  ? (resumeNode(request, task, resumeSegmentID, node, i),
@@ -4331,30 +4375,26 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4331
4375
  finishSuspenseListRow(request, previousSuspenseListRow);
4332
4376
  }
4333
4377
  else
4334
- for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4378
+ for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++)
4335
4379
  (n =
4336
4380
  "backwards" !== revealOrder
4337
4381
  ? resumeSlots
4338
- : totalChildren - 1 - resumeSlots),
4382
+ : keyPath - 1 - resumeSlots),
4339
4383
  (i = rows[n]),
4340
4384
  (task.row = previousSuspenseListRow =
4341
4385
  createSuspenseListRow(previousSuspenseListRow)),
4342
- (task.treeContext = pushTreeContext(
4343
- prevTreeContext,
4344
- totalChildren,
4345
- n
4346
- )),
4386
+ (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)),
4347
4387
  renderNode(request, task, i, n),
4348
4388
  0 === --previousSuspenseListRow.pendingTasks &&
4349
4389
  finishSuspenseListRow(request, previousSuspenseListRow);
4350
4390
  } else if ("backwards" !== revealOrder)
4351
- for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4391
+ for (revealOrder = 0; revealOrder < keyPath; revealOrder++)
4352
4392
  (resumeSlots = rows[revealOrder]),
4353
4393
  (task.row = previousSuspenseListRow =
4354
4394
  createSuspenseListRow(previousSuspenseListRow)),
4355
4395
  (task.treeContext = pushTreeContext(
4356
4396
  prevTreeContext,
4357
- totalChildren,
4397
+ keyPath,
4358
4398
  revealOrder
4359
4399
  )),
4360
4400
  renderNode(request, task, resumeSlots, revealOrder),
@@ -4364,12 +4404,12 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4364
4404
  revealOrder = task.blockedSegment;
4365
4405
  resumeSlots = revealOrder.children.length;
4366
4406
  n = revealOrder.chunks.length;
4367
- for (i = totalChildren - 1; 0 <= i; i--) {
4407
+ for (i = keyPath - 1; 0 <= i; i--) {
4368
4408
  node = rows[i];
4369
4409
  task.row = previousSuspenseListRow = createSuspenseListRow(
4370
4410
  previousSuspenseListRow
4371
4411
  );
4372
- task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4412
+ task.treeContext = pushTreeContext(prevTreeContext, keyPath, i);
4373
4413
  resumeSegmentID = createPendingSegment(
4374
4414
  request,
4375
4415
  n,
@@ -4405,7 +4445,7 @@ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4405
4445
  (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4406
4446
  task.treeContext = prevTreeContext;
4407
4447
  task.row = prevRow;
4408
- task.keyPath = keyPath;
4448
+ task.keyPath = prevKeyPath;
4409
4449
  }
4410
4450
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
4411
4451
  var prevThenableState = task.thenableState;
@@ -4474,9 +4514,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4474
4514
  var defaultProps = type.defaultProps;
4475
4515
  if (defaultProps) {
4476
4516
  newProps === props && (newProps = assign({}, newProps, props));
4477
- for (var propName$42 in defaultProps)
4478
- void 0 === newProps[propName$42] &&
4479
- (newProps[propName$42] = defaultProps[propName$42]);
4517
+ for (var propName$43 in defaultProps)
4518
+ void 0 === newProps[propName$43] &&
4519
+ (newProps[propName$43] = defaultProps[propName$43]);
4480
4520
  }
4481
4521
  props = newProps;
4482
4522
  newProps = emptyContextObject;
@@ -4536,16 +4576,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4536
4576
  defaultProps = ref ? type[0] : newProps.state;
4537
4577
  initialState = !0;
4538
4578
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4539
- (propName$42 = type[ref]),
4540
- (propName$42 =
4541
- "function" === typeof propName$42
4542
- ? propName$42.call(newProps, defaultProps, props, void 0)
4543
- : propName$42),
4544
- null != propName$42 &&
4579
+ (propName$43 = type[ref]),
4580
+ (propName$43 =
4581
+ "function" === typeof propName$43
4582
+ ? propName$43.call(newProps, defaultProps, props, void 0)
4583
+ : propName$43),
4584
+ null != propName$43 &&
4545
4585
  (initialState
4546
4586
  ? ((initialState = !1),
4547
- (defaultProps = assign({}, defaultProps, propName$42)))
4548
- : assign(defaultProps, propName$42));
4587
+ (defaultProps = assign({}, defaultProps, propName$43)))
4588
+ : assign(defaultProps, propName$43));
4549
4589
  newProps.state = defaultProps;
4550
4590
  }
4551
4591
  else defaultProps.queue = null;
@@ -4719,10 +4759,25 @@ function renderElement(request, task, keyPath, type, props, ref) {
4719
4759
  break a;
4720
4760
  }
4721
4761
  }
4722
- props = task.keyPath;
4723
- task.keyPath = keyPath;
4724
- renderNodeDestructive(request, task, type, -1);
4725
- task.keyPath = props;
4762
+ "together" === props
4763
+ ? ((props = task.keyPath),
4764
+ (newProps = task.row),
4765
+ (defaultProps = task.row = createSuspenseListRow(null)),
4766
+ (defaultProps.boundaries = []),
4767
+ (defaultProps.together = !0),
4768
+ (task.keyPath = keyPath),
4769
+ renderNodeDestructive(request, task, type, -1),
4770
+ 0 === --defaultProps.pendingTasks &&
4771
+ finishSuspenseListRow(request, defaultProps),
4772
+ (task.keyPath = props),
4773
+ (task.row = newProps),
4774
+ null !== newProps &&
4775
+ 0 < defaultProps.pendingTasks &&
4776
+ (newProps.pendingTasks++, (defaultProps.next = newProps)))
4777
+ : ((props = task.keyPath),
4778
+ (task.keyPath = keyPath),
4779
+ renderNodeDestructive(request, task, type, -1),
4780
+ (task.keyPath = props));
4726
4781
  }
4727
4782
  return;
4728
4783
  case REACT_VIEW_TRANSITION_TYPE:
@@ -4751,7 +4806,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4751
4806
  type = task.keyPath;
4752
4807
  ref = task.formatContext;
4753
4808
  var prevRow = task.row;
4754
- propName$42 = task.blockedBoundary;
4809
+ propName$43 = task.blockedBoundary;
4755
4810
  propName = task.blockedPreamble;
4756
4811
  var parentHoistableState = task.hoistableState,
4757
4812
  parentSegment = task.blockedSegment,
@@ -4814,7 +4869,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4814
4869
  boundarySegment.textEmbedded &&
4815
4870
  boundarySegment.chunks.push(textSeparator),
4816
4871
  (boundarySegment.status = 1),
4817
- finishedSegment(request, propName$42, boundarySegment);
4872
+ finishedSegment(request, propName$43, boundarySegment);
4818
4873
  } catch (thrownValue) {
4819
4874
  throw (
4820
4875
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
@@ -4869,18 +4924,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4869
4924
  (contentRootSegment.status = 1),
4870
4925
  finishedSegment(request, newBoundary, contentRootSegment),
4871
4926
  queueCompletedSegment(newBoundary, contentRootSegment),
4872
- 0 === newBoundary.pendingTasks &&
4873
- 0 === newBoundary.status &&
4874
- ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4927
+ 0 === newBoundary.pendingTasks && 0 === newBoundary.status)
4875
4928
  ) {
4929
+ if (((newBoundary.status = 1), !(500 < newBoundary.byteSize))) {
4930
+ null !== prevRow &&
4931
+ 0 === --prevRow.pendingTasks &&
4932
+ finishSuspenseListRow(request, prevRow);
4933
+ 0 === request.pendingRootTasks &&
4934
+ task.blockedPreamble &&
4935
+ preparePreamble(request);
4936
+ break a;
4937
+ }
4938
+ } else
4876
4939
  null !== prevRow &&
4877
- 0 === --prevRow.pendingTasks &&
4878
- finishSuspenseListRow(request, prevRow);
4879
- 0 === request.pendingRootTasks &&
4880
- task.blockedPreamble &&
4881
- preparePreamble(request);
4882
- break a;
4883
- }
4940
+ prevRow.together &&
4941
+ tryToResolveTogetherRow(request, prevRow);
4884
4942
  } catch (thrownValue$30) {
4885
4943
  (newBoundary.status = 4),
4886
4944
  12 === request.status
@@ -4897,7 +4955,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4897
4955
  (newBoundary.errorDigest = initialState),
4898
4956
  untrackBoundary(request, newBoundary);
4899
4957
  } finally {
4900
- (task.blockedBoundary = propName$42),
4958
+ (task.blockedBoundary = propName$43),
4901
4959
  (task.blockedPreamble = propName),
4902
4960
  (task.hoistableState = parentHoistableState),
4903
4961
  (task.blockedSegment = parentSegment),
@@ -4910,7 +4968,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4910
4968
  null,
4911
4969
  fallback,
4912
4970
  -1,
4913
- propName$42,
4971
+ propName$43,
4914
4972
  boundarySegment,
4915
4973
  newBoundary.fallbackPreamble,
4916
4974
  newBoundary.fallbackState,
@@ -5500,15 +5558,15 @@ function renderNode(request, task, node, childIndex) {
5500
5558
  chunkLength = segment.chunks.length;
5501
5559
  try {
5502
5560
  return renderNodeDestructive(request, task, node, childIndex);
5503
- } catch (thrownValue$58) {
5561
+ } catch (thrownValue$59) {
5504
5562
  if (
5505
5563
  (resetHooksState(),
5506
5564
  (segment.children.length = childrenLength),
5507
5565
  (segment.chunks.length = chunkLength),
5508
5566
  (node =
5509
- thrownValue$58 === SuspenseException
5567
+ thrownValue$59 === SuspenseException
5510
5568
  ? getSuspendedThenable()
5511
- : thrownValue$58),
5569
+ : thrownValue$59),
5512
5570
  "object" === typeof node && null !== node)
5513
5571
  ) {
5514
5572
  if ("function" === typeof node.then) {
@@ -5610,10 +5668,6 @@ function abortTask(task, request, error) {
5610
5668
  if (6 === segment.status) return;
5611
5669
  segment.status = 3;
5612
5670
  }
5613
- segment = task.row;
5614
- null !== segment &&
5615
- 0 === --segment.pendingTasks &&
5616
- finishSuspenseListRow(request, segment);
5617
5671
  segment = getThrownInfo(task.componentStack);
5618
5672
  if (null === boundary) {
5619
5673
  if (13 !== request.status && 14 !== request.status) {
@@ -5626,32 +5680,40 @@ function abortTask(task, request, error) {
5626
5680
  boundary.pendingTasks--;
5627
5681
  0 === boundary.pendingTasks &&
5628
5682
  0 < boundary.nodes.length &&
5629
- ((task = logRecoverableError(request, error, segment)),
5683
+ ((segment = logRecoverableError(request, error, segment)),
5630
5684
  abortRemainingReplayNodes(
5631
5685
  request,
5632
5686
  null,
5633
5687
  boundary.nodes,
5634
5688
  boundary.slots,
5635
5689
  error,
5636
- task
5690
+ segment
5637
5691
  ));
5638
5692
  request.pendingRootTasks--;
5639
5693
  0 === request.pendingRootTasks && completeShell(request);
5640
5694
  }
5641
5695
  } else
5642
- boundary.pendingTasks--,
5643
- 4 !== boundary.status &&
5644
- ((boundary.status = 4),
5645
- (task = logRecoverableError(request, error, segment)),
5646
- (boundary.status = 4),
5647
- (boundary.errorDigest = task),
5648
- untrackBoundary(request, boundary),
5649
- boundary.parentFlushed &&
5650
- request.clientRenderedBoundaries.push(boundary)),
5696
+ 4 !== boundary.status &&
5697
+ ((boundary.status = 4),
5698
+ (segment = logRecoverableError(request, error, segment)),
5699
+ (boundary.status = 4),
5700
+ (boundary.errorDigest = segment),
5701
+ untrackBoundary(request, boundary),
5702
+ boundary.parentFlushed &&
5703
+ request.clientRenderedBoundaries.push(boundary)),
5704
+ boundary.pendingTasks--,
5705
+ (segment = boundary.row),
5706
+ null !== segment &&
5707
+ 0 === --segment.pendingTasks &&
5708
+ finishSuspenseListRow(request, segment),
5651
5709
  boundary.fallbackAbortableTasks.forEach(function (fallbackTask) {
5652
5710
  return abortTask(fallbackTask, request, error);
5653
5711
  }),
5654
5712
  boundary.fallbackAbortableTasks.clear();
5713
+ task = task.row;
5714
+ null !== task &&
5715
+ 0 === --task.pendingTasks &&
5716
+ finishSuspenseListRow(request, task);
5655
5717
  request.allPendingTasks--;
5656
5718
  0 === request.allPendingTasks && completeAll(request);
5657
5719
  }
@@ -5760,8 +5822,9 @@ function finishedSegment(request, boundary, segment) {
5760
5822
  }
5761
5823
  function finishedTask(request, boundary, row, segment) {
5762
5824
  null !== row &&
5763
- 0 === --row.pendingTasks &&
5764
- finishSuspenseListRow(request, row);
5825
+ (0 === --row.pendingTasks
5826
+ ? finishSuspenseListRow(request, row)
5827
+ : row.together && tryToResolveTogetherRow(request, row));
5765
5828
  request.allPendingTasks--;
5766
5829
  if (null === boundary) {
5767
5830
  if (null !== segment && segment.parentFlushed) {
@@ -5785,13 +5848,15 @@ function finishedTask(request, boundary, row, segment) {
5785
5848
  boundary.parentFlushed &&
5786
5849
  request.completedBoundaries.push(boundary),
5787
5850
  1 === boundary.status &&
5788
- (500 < boundary.byteSize ||
5851
+ ((row = boundary.row),
5852
+ null !== row &&
5853
+ hoistHoistables(row.hoistables, boundary.contentState),
5854
+ 500 < boundary.byteSize ||
5789
5855
  (boundary.fallbackAbortableTasks.forEach(
5790
5856
  abortTaskSoft,
5791
5857
  request
5792
5858
  ),
5793
5859
  boundary.fallbackAbortableTasks.clear(),
5794
- (row = boundary.row),
5795
5860
  null !== row &&
5796
5861
  0 === --row.pendingTasks &&
5797
5862
  finishSuspenseListRow(request, row)),
@@ -5799,13 +5864,17 @@ function finishedTask(request, boundary, row, segment) {
5799
5864
  null === request.trackedPostpones &&
5800
5865
  null !== boundary.contentPreamble &&
5801
5866
  preparePreamble(request)))
5802
- : null !== segment &&
5803
- segment.parentFlushed &&
5804
- 1 === segment.status &&
5805
- (queueCompletedSegment(boundary, segment),
5806
- 1 === boundary.completedSegments.length &&
5807
- boundary.parentFlushed &&
5808
- request.partialBoundaries.push(boundary)));
5867
+ : (null !== segment &&
5868
+ segment.parentFlushed &&
5869
+ 1 === segment.status &&
5870
+ (queueCompletedSegment(boundary, segment),
5871
+ 1 === boundary.completedSegments.length &&
5872
+ boundary.parentFlushed &&
5873
+ request.partialBoundaries.push(boundary)),
5874
+ (boundary = boundary.row),
5875
+ null !== boundary &&
5876
+ boundary.together &&
5877
+ tryToResolveTogetherRow(request, boundary)));
5809
5878
  0 === request.allPendingTasks && completeAll(request);
5810
5879
  }
5811
5880
  function performWork(request$jscomp$2) {
@@ -5962,19 +6031,25 @@ function performWork(request$jscomp$2) {
5962
6031
  x$jscomp$0,
5963
6032
  errorInfo$jscomp$0
5964
6033
  );
5965
- null === boundary$jscomp$0
5966
- ? fatalError(request, x$jscomp$0)
5967
- : (boundary$jscomp$0.pendingTasks--,
5968
- 4 !== boundary$jscomp$0.status &&
5969
- ((boundary$jscomp$0.status = 4),
5970
- (boundary$jscomp$0.errorDigest = request$jscomp$0),
5971
- untrackBoundary(request, boundary$jscomp$0),
5972
- boundary$jscomp$0.parentFlushed &&
5973
- request.clientRenderedBoundaries.push(boundary$jscomp$0),
5974
- 0 === request.pendingRootTasks &&
5975
- null === request.trackedPostpones &&
5976
- null !== boundary$jscomp$0.contentPreamble &&
5977
- preparePreamble(request)));
6034
+ if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0);
6035
+ else if (
6036
+ (boundary$jscomp$0.pendingTasks--,
6037
+ 4 !== boundary$jscomp$0.status)
6038
+ ) {
6039
+ boundary$jscomp$0.status = 4;
6040
+ boundary$jscomp$0.errorDigest = request$jscomp$0;
6041
+ untrackBoundary(request, boundary$jscomp$0);
6042
+ var boundaryRow = boundary$jscomp$0.row;
6043
+ null !== boundaryRow &&
6044
+ 0 === --boundaryRow.pendingTasks &&
6045
+ finishSuspenseListRow(request, boundaryRow);
6046
+ boundary$jscomp$0.parentFlushed &&
6047
+ request.clientRenderedBoundaries.push(boundary$jscomp$0);
6048
+ 0 === request.pendingRootTasks &&
6049
+ null === request.trackedPostpones &&
6050
+ null !== boundary$jscomp$0.contentPreamble &&
6051
+ preparePreamble(request);
6052
+ }
5978
6053
  0 === request.allPendingTasks && completeAll(request);
5979
6054
  }
5980
6055
  } finally {
@@ -6146,13 +6221,7 @@ function flushSegment(request, destination, segment, hoistableState) {
6146
6221
  request.renderState,
6147
6222
  boundary.rootSegmentID
6148
6223
  ),
6149
- hoistableState &&
6150
- ((boundary = boundary.fallbackState),
6151
- boundary.styles.forEach(hoistStyleQueueDependency, hoistableState),
6152
- boundary.stylesheets.forEach(
6153
- hoistStylesheetDependency,
6154
- hoistableState
6155
- )),
6224
+ hoistableState && hoistHoistables(hoistableState, boundary.fallbackState),
6156
6225
  flushSubtree(request, destination, segment, hoistableState);
6157
6226
  else if (
6158
6227
  500 < boundary.byteSize &&
@@ -6168,10 +6237,7 @@ function flushSegment(request, destination, segment, hoistableState) {
6168
6237
  flushSubtree(request, destination, segment, hoistableState);
6169
6238
  else {
6170
6239
  flushedByteSize += boundary.byteSize;
6171
- hoistableState &&
6172
- ((segment = boundary.contentState),
6173
- segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
6174
- segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
6240
+ hoistableState && hoistHoistables(hoistableState, boundary.contentState);
6175
6241
  segment = boundary.row;
6176
6242
  null !== segment &&
6177
6243
  500 < boundary.byteSize &&
@@ -6490,12 +6556,12 @@ function flushCompletedQueues(request, destination) {
6490
6556
  destinationHasCapacity$1 = !0;
6491
6557
  var partialBoundaries = request.partialBoundaries;
6492
6558
  for (i = 0; i < partialBoundaries.length; i++) {
6493
- var boundary$62 = partialBoundaries[i];
6559
+ var boundary$64 = partialBoundaries[i];
6494
6560
  a: {
6495
6561
  clientRenderedBoundaries = request;
6496
6562
  boundary = destination;
6497
- flushedByteSize = boundary$62.byteSize;
6498
- var completedSegments = boundary$62.completedSegments;
6563
+ flushedByteSize = boundary$64.byteSize;
6564
+ var completedSegments = boundary$64.completedSegments;
6499
6565
  for (
6500
6566
  JSCompiler_inline_result = 0;
6501
6567
  JSCompiler_inline_result < completedSegments.length;
@@ -6505,7 +6571,7 @@ function flushCompletedQueues(request, destination) {
6505
6571
  !flushPartiallyCompletedSegment(
6506
6572
  clientRenderedBoundaries,
6507
6573
  boundary,
6508
- boundary$62,
6574
+ boundary$64,
6509
6575
  completedSegments[JSCompiler_inline_result]
6510
6576
  )
6511
6577
  ) {
@@ -6515,9 +6581,20 @@ function flushCompletedQueues(request, destination) {
6515
6581
  break a;
6516
6582
  }
6517
6583
  completedSegments.splice(0, JSCompiler_inline_result);
6584
+ var row = boundary$64.row;
6585
+ null !== row &&
6586
+ row.together &&
6587
+ 1 === boundary$64.pendingTasks &&
6588
+ (1 === row.pendingTasks
6589
+ ? unblockSuspenseListRow(
6590
+ clientRenderedBoundaries,
6591
+ row,
6592
+ row.hoistables
6593
+ )
6594
+ : row.pendingTasks--);
6518
6595
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6519
6596
  boundary,
6520
- boundary$62.contentState,
6597
+ boundary$64.contentState,
6521
6598
  clientRenderedBoundaries.renderState
6522
6599
  );
6523
6600
  }
@@ -6618,17 +6695,17 @@ function abort(request, reason) {
6618
6695
  }
6619
6696
  null !== request.destination &&
6620
6697
  flushCompletedQueues(request, request.destination);
6621
- } catch (error$64) {
6622
- logRecoverableError(request, error$64, {}), fatalError(request, error$64);
6698
+ } catch (error$66) {
6699
+ logRecoverableError(request, error$66, {}), fatalError(request, error$66);
6623
6700
  }
6624
6701
  }
6625
6702
  function ensureCorrectIsomorphicReactVersion() {
6626
6703
  var isomorphicReactPackageVersion = React.version;
6627
- if ("19.2.0-canary-c4676e72-20250520" !== isomorphicReactPackageVersion)
6704
+ if ("19.2.0-canary-23884812-20250520" !== isomorphicReactPackageVersion)
6628
6705
  throw Error(
6629
6706
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
6630
6707
  (isomorphicReactPackageVersion +
6631
- "\n - react-dom: 19.2.0-canary-c4676e72-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
6708
+ "\n - react-dom: 19.2.0-canary-23884812-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
6632
6709
  );
6633
6710
  }
6634
6711
  ensureCorrectIsomorphicReactVersion();
@@ -6777,4 +6854,4 @@ exports.renderToPipeableStream = function (children, options) {
6777
6854
  }
6778
6855
  };
6779
6856
  };
6780
- exports.version = "19.2.0-canary-c4676e72-20250520";
6857
+ exports.version = "19.2.0-canary-23884812-20250520";
@@ -416,7 +416,7 @@
416
416
  exports.useFormStatus = function () {
417
417
  return resolveDispatcher().useHostTransitionStatus();
418
418
  };
419
- exports.version = "19.2.0-canary-c4676e72-20250520";
419
+ exports.version = "19.2.0-canary-23884812-20250520";
420
420
  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
421
421
  "function" ===
422
422
  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -207,4 +207,4 @@ exports.useFormState = function (action, initialState, permalink) {
207
207
  exports.useFormStatus = function () {
208
208
  return ReactSharedInternals.H.useHostTransitionStatus();
209
209
  };
210
- exports.version = "19.2.0-canary-c4676e72-20250520";
210
+ exports.version = "19.2.0-canary-23884812-20250520";
@@ -336,5 +336,5 @@
336
336
  }))
337
337
  : Internals.d.m(href));
338
338
  };
339
- exports.version = "19.2.0-canary-c4676e72-20250520";
339
+ exports.version = "19.2.0-canary-23884812-20250520";
340
340
  })();
@@ -149,4 +149,4 @@ exports.preloadModule = function (href, options) {
149
149
  });
150
150
  } else Internals.d.m(href);
151
151
  };
152
- exports.version = "19.2.0-canary-c4676e72-20250520";
152
+ exports.version = "19.2.0-canary-23884812-20250520";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-dom",
3
- "version": "19.2.0-canary-c4676e72-20250520",
3
+ "version": "19.2.0-canary-23884812-20250520",
4
4
  "description": "React package for working with the DOM.",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -17,10 +17,10 @@
17
17
  },
18
18
  "homepage": "https://react.dev/",
19
19
  "dependencies": {
20
- "scheduler": "0.27.0-canary-c4676e72-20250520"
20
+ "scheduler": "0.27.0-canary-23884812-20250520"
21
21
  },
22
22
  "peerDependencies": {
23
- "react": "19.2.0-canary-c4676e72-20250520"
23
+ "react": "19.2.0-canary-23884812-20250520"
24
24
  },
25
25
  "files": [
26
26
  "LICENSE",