@vue/runtime-core 3.5.39 → 3.5.41

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.39
2
+ * @vue/runtime-core v3.5.41
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -328,7 +328,9 @@ function queuePostFlushCb(cb) {
328
328
  cb.flags |= 1;
329
329
  }
330
330
  } else {
331
- pendingPostFlushCbs.push(...cb);
331
+ for (let i = 0; i < cb.length; i++) {
332
+ pendingPostFlushCbs.push(cb[i]);
333
+ }
332
334
  }
333
335
  queueFlush();
334
336
  }
@@ -364,7 +366,9 @@ function flushPostFlushCbs(seen) {
364
366
  );
365
367
  pendingPostFlushCbs.length = 0;
366
368
  if (activePostFlushCbs) {
367
- activePostFlushCbs.push(...deduped);
369
+ for (let i = 0; i < deduped.length; i++) {
370
+ activePostFlushCbs.push(deduped[i]);
371
+ }
368
372
  return;
369
373
  }
370
374
  activePostFlushCbs = deduped;
@@ -694,10 +698,12 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
694
698
  setBlockTracking(-1);
695
699
  }
696
700
  const prevInstance = setCurrentRenderingInstance(ctx);
701
+ const prevStackSize = blockStack.length;
697
702
  let res;
698
703
  try {
699
704
  res = fn(...args);
700
705
  } finally {
706
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
701
707
  setCurrentRenderingInstance(prevInstance);
702
708
  if (renderFnWithContext._d) {
703
709
  setBlockTracking(1);
@@ -1651,7 +1657,11 @@ function getInnerChild$1(vnode) {
1651
1657
  function setTransitionHooks(vnode, hooks) {
1652
1658
  if (vnode.shapeFlag & 6 && vnode.component) {
1653
1659
  vnode.transition = hooks;
1654
- setTransitionHooks(vnode.component.subTree, hooks);
1660
+ const subTree = vnode.component.subTree;
1661
+ setTransitionHooks(
1662
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1663
+ hooks
1664
+ );
1655
1665
  } else if (vnode.shapeFlag & 128) {
1656
1666
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1657
1667
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -1811,12 +1821,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1811
1821
  }
1812
1822
  }
1813
1823
  if (shared.isFunction(ref)) {
1814
- reactivity.pauseTracking();
1815
- try {
1816
- callWithErrorHandling(ref, owner, 12, [value, refs]);
1817
- } finally {
1818
- reactivity.resetTracking();
1819
- }
1824
+ callWithErrorHandling(ref, owner, 12, [value, refs]);
1820
1825
  } else {
1821
1826
  const _isString = shared.isString(ref);
1822
1827
  const _isRef = reactivity.isRef(ref);
@@ -2187,6 +2192,7 @@ Server rendered element contains more child nodes than client vdom.`
2187
2192
  if (props) {
2188
2193
  {
2189
2194
  const isCustomElement = el.tagName.includes("-");
2195
+ const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
2190
2196
  for (const key in props) {
2191
2197
  if (// #11189 skip if this node has directives that have created hooks
2192
2198
  // as it could have mutated the DOM in any possible way
@@ -2195,7 +2201,10 @@ Server rendered element contains more child nodes than client vdom.`
2195
2201
  }
2196
2202
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers
2197
2203
  key[0] === "." || isCustomElement && !shared.isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
2198
- patchProp(el, key, null, props[key], void 0, parentComponent);
2204
+ if (isUnchangedResourceProp(el, key, props[key])) {
2205
+ continue;
2206
+ }
2207
+ patchProp(el, key, null, props[key], namespace, parentComponent);
2199
2208
  }
2200
2209
  }
2201
2210
  }
