@vue/compat 3.6.0-beta.12 → 3.6.0-beta.14

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.
@@ -1025,9 +1025,9 @@ interface VaporInteropInterface {
1025
1025
  activate(vnode: VNode, container: any, anchor: any, parentComponent: ComponentInternalInstance): void;
1026
1026
  deactivate(vnode: VNode, container: any): void;
1027
1027
  setTransitionHooks(component: ComponentInternalInstance, transition: TransitionHooks): void;
1028
- vdomMount: (component: ConcreteComponent, parentComponent: any, props?: any, slots?: any) => any;
1028
+ vdomMount: (component: ConcreteComponent, parentComponent: any, props?: any, slots?: any, once?: boolean) => any;
1029
1029
  vdomUnmount: UnmountComponentFn;
1030
- vdomSlot: (slots: any, name: string | (() => string), props: Record<string, any>, parentComponent: any, fallback?: any) => any;
1030
+ vdomSlot: (slots: any, name: string | (() => string), props: Record<string, any>, parentComponent: any, fallback?: any, once?: boolean, slotRoot?: boolean) => any;
1031
1031
  vdomMountVNode: (vnode: VNode, parentComponent: any) => any;
1032
1032
  }
1033
1033
  /**
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-beta.12
2
+ * @vue/compat v3.6.0-beta.14
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -1357,9 +1357,6 @@ function targetTypeMap(rawType) {
1357
1357
  default: return 0;
1358
1358
  }
1359
1359
  }
1360
- function getTargetType(value) {
1361
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
1362
- }
1363
1360
  /* @__NO_SIDE_EFFECTS__ */
1364
1361
  function reactive(target) {
1365
1362
  if (/* @__PURE__ */ isReadonly(target)) return target;
@@ -1472,10 +1469,11 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1472
1469
  return target;
1473
1470
  }
1474
1471
  if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) return target;
1475
- const targetType = getTargetType(target);
1476
- if (targetType === 0) return target;
1472
+ if (target["__v_skip"] || !Object.isExtensible(target)) return target;
1477
1473
  const existingProxy = proxyMap.get(target);
1478
1474
  if (existingProxy) return existingProxy;
1475
+ const targetType = targetTypeMap(toRawType(target));
1476
+ if (targetType === 0) return target;
1479
1477
  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
1480
1478
  proxyMap.set(target, proxy);
1481
1479
  return proxy;
@@ -2725,6 +2723,7 @@ function flushJobs(seen) {
2725
2723
  }
2726
2724
  flushIndex = 0;
2727
2725
  jobsLength = 0;
2726
+ jobs.length = 0;
2728
2727
  flushPostFlushCbs(seen);
2729
2728
  currentFlushPromise = null;
2730
2729
  if (jobsLength || postJobs.length) flushJobs(seen);
