@vue/runtime-core 3.5.27 → 3.5.28

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.27
2
+ * @vue/runtime-core v3.5.28
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -1203,7 +1203,22 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
1203
1203
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
1204
1204
  o: { nextSibling, parentNode, querySelector, insert, createText }
1205
1205
  }, hydrateChildren) {
1206
- function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
1206
+ function hydrateAnchor(target2, targetNode) {
1207
+ let targetAnchor = targetNode;
1208
+ while (targetAnchor) {
1209
+ if (targetAnchor && targetAnchor.nodeType === 8) {
1210
+ if (targetAnchor.data === "teleport start anchor") {
1211
+ vnode.targetStart = targetAnchor;
1212
+ } else if (targetAnchor.data === "teleport anchor") {
1213
+ vnode.targetAnchor = targetAnchor;
1214
+ target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
1215
+ break;
1216
+ }
1217
+ }
1218
+ targetAnchor = nextSibling(targetAnchor);
1219
+ }
1220
+ }
1221
+ function hydrateDisabledTeleport(node2, vnode2) {
1207
1222
  vnode2.anchor = hydrateChildren(
1208
1223
  nextSibling(node2),
1209
1224
  vnode2,
@@ -1213,8 +1228,6 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
1213
1228
  slotScopeIds,
1214
1229
  optimized
1215
1230
  );
1216
- vnode2.targetStart = targetStart;
1217
- vnode2.targetAnchor = targetAnchor;
1218
1231
  }
1219
1232
  const target = vnode.target = resolveTarget(
1220
1233
  vnode.props,
@@ -1225,27 +1238,22 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
1225
1238
  const targetNode = target._lpa || target.firstChild;
1226
1239
  if (vnode.shapeFlag & 16) {
1227
1240
  if (disabled) {
1228
- hydrateDisabledTeleport(
1229
- node,
1230
- vnode,
1231
- targetNode,
1232
- targetNode && nextSibling(targetNode)
1233
- );
1241
+ hydrateDisabledTeleport(node, vnode);
1242
+ hydrateAnchor(target, targetNode);
1243
+ if (!vnode.targetAnchor) {
1244
+ prepareAnchor(
1245
+ target,
1246
+ vnode,
1247
+ createText,
1248
+ insert,
1249
+ // if target is the same as the main view, insert anchors before current node
1250
+ // to avoid hydrating mismatch
1251
+ parentNode(node) === target ? node : null
1252
+ );
1253
+ }
1234
1254
  } else {
1235
1255
  vnode.anchor = nextSibling(node);
1236
- let targetAnchor = targetNode;
1237
- while (targetAnchor) {
1238
- if (targetAnchor && targetAnchor.nodeType === 8) {
1239
- if (targetAnchor.data === "teleport start anchor") {
1240
- vnode.targetStart = targetAnchor;
1241
- } else if (targetAnchor.data === "teleport anchor") {
1242
- vnode.targetAnchor = targetAnchor;
1243
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
1244
- break;
1245
- }
1246
- }
1247
- targetAnchor = nextSibling(targetAnchor);
1248
- }
1256
+ hydrateAnchor(target, targetNode);
1249
1257
  if (!vnode.targetAnchor) {
1250
1258
  prepareAnchor(target, vnode, createText, insert);
1251
1259
  }
@@ -1263,7 +1271,9 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
1263
1271
  updateCssVars(vnode, disabled);
1264
1272
  } else if (disabled) {
1265
1273
  if (vnode.shapeFlag & 16) {
1266
- hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
1274
+ hydrateDisabledTeleport(node, vnode);
1275
+ vnode.targetStart = node;
1276
+ vnode.targetAnchor = nextSibling(node);
1267
1277
  }
1268
1278
  }
1269
1279
  return vnode.anchor && nextSibling(vnode.anchor);
@@ -1287,13 +1297,13 @@ function updateCssVars(vnode, isDisabled) {
1287
1297
  ctx.ut();
1288
1298
  }
1289
1299
  }
1290
- function prepareAnchor(target, vnode, createText, insert) {
1300
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
1291
1301
  const targetStart = vnode.targetStart = createText("");
1292
1302
  const targetAnchor = vnode.targetAnchor = createText("");
1293
1303
  targetStart[TeleportEndKey] = targetAnchor;
1294
1304
  if (target) {
1295
- insert(targetStart, target);
1296
- insert(targetAnchor, target);
1305
+ insert(targetStart, target, anchor);
1306
+ insert(targetAnchor, target, anchor);
1297
1307
  }
1298
1308
  return targetAnchor;
1299
1309
  }
@@ -1528,7 +1538,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1528
1538
  }
1529
1539
  }
1530
1540
  let called = false;
