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.
package/dist/vue.cjs.js CHANGED
@@ -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
  **/
@@ -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
  **/
@@ -396,6 +396,10 @@ class EffectScope {
396
396
  * @internal
397
397
  */
398
398
  this._active = true;
399
+ /**
400
+ * @internal track `on` calls, allow `on` call multiple times
401
+ */
402
+ this._on = 0;
399
403
  /**
400
404
  * @internal
401
405
  */
@@ -466,14 +470,20 @@ class EffectScope {
466
470
  * @internal
467
471
  */
468
472
  on() {
469
- activeEffectScope = this;
473
+ if (++this._on === 1) {
474
+ this.prevScope = activeEffectScope;
475
+ activeEffectScope = this;
476
+ }
470
477
  }
471
478
  /**
472
479
  * This should only be called on non-detached scopes
473
480
  * @internal
474
481
  */
475
482
  off() {
476
- activeEffectScope = this.parent;
483
+ if (this._on > 0 && --this._on === 0) {
484
+ activeEffectScope = this.prevScope;
485
+ this.prevScope = void 0;
486
+ }
477
487
  }
478
488
  stop(fromParent) {
479
489
  if (this._active) {
@@ -555,7 +565,7 @@ class ReactiveEffect {
555
565
  }
556
566
  resume() {
557
567
  if (this.flags & 64) {
558
- this.flags &= ~64;
568
+ this.flags &= -65;
559
569
  if (pausedQueueEffects.has(this)) {
560
570
  pausedQueueEffects.delete(this);
561
571
  this.trigger();
@@ -595,7 +605,7 @@ class ReactiveEffect {
595
605
  cleanupDeps(this);
596
606
  activeSub = prevEffect;
597
607
  shouldTrack = prevShouldTrack;
598
- this.flags &= ~2;
608
+ this.flags &= -3;
599
609
  }
600
610
  }
601
611
  stop() {
@@ -606,7 +616,7 @@ class ReactiveEffect {
606
616
  this.deps = this.depsTail = void 0;
607
617
  cleanupEffect(this);
608
618
  this.onStop && this.onStop();
609
- this.flags &= ~1;
619
+ this.flags &= -2;
610
620
  }
611
621
  }
612
622
  trigger() {
@@ -656,7 +666,7 @@ function endBatch() {
656
666
  while (e) {
657
667
  const next = e.next;
658
668
  e.next = void 0;
659
- e.flags &= ~8;
669
+ e.flags &= -9;
660
670
  e = next;
661
671
  }
662
672
  }
@@ -667,7 +677,7 @@ function endBatch() {
667
677
  while (e) {
668
678
  const next = e.next;
669
679
  e.next = void 0;
670
- e.flags &= ~8;
680
+ e.flags &= -9;
671
681
  if (e.flags & 1) {
672
682
  try {
673
683
  ;
@@ -723,17 +733,16 @@ function refreshComputed(computed) {
723
733
  if (computed.flags & 4 && !(computed.flags & 16)) {
724
734
  return;
725
735
  }
726
- computed.flags &= ~16;
736
+ computed.flags &= -17;
727
737
  if (computed.globalVersion === globalVersion) {
728
738
  return;
729
739
  }
730
740
  computed.globalVersion = globalVersion;
731
- const dep = computed.dep;
732
- computed.flags |= 2;
733
- if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
734
- computed.flags &= ~2;
741
+ if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
735
742
  return;
736
743
  }
744
+ computed.flags |= 2;
745
+ const dep = computed.dep;
737
746
  const prevSub = activeSub;
738
747
  const prevShouldTrack = shouldTrack;
739
748
  activeSub = computed;
@@ -742,6 +751,7 @@ function refreshComputed(computed) {
742
751
  prepareDeps(computed);
743
752
  const value = computed.fn(computed._value);
744
753
  if (dep.version === 0 || hasChanged(value, computed._value)) {
754
+ computed.flags |= 128;
745
755
  computed._value = value;
746
756
  dep.version++;
747
757
  }
@@ -752,7 +762,7 @@ function refreshComputed(computed) {
752
762
  activeSub = prevSub;
753
763
  shouldTrack = prevShouldTrack;
754
764
  cleanupDeps(computed);
755
- computed.flags &= ~2;
765
+ computed.flags &= -3;
756
766
  }
757
767
  }
758
768
  function removeSub(link, soft = false) {
@@ -771,7 +781,7 @@ function removeSub(link, soft = false) {
771
781
  if (dep.subs === link) {
772
782
  dep.subs = prevSub;
773
783
  if (!prevSub && dep.computed) {
774
- dep.computed.flags &= ~4;
784
+ dep.computed.flags &= -5;
775
785
  for (let l = dep.computed.deps; l; l = l.nextDep) {
776
786
  removeSub(l, true);
777
787
  }
@@ -1704,14 +1714,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
1704
1714
  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
1705
1715
  return target;
1706
1716
  }
1707
- const existingProxy = proxyMap.get(target);
1708
- if (existingProxy) {
1709
- return existingProxy;
1710
- }
1711
1717
  const targetType = getTargetType(target);
1712
1718
  if (targetType === 0 /* INVALID */) {
1713
1719
  return target;
1714
1720
  }
1721
+ const existingProxy = proxyMap.get(target);
1722
+ if (existingProxy) {
1723
+ return existingProxy;
1724
+ }
1715
1725
  const proxy = new Proxy(
1716
1726
  target,
1717
1727
  targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2134,11 +2144,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2134
2144
  oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
2135
2145
  boundCleanup
2136
2146
  ];
2147
+ oldValue = newValue;
2137
2148
  call ? call(cb, 3, args) : (
2138
2149
  // @ts-expect-error
2139
2150
  cb(...args)
2140
2151
  );
2141
- oldValue = newValue;
2142
2152
  } finally {
2143
2153
  activeWatcher = currentWatcher;
2144
2154
  }
@@ -2555,11 +2565,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2555
2565
  queue.splice(i, 1);
2556
2566
  i--;
2557
2567
  if (cb.flags & 4) {
2558
- cb.flags &= ~1;
2568
+ cb.flags &= -2;
2559
2569
  }
2560
2570
  cb();
2561
2571
  if (!(cb.flags & 4)) {
2562
- cb.flags &= ~1;
2572
+ cb.flags &= -2;
2563
2573
  }
2564
2574
  }
2565
2575
  }
@@ -2584,10 +2594,10 @@ function flushPostFlushCbs(seen) {
2584
2594
  continue;
2585
2595
  }
2586
2596
  if (cb.flags & 4) {
2587
- cb.flags &= ~1;
2597
+ cb.flags &= -2;
2588
2598
  }
2589
2599
  if (!(cb.flags & 8)) cb();
2590
- cb.flags &= ~1;
2600
+ cb.flags &= -2;
2591
2601
  }
2592
2602
  activePostFlushCbs = null;
2593
2603
  postFlushIndex = 0;
@@ -2623,7 +2633,7 @@ function flushJobs(seen) {
2623
2633
  for (; flushIndex < queue.length; flushIndex++) {
2624
2634
  const job = queue[flushIndex];
2625
2635
  if (job) {
2626
- job.flags &= ~1;
2636
+ job.flags &= -2;
2627
2637
  }
2628
2638
  }
2629
2639
  flushIndex = -1;
@@ -3063,15 +3073,16 @@ const TeleportImpl = {
3063
3073
  updateCssVars(n2, true);
3064
3074
  }
3065
3075
  if (isTeleportDeferred(n2.props)) {
3076
+ n2.el.__isMounted = false;
3066
3077
  queuePostRenderEffect(() => {
3067
3078
  mountToTarget();
3068
- n2.el.__isMounted = true;
3079
+ delete n2.el.__isMounted;
3069
3080
  }, parentSuspense);
3070
3081
  } else {
3071
3082
  mountToTarget();
3072
3083
  }
3073
3084
  } else {
3074
- if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3085
+ if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
3075
3086
  queuePostRenderEffect(() => {
3076
3087
  TeleportImpl.process(
3077
3088
  n1,
@@ -3085,7 +3096,6 @@ const TeleportImpl = {
3085
3096
  optimized,
3086
3097
  internals
3087
3098
  );
3088
- delete n1.el.__isMounted;
3089
3099
  }, parentSuspense);
3090
3100
  return;
3091
3101
  }
@@ -3112,7 +3122,7 @@ const TeleportImpl = {
3112
3122
  namespace,
3113
3123
  slotScopeIds
3114
3124
  );
3115
- traverseStaticChildren(n1, n2, true);
3125
+ traverseStaticChildren(n1, n2, false);
3116
3126
  } else if (!optimized) {
3117
3127
  patchChildren(
3118
3128
  n1,
@@ -4073,6 +4083,8 @@ function createHydrationFunctions(rendererInternals) {
4073
4083
  ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4074
4084
  const content = el.content.firstChild;
4075
4085
  if (needCallTransitionHooks) {
4086
+ const cls = content.getAttribute("class");
4087
+ if (cls) content.$cls = cls;
4076
4088
  transition.beforeEnter(content);
4077
4089
  }
4078
4090
  replaceNode(content, el, parentComponent);
@@ -4325,7 +4337,12 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
4325
4337
  let actual;
4326
4338
  let expected;
4327
4339
  if (key === "class") {
4328
- actual = el.getAttribute("class");
4340
+ if (el.$cls) {
4341
+ actual = el.$cls;
4342
+ delete el.$cls;
4343
+ } else {
4344
+ actual = el.getAttribute("class");
4345
+ }
4329
4346
  expected = normalizeClass(clientValue);
4330
4347
  if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
4331
4348
  mismatchType = 2 /* CLASS */;
@@ -4620,14 +4637,25 @@ function defineAsyncComponent(source) {
4620
4637
  name: "AsyncComponentWrapper",
4621
4638
  __asyncLoader: load,
4622
4639
  __asyncHydrate(el, instance, hydrate) {
4640
+ let patched = false;
4623
4641
  const doHydrate = hydrateStrategy ? () => {
4642
+ const performHydrate = () => {
4643
+ if (patched) {
4644
+ warn$1(
4645
+ `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.`
4646
+ );
4647
+ return;
4648
+ }
4649
+ hydrate();
4650
+ };
4624
4651
  const teardown = hydrateStrategy(
4625
- hydrate,
4652
+ performHydrate,
4626
4653
  (cb) => forEachElement(el, cb)
4627
4654
  );
4628
4655
  if (teardown) {
4629
4656
  (instance.bum || (instance.bum = [])).push(teardown);
4630
4657
  }
4658
+ (instance.u || (instance.u = [])).push(() => patched = true);
4631
4659
  } : hydrate;
4632
4660
  if (resolvedComp) {
4633
4661
  doHydrate();
@@ -4797,6 +4825,9 @@ const KeepAliveImpl = {
4797
4825
  {
4798
4826
  devtoolsComponentAdded(instance2);
4799
4827
  }
4828
+ {
4829
+ instance2.__keepAliveStorageContainer = storageContainer;
4830
+ }
4800
4831
  };
4801
4832
  function unmount(vnode) {
4802
4833
  resetShapeFlag(vnode);
@@ -4884,7 +4915,7 @@ const KeepAliveImpl = {
4884
4915
  );
4885
4916
  const { include, exclude, max } = props;
4886
4917
  if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
4887
- vnode.shapeFlag &= ~256;
4918
+ vnode.shapeFlag &= -257;
4888
4919
  current = vnode;
4889
4920
  return rawVNode;
4890
4921
  }
@@ -4971,8 +5002,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
4971
5002
  }, target);
4972
5003
  }
4973
5004
  function resetShapeFlag(vnode) {
4974
- vnode.shapeFlag &= ~256;
4975
- vnode.shapeFlag &= ~512;
5005
+ vnode.shapeFlag &= -257;
5006
+ vnode.shapeFlag &= -513;
4976
5007
  }
4977
5008
  function getInnerChild(vnode) {
4978
5009
  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5087,14 +5118,16 @@ function renderList(source, renderItem, cache, index) {
5087
5118
  if (sourceIsArray || isString(source)) {
5088
5119
  const sourceIsReactiveArray = sourceIsArray && isReactive(source);
5089
5120
  let needsWrap = false;
5121
+ let isReadonlySource = false;
5090
5122
  if (sourceIsReactiveArray) {
5091
5123
  needsWrap = !isShallow(source);
5124
+ isReadonlySource = isReadonly(source);
5092
5125
  source = shallowReadArray(source);
5093
5126
  }
5094
5127
  ret = new Array(source.length);
5095
5128
  for (let i = 0, l = source.length; i < l; i++) {
5096
5129
  ret[i] = renderItem(
5097
- needsWrap ? toReactive(source[i]) : source[i],
5130
+ needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
5098
5131
  i,
5099
5132
  void 0,
5100
5133
  cached && cached[i]
@@ -6116,11 +6149,9 @@ function createAppAPI(render, hydrate) {
6116
6149
  }
6117
6150
  {
6118
6151
  context.reload = () => {
6119
- render(
6120
- cloneVNode(vnode),
6121
- rootContainer,
6122
- namespace
6123
- );
6152
+ const cloned = cloneVNode(vnode);
6153
+ cloned.el = null;
6154
+ render(cloned, rootContainer, namespace);
6124
6155
  };
6125
6156
  }
6126
6157
  if (isHydrate && hydrate) {
@@ -6170,9 +6201,15 @@ If you want to remount the same app, move your app creation logic into a factory
6170
6201
  },
6171
6202
  provide(key, value) {
6172
6203
  if (key in context.provides) {
6173
- warn$1(
6174
- `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
6175
- );
6204
+ if (hasOwn(context.provides, key)) {
6205
+ warn$1(
6206
+ `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
6207
+ );
6208
+ } else {
6209
+ warn$1(
6210
+ `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`
6211
+ );
6212
+ }
6176
6213
  }
6177
6214
  context.provides[key] = value;
6178
6215
  return app;
@@ -6209,7 +6246,7 @@ function provide(key, value) {
6209
6246
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
6210
6247
  const instance = currentInstance || currentRenderingInstance;
6211
6248
  if (instance || currentApp) {
6212
- const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
6249
+ let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
6213
6250
  if (provides && key in provides) {
6214
6251
  return provides[key];
6215
6252
  } else if (arguments.length > 1) {
@@ -6643,7 +6680,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
6643
6680
  return rawSlot;
6644
6681
  }
6645
6682
  const normalized = withCtx((...args) => {
6646
- if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
6683
+ if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
6647
6684
  warn$1(
6648
6685
  `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.`
6649
6686
  );
@@ -6682,7 +6719,7 @@ const normalizeVNodeSlots = (instance, children) => {
6682
6719
  };
6683
6720
  const assignSlots = (slots, children, optimized) => {
6684
6721
  for (const key in children) {
6685
- if (optimized || key !== "_") {
6722
+ if (optimized || !isInternalKey(key)) {
6686
6723
  slots[key] = children[key];
6687
6724
  }
6688
6725
  }
@@ -7206,7 +7243,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7206
7243
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
7207
7244
  // which also requires the correct parent container
7208
7245
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
7209
- oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
7246
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
7210
7247
  // In other cases, the parent container is not actually used so we
7211
7248
  // just pass the block element here to avoid a DOM parentNode call.
7212
7249
  fallbackContainer
@@ -7368,8 +7405,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7368
7405
  endMeasure(instance, `init`);
7369
7406
  }
7370
7407
  }
7408
+ if (isHmrUpdating) initialVNode.el = null;
7371
7409
  if (instance.asyncDep) {
7372
- if (isHmrUpdating) initialVNode.el = null;
7373
7410
  parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
7374
7411
  if (!initialVNode.el) {
7375
7412
  const placeholder = instance.subTree = createVNode(Comment);
@@ -7931,7 +7968,13 @@ function baseCreateRenderer(options, createHydrationFns) {
7931
7968
  queuePostRenderEffect(() => transition.enter(el), parentSuspense);
7932
7969
  } else {
7933
7970
  const { leave, delayLeave, afterLeave } = transition;
7934
- const remove2 = () => hostInsert(el, container, anchor);
7971
+ const remove2 = () => {
7972
+ if (vnode.ctx.isUnmounted) {
7973
+ hostRemove(el);
7974
+ } else {
7975
+ hostInsert(el, container, anchor);
7976
+ }
7977
+ };
7935
7978
  const performLeave = () => {
7936
7979
  leave(el, () => {
7937
7980
  remove2();
@@ -7964,7 +8007,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7964
8007
  optimized = false;
7965
8008
  }
7966
8009
  if (ref != null) {
8010
+ pauseTracking();
7967
8011
  setRef(ref, null, parentSuspense, vnode, true);
8012
+ resetTracking();
7968
8013
  }
7969
8014
  if (cacheIndex != null) {
7970
8015
  parentComponent.renderCache[cacheIndex] = void 0;
@@ -8076,12 +8121,27 @@ function baseCreateRenderer(options, createHydrationFns) {
8076
8121
  if (instance.type.__hmrId) {
8077
8122
  unregisterHMR(instance);
8078
8123
  }
8079
- const { bum, scope, job, subTree, um, m, a } = instance;
8124
+ const {
8125
+ bum,
8126
+ scope,
8127
+ job,
8128
+ subTree,
8129
+ um,
8130
+ m,
8131
+ a,
8132
+ parent,
8133
+ slots: { __: slotCacheKeys }
8134
+ } = instance;
8080
8135
  invalidateMount(m);
8081
8136
  invalidateMount(a);
8082
8137
  if (bum) {
8083
8138
  invokeArrayFns(bum);
8084
8139
  }
8140
+ if (parent && isArray(slotCacheKeys)) {
8141
+ slotCacheKeys.forEach((v) => {
8142
+ parent.renderCache[v] = void 0;
8143
+ });
8144
+ }
8085
8145
  scope.stop();
8086
8146
  if (job) {
8087
8147
  job.flags |= 8;
@@ -8177,8 +8237,8 @@ function toggleRecurse({ effect, job }, allowed) {
8177
8237
  effect.flags |= 32;
8178
8238
  job.flags |= 4;
8179
8239
  } else {
8180
- effect.flags &= ~32;
8181
- job.flags &= ~4;
8240
+ effect.flags &= -33;
8241
+ job.flags &= -5;
8182
8242
  }
8183
8243
  }
8184
8244
  function needTransition(parentSuspense, transition) {
@@ -8205,6 +8265,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
8205
8265
  if (c2.type === Comment && !c2.el) {
8206
8266
  c2.el = c1.el;
8207
8267
  }
8268
+ {
8269
+ c2.el && (c2.el.__vnode = c2);
8270
+ }
8208
8271
  }
8209
8272
  }
8210
8273
  }
@@ -9550,8 +9613,8 @@ function isSameVNodeType(n1, n2) {
9550
9613
  if (n2.shapeFlag & 6 && n1.component) {
9551
9614
  const dirtyInstances = hmrDirtyComponents.get(n2.type);
9552
9615
  if (dirtyInstances && dirtyInstances.has(n1.component)) {
9553
- n1.shapeFlag &= ~256;
9554
- n2.shapeFlag &= ~512;
9616
+ n1.shapeFlag &= -257;
9617
+ n2.shapeFlag &= -513;
9555
9618
  return false;
9556
9619
  }
9557
9620
  }
@@ -10012,7 +10075,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
10012
10075
  const { props, children } = instance.vnode;
10013
10076
  const isStateful = isStatefulComponent(instance);
10014
10077
  initProps(instance, props, isStateful, isSSR);
10015
- initSlots(instance, children, optimized);
10078
+ initSlots(instance, children, optimized || isSSR);
10016
10079
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
10017
10080
  isSSR && setInSSRSetupState(false);
10018
10081
  return setupResult;
@@ -10343,13 +10406,15 @@ function initCustomFormatter() {
10343
10406
  if (obj.__isVue) {
10344
10407
  return ["div", vueStyle, `VueInstance`];
10345
10408
  } else if (isRef(obj)) {
10409
+ pauseTracking();
10410
+ const value = obj.value;
10411
+ resetTracking();
10346
10412
  return [
10347
10413
  "div",
10348
10414
  {},
10349
10415
  ["span", vueStyle, genRefFlag(obj)],
10350
10416
  "<",
10351
- // avoid debugger accessing value affecting behavior
10352
- formatValue("_value" in obj ? obj._value : obj),
10417
+ formatValue(value),
10353
10418
  `>`
10354
10419
  ];
10355
10420
  } else if (isReactive(obj)) {
@@ -10530,7 +10595,7 @@ function isMemoSame(cached, memo) {
10530
10595
  return true;
10531
10596
  }
10532
10597
 
10533
- const version = "3.5.13";
10598
+ const version = "3.5.15";
10534
10599
  const warn = warn$1 ;
10535
10600
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10536
10601
  const devtools = devtools$1 ;
@@ -11348,7 +11413,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
11348
11413
  }
11349
11414
  return false;
11350
11415
  }
11351
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
11416
+ if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
11352
11417
  return false;
11353
11418
  }
11354
11419
  if (key === "form") {
@@ -11431,13 +11496,10 @@ class VueElement extends BaseClass {
11431
11496
  this._root = this;
11432
11497
  }
11433
11498
  }
11434
- if (!this._def.__asyncLoader) {
11435
- this._resolveProps(this._def);
11436
- }
11437
11499
  }
11438
11500
  connectedCallback() {
11439
11501
  if (!this.isConnected) return;
11440
- if (!this.shadowRoot) {
11502
+ if (!this.shadowRoot && !this._resolved) {
11441
11503
  this._parseSlots();
11442
11504
  }
11443
11505
  this._connected = true;
@@ -11450,8 +11512,7 @@ class VueElement extends BaseClass {
11450
11512
  }
11451
11513
  if (!this._instance) {
11452
11514
  if (this._resolved) {
11453
- this._setParent();
11454
- this._update();
11515
+ this._mount(this._def);
11455
11516
  } else {
11456
11517
  if (parent && parent._pendingResolve) {
11457
11518
  this._pendingResolve = parent._pendingResolve.then(() => {
@@ -11467,7 +11528,15 @@ class VueElement extends BaseClass {
11467
11528
  _setParent(parent = this._parent) {
11468
11529
  if (parent) {
11469
11530
  this._instance.parent = parent._instance;
11470
- this._instance.provides = parent._instance.provides;
11531
+ this._inheritParentContext(parent);
11532
+ }
11533
+ }
11534
+ _inheritParentContext(parent = this._parent) {
11535
+ if (parent && this._app) {
11536
+ Object.setPrototypeOf(
11537
+ this._app._context.provides,
11538
+ parent._instance.provides
11539
+ );
11471
11540
  }
11472
11541
  }
11473
11542
  disconnectedCallback() {
@@ -11517,9 +11586,7 @@ class VueElement extends BaseClass {
11517
11586
  }
11518
11587
  }
11519
11588
  this._numberProps = numberProps;
11520
- if (isAsync) {
11521
- this._resolveProps(def);
11522
- }
11589
+ this._resolveProps(def);
11523
11590
  if (this.shadowRoot) {
11524
11591
  this._applyStyles(styles);
11525
11592
  } else if (styles) {
@@ -11543,6 +11610,7 @@ class VueElement extends BaseClass {
11543
11610
  def.name = "VueElement";
11544
11611
  }
11545
11612
  this._app = this._createApp(def);
11613
+ this._inheritParentContext();
11546
11614
  if (def.configureApp) {
11547
11615
  def.configureApp(this._app);
11548
11616
  }
@@ -11627,7 +11695,9 @@ class VueElement extends BaseClass {
11627
11695
  }
11628
11696
  }
11629
11697
  _update() {
11630
- render(this._createVNode(), this._root);
11698
+ const vnode = this._createVNode();
11699
+ if (this._app) vnode.appContext = this._app._context;
11700
+ render(vnode, this._root);
11631
11701
  }
11632
11702
  _createVNode() {
11633
11703
  const baseProps = {};
@@ -11837,6 +11907,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11837
11907
  instance.vnode.el,
11838
11908
  moveClass
11839
11909
  )) {
11910
+ prevChildren = [];
11840
11911
  return;
11841
11912
  }
11842
11913
  prevChildren.forEach(callPendingCbs);
@@ -11860,6 +11931,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11860
11931
  };
11861
11932
  el.addEventListener("transitionend", cb);
11862
11933
  });
11934
+ prevChildren = [];
11863
11935
  });
11864
11936
  return () => {
11865
11937
  const rawProps = toRaw(props);
@@ -14709,6 +14781,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
14709
14781
  }
14710
14782
  }
14711
14783
  let cachedAsArray = false;
14784
+ const slotCacheKeys = [];
14712
14785
  if (toCache.length === children.length && node.type === 1) {
14713
14786
  if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) {
14714
14787
  node.codegenNode.children = getCacheExpression(
@@ -14718,6 +14791,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
14718
14791
  } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {
14719
14792
  const slot = getSlotNode(node.codegenNode, "default");
14720
14793
  if (slot) {
14794
+ slotCacheKeys.push(context.cached.length);
14721
14795
  slot.returns = getCacheExpression(
14722
14796
  createArrayExpression(slot.returns)
14723
14797
  );
@@ -14727,6 +14801,7 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
14727
14801
  const slotName = findDir(node, "slot", true);
14728
14802
  const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);
14729
14803
  if (slot) {
14804
+ slotCacheKeys.push(context.cached.length);
14730
14805
  slot.returns = getCacheExpression(
14731
14806
  createArrayExpression(slot.returns)
14732
14807
  );
@@ -14736,9 +14811,18 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
14736
14811
  }
14737
14812
  if (!cachedAsArray) {
14738
14813
  for (const child of toCache) {
14814
+ slotCacheKeys.push(context.cached.length);
14739
14815
  child.codegenNode = context.cache(child.codegenNode);
14740
14816
  }
14741
14817
  }
14818
+ 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) {
14819
+ node.codegenNode.children.properties.push(
14820
+ createObjectProperty(
14821
+ `__`,
14822
+ createSimpleExpression(JSON.stringify(slotCacheKeys), false)
14823
+ )
14824
+ );
14825
+ }
14742
14826
  function getCacheExpression(value) {
14743
14827
  const exp = context.cache(value);
14744
14828
  if (inFor && context.hmr) {
@@ -17383,8 +17467,7 @@ const transformModel$1 = (dir, node, context) => {
17383
17467
  context.onError(createCompilerError(44, exp.loc));
17384
17468
  return createTransformProps();
17385
17469
  }
17386
- const maybeRef = false;
17387
- if (!expString.trim() || !isMemberExpression(exp) && !maybeRef) {
17470
+ if (!expString.trim() || !isMemberExpression(exp) && true) {
17388
17471
  context.onError(
17389
17472
  createCompilerError(42, exp.loc)
17390
17473
  );
@@ -17953,6 +18036,9 @@ const ignoreSideEffectTags = (node, context) => {
17953
18036
  };
17954
18037
 
17955
18038
  function isValidHTMLNesting(parent, child) {
18039
+ if (parent === "template") {
18040
+ return true;
18041
+ }
17956
18042
  if (parent in onlyValidChildren) {
17957
18043
  return onlyValidChildren[parent].has(child);
17958
18044
  }