@vue/compat 3.5.13 → 3.5.15

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.
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.13
2
+ * @vue/compat v3.5.15
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -449,6 +449,10 @@ class EffectScope {
449
449
  * @internal
450
450
  */
451
451
  this._active = true;
452
+ /**
453
+ * @internal track `on` calls, allow `on` call multiple times
454
+ */
455
+ this._on = 0;
452
456
  /**
453
457
  * @internal
454
458
  */
@@ -519,14 +523,20 @@ class EffectScope {
519
523
  * @internal
520
524
  */
521
525
  on() {
522
- activeEffectScope = this;
526
+ if (++this._on === 1) {
527
+ this.prevScope = activeEffectScope;
528
+ activeEffectScope = this;
529
+ }
523
530
  }
524
531
  /**
525
532
  * This should only be called on non-detached scopes
526
533
  * @internal
527
534
  */
528
535
  off() {
529
- activeEffectScope = this.parent;
536
+ if (this._on > 0 && --this._on === 0) {
537
+ activeEffectScope = this.prevScope;
538
+ this.prevScope = void 0;
539
+ }
530
540
  }
531
541
  stop(fromParent) {
532
542
  if (this._active) {
@@ -608,7 +618,7 @@ class ReactiveEffect {
608
618
  }
609
619
  resume() {
610
620
  if (this.flags & 64) {
611
- this.flags &= ~64;
621
+ this.flags &= -65;
612
622
  if (pausedQueueEffects.has(this)) {
613
623
  pausedQueueEffects.delete(this);
614
624
  this.trigger();
@@ -648,7 +658,7 @@ class ReactiveEffect {
648
658
  cleanupDeps(this);
649
659
  activeSub = prevEffect;
650
660
  shouldTrack = prevShouldTrack;
651
- this.flags &= ~2;
661
+ this.flags &= -3;
652
662
  }
653
663
  }
654
664
  stop() {
@@ -659,7 +669,7 @@ class ReactiveEffect {
659
669
  this.deps = this.depsTail = void 0;
660
670
  cleanupEffect(this);
661
671
  this.onStop && this.onStop();
662
- this.flags &= ~1;
672
+ this.flags &= -2;
663
673
  }
664
674
  }
665
675
  trigger() {
@@ -709,7 +719,7 @@ function endBatch() {
709
719
  while (e) {
710
720
  const next = e.next;
711
721
  e.next = void 0;
712
- e.flags &= ~8;
722
+ e.flags &= -9;
713
723
  e = next;
714
724
  }
715
725
  }
@@ -720,7 +730,7 @@ function endBatch() {
720
730
  while (e) {
721
731
  const next = e.next;
722
732
  e.next = void 0;
723
- e.flags &= ~8;
733
+ e.flags &= -9;
724
734
  if (e.flags & 1) {
725
735
  try {
726
736
  ;
@@ -776,17 +786,16 @@ function refreshComputed(computed) {
776
786
  if (computed.flags & 4 && !(computed.flags & 16)) {
777
787
  return;
778
788
  }
779
- computed.flags &= ~16;
789
+ computed.flags &= -17;
780
790
  if (computed.globalVersion === globalVersion) {
781
791
  return;
782
792
  }
783
793
  computed.globalVersion = globalVersion;
784
- const dep = computed.dep;
785
- computed.flags |= 2;
786
- if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
787
- computed.flags &= ~2;
794
+ if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
788
795
  return;
789
796
  }
797
+ computed.flags |= 2;
798
+ const dep = computed.dep;
790
799
  const prevSub = activeSub;
791
800
  const prevShouldTrack = shouldTrack;
792
801
  activeSub = computed;
@@ -795,6 +804,7 @@ function refreshComputed(computed) {
795
804
  prepareDeps(computed);
796
805
  const value = computed.fn(computed._value);
797
806
  if (dep.version === 0 || hasChanged(value, computed._value)) {
807
+ computed.flags |= 128;
798
808
  computed._value = value;
799
809
  dep.version++;
800
810
  }
@@ -805,7 +815,7 @@ function refreshComputed(computed) {
805
815
  activeSub = prevSub;
806
816
  shouldTrack = prevShouldTrack;
807
817
  cleanupDeps(computed);
808
- computed.flags &= ~2;
818
+ computed.flags &= -3;
809
819
  }
810
820
  }
811
821
  function removeSub(link, soft = false) {
@@ -824,7 +834,7 @@ function removeSub(link, soft = false) {
824
834
  if (dep.subs === link) {
825
835
  dep.subs = prevSub;
826
836
  if (!prevSub && dep.computed) {
827
- dep.computed.flags &= ~4;
837
+ dep.computed.flags &= -5;
828
838
  for (let l = dep.computed.deps; l; l = l.nextDep) {
829
839
  removeSub(l, true);
830
840
  }
@@ -1757,14 +1767,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
1757
1767
  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
1758
1768
  return target;
1759
1769
  }
1760
- const existingProxy = proxyMap.get(target);
1761
- if (existingProxy) {
1762
- return existingProxy;
1763
- }
1764
1770
  const targetType = getTargetType(target);
1765
1771
  if (targetType === 0 /* INVALID */) {
1766
1772
  return target;
1767
1773
  }
1774
+ const existingProxy = proxyMap.get(target);
1775
+ if (existingProxy) {
1776
+ return existingProxy;
1777
+ }
1768
1778
  const proxy = new Proxy(
1769
1779
  target,
1770
1780
  targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2187,11 +2197,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2187
2197
  oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
2188
2198
  boundCleanup
2189
2199
  ];
2200
+ oldValue = newValue;
2190
2201
  call ? call(cb, 3, args) : (
2191
2202
  // @ts-expect-error
2192
2203
  cb(...args)
2193
2204
  );
2194
- oldValue = newValue;
2195
2205
  } finally {
2196
2206
  activeWatcher = currentWatcher;
2197
2207
  }
@@ -2608,11 +2618,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2608
2618
  queue.splice(i, 1);
2609
2619
  i--;
2610
2620
  if (cb.flags & 4) {
2611
- cb.flags &= ~1;
2621
+ cb.flags &= -2;
2612
2622
  }
2613
2623
  cb();
2614
2624
  if (!(cb.flags & 4)) {
2615
- cb.flags &= ~1;
2625
+ cb.flags &= -2;
2616
2626
  }
2617
2627
  }
2618
2628
  }
@@ -2637,10 +2647,10 @@ function flushPostFlushCbs(seen) {
2637
2647
  continue;
2638
2648
  }
2639
2649
  if (cb.flags & 4) {
2640
- cb.flags &= ~1;
2650
+ cb.flags &= -2;
2641
2651
  }
2642
2652
  if (!(cb.flags & 8)) cb();
2643
- cb.flags &= ~1;
2653
+ cb.flags &= -2;
2644
2654
  }
2645
2655
  activePostFlushCbs = null;
2646
2656
  postFlushIndex = 0;
@@ -2676,7 +2686,7 @@ function flushJobs(seen) {
2676
2686
  for (; flushIndex < queue.length; flushIndex++) {
2677
2687
  const job = queue[flushIndex];
2678
2688
  if (job) {
2679
- job.flags &= ~1;
2689
+ job.flags &= -2;
2680
2690
  }
2681
2691
  }
2682
2692
  flushIndex = -1;
@@ -3644,15 +3654,16 @@ const TeleportImpl = {
3644
3654
  updateCssVars(n2, true);
3645
3655
  }
3646
3656
  if (isTeleportDeferred(n2.props)) {
3657
+ n2.el.__isMounted = false;
3647
3658
  queuePostRenderEffect(() => {
3648
3659
  mountToTarget();
3649
- n2.el.__isMounted = true;
3660
+ delete n2.el.__isMounted;
3650
3661
  }, parentSuspense);
3651
3662
  } else {
3652
3663
  mountToTarget();
3653
3664
  }
3654
3665
  } else {
3655
- if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3666
+ if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
3656
3667
  queuePostRenderEffect(() => {
3657
3668
  TeleportImpl.process(
3658
3669
  n1,
@@ -3666,7 +3677,6 @@ const TeleportImpl = {
3666
3677
  optimized,
3667
3678
  internals
3668
3679
  );
3669
- delete n1.el.__isMounted;
3670
3680
  }, parentSuspense);
3671
3681
  return;
3672
3682
  }
@@ -3693,7 +3703,7 @@ const TeleportImpl = {
3693
3703
  namespace,
3694
3704
  slotScopeIds
3695
3705
  );
3696
- traverseStaticChildren(n1, n2, true);
3706
+ traverseStaticChildren(n1, n2, false);
3697
3707
  } else if (!optimized) {
3698
3708
  patchChildren(
3699
3709
  n1,
@@ -4657,6 +4667,8 @@ function createHydrationFunctions(rendererInternals) {
4657
4667
  ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4658
4668
  const content = el.content.firstChild;
4659
4669
  if (needCallTransitionHooks) {
4670
+ const cls = content.getAttribute("class");
4671
+ if (cls) content.$cls = cls;
4660
4672
  transition.beforeEnter(content);
4661
4673
  }
4662
4674
  replaceNode(content, el, parentComponent);
@@ -4909,7 +4921,12 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
4909
4921
  let actual;
4910
4922
  let expected;
4911
4923
  if (key === "class") {
4912
- actual = el.getAttribute("class");
4924
+ if (el.$cls) {
4925
+ actual = el.$cls;
4926
+ delete el.$cls;
4927
+ } else {
4928
+ actual = el.getAttribute("class");
4929
+ }
4913
4930
  expected = normalizeClass(clientValue);
4914
4931
  if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
4915
4932
  mismatchType = 2 /* CLASS */;
@@ -5204,14 +5221,25 @@ function defineAsyncComponent(source) {
5204
5221
  name: "AsyncComponentWrapper",
5205
5222
  __asyncLoader: load,
5206
5223
  __asyncHydrate(el, instance, hydrate) {
5224
+ let patched = false;
5207
5225
  const doHydrate = hydrateStrategy ? () => {
5226
+ const performHydrate = () => {
5227
+ if (patched) {
5228
+ warn$1(
5229
+ `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.`
5230
+ );
5231
+ return;
5232
+ }
5233
+ hydrate();
5234
+ };
5208
5235
  const teardown = hydrateStrategy(
5209
- hydrate,
5236
+ performHydrate,
5210
5237
  (cb) => forEachElement(el, cb)
5211
5238
  );
5212
5239
  if (teardown) {
5213
5240
  (instance.bum || (instance.bum = [])).push(teardown);
5214
5241
  }
5242
+ (instance.u || (instance.u = [])).push(() => patched = true);
5215
5243
  } : hydrate;
5216
5244
  if (resolvedComp) {
5217
5245
  doHydrate();
@@ -5468,7 +5496,7 @@ const KeepAliveImpl = {
5468
5496
  );
5469
5497
  const { include, exclude, max } = props;
5470
5498
  if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
5471
- vnode.shapeFlag &= ~256;
5499
+ vnode.shapeFlag &= -257;
5472
5500
  current = vnode;
5473
5501
  return rawVNode;
5474
5502
  }
@@ -5559,8 +5587,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
5559
5587
  }, target);
5560
5588
  }
5561
5589
  function resetShapeFlag(vnode) {
5562
- vnode.shapeFlag &= ~256;
5563
- vnode.shapeFlag &= ~512;
5590
+ vnode.shapeFlag &= -257;
5591
+ vnode.shapeFlag &= -513;
5564
5592
  }
5565
5593
  function getInnerChild(vnode) {
5566
5594
  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5962,14 +5990,16 @@ function renderList(source, renderItem, cache, index) {
5962
5990
  if (sourceIsArray || isString(source)) {
5963
5991
  const sourceIsReactiveArray = sourceIsArray && isReactive(source);
5964
5992
  let needsWrap = false;
5993
+ let isReadonlySource = false;
5965
5994
  if (sourceIsReactiveArray) {
5966
5995
  needsWrap = !isShallow(source);
5996
+ isReadonlySource = isReadonly(source);
5967
5997
  source = shallowReadArray(source);
5968
5998
  }
5969
5999
  ret = new Array(source.length);
5970
6000
  for (let i = 0, l = source.length; i < l; i++) {
5971
6001
  ret[i] = renderItem(
5972
- needsWrap ? toReactive(source[i]) : source[i],
6002
+ needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
5973
6003
  i,
5974
6004
  void 0,
5975
6005
  cached && cached[i]
@@ -7221,7 +7251,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7221
7251
  return vm;
7222
7252
  }
7223
7253
  }
7224
- Vue.version = `2.6.14-compat:${"3.5.13"}`;
7254
+ Vue.version = `2.6.14-compat:${"3.5.15"}`;
7225
7255
  Vue.config = singletonApp.config;
7226
7256
  Vue.use = (plugin, ...options) => {
7227
7257
  if (plugin && isFunction(plugin.install)) {
@@ -7715,11 +7745,9 @@ function createAppAPI(render, hydrate) {
7715
7745
  }
7716
7746
  {
7717
7747
  context.reload = () => {
7718
- render(
7719
- cloneVNode(vnode),
7720
- rootContainer,
7721
- namespace
7722
- );
7748
+ const cloned = cloneVNode(vnode);
7749
+ cloned.el = null;
7750
+ render(cloned, rootContainer, namespace);
7723
7751
  };
7724
7752
  }
7725
7753
  if (isHydrate && hydrate) {
@@ -7769,9 +7797,15 @@ If you want to remount the same app, move your app creation logic into a factory
7769
7797
  },
7770
7798
  provide(key, value) {
7771
7799
  if (key in context.provides) {
7772
- warn$1(
7773
- `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
7774
- );
7800
+ if (hasOwn(context.provides, key)) {
7801
+ warn$1(
7802
+ `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
7803
+ );
7804
+ } else {
7805
+ warn$1(
7806
+ `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`
7807
+ );
7808
+ }
7775
7809
  }
7776
7810
  context.provides[key] = value;
7777
7811
  return app;
@@ -7811,7 +7845,7 @@ function provide(key, value) {
7811
7845
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
7812
7846
  const instance = currentInstance || currentRenderingInstance;
7813
7847
  if (instance || currentApp) {
7814
- const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
7848
+ let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
7815
7849
  if (provides && key in provides) {
7816
7850
  return provides[key];
7817
7851
  } else if (arguments.length > 1) {
@@ -8317,7 +8351,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
8317
8351
  return rawSlot;
8318
8352
  }
8319
8353
  const normalized = withCtx((...args) => {
8320
- if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
8354
+ if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
8321
8355
  warn$1(
8322
8356
  `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
8323
8357
  );
@@ -8356,7 +8390,7 @@ const normalizeVNodeSlots = (instance, children) => {
8356
8390
  };
8357
8391
  const assignSlots = (slots, children, optimized) => {
8358
8392
  for (const key in children) {
8359
- if (optimized || key !== "_") {
8393
+ if (optimized || !isInternalKey(key)) {
8360
8394
  slots[key] = children[key];
8361
8395
  }
8362
8396
  }
@@ -8880,7 +8914,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8880
8914
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
8881
8915
  // which also requires the correct parent container
8882
8916
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
8883
- oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
8917
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
8884
8918
  // In other cases, the parent container is not actually used so we
8885
8919
  // just pass the block element here to avoid a DOM parentNode call.
8886
8920
  fallbackContainer
@@ -9043,8 +9077,8 @@ function baseCreateRenderer(options, createHydrationFns) {
9043
9077
  endMeasure(instance, `init`);
9044
9078
  }
9045
9079
  }
9080
+ if (isHmrUpdating) initialVNode.el = null;
9046
9081
  if (instance.asyncDep) {
9047
- if (isHmrUpdating) initialVNode.el = null;
9048
9082
  parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
9049
9083
  if (!initialVNode.el) {
9050
9084
  const placeholder = instance.subTree = createVNode(Comment);
@@ -9630,7 +9664,13 @@ function baseCreateRenderer(options, createHydrationFns) {
9630
9664
  queuePostRenderEffect(() => transition.enter(el), parentSuspense);
9631
9665
  } else {
9632
9666
  const { leave, delayLeave, afterLeave } = transition;
9633
- const remove2 = () => hostInsert(el, container, anchor);
9667
+ const remove2 = () => {
9668
+ if (vnode.ctx.isUnmounted) {
9669
+ hostRemove(el);
9670
+ } else {
9671
+ hostInsert(el, container, anchor);
9672
+ }
9673
+ };
9634
9674
  const performLeave = () => {
9635
9675
  leave(el, () => {
9636
9676
  remove2();
@@ -9663,7 +9703,9 @@ function baseCreateRenderer(options, createHydrationFns) {
9663
9703
  optimized = false;
9664
9704
  }
9665
9705
  if (ref != null) {
9706
+ pauseTracking();
9666
9707
  setRef(ref, null, parentSuspense, vnode, true);
9708
+ resetTracking();
9667
9709
  }
9668
9710
  if (cacheIndex != null) {
9669
9711
  parentComponent.renderCache[cacheIndex] = void 0;
@@ -9775,12 +9817,27 @@ function baseCreateRenderer(options, createHydrationFns) {
9775
9817
  if (instance.type.__hmrId) {
9776
9818
  unregisterHMR(instance);
9777
9819
  }
9778
- const { bum, scope, job, subTree, um, m, a } = instance;
9820
+ const {
9821
+ bum,
9822
+ scope,
9823
+ job,
9824
+ subTree,
9825
+ um,
9826
+ m,
9827
+ a,
9828
+ parent,
9829
+ slots: { __: slotCacheKeys }
9830
+ } = instance;
9779
9831
  invalidateMount(m);
9780
9832
  invalidateMount(a);
9781
9833
  if (bum) {
9782
9834
  invokeArrayFns(bum);
9783
9835
  }
9836
+ if (parent && isArray(slotCacheKeys)) {
9837
+ slotCacheKeys.forEach((v) => {
9838
+ parent.renderCache[v] = void 0;
9839
+ });
9840
+ }
9784
9841
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) {
9785
9842
  instance.emit("hook:beforeDestroy");
9786
9843
  }
@@ -9885,8 +9942,8 @@ function toggleRecurse({ effect, job }, allowed) {
9885
9942
  effect.flags |= 32;
9886
9943
  job.flags |= 4;
9887
9944
  } else {
9888
- effect.flags &= ~32;
9889
- job.flags &= ~4;
9945
+ effect.flags &= -33;
9946
+ job.flags &= -5;
9890
9947
  }
9891
9948
  }
9892
9949
  function needTransition(parentSuspense, transition) {
@@ -9913,6 +9970,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
9913
9970
  if (c2.type === Comment && !c2.el) {
9914
9971
  c2.el = c1.el;
9915
9972
  }
9973
+ {
9974
+ c2.el && (c2.el.__vnode = c2);
9975
+ }
9916
9976
  }
9917
9977
  }
9918
9978
  }
@@ -11343,8 +11403,8 @@ function isSameVNodeType(n1, n2) {
11343
11403
  if (n2.shapeFlag & 6 && n1.component) {
11344
11404
  const dirtyInstances = hmrDirtyComponents.get(n2.type);
11345
11405
  if (dirtyInstances && dirtyInstances.has(n1.component)) {
11346
- n1.shapeFlag &= ~256;
11347
- n2.shapeFlag &= ~512;
11406
+ n1.shapeFlag &= -257;
11407
+ n2.shapeFlag &= -513;
11348
11408
  return false;
11349
11409
  }
11350
11410
  }
@@ -11815,7 +11875,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
11815
11875
  const { props, children } = instance.vnode;
11816
11876
  const isStateful = isStatefulComponent(instance);
11817
11877
  initProps(instance, props, isStateful, isSSR);
11818
- initSlots(instance, children, optimized);
11878
+ initSlots(instance, children, optimized || isSSR);
11819
11879
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
11820
11880
  isSSR && setInSSRSetupState(false);
11821
11881
  return setupResult;
@@ -12158,13 +12218,15 @@ function initCustomFormatter() {
12158
12218
  if (obj.__isVue) {
12159
12219
  return ["div", vueStyle, `VueInstance`];
12160
12220
  } else if (isRef(obj)) {
12221
+ pauseTracking();
12222
+ const value = obj.value;
12223
+ resetTracking();
12161
12224
  return [
12162
12225
  "div",
12163
12226
  {},
12164
12227
  ["span", vueStyle, genRefFlag(obj)],
12165
12228
  "<",
12166
- // avoid debugger accessing value affecting behavior
12167
- formatValue("_value" in obj ? obj._value : obj),
12229
+ formatValue(value),
12168
12230
  `>`
12169
12231
  ];
12170
12232
  } else if (isReactive(obj)) {
@@ -12345,7 +12407,7 @@ function isMemoSame(cached, memo) {
12345
12407
  return true;
12346
12408
  }
12347
12409
 
12348
- const version = "3.5.13";
12410
+ const version = "3.5.15";
12349
12411
  const warn = warn$1 ;
12350
12412
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12351
12413
  const devtools = devtools$1 ;
@@ -12978,7 +13040,7 @@ function compatCoerceAttr(el, key, value, instance = null) {
12978
13040
  el.setAttribute(key, v2CoercedValue);
12979
13041
  return true;
12980
13042
  }
12981
- } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.isCompatEnabled("ATTR_FALSE_VALUE", instance)) {
13043
+ } else if (value === false && !(el.tagName === "INPUT" && key === "value") && !isSpecialBooleanAttr(key) && compatUtils.isCompatEnabled("ATTR_FALSE_VALUE", instance)) {
12982
13044
  compatUtils.warnDeprecation(
12983
13045
  "ATTR_FALSE_VALUE",
12984
13046
  instance,
@@ -13184,7 +13246,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
13184
13246
  }
13185
13247
  return false;
13186
13248
  }
13187
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
13249
+ if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
13188
13250
  return false;
13189
13251
  }
13190
13252
  if (key === "form") {
@@ -13267,13 +13329,10 @@ class VueElement extends BaseClass {
13267
13329
  this._root = this;
13268
13330
  }
13269
13331
  }
13270
- if (!this._def.__asyncLoader) {
13271
- this._resolveProps(this._def);
13272
- }
13273
13332
  }
13274
13333
  connectedCallback() {
13275
13334
  if (!this.isConnected) return;
13276
- if (!this.shadowRoot) {
13335
+ if (!this.shadowRoot && !this._resolved) {
13277
13336
  this._parseSlots();
13278
13337
  }
13279
13338
  this._connected = true;
@@ -13286,8 +13345,7 @@ class VueElement extends BaseClass {
13286
13345
  }
13287
13346
  if (!this._instance) {
13288
13347
  if (this._resolved) {
13289
- this._setParent();
13290
- this._update();
13348
+ this._mount(this._def);
13291
13349
  } else {
13292
13350
  if (parent && parent._pendingResolve) {
13293
13351
  this._pendingResolve = parent._pendingResolve.then(() => {
@@ -13303,7 +13361,15 @@ class VueElement extends BaseClass {
13303
13361
  _setParent(parent = this._parent) {
13304
13362
  if (parent) {
13305
13363
  this._instance.parent = parent._instance;
13306
- this._instance.provides = parent._instance.provides;
13364
+ this._inheritParentContext(parent);
13365
+ }
13366
+ }
13367
+ _inheritParentContext(parent = this._parent) {
13368
+ if (parent && this._app) {
13369
+ Object.setPrototypeOf(
13370
+ this._app._context.provides,
13371
+ parent._instance.provides
13372
+ );
13307
13373
  }
13308
13374
  }
13309
13375
  disconnectedCallback() {
@@ -13353,9 +13419,7 @@ class VueElement extends BaseClass {
13353
13419
  }
13354
13420
  }
13355
13421
  this._numberProps = numberProps;
13356
- if (isAsync) {
13357
- this._resolveProps(def);
13358
- }
13422
+ this._resolveProps(def);
13359
13423
  if (this.shadowRoot) {
13360
13424
  this._applyStyles(styles);
13361
13425
  } else if (styles) {
@@ -13379,6 +13443,7 @@ class VueElement extends BaseClass {
13379
13443
  def.name = "VueElement";
13380
13444
  }
13381
13445
  this._app = this._createApp(def);
13446
+ this._inheritParentContext();
13382
13447
  if (def.configureApp) {
13383
13448
  def.configureApp(this._app);
13384
13449
  }
@@ -13463,7 +13528,9 @@ class VueElement extends BaseClass {
13463
13528
  }
13464
13529
  }
13465
13530
  _update() {
13466
- render(this._createVNode(), this._root);
13531
+ const vnode = this._createVNode();
13532
+ if (this._app) vnode.appContext = this._app._context;
13533
+ render(vnode, this._root);
13467
13534
  }
13468
13535
  _createVNode() {
13469
13536
  const baseProps = {};
@@ -13676,6 +13743,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
13676
13743
  instance.vnode.el,
13677
13744
  moveClass
13678
13745
  )) {
13746
+ prevChildren = [];
13679
13747
  return;
13680
13748
  }
13681
13749
  prevChildren.forEach(callPendingCbs);
@@ -13699,6 +13767,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
13699
13767
  };
13700
13768
  el.addEventListener("transitionend", cb);
13701
13769
  });
13770
+ prevChildren = [];
13702
13771
  });
13703
13772
  return () => {
13704
13773
  const rawProps = toRaw(props);
@@ -16004,7 +16073,7 @@ function isReferenced(node, parent, grandparent) {
16004
16073
  if (parent.key === node) {
16005
16074
  return !!parent.computed;
16006
16075
  }
16007
- return !grandparent;
16076
+ return true;
16008
16077
  // no: class { NODE = value; }
16009
16078
  // yes: class { [NODE] = value; }
16010
16079
  // yes: class { key = NODE; }
@@ -16628,7 +16697,7 @@ const tokenizer = new Tokenizer(stack, {
16628
16697
  "COMPILER_V_BIND_SYNC",
16629
16698
  currentOptions,
16630
16699
  currentProp.loc,
16631
- currentProp.rawName
16700
+ currentProp.arg.loc.source
16632
16701
  )) {
16633
16702
  currentProp.name = "model";
16634
16703
  currentProp.modifiers.splice(syncIndex, 1);
@@ -17220,6 +17289,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
17220
17289
  }
17221
17290
  }
17222
17291
  let cachedAsArray = false;
17292
+ const slotCacheKeys = [];
17223
17293
  if (toCache.length === children.length && node.type === 1) {
17224
17294
  if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) {
17225
17295
  node.codegenNode.children = getCacheExpression(
@@ -17229,6 +17299,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
17229
17299
  } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {
17230
17300
  const slot = getSlotNode(node.codegenNode, "default");
17231
17301
  if (slot) {
17302
+ slotCacheKeys.push(context.cached.length);
17232
17303
  slot.returns = getCacheExpression(
17233
17304
  createArrayExpression(slot.returns)
17234
17305
  );
@@ -17238,6 +17309,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
17238
17309
  const slotName = findDir(node, "slot", true);
17239
17310
  const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);
17240
17311
  if (slot) {
17312
+ slotCacheKeys.push(context.cached.length);
17241
17313
  slot.returns = getCacheExpression(
17242
17314
  createArrayExpression(slot.returns)
17243
17315
  );
@@ -17247,9 +17319,18 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
17247
17319
  }
17248
17320
  if (!cachedAsArray) {
17249
17321
  for (const child of toCache) {
17322
+ slotCacheKeys.push(context.cached.length);
17250
17323
  child.codegenNode = context.cache(child.codegenNode);
17251
17324
  }
17252
17325
  }
17326
+ if (slotCacheKeys.length && node.type === 1 && node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {
17327
+ node.codegenNode.children.properties.push(
17328
+ createObjectProperty(
17329
+ `__`,
17330
+ createSimpleExpression(JSON.stringify(slotCacheKeys), false)
17331
+ )
17332
+ );
17333
+ }
17253
17334
  function getCacheExpression(value) {
17254
17335
  const exp = context.cache(value);
17255
17336
  if (inFor && context.hmr) {
@@ -17808,7 +17889,9 @@ function createCodegenContext(ast, {
17808
17889
  name = content;
17809
17890
  }
17810
17891
  }
17811
- addMapping(node.loc.start, name);
17892
+ if (node.loc.source) {
17893
+ addMapping(node.loc.start, name);
17894
+ }
17812
17895
  }
17813
17896
  if (newlineIndex === -3 /* Unknown */) {
17814
17897
  advancePositionWithMutation(context, code);
@@ -17824,7 +17907,7 @@ function createCodegenContext(ast, {
17824
17907
  context.column = code.length - newlineIndex;
17825
17908
  }
17826
17909
  }
17827
- if (node && node.loc !== locStub) {
17910
+ if (node && node.loc !== locStub && node.loc.source) {
17828
17911
  addMapping(node.loc.end);
17829
17912
  }
17830
17913
  }
@@ -19935,9 +20018,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
19935
20018
  hasDynamicKeys = true;
19936
20019
  if (exp) {
19937
20020
  if (isVBind) {
19938
- pushRefVForMarker();
19939
- pushMergeArg();
19940
20021
  {
20022
+ pushMergeArg();
19941
20023
  {
19942
20024
  const hasOverridableKeys = mergeArgs.some((arg2) => {
19943
20025
  if (arg2.type === 15) {
@@ -19967,6 +20049,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
19967
20049
  continue;
19968
20050
  }
19969
20051
  }
20052
+ pushRefVForMarker();
20053
+ pushMergeArg();
19970
20054
  mergeArgs.push(exp);
19971
20055
  } else {
19972
20056
  pushMergeArg({
@@ -21472,6 +21556,9 @@ const ignoreSideEffectTags = (node, context) => {
21472
21556
  };
21473
21557
 
21474
21558
  function isValidHTMLNesting(parent, child) {
21559
+ if (parent === "template") {
21560
+ return true;
21561
+ }
21475
21562
  if (parent in onlyValidChildren) {
21476
21563
  return onlyValidChildren[parent].has(child);
21477
21564
  }