react-dom 19.2.0-canary-4448b187-20250515 → 19.2.0-canary-c4676e72-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.
@@ -53,8 +53,15 @@ var React = require("react"),
53
53
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
54
54
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
55
55
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
56
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
57
- isArrayImpl = Array.isArray;
56
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
57
+ function getIteratorFn(maybeIterable) {
58
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
59
+ maybeIterable =
60
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
61
+ maybeIterable["@@iterator"];
62
+ return "function" === typeof maybeIterable ? maybeIterable : null;
63
+ }
64
+ var isArrayImpl = Array.isArray;
58
65
  function murmurhash3_32_gc(key, seed) {
59
66
  var remainder = key.length & 3;
60
67
  var bytes = key.length - remainder;
@@ -685,7 +692,8 @@ function getSuspenseViewTransition(parentViewTransition) {
685
692
  nameIdx: 0
686
693
  };
687
694
  }
688
- function getSuspenseFallbackFormatContext(parentContext) {
695
+ function getSuspenseFallbackFormatContext(resumableState, parentContext) {
696
+ parentContext.tagScope & 32 && (resumableState.instructions |= 128);
689
697
  return createFormatContext(
690
698
  parentContext.insertionMode,
691
699
  parentContext.selectedValue,
@@ -693,7 +701,7 @@ function getSuspenseFallbackFormatContext(parentContext) {
693
701
  getSuspenseViewTransition(parentContext.viewTransition)
694
702
  );
695
703
  }
696
- function getSuspenseContentFormatContext(parentContext) {
704
+ function getSuspenseContentFormatContext(resumableState, parentContext) {
697
705
  return createFormatContext(
698
706
  parentContext.insertionMode,
699
707
  parentContext.selectedValue,
@@ -2529,12 +2537,12 @@ var completeSegmentScript1Full = stringToPrecomputedChunk(
2529
2537
  stringToPrecomputedChunk('<template data-rsi="" data-sid="');
2530
2538
  stringToPrecomputedChunk('" data-pid="');
2531
2539
  var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
2532
- '$RB=[];$RC=function(d,c){function m(){$RT=performance.now();var f=$RB;$RB=[];for(var e=0;e<f.length;e+=2){var a=f[e],l=f[e+1],g=a.parentNode;if(g){var h=a.previousSibling,k=0;do{if(a&&8===a.nodeType){var b=a.data;if("/$"===b||"/&"===b)if(0===k)break;else k--;else"$"!==b&&"$?"!==b&&"$~"!==b&&"$!"!==b&&"&"!==b||k++}b=a.nextSibling;g.removeChild(a);a=b}while(a);for(;l.firstChild;)g.insertBefore(l.firstChild,a);h.data="$";h._reactRetry&&h._reactRetry()}}}if(c=document.getElementById(c))if(c.parentNode.removeChild(c),d=\ndocument.getElementById(d))d.previousSibling.data="$~",$RB.push(d,c),2===$RB.length&&setTimeout(m,("number"!==typeof $RT?0:$RT)+300-performance.now())};'
2533
- ),
2534
- completeBoundaryScript1Full = stringToPrecomputedChunk(
2535
- '$RB=[];$RC=function(d,c){function m(){$RT=performance.now();var f=$RB;$RB=[];for(var e=0;e<f.length;e+=2){var a=f[e],l=f[e+1],g=a.parentNode;if(g){var h=a.previousSibling,k=0;do{if(a&&8===a.nodeType){var b=a.data;if("/$"===b||"/&"===b)if(0===k)break;else k--;else"$"!==b&&"$?"!==b&&"$~"!==b&&"$!"!==b&&"&"!==b||k++}b=a.nextSibling;g.removeChild(a);a=b}while(a);for(;l.firstChild;)g.insertBefore(l.firstChild,a);h.data="$";h._reactRetry&&h._reactRetry()}}}if(c=document.getElementById(c))if(c.parentNode.removeChild(c),d=\ndocument.getElementById(d))d.previousSibling.data="$~",$RB.push(d,c),2===$RB.length&&setTimeout(m,("number"!==typeof $RT?0:$RT)+300-performance.now())};$RC("'
2536
- ),
2537
- completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
2540
+ '$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())};'
2541
+ );
2542
+ stringToPrecomputedChunk(
2543
+ "$RV=function(a){try{var b=document.__reactViewTransition;if(b){b.finished.then($RV,$RV);return}if(window._useVT){var c=document.__reactViewTransition=document.startViewTransition({update:a,types:[]});c.finished.finally(function(){document.__reactViewTransition===c&&(document.__reactViewTransition=null)});return}}catch(d){}a()}.bind(null,$RV);"
2544
+ );
2545
+ var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
2538
2546
  completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
2539
2547
  '$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("'
2540
2548
  ),
@@ -4117,6 +4125,7 @@ function createRequest(
4117
4125
  rootFormatContext,
4118
4126
  null,
4119
4127
  emptyTreeContext,
4128
+ null,
4120
4129
  null
4121
4130
  );
4122
4131
  pushComponentStack(children);
@@ -4180,15 +4189,17 @@ function pingTask(request, task) {
4180
4189
  }
4181
4190
  function createSuspenseBoundary(
4182
4191
  request,
4192
+ row,
4183
4193
  fallbackAbortableTasks,
4184
4194
  contentPreamble,
4185
4195
  fallbackPreamble
4186
4196
  ) {
4187
- return {
4197
+ fallbackAbortableTasks = {
4188
4198
  status: 0,
4189
4199
  rootSegmentID: -1,
4190
4200
  parentFlushed: !1,
4191
4201
  pendingTasks: 0,
4202
+ row: row,
4192
4203
  completedSegments: [],
4193
4204
  byteSize: 0,
4194
4205
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -4200,6 +4211,14 @@ function createSuspenseBoundary(
4200
4211
  trackedContentKeyPath: null,
4201
4212
  trackedFallbackNode: null
4202
4213
  };
4214
+ null !== row &&
4215
+ (row.pendingTasks++,
4216
+ (row = row.boundaries),
4217
+ null !== row &&
4218
+ (request.allPendingTasks++,
4219
+ fallbackAbortableTasks.pendingTasks++,
4220
+ row.push(fallbackAbortableTasks)));
4221
+ return fallbackAbortableTasks;
4203
4222
  }
4204
4223
  function createRenderTask(
4205
4224
  request,
@@ -4215,12 +4234,14 @@ function createRenderTask(
4215
4234
  formatContext,
4216
4235
  context,
4217
4236
  treeContext,
4237
+ row,
4218
4238
  componentStack
4219
4239
  ) {
4220
4240
  request.allPendingTasks++;
4221
4241
  null === blockedBoundary
4222
4242
  ? request.pendingRootTasks++
4223
4243
  : blockedBoundary.pendingTasks++;
4244
+ null !== row && row.pendingTasks++;
4224
4245
  var task = {
4225
4246
  replay: null,
4226
4247
  node: node,
@@ -4237,6 +4258,7 @@ function createRenderTask(
4237
4258
  formatContext: formatContext,
4238
4259
  context: context,
4239
4260
  treeContext: treeContext,
4261
+ row: row,
4240
4262
  componentStack: componentStack,
4241
4263
  thenableState: thenableState
4242
4264
  };
@@ -4256,12 +4278,14 @@ function createReplayTask(
4256
4278
  formatContext,
4257
4279
  context,
4258
4280
  treeContext,
4281
+ row,
4259
4282
  componentStack
4260
4283
  ) {
4261
4284
  request.allPendingTasks++;
4262
4285
  null === blockedBoundary
4263
4286
  ? request.pendingRootTasks++
4264
4287
  : blockedBoundary.pendingTasks++;
4288
+ null !== row && row.pendingTasks++;
4265
4289
  replay.pendingTasks++;
4266
4290
  var task = {
4267
4291
  replay: replay,
@@ -4279,6 +4303,7 @@ function createReplayTask(
4279
4303
  formatContext: formatContext,
4280
4304
  context: context,
4281
4305
  treeContext: treeContext,
4306
+ row: row,
4282
4307
  componentStack: componentStack,
4283
4308
  thenableState: thenableState
4284
4309
  };
@@ -4356,6 +4381,129 @@ function fatalError(request, error) {
4356
4381
  ? ((request.status = 14), closeWithError(request.destination, error))
4357
4382
  : ((request.status = 13), (request.fatalError = error));
4358
4383
  }
4384
+ function finishSuspenseListRow(request, row) {
4385
+ for (row = row.next; null !== row; ) {
4386
+ var unblockedBoundaries = row.boundaries;
4387
+ if (null !== unblockedBoundaries) {
4388
+ row.boundaries = null;
4389
+ for (var i = 0; i < unblockedBoundaries.length; i++)
4390
+ finishedTask(request, unblockedBoundaries[i], null, null);
4391
+ }
4392
+ row.pendingTasks--;
4393
+ if (0 < row.pendingTasks) break;
4394
+ row = row.next;
4395
+ }
4396
+ }
4397
+ function createSuspenseListRow(previousRow) {
4398
+ var newRow = { pendingTasks: 1, boundaries: null, next: null };
4399
+ null !== previousRow &&
4400
+ 0 < previousRow.pendingTasks &&
4401
+ (newRow.pendingTasks++,
4402
+ (newRow.boundaries = []),
4403
+ (previousRow.next = newRow));
4404
+ return newRow;
4405
+ }
4406
+ function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) {
4407
+ keyPath = task.keyPath;
4408
+ var prevTreeContext = task.treeContext,
4409
+ prevRow = task.row,
4410
+ totalChildren = rows.length,
4411
+ previousSuspenseListRow = null;
4412
+ if (null !== task.replay) {
4413
+ var resumeSlots = task.replay.slots;
4414
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4415
+ for (var n = 0; n < totalChildren; n++) {
4416
+ var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
4417
+ node = rows[i];
4418
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4419
+ previousSuspenseListRow
4420
+ );
4421
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4422
+ var resumeSegmentID = resumeSlots[i];
4423
+ "number" === typeof resumeSegmentID
4424
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4425
+ delete resumeSlots[i])
4426
+ : renderNode(request, task, node, i);
4427
+ 0 === --previousSuspenseListRow.pendingTasks &&
4428
+ finishSuspenseListRow(request, previousSuspenseListRow);
4429
+ }
4430
+ else
4431
+ for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4432
+ (n =
4433
+ "backwards" !== revealOrder
4434
+ ? resumeSlots
4435
+ : totalChildren - 1 - resumeSlots),
4436
+ (i = rows[n]),
4437
+ (task.row = previousSuspenseListRow =
4438
+ createSuspenseListRow(previousSuspenseListRow)),
4439
+ (task.treeContext = pushTreeContext(
4440
+ prevTreeContext,
4441
+ totalChildren,
4442
+ n
4443
+ )),
4444
+ renderNode(request, task, i, n),
4445
+ 0 === --previousSuspenseListRow.pendingTasks &&
4446
+ finishSuspenseListRow(request, previousSuspenseListRow);
4447
+ } else if ("backwards" !== revealOrder)
4448
+ for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4449
+ (resumeSlots = rows[revealOrder]),
4450
+ (task.row = previousSuspenseListRow =
4451
+ createSuspenseListRow(previousSuspenseListRow)),
4452
+ (task.treeContext = pushTreeContext(
4453
+ prevTreeContext,
4454
+ totalChildren,
4455
+ revealOrder
4456
+ )),
4457
+ renderNode(request, task, resumeSlots, revealOrder),
4458
+ 0 === --previousSuspenseListRow.pendingTasks &&
4459
+ finishSuspenseListRow(request, previousSuspenseListRow);
4460
+ else {
4461
+ revealOrder = task.blockedSegment;
4462
+ resumeSlots = revealOrder.children.length;
4463
+ n = revealOrder.chunks.length;
4464
+ for (i = totalChildren - 1; 0 <= i; i--) {
4465
+ node = rows[i];
4466
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4467
+ previousSuspenseListRow
4468
+ );
4469
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4470
+ resumeSegmentID = createPendingSegment(
4471
+ request,
4472
+ n,
4473
+ null,
4474
+ task.formatContext,
4475
+ 0 === i ? revealOrder.lastPushedText : !0,
4476
+ !0
4477
+ );
4478
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4479
+ task.blockedSegment = resumeSegmentID;
4480
+ try {
4481
+ renderNode(request, task, node, i),
4482
+ resumeSegmentID.lastPushedText &&
4483
+ resumeSegmentID.textEmbedded &&
4484
+ resumeSegmentID.chunks.push(textSeparator),
4485
+ (resumeSegmentID.status = 1),
4486
+ finishedSegment(request, task.blockedBoundary, resumeSegmentID),
4487
+ 0 === --previousSuspenseListRow.pendingTasks &&
4488
+ finishSuspenseListRow(request, previousSuspenseListRow);
4489
+ } catch (thrownValue) {
4490
+ throw (
4491
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4492
+ thrownValue)
4493
+ );
4494
+ }
4495
+ }
4496
+ task.blockedSegment = revealOrder;
4497
+ revealOrder.lastPushedText = !1;
4498
+ }
4499
+ null !== prevRow &&
4500
+ null !== previousSuspenseListRow &&
4501
+ 0 < previousSuspenseListRow.pendingTasks &&
4502
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4503
+ task.treeContext = prevTreeContext;
4504
+ task.row = prevRow;
4505
+ task.keyPath = keyPath;
4506
+ }
4359
4507
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
4360
4508
  var prevThenableState = task.thenableState;
4361
4509
  task.thenableState = null;
@@ -4423,9 +4571,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4423
4571
  var defaultProps = type.defaultProps;
4424
4572
  if (defaultProps) {
4425
4573
  newProps === props && (newProps = assign({}, newProps, props));
4426
- for (var propName$34 in defaultProps)
4427
- void 0 === newProps[propName$34] &&
4428
- (newProps[propName$34] = defaultProps[propName$34]);
4574
+ for (var propName$42 in defaultProps)
4575
+ void 0 === newProps[propName$42] &&
4576
+ (newProps[propName$42] = defaultProps[propName$42]);
4429
4577
  }
4430
4578
  props = newProps;
4431
4579
  newProps = emptyContextObject;
@@ -4485,16 +4633,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4485
4633
  defaultProps = ref ? type[0] : newProps.state;
4486
4634
  initialState = !0;
4487
4635
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4488
- (propName$34 = type[ref]),
4489
- (propName$34 =
4490
- "function" === typeof propName$34
4491
- ? propName$34.call(newProps, defaultProps, props, void 0)
4492
- : propName$34),
4493
- null != propName$34 &&
4636
+ (propName$42 = type[ref]),
4637
+ (propName$42 =
4638
+ "function" === typeof propName$42
4639
+ ? propName$42.call(newProps, defaultProps, props, void 0)
4640
+ : propName$42),
4641
+ null != propName$42 &&
4494
4642
  (initialState
4495
4643
  ? ((initialState = !1),
4496
- (defaultProps = assign({}, defaultProps, propName$34)))
4497
- : assign(defaultProps, propName$34));
4644
+ (defaultProps = assign({}, defaultProps, propName$42)))
4645
+ : assign(defaultProps, propName$42));
4498
4646
  newProps.state = defaultProps;
4499
4647
  }
4500
4648
  else defaultProps.queue = null;
@@ -4569,6 +4717,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4569
4717
  task.formatContext,
4570
4718
  task.context,
4571
4719
  task.treeContext,
4720
+ task.row,
4572
4721
  task.componentStack
4573
4722
  )),