@@ -2377,6 +2386,13 @@ Server rendered element contains fewer child nodes than client vdom.`
2377
2386
  };
2378
2387
  return [hydrate, hydrateNode];
2379
2388
  }
2389
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
2390
+ function isUnchangedResourceProp(el, key, clientValue) {
2391
+ if (!resourceProps.has(key)) {
2392
+ return false;
2393
+ }
2394
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
2395
+ }
2380
2396
  function propHasMismatch(el, key, clientValue, vnode, instance) {
2381
2397
  let mismatchType;
2382
2398
  let mismatchKey;
@@ -2414,7 +2430,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2414
2430
  mismatchKey = "style";
2415
2431
  }
2416
2432
  } else if (el instanceof SVGElement && shared.isKnownSvgAttr(key) || el instanceof HTMLElement && (shared.isBooleanAttr(key) || shared.isKnownHtmlAttr(key))) {
2417
- if (shared.isBooleanAttr(key)) {
2433
+ if (key === "hidden") {
2434
+ actual = normalizeHiddenValue(el.getAttribute(key));
2435
+ expected = normalizeHiddenValue(clientValue);
2436
+ } else if (shared.isBooleanAttr(key)) {
2418
2437
  actual = el.hasAttribute(key);
2419
2438
  expected = shared.includeBooleanAttr(clientValue);
2420
2439
  } else if (clientValue == null) {
@@ -2450,6 +2469,15 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2450
2469
  }
2451
2470
  return false;
2452
2471
  }
2472
+ function normalizeHiddenValue(value) {
2473
+ if (!shared.isRenderableAttrValue(value)) {
2474
+ return false;
2475
+ }
2476
+ if (shared.isString(value)) {
2477
+ return value.toLowerCase() === "until-found" ? "until-found" : "";
2478
+ }
2479
+ return shared.includeBooleanAttr(value) ? "" : false;
2480
+ }
2453
2481
  function toClassSet(str) {
2454
2482
  return new Set(str.trim().split(/\s+/));
2455
2483
  }
@@ -2698,6 +2726,7 @@ function defineAsyncComponent(source) {
2698
2726
  name: "AsyncComponentWrapper",
2699
2727
  __asyncLoader: load,
2700
2728
  __asyncHydrate(el, instance, hydrate) {
2729
+ const wasConnected = el.isConnected;
2701
2730
  let patched = false;
2702
2731
  (instance.bu || (instance.bu = [])).push(() => patched = true);
2703
2732
  const performHydrate = () => {
@@ -2709,6 +2738,7 @@ function defineAsyncComponent(source) {
2709
2738
  }
2710
2739
  return;
2711
2740
  }
2741
+ if (!el.parentNode || wasConnected && !el.isConnected) return;
2712
2742
  hydrate();
2713
2743
  };
2714
2744
  const doHydrate = hydrateStrategy ? () => {
@@ -3264,14 +3294,16 @@ function createSlots(slots, dynamicSlots) {
3264
3294
  return slots;
3265
3295
  }
3266
3296
 
3267
- function renderSlot(slots, name, props = {}, fallback, noSlotted) {
3297
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
3298
+ if (props == null) props = {};
3268
3299
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3269
- const hasProps = Object.keys(props).length > 0;
3270
- if (name !== "default") props.name = name;
3300
+ const slotProps = branchKey != null && props.key == null ? shared.extend({}, props, { key: branchKey }) : props;
3301
+ const hasProps = Object.keys(slotProps).length > 0;
3302
+ if (name !== "default") slotProps.name = name;
3271
3303
  return openBlock(), createBlock(
3272
3304
  Fragment,
3273
3305
  null,
3274
- [createVNode("slot", props, fallback && fallback())],
3306
+ [createVNode("slot", slotProps, fallback && fallback())],
3275
3307
  hasProps ? -2 : 64
3276
3308
  );
3277
3309
  }
@@ -3285,26 +3317,34 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
3285
3317
  if (slot && slot._c) {
3286
3318
  slot._d = false;
3287
3319
  }
3320
+ const prevStackSize = blockStack.length;
3288
3321
  openBlock();
3289
- const validSlotContent = slot && ensureValidVNode(slot(props));
3290
- const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
3291
- // key attached in the `createSlots` helper, respect that
3292
- validSlotContent && validSlotContent.key;
3293
- const rendered = createBlock(
3294
- Fragment,
3295
- {
3296
- key: (slotKey && !shared.isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
3297
- (!validSlotContent && fallback ? "_fb" : "")
3298
- },
3299
- validSlotContent || (fallback ? fallback() : []),
3300
- validSlotContent && slots._ === 1 ? 64 : -2
3301
- );
3322
+ let rendered;
3323
+ try {
3324
+ const validSlotContent = slot && ensureValidVNode(slot(props));
3325
+ const slotKey = props.key || branchKey || // slot content array of a dynamic conditional slot may have a branch
3326
+ // key attached in the `createSlots` helper, respect that
3327
+ validSlotContent && validSlotContent.key;
3328
+ rendered = createBlock(
3329
+ Fragment,
3330
+ {
3331
+ key: (slotKey && !shared.isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
3332
+ (!validSlotContent && fallback ? "_fb" : "")
3333
+ },
3334
+ validSlotContent || (fallback ? fallback() : []),
3335
+ validSlotContent && slots._ === 1 ? 64 : -2
3336
+ );
3337
+ } catch (err) {
3338
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
3339
+ throw err;
3340
+ } finally {
3341
+ if (slot && slot._c) {
3342
+ slot._d = true;
3343
+ }
3344
+ }
3302
3345
  if (!noSlotted && rendered.scopeId) {
3303
3346
  rendered.slotScopeIds = [rendered.scopeId + "-s"];
3304
3347
  }
3305
- if (slot && slot._c) {
3306
- slot._d = true;
3307
- }
3308
3348
  return rendered;
3309
3349
  }
3310
3350
  function ensureValidVNode(vnodes) {
@@ -4679,12 +4719,13 @@ function renderComponentRoot(instance) {
4679
4719
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
4680
4720
  }
4681
4721
  if (vnode.transition) {
4682
- if (!isElementRoot(root)) {
4722
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
4723
+ if (!isElementRoot(child)) {
4683
4724
  warn$1(
4684
4725
  `Component inside <Transition> renders non-element root node that cannot be animated.`
4685
4726
  );
4686
4727
  }
4687
- setTransitionHooks(root, vnode.transition);
4728
+ setTransitionHooks(child, vnode.transition);
4688
4729
  }
4689
4730
  if (setRoot) {
4690
4731
  setRoot(root);
@@ -7332,7 +7373,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7332
7373
  let hasUnresolvedAncestor = false;
7333
7374
  while (parent) {
7334
7375
  if (parent.pendingBranch) {
7335
- parent.effects.push(...effects);
7376
+ for (let i = 0; i < effects.length; i++) {
7377
+ parent.effects.push(effects[i]);
7378
+ }
7336
7379
  hasUnresolvedAncestor = true;
7337
7380
  break;
7338
7381
  }
@@ -7697,6 +7740,14 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7697
7740
  if (vnode.key !== vnode.key) {
7698
7741
  warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
7699
7742
  }
7743
+ if (props && vnode.shapeFlag & 1) {
7744
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
7745
+ if (overwritingProp && hasContentChildren(vnode.children)) {
7746
+ warn$1(
7747
+ `The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`
7748
+ );
7749
+ }
7750
+ }
7700
7751
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
7701
7752
  !isBlockNode && // has current parent block
7702
7753
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
@@ -7710,6 +7761,11 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7710
7761
  }
7711
7762
  return vnode;
7712
7763
  }
7764
+ function hasContentChildren(children) {
7765
+ if (shared.isString(children)) return children !== "";
7766
+ if (shared.isArray(children)) return children.length > 0;
7767
+ return false;
7768
+ }
7713
7769
  const createVNode = createVNodeWithArgsTransform ;
7714
7770
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
7715
7771
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -8158,7 +8214,12 @@ function setupStatefulComponent(instance, isSSR) {
8158
8214
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
8159
8215
  if (isSSR) {
8160
8216
  return setupResult.then((resolvedResult) => {
8161
- handleSetupResult(instance, resolvedResult, isSSR);
8217
+ setInSSRSetupState(true);
8218
+ try {
8219
+ handleSetupResult(instance, resolvedResult, isSSR);
8220
+ } finally {
8221
+ setInSSRSetupState(false);
8222
+ }
8162
8223
  }).catch((e) => {
8163
8224
  handleError(e, instance, 0);
8164
8225
  });
@@ -8624,7 +8685,7 @@ function isMemoSame(cached, memo) {
8624
8685
  return true;
8625
8686
  }
8626
8687
 
8627
- const version = "3.5.39";
8688
+ const version = "3.5.41";
8628
8689
  const warn = warn$1 ;
8629
8690
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8630
8691
  const devtools = devtools$1 ;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.39
2
+ * @vue/runtime-core v3.5.41
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -199,7 +199,9 @@ function queuePostFlushCb(cb) {
199
199
  cb.flags |= 1;
200
200
  }
201
201
  } else {
202
- pendingPostFlushCbs.push(...cb);
202
+ for (let i = 0; i < cb.length; i++) {
203
+ pendingPostFlushCbs.push(cb[i]);
204
+ }
203
205
  }
204
206
  queueFlush();
205
207
  }
@@ -229,7 +231,9 @@ function flushPostFlushCbs(seen) {
229
231
  );
230
232
  pendingPostFlushCbs.length = 0;
231
233
  if (activePostFlushCbs) {
232
- activePostFlushCbs.push(...deduped);
234
+ for (let i = 0; i < deduped.length; i++) {
235
+ activePostFlushCbs.push(deduped[i]);
236
+ }
233
237
  return;
234
238
  }
235
239
  activePostFlushCbs = deduped;
@@ -307,10 +311,12 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
307
311
  setBlockTracking(-1);
308
312
  }
309
313
  const prevInstance = setCurrentRenderingInstance(ctx);
314
+ const prevStackSize = blockStack.length;
310
315
  let res;
311
316
  try {
312
317
  res = fn(...args);
313
318
  } finally {
319
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
314
320
  setCurrentRenderingInstance(prevInstance);
315
321
  if (renderFnWithContext._d) {
316
322
  setBlockTracking(1);
@@ -1185,7 +1191,11 @@ function getInnerChild$1(vnode) {
1185
1191
  function setTransitionHooks(vnode, hooks) {
1186
1192
  if (vnode.shapeFlag & 6 && vnode.component) {
1187
1193
  vnode.transition = hooks;
1188
- setTransitionHooks(vnode.component.subTree, hooks);
1194
+ const subTree = vnode.component.subTree;
1195
+ setTransitionHooks(
1196
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1197
+ hooks
1198
+ );
1189
1199
  } else if (vnode.shapeFlag & 128) {
1190
1200
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1191
1201
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -1312,12 +1322,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1312
1322
  }
1313
1323
  }
1314
1324
  if (shared.isFunction(ref)) {
1315
- reactivity.pauseTracking();
1316
- try {
1317
- callWithErrorHandling(ref, owner, 12, [value, refs]);
1318
- } finally {
1319
- reactivity.resetTracking();
1320
- }
1325
+ callWithErrorHandling(ref, owner, 12, [value, refs]);
1321
1326
  } else {
1322
1327
  const _isString = shared.isString(ref);
1323
1328
  const _isRef = reactivity.isRef(ref);
@@ -1654,10 +1659,14 @@ function createHydrationFunctions(rendererInternals) {
1654
1659
  if (props) {
1655
1660
  if (forcePatch || hasDynamicProps || !optimized || patchFlag & (16 | 32)) {
1656
1661
  const isCustomElement = el.tagName.includes("-");
1662
+ const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
1657
1663
  for (const key in props) {
1658
1664
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers
1659
1665
  key[0] === "." || isCustomElement && !shared.isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
1660
- patchProp(el, key, null, props[key], void 0, parentComponent);
1666
+ if (isUnchangedResourceProp(el, key, props[key])) {
1667
+ continue;
1668
+ }
1669
+ patchProp(el, key, null, props[key], namespace, parentComponent);
1661
1670
  }
1662
1671
  }
1663
1672
  } else if (props.onClick) {
@@ -1835,6 +1844,13 @@ function createHydrationFunctions(rendererInternals) {
1835
1844
  };
1836
1845
  return [hydrate, hydrateNode];
1837
1846
  }
1847
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
1848
+ function isUnchangedResourceProp(el, key, clientValue) {
1849
+ if (!resourceProps.has(key)) {
1850
+ return false;
1851
+ }
1852
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
1853
+ }
1838
1854
  const allowMismatchAttr = "data-allow-mismatch";
1839
1855
  const MismatchTypeString = {
1840
1856
  [0 /* TEXT */]: "text",
@@ -2025,12 +2041,14 @@ function defineAsyncComponent(source) {
2025
2041
  name: "AsyncComponentWrapper",
2026
2042
  __asyncLoader: load,
2027
2043
  __asyncHydrate(el, instance, hydrate) {
2044
+ const wasConnected = el.isConnected;
2028
2045
  let patched = false;
2029
2046
  (instance.bu || (instance.bu = [])).push(() => patched = true);
2030
2047
  const performHydrate = () => {
2031
2048
  if (patched) {
2032
2049
  return;
2033
2050
  }
2051
+ if (!el.parentNode || wasConnected && !el.isConnected) return;
2034
2052
  hydrate();
2035
2053
  };
2036
2054
  const doHydrate = hydrateStrategy ? () => {
@@ -2555,14 +2573,16 @@ function createSlots(slots, dynamicSlots) {
2555
2573
  return slots;
2556
2574
  }
2557
2575
 
2558
- function renderSlot(slots, name, props = {}, fallback, noSlotted) {
2576
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
2577
+ if (props == null) props = {};
2559
2578
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
2560
- const hasProps = Object.keys(props).length > 0;
2561
- if (name !== "default") props.name = name;
2579
+ const slotProps = branchKey != null && props.key == null ? shared.extend({}, props, { key: branchKey }) : props;
2580
+ const hasProps = Object.keys(slotProps).length > 0;
2581
+ if (name !== "default") slotProps.name = name;
2562
2582
  return openBlock(), createBlock(
2563
2583
  Fragment,
2564
2584
  null,
2565
- [createVNode("slot", props, fallback && fallback())],
2585
+ [createVNode("slot", slotProps, fallback && fallback())],
2566
2586
  hasProps ? -2 : 64
2567
2587
  );
2568
2588
  }
@@ -2570,26 +2590,34 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
2570
2590
  if (slot && slot._c) {
2571
2591
  slot._d = false;
2572
2592
  }
2593
+ const prevStackSize = blockStack.length;
2573
2594
  openBlock();
2574
- const validSlotContent = slot && ensureValidVNode(slot(props));
2575
- const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
2576
- // key attached in the `createSlots` helper, respect that
2577
- validSlotContent && validSlotContent.key;
2578
- const rendered = createBlock(
2579
- Fragment,
2580
- {
2581
- key: (slotKey && !shared.isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
2582
- (!validSlotContent && fallback ? "_fb" : "")
2583
- },
2584
- validSlotContent || (fallback ? fallback() : []),
2585
- validSlotContent && slots._ === 1 ? 64 : -2
2586
- );
2595
+ let rendered;
2596
+ try {
2597
+ const validSlotContent = slot && ensureValidVNode(slot(props));
2598
+ const slotKey = props.key || branchKey || // slot content array of a dynamic conditional slot may have a branch
2599
+ // key attached in the `createSlots` helper, respect that
2600
+ validSlotContent && validSlotContent.key;
2601
+ rendered = createBlock(
2602
+ Fragment,
2603
+ {
2604
+ key: (slotKey && !shared.isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
2605
+ (!validSlotContent && fallback ? "_fb" : "")
2606
+ },
2607
+ validSlotContent || (fallback ? fallback() : []),
2608
+ validSlotContent && slots._ === 1 ? 64 : -2
2609
+ );
2610
+ } catch (err) {
2611
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
2612
+ throw err;
2613
+ } finally {
2614
+ if (slot && slot._c) {
2615
+ slot._d = true;
2616
+ }
2617
+ }
2587
2618
  if (!noSlotted && rendered.scopeId) {
2588
2619
  rendered.slotScopeIds = [rendered.scopeId + "-s"];
2589
2620
  }
2590
- if (slot && slot._c) {
2591
- slot._d = true;
2592
- }
2593
2621
  return rendered;
2594
2622
  }
2595
2623
  function ensureValidVNode(vnodes) {
@@ -3582,7 +3610,8 @@ function renderComponentRoot(instance) {
3582
3610
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
3583
3611
  }
3584
3612
  if (vnode.transition) {
3585
- setTransitionHooks(root, vnode.transition);
3613
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
3614
+ setTransitionHooks(child, vnode.transition);
3586
3615
  }
3587
3616
  {
3588
3617
  result = root;
@@ -5842,7 +5871,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5842
5871
  let hasUnresolvedAncestor = false;
5843
5872
  while (parent) {
5844
5873
  if (parent.pendingBranch) {
5845
- parent.effects.push(...effects);
5874
+ for (let i = 0; i < effects.length; i++) {
5875
+ parent.effects.push(effects[i]);
5876
+ }
5846
5877
  hasUnresolvedAncestor = true;
5847
5878
  break;
5848
5879
  }
@@ -6589,7 +6620,12 @@ function setupStatefulComponent(instance, isSSR) {
6589
6620
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
6590
6621
  if (isSSR) {
6591
6622
  return setupResult.then((resolvedResult) => {
6592
- handleSetupResult(instance, resolvedResult, isSSR);
6623
+ setInSSRSetupState(true);
6624
+ try {
6625
+ handleSetupResult(instance, resolvedResult, isSSR);
6626
+ } finally {
6627
+ setInSSRSetupState(false);
6628
+ }
6593
6629
  }).catch((e) => {
6594
6630
  handleError(e, instance, 0);
6595
6631
  });
@@ -6770,7 +6806,7 @@ function isMemoSame(cached, memo) {
6770
6806
  return true;
6771
6807
  }
6772
6808
 
6773
- const version = "3.5.39";
6809
+ const version = "3.5.41";
6774
6810
  const warn$1 = shared.NOOP;
6775
6811
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
6776
6812
  const devtools = void 0;
@@ -331,17 +331,17 @@ type DefineModelDefault<T> = InferDefault<Data, T>;
331
331
  * const count = defineModel<number>('count', { default: 0 })
332
332
  * ```