1531
- const done = el[enterCbKey] = (cancelled) => {
1541
+ el[enterCbKey] = (cancelled) => {
1532
1542
  if (called) return;
1533
1543
  called = true;
1534
1544
  if (cancelled) {
@@ -1541,6 +1551,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1541
1551
  }
1542
1552
  el[enterCbKey] = void 0;
1543
1553
  };
1554
+ const done = el[enterCbKey].bind(null, false);
1544
1555
  if (hook) {
1545
1556
  callAsyncHook(hook, [el, done]);
1546
1557
  } else {
@@ -1560,7 +1571,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1560
1571
  }
1561
1572
  callHook(onBeforeLeave, [el]);
1562
1573
  let called = false;
1563
- const done = el[leaveCbKey] = (cancelled) => {
1574
+ el[leaveCbKey] = (cancelled) => {
1564
1575
  if (called) return;
1565
1576
  called = true;
1566
1577
  remove();
@@ -1574,6 +1585,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1574
1585
  delete leavingVNodesCache[key2];
1575
1586
  }
1576
1587
  };
1588
+ const done = el[leaveCbKey].bind(null, false);
1577
1589
  leavingVNodesCache[key2] = vnode;
1578
1590
  if (onLeave) {
1579
1591
  callAsyncHook(onLeave, [el, done]);
@@ -1686,8 +1698,7 @@ function useTemplateRef(key) {
1686
1698
  const r = reactivity.shallowRef(null);
1687
1699
  if (i) {
1688
1700
  const refs = i.refs === shared.EMPTY_OBJ ? i.refs = {} : i.refs;
1689
- let desc;
1690
- if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
1701
+ if (isTemplateRefKey(refs, key)) {
1691
1702
  warn$1(`useTemplateRef('${key}') already exists.`);
1692
1703
  } else {
1693
1704
  Object.defineProperty(refs, key, {
@@ -1707,6 +1718,10 @@ function useTemplateRef(key) {
1707
1718
  }
1708
1719
  return ret;
1709
1720
  }
1721
+ function isTemplateRefKey(refs, key) {
1722
+ let desc;
1723
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
1724
+ }
1710
1725
 
1711
1726
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
1712
1727
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -1752,10 +1767,19 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1752
1767
  return false;
1753
1768
  }
1754
1769
  }
1770
+ if (isTemplateRefKey(refs, key)) {
1771
+ return false;
1772
+ }
1755
1773
  return shared.hasOwn(rawSetupState, key);
1756
1774
  };
1757
- const canSetRef = (ref2) => {
1758
- return !knownTemplateRefs.has(ref2);
1775
+ const canSetRef = (ref2, key) => {
1776
+ if (knownTemplateRefs.has(ref2)) {
1777
+ return false;
1778
+ }
1779
+ if (key && isTemplateRefKey(refs, key)) {
1780
+ return false;
1781
+ }
1782
+ return true;
1759
1783
  };
1760
1784
  if (oldRef != null && oldRef !== ref) {
1761
1785
  invalidatePendingSetRef(oldRawRef);
@@ -1765,10 +1789,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1765
1789
  setupState[oldRef] = null;
1766
1790
  }
1767
1791
  } else if (reactivity.isRef(oldRef)) {
1768
- if (canSetRef(oldRef)) {
1792
+ const oldRawRefAtom = oldRawRef;
1793
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
1769
1794
  oldRef.value = null;
1770
1795
  }
1771
- const oldRawRefAtom = oldRawRef;
1772
1796
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
1773
1797
  }
1774
1798
  }
@@ -1792,7 +1816,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1792
1816
  }
1793
1817
  } else {
1794
1818
  const newVal = [refValue];
1795
- if (canSetRef(ref)) {
1819
+ if (canSetRef(ref, rawRef.k)) {
1796
1820
  ref.value = newVal;
1797
1821
  }
1798
1822
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -1807,7 +1831,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1807
1831
  setupState[ref] = value;
1808
1832
  }
1809
1833
  } else if (_isRef) {
1810
- if (canSetRef(ref)) {
1834
+ if (canSetRef(ref, rawRef.k)) {
1811
1835
  ref.value = value;
1812
1836
  }
1813
1837
  if (rawRef.k) refs[rawRef.k] = value;
@@ -4668,7 +4692,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
4668
4692
  const dynamicProps = nextVNode.dynamicProps;
4669
4693
  for (let i = 0; i < dynamicProps.length; i++) {
4670
4694
  const key = dynamicProps[i];
4671
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
4695
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
4672
4696
  return true;
4673
4697
  }
4674
4698
  }
@@ -4699,12 +4723,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
4699
4723
  }
4700
4724
  for (let i = 0; i < nextKeys.length; i++) {
4701
4725
  const key = nextKeys[i];
4702
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
4726
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
4703
4727
  return true;
4704
4728
  }
4705
4729
  }
4706
4730
  return false;
4707
4731
  }