4574
4723
  pushComponentStack(keyPath),
@@ -4648,10 +4797,30 @@ function renderElement(request, task, keyPath, type, props, ref) {
4648
4797
  (type.lastPushedText = !1));
4649
4798
  return;
4650
4799
  case REACT_SUSPENSE_LIST_TYPE:
4651
- type = task.keyPath;
4652
- task.keyPath = keyPath;
4653
- renderNodeDestructive(request, task, props.children, -1);
4654
- task.keyPath = type;
4800
+ a: {
4801
+ type = props.children;
4802
+ props = props.revealOrder;
4803
+ if ("forwards" === props || "backwards" === props) {
4804
+ if (isArrayImpl(type)) {
4805
+ renderSuspenseListRows(request, task, keyPath, type, props);
4806
+ break a;
4807
+ }
4808
+ if ((newProps = getIteratorFn(type)))
4809
+ if ((newProps = newProps.call(type))) {
4810
+ defaultProps = newProps.next();
4811
+ if (!defaultProps.done) {
4812
+ do defaultProps = newProps.next();
4813
+ while (!defaultProps.done);
4814
+ renderSuspenseListRows(request, task, keyPath, type, props);
4815
+ }
4816
+ break a;
4817
+ }
4818
+ }
4819
+ props = task.keyPath;
4820
+ task.keyPath = keyPath;
4821
+ renderNodeDestructive(request, task, type, -1);
4822
+ task.keyPath = props;
4823
+ }
4655
4824
  return;