333
333
  */
334
- export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options: ({
334
+ export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options: DefineModelRuntimeOptions<T, G, S> & ({
335
335
  default: DefineModelDefault<T>;
336
336
  } | {
337
337
  required: true;
338
- }) & DefineModelRuntimeOptions<T, G, S>): ModelRef<T, M, G, S>;
338
+ })): ModelRef<T, M, G, S>;
339
339
  export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options?: DefineModelRuntimeOptions<T, G, S>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
340
- export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options: ({
340
+ export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options: DefineModelRuntimeOptions<T, G, S> & ({
341
341
  default: DefineModelDefault<T>;
342
342
  } | {
343
343
  required: true;
344
- }) & DefineModelRuntimeOptions<T, G, S>): ModelRef<T, M, G, S>;
344
+ })): ModelRef<T, M, G, S>;
345
345
  export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options?: DefineModelRuntimeOptions<T, G, S>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
346
346
  type NotUndefined<T> = T extends undefined ? never : T;
347
347
  type MappedOmit<T, K extends keyof any> = {
@@ -498,12 +498,12 @@ export type CreateComponentPublicInstance<P = {}, B = {}, D = {}, C extends Comp
498
498
  * inference everywhere internally, but it has to be a new type to avoid
499
499
  * breaking types that relies on previous arguments order (#10842)
500
500
  */
501
- export type CreateComponentPublicInstanceWithMixins<P = {}, B = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = {}, PublicProps = P, Defaults = {}, MakeDefaultsOptional extends boolean = false, I extends ComponentInjectOptions = {}, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, TypeRefs extends Data = {}, TypeEl extends Element = any, Provide extends ComponentProvideOptions = ComponentProvideOptions, PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>, PublicP = UnwrapMixinsType<PublicMixin, 'P'> & EnsureNonVoid<P>, PublicB = UnwrapMixinsType<PublicMixin, 'B'> & EnsureNonVoid<B>, PublicD = UnwrapMixinsType<PublicMixin, 'D'> & EnsureNonVoid<D>, PublicC extends ComputedOptions = UnwrapMixinsType<PublicMixin, 'C'> & EnsureNonVoid<C>, PublicM extends MethodOptions = UnwrapMixinsType<PublicMixin, 'M'> & EnsureNonVoid<M>, PublicDefaults = UnwrapMixinsType<PublicMixin, 'Defaults'> & EnsureNonVoid<Defaults>> = ComponentPublicInstance<PublicP, PublicB, PublicD, PublicC, PublicM, E, PublicProps, PublicDefaults, MakeDefaultsOptional, ComponentOptionsBase<P, B, D, C, M, Mixin, Extends, E, string, Defaults, {}, string, S, LC, Directives, Exposed, Provide>, I, S, Exposed, TypeRefs, TypeEl>;
501
+ export type CreateComponentPublicInstanceWithMixins<P = {}, B = {}, D = {}, C extends ComputedOptions = {}, M extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = {}, PublicProps = P, Defaults = {}, MakeDefaultsOptional extends boolean = false, I extends ComponentInjectOptions = {}, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, TypeRefs extends Data = {}, TypeEl = any, Provide extends ComponentProvideOptions = ComponentProvideOptions, PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>, PublicP = UnwrapMixinsType<PublicMixin, 'P'> & EnsureNonVoid<P>, PublicB = UnwrapMixinsType<PublicMixin, 'B'> & EnsureNonVoid<B>, PublicD = UnwrapMixinsType<PublicMixin, 'D'> & EnsureNonVoid<D>, PublicC extends ComputedOptions = UnwrapMixinsType<PublicMixin, 'C'> & EnsureNonVoid<C>, PublicM extends MethodOptions = UnwrapMixinsType<PublicMixin, 'M'> & EnsureNonVoid<M>, PublicDefaults = UnwrapMixinsType<PublicMixin, 'Defaults'> & EnsureNonVoid<Defaults>> = ComponentPublicInstance<PublicP, PublicB, PublicD, PublicC, PublicM, E, PublicProps, PublicDefaults, MakeDefaultsOptional, ComponentOptionsBase<P, B, D, C, M, Mixin, Extends, E, string, Defaults, {}, string, S, LC, Directives, Exposed, Provide>, I, S, Exposed, TypeRefs, TypeEl>;
502
502
  type ExposedKeys<T, Exposed extends string & keyof T> = '' extends Exposed ? T : Pick<T, Exposed>;
503
503
  export type ComponentPublicInstance<P = {}, // props type extracted from props option
504
504
  B = {}, // raw bindings returned from setup()
505
505
  D = {}, // return from data()
506
- C extends ComputedOptions = {}, M extends MethodOptions = {}, E extends EmitsOptions = {}, PublicProps = {}, Defaults = {}, MakeDefaultsOptional extends boolean = false, Options = ComponentOptionsBase<any, any, any, any, any, any, any, any, any>, I extends ComponentInjectOptions = {}, S extends SlotsType = {}, Exposed extends string = '', TypeRefs extends Data = {}, TypeEl extends Element = any> = {
506
+ C extends ComputedOptions = {}, M extends MethodOptions = {}, E extends EmitsOptions = {}, PublicProps = {}, Defaults = {}, MakeDefaultsOptional extends boolean = false, Options = ComponentOptionsBase<any, any, any, any, any, any, any, any, any>, I extends ComponentInjectOptions = {}, S extends SlotsType = {}, Exposed extends string = '', TypeRefs extends Data = {}, TypeEl = any> = {
507
507
  $: ComponentInternalInstance;
508
508
  $data: D;
509
509
  $props: MakeDefaultsOptional extends true ? Partial<Defaults> & Omit<Prettify<P> & PublicProps, keyof Defaults> : Prettify<P> & PublicProps;
@@ -1004,7 +1004,7 @@ export declare function hasInjectionContext(): boolean;
1004
1004
 
1005
1005
  export type PublicProps = VNodeProps & AllowedComponentProps & ComponentCustomProps;
1006
1006
  type ResolveProps<PropsOrPropOptions, E extends EmitsOptions> = Readonly<PropsOrPropOptions extends ComponentPropsOptions ? ExtractPropTypes<PropsOrPropOptions> : PropsOrPropOptions> & ({} extends E ? {} : EmitsToProps<E>);
1007
- export type DefineComponent<PropsOrPropOptions = {}, RawBindings = {}, D = {}, C extends ComputedOptions = ComputedOptions, M extends MethodOptions = MethodOptions, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = {}, EE extends string = string, PP = PublicProps, Props = ResolveProps<PropsOrPropOptions, E>, Defaults = ExtractDefaultPropTypes<PropsOrPropOptions>, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, MakeDefaultsOptional extends boolean = true, TypeRefs extends Record<string, unknown> = {}, TypeEl extends Element = any> = ComponentPublicInstanceConstructor<CreateComponentPublicInstanceWithMixins<Props, RawBindings, D, C, M, Mixin, Extends, E, PP, Defaults, MakeDefaultsOptional, {}, S, LC & GlobalComponents, Directives & GlobalDirectives, Exposed, TypeRefs, TypeEl>> & ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE, Defaults, {}, string, S, LC & GlobalComponents, Directives & GlobalDirectives, Exposed, Provide> & PP;
1007
+ export type DefineComponent<PropsOrPropOptions = {}, RawBindings = {}, D = {}, C extends ComputedOptions = ComputedOptions, M extends MethodOptions = MethodOptions, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, E extends EmitsOptions = {}, EE extends string = string, PP = PublicProps, Props = ResolveProps<PropsOrPropOptions, E>, Defaults = ExtractDefaultPropTypes<PropsOrPropOptions>, S extends SlotsType = {}, LC extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, MakeDefaultsOptional extends boolean = true, TypeRefs extends Record<string, unknown> = {}, TypeEl = any> = ComponentPublicInstanceConstructor<CreateComponentPublicInstanceWithMixins<Props, RawBindings, D, C, M, Mixin, Extends, E, PP, Defaults, MakeDefaultsOptional, {}, S, LC & GlobalComponents, Directives & GlobalDirectives, Exposed, TypeRefs, TypeEl>> & ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE, Defaults, {}, string, S, LC & GlobalComponents, Directives & GlobalDirectives, Exposed, Provide> & PP;
1008
1008
  export type DefineSetupFnComponent<P extends Record<string, any>, E extends EmitsOptions = {}, S extends SlotsType = SlotsType, Props = P & EmitsToProps<E>, PP = PublicProps> = new (props: Props & PP) => CreateComponentPublicInstanceWithMixins<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, E, PP, {}, false, {}, S>;
1009
1009
  type ToResolvedProps<Props, Emits extends EmitsOptions> = Readonly<Props> & Readonly<EmitsToProps<Emits>>;
1010
1010
  export declare function defineComponent<Props extends Record<string, any>, E extends EmitsOptions = {}, EE extends string = string, S extends SlotsType = {}>(setup: (props: Props, ctx: SetupContext<E, S>) => RenderFunction | Promise<RenderFunction>, options?: Pick<ComponentOptions, 'name' | 'inheritAttrs'> & {
@@ -1019,7 +1019,7 @@ export declare function defineComponent<Props extends Record<string, any>, E ext
1019
1019
  }): DefineSetupFnComponent<Props, E, S>;
1020
1020
  export declare function defineComponent<TypeProps, RuntimePropsOptions extends ComponentObjectPropsOptions = ComponentObjectPropsOptions, RuntimePropsKeys extends string = string, TypeEmits extends ComponentTypeEmits = {}, RuntimeEmitsOptions extends EmitsOptions = {}, RuntimeEmitsKeys extends string = string, Data = {}, SetupBindings = {}, Computed extends ComputedOptions = {}, Methods extends MethodOptions = {}, Mixin extends ComponentOptionsMixin = ComponentOptionsMixin, Extends extends ComponentOptionsMixin = ComponentOptionsMixin, InjectOptions extends ComponentInjectOptions = {}, InjectKeys extends string = string, Slots extends SlotsType = {}, LocalComponents extends Record<string, Component> = {}, Directives extends Record<string, Directive> = {}, Exposed extends string = string, Provide extends ComponentProvideOptions = ComponentProvideOptions, ResolvedEmits extends EmitsOptions = {} extends RuntimeEmitsOptions ? TypeEmitsToOptions<TypeEmits> : RuntimeEmitsOptions, InferredProps = IsKeyValues<TypeProps> extends true ? TypeProps : string extends RuntimePropsKeys ? ComponentObjectPropsOptions extends RuntimePropsOptions ? {} : ExtractPropTypes<RuntimePropsOptions> : {
1021
1021
  [key in RuntimePropsKeys]?: any;
1022
- }, TypeRefs extends Record<string, unknown> = {}, TypeEl extends Element = any>(options: {
1022
+ }, TypeRefs extends Record<string, unknown> = {}, TypeEl = any>(options: {
1023
1023
  props?: (RuntimePropsOptions & ThisType<void>) | RuntimePropsKeys[];
1024
1024
  /**
1025
1025
  * @private for language-tools use only
@@ -1717,7 +1717,7 @@ export declare function toHandlers(obj: Record<string, any>, preserveCaseIfNeces
1717
1717
  * Compiler runtime helper for rendering `<slot/>`
1718
1718
  * @private
1719
1719
  */
1720
- export declare function renderSlot(slots: Slots, name: string, props?: Data, fallback?: () => VNodeArrayChildren, noSlotted?: boolean): VNode;
1720
+ export declare function renderSlot(slots: Slots, name: string, props?: Data | null, fallback?: () => VNodeArrayChildren, noSlotted?: boolean, branchKey?: PropertyKey): VNode;
1721
1721
 
1722
1722
  type SSRSlot = (...args: any[]) => VNode[] | undefined;
1723
1723
  interface CompiledSlotDescriptor {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.39
2
+ * @vue/runtime-core v3.5.41
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -331,7 +331,9 @@ function queuePostFlushCb(cb) {
331
331
  cb.flags |= 1;
332
332
  }
333
333
  } else {
334
- pendingPostFlushCbs.push(...cb);
334
+ for (let i = 0; i < cb.length; i++) {
335
+ pendingPostFlushCbs.push(cb[i]);
336
+ }
335
337
  }
336
338
  queueFlush();
337
339
  }
@@ -367,7 +369,9 @@ function flushPostFlushCbs(seen) {
367
369
  );
368
370
  pendingPostFlushCbs.length = 0;
369
371
  if (activePostFlushCbs) {
370
- activePostFlushCbs.push(...deduped);
372
+ for (let i = 0; i < deduped.length; i++) {
373
+ activePostFlushCbs.push(deduped[i]);
374
+ }
371
375
  return;
372
376
  }
373
377
  activePostFlushCbs = deduped;
@@ -697,10 +701,12 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
697
701
  setBlockTracking(-1);
698
702
  }
699
703
  const prevInstance = setCurrentRenderingInstance(ctx);
704
+ const prevStackSize = blockStack.length;
700
705
  let res;
701
706
  try {
702
707
  res = fn(...args);
703
708
  } finally {
709
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
704
710
  setCurrentRenderingInstance(prevInstance);
705
711
  if (renderFnWithContext._d) {
706
712
  setBlockTracking(1);
@@ -1655,7 +1661,11 @@ function getInnerChild$1(vnode) {
1655
1661
  function setTransitionHooks(vnode, hooks) {
1656
1662
  if (vnode.shapeFlag & 6 && vnode.component) {
1657
1663
  vnode.transition = hooks;
1658
- setTransitionHooks(vnode.component.subTree, hooks);
1664
+ const subTree = vnode.component.subTree;
1665
+ setTransitionHooks(
1666
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1667
+ hooks
1668
+ );
1659
1669
  } else if (vnode.shapeFlag & 128) {
1660
1670
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1661
1671
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -1815,12 +1825,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1815
1825
  }
1816
1826
  }
1817
1827
  if (isFunction(ref)) {
1818
- pauseTracking();
1819
- try {
1820
- callWithErrorHandling(ref, owner, 12, [value, refs]);
1821
- } finally {
1822
- resetTracking();
1823
- }
1828
+ callWithErrorHandling(ref, owner, 12, [value, refs]);
1824
1829
  } else {
1825
1830
  const _isString = isString(ref);
1826
1831
  const _isRef = isRef(ref);
@@ -2192,6 +2197,7 @@ Server rendered element contains more child nodes than client vdom.`
2192
2197
  if (props) {
2193
2198
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || hasDynamicProps || !optimized || patchFlag & (16 | 32)) {
2194
2199
  const isCustomElement = el.tagName.includes("-");
2200
+ const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
2195
2201
  for (const key in props) {
2196
2202
  if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks
2197
2203
  // as it could have mutated the DOM in any possible way
@@ -2200,7 +2206,10 @@ Server rendered element contains more child nodes than client vdom.`
2200
2206
  }
2201
2207
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
2202
2208
  key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
2203
- patchProp(el, key, null, props[key], void 0, parentComponent);
2209
+ if (isUnchangedResourceProp(el, key, props[key])) {
2210
+ continue;
2211
+ }
2212
+ patchProp(el, key, null, props[key], namespace, parentComponent);
2204
2213
  }
2205
2214
  }
2206
2215
  } else if (props.onClick) {
@@ -2393,6 +2402,13 @@ Server rendered element contains fewer child nodes than client vdom.`
2393
2402
  };
2394
2403
  return [hydrate, hydrateNode];
2395
2404
  }
2405
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
2406
+ function isUnchangedResourceProp(el, key, clientValue) {
2407
+ if (!resourceProps.has(key)) {
2408
+ return false;
2409
+ }
2410
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
2411
+ }
2396
2412
  function propHasMismatch(el, key, clientValue, vnode, instance) {
2397
2413
  let mismatchType;
2398
2414
  let mismatchKey;
@@ -2430,7 +2446,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2430
2446
  mismatchKey = "style";
2431
2447
  }
2432
2448
  } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
2433
- if (isBooleanAttr(key)) {
2449
+ if (key === "hidden") {
2450
+ actual = normalizeHiddenValue(el.getAttribute(key));
2451
+ expected = normalizeHiddenValue(clientValue);
2452
+ } else if (isBooleanAttr(key)) {
2434
2453
  actual = el.hasAttribute(key);
2435
2454
  expected = includeBooleanAttr(clientValue);
2436
2455
  } else if (clientValue == null) {
@@ -2466,6 +2485,15 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2466
2485
  }
2467
2486
  return false;
2468
2487
  }
2488
+ function normalizeHiddenValue(value) {
2489
+ if (!isRenderableAttrValue(value)) {
2490
+ return false;
2491
+ }
2492
+ if (isString(value)) {
2493
+ return value.toLowerCase() === "until-found" ? "until-found" : "";
2494
+ }
2495
+ return includeBooleanAttr(value) ? "" : false;
2496
+ }
2469
2497
  function toClassSet(str) {
2470
2498
  return new Set(str.trim().split(/\s+/));
2471
2499
  }
@@ -2714,6 +2742,7 @@ function defineAsyncComponent(source) {
2714
2742
  name: "AsyncComponentWrapper",
2715
2743
  __asyncLoader: load,
2716
2744
  __asyncHydrate(el, instance, hydrate) {
2745
+ const wasConnected = el.isConnected;
2717
2746
  let patched = false;
2718
2747
  (instance.bu || (instance.bu = [])).push(() => patched = true);
2719
2748
  const performHydrate = () => {
@@ -2725,6 +2754,7 @@ function defineAsyncComponent(source) {
2725
2754
  }
2726
2755
  return;
2727
2756
  }
2757
+ if (!el.parentNode || wasConnected && !el.isConnected) return;
2728
2758
  hydrate();
2729
2759
  };
2730
2760
  const doHydrate = hydrateStrategy ? () => {
@@ -3283,14 +3313,16 @@ function createSlots(slots, dynamicSlots) {
3283
3313
  return slots;
3284
3314
  }
3285
3315
 
3286
- function renderSlot(slots, name, props = {}, fallback, noSlotted) {
3316
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
3317
+ if (props == null) props = {};
3287
3318
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3288
- const hasProps = Object.keys(props).length > 0;
3289
- if (name !== "default") props.name = name;
3319
+ const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
3320
+ const hasProps = Object.keys(slotProps).length > 0;
3321
+ if (name !== "default") slotProps.name = name;
3290
3322
  return openBlock(), createBlock(
3291
3323
  Fragment,
3292
3324
  null,
3293
- [createVNode("slot", props, fallback && fallback())],
3325
+ [createVNode("slot", slotProps, fallback && fallback())],
3294
3326
  hasProps ? -2 : 64
3295
3327
  );
3296
3328
  }
@@ -3304,26 +3336,34 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
3304
3336
  if (slot && slot._c) {
3305
3337
  slot._d = false;
3306
3338
  }
3339
+ const prevStackSize = blockStack.length;
3307
3340
  openBlock();
3308
- const validSlotContent = slot && ensureValidVNode(slot(props));
3309
- const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
3310
- // key attached in the `createSlots` helper, respect that
3311
- validSlotContent && validSlotContent.key;
3312
- const rendered = createBlock(
3313
- Fragment,
3314
- {
3315
- key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
3316
- (!validSlotContent && fallback ? "_fb" : "")
3317
- },
3318
- validSlotContent || (fallback ? fallback() : []),
3319
- validSlotContent && slots._ === 1 ? 64 : -2
3320
- );
3341
+ let rendered;
3342
+ try {
3343
+ const validSlotContent = slot && ensureValidVNode(slot(props));
3344
+ const slotKey = props.key || branchKey || // slot content array of a dynamic conditional slot may have a branch
3345
+ // key attached in the `createSlots` helper, respect that
3346
+ validSlotContent && validSlotContent.key;
3347
+ rendered = createBlock(
3348
+ Fragment,
3349
+ {
3350
+ key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
3351
+ (!validSlotContent && fallback ? "_fb" : "")
3352
+ },
3353
+ validSlotContent || (fallback ? fallback() : []),
3354
+ validSlotContent && slots._ === 1 ? 64 : -2
3355
+ );
3356
+ } catch (err) {
3357
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
3358
+ throw err;
3359
+ } finally {
3360
+ if (slot && slot._c) {
3361
+ slot._d = true;
3362
+ }
3363
+ }
3321
3364
  if (!noSlotted && rendered.scopeId) {
3322
3365
  rendered.slotScopeIds = [rendered.scopeId + "-s"];
3323
3366
  }
3324
- if (slot && slot._c) {
3325
- slot._d = true;
3326
- }
3327
3367
  return rendered;
3328
3368
  }
3329
3369
  function ensureValidVNode(vnodes) {
@@ -4702,12 +4742,13 @@ function renderComponentRoot(instance) {
4702
4742
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
4703
4743
  }
4704
4744
  if (vnode.transition) {
4705
- if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) {
4745
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
4746
+ if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(child)) {
4706
4747
  warn$1(
4707
4748
  `Component inside <Transition> renders non-element root node that cannot be animated.`
4708
4749
  );
4709
4750
  }
4710
- setTransitionHooks(root, vnode.transition);
4751
+ setTransitionHooks(child, vnode.transition);
4711
4752
  }
4712
4753
  if (!!(process.env.NODE_ENV !== "production") && setRoot) {
4713
4754
  setRoot(root);
@@ -7393,7 +7434,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7393
7434
  let hasUnresolvedAncestor = false;
7394
7435
  while (parent) {
7395
7436
  if (parent.pendingBranch) {
7396
- parent.effects.push(...effects);
7437
+ for (let i = 0; i < effects.length; i++) {
7438
+ parent.effects.push(effects[i]);
7439
+ }
7397
7440
  hasUnresolvedAncestor = true;
7398
7441
  break;
7399
7442
  }
@@ -7758,6 +7801,14 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7758
7801
  if (!!(process.env.NODE_ENV !== "production") && vnode.key !== vnode.key) {
7759
7802
  warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
7760
7803
  }
7804
+ if (!!(process.env.NODE_ENV !== "production") && props && vnode.shapeFlag & 1) {
7805
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
7806
+ if (overwritingProp && hasContentChildren(vnode.children)) {
7807
+ warn$1(
7808
+ `The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`
7809
+ );
7810
+ }
7811
+ }
7761
7812
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
7762
7813
  !isBlockNode && // has current parent block
7763
7814
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
@@ -7771,6 +7822,11 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7771
7822
  }
7772
7823
  return vnode;
7773
7824
  }
7825
+ function hasContentChildren(children) {
7826
+ if (isString(children)) return children !== "";
7827
+ if (isArray(children)) return children.length > 0;
7828
+ return false;
7829
+ }
7774
7830
  const createVNode = !!(process.env.NODE_ENV !== "production") ? createVNodeWithArgsTransform : _createVNode;
7775
7831
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
7776
7832
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -8221,7 +8277,12 @@ function setupStatefulComponent(instance, isSSR) {
8221
8277
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
8222
8278
  if (isSSR) {
8223
8279
  return setupResult.then((resolvedResult) => {
8224
- handleSetupResult(instance, resolvedResult, isSSR);
8280
+ setInSSRSetupState(true);
8281
+ try {
8282
+ handleSetupResult(instance, resolvedResult, isSSR);
8283
+ } finally {
8284
+ setInSSRSetupState(false);
8285
+ }
8225
8286
  }).catch((e) => {
8226
8287
  handleError(e, instance, 0);
8227
8288
  });
@@ -8699,7 +8760,7 @@ function isMemoSame(cached, memo) {
8699
8760
  return true;
8700
8761
  }
8701
8762
 
8702
- const version = "3.5.39";
8763
+ const version = "3.5.41";
8703
8764
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
8704
8765
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8705
8766
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/runtime-core",
3
- "version": "3.5.39",
3
+ "version": "3.5.41",
4
4
  "description": "@vue/runtime-core",
5
5
  "main": "index.js",
6
6
  "module": "dist/runtime-core.esm-bundler.js",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
48
48
  "dependencies": {
49
- "@vue/shared": "3.5.39",
50
- "@vue/reactivity": "3.5.39"
49
+ "@vue/shared": "3.5.41",
50
+ "@vue/reactivity": "3.5.41"
51
51
  }
52
52
  }