@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.
@@ -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
  **/
@@ -323,6 +323,10 @@ class EffectScope {
323
323
  * @internal
324
324
  */
325
325
  this._active = true;
326
+ /**
327
+ * @internal track `on` calls, allow `on` call multiple times
328
+ */
329
+ this._on = 0;
326
330
  /**
327
331
  * @internal
328
332
  */
@@ -393,14 +397,20 @@ class EffectScope {
393
397
  * @internal
394
398
  */
395
399
  on() {
396
- activeEffectScope = this;
400
+ if (++this._on === 1) {
401
+ this.prevScope = activeEffectScope;
402
+ activeEffectScope = this;
403
+ }
397
404
  }
398
405
  /**
399
406
  * This should only be called on non-detached scopes
400
407
  * @internal
401
408
  */
402
409
  off() {
403
- activeEffectScope = this.parent;
410
+ if (this._on > 0 && --this._on === 0) {
411
+ activeEffectScope = this.prevScope;
412
+ this.prevScope = void 0;
413
+ }
404
414
  }
405
415
  stop(fromParent) {
406
416
  if (this._active) {
@@ -482,7 +492,7 @@ class ReactiveEffect {
482
492
  }
483
493
  resume() {
484
494
  if (this.flags & 64) {
485
- this.flags &= ~64;
495
+ this.flags &= -65;
486
496
  if (pausedQueueEffects.has(this)) {
487
497
  pausedQueueEffects.delete(this);
488
498
  this.trigger();
@@ -522,7 +532,7 @@ class ReactiveEffect {
522
532
  cleanupDeps(this);
523
533
  activeSub = prevEffect;
524
534
  shouldTrack = prevShouldTrack;
525
- this.flags &= ~2;
535
+ this.flags &= -3;
526
536
  }
527
537
  }
528
538
  stop() {
@@ -533,7 +543,7 @@ class ReactiveEffect {
533
543
  this.deps = this.depsTail = void 0;
534
544
  cleanupEffect(this);
535
545
  this.onStop && this.onStop();
536
- this.flags &= ~1;
546
+ this.flags &= -2;
537
547
  }
538
548
  }
539
549
  trigger() {
@@ -583,7 +593,7 @@ function endBatch() {
583
593
  while (e) {
584
594
  const next = e.next;
585
595
  e.next = void 0;
586
- e.flags &= ~8;
596
+ e.flags &= -9;
587
597
  e = next;
588
598
  }
589
599
  }
@@ -594,7 +604,7 @@ function endBatch() {
594
604
  while (e) {
595
605
  const next = e.next;
596
606
  e.next = void 0;
597
- e.flags &= ~8;
607
+ e.flags &= -9;
598
608
  if (e.flags & 1) {
599
609
  try {
600
610
  ;
@@ -650,17 +660,16 @@ function refreshComputed(computed) {
650
660
  if (computed.flags & 4 && !(computed.flags & 16)) {
651
661
  return;
652
662
  }
653
- computed.flags &= ~16;
663
+ computed.flags &= -17;
654
664
  if (computed.globalVersion === globalVersion) {
655
665
  return;
656
666
  }
657
667
  computed.globalVersion = globalVersion;
658
- const dep = computed.dep;
659
- computed.flags |= 2;
660
- if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {
661
- computed.flags &= ~2;
668
+ if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {
662
669
  return;
663
670
  }
671
+ computed.flags |= 2;
672
+ const dep = computed.dep;
664
673
  const prevSub = activeSub;
665
674
  const prevShouldTrack = shouldTrack;
666
675
  activeSub = computed;
@@ -669,6 +678,7 @@ function refreshComputed(computed) {
669
678
  prepareDeps(computed);
670
679
  const value = computed.fn(computed._value);
671
680
  if (dep.version === 0 || hasChanged(value, computed._value)) {
681
+ computed.flags |= 128;
672
682
  computed._value = value;
673
683
  dep.version++;
674
684
  }
@@ -679,7 +689,7 @@ function refreshComputed(computed) {
679
689
  activeSub = prevSub;
680
690
  shouldTrack = prevShouldTrack;
681
691
  cleanupDeps(computed);
682
- computed.flags &= ~2;
692
+ computed.flags &= -3;
683
693
  }
684
694
  }
685
695
  function removeSub(link, soft = false) {
@@ -698,7 +708,7 @@ function removeSub(link, soft = false) {
698
708
  if (dep.subs === link) {
699
709
  dep.subs = prevSub;
700
710
  if (!prevSub && dep.computed) {
701
- dep.computed.flags &= ~4;
711
+ dep.computed.flags &= -5;
702
712
  for (let l = dep.computed.deps; l; l = l.nextDep) {
703
713
  removeSub(l, true);
704
714
  }
@@ -1631,14 +1641,14 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
1631
1641
  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
1632
1642
  return target;
1633
1643
  }
1634
- const existingProxy = proxyMap.get(target);
1635
- if (existingProxy) {
1636
- return existingProxy;
1637
- }
1638
1644
  const targetType = getTargetType(target);
1639
1645
  if (targetType === 0 /* INVALID */) {
1640
1646
  return target;
1641
1647
  }
1648
+ const existingProxy = proxyMap.get(target);
1649
+ if (existingProxy) {
1650
+ return existingProxy;
1651
+ }
1642
1652
  const proxy = new Proxy(
1643
1653
  target,
1644
1654
  targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -2061,11 +2071,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2061
2071
  oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
2062
2072
  boundCleanup
2063
2073
  ];
2074
+ oldValue = newValue;
2064
2075
  call ? call(cb, 3, args) : (
2065
2076
  // @ts-expect-error
2066
2077
  cb(...args)
2067
2078
  );
2068
- oldValue = newValue;
2069
2079
  } finally {
2070
2080
  activeWatcher = currentWatcher;
2071
2081
  }
@@ -2482,11 +2492,11 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2482
2492
  queue.splice(i, 1);
2483
2493
  i--;
2484
2494
  if (cb.flags & 4) {
2485
- cb.flags &= ~1;
2495
+ cb.flags &= -2;
2486
2496
  }
2487
2497
  cb();
2488
2498
  if (!(cb.flags & 4)) {
2489
- cb.flags &= ~1;
2499
+ cb.flags &= -2;
2490
2500
  }
2491
2501
  }
2492
2502
  }
@@ -2511,10 +2521,10 @@ function flushPostFlushCbs(seen) {
2511
2521
  continue;
2512
2522
  }
2513
2523
  if (cb.flags & 4) {
2514
- cb.flags &= ~1;
2524
+ cb.flags &= -2;
2515
2525
  }
2516
2526
  if (!(cb.flags & 8)) cb();
2517
- cb.flags &= ~1;
2527
+ cb.flags &= -2;
2518
2528
  }
2519
2529
  activePostFlushCbs = null;
2520
2530
  postFlushIndex = 0;
@@ -2550,7 +2560,7 @@ function flushJobs(seen) {
2550
2560
  for (; flushIndex < queue.length; flushIndex++) {
2551
2561
  const job = queue[flushIndex];
2552
2562
  if (job) {
2553
- job.flags &= ~1;
2563
+ job.flags &= -2;
2554
2564
  }
2555
2565
  }
2556
2566
  flushIndex = -1;
@@ -3518,15 +3528,16 @@ const TeleportImpl = {
3518
3528
  updateCssVars(n2, true);
3519
3529
  }
3520
3530
  if (isTeleportDeferred(n2.props)) {
3531
+ n2.el.__isMounted = false;
3521
3532
  queuePostRenderEffect(() => {
3522
3533
  mountToTarget();
3523
- n2.el.__isMounted = true;
3534
+ delete n2.el.__isMounted;
3524
3535
  }, parentSuspense);
3525
3536
  } else {
3526
3537
  mountToTarget();
3527
3538
  }
3528
3539
  } else {
3529
- if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3540
+ if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
3530
3541
  queuePostRenderEffect(() => {
3531
3542
  TeleportImpl.process(
3532
3543
  n1,
@@ -3540,7 +3551,6 @@ const TeleportImpl = {
3540
3551
  optimized,
3541
3552
  internals
3542
3553
  );
3543
- delete n1.el.__isMounted;
3544
3554
  }, parentSuspense);
3545
3555
  return;
3546
3556
  }
@@ -3567,7 +3577,7 @@ const TeleportImpl = {
3567
3577
  namespace,
3568
3578
  slotScopeIds
3569
3579
  );
3570
- traverseStaticChildren(n1, n2, true);
3580
+ traverseStaticChildren(n1, n2, false);
3571
3581
  } else if (!optimized) {
3572
3582
  patchChildren(
3573
3583
  n1,
@@ -4531,6 +4541,8 @@ function createHydrationFunctions(rendererInternals) {
4531
4541
  ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4532
4542
  const content = el.content.firstChild;
4533
4543
  if (needCallTransitionHooks) {
4544
+ const cls = content.getAttribute("class");
4545
+ if (cls) content.$cls = cls;
4534
4546
  transition.beforeEnter(content);
4535
4547
  }
4536
4548
  replaceNode(content, el, parentComponent);
@@ -4783,7 +4795,12 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
4783
4795
  let actual;
4784
4796
  let expected;
4785
4797
  if (key === "class") {
4786
- actual = el.getAttribute("class");
4798
+ if (el.$cls) {
4799
+ actual = el.$cls;
4800
+ delete el.$cls;
4801
+ } else {
4802
+ actual = el.getAttribute("class");
4803
+ }
4787
4804
  expected = normalizeClass(clientValue);
4788
4805
  if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
4789
4806
  mismatchType = 2 /* CLASS */;
@@ -5078,14 +5095,25 @@ function defineAsyncComponent(source) {
5078
5095
  name: "AsyncComponentWrapper",
5079
5096
  __asyncLoader: load,
5080
5097
  __asyncHydrate(el, instance, hydrate) {
5098
+ let patched = false;
5081
5099
  const doHydrate = hydrateStrategy ? () => {
5100
+ const performHydrate = () => {
5101
+ if (patched) {
5102
+ warn$1(
5103
+ `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.`
5104
+ );
5105
+ return;
5106
+ }
5107
+ hydrate();
5108
+ };
5082
5109
  const teardown = hydrateStrategy(
5083
- hydrate,
5110
+ performHydrate,
5084
5111
  (cb) => forEachElement(el, cb)
5085
5112
  );
5086
5113
  if (teardown) {
5087
5114
  (instance.bum || (instance.bum = [])).push(teardown);
5088
5115
  }
5116
+ (instance.u || (instance.u = [])).push(() => patched = true);
5089
5117
  } : hydrate;
5090
5118
  if (resolvedComp) {
5091
5119
  doHydrate();
@@ -5255,6 +5283,9 @@ const KeepAliveImpl = {
5255
5283
  {
5256
5284
  devtoolsComponentAdded(instance2);
5257
5285
  }
5286
+ {
5287
+ instance2.__keepAliveStorageContainer = storageContainer;
5288
+ }
5258
5289
  };
5259
5290
  function unmount(vnode) {
5260
5291
  resetShapeFlag(vnode);
@@ -5342,7 +5373,7 @@ const KeepAliveImpl = {
5342
5373
  );
5343
5374
  const { include, exclude, max } = props;
5344
5375
  if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
5345
- vnode.shapeFlag &= ~256;
5376
+ vnode.shapeFlag &= -257;
5346
5377
  current = vnode;
5347
5378
  return rawVNode;
5348
5379
  }
@@ -5433,8 +5464,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
5433
5464
  }, target);
5434
5465
  }
5435
5466
  function resetShapeFlag(vnode) {
5436
- vnode.shapeFlag &= ~256;
5437
- vnode.shapeFlag &= ~512;
5467
+ vnode.shapeFlag &= -257;
5468
+ vnode.shapeFlag &= -513;
5438
5469
  }
5439
5470
  function getInnerChild(vnode) {
5440
5471
  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5836,14 +5867,16 @@ function renderList(source, renderItem, cache, index) {
5836
5867
  if (sourceIsArray || isString(source)) {
5837
5868
  const sourceIsReactiveArray = sourceIsArray && isReactive(source);
5838
5869
  let needsWrap = false;
5870
+ let isReadonlySource = false;
5839
5871
  if (sourceIsReactiveArray) {
5840
5872
  needsWrap = !isShallow(source);
5873
+ isReadonlySource = isReadonly(source);
5841
5874
  source = shallowReadArray(source);
5842
5875
  }
5843
5876
  ret = new Array(source.length);
5844
5877
  for (let i = 0, l = source.length; i < l; i++) {
5845
5878
  ret[i] = renderItem(
5846
- needsWrap ? toReactive(source[i]) : source[i],
5879
+ needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
5847
5880
  i,
5848
5881
  void 0,
5849
5882
  cached && cached[i]
@@ -7095,7 +7128,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7095
7128
  return vm;
7096
7129
  }
7097
7130
  }
7098
- Vue.version = `2.6.14-compat:${"3.5.13"}`;
7131
+ Vue.version = `2.6.14-compat:${"3.5.15"}`;
7099
7132
  Vue.config = singletonApp.config;
7100
7133
  Vue.use = (plugin, ...options) => {
7101
7134
  if (plugin && isFunction(plugin.install)) {
@@ -7589,11 +7622,9 @@ function createAppAPI(render, hydrate) {
7589
7622
  }
7590
7623
  {
7591
7624
  context.reload = () => {
7592
- render(
7593
- cloneVNode(vnode),
7594
- rootContainer,
7595
- namespace
7596
- );
7625
+ const cloned = cloneVNode(vnode);
7626
+ cloned.el = null;
7627
+ render(cloned, rootContainer, namespace);
7597
7628
  };
7598
7629
  }
7599
7630
  if (isHydrate && hydrate) {
@@ -7643,9 +7674,15 @@ If you want to remount the same app, move your app creation logic into a factory
7643
7674
  },
7644
7675
  provide(key, value) {
7645
7676
  if (key in context.provides) {
7646
- warn$1(
7647
- `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
7648
- );
7677
+ if (hasOwn(context.provides, key)) {
7678
+ warn$1(
7679
+ `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
7680
+ );
7681
+ } else {
7682
+ warn$1(
7683
+ `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`
7684
+ );
7685
+ }
7649
7686
  }
7650
7687
  context.provides[key] = value;
7651
7688
  return app;
@@ -7685,7 +7722,7 @@ function provide(key, value) {
7685
7722
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
7686
7723
  const instance = currentInstance || currentRenderingInstance;
7687
7724
  if (instance || currentApp) {
7688
- const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
7725
+ let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
7689
7726
  if (provides && key in provides) {
7690
7727
  return provides[key];
7691
7728
  } else if (arguments.length > 1) {
@@ -8191,7 +8228,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
8191
8228
  return rawSlot;
8192
8229
  }
8193
8230
  const normalized = withCtx((...args) => {
8194
- if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
8231
+ if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
8195
8232
  warn$1(
8196
8233
  `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.`
8197
8234
  );
@@ -8230,7 +8267,7 @@ const normalizeVNodeSlots = (instance, children) => {
8230
8267
  };
8231
8268
  const assignSlots = (slots, children, optimized) => {
8232
8269
  for (const key in children) {
8233
- if (optimized || key !== "_") {
8270
+ if (optimized || !isInternalKey(key)) {
8234
8271
  slots[key] = children[key];
8235
8272
  }
8236
8273
  }
@@ -8754,7 +8791,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8754
8791
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
8755
8792
  // which also requires the correct parent container
8756
8793
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
8757
- oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
8794
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
8758
8795
  // In other cases, the parent container is not actually used so we
8759
8796
  // just pass the block element here to avoid a DOM parentNode call.
8760
8797
  fallbackContainer
@@ -8917,8 +8954,8 @@ function baseCreateRenderer(options, createHydrationFns) {
8917
8954
  endMeasure(instance, `init`);
8918
8955
  }
8919
8956
  }
8957
+ if (isHmrUpdating) initialVNode.el = null;
8920
8958
  if (instance.asyncDep) {
8921
- if (isHmrUpdating) initialVNode.el = null;
8922
8959
  parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
8923
8960
  if (!initialVNode.el) {
8924
8961
  const placeholder = instance.subTree = createVNode(Comment);
@@ -9504,7 +9541,13 @@ function baseCreateRenderer(options, createHydrationFns) {
9504
9541
  queuePostRenderEffect(() => transition.enter(el), parentSuspense);
9505
9542
  } else {
9506
9543
  const { leave, delayLeave, afterLeave } = transition;
9507
- const remove2 = () => hostInsert(el, container, anchor);
9544
+ const remove2 = () => {
9545
+ if (vnode.ctx.isUnmounted) {
9546
+ hostRemove(el);
9547
+ } else {
9548
+ hostInsert(el, container, anchor);
9549
+ }
9550
+ };
9508
9551
  const performLeave = () => {
9509
9552
  leave(el, () => {
9510
9553
  remove2();
@@ -9537,7 +9580,9 @@ function baseCreateRenderer(options, createHydrationFns) {
9537
9580
  optimized = false;
9538
9581
  }
9539
9582
  if (ref != null) {
9583
+ pauseTracking();
9540
9584
  setRef(ref, null, parentSuspense, vnode, true);
9585
+ resetTracking();
9541
9586
  }
9542
9587
  if (cacheIndex != null) {
9543
9588
  parentComponent.renderCache[cacheIndex] = void 0;
@@ -9649,12 +9694,27 @@ function baseCreateRenderer(options, createHydrationFns) {
9649
9694
  if (instance.type.__hmrId) {
9650
9695
  unregisterHMR(instance);
9651
9696
  }
9652
- const { bum, scope, job, subTree, um, m, a } = instance;
9697
+ const {
9698
+ bum,
9699
+ scope,
9700
+ job,
9701
+ subTree,
9702
+ um,
9703
+ m,
9704
+ a,
9705
+ parent,
9706
+ slots: { __: slotCacheKeys }
9707
+ } = instance;
9653
9708
  invalidateMount(m);
9654
9709
  invalidateMount(a);
9655
9710
  if (bum) {
9656
9711
  invokeArrayFns(bum);
9657
9712
  }
9713
+ if (parent && isArray(slotCacheKeys)) {
9714
+ slotCacheKeys.forEach((v) => {
9715
+ parent.renderCache[v] = void 0;
9716
+ });
9717
+ }
9658
9718
  if (isCompatEnabled("INSTANCE_EVENT_HOOKS", instance)) {
9659
9719
  instance.emit("hook:beforeDestroy");
9660
9720
  }
@@ -9759,8 +9819,8 @@ function toggleRecurse({ effect, job }, allowed) {
9759
9819
  effect.flags |= 32;
9760
9820
  job.flags |= 4;
9761
9821
  } else {
9762
- effect.flags &= ~32;
9763
- job.flags &= ~4;
9822
+ effect.flags &= -33;
9823
+ job.flags &= -5;
9764
9824
  }
9765
9825
  }
9766
9826
  function needTransition(parentSuspense, transition) {
@@ -9787,6 +9847,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
9787
9847
  if (c2.type === Comment && !c2.el) {
9788
9848
  c2.el = c1.el;
9789
9849
  }
9850
+ {
9851
+ c2.el && (c2.el.__vnode = c2);
9852
+ }
9790
9853
  }
9791
9854
  }
9792
9855
  }
@@ -11217,8 +11280,8 @@ function isSameVNodeType(n1, n2) {
11217
11280
  if (n2.shapeFlag & 6 && n1.component) {
11218
11281
  const dirtyInstances = hmrDirtyComponents.get(n2.type);
11219
11282
  if (dirtyInstances && dirtyInstances.has(n1.component)) {
11220
- n1.shapeFlag &= ~256;
11221
- n2.shapeFlag &= ~512;
11283
+ n1.shapeFlag &= -257;
11284
+ n2.shapeFlag &= -513;
11222
11285
  return false;
11223
11286
  }
11224
11287
  }
@@ -11689,7 +11752,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
11689
11752
  const { props, children } = instance.vnode;
11690
11753
  const isStateful = isStatefulComponent(instance);
11691
11754
  initProps(instance, props, isStateful, isSSR);
11692
- initSlots(instance, children, optimized);
11755
+ initSlots(instance, children, optimized || isSSR);
11693
11756
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
11694
11757
  isSSR && setInSSRSetupState(false);
11695
11758
  return setupResult;
@@ -12032,13 +12095,15 @@ function initCustomFormatter() {
12032
12095
  if (obj.__isVue) {
12033
12096
  return ["div", vueStyle, `VueInstance`];
12034
12097
  } else if (isRef(obj)) {
12098
+ pauseTracking();
12099
+ const value = obj.value;
12100
+ resetTracking();
12035
12101
  return [
12036
12102
  "div",
12037
12103
  {},
12038
12104
  ["span", vueStyle, genRefFlag(obj)],
12039
12105
  "<",
12040
- // avoid debugger accessing value affecting behavior
12041
- formatValue("_value" in obj ? obj._value : obj),
12106
+ formatValue(value),
12042
12107
  `>`
12043
12108
  ];
12044
12109
  } else if (isReactive(obj)) {
@@ -12219,7 +12284,7 @@ function isMemoSame(cached, memo) {
12219
12284
  return true;
12220
12285
  }
12221
12286
 
12222
- const version = "3.5.13";
12287
+ const version = "3.5.15";
12223
12288
  const warn = warn$1 ;
12224
12289
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12225
12290
  const devtools = devtools$1 ;
@@ -12919,7 +12984,7 @@ function compatCoerceAttr(el, key, value, instance = null) {
12919
12984
  el.setAttribute(key, v2CoercedValue);
12920
12985
  return true;
12921
12986
  }
12922
- } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.isCompatEnabled("ATTR_FALSE_VALUE", instance)) {
12987
+ } else if (value === false && !(el.tagName === "INPUT" && key === "value") && !isSpecialBooleanAttr(key) && compatUtils.isCompatEnabled("ATTR_FALSE_VALUE", instance)) {
12923
12988
  compatUtils.warnDeprecation(
12924
12989
  "ATTR_FALSE_VALUE",
12925
12990
  instance,
@@ -13125,7 +13190,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
13125
13190
  }
13126
13191
  return false;
13127
13192
  }
13128
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
13193
+ if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
13129
13194
  return false;
13130
13195
  }
13131
13196
  if (key === "form") {
@@ -13208,13 +13273,10 @@ class VueElement extends BaseClass {
13208
13273
  this._root = this;
13209
13274
  }
13210
13275
  }
13211
- if (!this._def.__asyncLoader) {
13212
- this._resolveProps(this._def);
13213
- }
13214
13276
  }
13215
13277
  connectedCallback() {
13216
13278
  if (!this.isConnected) return;
13217
- if (!this.shadowRoot) {
13279
+ if (!this.shadowRoot && !this._resolved) {
13218
13280
  this._parseSlots();
13219
13281
  }
13220
13282
  this._connected = true;
@@ -13227,8 +13289,7 @@ class VueElement extends BaseClass {
13227
13289
  }
13228
13290
  if (!this._instance) {
13229
13291
  if (this._resolved) {
13230
- this._setParent();
13231
- this._update();
13292
+ this._mount(this._def);
13232
13293
  } else {
13233
13294
  if (parent && parent._pendingResolve) {
13234
13295
  this._pendingResolve = parent._pendingResolve.then(() => {
@@ -13244,7 +13305,15 @@ class VueElement extends BaseClass {
13244
13305
  _setParent(parent = this._parent) {
13245
13306
  if (parent) {
13246
13307
  this._instance.parent = parent._instance;
13247
- this._instance.provides = parent._instance.provides;
13308
+ this._inheritParentContext(parent);
13309
+ }
13310
+ }
13311
+ _inheritParentContext(parent = this._parent) {
13312
+ if (parent && this._app) {
13313
+ Object.setPrototypeOf(
13314
+ this._app._context.provides,
13315
+ parent._instance.provides
13316
+ );
13248
13317
  }
13249
13318
  }
13250
13319
  disconnectedCallback() {
@@ -13294,9 +13363,7 @@ class VueElement extends BaseClass {
13294
13363
  }
13295
13364
  }
13296
13365
  this._numberProps = numberProps;
13297
- if (isAsync) {
13298
- this._resolveProps(def);
13299
- }
13366
+ this._resolveProps(def);
13300
13367
  if (this.shadowRoot) {
13301
13368
  this._applyStyles(styles);
13302
13369
  } else if (styles) {
@@ -13320,6 +13387,7 @@ class VueElement extends BaseClass {
13320
13387
  def.name = "VueElement";
13321
13388
  }
13322
13389
  this._app = this._createApp(def);
13390
+ this._inheritParentContext();
13323
13391
  if (def.configureApp) {
13324
13392
  def.configureApp(this._app);
13325
13393
  }
@@ -13404,7 +13472,9 @@ class VueElement extends BaseClass {
13404
13472
  }
13405
13473
  }
13406
13474
  _update() {
13407
- render(this._createVNode(), this._root);
13475
+ const vnode = this._createVNode();
13476
+ if (this._app) vnode.appContext = this._app._context;
13477
+ render(vnode, this._root);
13408
13478
  }
13409
13479
  _createVNode() {
13410
13480
  const baseProps = {};
@@ -13617,6 +13687,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
13617
13687
  instance.vnode.el,
13618
13688
  moveClass
13619
13689
  )) {
13690
+ prevChildren = [];
13620
13691
  return;
13621
13692
  }
13622
13693
  prevChildren.forEach(callPendingCbs);
@@ -13640,6 +13711,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
13640
13711
  };
13641
13712
  el.addEventListener("transitionend", cb);
13642
13713
  });
13714
+ prevChildren = [];
13643
13715
  });
13644
13716
  return () => {
13645
13717
  const rawProps = toRaw(props);