vue 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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vue v3.5.13
2
+ * vue v3.5.15
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vue v3.5.13
2
+ * vue v3.5.15
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -399,6 +399,10 @@ var Vue = (function (exports) {
399
399
  * @internal
400
400
  */
401
401
  this._active = true;
402
+ /**
403
+ * @internal track `on` calls, allow `on` call multiple times
404
+ */
405
+ this._on = 0;
402
406
  /**
403
407
  * @internal
404
408
  */
@@ -469,14 +473,20 @@ var Vue = (function (exports) {
469
473
  * @internal
470
474
  */
471
475
  on() {
472
- activeEffectScope = this;
476
+ if (++this._on === 1) {
477
+ this.prevScope = activeEffectScope;
478
+ activeEffectScope = this;
479
+ }
473
480
  }
474
481
  /**
475
482
  * This should only be called on non-detached scopes
476
483
  * @internal
477
484
  */
478
485
  off() {
479
- activeEffectScope = this.parent;
486
+ if (this._on > 0 && --this._on === 0) {
487
+ activeEffectScope = this.prevScope;
488
+ this.prevScope = void 0;
489
+ }
480
490
  }
481
491
  stop(fromParent) {
482
492
  if (this._active) {
@@ -558,7 +568,7 @@ var Vue = (function (exports) {
558
568
  }
559
569
  resume() {
560
570
  if (this.flags & 64) {
561
- this.flags &= ~64;
571
+ this.flags &= -65;
562
572
  if (pausedQueueEffects.has(this)) {
563
573
  pausedQueueEffects.delete(this);
564
574
  this.trigger();
@@ -598,7 +608,7 @@ var Vue = (function (exports) {
598
608
  cleanupDeps(this);
599
609
  activeSub = prevEffect;
600
610
  shouldTrack = prevShouldTrack;
601
- this.flags &= ~2;
611
+ this.flags &= -3;
602
612
  }
603
613
  }
604
614
  stop() {
@@ -609,7 +619,7 @@ var Vue = (function (exports) {
609
619
  this.deps = this.depsTail = void 0;
610
620
  cleanupEffect(this);
611
621
  this.onStop && this.onStop();
612
- this.flags &= ~1;
622
+ this.flags &= -2;
613
623
  }
614
624
  }
615
625
  trigger() {
@@ -659,7 +669,7 @@ var Vue = (function (exports) {
659
669
  while (e) {
660
670
  const next = e.next;
661
671
  e.next = void 0;
662
- e.flags &= ~8;
672
+ e.flags &= -9;
663
673
  e = next;
664
674
  }
665
675
  }
@@ -670,7 +680,7 @@ var Vue = (function (exports) {
670
680
  while (e) {
671
681
  const next = e.next;
672
682
  e.next = void 0;
673
- e.flags &= ~8;
683
+ e.flags &= -9;
674
684
  if (e.flags & 1) {
675
685
  try {
676
686
  ;
@@ -726,17 +736,16 @@ var Vue = (function (exports) {
726
736
  if (computed.flags & 4 && !(computed.flags & 16)) {
727
737
  return;
728
738
  }
729
- computed.flags &= ~16;
739
+ computed.flags &= -17;
730
740
  if (computed.globalVersion === globalVersion) {
731
741
  return;
732
742
  }
733
743
  computed.globalVersion = globalVersion;
734
- const dep = computed.dep;
735
- computed.flags |= 2;
736
- if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
737
- computed.flags &= ~2;
744
+ if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
738
745
  return;
739
746
  }
747
+ computed.flags |= 2;
748
+ const dep = computed.dep;
740
749
  const prevSub = activeSub;
741
750
  const prevShouldTrack = shouldTrack;
742
751
  activeSub = computed;
@@ -745,6 +754,7 @@ var Vue = (function (exports) {
745
754
  prepareDeps(computed);
746
755
  const value = computed.fn(computed._value);
747
756
  if (dep.version === 0 || hasChanged(value, computed._value)) {
757
+ computed.flags |= 128;
748
758
  computed._value = value;
749
759
  dep.version++;
750
760
  }
@@ -755,7 +765,7 @@ var Vue = (function (exports) {
755
765
  activeSub = prevSub;
756
766
  shouldTrack = prevShouldTrack;
757
767
  cleanupDeps(computed);
758
- computed.flags &= ~2;
768
+ computed.flags &= -3;
759
769
  }
760
770
  }
761
771
  function removeSub(link, soft = false) {
@@ -774,7 +784,7 @@ var Vue = (function (exports) {
774
784
  if (dep.subs === link) {
775
785
  dep.subs = prevSub;
776
786
  if (!prevSub && dep.computed) {
777
- dep.computed.flags &= ~4;
787
+ dep.computed.flags &= -5;
778
788
  for (let l = dep.computed.deps; l; l = l.nextDep) {
779
789
  removeSub(l, true);
780
790
  }
@@ -1707,14 +1717,14 @@ var Vue = (function (exports) {
1707
1717
  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
1708
1718
  return target;
1709
1719
  }
1710
- const existingProxy = proxyMap.get(target);
1711
- if (existingProxy) {
1712
- return existingProxy;
1713
- }
1714
1720
  const targetType = getTargetType(target);
1715
1721
  if (targetType === 0 /* INVALID */) {
1716
1722
  return target;
1717
1723
  }
1724
+ const existingProxy = proxyMap.get(target);
1725
+ if (existingProxy) {
1726
+ return existingProxy;
1727
+ }
1718
1728
  const proxy = new Proxy(
1719
1729
  target,
1720
1730
  targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2137,11 +2147,11 @@ var Vue = (function (exports) {
2137
2147
  oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
2138
2148
  boundCleanup
2139
2149
  ];
2150
+ oldValue = newValue;
2140
2151
  call ? call(cb, 3, args) : (
2141
2152
  // @ts-expect-error
2142
2153
  cb(...args)
2143
2154
  );
2144
- oldValue = newValue;
2145
2155
  } finally {
2146
2156
  activeWatcher = currentWatcher;
2147
2157
  }
@@ -2558,11 +2568,11 @@ var Vue = (function (exports) {
2558
2568
  queue.splice(i, 1);
2559
2569
  i--;
2560
2570
  if (cb.flags & 4) {
2561
- cb.flags &= ~1;
2571
+ cb.flags &= -2;
2562
2572
  }
2563
2573
  cb();
2564
2574
  if (!(cb.flags & 4)) {
2565
- cb.flags &= ~1;
2575
+ cb.flags &= -2;
2566
2576
  }
2567
2577
  }
2568
2578
  }
@@ -2587,10 +2597,10 @@ var Vue = (function (exports) {
2587
2597
  continue;
2588
2598
  }
2589
2599
  if (cb.flags & 4) {
2590
- cb.flags &= ~1;
2600
+ cb.flags &= -2;
2591
2601
  }
2592
2602
  if (!(cb.flags & 8)) cb();
2593
- cb.flags &= ~1;
2603
+ cb.flags &= -2;
2594
2604
  }
2595
2605
  activePostFlushCbs = null;
2596
2606
  postFlushIndex = 0;
@@ -2626,7 +2636,7 @@ var Vue = (function (exports) {
2626
2636
  for (; flushIndex < queue.length; flushIndex++) {
2627
2637
  const job = queue[flushIndex];
2628
2638
  if (job) {
2629
- job.flags &= ~1;
2639
+ job.flags &= -2;
2630
2640
  }
2631
2641
  }
2632
2642
  flushIndex = -1;
@@ -3066,15 +3076,16 @@ var Vue = (function (exports) {
3066
3076
  updateCssVars(n2, true);
3067
3077
  }
3068
3078
  if (isTeleportDeferred(n2.props)) {
3079
+ n2.el.__isMounted = false;
3069
3080
  queuePostRenderEffect(() => {
3070
3081
  mountToTarget();
3071
- n2.el.__isMounted = true;
3082
+ delete n2.el.__isMounted;
3072
3083
  }, parentSuspense);
3073
3084
  } else {
3074
3085
  mountToTarget();
3075
3086
  }
3076
3087
  } else {
3077
- if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3088
+ if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
3078
3089
  queuePostRenderEffect(() => {
3079
3090
  TeleportImpl.process(
3080
3091
  n1,
@@ -3088,7 +3099,6 @@ var Vue = (function (exports) {
3088
3099
  optimized,
3089
3100
  internals
3090
3101
  );
3091
- delete n1.el.__isMounted;
3092
3102
  }, parentSuspense);
3093
3103
  return;
3094
3104
  }
@@ -3115,7 +3125,7 @@ var Vue = (function (exports) {
3115
3125
  namespace,
3116
3126
  slotScopeIds
3117
3127
  );
3118
- traverseStaticChildren(n1, n2, true);
3128
+ traverseStaticChildren(n1, n2, false);
3119
3129
  } else if (!optimized) {
3120
3130
  patchChildren(
3121
3131
  n1,
@@ -4076,6 +4086,8 @@ var Vue = (function (exports) {
4076
4086
  ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4077
4087
  const content = el.content.firstChild;
4078
4088
  if (needCallTransitionHooks) {
4089
+ const cls = content.getAttribute("class");
4090
+ if (cls) content.$cls = cls;
4079
4091
  transition.beforeEnter(content);
4080
4092
  }
4081
4093
  replaceNode(content, el, parentComponent);
@@ -4328,7 +4340,12 @@ Server rendered element contains fewer child nodes than client vdom.`
4328
4340
  let actual;
4329
4341
  let expected;
4330
4342
  if (key === "class") {
4331
- actual = el.getAttribute("class");
4343
+ if (el.$cls) {
4344
+ actual = el.$cls;
4345
+ delete el.$cls;
4346
+ } else {
4347
+ actual = el.getAttribute("class");
4348
+ }
4332
4349
  expected = normalizeClass(clientValue);
4333
4350
  if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
4334
4351
  mismatchType = 2 /* CLASS */;
@@ -4623,14 +4640,25 @@ Server rendered element contains fewer child nodes than client vdom.`
4623
4640
  name: "AsyncComponentWrapper",
4624
4641
  __asyncLoader: load,
4625
4642
  __asyncHydrate(el, instance, hydrate) {
4643
+ let patched = false;
4626
4644
  const doHydrate = hydrateStrategy ? () => {
4645
+ const performHydrate = () => {
4646
+ if (patched) {
4647
+ warn$1(
4648
+ `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.`
4649
+ );
4650
+ return;
4651
+ }
4652
+ hydrate();
4653
+ };
4627
4654
  const teardown = hydrateStrategy(
4628
- hydrate,
4655
+ performHydrate,
4629
4656
  (cb) => forEachElement(el, cb)
4630
4657
  );
4631
4658
  if (teardown) {
4632
4659
  (instance.bum || (instance.bum = [])).push(teardown);
4633
4660
  }
4661
+ (instance.u || (instance.u = [])).push(() => patched = true);
4634
4662
  } : hydrate;
4635
4663
  if (resolvedComp) {
4636
4664
  doHydrate();
@@ -4794,6 +4822,9 @@ Server rendered element contains fewer child nodes than client vdom.`
4794
4822
  {
4795
4823
  devtoolsComponentAdded(instance2);
4796
4824
  }
4825
+ {
4826
+ instance2.__keepAliveStorageContainer = storageContainer;
4827
+ }
4797
4828
  };
4798
4829
  function unmount(vnode) {
4799
4830
  resetShapeFlag(vnode);
@@ -4881,7 +4912,7 @@ Server rendered element contains fewer child nodes than client vdom.`
4881
4912
  );
4882
4913
  const { include, exclude, max } = props;
4883
4914
  if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
4884
- vnode.shapeFlag &= ~256;
4915
+ vnode.shapeFlag &= -257;
4885
4916
  current = vnode;
4886
4917
  return rawVNode;
4887
4918
  }
@@ -4968,8 +4999,8 @@ Server rendered element contains fewer child nodes than client vdom.`
4968
4999
  }, target);
4969
5000
  }
4970
5001
  function resetShapeFlag(vnode) {
4971
- vnode.shapeFlag &= ~256;
4972
- vnode.shapeFlag &= ~512;
5002
+ vnode.shapeFlag &= -257;
5003
+ vnode.shapeFlag &= -513;
4973
5004
  }
4974
5005
  function getInnerChild(vnode) {
4975
5006
  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5084,14 +5115,16 @@ If this is a native custom element, make sure to exclude it from component resol
5084
5115
  if (sourceIsArray || isString(source)) {
5085
5116
  const sourceIsReactiveArray = sourceIsArray && isReactive(source);
5086
5117
  let needsWrap = false;
5118
+ let isReadonlySource = false;
5087
5119
  if (sourceIsReactiveArray) {
5088
5120
  needsWrap = !isShallow(source);
5121
+ isReadonlySource = isReadonly(source);
5089
5122
  source = shallowReadArray(source);
5090
5123
  }
5091
5124
  ret = new Array(source.length);
5092
5125
  for (let i = 0, l = source.length; i < l; i++) {
5093
5126
  ret[i] = renderItem(
5094
- needsWrap ? toReactive(source[i]) : source[i],
5127
+ needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
5095
5128
  i,
5096
5129
  void 0,
5097
5130
  cached && cached[i]
@@ -6110,11 +6143,9 @@ If this is a native custom element, make sure to exclude it from component resol
6110
6143
  }
6111
6144
  {
6112
6145
  context.reload = () => {
6113
- render(
6114
- cloneVNode(vnode),
6115
- rootContainer,
6116
- namespace
6117
- );
6146
+ const cloned = cloneVNode(vnode);
6147
+ cloned.el = null;
6148
+ render(cloned, rootContainer, namespace);
6118
6149
  };
6119
6150
  }
6120
6151
  if (isHydrate && hydrate) {
@@ -6164,9 +6195,15 @@ If you want to remount the same app, move your app creation logic into a factory
6164
6195
  },
6165
6196
  provide(key, value) {
6166
6197
  if (key in context.provides) {
6167
- warn$1(
6168
- `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
6169
- );
6198
+ if (hasOwn(context.provides, key)) {
6199
+ warn$1(
6200
+ `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
6201
+ );
6202
+ } else {
6203
+ warn$1(
6204
+ `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`
6205
+ );
6206
+ }
6170
6207
  }
6171
6208
  context.provides[key] = value;
6172
6209
  return app;
@@ -6203,7 +6240,7 @@ If you want to remount the same app, move your app creation logic into a factory
6203
6240
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
6204
6241
  const instance = currentInstance || currentRenderingInstance;
6205
6242
  if (instance || currentApp) {
6206
- const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
6243
+ let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
6207
6244
  if (provides && key in provides) {
6208
6245
  return provides[key];
6209
6246
  } else if (arguments.length > 1) {
@@ -6637,7 +6674,7 @@ If you want to remount the same app, move your app creation logic into a factory
6637
6674
  return rawSlot;
6638
6675
  }
6639
6676
  const normalized = withCtx((...args) => {
6640
- if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
6677
+ if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
6641
6678
  warn$1(
6642
6679
  `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.`
6643
6680
  );
@@ -6676,7 +6713,7 @@ If you want to remount the same app, move your app creation logic into a factory
6676
6713
  };
6677
6714
  const assignSlots = (slots, children, optimized) => {
6678
6715
  for (const key in children) {
6679
- if (optimized || key !== "_") {
6716
+ if (optimized || !isInternalKey(key)) {
6680
6717
  slots[key] = children[key];
6681
6718
  }
6682
6719
  }
@@ -7200,7 +7237,7 @@ If you want to remount the same app, move your app creation logic into a factory
7200
7237
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
7201
7238
  // which also requires the correct parent container
7202
7239
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
7203
- oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
7240
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
7204
7241
  // In other cases, the parent container is not actually used so we
7205
7242
  // just pass the block element here to avoid a DOM parentNode call.
7206
7243
  fallbackContainer
@@ -7362,8 +7399,8 @@ If you want to remount the same app, move your app creation logic into a factory
7362
7399
  endMeasure(instance, `init`);
7363
7400
  }
7364
7401
  }
7402
+ if (isHmrUpdating) initialVNode.el = null;
7365
7403
  if (instance.asyncDep) {
7366
- if (isHmrUpdating) initialVNode.el = null;
7367
7404
  parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
7368
7405
  if (!initialVNode.el) {
7369
7406
  const placeholder = instance.subTree = createVNode(Comment);
@@ -7925,7 +7962,13 @@ If you want to remount the same app, move your app creation logic into a factory
7925
7962
  queuePostRenderEffect(() => transition.enter(el), parentSuspense);
7926
7963
  } else {
7927
7964
  const { leave, delayLeave, afterLeave } = transition;
7928
- const remove2 = () => hostInsert(el, container, anchor);
7965
+ const remove2 = () => {
7966
+ if (vnode.ctx.isUnmounted) {
7967
+ hostRemove(el);
7968
+ } else {
7969
+ hostInsert(el, container, anchor);
7970
+ }
7971
+ };
7929
7972
  const performLeave = () => {
7930
7973
  leave(el, () => {
7931
7974
  remove2();
@@ -7958,7 +8001,9 @@ If you want to remount the same app, move your app creation logic into a factory
7958
8001
  optimized = false;
7959
8002
  }
7960
8003
  if (ref != null) {
8004
+ pauseTracking();
7961
8005
  setRef(ref, null, parentSuspense, vnode, true);
8006
+ resetTracking();
7962
8007
  }
7963
8008
  if (cacheIndex != null) {
7964
8009
  parentComponent.renderCache[cacheIndex] = void 0;
@@ -8070,12 +8115,27 @@ If you want to remount the same app, move your app creation logic into a factory
8070
8115
  if (instance.type.__hmrId) {
8071
8116
  unregisterHMR(instance);
8072
8117
  }
8073
- const { bum, scope, job, subTree, um, m, a } = instance;
8118
+ const {
8119
+ bum,
8120
+ scope,
8121
+ job,
8122
+ subTree,
8123
+ um,
8124
+ m,
8125
+ a,
8126
+ parent,
8127
+ slots: { __: slotCacheKeys }
8128
+ } = instance;
8074
8129
  invalidateMount(m);
8075
8130
  invalidateMount(a);
8076
8131
  if (bum) {
8077
8132
  invokeArrayFns(bum);
8078
8133
  }
8134
+ if (parent && isArray(slotCacheKeys)) {
8135
+ slotCacheKeys.forEach((v) => {
8136
+ parent.renderCache[v] = void 0;
8137
+ });
8138
+ }
8079
8139
  scope.stop();
8080
8140
  if (job) {
8081
8141
  job.flags |= 8;
@@ -8171,8 +8231,8 @@ If you want to remount the same app, move your app creation logic into a factory
8171
8231
  effect.flags |= 32;
8172
8232
  job.flags |= 4;
8173
8233
  } else {
8174
- effect.flags &= ~32;
8175
- job.flags &= ~4;
8234
+ effect.flags &= -33;
8235
+ job.flags &= -5;
8176
8236
  }
8177
8237
  }
8178
8238
  function needTransition(parentSuspense, transition) {
@@ -8199,6 +8259,9 @@ If you want to remount the same app, move your app creation logic into a factory
8199
8259
  if (c2.type === Comment && !c2.el) {
8200
8260
  c2.el = c1.el;
8201
8261
  }
8262
+ {
8263
+ c2.el && (c2.el.__vnode = c2);
8264
+ }
8202
8265
  }
8203
8266
  }
8204
8267
  }
@@ -9516,8 +9579,8 @@ If you want to remount the same app, move your app creation logic into a factory
9516
9579
  if (n2.shapeFlag & 6 && n1.component) {
9517
9580
  const dirtyInstances = hmrDirtyComponents.get(n2.type);
9518
9581
  if (dirtyInstances && dirtyInstances.has(n1.component)) {
9519
- n1.shapeFlag &= ~256;
9520
- n2.shapeFlag &= ~512;
9582
+ n1.shapeFlag &= -257;
9583
+ n2.shapeFlag &= -513;
9521
9584
  return false;
9522
9585
  }
9523
9586
  }
@@ -9966,7 +10029,7 @@ Component that was made reactive: `,
9966
10029
  const { props, children } = instance.vnode;
9967
10030
  const isStateful = isStatefulComponent(instance);
9968
10031
  initProps(instance, props, isStateful, isSSR);
9969
- initSlots(instance, children, optimized);
10032
+ initSlots(instance, children, optimized || isSSR);
9970
10033
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
9971
10034
  isSSR && setInSSRSetupState(false);
9972
10035
  return setupResult;
@@ -10295,13 +10358,15 @@ Component that was made reactive: `,
10295
10358
  if (obj.__isVue) {
10296
10359
  return ["div", vueStyle, `VueInstance`];
10297
10360
  } else if (isRef(obj)) {
10361
+ pauseTracking();
10362
+ const value = obj.value;
10363
+ resetTracking();
10298
10364
  return [
10299
10365
  "div",
10300
10366
  {},
10301
10367
  ["span", vueStyle, genRefFlag(obj)],
10302
10368
  "<",
10303
- // avoid debugger accessing value affecting behavior
10304
- formatValue("_value" in obj ? obj._value : obj),
10369
+ formatValue(value),
10305
10370
  `>`
10306
10371
  ];
10307
10372
  } else if (isReactive(obj)) {
@@ -10482,7 +10547,7 @@ Component that was made reactive: `,
10482
10547
  return true;
10483
10548
  }
10484
10549
 
10485
- const version = "3.5.13";
10550
+ const version = "3.5.15";
10486
10551
  const warn = warn$1 ;
10487
10552
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10488
10553
  const devtools = devtools$1 ;
@@ -11281,7 +11346,7 @@ Expected function or array of functions, received type ${typeof value}.`
11281
11346
  }
11282
11347
  return false;
11283
11348
  }
11284
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
11349
+ if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
11285
11350
  return false;
11286
11351
  }
11287
11352
  if (key === "form") {
@@ -11364,13 +11429,10 @@ Expected function or array of functions, received type ${typeof value}.`
11364
11429
  this._root = this;
11365
11430
  }
11366
11431
  }
11367
- if (!this._def.__asyncLoader) {
11368
- this._resolveProps(this._def);
11369
- }
11370
11432
  }
11371
11433
  connectedCallback() {
11372
11434
  if (!this.isConnected) return;
11373
- if (!this.shadowRoot) {
11435
+ if (!this.shadowRoot && !this._resolved) {
11374
11436
  this._parseSlots();
11375
11437
  }
11376
11438
  this._connected = true;
@@ -11383,8 +11445,7 @@ Expected function or array of functions, received type ${typeof value}.`
11383
11445
  }
11384
11446
  if (!this._instance) {
11385
11447
  if (this._resolved) {
11386
- this._setParent();
11387
- this._update();
11448
+ this._mount(this._def);
11388
11449
  } else {
11389
11450
  if (parent && parent._pendingResolve) {
11390
11451
  this._pendingResolve = parent._pendingResolve.then(() => {
@@ -11400,7 +11461,15 @@ Expected function or array of functions, received type ${typeof value}.`
11400
11461
  _setParent(parent = this._parent) {
11401
11462
  if (parent) {
11402
11463
  this._instance.parent = parent._instance;
11403
- this._instance.provides = parent._instance.provides;
11464
+ this._inheritParentContext(parent);
11465
+ }
11466
+ }
11467
+ _inheritParentContext(parent = this._parent) {
11468
+ if (parent && this._app) {
11469
+ Object.setPrototypeOf(
11470
+ this._app._context.provides,
11471
+ parent._instance.provides
11472
+ );
11404
11473
  }
11405
11474
  }
11406
11475
  disconnectedCallback() {
@@ -11450,9 +11519,7 @@ Expected function or array of functions, received type ${typeof value}.`
11450
11519
  }
11451
11520
  }
11452
11521
  this._numberProps = numberProps;
11453
- if (isAsync) {
11454
- this._resolveProps(def);
11455
- }
11522
+ this._resolveProps(def);
11456
11523
  if (this.shadowRoot) {
11457
11524
  this._applyStyles(styles);
11458
11525
  } else if (styles) {
@@ -11476,6 +11543,7 @@ Expected function or array of functions, received type ${typeof value}.`
11476
11543
  def.name = "VueElement";
11477
11544
  }
11478
11545
  this._app = this._createApp(def);
11546
+ this._inheritParentContext();
11479
11547
  if (def.configureApp) {
11480
11548
  def.configureApp(this._app);
11481
11549
  }
@@ -11560,7 +11628,9 @@ Expected function or array of functions, received type ${typeof value}.`
11560
11628
  }
11561
11629
  }
11562
11630
  _update() {
11563
- render(this._createVNode(), this._root);
11631
+ const vnode = this._createVNode();
11632
+ if (this._app) vnode.appContext = this._app._context;
11633
+ render(vnode, this._root);
11564
11634
  }
11565
11635
  _createVNode() {
11566
11636
  const baseProps = {};
@@ -11758,6 +11828,7 @@ Expected function or array of functions, received type ${typeof value}.`
11758
11828
  instance.vnode.el,
11759
11829
  moveClass
11760
11830
  )) {
11831
+ prevChildren = [];
11761
11832
  return;
11762
11833
  }
11763
11834
  prevChildren.forEach(callPendingCbs);
@@ -11781,6 +11852,7 @@ Expected function or array of functions, received type ${typeof value}.`
11781
11852
  };
11782
11853
  el.addEventListener("transitionend", cb);
11783
11854
  });
11855
+ prevChildren = [];
11784
11856
  });
11785
11857
  return () => {
11786
11858
  const rawProps = toRaw(props);
@@ -14417,6 +14489,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14417
14489
  }
14418
14490
  }
14419
14491
  let cachedAsArray = false;
14492
+ const slotCacheKeys = [];
14420
14493
  if (toCache.length === children.length && node.type === 1) {
14421
14494
  if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) {
14422
14495
  node.codegenNode.children = getCacheExpression(
@@ -14426,6 +14499,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14426
14499
  } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {
14427
14500
  const slot = getSlotNode(node.codegenNode, "default");
14428
14501
  if (slot) {
14502
+ slotCacheKeys.push(context.cached.length);
14429
14503
  slot.returns = getCacheExpression(
14430
14504
  createArrayExpression(slot.returns)
14431
14505
  );
@@ -14435,6 +14509,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14435
14509
  const slotName = findDir(node, "slot", true);
14436
14510
  const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);
14437
14511
  if (slot) {
14512
+ slotCacheKeys.push(context.cached.length);
14438
14513
  slot.returns = getCacheExpression(
14439
14514
  createArrayExpression(slot.returns)
14440
14515
  );
@@ -14444,9 +14519,18 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14444
14519
  }
14445
14520
  if (!cachedAsArray) {
14446
14521
  for (const child of toCache) {
14522
+ slotCacheKeys.push(context.cached.length);
14447
14523
  child.codegenNode = context.cache(child.codegenNode);
14448
14524
  }
14449
14525
  }
14526
+ 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) {
14527
+ node.codegenNode.children.properties.push(
14528
+ createObjectProperty(
14529
+ `__`,
14530
+ createSimpleExpression(JSON.stringify(slotCacheKeys), false)
14531
+ )
14532
+ );
14533
+ }
14450
14534
  function getCacheExpression(value) {
14451
14535
  const exp = context.cache(value);
14452
14536
  if (inFor && context.hmr) {
@@ -17091,8 +17175,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17091
17175
  context.onError(createCompilerError(44, exp.loc));
17092
17176
  return createTransformProps();
17093
17177
  }
17094
- const maybeRef = false;
17095
- if (!expString.trim() || !isMemberExpression(exp) && !maybeRef) {
17178
+ if (!expString.trim() || !isMemberExpression(exp) && true) {
17096
17179
  context.onError(
17097
17180
  createCompilerError(42, exp.loc)
17098
17181
  );
@@ -17661,6 +17744,9 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17661
17744
  };
17662
17745
 
17663
17746
  function isValidHTMLNesting(parent, child) {
17747
+ if (parent === "template") {
17748
+ return true;
17749
+ }
17664
17750
  if (parent in onlyValidChildren) {
17665
17751
  return onlyValidChildren[parent].has(child);
17666
17752
  }