4656
4825
  case REACT_VIEW_TRANSITION_TYPE:
4657
4826
  case REACT_SCOPE_TYPE:
@@ -4660,18 +4829,26 @@ function renderElement(request, task, keyPath, type, props, ref) {
4660
4829
  a: if (null !== task.replay) {
4661
4830
  type = task.keyPath;
4662
4831
  newProps = task.formatContext;
4832
+ defaultProps = task.row;
4663
4833
  task.keyPath = keyPath;
4664
- task.formatContext = getSuspenseContentFormatContext(newProps);
4834
+ task.formatContext = getSuspenseContentFormatContext(
4835
+ request.resumableState,
4836
+ newProps
4837
+ );
4838
+ task.row = null;
4665
4839
  keyPath = props.children;
4666
4840
  try {
4667
4841
  renderNode(request, task, keyPath, -1);
4668
4842
  } finally {
4669
- (task.keyPath = type), (task.formatContext = newProps);
4843
+ (task.keyPath = type),
4844
+ (task.formatContext = newProps),
4845
+ (task.row = defaultProps);
4670
4846
  }
4671
4847
  } else {
4672
4848
  type = task.keyPath;
4673
4849
  ref = task.formatContext;
4674
- propName$34 = task.blockedBoundary;
4850
+ var prevRow = task.row;
4851
+ propName$42 = task.blockedBoundary;
4675
4852
  propName = task.blockedPreamble;
4676
4853
  var parentHoistableState = task.hoistableState,
4677
4854
  parentSegment = task.blockedSegment,
@@ -4682,11 +4859,18 @@ function renderElement(request, task, keyPath, type, props, ref) {
4682
4859
  2 > task.formatContext.insertionMode
4683
4860
  ? createSuspenseBoundary(
4684
4861
  request,
4862
+ task.row,
4685
4863
  fallbackAbortSet,
4686
4864
  createPreambleState(),
4687
4865
  createPreambleState()
4688
4866
  )
4689
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4867
+ : createSuspenseBoundary(
4868
+ request,
4869
+ task.row,
4870
+ fallbackAbortSet,
4871
+ null,
4872
+ null
4873
+ );
4690
4874
  null !== request.trackedPostpones &&
4691
4875
  (newBoundary.trackedContentKeyPath = keyPath);
4692
4876
  var boundarySegment = createPendingSegment(
@@ -4716,7 +4900,10 @@ function renderElement(request, task, keyPath, type, props, ref) {
4716
4900
  task.blockedSegment = boundarySegment;
4717
4901
  task.blockedPreamble = newBoundary.fallbackPreamble;
4718
4902
  task.keyPath = newProps;
4719
- task.formatContext = getSuspenseFallbackFormatContext(ref);
4903
+ task.formatContext = getSuspenseFallbackFormatContext(
4904
+ request.resumableState,
4905
+ ref
4906
+ );
4720
4907
  boundarySegment.status = 6;
4721
4908
  try {
4722
4909
  renderNode(request, task, fallback, -1),
@@ -4724,7 +4911,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4724
4911
  boundarySegment.textEmbedded &&
4725
4912
  boundarySegment.chunks.push(textSeparator),
4726
4913
  (boundarySegment.status = 1),
4727
- finishedSegment(request, propName$34, boundarySegment);
4914
+ finishedSegment(request, propName$42, boundarySegment);
4728
4915
  } catch (thrownValue) {
4729
4916
  throw (
4730
4917
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
@@ -4747,9 +4934,13 @@ function renderElement(request, task, keyPath, type, props, ref) {
4747
4934
  newBoundary.contentState,
4748
4935
  task.abortSet,
4749
4936
  keyPath,
4750
- getSuspenseContentFormatContext(task.formatContext),
4937
+ getSuspenseContentFormatContext(
4938
+ request.resumableState,
4939
+ task.formatContext
4940
+ ),
4751
4941
  task.context,
4752
4942
  task.treeContext,
4943
+ null,
4753
4944
  task.componentStack
4754
4945
  );
4755
4946
  pushComponentStack(task);
@@ -4760,7 +4951,11 @@ function renderElement(request, task, keyPath, type, props, ref) {
4760
4951
  task.hoistableState = newBoundary.contentState;
4761
4952
  task.blockedSegment = contentRootSegment;
4762
4953
  task.keyPath = keyPath;
4763
- task.formatContext = getSuspenseContentFormatContext(ref);
4954
+ task.formatContext = getSuspenseContentFormatContext(
4955
+ request.resumableState,
4956
+ ref
4957
+ );
4958
+ task.row = null;
4764
4959
  contentRootSegment.status = 6;
4765
4960
  try {
4766
4961
  if (
@@ -4775,18 +4970,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4775
4970
  0 === newBoundary.status &&
4776
4971
  ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4777
4972
  ) {
4973
+ null !== prevRow &&
4974
+ 0 === --prevRow.pendingTasks &&
4975
+ finishSuspenseListRow(request, prevRow);
4778
4976
  0 === request.pendingRootTasks &&
4779
4977
  task.blockedPreamble &&
4780
4978
  preparePreamble(request);
4781
4979
  break a;
4782
4980
  }
4783
- } catch (thrownValue$29) {
4981
+ } catch (thrownValue$30) {
4784
4982
  (newBoundary.status = 4),
4785
4983
  12 === request.status
4786
4984
  ? ((contentRootSegment.status = 3),
4787
4985
  (newProps = request.fatalError))
4788
4986
  : ((contentRootSegment.status = 4),
4789
- (newProps = thrownValue$29)),
4987
+ (newProps = thrownValue$30)),
4790
4988
  (defaultProps = getThrownInfo(task.componentStack)),
4791
4989
  (initialState = logRecoverableError(
4792
4990
  request,
@@ -4796,27 +4994,32 @@ function renderElement(request, task, keyPath, type, props, ref) {
4796
4994
  (newBoundary.errorDigest = initialState),
4797
4995
  untrackBoundary(request, newBoundary);
4798
4996
  } finally {
4799
- (task.blockedBoundary = propName$34),
4997
+ (task.blockedBoundary = propName$42),
4800
4998
  (task.blockedPreamble = propName),
4801
4999
  (task.hoistableState = parentHoistableState),
4802
5000
  (task.blockedSegment = parentSegment),
4803
5001
  (task.keyPath = type),
4804
- (task.formatContext = ref);
5002
+ (task.formatContext = ref),
5003
+ (task.row = prevRow);
4805
5004
  }
4806
5005
  task = createRenderTask(
4807
5006
  request,
4808
5007
  null,
4809
5008
  fallback,
4810
5009
  -1,
4811
- propName$34,
5010
+ propName$42,
4812
5011
  boundarySegment,
4813
5012
  newBoundary.fallbackPreamble,
4814
5013
  newBoundary.fallbackState,
4815
5014
  fallbackAbortSet,
4816
5015
  [keyPath[0], "Suspense Fallback", keyPath[2]],
4817
- getSuspenseFallbackFormatContext(task.formatContext),
5016
+ getSuspenseFallbackFormatContext(
5017
+ request.resumableState,
5018
+ task.formatContext
5019
+ ),
4818
5020
  task.context,
4819
5021
  task.treeContext,
5022
+ task.row,
4820
5023
  task.componentStack
4821
5024
  );
4822
5025
  pushComponentStack(task);
@@ -5036,6 +5239,7 @@ function retryNode(request, task) {
5036
5239
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
5037
5240
  var prevKeyPath = task.keyPath,
5038
5241
  prevContext = task.formatContext,
5242
+ prevRow = task.row,
5039
5243
  previousReplaySet = task.replay,
5040
5244
  parentBoundary = task.blockedBoundary,
5041
5245
  parentHoistableState = task.hoistableState,
@@ -5046,12 +5250,14 @@ function retryNode(request, task) {
5046
5250
  2 > task.formatContext.insertionMode
5047
5251
  ? createSuspenseBoundary(
5048
5252
  request,
5253
+ task.row,
5049
5254
  fallbackAbortSet,
5050
5255
  createPreambleState(),
5051
5256
  createPreambleState()
5052
5257
  )
5053
5258
  : createSuspenseBoundary(
5054
5259
  request,
5260
+ task.row,
5055
5261
  fallbackAbortSet,
5056
5262
  null,
5057
5263
  null
@@ -5061,8 +5267,11 @@ function retryNode(request, task) {
5061
5267
  task.blockedBoundary = props;
5062
5268
  task.hoistableState = props.contentState;
5063
5269
  task.keyPath = key;
5064
- task.formatContext =
5065
- getSuspenseContentFormatContext(prevContext);
5270
+ task.formatContext = getSuspenseContentFormatContext(
5271
+ request.resumableState,
5272
+ prevContext
5273
+ );
5274
+ task.row = null;
5066
5275
  task.replay = {
5067
5276
  nodes: ref,
5068
5277
  slots: name,
@@ -5099,9 +5308,10 @@ function retryNode(request, task) {
5099
5308
  (task.hoistableState = parentHoistableState),
5100
5309
  (task.replay = previousReplaySet),
5101
5310
  (task.keyPath = prevKeyPath),
5102
- (task.formatContext = prevContext);
5311
+ (task.formatContext = prevContext),
5312
+ (task.row = prevRow);
5103
5313
  }
5104
- task = createReplayTask(
5314
+ childNodes = createReplayTask(
5105
5315
  request,
5106
5316
  null,
5107
5317
  {
@@ -5115,13 +5325,17 @@ function retryNode(request, task) {
5115
5325
  props.fallbackState,
5116
5326
  fallbackAbortSet,
5117
5327
  [key[0], "Suspense Fallback", key[2]],
5118
- getSuspenseFallbackFormatContext(task.formatContext),
5328
+ getSuspenseFallbackFormatContext(
5329
+ request.resumableState,
5330
+ task.formatContext
5331
+ ),
5119
5332
  task.context,
5120
5333
  task.treeContext,
5334
+ task.row,
5121
5335
  task.componentStack
5122
5336
  );
5123
- pushComponentStack(task);
5124
- request.pingedTasks.push(task);
5337
+ pushComponentStack(childNodes);
5338
+ request.pingedTasks.push(childNodes);
5125
5339
  }
5126
5340
  }
5127
5341
  childIndex.splice(node, 1);
@@ -5146,22 +5360,17 @@ function retryNode(request, task) {
5146
5360
  renderChildrenArray(request, task, node, childIndex);
5147
5361
  return;
5148
5362
  }
5149
- null === node || "object" !== typeof node
5150
- ? (childNodes = null)
5151
- : ((childNodes =
5152
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
5153
- node["@@iterator"]),
5154
- (childNodes = "function" === typeof childNodes ? childNodes : null));
5155
- if (childNodes && (childNodes = childNodes.call(node))) {
5156
- node = childNodes.next();
5157
- if (!node.done) {
5158
- props = [];
5159
- do props.push(node.value), (node = childNodes.next());
5160
- while (!node.done);
5161
- renderChildrenArray(request, task, props, childIndex);
5363
+ if ((childNodes = getIteratorFn(node)))
5364
+ if ((childNodes = childNodes.call(node))) {
5365
+ node = childNodes.next();
5366
+ if (!node.done) {
5367
+ props = [];
5368
+ do props.push(node.value), (node = childNodes.next());
5369
+ while (!node.done);
5370
+ renderChildrenArray(request, task, props, childIndex);
5371
+ }
5372
+ return;
5162
5373
  }
5163
- return;
5164
- }
5165
5374
  if ("function" === typeof node.then)
5166
5375
  return (
5167
5376
  (task.thenableState = null),
@@ -5304,6 +5513,7 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
5304
5513
  task.formatContext,
5305
5514
  task.context,
5306
5515
  task.treeContext,
5516
+ task.row,
5307
5517
  task.componentStack
5308
5518
  );
5309
5519
  }
@@ -5333,6 +5543,7 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
5333
5543
  task.formatContext,
5334
5544
  task.context,
5335
5545
  task.treeContext,
5546
+ task.row,
5336
5547
  task.componentStack
5337
5548
  );
5338
5549
  }
@@ -5386,15 +5597,15 @@ function renderNode(request, task, node, childIndex) {
5386
5597
  chunkLength = segment.chunks.length;
5387
5598
  try {
5388
5599
  return renderNodeDestructive(request, task, node, childIndex);
5389
- } catch (thrownValue$51) {
5600
+ } catch (thrownValue$58) {
5390
5601
  if (
5391
5602
  (resetHooksState(),
5392
5603
  (segment.children.length = childrenLength),
5393
5604
  (segment.chunks.length = chunkLength),
5394
5605
  (node =
5395
- thrownValue$51 === SuspenseException
5606
+ thrownValue$58 === SuspenseException
5396
5607
  ? getSuspendedThenable()
5397
- : thrownValue$51),
5608
+ : thrownValue$58),
5398
5609
  "object" === typeof node && null !== node)
5399
5610
  ) {
5400
5611
  if ("function" === typeof node.then) {
@@ -5432,9 +5643,10 @@ function renderNode(request, task, node, childIndex) {
5432
5643
  throw node;
5433
5644
  }
5434
5645
  function abortTaskSoft(task) {
5435
- var boundary = task.blockedBoundary;
5436
- task = task.blockedSegment;
5437
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5646
+ var boundary = task.blockedBoundary,
5647
+ segment = task.blockedSegment;
5648
+ null !== segment &&
5649
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
5438
5650
  }
5439
5651
  function abortRemainingReplayNodes(
5440
5652
  request$jscomp$0,
@@ -5461,6 +5673,7 @@ function abortRemainingReplayNodes(
5461
5673
  errorDigest = errorDigest$jscomp$0,
5462
5674
  resumedBoundary = createSuspenseBoundary(
5463
5675
  request,
5676
+ null,
5464
5677
  new Set(),
5465
5678
  null,
5466
5679
  null
@@ -5494,6 +5707,10 @@ function abortTask(task, request, error) {
5494
5707
  if (6 === segment.status) return;
5495
5708
  segment.status = 3;
5496
5709
  }
5710
+ segment = task.row;
5711
+ null !== segment &&
5712
+ 0 === --segment.pendingTasks &&
5713
+ finishSuspenseListRow(request, segment);
5497
5714
  segment = getThrownInfo(task.componentStack);
5498
5715
  if (null === boundary) {
5499
5716
  if (13 !== request.status && 14 !== request.status) {
@@ -5638,7 +5855,11 @@ function finishedSegment(request, boundary, segment) {
5638
5855
  : (boundary.byteSize += segmentByteSize);
5639
5856
  }
5640
5857
  }
5641
- function finishedTask(request, boundary, segment) {
5858
+ function finishedTask(request, boundary, row, segment) {
5859
+ null !== row &&
5860
+ 0 === --row.pendingTasks &&
5861
+ finishSuspenseListRow(request, row);
5862
+ request.allPendingTasks--;
5642
5863
  if (null === boundary) {
5643
5864
  if (null !== segment && segment.parentFlushed) {
5644
5865
  if (null !== request.completedRootSegment)
@@ -5666,7 +5887,11 @@ function finishedTask(request, boundary, segment) {
5666
5887
  abortTaskSoft,
5667
5888
  request
5668
5889
  ),
5669
- boundary.fallbackAbortableTasks.clear()),
5890
+ boundary.fallbackAbortableTasks.clear(),
5891
+ (row = boundary.row),
5892
+ null !== row &&
5893
+ 0 === --row.pendingTasks &&
5894
+ finishSuspenseListRow(request, row)),
5670
5895
  0 === request.pendingRootTasks &&
5671
5896
  null === request.trackedPostpones &&
5672
5897
  null !== boundary.contentPreamble &&
@@ -5678,7 +5903,6 @@ function finishedTask(request, boundary, segment) {
5678
5903
  1 === boundary.completedSegments.length &&
5679
5904
  boundary.parentFlushed &&
5680
5905
  request.partialBoundaries.push(boundary)));
5681
- request.allPendingTasks--;
5682
5906
  0 === request.allPendingTasks && completeAll(request);
5683
5907
  }
5684
5908
  function performWork(request$jscomp$2) {
@@ -5722,7 +5946,12 @@ function performWork(request$jscomp$2) {
5722
5946
  );
5723
5947
  task.replay.pendingTasks--;
5724
5948
  task.abortSet.delete(task);
5725
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5949
+ finishedTask(
5950
+ request$jscomp$0,
5951
+ task.blockedBoundary,
5952
+ task.row,
5953
+ null
5954
+ );
5726
5955
  } catch (thrownValue) {
5727
5956
  resetHooksState();
5728
5957
  var x =
@@ -5790,7 +6019,12 @@ function performWork(request$jscomp$2) {
5790
6019
  task.abortSet.delete(task),
5791
6020
  (request$jscomp$1.status = 1),
5792
6021
  finishedSegment(request, task.blockedBoundary, request$jscomp$1),
5793
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
6022
+ finishedTask(
6023
+ request,
6024
+ task.blockedBoundary,
6025
+ task.row,
6026
+ request$jscomp$1
6027
+ );
5794
6028
  } catch (thrownValue) {
5795
6029
  resetHooksState();
5796
6030
  request$jscomp$1.children.length = childrenLength;
@@ -5814,7 +6048,12 @@ function performWork(request$jscomp$2) {
5814
6048
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5815
6049
  task.abortSet.delete(task);
5816
6050
  request$jscomp$1.status = 4;
5817
- var boundary$jscomp$0 = task.blockedBoundary;
6051
+ var boundary$jscomp$0 = task.blockedBoundary,
6052
+ row = task.row;
6053
+ null !== row &&
6054
+ 0 === --row.pendingTasks &&
6055
+ finishSuspenseListRow(request, row);
6056
+ request.allPendingTasks--;
5818
6057
  request$jscomp$0 = logRecoverableError(
5819
6058
  request,
5820
6059
  x$jscomp$0,
@@ -5833,7 +6072,6 @@ function performWork(request$jscomp$2) {
5833
6072
  null === request.trackedPostpones &&
5834
6073
  null !== boundary$jscomp$0.contentPreamble &&
5835
6074
  preparePreamble(request)));
5836
- request.allPendingTasks--;
5837
6075
  0 === request.allPendingTasks && completeAll(request);
5838
6076
  }
5839
6077
  } finally {
@@ -5979,20 +6217,24 @@ function flushSegment(request, destination, segment, hoistableState) {
5979
6217
  if (null === boundary)
5980
6218
  return flushSubtree(request, destination, segment, hoistableState);
5981
6219
  boundary.parentFlushed = !0;
5982
- if (4 === boundary.status)
5983
- (boundary = boundary.errorDigest),
5984
- writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary),
5985
- writeChunk(destination, clientRenderedSuspenseBoundaryError1),
5986
- boundary &&
5987
- (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
5988
- writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))),
5989
- writeChunk(
5990
- destination,
5991
- clientRenderedSuspenseBoundaryErrorAttrInterstitial
5992
- )),
5993
- writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2),
5994
- flushSubtree(request, destination, segment, hoistableState);
5995
- else if (1 !== boundary.status)
6220
+ if (4 === boundary.status) {
6221
+ var row = boundary.row;
6222
+ null !== row &&
6223
+ 0 === --row.pendingTasks &&
6224
+ finishSuspenseListRow(request, row);
6225
+ boundary = boundary.errorDigest;
6226
+ writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
6227
+ writeChunk(destination, clientRenderedSuspenseBoundaryError1);
6228
+ boundary &&
6229
+ (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
6230
+ writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))),
6231
+ writeChunk(
6232
+ destination,
6233
+ clientRenderedSuspenseBoundaryErrorAttrInterstitial
6234
+ ));
6235
+ writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
6236
+ flushSubtree(request, destination, segment, hoistableState);
6237
+ } else if (1 !== boundary.status)
5996
6238
  0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
5997
6239
  0 < boundary.completedSegments.length &&
5998
6240
  request.partialBoundaries.push(boundary),
@@ -6027,6 +6269,11 @@ function flushSegment(request, destination, segment, hoistableState) {
6027
6269
  ((segment = boundary.contentState),
6028
6270
  segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
6029
6271
  segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
6272
+ segment = boundary.row;
6273
+ null !== segment &&
6274
+ 500 < boundary.byteSize &&
6275
+ 0 === --segment.pendingTasks &&
6276
+ finishSuspenseListRow(request, segment);
6030
6277
  writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
6031
6278
  segment = boundary.completedSegments;
6032
6279
  if (1 !== segment.length)
@@ -6061,6 +6308,11 @@ function flushCompletedBoundary(request, destination, boundary) {
6061
6308
  completedSegments[i]
6062
6309
  );
6063
6310
  completedSegments.length = 0;
6311
+ completedSegments = boundary.row;
6312
+ null !== completedSegments &&
6313
+ 500 < boundary.byteSize &&
6314
+ 0 === --completedSegments.pendingTasks &&
6315
+ finishSuspenseListRow(request, completedSegments);
6064
6316
  writeHoistablesForBoundary(
6065
6317
  destination,
6066
6318
  boundary.contentState,
@@ -6085,10 +6337,10 @@ function flushCompletedBoundary(request, destination, boundary) {
6085
6337
  ? ((completedSegments.instructions |= 8),
6086
6338
  writeChunk(destination, completeBoundaryWithStylesScript1FullPartial))
6087
6339
  : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
6088
- : 0 === (completedSegments.instructions & 2)
6089
- ? ((completedSegments.instructions |= 2),
6090
- writeChunk(destination, completeBoundaryScript1Full))
6091
- : writeChunk(destination, completeBoundaryScript1Partial);
6340
+ : (0 === (completedSegments.instructions & 2) &&
6341
+ ((completedSegments.instructions |= 2),
6342
+ writeChunk(destination, completeBoundaryScriptFunctionOnly)),
6343
+ writeChunk(destination, completeBoundaryScript1Partial));
6092
6344
  completedSegments = stringToChunk(i.toString(16));
6093
6345
  writeChunk(destination, request.boundaryPrefix);
6094
6346
  writeChunk(destination, completedSegments);
@@ -6338,12 +6590,12 @@ function flushCompletedQueues(request, destination) {
6338
6590
  writtenBytes = 0;
6339
6591
  var partialBoundaries = request.partialBoundaries;
6340
6592
  for (i = 0; i < partialBoundaries.length; i++) {
6341
- var boundary$54 = partialBoundaries[i];
6593
+ var boundary$62 = partialBoundaries[i];
6342
6594
  a: {
6343
6595
  clientRenderedBoundaries = request;
6344
6596
  boundary = destination;
6345
- flushedByteSize = boundary$54.byteSize;
6346
- var completedSegments = boundary$54.completedSegments;
6597
+ flushedByteSize = boundary$62.byteSize;
6598
+ var completedSegments = boundary$62.completedSegments;
6347
6599
  for (
6348
6600
  JSCompiler_inline_result = 0;
6349
6601
  JSCompiler_inline_result < completedSegments.length;
@@ -6353,7 +6605,7 @@ function flushCompletedQueues(request, destination) {
6353
6605
  !flushPartiallyCompletedSegment(
6354
6606
  clientRenderedBoundaries,
6355
6607
  boundary,
6356
- boundary$54,
6608
+ boundary$62,
6357
6609
  completedSegments[JSCompiler_inline_result]
6358
6610
  )
6359
6611
  ) {
@@ -6365,7 +6617,7 @@ function flushCompletedQueues(request, destination) {
6365
6617
  completedSegments.splice(0, JSCompiler_inline_result);
6366
6618
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6367
6619
  boundary,
6368
- boundary$54.contentState,
6620
+ boundary$62.contentState,
6369
6621
  clientRenderedBoundaries.renderState
6370
6622
  );
6371
6623
  }
@@ -6471,17 +6723,17 @@ function abort(request, reason) {
6471
6723
  }
6472
6724
  null !== request.destination &&
6473
6725
  flushCompletedQueues(request, request.destination);
6474
- } catch (error$56) {
6475
- logRecoverableError(request, error$56, {}), fatalError(request, error$56);
6726
+ } catch (error$64) {
6727
+ logRecoverableError(request, error$64, {}), fatalError(request, error$64);
6476
6728
  }
6477
6729
  }
6478
6730
  function ensureCorrectIsomorphicReactVersion() {
6479
6731
  var isomorphicReactPackageVersion = React.version;
6480
- if ("19.2.0-canary-4448b187-20250515" !== isomorphicReactPackageVersion)
6732
+ if ("19.2.0-canary-c4676e72-20250520" !== isomorphicReactPackageVersion)
6481
6733
  throw Error(
6482
6734
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
6483
6735
  (isomorphicReactPackageVersion +
6484
- "\n - react-dom: 19.2.0-canary-4448b187-20250515\nLearn more: https://react.dev/warnings/version-mismatch")
6736
+ "\n - react-dom: 19.2.0-canary-c4676e72-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
6485
6737
  );
6486
6738
  }
6487
6739
  ensureCorrectIsomorphicReactVersion();
@@ -6627,4 +6879,4 @@ exports.renderToReadableStream = function (children, options) {
6627
6879
  startWork(request);
6628
6880
  });
6629
6881
  };
6630
- exports.version = "19.2.0-canary-4448b187-20250515";
6882
+ exports.version = "19.2.0-canary-c4676e72-20250520";