4732
+ function hasPropValueChanged(nextProps, prevProps, key) {
4733
+ const nextProp = nextProps[key];
4734
+ const prevProp = prevProps[key];
4735
+ if (key === "style" && shared.isObject(nextProp) && shared.isObject(prevProp)) {
4736
+ return !shared.looseEqual(nextProp, prevProp);
4737
+ }
4738
+ return nextProp !== prevProp;
4739
+ }
4708
4740
  function updateHOCHostEl({ vnode, parent }, el) {
4709
4741
  while (parent) {
4710
4742
  const root = parent.subTree;
@@ -5408,15 +5440,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5408
5440
  } else {
5409
5441
  const el = n2.el = n1.el;
5410
5442
  if (n2.children !== n1.children) {
5411
- if (isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
5412
- const childNodes = container.childNodes;
5413
- const newChild = hostCreateText(n2.children);
5414
- const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
5415
- hostInsert(newChild, container, oldChild);
5416
- hostRemove(oldChild);
5417
- } else {
5418
- hostSetText(el, n2.children);
5419
- }
5443
+ hostSetText(el, n2.children);
5420
5444
  }
5421
5445
  }
5422
5446
  };
@@ -5492,7 +5516,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5492
5516
  optimized
5493
5517
  );
5494
5518
  } else {
5495
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
5519
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
5496
5520
  try {
5497
5521
  if (customElement) {
5498
5522
  customElement._beginPatch();
@@ -5974,8 +5998,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5974
5998
  hydrateSubTree();
5975
5999
  }
5976
6000
  } else {
5977
- if (root.ce && // @ts-expect-error _def is private
5978
- root.ce._def.shadowRoot !== false) {
6001
+ if (root.ce && root.ce._hasShadowRoot()) {
5979
6002
  root.ce._injectChildStyle(type);
5980
6003
  }
5981
6004
  {
@@ -6030,9 +6053,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6030
6053
  updateComponentPreRender(instance, next, optimized);
6031
6054
  }
6032
6055
  nonHydratedAsyncRoot.asyncDep.then(() => {
6033
- if (!instance.isUnmounted) {
6034
- componentUpdateFn();
6035
- }
6056
+ queuePostRenderEffect(() => {
6057
+ if (!instance.isUnmounted) update();
6058
+ }, parentSuspense);
6036
6059
  });
6037
6060
  return;
6038
6061
  }
@@ -6729,12 +6752,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
6729
6752
  traverseStaticChildren(c1, c2);
6730
6753
  }
6731
6754
  if (c2.type === Text) {
6732
- if (c2.patchFlag !== -1) {
6733
- c2.el = c1.el;
6734
- } else {
6735
- c2.__elIndex = i + // take fragment start anchor into account
6736
- (n1.type === Fragment ? 1 : 0);
6755
+ if (c2.patchFlag === -1) {
6756
+ c2 = ch2[i] = cloneIfMounted(c2);
6737
6757
  }
6758
+ c2.el = c1.el;
6738
6759
  }
6739
6760
  if (c2.type === Comment && !c2.el) {
6740
6761
  c2.el = c1.el;
@@ -8460,7 +8481,7 @@ function isMemoSame(cached, memo) {
8460
8481
  return true;
8461
8482
  }
8462
8483
 
8463
- const version = "3.5.27";
8484
+ const version = "3.5.28";
8464
8485
  const warn = warn$1 ;
8465
8486
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8466
8487
  const devtools = devtools$1 ;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.27
2
+ * @vue/runtime-core v3.5.28
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -750,7 +750,22 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
750
750
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
751
751
  o: { nextSibling, parentNode, querySelector, insert, createText }
752
752
  }, hydrateChildren) {
753
- function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
753
+ function hydrateAnchor(target2, targetNode) {
754
+ let targetAnchor = targetNode;
755
+ while (targetAnchor) {
756
+ if (targetAnchor && targetAnchor.nodeType === 8) {
757
+ if (targetAnchor.data === "teleport start anchor") {
758
+ vnode.targetStart = targetAnchor;
759
+ } else if (targetAnchor.data === "teleport anchor") {
760
+ vnode.targetAnchor = targetAnchor;
761
+ target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
762
+ break;
763
+ }
764
+ }
765
+ targetAnchor = nextSibling(targetAnchor);
766
+ }
767
+ }
768
+ function hydrateDisabledTeleport(node2, vnode2) {
754
769
  vnode2.anchor = hydrateChildren(
755
770
  nextSibling(node2),
756
771
  vnode2,
@@ -760,8 +775,6 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
760
775
  slotScopeIds,
761
776
  optimized
762
777
  );
763
- vnode2.targetStart = targetStart;
764
- vnode2.targetAnchor = targetAnchor;
765
778
  }
766
779
  const target = vnode.target = resolveTarget(
767
780
  vnode.props,
@@ -772,27 +785,22 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
772
785
  const targetNode = target._lpa || target.firstChild;
773
786
  if (vnode.shapeFlag & 16) {
774
787
  if (disabled) {
775
- hydrateDisabledTeleport(
776
- node,
777
- vnode,
778
- targetNode,
779
- targetNode && nextSibling(targetNode)
780
- );
788
+ hydrateDisabledTeleport(node, vnode);
789
+ hydrateAnchor(target, targetNode);
790
+ if (!vnode.targetAnchor) {
791
+ prepareAnchor(
792
+ target,
793
+ vnode,
794
+ createText,
795
+ insert,
796
+ // if target is the same as the main view, insert anchors before current node
797
+ // to avoid hydrating mismatch
798
+ parentNode(node) === target ? node : null
799
+ );
800
+ }
781
801
  } else {
782
802
  vnode.anchor = nextSibling(node);
783
- let targetAnchor = targetNode;
784
- while (targetAnchor) {
785
- if (targetAnchor && targetAnchor.nodeType === 8) {
786
- if (targetAnchor.data === "teleport start anchor") {
787
- vnode.targetStart = targetAnchor;
788
- } else if (targetAnchor.data === "teleport anchor") {
789
- vnode.targetAnchor = targetAnchor;
790
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
791
- break;
792
- }
793
- }
794
- targetAnchor = nextSibling(targetAnchor);
795
- }
803
+ hydrateAnchor(target, targetNode);
796
804
  if (!vnode.targetAnchor) {
797
805
  prepareAnchor(target, vnode, createText, insert);
798
806
  }
@@ -810,7 +818,9 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
810
818
  updateCssVars(vnode, disabled);
811
819
  } else if (disabled) {
812
820
  if (vnode.shapeFlag & 16) {
813
- hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
821
+ hydrateDisabledTeleport(node, vnode);
822
+ vnode.targetStart = node;
823
+ vnode.targetAnchor = nextSibling(node);
814
824
  }
815
825
  }
816
826
  return vnode.anchor && nextSibling(vnode.anchor);
@@ -834,13 +844,13 @@ function updateCssVars(vnode, isDisabled) {
834
844
  ctx.ut();
835
845
  }
836
846
  }
837
- function prepareAnchor(target, vnode, createText, insert) {
847
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
838
848
  const targetStart = vnode.targetStart = createText("");
839
849
  const targetAnchor = vnode.targetAnchor = createText("");
840
850
  targetStart[TeleportEndKey] = targetAnchor;
841
851
  if (target) {
842
- insert(targetStart, target);
843
- insert(targetAnchor, target);
852
+ insert(targetStart, target, anchor);
853
+ insert(targetAnchor, target, anchor);
844
854
  }
845
855
  return targetAnchor;
846
856
  }
@@ -1065,7 +1075,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1065
1075
  }
1066
1076
  }
1067
1077
  let called = false;
1068
- const done = el[enterCbKey] = (cancelled) => {
1078
+ el[enterCbKey] = (cancelled) => {
1069
1079
  if (called) return;
1070
1080
  called = true;
1071
1081
  if (cancelled) {
@@ -1078,6 +1088,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1078
1088
  }
1079
1089
  el[enterCbKey] = void 0;
1080
1090
  };
1091
+ const done = el[enterCbKey].bind(null, false);
1081
1092
  if (hook) {
1082
1093
  callAsyncHook(hook, [el, done]);
1083
1094
  } else {
@@ -1097,7 +1108,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1097
1108
  }
1098
1109
  callHook(onBeforeLeave, [el]);
1099
1110
  let called = false;
1100
- const done = el[leaveCbKey] = (cancelled) => {
1111
+ el[leaveCbKey] = (cancelled) => {
1101
1112
  if (called) return;
1102
1113
  called = true;
1103
1114
  remove();
@@ -1111,6 +1122,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1111
1122
  delete leavingVNodesCache[key2];
1112
1123
  }
1113
1124
  };
1125
+ const done = el[leaveCbKey].bind(null, false);
1114
1126
  leavingVNodesCache[key2] = vnode;
1115
1127
  if (onLeave) {
1116
1128
  callAsyncHook(onLeave, [el, done]);
@@ -1229,6 +1241,10 @@ function useTemplateRef(key) {
1229
1241
  const ret = r;
1230
1242
  return ret;
1231
1243
  }
1244
+ function isTemplateRefKey(refs, key) {
1245
+ let desc;
1246
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
1247
+ }
1232
1248
 
1233
1249
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
1234
1250
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -1258,8 +1274,17 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1258
1274
  const setupState = owner.setupState;
1259
1275
  const rawSetupState = reactivity.toRaw(setupState);
1260
1276
  const canSetSetupRef = setupState === shared.EMPTY_OBJ ? shared.NO : (key) => {
1277
+ if (isTemplateRefKey(refs, key)) {
1278
+ return false;
1279
+ }
1261
1280
  return shared.hasOwn(rawSetupState, key);
1262
1281
  };
1282
+ const canSetRef = (ref2, key) => {
1283
+ if (key && isTemplateRefKey(refs, key)) {
1284
+ return false;
1285
+ }
1286
+ return true;
1287
+ };
1263
1288
  if (oldRef != null && oldRef !== ref) {
1264
1289
  invalidatePendingSetRef(oldRawRef);
1265
1290
  if (shared.isString(oldRef)) {
@@ -1268,10 +1293,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1268
1293
  setupState[oldRef] = null;
1269
1294
  }
1270
1295
  } else if (reactivity.isRef(oldRef)) {
1271
- {
1296
+ const oldRawRefAtom = oldRawRef;
1297
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
1272
1298
  oldRef.value = null;
1273
1299
  }
1274
- const oldRawRefAtom = oldRawRef;
1275
1300
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
1276
1301
  }
1277
1302
  }
@@ -1283,7 +1308,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1283
1308
  if (_isString || _isRef) {
1284
1309
  const doSet = () => {
1285
1310
  if (rawRef.f) {
1286
- const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value ;
1311
+ const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef() || !rawRef.k ? ref.value : refs[rawRef.k];
1287
1312
  if (isUnmount) {
1288
1313
  shared.isArray(existing) && shared.remove(existing, refValue);
1289
1314
  } else {
@@ -1295,7 +1320,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1295
1320
  }
1296
1321
  } else {
1297
1322
  const newVal = [refValue];
1298
- {
1323
+ if (canSetRef(ref, rawRef.k)) {
1299
1324
  ref.value = newVal;
1300
1325
  }
1301
1326
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -1310,7 +1335,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1310
1335
  setupState[ref] = value;
1311
1336
  }
1312
1337
  } else if (_isRef) {
1313
- {
1338
+ if (canSetRef(ref, rawRef.k)) {
1314
1339
  ref.value = value;
1315
1340
  }
1316
1341
  if (rawRef.k) refs[rawRef.k] = value;
@@ -3527,7 +3552,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
3527
3552
  const dynamicProps = nextVNode.dynamicProps;
3528
3553
  for (let i = 0; i < dynamicProps.length; i++) {
3529
3554
  const key = dynamicProps[i];
3530
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
3555
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
3531
3556
  return true;
3532
3557
  }
3533
3558
  }
@@ -3558,12 +3583,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
3558
3583
  }
3559
3584
  for (let i = 0; i < nextKeys.length; i++) {
3560
3585
  const key = nextKeys[i];
3561
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
3586
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
3562
3587
  return true;
3563
3588
  }
3564
3589
  }
3565
3590
  return false;
3566
3591
  }
3592
+ function hasPropValueChanged(nextProps, prevProps, key) {
3593
+ const nextProp = nextProps[key];
3594
+ const prevProp = prevProps[key];
3595
+ if (key === "style" && shared.isObject(nextProp) && shared.isObject(prevProp)) {
3596
+ return !shared.looseEqual(nextProp, prevProp);
3597
+ }
3598
+ return nextProp !== prevProp;
3599
+ }
3567
3600
  function updateHOCHostEl({ vnode, parent }, el) {
3568
3601
  while (parent) {
3569
3602
  const root = parent.subTree;
@@ -4070,9 +4103,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4070
4103
  } else {
4071
4104
  const el = n2.el = n1.el;
4072
4105
  if (n2.children !== n1.children) {
4073
- {
4074
- hostSetText(el, n2.children);
4075
- }
4106
+ hostSetText(el, n2.children);
4076
4107
  }
4077
4108
  }
4078
4109
  };
@@ -4133,7 +4164,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4133
4164
  optimized
4134
4165
  );
4135
4166
  } else {
4136
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
4167
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
4137
4168
  try {
4138
4169
  if (customElement) {
4139
4170
  customElement._beginPatch();
@@ -4564,8 +4595,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4564
4595
  hydrateSubTree();
4565
4596
  }
4566
4597
  } else {
4567
- if (root.ce && // @ts-expect-error _def is private
4568
- root.ce._def.shadowRoot !== false) {
4598
+ if (root.ce && root.ce._hasShadowRoot()) {
4569
4599
  root.ce._injectChildStyle(type);
4570
4600
  }
4571
4601
  const subTree = instance.subTree = renderComponentRoot(instance);
@@ -4605,9 +4635,9 @@ function baseCreateRenderer(options, createHydrationFns) {
4605
4635
  updateComponentPreRender(instance, next, optimized);
4606
4636
  }
4607
4637
  nonHydratedAsyncRoot.asyncDep.then(() => {
4608
- if (!instance.isUnmounted) {
4609
- componentUpdateFn();
4610
- }
4638
+ queuePostRenderEffect(() => {
4639
+ if (!instance.isUnmounted) update();
4640
+ }, parentSuspense);
4611
4641
  });
4612
4642
  return;
4613
4643
  }
@@ -5258,12 +5288,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
5258
5288
  traverseStaticChildren(c1, c2);
5259
5289
  }
5260
5290
  if (c2.type === Text) {
5261
- if (c2.patchFlag !== -1) {
5262
- c2.el = c1.el;
5263
- } else {
5264
- c2.__elIndex = i + // take fragment start anchor into account
5265
- (n1.type === Fragment ? 1 : 0);
5291
+ if (c2.patchFlag === -1) {
5292
+ c2 = ch2[i] = cloneIfMounted(c2);
5266
5293
  }
5294
+ c2.el = c1.el;
5267
5295
  }
5268
5296
  if (c2.type === Comment && !c2.el) {
5269
5297
  c2.el = c1.el;
@@ -6600,7 +6628,7 @@ function isMemoSame(cached, memo) {
6600
6628
  return true;
6601
6629
  }
6602
6630
 
6603
- const version = "3.5.27";
6631
+ const version = "3.5.28";
6604
6632
  const warn$1 = shared.NOOP;
6605
6633
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
6606
6634
  const devtools = void 0;
@@ -1,6 +1,6 @@
1
1
  import { computed as computed$1, Ref, OnCleanup, WatchStopHandle, ShallowUnwrapRef, UnwrapNestedRefs, DebuggerEvent, ComputedGetter, WritableComputedOptions, WatchCallback, ReactiveEffect, DebuggerOptions, WatchSource, WatchHandle, ReactiveMarker, WatchEffect, ShallowRef, WatchErrorCodes, reactive } from '@vue/reactivity';
2
2
  export { ComputedGetter, ComputedRef, ComputedSetter, CustomRefFactory, DebuggerEvent, DebuggerEventExtraInfo, DebuggerOptions, DeepReadonly, EffectScheduler, EffectScope, MaybeRef, MaybeRefOrGetter, Raw, Reactive, ReactiveEffect, ReactiveEffectOptions, ReactiveEffectRunner, ReactiveFlags, Ref, ShallowReactive, ShallowRef, ShallowUnwrapRef, ToRef, ToRefs, TrackOpTypes, TriggerOpTypes, UnwrapNestedRefs, UnwrapRef, WatchCallback, WatchEffect, WatchHandle, WatchSource, WatchStopHandle, WritableComputedOptions, WritableComputedRef, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
3
- import { IfAny, Prettify, LooseRequired, UnionToIntersection, OverloadParameters, IsKeyValues } from '@vue/shared';
3
+ import { IfAny, Prettify, UnionToIntersection, LooseRequired, OverloadParameters, IsKeyValues } from '@vue/shared';
4
4
  export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
5
5
 
6
6
  export declare const computed: typeof computed$1;
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.27
2
+ * @vue/runtime-core v3.5.28
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
6
  import { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';
7
7
  export { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
8
- import { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, EMPTY_ARR, makeMap, toRawType, toNumber } from '@vue/shared';
8
+ import { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';
9
9
  export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
10
10
 
11
11
  const stack = [];
@@ -1206,7 +1206,22 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
1206
1206
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
1207
1207
  o: { nextSibling, parentNode, querySelector, insert, createText }
1208
1208
  }, hydrateChildren) {
1209
- function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
1209
+ function hydrateAnchor(target2, targetNode) {
1210
+ let targetAnchor = targetNode;
1211
+ while (targetAnchor) {
1212
+ if (targetAnchor && targetAnchor.nodeType === 8) {
1213
+ if (targetAnchor.data === "teleport start anchor") {
1214
+ vnode.targetStart = targetAnchor;
1215
+ } else if (targetAnchor.data === "teleport anchor") {
1216
+ vnode.targetAnchor = targetAnchor;
1217
+ target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
1218
+ break;
1219
+ }
1220
+ }
1221
+ targetAnchor = nextSibling(targetAnchor);
1222
+ }
1223
+ }
1224
+ function hydrateDisabledTeleport(node2, vnode2) {
1210
1225
  vnode2.anchor = hydrateChildren(
1211
1226
  nextSibling(node2),
1212
1227
  vnode2,
@@ -1216,8 +1231,6 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
1216
1231
  slotScopeIds,
1217
1232
  optimized
1218
1233
  );
1219
- vnode2.targetStart = targetStart;
1220
- vnode2.targetAnchor = targetAnchor;
1221
1234
  }
1222
1235
  const target = vnode.target = resolveTarget(
1223
1236
  vnode.props,
@@ -1228,27 +1241,22 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
1228
1241
  const targetNode = target._lpa || target.firstChild;
1229
1242
  if (vnode.shapeFlag & 16) {
1230
1243
  if (disabled) {
1231
- hydrateDisabledTeleport(
1232
- node,
1233
- vnode,
1234
- targetNode,
1235
- targetNode && nextSibling(targetNode)
1236
- );
1244
+ hydrateDisabledTeleport(node, vnode);
1245
+ hydrateAnchor(target, targetNode);
1246
+ if (!vnode.targetAnchor) {
1247
+ prepareAnchor(
1248
+ target,
1249
+ vnode,
1250
+ createText,
1251
+ insert,
1252
+ // if target is the same as the main view, insert anchors before current node
1253
+ // to avoid hydrating mismatch
1254
+ parentNode(node) === target ? node : null
1255
+ );
1256
+ }
1237
1257
  } else {
1238
1258
  vnode.anchor = nextSibling(node);
1239
- let targetAnchor = targetNode;
1240
- while (targetAnchor) {
1241
- if (targetAnchor && targetAnchor.nodeType === 8) {
1242
- if (targetAnchor.data === "teleport start anchor") {
1243
- vnode.targetStart = targetAnchor;
1244
- } else if (targetAnchor.data === "teleport anchor") {
1245
- vnode.targetAnchor = targetAnchor;
1246
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
1247
- break;
1248
- }
1249
- }
1250
- targetAnchor = nextSibling(targetAnchor);
1251
- }
1259
+ hydrateAnchor(target, targetNode);
1252
1260
  if (!vnode.targetAnchor) {
1253
1261
  prepareAnchor(target, vnode, createText, insert);
1254
1262
  }
@@ -1266,7 +1274,9 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
1266
1274
  updateCssVars(vnode, disabled);
1267
1275
  } else if (disabled) {
1268
1276
  if (vnode.shapeFlag & 16) {
1269
- hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
1277
+ hydrateDisabledTeleport(node, vnode);
1278
+ vnode.targetStart = node;
1279
+ vnode.targetAnchor = nextSibling(node);
1270
1280
  }
1271
1281
  }
1272
1282
  return vnode.anchor && nextSibling(vnode.anchor);
@@ -1290,13 +1300,13 @@ function updateCssVars(vnode, isDisabled) {
1290
1300
  ctx.ut();
1291
1301
  }
1292
1302
  }
1293
- function prepareAnchor(target, vnode, createText, insert) {
1303
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
1294
1304
  const targetStart = vnode.targetStart = createText("");
1295
1305
  const targetAnchor = vnode.targetAnchor = createText("");
1296
1306
  targetStart[TeleportEndKey] = targetAnchor;
1297
1307
  if (target) {
1298
- insert(targetStart, target);
1299
- insert(targetAnchor, target);
1308
+ insert(targetStart, target, anchor);
1309
+ insert(targetAnchor, target, anchor);
1300
1310
  }
1301
1311
  return targetAnchor;
1302
1312
  }
@@ -1532,7 +1542,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1532
1542
  }
1533
1543
  }
1534
1544
  let called = false;
1535
- const done = el[enterCbKey] = (cancelled) => {
1545
+ el[enterCbKey] = (cancelled) => {
1536
1546
  if (called) return;
1537
1547
  called = true;
1538
1548
  if (cancelled) {
@@ -1545,6 +1555,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1545
1555
  }
1546
1556
  el[enterCbKey] = void 0;
1547
1557
  };
1558
+ const done = el[enterCbKey].bind(null, false);
1548
1559
  if (hook) {
1549
1560
  callAsyncHook(hook, [el, done]);
1550
1561
  } else {
@@ -1564,7 +1575,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1564
1575
  }
1565
1576
  callHook(onBeforeLeave, [el]);
1566
1577
  let called = false;
1567
- const done = el[leaveCbKey] = (cancelled) => {
1578
+ el[leaveCbKey] = (cancelled) => {
1568
1579
  if (called) return;
1569
1580
  called = true;
1570
1581
  remove();
@@ -1578,6 +1589,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1578
1589
  delete leavingVNodesCache[key2];
1579
1590
  }
1580
1591
  };
1592
+ const done = el[leaveCbKey].bind(null, false);
1581
1593
  leavingVNodesCache[key2] = vnode;
1582
1594
  if (onLeave) {
1583
1595
  callAsyncHook(onLeave, [el, done]);
@@ -1690,8 +1702,7 @@ function useTemplateRef(key) {
1690
1702
  const r = shallowRef(null);
1691
1703
  if (i) {
1692
1704
  const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
1693
- let desc;
1694
- if (!!(process.env.NODE_ENV !== "production") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
1705
+ if (!!(process.env.NODE_ENV !== "production") && isTemplateRefKey(refs, key)) {
1695
1706
  warn$1(`useTemplateRef('${key}') already exists.`);
1696
1707
  } else {
1697
1708
  Object.defineProperty(refs, key, {
@@ -1711,6 +1722,10 @@ function useTemplateRef(key) {
1711
1722
  }
1712
1723
  return ret;
1713
1724
  }
1725
+ function isTemplateRefKey(refs, key) {
1726
+ let desc;
1727
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
1728
+ }
1714
1729
 
1715
1730
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
1716
1731
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -1756,10 +1771,19 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1756
1771
  return false;
1757
1772
  }
1758
1773
  }
1774
+ if (isTemplateRefKey(refs, key)) {
1775
+ return false;
1776
+ }
1759
1777
  return hasOwn(rawSetupState, key);
1760
1778
  };
1761
- const canSetRef = (ref2) => {
1762
- return !!!(process.env.NODE_ENV !== "production") || !knownTemplateRefs.has(ref2);
1779
+ const canSetRef = (ref2, key) => {
1780
+ if (!!(process.env.NODE_ENV !== "production") && knownTemplateRefs.has(ref2)) {
1781
+ return false;
1782
+ }
1783
+ if (key && isTemplateRefKey(refs, key)) {
1784
+ return false;
1785
+ }
1786
+ return true;
1763
1787
  };
1764
1788
  if (oldRef != null && oldRef !== ref) {
1765
1789
  invalidatePendingSetRef(oldRawRef);
@@ -1769,10 +1793,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1769
1793
  setupState[oldRef] = null;
1770
1794
  }
1771
1795
  } else if (isRef(oldRef)) {
1772
- if (canSetRef(oldRef)) {
1796
+ const oldRawRefAtom = oldRawRef;
1797
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
1773
1798
  oldRef.value = null;
1774
1799
  }
1775
- const oldRawRefAtom = oldRawRef;
1776
1800
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
1777
1801
  }
1778
1802
  }
@@ -1796,7 +1820,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1796
1820
  }
1797
1821
  } else {
1798
1822
  const newVal = [refValue];
1799
- if (canSetRef(ref)) {
1823
+ if (canSetRef(ref, rawRef.k)) {
1800
1824
  ref.value = newVal;
1801
1825
  }
1802
1826
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -1811,7 +1835,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1811
1835
  setupState[ref] = value;
1812
1836
  }
1813
1837
  } else if (_isRef) {
1814
- if (canSetRef(ref)) {
1838
+ if (canSetRef(ref, rawRef.k)) {
1815
1839
  ref.value = value;
1816
1840
  }
1817
1841
  if (rawRef.k) refs[rawRef.k] = value;
@@ -4690,7 +4714,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
4690
4714
  const dynamicProps = nextVNode.dynamicProps;
4691
4715
  for (let i = 0; i < dynamicProps.length; i++) {
4692
4716
  const key = dynamicProps[i];
4693
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
4717
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
4694
4718
  return true;
4695
4719
  }
4696
4720
  }
@@ -4721,12 +4745,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
4721
4745
  }
4722
4746
  for (let i = 0; i < nextKeys.length; i++) {
4723
4747
  const key = nextKeys[i];
4724
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
4748
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
4725
4749
  return true;
4726
4750
  }
4727
4751
  }
4728
4752
  return false;
4729
4753
  }
4754
+ function hasPropValueChanged(nextProps, prevProps, key) {
4755
+ const nextProp = nextProps[key];
4756
+ const prevProp = prevProps[key];
4757
+ if (key === "style" && isObject(nextProp) && isObject(prevProp)) {
4758
+ return !looseEqual(nextProp, prevProp);
4759
+ }
4760
+ return nextProp !== prevProp;
4761
+ }
4730
4762
  function updateHOCHostEl({ vnode, parent }, el) {
4731
4763
  while (parent) {
4732
4764
  const root = parent.subTree;
@@ -5457,15 +5489,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5457
5489
  } else {
5458
5490
  const el = n2.el = n1.el;
5459
5491
  if (n2.children !== n1.children) {
5460
- if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
5461
- const childNodes = container.childNodes;
5462
- const newChild = hostCreateText(n2.children);
5463
- const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
5464
- hostInsert(newChild, container, oldChild);
5465
- hostRemove(oldChild);
5466
- } else {
5467
- hostSetText(el, n2.children);
5468
- }
5492
+ hostSetText(el, n2.children);
5469
5493
  }
5470
5494
  }
5471
5495
  };
@@ -5541,7 +5565,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5541
5565
  optimized
5542
5566
  );
5543
5567
  } else {
5544
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
5568
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
5545
5569
  try {
5546
5570
  if (customElement) {
5547
5571
  customElement._beginPatch();
@@ -6034,8 +6058,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6034
6058
  hydrateSubTree();
6035
6059
  }
6036
6060
  } else {
6037
- if (root.ce && // @ts-expect-error _def is private
6038
- root.ce._def.shadowRoot !== false) {
6061
+ if (root.ce && root.ce._hasShadowRoot()) {
6039
6062
  root.ce._injectChildStyle(type);
6040
6063
  }
6041
6064
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -6090,9 +6113,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6090
6113
  updateComponentPreRender(instance, next, optimized);
6091
6114
  }
6092
6115
  nonHydratedAsyncRoot.asyncDep.then(() => {
6093
- if (!instance.isUnmounted) {
6094
- componentUpdateFn();
6095
- }
6116
+ queuePostRenderEffect(() => {
6117
+ if (!instance.isUnmounted) update();
6118
+ }, parentSuspense);
6096
6119
  });
6097
6120
  return;
6098
6121
  }
@@ -6789,12 +6812,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
6789
6812
  traverseStaticChildren(c1, c2);
6790
6813
  }
6791
6814
  if (c2.type === Text) {
6792
- if (c2.patchFlag !== -1) {
6793
- c2.el = c1.el;
6794
- } else {
6795
- c2.__elIndex = i + // take fragment start anchor into account
6796
- (n1.type === Fragment ? 1 : 0);
6815
+ if (c2.patchFlag === -1) {
6816
+ c2 = ch2[i] = cloneIfMounted(c2);
6797
6817
  }
6818
+ c2.el = c1.el;
6798
6819
  }
6799
6820
  if (c2.type === Comment && !c2.el) {
6800
6821
  c2.el = c1.el;
@@ -8534,7 +8555,7 @@ function isMemoSame(cached, memo) {
8534
8555
  return true;
8535
8556
  }
8536
8557
 
8537
- const version = "3.5.27";
8558
+ const version = "3.5.28";
8538
8559
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
8539
8560
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8540
8561
  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.27",
3
+ "version": "3.5.28",
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.27",
50
- "@vue/reactivity": "3.5.27"
49
+ "@vue/shared": "3.5.28",
50
+ "@vue/reactivity": "3.5.28"
51
51
  }
52
52
  }