@vue/runtime-dom 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/runtime-dom v3.5.13
2
+ * @vue/runtime-dom 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;
@@ -2990,15 +3000,16 @@ const TeleportImpl = {
2990
3000
  updateCssVars(n2, true);
2991
3001
  }
2992
3002
  if (isTeleportDeferred(n2.props)) {
3003
+ n2.el.__isMounted = false;
2993
3004
  queuePostRenderEffect(() => {
2994
3005
  mountToTarget();
2995
- n2.el.__isMounted = true;
3006
+ delete n2.el.__isMounted;
2996
3007
  }, parentSuspense);
2997
3008
  } else {
2998
3009
  mountToTarget();
2999
3010
  }
3000
3011
  } else {
3001
- if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3012
+ if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
3002
3013
  queuePostRenderEffect(() => {
3003
3014
  TeleportImpl.process(
3004
3015
  n1,
@@ -3012,7 +3023,6 @@ const TeleportImpl = {
3012
3023
  optimized,
3013
3024
  internals
3014
3025
  );
3015
- delete n1.el.__isMounted;
3016
3026
  }, parentSuspense);
3017
3027
  return;
3018
3028
  }
@@ -3039,7 +3049,7 @@ const TeleportImpl = {
3039
3049
  namespace,
3040
3050
  slotScopeIds
3041
3051
  );
3042
- traverseStaticChildren(n1, n2, true);
3052
+ traverseStaticChildren(n1, n2, false);
3043
3053
  } else if (!optimized) {
3044
3054
  patchChildren(
3045
3055
  n1,
@@ -4000,6 +4010,8 @@ function createHydrationFunctions(rendererInternals) {
4000
4010
  ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4001
4011
  const content = el.content.firstChild;
4002
4012
  if (needCallTransitionHooks) {
4013
+ const cls = content.getAttribute("class");
4014
+ if (cls) content.$cls = cls;
4003
4015
  transition.beforeEnter(content);
4004
4016
  }
4005
4017
  replaceNode(content, el, parentComponent);
@@ -4252,7 +4264,12 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
4252
4264
  let actual;
4253
4265
  let expected;
4254
4266
  if (key === "class") {
4255
- actual = el.getAttribute("class");
4267
+ if (el.$cls) {
4268
+ actual = el.$cls;
4269
+ delete el.$cls;
4270
+ } else {
4271
+ actual = el.getAttribute("class");
4272
+ }
4256
4273
  expected = normalizeClass(clientValue);
4257
4274
  if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
4258
4275
  mismatchType = 2 /* CLASS */;
@@ -4547,14 +4564,25 @@ function defineAsyncComponent(source) {
4547
4564
  name: "AsyncComponentWrapper",
4548
4565
  __asyncLoader: load,
4549
4566
  __asyncHydrate(el, instance, hydrate) {
4567
+ let patched = false;
4550
4568
  const doHydrate = hydrateStrategy ? () => {
4569
+ const performHydrate = () => {
4570
+ if (patched) {
4571
+ warn$1(
4572
+ `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.`
4573
+ );
4574
+ return;
4575
+ }
4576
+ hydrate();
4577
+ };
4551
4578
  const teardown = hydrateStrategy(
4552
- hydrate,
4579
+ performHydrate,
4553
4580
  (cb) => forEachElement(el, cb)
4554
4581
  );
4555
4582
  if (teardown) {
4556
4583
  (instance.bum || (instance.bum = [])).push(teardown);
4557
4584
  }
4585
+ (instance.u || (instance.u = [])).push(() => patched = true);
4558
4586
  } : hydrate;
4559
4587
  if (resolvedComp) {
4560
4588
  doHydrate();
@@ -4724,6 +4752,9 @@ const KeepAliveImpl = {
4724
4752
  {
4725
4753
  devtoolsComponentAdded(instance2);
4726
4754
  }
4755
+ {
4756
+ instance2.__keepAliveStorageContainer = storageContainer;
4757
+ }
4727
4758
  };
4728
4759
  function unmount(vnode) {
4729
4760
  resetShapeFlag(vnode);
@@ -4811,7 +4842,7 @@ const KeepAliveImpl = {
4811
4842
  );
4812
4843
  const { include, exclude, max } = props;
4813
4844
  if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
4814
- vnode.shapeFlag &= ~256;
4845
+ vnode.shapeFlag &= -257;
4815
4846
  current = vnode;
4816
4847
  return rawVNode;
4817
4848
  }
@@ -4898,8 +4929,8 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
4898
4929
  }, target);
4899
4930
  }
4900
4931
  function resetShapeFlag(vnode) {
4901
- vnode.shapeFlag &= ~256;
4902
- vnode.shapeFlag &= ~512;
4932
+ vnode.shapeFlag &= -257;
4933
+ vnode.shapeFlag &= -513;
4903
4934
  }
4904
4935
  function getInnerChild(vnode) {
4905
4936
  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
@@ -5014,14 +5045,16 @@ function renderList(source, renderItem, cache, index) {
5014
5045
  if (sourceIsArray || isString(source)) {
5015
5046
  const sourceIsReactiveArray = sourceIsArray && isReactive(source);
5016
5047
  let needsWrap = false;
5048
+ let isReadonlySource = false;
5017
5049
  if (sourceIsReactiveArray) {
5018
5050
  needsWrap = !isShallow(source);
5051
+ isReadonlySource = isReadonly(source);
5019
5052
  source = shallowReadArray(source);
5020
5053
  }
5021
5054
  ret = new Array(source.length);
5022
5055
  for (let i = 0, l = source.length; i < l; i++) {
5023
5056
  ret[i] = renderItem(
5024
- needsWrap ? toReactive(source[i]) : source[i],
5057
+ needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
5025
5058
  i,
5026
5059
  void 0,
5027
5060
  cached && cached[i]
@@ -6043,11 +6076,9 @@ function createAppAPI(render, hydrate) {
6043
6076
  }
6044
6077
  {
6045
6078
  context.reload = () => {
6046
- render(
6047
- cloneVNode(vnode),
6048
- rootContainer,
6049
- namespace
6050
- );
6079
+ const cloned = cloneVNode(vnode);
6080
+ cloned.el = null;
6081
+ render(cloned, rootContainer, namespace);
6051
6082
  };
6052
6083
  }
6053
6084
  if (isHydrate && hydrate) {
@@ -6097,9 +6128,15 @@ If you want to remount the same app, move your app creation logic into a factory
6097
6128
  },
6098
6129
  provide(key, value) {
6099
6130
  if (key in context.provides) {
6100
- warn$1(
6101
- `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
6102
- );
6131
+ if (hasOwn(context.provides, key)) {
6132
+ warn$1(
6133
+ `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
6134
+ );
6135
+ } else {
6136
+ warn$1(
6137
+ `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`
6138
+ );
6139
+ }
6103
6140
  }
6104
6141
  context.provides[key] = value;
6105
6142
  return app;
@@ -6136,7 +6173,7 @@ function provide(key, value) {
6136
6173
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
6137
6174
  const instance = currentInstance || currentRenderingInstance;
6138
6175
  if (instance || currentApp) {
6139
- const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
6176
+ let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
6140
6177
  if (provides && key in provides) {
6141
6178
  return provides[key];
6142
6179
  } else if (arguments.length > 1) {
@@ -6570,7 +6607,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
6570
6607
  return rawSlot;
6571
6608
  }
6572
6609
  const normalized = withCtx((...args) => {
6573
- if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
6610
+ if (currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {
6574
6611
  warn$1(
6575
6612
  `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.`
6576
6613
  );
@@ -6609,7 +6646,7 @@ const normalizeVNodeSlots = (instance, children) => {
6609
6646
  };
6610
6647
  const assignSlots = (slots, children, optimized) => {
6611
6648
  for (const key in children) {
6612
- if (optimized || key !== "_") {
6649
+ if (optimized || !isInternalKey(key)) {
6613
6650
  slots[key] = children[key];
6614
6651
  }
6615
6652
  }
@@ -7133,7 +7170,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7133
7170
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
7134
7171
  // which also requires the correct parent container
7135
7172
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
7136
- oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
7173
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
7137
7174
  // In other cases, the parent container is not actually used so we
7138
7175
  // just pass the block element here to avoid a DOM parentNode call.
7139
7176
  fallbackContainer
@@ -7295,8 +7332,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7295
7332
  endMeasure(instance, `init`);
7296
7333
  }
7297
7334
  }
7335
+ if (isHmrUpdating) initialVNode.el = null;
7298
7336
  if (instance.asyncDep) {
7299
- if (isHmrUpdating) initialVNode.el = null;
7300
7337
  parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
7301
7338
  if (!initialVNode.el) {
7302
7339
  const placeholder = instance.subTree = createVNode(Comment);
@@ -7858,7 +7895,13 @@ function baseCreateRenderer(options, createHydrationFns) {
7858
7895
  queuePostRenderEffect(() => transition.enter(el), parentSuspense);
7859
7896
  } else {
7860
7897
  const { leave, delayLeave, afterLeave } = transition;
7861
- const remove2 = () => hostInsert(el, container, anchor);
7898
+ const remove2 = () => {
7899
+ if (vnode.ctx.isUnmounted) {
7900
+ hostRemove(el);
7901
+ } else {
7902
+ hostInsert(el, container, anchor);
7903
+ }
7904
+ };
7862
7905
  const performLeave = () => {
7863
7906
  leave(el, () => {
7864
7907
  remove2();
@@ -7891,7 +7934,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7891
7934
  optimized = false;
7892
7935
  }
7893
7936
  if (ref != null) {
7937
+ pauseTracking();
7894
7938
  setRef(ref, null, parentSuspense, vnode, true);
7939
+ resetTracking();
7895
7940
  }
7896
7941
  if (cacheIndex != null) {
7897
7942
  parentComponent.renderCache[cacheIndex] = void 0;
@@ -8003,12 +8048,27 @@ function baseCreateRenderer(options, createHydrationFns) {
8003
8048
  if (instance.type.__hmrId) {
8004
8049
  unregisterHMR(instance);
8005
8050
  }
8006
- const { bum, scope, job, subTree, um, m, a } = instance;
8051
+ const {
8052
+ bum,
8053
+ scope,
8054
+ job,
8055
+ subTree,
8056
+ um,
8057
+ m,
8058
+ a,
8059
+ parent,
8060
+ slots: { __: slotCacheKeys }
8061
+ } = instance;
8007
8062
  invalidateMount(m);
8008
8063
  invalidateMount(a);
8009
8064
  if (bum) {
8010
8065
  invokeArrayFns(bum);
8011
8066
  }
8067
+ if (parent && isArray(slotCacheKeys)) {
8068
+ slotCacheKeys.forEach((v) => {
8069
+ parent.renderCache[v] = void 0;
8070
+ });
8071
+ }
8012
8072
  scope.stop();
8013
8073
  if (job) {
8014
8074
  job.flags |= 8;
@@ -8104,8 +8164,8 @@ function toggleRecurse({ effect, job }, allowed) {
8104
8164
  effect.flags |= 32;
8105
8165
  job.flags |= 4;
8106
8166
  } else {
8107
- effect.flags &= ~32;
8108
- job.flags &= ~4;
8167
+ effect.flags &= -33;
8168
+ job.flags &= -5;
8109
8169
  }
8110
8170
  }
8111
8171
  function needTransition(parentSuspense, transition) {
@@ -8132,6 +8192,9 @@ function traverseStaticChildren(n1, n2, shallow = false) {
8132
8192
  if (c2.type === Comment && !c2.el) {
8133
8193
  c2.el = c1.el;
8134
8194
  }
8195
+ {
8196
+ c2.el && (c2.el.__vnode = c2);
8197
+ }
8135
8198
  }
8136
8199
  }
8137
8200
  }
@@ -9477,8 +9540,8 @@ function isSameVNodeType(n1, n2) {
9477
9540
  if (n2.shapeFlag & 6 && n1.component) {
9478
9541
  const dirtyInstances = hmrDirtyComponents.get(n2.type);
9479
9542
  if (dirtyInstances && dirtyInstances.has(n1.component)) {
9480
- n1.shapeFlag &= ~256;
9481
- n2.shapeFlag &= ~512;
9543
+ n1.shapeFlag &= -257;
9544
+ n2.shapeFlag &= -513;
9482
9545
  return false;
9483
9546
  }
9484
9547
  }
@@ -9939,7 +10002,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
9939
10002
  const { props, children } = instance.vnode;
9940
10003
  const isStateful = isStatefulComponent(instance);
9941
10004
  initProps(instance, props, isStateful, isSSR);
9942
- initSlots(instance, children, optimized);
10005
+ initSlots(instance, children, optimized || isSSR);
9943
10006
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
9944
10007
  isSSR && setInSSRSetupState(false);
9945
10008
  return setupResult;
@@ -10270,13 +10333,15 @@ function initCustomFormatter() {
10270
10333
  if (obj.__isVue) {
10271
10334
  return ["div", vueStyle, `VueInstance`];
10272
10335
  } else if (isRef(obj)) {
10336
+ pauseTracking();
10337
+ const value = obj.value;
10338
+ resetTracking();
10273
10339
  return [
10274
10340
  "div",
10275
10341
  {},
10276
10342
  ["span", vueStyle, genRefFlag(obj)],
10277
10343
  "<",
10278
- // avoid debugger accessing value affecting behavior
10279
- formatValue("_value" in obj ? obj._value : obj),
10344
+ formatValue(value),
10280
10345
  `>`
10281
10346
  ];
10282
10347
  } else if (isReactive(obj)) {
@@ -10457,7 +10522,7 @@ function isMemoSame(cached, memo) {
10457
10522
  return true;
10458
10523
  }
10459
10524
 
10460
- const version = "3.5.13";
10525
+ const version = "3.5.15";
10461
10526
  const warn = warn$1 ;
10462
10527
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10463
10528
  const devtools = devtools$1 ;
@@ -11275,7 +11340,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
11275
11340
  }
11276
11341
  return false;
11277
11342
  }
11278
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
11343
+ if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
11279
11344
  return false;
11280
11345
  }
11281
11346
  if (key === "form") {
@@ -11358,13 +11423,10 @@ class VueElement extends BaseClass {
11358
11423
  this._root = this;
11359
11424
  }
11360
11425
  }
11361
- if (!this._def.__asyncLoader) {
11362
- this._resolveProps(this._def);
11363
- }
11364
11426
  }
11365
11427
  connectedCallback() {
11366
11428
  if (!this.isConnected) return;
11367
- if (!this.shadowRoot) {
11429
+ if (!this.shadowRoot && !this._resolved) {
11368
11430
  this._parseSlots();
11369
11431
  }
11370
11432
  this._connected = true;
@@ -11377,8 +11439,7 @@ class VueElement extends BaseClass {
11377
11439
  }
11378
11440
  if (!this._instance) {
11379
11441
  if (this._resolved) {
11380
- this._setParent();
11381
- this._update();
11442
+ this._mount(this._def);
11382
11443
  } else {
11383
11444
  if (parent && parent._pendingResolve) {
11384
11445
  this._pendingResolve = parent._pendingResolve.then(() => {
@@ -11394,7 +11455,15 @@ class VueElement extends BaseClass {
11394
11455
  _setParent(parent = this._parent) {
11395
11456
  if (parent) {
11396
11457
  this._instance.parent = parent._instance;
11397
- this._instance.provides = parent._instance.provides;
11458
+ this._inheritParentContext(parent);
11459
+ }
11460
+ }
11461
+ _inheritParentContext(parent = this._parent) {
11462
+ if (parent && this._app) {
11463
+ Object.setPrototypeOf(
11464
+ this._app._context.provides,
11465
+ parent._instance.provides
11466
+ );
11398
11467
  }
11399
11468
  }
11400
11469
  disconnectedCallback() {
@@ -11444,9 +11513,7 @@ class VueElement extends BaseClass {
11444
11513
  }
11445
11514
  }
11446
11515
  this._numberProps = numberProps;
11447
- if (isAsync) {
11448
- this._resolveProps(def);
11449
- }
11516
+ this._resolveProps(def);
11450
11517
  if (this.shadowRoot) {
11451
11518
  this._applyStyles(styles);
11452
11519
  } else if (styles) {
@@ -11470,6 +11537,7 @@ class VueElement extends BaseClass {
11470
11537
  def.name = "VueElement";
11471
11538
  }
11472
11539
  this._app = this._createApp(def);
11540
+ this._inheritParentContext();
11473
11541
  if (def.configureApp) {
11474
11542
  def.configureApp(this._app);
11475
11543
  }
@@ -11554,7 +11622,9 @@ class VueElement extends BaseClass {
11554
11622
  }
11555
11623
  }
11556
11624
  _update() {
11557
- render(this._createVNode(), this._root);
11625
+ const vnode = this._createVNode();
11626
+ if (this._app) vnode.appContext = this._app._context;
11627
+ render(vnode, this._root);
11558
11628
  }
11559
11629
  _createVNode() {
11560
11630
  const baseProps = {};
@@ -11764,6 +11834,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11764
11834
  instance.vnode.el,
11765
11835
  moveClass
11766
11836
  )) {
11837
+ prevChildren = [];
11767
11838
  return;
11768
11839
  }
11769
11840
  prevChildren.forEach(callPendingCbs);
@@ -11787,6 +11858,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11787
11858
  };
11788
11859
  el.addEventListener("transitionend", cb);
11789
11860
  });
11861
+ prevChildren = [];
11790
11862
  });
11791
11863
  return () => {
11792
11864
  const rawProps = toRaw(props);