@@ -2782,6 +2781,14 @@ function createRecord(id, initialDef) {
2782
2781
  function normalizeClassComponent(component) {
2783
2782
  return isClassComponent(component) ? component.__vccOpts : component;
2784
2783
  }
2784
+ function hasDirtyAncestor(instance, dirtyInstances) {
2785
+ let parent = instance.parent;
2786
+ while (parent) {
2787
+ if (dirtyInstances.has(parent)) return true;
2788
+ parent = parent.parent;
2789
+ }
2790
+ return false;
2791
+ }
2785
2792
  function rerender(id, newRender) {
2786
2793
  const record = map.get(id);
2787
2794
  if (!record) return;
@@ -2813,42 +2820,69 @@ function reload(id, newComp) {
2813
2820
  const isVapor = record.initialDef.__vapor;
2814
2821
  updateComponentDef(record.initialDef, newComp);
2815
2822
  const instances = [...record.instances];
2816
- if (isVapor && newComp.__vapor && !instances.some((i) => i.ceReload)) {
2823
+ if (isVapor && newComp.__vapor && !instances.some((instance) => instance.parent && !instance.parent.vapor) && !instances.some((i) => i.ceReload)) {
2817
2824
  for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
2818
- for (const instance of instances) instance.hmrReload(newComp);
2819
- } else for (const instance of instances) {
2820
- const oldComp = normalizeClassComponent(instance.type);
2821
- let dirtyInstances = hmrDirtyComponents.get(oldComp);
2822
- if (!dirtyInstances) {
2823
- if (oldComp !== record.initialDef) updateComponentDef(oldComp, newComp);
2824
- hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
2825
- }
2826
- dirtyInstances.add(instance);
2827
- hmrDirtyComponentsMode.set(oldComp, !!isVapor);
2828
- instance.appContext.propsCache.delete(instance.type);
2829
- instance.appContext.emitsCache.delete(instance.type);
2830
- instance.appContext.optionsCache.delete(instance.type);
2831
- if (instance.ceReload) {
2832
- dirtyInstances.add(instance);
2833
- instance.ceReload(newComp.styles);
2834
- dirtyInstances.delete(instance);
2835
- } else if (instance.parent) queueJob(() => {
2836
- isHmrUpdating = true;
2825
+ const dirtyInstances = new Set(instances);
2826
+ const rerenderedParents = /* @__PURE__ */ new Set();
2827
+ for (const instance of instances) {
2837
2828
  const parent = instance.parent;
2838
- if (parent.vapor) parent.hmrRerender();
2839
- else if (!(parent.effect.flags & 1024)) {
2840
- parent.renderCache = [];
2841
- parent.effect.run();
2829
+ if (parent) {
2830
+ if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2831
+ rerenderedParents.add(parent);
2832
+ parent.hmrRerender();
2833
+ }
2834
+ } else instance.hmrReload(newComp);
2835
+ }
2836
+ } else {
2837
+ const parentUpdates = /* @__PURE__ */ new Map();
2838
+ const dirtyInstanceSet = new Set(instances);
2839
+ for (const instance of instances) {
2840
+ const oldComp = normalizeClassComponent(instance.type);
2841
+ let dirtyInstances = hmrDirtyComponents.get(oldComp);
2842
+ if (!dirtyInstances) {
2843
+ if (oldComp !== record.initialDef) updateComponentDef(oldComp, newComp);
2844
+ hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
2842
2845
  }
2843
- nextTick(() => {
2844
- isHmrUpdating = false;
2846
+ dirtyInstances.add(instance);
2847
+ hmrDirtyComponentsMode.set(oldComp, !!isVapor);
2848
+ instance.appContext.propsCache.delete(instance.type);
2849
+ instance.appContext.emitsCache.delete(instance.type);
2850
+ instance.appContext.optionsCache.delete(instance.type);
2851
+ if (instance.ceReload) {
2852
+ dirtyInstances.add(instance);
2853
+ instance.ceReload(newComp.styles);
2854
+ dirtyInstances.delete(instance);
2855
+ } else if (instance.parent) {
2856
+ const parent = instance.parent;
2857
+ if (!hasDirtyAncestor(instance, dirtyInstanceSet)) {
2858
+ let updates = parentUpdates.get(parent);
2859
+ if (!updates) parentUpdates.set(parent, updates = []);
2860
+ updates.push([instance, dirtyInstances]);
2861
+ }
2862
+ } else if (instance.appContext.reload) instance.appContext.reload();
2863
+ else if (typeof window !== "undefined") window.location.reload();
2864
+ else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
2865
+ if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2866
+ }
2867
+ parentUpdates.forEach((updates, parent) => {
2868
+ queueJob(() => {
2869
+ isHmrUpdating = true;
2870
+ if (parent.vapor) parent.hmrRerender();
2871
+ else {
2872
+ const i = parent;
2873
+ if (!(i.effect.flags & 1024)) {
2874
+ i.renderCache = [];
2875
+ i.effect.run();
2876
+ }
2877
+ }
2878
+ nextTick(() => {
2879
+ isHmrUpdating = false;
2880
+ });
2881
+ updates.forEach(([instance, dirtyInstances]) => {
2882
+ dirtyInstances.delete(instance);
2883
+ });
2845
2884
  });
2846
- dirtyInstances.delete(instance);
2847
2885
  });
2848
- else if (instance.appContext.reload) instance.appContext.reload();
2849
- else if (typeof window !== "undefined") window.location.reload();
2850
- else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
2851
- if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2852
2886
  }
2853
2887
  queuePostFlushCb(() => {
2854
2888
  hmrDirtyComponents.clear();
@@ -3663,17 +3697,16 @@ const TeleportImpl = {
3663
3697
  },
3664
3698
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
3665
3699
  const { shapeFlag, children, anchor, targetStart, targetAnchor, props } = vnode;
3666
- let shouldRemove = doRemove || !isTeleportDisabled(props);
3700
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
3667
3701
  const pendingMount = pendingMounts.get(vnode);
3668
3702
  if (pendingMount) {
3669
3703
  pendingMount.flags |= 4;
3670
3704
  pendingMounts.delete(vnode);
3671
- shouldRemove = false;
3672
3705
  }
3673
3706
  if (targetStart) hostRemove(targetStart);
3674
3707
  if (targetAnchor) hostRemove(targetAnchor);
3675
3708
  doRemove && hostRemove(anchor);
3676
- if (shapeFlag & 16) for (let i = 0; i < children.length; i++) {
3709
+ if (!pendingMount && shapeFlag & 16) for (let i = 0; i < children.length; i++) {
3677
3710
  const child = children[i];
3678
3711
  unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
3679
3712
  }
@@ -4326,15 +4359,11 @@ function createHydrationFunctions(rendererInternals) {
4326
4359
  }
4327
4360
  if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) {
4328
4361
  let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
4329
- let hasWarned = false;
4362
+ if (next && !isMismatchAllowed(el, 1)) {
4363
+ warn$1(`Hydration children mismatch on`, el, `\nServer rendered element contains more child nodes than client vdom.`);
4364
+ logMismatchError();
4365
+ }
4330
4366
  while (next) {
4331
- if (!isMismatchAllowed(el, 1)) {
4332
- if (!hasWarned) {
4333
- warn$1(`Hydration children mismatch on`, el, `\nServer rendered element contains more child nodes than client vdom.`);
4334
- hasWarned = true;
4335
- }
4336
- logMismatchError();
4337
- }
4338
4367
  const cur = next;
4339
4368
  next = next.nextSibling;
4340
4369
  remove(cur);
@@ -4373,7 +4402,7 @@ function createHydrationFunctions(rendererInternals) {
4373
4402
  optimized = optimized || !!parentVNode.dynamicChildren;
4374
4403
  const children = parentVNode.children;
4375
4404
  const l = children.length;
4376
- let hasWarned = false;
4405
+ let hasCheckedMismatch = false;
4377
4406
  for (let i = 0; i < l; i++) {
4378
4407
  const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
4379
4408
  const isText = vnode.type === Text;
@@ -4387,12 +4416,12 @@ function createHydrationFunctions(rendererInternals) {
4387
4416
  node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4388
4417
  } else if (isText && !vnode.children) insert(vnode.el = createText(""), container);
4389
4418
  else {
4390
- if (!isMismatchAllowed(container, 1)) {
4391
- if (!hasWarned) {
4419
+ if (!hasCheckedMismatch) {
4420
+ hasCheckedMismatch = true;
4421
+ if (!isMismatchAllowed(container, 1)) {
4392
4422
  warn$1(`Hydration children mismatch on`, container, `\nServer rendered element contains fewer child nodes than client vdom.`);
4393
- hasWarned = true;
4423
+ logMismatchError();
4394
4424
  }
4395
- logMismatchError();
4396
4425
  }
4397
4426
  patch(null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4398
4427
  }
@@ -5394,6 +5423,7 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5394
5423
  slot: vaporSlot,
5395
5424
  fallback
5396
5425
  };
5426
+ if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
5397
5427
  return ret;
5398
5428
  }
5399
5429
  if (currentRenderingInstance && (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce)) {
@@ -6331,7 +6361,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6331
6361
  if (options.el) return vm.$mount(options.el);
6332
6362
  else return vm;
6333
6363
  }
6334
- Vue.version = `2.6.14-compat:3.6.0-beta.12`;
6364
+ Vue.version = `2.6.14-compat:3.6.0-beta.14`;
6335
6365
  Vue.config = singletonApp.config;
6336
6366
  Vue.use = (plugin, ...options) => {
6337
6367
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -8267,8 +8297,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8267
8297
  else hostInsert(el, container, anchor);
8268
8298
  };
8269
8299
  const performLeave = () => {
8300
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8270
8301
  if (el._isLeaving) el[leaveCbKey](true);
8271
- leave(el, () => {
8302
+ if (transition.persisted && !wasLeaving) remove();
8303
+ else leave(el, () => {
8272
8304
  remove();
8273
8305
  afterLeave && afterLeave();
8274
8306
  });
@@ -8491,6 +8523,10 @@ function invalidateMount(hooks) {
8491
8523
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
8492
8524
  }
8493
8525
  function performTransitionEnter(el, transition, insert, parentSuspense, force = false) {
8526
+ if (force && transition.persisted && !el[leaveCbKey]) {
8527
+ insert();
8528
+ return;
8529
+ }
8494
8530
  if (force || needTransition(parentSuspense, transition)) {
8495
8531
  transition.beforeEnter(el);
8496
8532
  insert();
@@ -9795,7 +9831,7 @@ function isMemoSame(cached, memo) {
9795
9831
  }
9796
9832
  //#endregion
9797
9833
  //#region packages/runtime-core/src/index.ts
9798
- const version = "3.6.0-beta.12";
9834
+ const version = "3.6.0-beta.14";
9799
9835
  const warn = warn$1;
9800
9836
  /**
9801
9837
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -10393,7 +10429,21 @@ function createInvoker(initialValue, instance) {
10393
10429
  const invoker = (e) => {
10394
10430
  if (!e._vts) e._vts = Date.now();
10395
10431
  else if (e._vts <= invoker.attached) return;
10396
- callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5, [e]);
10432
+ const value = invoker.value;
10433
+ if (isArray(value)) {
10434
+ const originalStop = e.stopImmediatePropagation;
10435
+ e.stopImmediatePropagation = () => {
10436
+ originalStop.call(e);
10437
+ e._stopped = true;
10438
+ };
10439
+ const handlers = value.slice();
10440
+ const args = [e];
10441
+ for (let i = 0; i < handlers.length; i++) {
10442
+ if (e._stopped) break;
10443
+ const handler = handlers[i];
10444
+ if (handler) callWithAsyncErrorHandling(handler, instance, 5, args);
10445
+ }
10446
+ } else callWithAsyncErrorHandling(value, instance, 5, [e]);
10397
10447
  };
10398
10448
  invoker.value = initialValue;
10399
10449
  invoker.attached = getNow();
@@ -10404,16 +10454,6 @@ function sanitizeEventValue(value, propName) {
10404
10454
  warn(`Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`);
10405
10455
  return NOOP;
10406
10456
  }
10407
- function patchStopImmediatePropagation(e, value) {
10408
- if (isArray(value)) {
10409
- const originalStop = e.stopImmediatePropagation;
10410
- e.stopImmediatePropagation = () => {
10411
- originalStop.call(e);
10412
- e._stopped = true;
10413
- };
10414
- return value.map((fn) => (e) => !e._stopped && fn && fn(e));
10415
- } else return value;
10416
- }
10417
10457
  //#endregion
10418
10458
  //#region packages/runtime-dom/src/patchProp.ts
10419
10459
  const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
@@ -15472,12 +15512,9 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
15472
15512
  const keyProp = findProp(node, `key`, false, true);
15473
15513
  const isDirKey = keyProp && keyProp.type === 7;
15474
15514
  let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
15475
- if (memo && keyExp && isDirKey) keyProp.exp = keyExp = processExpression(keyExp, context);
15476
- const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
15477
- if (isTemplate) {
15478
- if (memo) memo.exp = processExpression(memo.exp, context);
15479
- if (keyProperty && keyProp.type !== 6) keyProperty.value = processExpression(keyProperty.value, context);
15480
- }
15515
+ const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
15516
+ if (isTemplate && memo) memo.exp = processExpression(memo.exp, context);
15517
+ if ((isTemplate || memo) && keyProperty && isDirKey) keyExp = keyProp.exp = keyProperty.value = processExpression(keyProperty.value, context);
15481
15518
  const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
15482
15519
  const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
15483
15520
  forNode.codegenNode = createVNodeCall(context, helper(FRAGMENT), void 0, renderExp, fragmentFlag, void 0, void 0, true, !isStableFragment, false, node.loc);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-beta.12
2
+ * @vue/compat v3.6.0-beta.14
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -1193,9 +1193,6 @@ function targetTypeMap(rawType) {
1193
1193
  default: return 0;
1194
1194
  }
1195
1195
  }
1196
- function getTargetType(value) {
1197
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
1198
- }
1199
1196
  /* @__NO_SIDE_EFFECTS__ */
1200
1197
  function reactive(target) {
1201
1198
  if (/* @__PURE__ */ isReadonly(target)) return target;
@@ -1305,10 +1302,11 @@ function shallowReadonly(target) {
1305
1302
  function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {
1306
1303
  if (!isObject(target)) return target;
1307
1304
  if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) return target;
1308
- const targetType = getTargetType(target);
1309
- if (targetType === 0) return target;
1305
+ if (target["__v_skip"] || !Object.isExtensible(target)) return target;
1310
1306
  const existingProxy = proxyMap.get(target);
1311
1307
  if (existingProxy) return existingProxy;
1308
+ const targetType = targetTypeMap(toRawType(target));
1309
+ if (targetType === 0) return target;
1312
1310
  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
1313
1311
  proxyMap.set(target, proxy);
1314
1312
  return proxy;
@@ -2409,6 +2407,7 @@ function flushJobs(seen) {
2409
2407
  }
2410
2408
  flushIndex = 0;
2411
2409
  jobsLength = 0;
2410
+ jobs.length = 0;
2412
2411
  flushPostFlushCbs(seen);
2413
2412
  currentFlushPromise = null;
2414
2413
  if (jobsLength || postJobs.length) flushJobs(seen);
@@ -2924,17 +2923,16 @@ const TeleportImpl = {
2924
2923
  },
2925
2924
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
2926
2925
  const { shapeFlag, children, anchor, targetStart, targetAnchor, props } = vnode;
2927
- let shouldRemove = doRemove || !isTeleportDisabled(props);
2926
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
2928
2927
  const pendingMount = pendingMounts.get(vnode);
2929
2928
  if (pendingMount) {
2930
2929
  pendingMount.flags |= 4;
2931
2930
  pendingMounts.delete(vnode);
2932
- shouldRemove = false;
2933
2931
  }
2934
2932
  if (targetStart) hostRemove(targetStart);
2935
2933
  if (targetAnchor) hostRemove(targetAnchor);
2936
2934
  doRemove && hostRemove(anchor);
2937
- if (shapeFlag & 16) for (let i = 0; i < children.length; i++) {
2935
+ if (!pendingMount && shapeFlag & 16) for (let i = 0; i < children.length; i++) {
2938
2936
  const child = children[i];
2939
2937
  unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
2940
2938
  }
@@ -3558,8 +3556,8 @@ function createHydrationFunctions(rendererInternals) {
3558
3556
  }
3559
3557
  if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) {
3560
3558
  let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
3559
+ if (next && !isMismatchAllowed(el, 1)) logMismatchError();
3561
3560
  while (next) {
3562
- if (!isMismatchAllowed(el, 1)) logMismatchError();
3563
3561
  const cur = next;
3564
3562
  next = next.nextSibling;
3565
3563
  remove(cur);
@@ -3595,6 +3593,7 @@ function createHydrationFunctions(rendererInternals) {
3595
3593
  optimized = optimized || !!parentVNode.dynamicChildren;
3596
3594
  const children = parentVNode.children;
3597
3595
  const l = children.length;
3596
+ let hasCheckedMismatch = false;
3598
3597
  for (let i = 0; i < l; i++) {
3599
3598
  const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
3600
3599
  const isText = vnode.type === Text;
@@ -3608,7 +3607,10 @@ function createHydrationFunctions(rendererInternals) {
3608
3607
  node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3609
3608
  } else if (isText && !vnode.children) insert(vnode.el = createText(""), container);
3610
3609
  else {
3611
- if (!isMismatchAllowed(container, 1)) logMismatchError();
3610
+ if (!hasCheckedMismatch) {
3611
+ hasCheckedMismatch = true;
3612
+ if (!isMismatchAllowed(container, 1)) logMismatchError();
3613
+ }
3612
3614
  patch(null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
3613
3615
  }
3614
3616
  }
@@ -4481,6 +4483,7 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
4481
4483
  slot: vaporSlot,
4482
4484
  fallback
4483
4485
  };
4486
+ if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
4484
4487
  return ret;
4485
4488
  }
4486
4489
  if (currentRenderingInstance && (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce)) {
@@ -5252,7 +5255,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5252
5255
  if (options.el) return vm.$mount(options.el);
5253
5256
  else return vm;
5254
5257
  }
5255
- Vue.version = `2.6.14-compat:3.6.0-beta.12`;
5258
+ Vue.version = `2.6.14-compat:3.6.0-beta.14`;
5256
5259
  Vue.config = singletonApp.config;
5257
5260
  Vue.use = (plugin, ...options) => {
5258
5261
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -6796,8 +6799,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6796
6799
  else hostInsert(el, container, anchor);
6797
6800
  };
6798
6801
  const performLeave = () => {
6802
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
6799
6803
  if (el._isLeaving) el[leaveCbKey](true);
6800
- leave(el, () => {
6804
+ if (transition.persisted && !wasLeaving) remove();
6805
+ else leave(el, () => {
6801
6806
  remove();
6802
6807
  afterLeave && afterLeave();
6803
6808
  });
@@ -7008,6 +7013,10 @@ function invalidateMount(hooks) {
7008
7013
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
7009
7014
  }
7010
7015
  function performTransitionEnter(el, transition, insert, parentSuspense, force = false) {
7016
+ if (force && transition.persisted && !el[leaveCbKey]) {
7017
+ insert();
7018
+ return;
7019
+ }
7011
7020
  if (force || needTransition(parentSuspense, transition)) {
7012
7021
  transition.beforeEnter(el);
7013
7022
  insert();
@@ -8018,7 +8027,7 @@ function isMemoSame(cached, memo) {
8018
8027
  }
8019
8028
  //#endregion
8020
8029
  //#region packages/runtime-core/src/index.ts
8021
- const version = "3.6.0-beta.12";
8030
+ const version = "3.6.0-beta.14";
8022
8031
  const warn = NOOP;
8023
8032
  /**
8024
8033
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -8606,22 +8615,26 @@ function createInvoker(initialValue, instance) {
8606
8615
  const invoker = (e) => {
8607
8616
  if (!e._vts) e._vts = Date.now();
8608
8617
  else if (e._vts <= invoker.attached) return;
8609
- callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5, [e]);
8618
+ const value = invoker.value;
8619
+ if (isArray(value)) {
8620
+ const originalStop = e.stopImmediatePropagation;
8621
+ e.stopImmediatePropagation = () => {
8622
+ originalStop.call(e);
8623
+ e._stopped = true;
8624
+ };
8625
+ const handlers = value.slice();
8626
+ const args = [e];
8627
+ for (let i = 0; i < handlers.length; i++) {
8628
+ if (e._stopped) break;
8629
+ const handler = handlers[i];
8630
+ if (handler) callWithAsyncErrorHandling(handler, instance, 5, args);
8631
+ }
8632
+ } else callWithAsyncErrorHandling(value, instance, 5, [e]);
8610
8633
  };
8611
8634
  invoker.value = initialValue;
8612
8635
  invoker.attached = getNow();
8613
8636
  return invoker;
8614
8637
  }
8615
- function patchStopImmediatePropagation(e, value) {
8616
- if (isArray(value)) {
8617
- const originalStop = e.stopImmediatePropagation;
8618
- e.stopImmediatePropagation = () => {
8619
- originalStop.call(e);
8620
- e._stopped = true;
8621
- };
8622
- return value.map((fn) => (e) => !e._stopped && fn && fn(e));
8623
- } else return value;
8624
- }
8625
8638
  //#endregion
8626
8639
  //#region packages/runtime-dom/src/patchProp.ts
8627
8640
  const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
@@ -13498,12 +13511,9 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
13498
13511
  const keyProp = findProp(node, `key`, false, true);
13499
13512
  const isDirKey = keyProp && keyProp.type === 7;
13500
13513
  let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
13501
- if (memo && keyExp && isDirKey) keyProp.exp = keyExp = processExpression(keyExp, context);
13502
- const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
13503
- if (isTemplate) {
13504
- if (memo) memo.exp = processExpression(memo.exp, context);
13505
- if (keyProperty && keyProp.type !== 6) keyProperty.value = processExpression(keyProperty.value, context);
13506
- }
13514
+ const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
13515
+ if (isTemplate && memo) memo.exp = processExpression(memo.exp, context);
13516
+ if ((isTemplate || memo) && keyProperty && isDirKey) keyExp = keyProp.exp = keyProperty.value = processExpression(keyProperty.value, context);
13507
13517
  const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
13508
13518
  const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
13509
13519
  forNode.codegenNode = createVNodeCall(context, helper(FRAGMENT), void 0, renderExp, fragmentFlag, void 0, void 0, true, !isStableFragment, false, node.loc);