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.
@@ -33,8 +33,15 @@ var util = require("util"),
33
33
  REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"),
34
34
  REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"),
35
35
  REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"),
36
- MAYBE_ITERATOR_SYMBOL = Symbol.iterator,
37
- isArrayImpl = Array.isArray,
36
+ MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
37
+ function getIteratorFn(maybeIterable) {
38
+ if (null === maybeIterable || "object" !== typeof maybeIterable) return null;
39
+ maybeIterable =
40
+ (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||
41
+ maybeIterable["@@iterator"];
42
+ return "function" === typeof maybeIterable ? maybeIterable : null;
43
+ }
44
+ var isArrayImpl = Array.isArray,
38
45
  scheduleMicrotask = queueMicrotask;
39
46
  function flushBuffered(destination) {
40
47
  "function" === typeof destination.flush && destination.flush();
@@ -635,7 +642,8 @@ function getSuspenseViewTransition(parentViewTransition) {
635
642
  nameIdx: 0
636
643
  };
637
644
  }
638
- function getSuspenseFallbackFormatContext(parentContext) {
645
+ function getSuspenseFallbackFormatContext(resumableState, parentContext) {
646
+ parentContext.tagScope & 32 && (resumableState.instructions |= 128);
639
647
  return createFormatContext(
640
648
  parentContext.insertionMode,
641
649
  parentContext.selectedValue,
@@ -643,7 +651,7 @@ function getSuspenseFallbackFormatContext(parentContext) {
643
651
  getSuspenseViewTransition(parentContext.viewTransition)
644
652
  );
645
653
  }
646
- function getSuspenseContentFormatContext(parentContext) {
654
+ function getSuspenseContentFormatContext(resumableState, parentContext) {
647
655
  return createFormatContext(
648
656
  parentContext.insertionMode,
649
657
  parentContext.selectedValue,
@@ -2449,12 +2457,12 @@ var completeSegmentScript1Full = stringToPrecomputedChunk(
2449
2457
  stringToPrecomputedChunk('<template data-rsi="" data-sid="');
2450
2458
  stringToPrecomputedChunk('" data-pid="');
2451
2459
  var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk(
2452
- '$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())};'
2453
- ),
2454
- completeBoundaryScript1Full = stringToPrecomputedChunk(
2455
- '$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("'
2456
- ),
2457
- completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
2460
+ '$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())};'
2461
+ );
2462
+ stringToPrecomputedChunk(
2463
+ "$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);"
2464
+ );
2465
+ var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'),
2458
2466
  completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk(
2459
2467
  '$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("'
2460
2468
  ),
@@ -4023,6 +4031,7 @@ function createRequest(
4023
4031
  rootFormatContext,
4024
4032
  null,
4025
4033
  emptyTreeContext,
4034
+ null,
4026
4035
  null
4027
4036
  );
4028
4037
  pushComponentStack(children);
@@ -4083,15 +4092,17 @@ function pingTask(request, task) {
4083
4092
  }
4084
4093
  function createSuspenseBoundary(
4085
4094
  request,
4095
+ row,
4086
4096
  fallbackAbortableTasks,
4087
4097
  contentPreamble,
4088
4098
  fallbackPreamble
4089
4099
  ) {
4090
- return {
4100
+ fallbackAbortableTasks = {
4091
4101
  status: 0,
4092
4102
  rootSegmentID: -1,
4093
4103
  parentFlushed: !1,
4094
4104
  pendingTasks: 0,
4105
+ row: row,
4095
4106
  completedSegments: [],
4096
4107
  byteSize: 0,
4097
4108
  fallbackAbortableTasks: fallbackAbortableTasks,
@@ -4103,6 +4114,14 @@ function createSuspenseBoundary(
4103
4114
  trackedContentKeyPath: null,
4104
4115
  trackedFallbackNode: null
4105
4116
  };
4117
+ null !== row &&
4118
+ (row.pendingTasks++,
4119
+ (row = row.boundaries),
4120
+ null !== row &&
4121
+ (request.allPendingTasks++,
4122
+ fallbackAbortableTasks.pendingTasks++,
4123
+ row.push(fallbackAbortableTasks)));
4124
+ return fallbackAbortableTasks;
4106
4125
  }
4107
4126
  function createRenderTask(
4108
4127
  request,
@@ -4118,12 +4137,14 @@ function createRenderTask(
4118
4137
  formatContext,
4119
4138
  context,
4120
4139
  treeContext,
4140
+ row,
4121
4141
  componentStack
4122
4142
  ) {
4123
4143
  request.allPendingTasks++;
4124
4144
  null === blockedBoundary
4125
4145
  ? request.pendingRootTasks++
4126
4146
  : blockedBoundary.pendingTasks++;
4147
+ null !== row && row.pendingTasks++;
4127
4148
  var task = {
4128
4149
  replay: null,
4129
4150
  node: node,
@@ -4140,6 +4161,7 @@ function createRenderTask(
4140
4161
  formatContext: formatContext,
4141
4162
  context: context,
4142
4163
  treeContext: treeContext,
4164
+ row: row,
4143
4165
  componentStack: componentStack,
4144
4166
  thenableState: thenableState
4145
4167
  };
@@ -4159,12 +4181,14 @@ function createReplayTask(
4159
4181
  formatContext,
4160
4182
  context,
4161
4183
  treeContext,
4184
+ row,
4162
4185
  componentStack
4163
4186
  ) {
4164
4187
  request.allPendingTasks++;
4165
4188
  null === blockedBoundary
4166
4189
  ? request.pendingRootTasks++
4167
4190
  : blockedBoundary.pendingTasks++;
4191
+ null !== row && row.pendingTasks++;
4168
4192
  replay.pendingTasks++;
4169
4193
  var task = {
4170
4194
  replay: replay,
@@ -4182,6 +4206,7 @@ function createReplayTask(
4182
4206
  formatContext: formatContext,
4183
4207
  context: context,
4184
4208
  treeContext: treeContext,
4209
+ row: row,
4185
4210
  componentStack: componentStack,
4186
4211
  thenableState: thenableState
4187
4212
  };
@@ -4259,6 +4284,129 @@ function fatalError(request, error) {
4259
4284
  ? ((request.status = 14), request.destination.destroy(error))
4260
4285
  : ((request.status = 13), (request.fatalError = error));
4261
4286
  }
4287
+ function finishSuspenseListRow(request, row) {
4288
+ for (row = row.next; null !== row; ) {
4289
+ var unblockedBoundaries = row.boundaries;
4290
+ if (null !== unblockedBoundaries) {
4291
+ row.boundaries = null;
4292
+ for (var i = 0; i < unblockedBoundaries.length; i++)
4293
+ finishedTask(request, unblockedBoundaries[i], null, null);
4294
+ }
4295
+ row.pendingTasks--;
4296
+ if (0 < row.pendingTasks) break;
4297
+ row = row.next;
4298
+ }
4299
+ }
4300
+ function createSuspenseListRow(previousRow) {
4301
+ var newRow = { pendingTasks: 1, boundaries: null, next: null };
4302
+ null !== previousRow &&
4303
+ 0 < previousRow.pendingTasks &&
4304
+ (newRow.pendingTasks++,
4305
+ (newRow.boundaries = []),
4306
+ (previousRow.next = newRow));
4307
+ return newRow;
4308
+ }
4309
+ 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;
4315
+ if (null !== task.replay) {
4316
+ var resumeSlots = task.replay.slots;
4317
+ if (null !== resumeSlots && "object" === typeof resumeSlots)
4318
+ for (var n = 0; n < totalChildren; n++) {
4319
+ var i = "backwards" !== revealOrder ? n : totalChildren - 1 - n,
4320
+ node = rows[i];
4321
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4322
+ previousSuspenseListRow
4323
+ );
4324
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4325
+ var resumeSegmentID = resumeSlots[i];
4326
+ "number" === typeof resumeSegmentID
4327
+ ? (resumeNode(request, task, resumeSegmentID, node, i),
4328
+ delete resumeSlots[i])
4329
+ : renderNode(request, task, node, i);
4330
+ 0 === --previousSuspenseListRow.pendingTasks &&
4331
+ finishSuspenseListRow(request, previousSuspenseListRow);
4332
+ }
4333
+ else
4334
+ for (resumeSlots = 0; resumeSlots < totalChildren; resumeSlots++)
4335
+ (n =
4336
+ "backwards" !== revealOrder
4337
+ ? resumeSlots
4338
+ : totalChildren - 1 - resumeSlots),
4339
+ (i = rows[n]),
4340
+ (task.row = previousSuspenseListRow =
4341
+ createSuspenseListRow(previousSuspenseListRow)),
4342
+ (task.treeContext = pushTreeContext(
4343
+ prevTreeContext,
4344
+ totalChildren,
4345
+ n
4346
+ )),
4347
+ renderNode(request, task, i, n),
4348
+ 0 === --previousSuspenseListRow.pendingTasks &&
4349
+ finishSuspenseListRow(request, previousSuspenseListRow);
4350
+ } else if ("backwards" !== revealOrder)
4351
+ for (revealOrder = 0; revealOrder < totalChildren; revealOrder++)
4352
+ (resumeSlots = rows[revealOrder]),
4353
+ (task.row = previousSuspenseListRow =
4354
+ createSuspenseListRow(previousSuspenseListRow)),
4355
+ (task.treeContext = pushTreeContext(
4356
+ prevTreeContext,
4357
+ totalChildren,
4358
+ revealOrder
4359
+ )),
4360
+ renderNode(request, task, resumeSlots, revealOrder),
4361
+ 0 === --previousSuspenseListRow.pendingTasks &&
4362
+ finishSuspenseListRow(request, previousSuspenseListRow);
4363
+ else {
4364
+ revealOrder = task.blockedSegment;
4365
+ resumeSlots = revealOrder.children.length;
4366
+ n = revealOrder.chunks.length;
4367
+ for (i = totalChildren - 1; 0 <= i; i--) {
4368
+ node = rows[i];
4369
+ task.row = previousSuspenseListRow = createSuspenseListRow(
4370
+ previousSuspenseListRow
4371
+ );
4372
+ task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i);
4373
+ resumeSegmentID = createPendingSegment(
4374
+ request,
4375
+ n,
4376
+ null,
4377
+ task.formatContext,
4378
+ 0 === i ? revealOrder.lastPushedText : !0,
4379
+ !0
4380
+ );
4381
+ revealOrder.children.splice(resumeSlots, 0, resumeSegmentID);
4382
+ task.blockedSegment = resumeSegmentID;
4383
+ try {
4384
+ renderNode(request, task, node, i),
4385
+ resumeSegmentID.lastPushedText &&
4386
+ resumeSegmentID.textEmbedded &&
4387
+ resumeSegmentID.chunks.push(textSeparator),
4388
+ (resumeSegmentID.status = 1),
4389
+ finishedSegment(request, task.blockedBoundary, resumeSegmentID),
4390
+ 0 === --previousSuspenseListRow.pendingTasks &&
4391
+ finishSuspenseListRow(request, previousSuspenseListRow);
4392
+ } catch (thrownValue) {
4393
+ throw (
4394
+ ((resumeSegmentID.status = 12 === request.status ? 3 : 4),
4395
+ thrownValue)
4396
+ );
4397
+ }
4398
+ }
4399
+ task.blockedSegment = revealOrder;
4400
+ revealOrder.lastPushedText = !1;
4401
+ }
4402
+ null !== prevRow &&
4403
+ null !== previousSuspenseListRow &&
4404
+ 0 < previousSuspenseListRow.pendingTasks &&
4405
+ (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow));
4406
+ task.treeContext = prevTreeContext;
4407
+ task.row = prevRow;
4408
+ task.keyPath = keyPath;
4409
+ }
4262
4410
  function renderWithHooks(request, task, keyPath, Component, props, secondArg) {
4263
4411
  var prevThenableState = task.thenableState;
4264
4412
  task.thenableState = null;
@@ -4326,9 +4474,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4326
4474
  var defaultProps = type.defaultProps;
4327
4475
  if (defaultProps) {
4328
4476
  newProps === props && (newProps = assign({}, newProps, props));
4329
- for (var propName$34 in defaultProps)
4330
- void 0 === newProps[propName$34] &&
4331
- (newProps[propName$34] = defaultProps[propName$34]);
4477
+ for (var propName$42 in defaultProps)
4478
+ void 0 === newProps[propName$42] &&
4479
+ (newProps[propName$42] = defaultProps[propName$42]);
4332
4480
  }
4333
4481
  props = newProps;
4334
4482
  newProps = emptyContextObject;
@@ -4388,16 +4536,16 @@ function renderElement(request, task, keyPath, type, props, ref) {
4388
4536
  defaultProps = ref ? type[0] : newProps.state;
4389
4537
  initialState = !0;
4390
4538
  for (ref = ref ? 1 : 0; ref < type.length; ref++)
4391
- (propName$34 = type[ref]),
4392
- (propName$34 =
4393
- "function" === typeof propName$34
4394
- ? propName$34.call(newProps, defaultProps, props, void 0)
4395
- : propName$34),
4396
- null != propName$34 &&
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 &&
4397
4545
  (initialState
4398
4546
  ? ((initialState = !1),
4399
- (defaultProps = assign({}, defaultProps, propName$34)))
4400
- : assign(defaultProps, propName$34));
4547
+ (defaultProps = assign({}, defaultProps, propName$42)))
4548
+ : assign(defaultProps, propName$42));
4401
4549
  newProps.state = defaultProps;
4402
4550
  }
4403
4551
  else defaultProps.queue = null;
@@ -4472,6 +4620,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4472
4620
  task.formatContext,
4473
4621
  task.context,
4474
4622
  task.treeContext,
4623
+ task.row,
4475
4624
  task.componentStack
4476
4625
  )),
4477
4626
  pushComponentStack(keyPath),
@@ -4551,10 +4700,30 @@ function renderElement(request, task, keyPath, type, props, ref) {
4551
4700
  (type.lastPushedText = !1));
4552
4701
  return;
4553
4702
  case REACT_SUSPENSE_LIST_TYPE:
4554
- type = task.keyPath;
4555
- task.keyPath = keyPath;
4556
- renderNodeDestructive(request, task, props.children, -1);
4557
- task.keyPath = type;
4703
+ a: {
4704
+ type = props.children;
4705
+ props = props.revealOrder;
4706
+ if ("forwards" === props || "backwards" === props) {
4707
+ if (isArrayImpl(type)) {
4708
+ renderSuspenseListRows(request, task, keyPath, type, props);
4709
+ break a;
4710
+ }
4711
+ if ((newProps = getIteratorFn(type)))
4712
+ if ((newProps = newProps.call(type))) {
4713
+ defaultProps = newProps.next();
4714
+ if (!defaultProps.done) {
4715
+ do defaultProps = newProps.next();
4716
+ while (!defaultProps.done);
4717
+ renderSuspenseListRows(request, task, keyPath, type, props);
4718
+ }
4719
+ break a;
4720
+ }
4721
+ }
4722
+ props = task.keyPath;
4723
+ task.keyPath = keyPath;
4724
+ renderNodeDestructive(request, task, type, -1);
4725
+ task.keyPath = props;
4726
+ }
4558
4727
  return;
4559
4728
  case REACT_VIEW_TRANSITION_TYPE:
4560
4729
  case REACT_SCOPE_TYPE:
@@ -4563,18 +4732,26 @@ function renderElement(request, task, keyPath, type, props, ref) {
4563
4732
  a: if (null !== task.replay) {
4564
4733
  type = task.keyPath;
4565
4734
  newProps = task.formatContext;
4735
+ defaultProps = task.row;
4566
4736
  task.keyPath = keyPath;
4567
- task.formatContext = getSuspenseContentFormatContext(newProps);
4737
+ task.formatContext = getSuspenseContentFormatContext(
4738
+ request.resumableState,
4739
+ newProps
4740
+ );
4741
+ task.row = null;
4568
4742
  keyPath = props.children;
4569
4743
  try {
4570
4744
  renderNode(request, task, keyPath, -1);
4571
4745
  } finally {
4572
- (task.keyPath = type), (task.formatContext = newProps);
4746
+ (task.keyPath = type),
4747
+ (task.formatContext = newProps),
4748
+ (task.row = defaultProps);
4573
4749
  }
4574
4750
  } else {
4575
4751
  type = task.keyPath;
4576
4752
  ref = task.formatContext;
4577
- propName$34 = task.blockedBoundary;
4753
+ var prevRow = task.row;
4754
+ propName$42 = task.blockedBoundary;
4578
4755
  propName = task.blockedPreamble;
4579
4756
  var parentHoistableState = task.hoistableState,
4580
4757
  parentSegment = task.blockedSegment,
@@ -4585,11 +4762,18 @@ function renderElement(request, task, keyPath, type, props, ref) {
4585
4762
  2 > task.formatContext.insertionMode
4586
4763
  ? createSuspenseBoundary(
4587
4764
  request,
4765
+ task.row,
4588
4766
  fallbackAbortSet,
4589
4767
  createPreambleState(),
4590
4768
  createPreambleState()
4591
4769
  )
4592
- : createSuspenseBoundary(request, fallbackAbortSet, null, null);
4770
+ : createSuspenseBoundary(
4771
+ request,
4772
+ task.row,
4773
+ fallbackAbortSet,
4774
+ null,
4775
+ null
4776
+ );
4593
4777
  null !== request.trackedPostpones &&
4594
4778
  (newBoundary.trackedContentKeyPath = keyPath);
4595
4779
  var boundarySegment = createPendingSegment(
@@ -4619,7 +4803,10 @@ function renderElement(request, task, keyPath, type, props, ref) {
4619
4803
  task.blockedSegment = boundarySegment;
4620
4804
  task.blockedPreamble = newBoundary.fallbackPreamble;
4621
4805
  task.keyPath = newProps;
4622
- task.formatContext = getSuspenseFallbackFormatContext(ref);
4806
+ task.formatContext = getSuspenseFallbackFormatContext(
4807
+ request.resumableState,
4808
+ ref
4809
+ );
4623
4810
  boundarySegment.status = 6;
4624
4811
  try {
4625
4812
  renderNode(request, task, fallback, -1),
@@ -4627,7 +4814,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4627
4814
  boundarySegment.textEmbedded &&
4628
4815
  boundarySegment.chunks.push(textSeparator),
4629
4816
  (boundarySegment.status = 1),
4630
- finishedSegment(request, propName$34, boundarySegment);
4817
+ finishedSegment(request, propName$42, boundarySegment);
4631
4818
  } catch (thrownValue) {
4632
4819
  throw (
4633
4820
  ((boundarySegment.status = 12 === request.status ? 3 : 4),
@@ -4650,9 +4837,13 @@ function renderElement(request, task, keyPath, type, props, ref) {
4650
4837
  newBoundary.contentState,
4651
4838
  task.abortSet,
4652
4839
  keyPath,
4653
- getSuspenseContentFormatContext(task.formatContext),
4840
+ getSuspenseContentFormatContext(
4841
+ request.resumableState,
4842
+ task.formatContext
4843
+ ),
4654
4844
  task.context,
4655
4845
  task.treeContext,
4846
+ null,
4656
4847
  task.componentStack
4657
4848
  );
4658
4849
  pushComponentStack(task);
@@ -4663,7 +4854,11 @@ function renderElement(request, task, keyPath, type, props, ref) {
4663
4854
  task.hoistableState = newBoundary.contentState;
4664
4855
  task.blockedSegment = contentRootSegment;
4665
4856
  task.keyPath = keyPath;
4666
- task.formatContext = getSuspenseContentFormatContext(ref);
4857
+ task.formatContext = getSuspenseContentFormatContext(
4858
+ request.resumableState,
4859
+ ref
4860
+ );
4861
+ task.row = null;
4667
4862
  contentRootSegment.status = 6;
4668
4863
  try {
4669
4864
  if (
@@ -4678,18 +4873,21 @@ function renderElement(request, task, keyPath, type, props, ref) {
4678
4873
  0 === newBoundary.status &&
4679
4874
  ((newBoundary.status = 1), !(500 < newBoundary.byteSize)))
4680
4875
  ) {
4876
+ null !== prevRow &&
4877
+ 0 === --prevRow.pendingTasks &&
4878
+ finishSuspenseListRow(request, prevRow);
4681
4879
  0 === request.pendingRootTasks &&
4682
4880
  task.blockedPreamble &&
4683
4881
  preparePreamble(request);
4684
4882
  break a;
4685
4883
  }
4686
- } catch (thrownValue$29) {
4884
+ } catch (thrownValue$30) {
4687
4885
  (newBoundary.status = 4),
4688
4886
  12 === request.status
4689
4887
  ? ((contentRootSegment.status = 3),
4690
4888
  (newProps = request.fatalError))
4691
4889
  : ((contentRootSegment.status = 4),
4692
- (newProps = thrownValue$29)),
4890
+ (newProps = thrownValue$30)),
4693
4891
  (defaultProps = getThrownInfo(task.componentStack)),
4694
4892
  (initialState = logRecoverableError(
4695
4893
  request,
@@ -4699,27 +4897,32 @@ function renderElement(request, task, keyPath, type, props, ref) {
4699
4897
  (newBoundary.errorDigest = initialState),
4700
4898
  untrackBoundary(request, newBoundary);
4701
4899
  } finally {
4702
- (task.blockedBoundary = propName$34),
4900
+ (task.blockedBoundary = propName$42),
4703
4901
  (task.blockedPreamble = propName),
4704
4902
  (task.hoistableState = parentHoistableState),
4705
4903
  (task.blockedSegment = parentSegment),
4706
4904
  (task.keyPath = type),
4707
- (task.formatContext = ref);
4905
+ (task.formatContext = ref),
4906
+ (task.row = prevRow);
4708
4907
  }
4709
4908
  task = createRenderTask(
4710
4909
  request,
4711
4910
  null,
4712
4911
  fallback,
4713
4912
  -1,
4714
- propName$34,
4913
+ propName$42,
4715
4914
  boundarySegment,
4716
4915
  newBoundary.fallbackPreamble,
4717
4916
  newBoundary.fallbackState,
4718
4917
  fallbackAbortSet,
4719
4918
  [keyPath[0], "Suspense Fallback", keyPath[2]],
4720
- getSuspenseFallbackFormatContext(task.formatContext),
4919
+ getSuspenseFallbackFormatContext(
4920
+ request.resumableState,
4921
+ task.formatContext
4922
+ ),
4721
4923
  task.context,
4722
4924
  task.treeContext,
4925
+ task.row,
4723
4926
  task.componentStack
4724
4927
  );
4725
4928
  pushComponentStack(task);
@@ -4939,6 +5142,7 @@ function retryNode(request, task) {
4939
5142
  null === node$jscomp$0[4] ? null : node$jscomp$0[4][3];
4940
5143
  var prevKeyPath = task.keyPath,
4941
5144
  prevContext = task.formatContext,
5145
+ prevRow = task.row,
4942
5146
  previousReplaySet = task.replay,
4943
5147
  parentBoundary = task.blockedBoundary,
4944
5148
  parentHoistableState = task.hoistableState,
@@ -4949,12 +5153,14 @@ function retryNode(request, task) {
4949
5153
  2 > task.formatContext.insertionMode
4950
5154
  ? createSuspenseBoundary(
4951
5155
  request,
5156
+ task.row,
4952
5157
  fallbackAbortSet,
4953
5158
  createPreambleState(),
4954
5159
  createPreambleState()
4955
5160
  )
4956
5161
  : createSuspenseBoundary(
4957
5162
  request,
5163
+ task.row,
4958
5164
  fallbackAbortSet,
4959
5165
  null,
4960
5166
  null
@@ -4964,8 +5170,11 @@ function retryNode(request, task) {
4964
5170
  task.blockedBoundary = props;
4965
5171
  task.hoistableState = props.contentState;
4966
5172
  task.keyPath = key;
4967
- task.formatContext =
4968
- getSuspenseContentFormatContext(prevContext);
5173
+ task.formatContext = getSuspenseContentFormatContext(
5174
+ request.resumableState,
5175
+ prevContext
5176
+ );
5177
+ task.row = null;
4969
5178
  task.replay = {
4970
5179
  nodes: ref,
4971
5180
  slots: name,
@@ -5002,9 +5211,10 @@ function retryNode(request, task) {
5002
5211
  (task.hoistableState = parentHoistableState),
5003
5212
  (task.replay = previousReplaySet),
5004
5213
  (task.keyPath = prevKeyPath),
5005
- (task.formatContext = prevContext);
5214
+ (task.formatContext = prevContext),
5215
+ (task.row = prevRow);
5006
5216
  }
5007
- task = createReplayTask(
5217
+ childNodes = createReplayTask(
5008
5218
  request,
5009
5219
  null,
5010
5220
  {
@@ -5018,13 +5228,17 @@ function retryNode(request, task) {
5018
5228
  props.fallbackState,
5019
5229
  fallbackAbortSet,
5020
5230
  [key[0], "Suspense Fallback", key[2]],
5021
- getSuspenseFallbackFormatContext(task.formatContext),
5231
+ getSuspenseFallbackFormatContext(
5232
+ request.resumableState,
5233
+ task.formatContext
5234
+ ),
5022
5235
  task.context,
5023
5236
  task.treeContext,
5237
+ task.row,
5024
5238
  task.componentStack
5025
5239
  );
5026
- pushComponentStack(task);
5027
- request.pingedTasks.push(task);
5240
+ pushComponentStack(childNodes);
5241
+ request.pingedTasks.push(childNodes);
5028
5242
  }
5029
5243
  }
5030
5244
  childIndex.splice(node, 1);
@@ -5049,22 +5263,17 @@ function retryNode(request, task) {
5049
5263
  renderChildrenArray(request, task, node, childIndex);
5050
5264
  return;
5051
5265
  }
5052
- null === node || "object" !== typeof node
5053
- ? (childNodes = null)
5054
- : ((childNodes =
5055
- (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||
5056
- node["@@iterator"]),
5057
- (childNodes = "function" === typeof childNodes ? childNodes : null));
5058
- if (childNodes && (childNodes = childNodes.call(node))) {
5059
- node = childNodes.next();
5060
- if (!node.done) {
5061
- props = [];
5062
- do props.push(node.value), (node = childNodes.next());
5063
- while (!node.done);
5064
- renderChildrenArray(request, task, props, childIndex);
5266
+ if ((childNodes = getIteratorFn(node)))
5267
+ if ((childNodes = childNodes.call(node))) {
5268
+ node = childNodes.next();
5269
+ if (!node.done) {
5270
+ props = [];
5271
+ do props.push(node.value), (node = childNodes.next());
5272
+ while (!node.done);
5273
+ renderChildrenArray(request, task, props, childIndex);
5274
+ }
5275
+ return;
5065
5276
  }
5066
- return;
5067
- }
5068
5277
  if ("function" === typeof node.then)
5069
5278
  return (
5070
5279
  (task.thenableState = null),
@@ -5207,6 +5416,7 @@ function spawnNewSuspendedReplayTask(request, task, thenableState) {
5207
5416
  task.formatContext,
5208
5417
  task.context,
5209
5418
  task.treeContext,
5419
+ task.row,
5210
5420
  task.componentStack
5211
5421
  );
5212
5422
  }
@@ -5236,6 +5446,7 @@ function spawnNewSuspendedRenderTask(request, task, thenableState) {
5236
5446
  task.formatContext,
5237
5447
  task.context,
5238
5448
  task.treeContext,
5449
+ task.row,
5239
5450
  task.componentStack
5240
5451
  );
5241
5452
  }
@@ -5289,15 +5500,15 @@ function renderNode(request, task, node, childIndex) {
5289
5500
  chunkLength = segment.chunks.length;
5290
5501
  try {
5291
5502
  return renderNodeDestructive(request, task, node, childIndex);
5292
- } catch (thrownValue$51) {
5503
+ } catch (thrownValue$58) {
5293
5504
  if (
5294
5505
  (resetHooksState(),
5295
5506
  (segment.children.length = childrenLength),
5296
5507
  (segment.chunks.length = chunkLength),
5297
5508
  (node =
5298
- thrownValue$51 === SuspenseException
5509
+ thrownValue$58 === SuspenseException
5299
5510
  ? getSuspendedThenable()
5300
- : thrownValue$51),
5511
+ : thrownValue$58),
5301
5512
  "object" === typeof node && null !== node)
5302
5513
  ) {
5303
5514
  if ("function" === typeof node.then) {
@@ -5335,9 +5546,10 @@ function renderNode(request, task, node, childIndex) {
5335
5546
  throw node;
5336
5547
  }
5337
5548
  function abortTaskSoft(task) {
5338
- var boundary = task.blockedBoundary;
5339
- task = task.blockedSegment;
5340
- null !== task && ((task.status = 3), finishedTask(this, boundary, task));
5549
+ var boundary = task.blockedBoundary,
5550
+ segment = task.blockedSegment;
5551
+ null !== segment &&
5552
+ ((segment.status = 3), finishedTask(this, boundary, task.row, segment));
5341
5553
  }
5342
5554
  function abortRemainingReplayNodes(
5343
5555
  request$jscomp$0,
@@ -5364,6 +5576,7 @@ function abortRemainingReplayNodes(
5364
5576
  errorDigest = errorDigest$jscomp$0,
5365
5577
  resumedBoundary = createSuspenseBoundary(
5366
5578
  request,
5579
+ null,
5367
5580
  new Set(),
5368
5581
  null,
5369
5582
  null
@@ -5397,6 +5610,10 @@ function abortTask(task, request, error) {
5397
5610
  if (6 === segment.status) return;
5398
5611
  segment.status = 3;
5399
5612
  }
5613
+ segment = task.row;
5614
+ null !== segment &&
5615
+ 0 === --segment.pendingTasks &&
5616
+ finishSuspenseListRow(request, segment);
5400
5617
  segment = getThrownInfo(task.componentStack);
5401
5618
  if (null === boundary) {
5402
5619
  if (13 !== request.status && 14 !== request.status) {
@@ -5541,7 +5758,11 @@ function finishedSegment(request, boundary, segment) {
5541
5758
  : (boundary.byteSize += segmentByteSize);
5542
5759
  }
5543
5760
  }
5544
- function finishedTask(request, boundary, segment) {
5761
+ function finishedTask(request, boundary, row, segment) {
5762
+ null !== row &&
5763
+ 0 === --row.pendingTasks &&
5764
+ finishSuspenseListRow(request, row);
5765
+ request.allPendingTasks--;
5545
5766
  if (null === boundary) {
5546
5767
  if (null !== segment && segment.parentFlushed) {
5547
5768
  if (null !== request.completedRootSegment)
@@ -5569,7 +5790,11 @@ function finishedTask(request, boundary, segment) {
5569
5790
  abortTaskSoft,
5570
5791
  request
5571
5792
  ),
5572
- boundary.fallbackAbortableTasks.clear()),
5793
+ boundary.fallbackAbortableTasks.clear(),
5794
+ (row = boundary.row),
5795
+ null !== row &&
5796
+ 0 === --row.pendingTasks &&
5797
+ finishSuspenseListRow(request, row)),
5573
5798
  0 === request.pendingRootTasks &&
5574
5799
  null === request.trackedPostpones &&
5575
5800
  null !== boundary.contentPreamble &&
@@ -5581,7 +5806,6 @@ function finishedTask(request, boundary, segment) {
5581
5806
  1 === boundary.completedSegments.length &&
5582
5807
  boundary.parentFlushed &&
5583
5808
  request.partialBoundaries.push(boundary)));
5584
- request.allPendingTasks--;
5585
5809
  0 === request.allPendingTasks && completeAll(request);
5586
5810
  }
5587
5811
  function performWork(request$jscomp$2) {
@@ -5625,7 +5849,12 @@ function performWork(request$jscomp$2) {
5625
5849
  );
5626
5850
  task.replay.pendingTasks--;
5627
5851
  task.abortSet.delete(task);
5628
- finishedTask(request$jscomp$0, task.blockedBoundary, null);
5852
+ finishedTask(
5853
+ request$jscomp$0,
5854
+ task.blockedBoundary,
5855
+ task.row,
5856
+ null
5857
+ );
5629
5858
  } catch (thrownValue) {
5630
5859
  resetHooksState();
5631
5860
  var x =
@@ -5693,7 +5922,12 @@ function performWork(request$jscomp$2) {
5693
5922
  task.abortSet.delete(task),
5694
5923
  (request$jscomp$1.status = 1),
5695
5924
  finishedSegment(request, task.blockedBoundary, request$jscomp$1),
5696
- finishedTask(request, task.blockedBoundary, request$jscomp$1);
5925
+ finishedTask(
5926
+ request,
5927
+ task.blockedBoundary,
5928
+ task.row,
5929
+ request$jscomp$1
5930
+ );
5697
5931
  } catch (thrownValue) {
5698
5932
  resetHooksState();
5699
5933
  request$jscomp$1.children.length = childrenLength;
@@ -5717,7 +5951,12 @@ function performWork(request$jscomp$2) {
5717
5951
  var errorInfo$jscomp$0 = getThrownInfo(task.componentStack);
5718
5952
  task.abortSet.delete(task);
5719
5953
  request$jscomp$1.status = 4;
5720
- var boundary$jscomp$0 = task.blockedBoundary;
5954
+ var boundary$jscomp$0 = task.blockedBoundary,
5955
+ row = task.row;
5956
+ null !== row &&
5957
+ 0 === --row.pendingTasks &&
5958
+ finishSuspenseListRow(request, row);
5959
+ request.allPendingTasks--;
5721
5960
  request$jscomp$0 = logRecoverableError(
5722
5961
  request,
5723
5962
  x$jscomp$0,
@@ -5736,7 +5975,6 @@ function performWork(request$jscomp$2) {
5736
5975
  null === request.trackedPostpones &&
5737
5976
  null !== boundary$jscomp$0.contentPreamble &&
5738
5977
  preparePreamble(request)));
5739
- request.allPendingTasks--;
5740
5978
  0 === request.allPendingTasks && completeAll(request);
5741
5979
  }
5742
5980
  } finally {
@@ -5882,20 +6120,24 @@ function flushSegment(request, destination, segment, hoistableState) {
5882
6120
  if (null === boundary)
5883
6121
  return flushSubtree(request, destination, segment, hoistableState);
5884
6122
  boundary.parentFlushed = !0;
5885
- if (4 === boundary.status)
5886
- (boundary = boundary.errorDigest),
5887
- writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary),
5888
- writeChunk(destination, clientRenderedSuspenseBoundaryError1),
5889
- boundary &&
5890
- (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
5891
- writeChunk(destination, escapeTextForBrowser(boundary)),
5892
- writeChunk(
5893
- destination,
5894
- clientRenderedSuspenseBoundaryErrorAttrInterstitial
5895
- )),
5896
- writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2),
5897
- flushSubtree(request, destination, segment, hoistableState);
5898
- else if (1 !== boundary.status)
6123
+ if (4 === boundary.status) {
6124
+ var row = boundary.row;
6125
+ null !== row &&
6126
+ 0 === --row.pendingTasks &&
6127
+ finishSuspenseListRow(request, row);
6128
+ boundary = boundary.errorDigest;
6129
+ writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary);
6130
+ writeChunk(destination, clientRenderedSuspenseBoundaryError1);
6131
+ boundary &&
6132
+ (writeChunk(destination, clientRenderedSuspenseBoundaryError1A),
6133
+ writeChunk(destination, escapeTextForBrowser(boundary)),
6134
+ writeChunk(
6135
+ destination,
6136
+ clientRenderedSuspenseBoundaryErrorAttrInterstitial
6137
+ ));
6138
+ writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2);
6139
+ flushSubtree(request, destination, segment, hoistableState);
6140
+ } else if (1 !== boundary.status)
5899
6141
  0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++),
5900
6142
  0 < boundary.completedSegments.length &&
5901
6143
  request.partialBoundaries.push(boundary),
@@ -5930,6 +6172,11 @@ function flushSegment(request, destination, segment, hoistableState) {
5930
6172
  ((segment = boundary.contentState),
5931
6173
  segment.styles.forEach(hoistStyleQueueDependency, hoistableState),
5932
6174
  segment.stylesheets.forEach(hoistStylesheetDependency, hoistableState));
6175
+ segment = boundary.row;
6176
+ null !== segment &&
6177
+ 500 < boundary.byteSize &&
6178
+ 0 === --segment.pendingTasks &&
6179
+ finishSuspenseListRow(request, segment);
5933
6180
  writeChunkAndReturn(destination, startCompletedSuspenseBoundary);
5934
6181
  segment = boundary.completedSegments;
5935
6182
  if (1 !== segment.length)
@@ -5964,6 +6211,11 @@ function flushCompletedBoundary(request, destination, boundary) {
5964
6211
  completedSegments[i]
5965
6212
  );
5966
6213
  completedSegments.length = 0;
6214
+ completedSegments = boundary.row;
6215
+ null !== completedSegments &&
6216
+ 500 < boundary.byteSize &&
6217
+ 0 === --completedSegments.pendingTasks &&
6218
+ finishSuspenseListRow(request, completedSegments);
5967
6219
  writeHoistablesForBoundary(
5968
6220
  destination,
5969
6221
  boundary.contentState,
@@ -5988,10 +6240,10 @@ function flushCompletedBoundary(request, destination, boundary) {
5988
6240
  ? ((completedSegments.instructions |= 8),
5989
6241
  writeChunk(destination, completeBoundaryWithStylesScript1FullPartial))
5990
6242
  : writeChunk(destination, completeBoundaryWithStylesScript1Partial))
5991
- : 0 === (completedSegments.instructions & 2)
5992
- ? ((completedSegments.instructions |= 2),
5993
- writeChunk(destination, completeBoundaryScript1Full))
5994
- : writeChunk(destination, completeBoundaryScript1Partial);
6243
+ : (0 === (completedSegments.instructions & 2) &&
6244
+ ((completedSegments.instructions |= 2),
6245
+ writeChunk(destination, completeBoundaryScriptFunctionOnly)),
6246
+ writeChunk(destination, completeBoundaryScript1Partial));
5995
6247
  completedSegments = i.toString(16);
5996
6248
  writeChunk(destination, request.boundaryPrefix);
5997
6249
  writeChunk(destination, completedSegments);
@@ -6238,12 +6490,12 @@ function flushCompletedQueues(request, destination) {
6238
6490
  destinationHasCapacity$1 = !0;
6239
6491
  var partialBoundaries = request.partialBoundaries;
6240
6492
  for (i = 0; i < partialBoundaries.length; i++) {
6241
- var boundary$54 = partialBoundaries[i];
6493
+ var boundary$62 = partialBoundaries[i];
6242
6494
  a: {
6243
6495
  clientRenderedBoundaries = request;
6244
6496
  boundary = destination;
6245
- flushedByteSize = boundary$54.byteSize;
6246
- var completedSegments = boundary$54.completedSegments;
6497
+ flushedByteSize = boundary$62.byteSize;
6498
+ var completedSegments = boundary$62.completedSegments;
6247
6499
  for (
6248
6500
  JSCompiler_inline_result = 0;
6249
6501
  JSCompiler_inline_result < completedSegments.length;
@@ -6253,7 +6505,7 @@ function flushCompletedQueues(request, destination) {
6253
6505
  !flushPartiallyCompletedSegment(
6254
6506
  clientRenderedBoundaries,
6255
6507
  boundary,
6256
- boundary$54,
6508
+ boundary$62,
6257
6509
  completedSegments[JSCompiler_inline_result]
6258
6510
  )
6259
6511
  ) {
@@ -6265,7 +6517,7 @@ function flushCompletedQueues(request, destination) {
6265
6517
  completedSegments.splice(0, JSCompiler_inline_result);
6266
6518
  JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary(
6267
6519
  boundary,
6268
- boundary$54.contentState,
6520
+ boundary$62.contentState,
6269
6521
  clientRenderedBoundaries.renderState
6270
6522
  );
6271
6523
  }
@@ -6366,17 +6618,17 @@ function abort(request, reason) {
6366
6618
  }
6367
6619
  null !== request.destination &&
6368
6620
  flushCompletedQueues(request, request.destination);
6369
- } catch (error$56) {
6370
- logRecoverableError(request, error$56, {}), fatalError(request, error$56);
6621
+ } catch (error$64) {
6622
+ logRecoverableError(request, error$64, {}), fatalError(request, error$64);
6371
6623
  }
6372
6624
  }
6373
6625
  function ensureCorrectIsomorphicReactVersion() {
6374
6626
  var isomorphicReactPackageVersion = React.version;
6375
- if ("19.2.0-canary-4448b187-20250515" !== isomorphicReactPackageVersion)
6627
+ if ("19.2.0-canary-c4676e72-20250520" !== isomorphicReactPackageVersion)
6376
6628
  throw Error(
6377
6629
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
6378
6630
  (isomorphicReactPackageVersion +
6379
- "\n - react-dom: 19.2.0-canary-4448b187-20250515\nLearn more: https://react.dev/warnings/version-mismatch")
6631
+ "\n - react-dom: 19.2.0-canary-c4676e72-20250520\nLearn more: https://react.dev/warnings/version-mismatch")
6380
6632
  );
6381
6633
  }
6382
6634
  ensureCorrectIsomorphicReactVersion();
@@ -6525,4 +6777,4 @@ exports.renderToPipeableStream = function (children, options) {
6525
6777
  }
6526
6778
  };
6527
6779
  };
6528
- exports.version = "19.2.0-canary-4448b187-20250515";
6780
+ exports.version = "19.2.0-canary-c4676e72-20250520";