@vue/compat 3.6.0-beta.8 → 3.6.0-rc.1

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.6.0-beta.8
2
+ * @vue/compat v3.6.0-rc.1
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -526,6 +526,13 @@ function warn$2(msg, ...args) {
526
526
  const notifyBuffer = [];
527
527
  let batchDepth = 0;
528
528
  let activeSub = void 0;
529
+ let runDepth = 0;
530
+ function incRunDepth() {
531
+ ++runDepth;
532
+ }
533
+ function decRunDepth() {
534
+ --runDepth;
535
+ }
529
536
  let globalVersion = 0;
530
537
  let notifyIndex = 0;
531
538
  let notifyBufferLength = 0;
@@ -599,8 +606,10 @@ function propagate(link) {
599
606
  const sub = link.sub;
600
607
  let flags = sub.flags;
601
608
  if (flags & 3) {
602
- if (!(flags & 60)) sub.flags = flags | 32;
603
- else if (!(flags & 12)) flags = 0;
609
+ if (!(flags & 60)) {
610
+ sub.flags = flags | 32;
611
+ if (runDepth) sub.flags |= 8;
612
+ } else if (!(flags & 12)) flags = 0;
604
613
  else if (!(flags & 4)) sub.flags = flags & -9 | 32;
605
614
  else if (!(flags & 48) && isValidLink(link, sub)) {
606
615
  sub.flags = flags | 40;
@@ -669,13 +678,13 @@ function checkDirty(link, sub) {
669
678
  let dirty = false;
670
679
  if (sub.flags & 16) dirty = true;
671
680
  else if ((depFlags & 17) === 17) {
681
+ const subs = dep.subs;
672
682
  if (dep.update()) {
673
- const subs = dep.subs;
674
683
  if (subs.nextSub !== void 0) shallowPropagate(subs);
675
684
  dirty = true;
676
685
  }
677
686
  } else if ((depFlags & 33) === 33) {
678
- if (link.nextSub !== void 0 || link.prevSub !== void 0) stack = {
687
+ stack = {
679
688
  value: link,
680
689
  prev: stack
681
690
  };
@@ -690,15 +699,12 @@ function checkDirty(link, sub) {
690
699
  }
691
700
  while (checkDepth) {
692
701
  --checkDepth;
693
- const firstSub = sub.subs;
694
- const hasMultipleSubs = firstSub.nextSub !== void 0;
695
- if (hasMultipleSubs) {
696
- link = stack.value;
697
- stack = stack.prev;
698
- } else link = firstSub;
702
+ link = stack.value;
703
+ stack = stack.prev;
699
704
  if (dirty) {
705
+ const subs = sub.subs;
700
706
  if (sub.update()) {
701
- if (hasMultipleSubs) shallowPropagate(firstSub);
707
+ if (subs.nextSub !== void 0) shallowPropagate(subs);
702
708
  sub = link.sub;
703
709
  continue;
704
710
  }
@@ -710,7 +716,7 @@ function checkDirty(link, sub) {
710
716
  }
711
717
  dirty = false;
712
718
  }
713
- return dirty;
719
+ return dirty && !!sub.flags;
714
720
  } while (true);
715
721
  }
716
722
  function shallowPropagate(link) {
@@ -1093,7 +1099,7 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
1093
1099
  }
1094
1100
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
1095
1101
  const result = Reflect.set(target, key, value, /* @__PURE__ */ isRef(target) ? target : receiver);
1096
- if (target === /* @__PURE__ */ toRaw(receiver)) {
1102
+ if (target === /* @__PURE__ */ toRaw(receiver) && result) {
1097
1103
  if (!hadKey) trigger(target, "add", key, value);
1098
1104
  else if (hasChanged(value, oldValue)) trigger(target, "set", key, value, oldValue);
1099
1105
  }
@@ -1311,9 +1317,6 @@ function targetTypeMap(rawType) {
1311
1317
  default: return 0;
1312
1318
  }
1313
1319
  }
1314
- function getTargetType(value) {
1315
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
1316
- }
1317
1320
  /* @__NO_SIDE_EFFECTS__ */
1318
1321
  function reactive(target) {
1319
1322
  if (/* @__PURE__ */ isReadonly(target)) return target;
@@ -1426,10 +1429,11 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1426
1429
  return target;
1427
1430
  }
1428
1431
  if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) return target;
1429
- const targetType = getTargetType(target);
1430
- if (targetType === 0) return target;
1432
+ if (target["__v_skip"] || !Object.isExtensible(target)) return target;
1431
1433
  const existingProxy = proxyMap.get(target);
1432
1434
  if (existingProxy) return existingProxy;
1435
+ const targetType = targetTypeMap(toRawType(target));
1436
+ if (targetType === 0) return target;
1433
1437
  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
1434
1438
  proxyMap.set(target, proxy);
1435
1439
  return proxy;
@@ -1777,16 +1781,16 @@ function toRefs(object) {
1777
1781
  return ret;
1778
1782
  }
1779
1783
  var ObjectRefImpl = class {
1780
- constructor(_object, _key, _defaultValue) {
1784
+ constructor(_object, key, _defaultValue) {
1781
1785
  this._object = _object;
1782
- this._key = _key;
1783
1786
  this._defaultValue = _defaultValue;
1784
1787
  this["__v_isRef"] = true;
1785
1788
  this._value = void 0;
1789
+ this._key = isSymbol(key) ? key : String(key);
1786
1790
  this._raw = /* @__PURE__ */ toRaw(_object);
1787
1791
  let shallow = true;
1788
1792
  let obj = _object;
1789
- if (!isArray(_object) || !isIntegerKey(String(_key))) do
1793
+ if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) do
1790
1794
  shallow = !/* @__PURE__ */ isProxy(obj) || /* @__PURE__ */ isShallow(obj);
1791
1795
  while (shallow && (obj = obj["__v_raw"]));
1792
1796
  this._shallow = shallow;
@@ -1862,9 +1866,11 @@ var ReactiveEffect = class {
1862
1866
  if (!this.active) return this.fn();
1863
1867
  cleanup(this);
1864
1868
  const prevSub = startTracking(this);
1869
+ incRunDepth();
1865
1870
  try {
1866
1871
  return this.fn();
1867
1872
  } finally {
1873
+ decRunDepth();
1868
1874
  endTracking(this, prevSub);
1869
1875
  const flags = this.flags;
1870
1876
  if ((flags & 136) === 136) {
@@ -2245,8 +2251,9 @@ var WatcherEffect = class extends ReactiveEffect {
2245
2251
  if (once && cb) {
2246
2252
  const _cb = cb;
2247
2253
  cb = (...args) => {
2248
- _cb(...args);
2254
+ const res = _cb(...args);
2249
2255
  this.stop();
2256
+ return res;
2250
2257
  };
2251
2258
  }
2252
2259
  this.cb = cb;
@@ -2262,7 +2269,7 @@ var WatcherEffect = class extends ReactiveEffect {
2262
2269
  if (!this.cb) return;
2263
2270
  const { immediate, deep, call } = this.options;
2264
2271
  if (initialRun && !immediate) return;
2265
- if (deep || this.forceTrigger || (this.isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2272
+ if (initialRun || deep || this.forceTrigger || (this.isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2266
2273
  cleanup(this);
2267
2274
  const currentWatcher = activeWatcher;
2268
2275
  activeWatcher = this;
@@ -2579,8 +2586,8 @@ function findInsertionIndex(order, queue, start, end) {
2579
2586
  /**
2580
2587
  * @internal for runtime-vapor only
2581
2588
  */
2582
- function queueJob(job, id, isPre = false) {
2583
- if (queueJobWorker(job, id === void 0 ? isPre ? -2 : Infinity : isPre ? id * 2 : id * 2 + 1, jobs, jobsLength, flushIndex)) {
2589
+ function queueJob(job, id, isPre = false, order = 0) {
2590
+ if (queueJobWorker(job, id === void 0 ? isPre ? -2 : Infinity : isPre ? id * 2 : order ? id * 2 + 1 + order / (order + 1) : id * 2 + 1, jobs, jobsLength, flushIndex)) {
2584
2591
  jobsLength++;
2585
2592
  queueFlush();
2586
2593
  }
@@ -2689,6 +2696,7 @@ function flushJobs(seen) {
2689
2696
  }
2690
2697
  flushIndex = 0;
2691
2698
  jobsLength = 0;
2699
+ jobs.length = 0;
2692
2700
  flushPostFlushCbs(seen);
2693
2701
  currentFlushPromise = null;
2694
2702
  if (jobsLength || postJobs.length) flushJobs(seen);
@@ -2708,6 +2716,13 @@ function checkRecursiveUpdates(seen, fn) {
2708
2716
  //#endregion
2709
2717
  //#region packages/runtime-core/src/hmr.ts
2710
2718
  let isHmrUpdating = false;
2719
+ const setHmrUpdating = (v) => {
2720
+ try {
2721
+ return isHmrUpdating;
2722
+ } finally {
2723
+ isHmrUpdating = v;
2724
+ }
2725
+ };
2711
2726
  const hmrDirtyComponents = /* @__PURE__ */ new Map();
2712
2727
  const hmrDirtyComponentsMode = /* @__PURE__ */ new Map();
2713
2728
  if (!!(process.env.NODE_ENV !== "production")) getGlobalThis().__VUE_HMR_RUNTIME__ = {
@@ -2739,6 +2754,14 @@ function createRecord(id, initialDef) {
2739
2754
  function normalizeClassComponent(component) {
2740
2755
  return isClassComponent(component) ? component.__vccOpts : component;
2741
2756
  }
2757
+ function hasDirtyAncestor(instance, dirtyInstances) {
2758
+ let parent = instance.parent;
2759
+ while (parent) {
2760
+ if (dirtyInstances.has(parent)) return true;
2761
+ parent = parent.parent;
2762
+ }
2763
+ return false;
2764
+ }
2742
2765
  function rerender(id, newRender) {
2743
2766
  const record = map.get(id);
2744
2767
  if (!record) return;
@@ -2770,42 +2793,69 @@ function reload(id, newComp) {
2770
2793
  const isVapor = record.initialDef.__vapor;
2771
2794
  updateComponentDef(record.initialDef, newComp);
2772
2795
  const instances = [...record.instances];
2773
- if (isVapor && newComp.__vapor && !instances.some((i) => i.ceReload)) {
2796
+ if (isVapor && newComp.__vapor && !instances.some((instance) => instance.parent && !instance.parent.vapor) && !instances.some((i) => i.ceReload)) {
2774
2797
  for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
2775
- for (const instance of instances) instance.hmrReload(newComp);
2776
- } else for (const instance of instances) {
2777
- const oldComp = normalizeClassComponent(instance.type);
2778
- let dirtyInstances = hmrDirtyComponents.get(oldComp);
2779
- if (!dirtyInstances) {
2780
- if (oldComp !== record.initialDef) updateComponentDef(oldComp, newComp);
2781
- hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
2782
- }
2783
- dirtyInstances.add(instance);
2784
- hmrDirtyComponentsMode.set(oldComp, !!isVapor);
2785
- instance.appContext.propsCache.delete(instance.type);
2786
- instance.appContext.emitsCache.delete(instance.type);
2787
- instance.appContext.optionsCache.delete(instance.type);
2788
- if (instance.ceReload) {
2789
- dirtyInstances.add(instance);
2790
- instance.ceReload(newComp.styles);
2791
- dirtyInstances.delete(instance);
2792
- } else if (instance.parent) queueJob(() => {
2793
- isHmrUpdating = true;
2798
+ const dirtyInstances = new Set(instances);
2799
+ const rerenderedParents = /* @__PURE__ */ new Set();
2800
+ for (const instance of instances) {
2794
2801
  const parent = instance.parent;
2795
- if (parent.vapor) parent.hmrRerender();
2796
- else if (!(parent.effect.flags & 1024)) {
2797
- parent.renderCache = [];
2798
- parent.effect.run();
2802
+ if (parent) {
2803
+ if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2804
+ rerenderedParents.add(parent);
2805
+ parent.hmrRerender();
2806
+ }
2807
+ } else instance.hmrReload(newComp);
2808
+ }
2809
+ } else {
2810
+ const parentUpdates = /* @__PURE__ */ new Map();
2811
+ const dirtyInstanceSet = new Set(instances);
2812
+ for (const instance of instances) {
2813
+ const oldComp = normalizeClassComponent(instance.type);
2814
+ let dirtyInstances = hmrDirtyComponents.get(oldComp);
2815
+ if (!dirtyInstances) {
2816
+ if (oldComp !== record.initialDef) updateComponentDef(oldComp, newComp);
2817
+ hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
2799
2818
  }
2800
- nextTick(() => {
2801
- isHmrUpdating = false;
2819
+ dirtyInstances.add(instance);
2820
+ hmrDirtyComponentsMode.set(oldComp, !!isVapor);
2821
+ instance.appContext.propsCache.delete(instance.type);
2822
+ instance.appContext.emitsCache.delete(instance.type);
2823
+ instance.appContext.optionsCache.delete(instance.type);
2824
+ if (instance.ceReload) {
2825
+ dirtyInstances.add(instance);
2826
+ instance.ceReload(newComp.styles);
2827
+ dirtyInstances.delete(instance);
2828
+ } else if (instance.parent) {
2829
+ const parent = instance.parent;
2830
+ if (!hasDirtyAncestor(instance, dirtyInstanceSet)) {
2831
+ let updates = parentUpdates.get(parent);
2832
+ if (!updates) parentUpdates.set(parent, updates = []);
2833
+ updates.push([instance, dirtyInstances]);
2834
+ }
2835
+ } else if (instance.appContext.reload) instance.appContext.reload();
2836
+ else if (typeof window !== "undefined") window.location.reload();
2837
+ else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
2838
+ if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2839
+ }
2840
+ parentUpdates.forEach((updates, parent) => {
2841
+ queueJob(() => {
2842
+ isHmrUpdating = true;
2843
+ if (parent.vapor) parent.hmrRerender();
2844
+ else {
2845
+ const i = parent;
2846
+ if (!(i.effect.flags & 1024)) {
2847
+ i.renderCache = [];
2848
+ i.effect.run();
2849
+ }
2850
+ }
2851
+ nextTick(() => {
2852
+ isHmrUpdating = false;
2853
+ });
2854
+ updates.forEach(([instance, dirtyInstances]) => {
2855
+ dirtyInstances.delete(instance);
2856
+ });
2802
2857
  });
2803
- dirtyInstances.delete(instance);
2804
2858
  });
2805
- else if (instance.appContext.reload) instance.appContext.reload();
2806
- else if (typeof window !== "undefined") window.location.reload();
2807
- else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
2808
- if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2809
2859
  }
2810
2860
  queuePostFlushCb(() => {
2811
2861
  hmrDirtyComponents.clear();
@@ -3273,10 +3323,12 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
3273
3323
  const renderFnWithContext = (...args) => {
3274
3324
  if (renderFnWithContext._d) setBlockTracking(-1);
3275
3325
  const prevInstance = setCurrentRenderingInstance(ctx);
3326
+ const prevStackSize = blockStack.length;
3276
3327
  let res;
3277
3328
  try {
3278
3329
  res = fn(...args);
3279
3330
  } finally {
3331
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
3280
3332
  setCurrentRenderingInstance(prevInstance);
3281
3333
  if (renderFnWithContext._d) setBlockTracking(1);
3282
3334
  }
@@ -3511,6 +3563,7 @@ function createPathGetter(ctx, path) {
3511
3563
  }
3512
3564
  //#endregion
3513
3565
  //#region packages/runtime-core/src/components/Teleport.ts
3566
+ const pendingMounts = /* @__PURE__ */ new WeakMap();
3514
3567
  const TeleportEndKey = Symbol("_vte");
3515
3568
  const isTeleport = (type) => type.__isTeleport;
3516
3569
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
@@ -3536,55 +3589,68 @@ const TeleportImpl = {
3536
3589
  name: "Teleport",
3537
3590
  __isTeleport: true,
3538
3591
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
3539
- const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;
3592
+ const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment, parentNode } } = internals;
3540
3593
  const disabled = isTeleportDisabled(n2.props);
3541
- let { shapeFlag, children, dynamicChildren } = n2;
3594
+ let { dynamicChildren } = n2;
3542
3595
  if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) {
3543
3596
  optimized = false;
3544
3597
  dynamicChildren = null;
3545
3598
  }
3599
+ const mount = (vnode, container, anchor) => {
3600
+ if (vnode.shapeFlag & 16) mountChildren(vnode.children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
3601
+ };
3602
+ const mountToTarget = (vnode = n2) => {
3603
+ const disabled = isTeleportDisabled(vnode.props);
3604
+ const target = vnode.target = resolveTarget(vnode.props, querySelector);
3605
+ const targetAnchor = prepareAnchor(target, vnode, createText, insert);
3606
+ if (target) {
3607
+ if (namespace !== "svg" && isTargetSVG(target)) namespace = "svg";
3608
+ else if (namespace !== "mathml" && isTargetMathML(target)) namespace = "mathml";
3609
+ if (parentComponent && parentComponent.isCE) (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
3610
+ if (!disabled) {
3611
+ mount(vnode, target, targetAnchor);
3612
+ updateCssVars(vnode, false);
3613
+ }
3614
+ } else if (!!(process.env.NODE_ENV !== "production") && !disabled) warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
3615
+ };
3616
+ const queuePendingMount = (vnode) => {
3617
+ const mountJob = () => {
3618
+ if (pendingMounts.get(vnode) !== mountJob) return;
3619
+ pendingMounts.delete(vnode);
3620
+ if (isTeleportDisabled(vnode.props)) {
3621
+ mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
3622
+ updateCssVars(vnode, true);
3623
+ }
3624
+ mountToTarget(vnode);
3625
+ };
3626
+ pendingMounts.set(vnode, mountJob);
3627
+ queuePostRenderEffect(mountJob, void 0, parentSuspense);
3628
+ };
3546
3629
  if (n1 == null) {
3547
3630
  const placeholder = n2.el = !!(process.env.NODE_ENV !== "production") ? createComment("teleport start") : createText("");
3548
3631
  const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== "production") ? createComment("teleport end") : createText("");
3549
3632
  insert(placeholder, container, anchor);
3550
3633
  insert(mainAnchor, container, anchor);
3551
- const mount = (container, anchor) => {
3552
- if (shapeFlag & 16) mountChildren(children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
3553
- };
3554
- const mountToTarget = () => {
3555
- const target = n2.target = resolveTarget(n2.props, querySelector);
3556
- const targetAnchor = prepareAnchor(target, n2, createText, insert);
3557
- if (target) {
3558
- if (namespace !== "svg" && isTargetSVG(target)) namespace = "svg";
3559
- else if (namespace !== "mathml" && isTargetMathML(target)) namespace = "mathml";
3560
- if (parentComponent && parentComponent.isCE) (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
3561
- if (!disabled) {
3562
- mount(target, targetAnchor);
3563
- updateCssVars(n2, false);
3564
- }
3565
- } else if (!!(process.env.NODE_ENV !== "production") && !disabled) warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
3566
- };
3634
+ if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
3635
+ queuePendingMount(n2);
3636
+ return;
3637
+ }
3567
3638
  if (disabled) {
3568
- mount(container, mainAnchor);
3639
+ mount(n2, container, mainAnchor);
3569
3640
  updateCssVars(n2, true);
3570
3641
  }
3571
- if (isTeleportDeferred(n2.props)) {
3572
- n2.el.__isMounted = false;
3573
- queuePostRenderEffect(() => {
3574
- mountToTarget();
3575
- delete n2.el.__isMounted;
3576
- }, void 0, parentSuspense);
3577
- } else mountToTarget();
3642
+ mountToTarget();
3578
3643
  } else {
3579
- if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
3580
- queuePostRenderEffect(() => {
3581
- TeleportImpl.process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals);
3582
- }, void 0, parentSuspense);
3644
+ n2.el = n1.el;
3645
+ const mainAnchor = n2.anchor = n1.anchor;
3646
+ const pendingMount = pendingMounts.get(n1);
3647
+ if (pendingMount) {
3648
+ pendingMount.flags |= 4;
3649
+ pendingMounts.delete(n1);
3650
+ queuePendingMount(n2);
3583
3651
  return;
3584
3652
  }
3585
- n2.el = n1.el;
3586
3653
  n2.targetStart = n1.targetStart;
3587
- const mainAnchor = n2.anchor = n1.anchor;
3588
3654
  const target = n2.target = n1.target;
3589
3655
  const targetAnchor = n2.targetAnchor = n1.targetAnchor;
3590
3656
  const wasDisabled = isTeleportDisabled(n1.props);
@@ -3600,26 +3666,30 @@ const TeleportImpl = {
3600
3666
  if (!wasDisabled) moveTeleport(n2, container, mainAnchor, internals, parentComponent, 1);
3601
3667
  else if (n2.props && n1.props && n2.props.to !== n1.props.to) n2.props.to = n1.props.to;
3602
3668
  } else if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
3603
- const nextTarget = n2.target = resolveTarget(n2.props, querySelector);
3604
- if (nextTarget) moveTeleport(n2, nextTarget, null, internals, parentComponent, 0);
3605
- else if (!!(process.env.NODE_ENV !== "production")) warn$1("Invalid Teleport target on update:", target, `(${typeof target})`);
3669
+ const nextTarget = resolveTarget(n2.props, querySelector);
3670
+ if (nextTarget) {
3671
+ n2.target = nextTarget;
3672
+ moveTeleport(n2, nextTarget, null, internals, parentComponent, 0);
3673
+ } else if (!!(process.env.NODE_ENV !== "production")) warn$1("Invalid Teleport target on update:", target, `(${typeof target})`);
3606
3674
  } else if (wasDisabled) moveTeleport(n2, target, targetAnchor, internals, parentComponent, 1);
3607
3675
  updateCssVars(n2, disabled);
3608
3676
  }
3609
3677
  },
3610
3678
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
3611
3679
  const { shapeFlag, children, anchor, targetStart, targetAnchor, target, props } = vnode;
3612
- if (target) {
3613
- hostRemove(targetStart);
3614
- hostRemove(targetAnchor);
3615
- }
3680
+ const disabled = isTeleportDisabled(props);
3681
+ const shouldRemove = doRemove || !disabled;
3682
+ const pendingMount = pendingMounts.get(vnode);
3683
+ if (pendingMount) {
3684
+ pendingMount.flags |= 4;
3685
+ pendingMounts.delete(vnode);
3686
+ }
3687
+ if (targetStart) hostRemove(targetStart);
3688
+ if (targetAnchor) hostRemove(targetAnchor);
3616
3689
  doRemove && hostRemove(anchor);
3617
- if (shapeFlag & 16) {
3618
- const shouldRemove = doRemove || !isTeleportDisabled(props);
3619
- for (let i = 0; i < children.length; i++) {
3620
- const child = children[i];
3621
- unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
3622
- }
3690
+ if (!pendingMount && (disabled || target) && shapeFlag & 16) for (let i = 0; i < children.length; i++) {
3691
+ const child = children[i];
3692
+ unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
3623
3693
  }
3624
3694
  },
3625
3695
  move: moveTeleport,
@@ -3630,7 +3700,7 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
3630
3700
  const { el, anchor, shapeFlag, children, props } = vnode;
3631
3701
  const isReorder = moveType === 2;
3632
3702
  if (isReorder) insert(el, container, parentAnchor);
3633
- if (!isReorder || isTeleportDisabled(props)) {
3703
+ if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {
3634
3704
  if (shapeFlag & 16) for (let i = 0; i < children.length; i++) move(children[i], container, parentAnchor, 2, parentComponent);
3635
3705
  }
3636
3706
  if (isReorder) insert(anchor, container, parentAnchor);
@@ -3755,8 +3825,8 @@ const BaseTransitionImpl = {
3755
3825
  const state = useTransitionState();
3756
3826
  return () => {
3757
3827
  const children = slots.default && getTransitionRawChildren(slots.default(), true);
3758
- if (!children || !children.length) return;
3759
- const child = findNonCommentChild(children);
3828
+ const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
3829
+ if (!child) return;
3760
3830
  const rawProps = /* @__PURE__ */ toRaw(props);
3761
3831
  const { mode } = rawProps;
3762
3832
  checkTransitionMode(mode);
@@ -3873,7 +3943,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3873
3943
  callHook(hook, [el]);
3874
3944
  },
3875
3945
  enter(el) {
3876
- if (isLeaving()) return;
3946
+ if (!isHmrUpdating && isLeaving()) return;
3877
3947
  let hook = onEnter;
3878
3948
  let afterHook = onAfterEnter;
3879
3949
  let cancelHook = onEnterCancelled;
@@ -4223,7 +4293,7 @@ function createHydrationFunctions(rendererInternals) {
4223
4293
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4224
4294
  break;
4225
4295
  case VaporSlot:
4226
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node);
4296
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
4227
4297
  break;
4228
4298
  default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
4229
4299
  else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
@@ -4233,16 +4303,31 @@ function createHydrationFunctions(rendererInternals) {
4233
4303
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
4234
4304
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
4235
4305
  else nextNode = nextSibling(node);
4236
- if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, null, parentComponent, parentSuspense);
4237
- else mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
4238
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
4239
- let subTree;
4240
- if (isFragmentStart) {
4241
- subTree = createVNode(Fragment);
4242
- subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4243
- } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4244
- subTree.el = node;
4245
- vnode.component.subTree = subTree;
4306
+ if (vnode.type.__vapor) {
4307
+ const vnodeBeforeMountHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeBeforeMount;
4308
+ getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
4309
+ if (vnode.dirs) {
4310
+ invokeDirectiveHook(vnode, null, parentComponent, "created");
4311
+ invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4312
+ }
4313
+ }, () => {
4314
+ if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
4315
+ });
4316
+ if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
4317
+ const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
4318
+ if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
4319
+ } else {
4320
+ mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
4321
+ const component = vnode.component;
4322
+ if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
4323
+ let subTree;
4324
+ if (isFragmentStart) {
4325
+ subTree = createVNode(Fragment);
4326
+ subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4327
+ } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4328
+ subTree.el = node;
4329
+ component.subTree = subTree;
4330
+ }
4246
4331
  }
4247
4332
  } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
4248
4333
  else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
@@ -4254,9 +4339,10 @@ function createHydrationFunctions(rendererInternals) {
4254
4339
  };
4255
4340
  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
4256
4341
  optimized = optimized || !!vnode.dynamicChildren;
4257
- const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;
4342
+ const { type, dynamicProps, props, patchFlag, shapeFlag, dirs, transition } = vnode;
4258
4343
  const forcePatch = type === "input" || type === "option";
4259
- if (!!(process.env.NODE_ENV !== "production") || forcePatch || patchFlag !== -1) {
4344
+ const hasDynamicProps = !!dynamicProps;
4345
+ if (!!(process.env.NODE_ENV !== "production") || forcePatch || hasDynamicProps || patchFlag !== -1) {
4260
4346
  if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "created");
4261
4347
  let needCallTransitionHooks = false;
4262
4348
  if (isTemplateNode(el)) {
@@ -4272,15 +4358,11 @@ function createHydrationFunctions(rendererInternals) {
4272
4358
  }
4273
4359
  if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) {
4274
4360
  let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
4275
- let hasWarned = false;
4361
+ if (next && !isMismatchAllowed(el, 1)) {
4362
+ (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration children mismatch on`, el, `\nServer rendered element contains more child nodes than client vdom.`);
4363
+ logMismatchError();
4364
+ }
4276
4365
  while (next) {
4277
- if (!isMismatchAllowed(el, 1)) {
4278
- if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
4279
- warn$1(`Hydration children mismatch on`, el, `\nServer rendered element contains more child nodes than client vdom.`);
4280
- hasWarned = true;
4281
- }
4282
- logMismatchError();
4283
- }
4284
4366
  const cur = next;
4285
4367
  next = next.nextSibling;
4286
4368
  remove(cur);
@@ -4298,11 +4380,12 @@ function createHydrationFunctions(rendererInternals) {
4298
4380
  }
4299
4381
  }
4300
4382
  if (props) {
4301
- if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & 48) {
4383
+ if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || hasDynamicProps || !optimized || patchFlag & 48) {
4302
4384
  const isCustomElement = el.tagName.includes("-");
4385
+ const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
4303
4386
  for (const key in props) {
4304
4387
  if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
4305
- if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key)) patchProp(el, key, null, props[key], void 0, parentComponent);
4388
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) patchProp(el, key, null, props[key], namespace, parentComponent);
4306
4389
  }
4307
4390
  } else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
4308
4391
  else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
@@ -4322,7 +4405,7 @@ function createHydrationFunctions(rendererInternals) {
4322
4405
  optimized = optimized || !!parentVNode.dynamicChildren;
4323
4406
  const children = parentVNode.children;
4324
4407
  const l = children.length;
4325
- let hasWarned = false;
4408
+ let hasCheckedMismatch = false;
4326
4409
  for (let i = 0; i < l; i++) {
4327
4410
  const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
4328
4411
  const isText = vnode.type === Text;
@@ -4336,12 +4419,12 @@ function createHydrationFunctions(rendererInternals) {
4336
4419
  node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4337
4420
  } else if (isText && !vnode.children) insert(vnode.el = createText(""), container);
4338
4421
  else {
4339
- if (!isMismatchAllowed(container, 1)) {
4340
- if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
4341
- warn$1(`Hydration children mismatch on`, container, `\nServer rendered element contains fewer child nodes than client vdom.`);
4342
- hasWarned = true;
4422
+ if (!hasCheckedMismatch) {
4423
+ hasCheckedMismatch = true;
4424
+ if (!isMismatchAllowed(container, 1)) {
4425
+ (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration children mismatch on`, container, `\nServer rendered element contains fewer child nodes than client vdom.`);
4426
+ logMismatchError();
4343
4427
  }
4344
- logMismatchError();
4345
4428
  }
4346
4429
  patch(null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4347
4430
  }
@@ -4361,7 +4444,7 @@ function createHydrationFunctions(rendererInternals) {
4361
4444
  }
4362
4445
  };
4363
4446
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
4364
- if (!isMismatchAllowed(node.parentElement, 1)) {
4447
+ if (!isNodeMismatchAllowed(node, vnode)) {
4365
4448
  (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
4366
4449
  logMismatchError();
4367
4450
  }
@@ -4537,7 +4620,9 @@ const MismatchTypeString = {
4537
4620
  };
4538
4621
  function isMismatchAllowed(el, allowedType) {
4539
4622
  if (allowedType === 0 || allowedType === 1) while (el && !el.hasAttribute(allowMismatchAttr)) el = el.parentElement;
4540
- const allowedAttr = el && el.getAttribute(allowMismatchAttr);
4623
+ return isMismatchAllowedByAttr(el && el.getAttribute(allowMismatchAttr), allowedType);
4624
+ }
4625
+ function isMismatchAllowedByAttr(allowedAttr, allowedType) {
4541
4626
  if (allowedAttr == null) return false;
4542
4627
  else if (allowedAttr === "") return true;
4543
4628
  else {
@@ -4546,6 +4631,16 @@ function isMismatchAllowed(el, allowedType) {
4546
4631
  return list.includes(MismatchTypeString[allowedType]);
4547
4632
  }
4548
4633
  }
4634
+ function isNodeMismatchAllowed(node, vnode) {
4635
+ return isMismatchAllowed(node.parentElement, 1) || isMismatchAllowedByNode(node) || isMismatchAllowedByVNode(vnode);
4636
+ }
4637
+ function isMismatchAllowedByNode(node) {
4638
+ return node.nodeType === 1 && isMismatchAllowedByAttr(node.getAttribute(allowMismatchAttr), 1);
4639
+ }
4640
+ function isMismatchAllowedByVNode({ props }) {
4641
+ const allowedAttr = props && props[allowMismatchAttr];
4642
+ return typeof allowedAttr === "string" && isMismatchAllowedByAttr(allowedAttr, 1);
4643
+ }
4549
4644
  //#endregion
4550
4645
  //#region packages/runtime-core/src/hydrationStrategies.ts
4551
4646
  let requestIdleCallback;
@@ -4664,11 +4759,16 @@ function defineAsyncComponent(source) {
4664
4759
  onError(err);
4665
4760
  return () => errorComponent ? createVNode(errorComponent, { error: err }) : null;
4666
4761
  });
4667
- const { loaded, error, delayed } = useAsyncComponentState(delay, timeout, onError);
4762
+ const { loaded, error, delayed } = useAsyncComponentState(delay, timeout, onError, instance);
4668
4763
  load().then(() => {
4764
+ if (instance.isUnmounted) return;
4669
4765
  loaded.value = true;
4670
4766
  if (instance.parent && instance.parent.vnode && isKeepAlive(instance.parent.vnode)) instance.parent.update();
4671
4767
  }).catch((err) => {
4768
+ if (instance.isUnmounted) {
4769
+ setPendingRequest(null);
4770
+ return;
4771
+ }
4672
4772
  onError(err);
4673
4773
  error.value = err;
4674
4774
  });
@@ -4726,14 +4826,22 @@ function createAsyncComponentContext(source) {
4726
4826
  setPendingRequest: (request) => pendingRequest = request
4727
4827
  };
4728
4828
  }
4729
- const useAsyncComponentState = (delay, timeout, onError) => {
4829
+ const useAsyncComponentState = (delay, timeout, onError, instance = currentInstance) => {
4730
4830
  const loaded = /* @__PURE__ */ ref(false);
4731
4831
  const error = /* @__PURE__ */ ref();
4732
4832
  const delayed = /* @__PURE__ */ ref(!!delay);
4733
- if (delay) setTimeout(() => {
4833
+ let timeoutTimer;
4834
+ let delayTimer;
4835
+ if (instance) onUnmounted(() => {
4836
+ if (timeoutTimer != null) clearTimeout(timeoutTimer);
4837
+ if (delayTimer != null) clearTimeout(delayTimer);
4838
+ }, instance);
4839
+ if (delay) delayTimer = setTimeout(() => {
4840
+ if (instance && instance.isUnmounted) return;
4734
4841
  delayed.value = false;
4735
4842
  }, delay);
4736
- if (timeout != null) setTimeout(() => {
4843
+ if (timeout != null) timeoutTimer = setTimeout(() => {
4844
+ if (instance && instance.isUnmounted) return;
4737
4845
  if (!loaded.value && !error.value) {
4738
4846
  const err = /* @__PURE__ */ new Error(`Async component timed out after ${timeout}ms.`);
4739
4847
  onError(err);
@@ -4751,6 +4859,7 @@ const useAsyncComponentState = (delay, timeout, onError) => {
4751
4859
  * @internal
4752
4860
  */
4753
4861
  function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
4862
+ const wasConnected = el.isConnected;
4754
4863
  let patched = false;
4755
4864
  (instance.bu || (instance.bu = [])).push(() => patched = true);
4756
4865
  const performHydrate = () => {
@@ -4761,6 +4870,7 @@ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydra
4761
4870
  }
4762
4871
  return;
4763
4872
  }
4873
+ if (!el.parentNode || wasConnected && !el.isConnected) return;
4764
4874
  hydrate();
4765
4875
  };
4766
4876
  const doHydrate = hydrateStrategy ? () => {
@@ -5345,8 +5455,9 @@ function createSlots(slots, dynamicSlots) {
5345
5455
  * Compiler runtime helper for rendering `<slot/>`
5346
5456
  * @private
5347
5457
  */
5348
- function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5458
+ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5349
5459
  let slot = slots[name];
5460
+ if (fallback) fallback.__vdom = true;
5350
5461
  const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
5351
5462
  if (vaporSlot) {
5352
5463
  const ret = (openBlock(), createBlock(VaporSlot, props));
@@ -5354,25 +5465,35 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5354
5465
  slot: vaporSlot,
5355
5466
  fallback
5356
5467
  };
5468
+ if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
5357
5469
  return ret;
5358
5470
  }
5359
5471
  if (currentRenderingInstance && (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce)) {
5360
- const hasProps = Object.keys(props).length > 0;
5361
- if (name !== "default") props.name = name;
5362
- return openBlock(), createBlock(Fragment, null, [createVNode("slot", props, fallback && fallback())], hasProps ? -2 : 64);
5472
+ const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
5473
+ const hasProps = Object.keys(slotProps).length > 0;
5474
+ if (name !== "default") slotProps.name = name;
5475
+ return openBlock(), createBlock(Fragment, null, [createVNode("slot", slotProps, fallback && fallback())], hasProps ? -2 : 64);
5363
5476
  }
5364
5477
  if (!!(process.env.NODE_ENV !== "production") && slot && slot.length > 1) {
5365
5478
  warn$1("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.");
5366
5479
  slot = () => [];
5367
5480
  }
5368
5481
  if (slot && slot._c) slot._d = false;
5482
+ const prevStackSize = blockStack.length;
5369
5483
  openBlock();
5370
- const validSlotContent = slot && ensureValidVNode(slot(props));
5371
- ensureVaporSlotFallback(validSlotContent, fallback);
5372
- const slotKey = props.key || validSlotContent && validSlotContent.key;
5373
- const rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
5484
+ let rendered;
5485
+ try {
5486
+ const validSlotContent = slot && ensureValidVNode(slot(props));
5487
+ ensureVaporSlotFallback(validSlotContent, fallback);
5488
+ const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
5489
+ rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
5490
+ } catch (err) {
5491
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5492
+ throw err;
5493
+ } finally {
5494
+ if (slot && slot._c) slot._d = true;
5495
+ }
5374
5496
  if (!noSlotted && rendered.scopeId) rendered.slotScopeIds = [rendered.scopeId + "-s"];
5375
- if (slot && slot._c) slot._d = true;
5376
5497
  return rendered;
5377
5498
  }
5378
5499
  function ensureValidVNode(vnodes) {
@@ -5385,9 +5506,7 @@ function ensureValidVNode(vnodes) {
5385
5506
  }
5386
5507
  function ensureVaporSlotFallback(vnodes, fallback) {
5387
5508
  let vaporSlot;
5388
- if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) {
5389
- if (!vaporSlot.fallback && fallback) vaporSlot.fallback = fallback;
5390
- }
5509
+ if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
5391
5510
  }
5392
5511
  //#endregion
5393
5512
  //#region packages/runtime-core/src/helpers/toHandlers.ts
@@ -5942,26 +6061,39 @@ function createPropsRestProxy(props, excludedKeys) {
5942
6061
  function withAsyncContext(getAwaitable) {
5943
6062
  const ctx = getCurrentGenericInstance();
5944
6063
  const inSSRSetup = isInSSRComponentSetup;
6064
+ const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
5945
6065
  if (!!(process.env.NODE_ENV !== "production") && !ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
5946
6066
  let awaitable = getAwaitable();
5947
6067
  setCurrentInstance(null, void 0);
5948
6068
  if (inSSRSetup) setInSSRSetupState(false);
5949
6069
  const restore = () => {
6070
+ const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
5950
6071
  setCurrentInstance(ctx);
5951
6072
  if (inSSRSetup) setInSSRSetupState(true);
6073
+ const reset = restoreAsyncContext && restoreAsyncContext();
6074
+ return () => {
6075
+ if (reset) reset();
6076
+ if (resetStoppedScope) resetStoppedScope.reset();
6077
+ };
5952
6078
  };
5953
6079
  const cleanup = () => {
5954
6080
  setCurrentInstance(null, void 0);
5955
6081
  if (inSSRSetup) setInSSRSetupState(false);
5956
6082
  };
5957
6083
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
5958
- restore();
5959
- Promise.resolve().then(() => Promise.resolve().then(cleanup));
6084
+ const reset = restore();
6085
+ Promise.resolve().then(() => Promise.resolve().then(() => {
6086
+ if (reset) reset();
6087
+ cleanup();
6088
+ }));
5960
6089
  throw e;
5961
6090
  });
5962
6091
  return [awaitable, () => {
5963
- restore();
5964
- Promise.resolve().then(cleanup);
6092
+ const reset = restore();
6093
+ Promise.resolve().then(() => {
6094
+ if (reset) reset();
6095
+ cleanup();
6096
+ });
5965
6097
  }];
5966
6098
  }
5967
6099
  //#endregion
@@ -6281,7 +6413,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6281
6413
  if (options.el) return vm.$mount(options.el);
6282
6414
  else return vm;
6283
6415
  }
6284
- Vue.version = `2.6.14-compat:3.6.0-beta.8`;
6416
+ Vue.version = `2.6.14-compat:3.6.0-rc.1`;
6285
6417
  Vue.config = singletonApp.config;
6286
6418
  Vue.use = (plugin, ...options) => {
6287
6419
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -6536,7 +6668,9 @@ function defineReactive(obj, key, val) {
6536
6668
  else Object.keys(val).forEach((key) => {
6537
6669
  try {
6538
6670
  defineReactiveSimple(val, key, val[key]);
6539
- } catch (e) {}
6671
+ } catch (e) {
6672
+ if (!!(process.env.NODE_ENV !== "production")) warn$1(`Failed making property "${key}" reactive:`, e);
6673
+ }
6540
6674
  });
6541
6675
  }
6542
6676
  const i = obj.$;
@@ -6787,12 +6921,13 @@ function useModel(props, name, options = EMPTY_OBJ) {
6787
6921
  for (const key of rawPropKeys) if (key === name || key === camelizedName || key === hyphenatedName) parentPassedModelValue = true;
6788
6922
  else if (key === `onUpdate:${name}` || key === `onUpdate:${camelizedName}` || key === `onUpdate:${hyphenatedName}`) parentPassedModelUpdater = true;
6789
6923
  }
6790
- if (!parentPassedModelValue || !parentPassedModelUpdater) {
6924
+ const hasVModel = parentPassedModelValue && parentPassedModelUpdater;
6925
+ if (!hasVModel) {
6791
6926
  localValue = value;
6792
6927
  trigger();
6793
6928
  }
6794
6929
  i.emit(`update:${name}`, emittedValue);
6795
- if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) trigger();
6930
+ if (hasChanged(value, prevSetValue) && (hasChanged(value, emittedValue) && !hasChanged(emittedValue, prevEmittedValue) || hasVModel && prevSetValue !== EMPTY_OBJ && !hasChanged(emittedValue, localValue))) trigger();
6796
6931
  prevSetValue = value;
6797
6932
  prevEmittedValue = emittedValue;
6798
6933
  }
@@ -6905,7 +7040,8 @@ function normalizeEmitsOptions(comp, appContext, asMixin = false) {
6905
7040
  function isEmitListener(options, key) {
6906
7041
  if (!options || !isOn(key)) return false;
6907
7042
  if (key.startsWith(compatModelEventPrefix)) return true;
6908
- key = key.slice(2).replace(/Once$/, "");
7043
+ key = key.slice(2);
7044
+ key = key === "Once" ? key : key.replace(/Once$/, "");
6909
7045
  return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);
6910
7046
  }
6911
7047
  //#endregion
@@ -7103,15 +7239,19 @@ function hasPropValueChanged(nextProps, prevProps, key) {
7103
7239
  if (key === "style" && isObject(nextProp) && isObject(prevProp)) return !looseEqual(nextProp, prevProp);
7104
7240
  return nextProp !== prevProp;
7105
7241
  }
7106
- function updateHOCHostEl({ vnode, parent }, el) {
7242
+ function updateHOCHostEl({ vnode, parent, suspense }, el) {
7107
7243
  while (parent && !parent.vapor) {
7108
7244
  const root = parent.subTree;
7109
- if (root.suspense && root.suspense.activeBranch === vnode) root.el = vnode.el;
7245
+ if (root.suspense && root.suspense.activeBranch === vnode) {
7246
+ root.suspense.vnode.el = root.el = el;
7247
+ vnode = root;
7248
+ }
7110
7249
  if (root === vnode) {
7111
7250
  (vnode = parent.vnode).el = el;
7112
7251
  parent = parent.parent;
7113
7252
  } else break;
7114
7253
  }
7254
+ if (suspense && suspense.activeBranch === vnode) suspense.vnode.el = el;
7115
7255
  }
7116
7256
  //#endregion
7117
7257
  //#region packages/runtime-core/src/compat/props.ts
@@ -7423,7 +7563,7 @@ function getInvalidTypeMessage(name, value, expectedTypes) {
7423
7563
  const receivedType = toRawType(value);
7424
7564
  const expectedValue = styleValue(value, expectedType);
7425
7565
  const receivedValue = styleValue(value, receivedType);
7426
- if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) message += ` with value ${expectedValue}`;
7566
+ if (expectedTypes.length === 1 && isExplicable(expectedType) && isCoercible(expectedType, receivedType)) message += ` with value ${expectedValue}`;
7427
7567
  message += `, got ${receivedType} `;
7428
7568
  if (isExplicable(receivedType)) message += `with value ${receivedValue}.`;
7429
7569
  return message;
@@ -7432,7 +7572,8 @@ function getInvalidTypeMessage(name, value, expectedTypes) {
7432
7572
  * dev only
7433
7573
  */
7434
7574
  function styleValue(value, type) {
7435
- if (type === "String") return `"${value}"`;
7575
+ if (isSymbol(value)) return value.toString();
7576
+ else if (type === "String") return `"${value}"`;
7436
7577
  else if (type === "Number") return `${Number(value)}`;
7437
7578
  else return `${value}`;
7438
7579
  }
@@ -7449,8 +7590,11 @@ function isExplicable(type) {
7449
7590
  /**
7450
7591
  * dev only
7451
7592
  */
7452
- function isBoolean(...args) {
7453
- return args.some((elem) => elem.toLowerCase() === "boolean");
7593
+ function isCoercible(...args) {
7594
+ return args.every((elem) => {
7595
+ const value = elem.toLowerCase();
7596
+ return value !== "boolean" && value !== "symbol";
7597
+ });
7454
7598
  }
7455
7599
  //#endregion
7456
7600
  //#region packages/runtime-core/src/componentSlots.ts
@@ -7752,10 +7896,19 @@ function baseCreateRenderer(options, createHydrationFns) {
7752
7896
  if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
7753
7897
  if (transition) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense);
7754
7898
  else hostInsert(el, container, anchor);
7755
- if ((vnodeHook = props && props.onVnodeMounted) || dirs) queuePostRenderEffect(() => {
7756
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
7757
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
7758
- }, void 0, parentSuspense);
7899
+ if ((vnodeHook = props && props.onVnodeMounted) || dirs) {
7900
+ const isHmr = !!(process.env.NODE_ENV !== "production") && isHmrUpdating;
7901
+ queuePostRenderEffect(() => {
7902
+ let prev;
7903
+ if (!!(process.env.NODE_ENV !== "production")) prev = setHmrUpdating(isHmr);
7904
+ try {
7905
+ vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
7906
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
7907
+ } finally {
7908
+ if (!!(process.env.NODE_ENV !== "production")) setHmrUpdating(prev);
7909
+ }
7910
+ }, void 0, parentSuspense);
7911
+ }
7759
7912
  };
7760
7913
  const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
7761
7914
  if (scopeId) hostSetScopeId(el, scopeId);
@@ -7778,7 +7931,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7778
7931
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
7779
7932
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
7780
7933
  parentComponent && toggleRecurse(parentComponent, true);
7781
- if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) {
7934
+ if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
7782
7935
  patchFlag = 0;
7783
7936
  optimized = false;
7784
7937
  dynamicChildren = null;
@@ -7859,19 +8012,35 @@ function baseCreateRenderer(options, createHydrationFns) {
7859
8012
  n2.slotScopeIds = slotScopeIds;
7860
8013
  if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
7861
8014
  else {
8015
+ const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
7862
8016
  getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
7863
8017
  if (n2.dirs) {
7864
8018
  invokeDirectiveHook(n2, null, parentComponent, "created");
7865
8019
  invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
7866
8020
  }
8021
+ }, () => {
8022
+ if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
7867
8023
  });
7868
8024
  if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
8025
+ const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
8026
+ if (vnodeMountedHook) {
8027
+ const scopedVNode = n2;
8028
+ queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
8029
+ }
7869
8030
  }
7870
8031
  else {
7871
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized), () => {
8032
+ const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
8033
+ getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
7872
8034
  if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
8035
+ }, () => {
8036
+ const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
8037
+ if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
7873
8038
  });
7874
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, n1, parentComponent, "updated"), void 0, parentSuspense);
8039
+ const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
8040
+ if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
8041
+ n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
8042
+ vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
8043
+ }, void 0, parentSuspense);
7875
8044
  }
7876
8045
  else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
7877
8046
  else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
@@ -8233,8 +8402,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8233
8402
  else hostInsert(el, container, anchor);
8234
8403
  };
8235
8404
  const performLeave = () => {
8405
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8236
8406
  if (el._isLeaving) el[leaveCbKey](true);
8237
- leave(el, () => {
8407
+ if (transition.persisted && !wasLeaving) remove();
8408
+ else leave(el, () => {
8238
8409
  remove();
8239
8410
  afterLeave && afterLeave();
8240
8411
  });
@@ -8245,7 +8416,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8245
8416
  else hostInsert(el, container, anchor);
8246
8417
  };
8247
8418
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
8248
- const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex } = vnode;
8419
+ const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
8249
8420
  if (patchFlag === -2) optimized = false;
8250
8421
  if (ref != null) {
8251
8422
  const prevSub = setActiveSub();
@@ -8265,7 +8436,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8265
8436
  if (shapeFlag & 6) if (isVaporComponent(type)) {
8266
8437
  if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
8267
8438
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8268
- if (dirs) queuePostRenderEffect(() => invokeDirectiveHook(vnode, null, parentComponent, "unmounted"), void 0, parentSuspense);
8439
+ if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
8440
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
8441
+ vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
8442
+ }, void 0, parentSuspense);
8269
8443
  return;
8270
8444
  } else unmountComponent(vnode.component, parentSuspense, doRemove);
8271
8445
  else {
@@ -8283,9 +8457,11 @@ function baseCreateRenderer(options, createHydrationFns) {
8283
8457
  }
8284
8458
  if (doRemove) remove(vnode);
8285
8459
  }
8286
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) queuePostRenderEffect(() => {
8460
+ const shouldInvalidateMemo = memo != null && cacheIndex == null;
8461
+ if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs || shouldInvalidateMemo) queuePostRenderEffect(() => {
8287
8462
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
8288
8463
  shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
8464
+ if (shouldInvalidateMemo) vnode.el = null;
8289
8465
  }, void 0, parentSuspense);
8290
8466
  };
8291
8467
  const remove = (vnode) => {
@@ -8325,7 +8501,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8325
8501
  if (effect) {
8326
8502
  effect.stop();
8327
8503
  unmount(subTree, instance, parentSuspense, doRemove);
8328
- }
8504
+ } else if (doRemove && subTree && instance.vnode.el) remove(subTree);
8329
8505
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
8330
8506
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
8331
8507
  queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
@@ -8452,6 +8628,10 @@ function invalidateMount(hooks) {
8452
8628
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
8453
8629
  }
8454
8630
  function performTransitionEnter(el, transition, insert, parentSuspense, force = false) {
8631
+ if (force && transition.persisted && !el[leaveCbKey]) {
8632
+ insert();
8633
+ return;
8634
+ }
8455
8635
  if (force || needTransition(parentSuspense, transition)) {
8456
8636
  transition.beforeEnter(el);
8457
8637
  insert();
@@ -8640,6 +8820,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8640
8820
  pendingId: suspenseId++,
8641
8821
  timeout: typeof timeout === "number" ? timeout : -1,
8642
8822
  activeBranch: null,
8823
+ isFallbackMountPending: false,
8643
8824
  pendingBranch: null,
8644
8825
  isInFallback: !isHydrating,
8645
8826
  isHydrating,
@@ -8655,20 +8836,25 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8655
8836
  if (suspense.isHydrating) suspense.isHydrating = false;
8656
8837
  else if (!resume) {
8657
8838
  delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
8839
+ let hasUpdatedAnchor = false;
8658
8840
  if (delayEnter) activeBranch.transition.afterLeave = () => {
8659
8841
  if (pendingId === suspense.pendingId) {
8660
- move(pendingBranch, container, anchor === initialAnchor ? next(activeBranch) : anchor, 0, parentComponent);
8842
+ move(pendingBranch, container, anchor === initialAnchor && !hasUpdatedAnchor ? next(activeBranch) : anchor, 0, parentComponent);
8661
8843
  queuePostFlushCb(effects);
8662
8844
  if (isInFallback && vnode.ssFallback) vnode.ssFallback.el = null;
8663
8845
  }
8664
8846
  };
8665
- if (activeBranch) {
8666
- if (parentNode(activeBranch.el) === container) anchor = next(activeBranch);
8847
+ if (activeBranch && !suspense.isFallbackMountPending) {
8848
+ if (parentNode(activeBranch.el) === container) {
8849
+ anchor = next(activeBranch);
8850
+ hasUpdatedAnchor = true;
8851
+ }
8667
8852
  unmount(activeBranch, parentComponent, suspense, true);
8668
8853
  if (!delayEnter && isInFallback && vnode.ssFallback) queuePostRenderEffect(() => vnode.ssFallback.el = null, void 0, suspense);
8669
8854
  }
8670
8855
  if (!delayEnter) move(pendingBranch, container, anchor, 0, parentComponent);
8671
8856
  }
8857
+ suspense.isFallbackMountPending = false;
8672
8858
  setActiveBranch(suspense, pendingBranch);
8673
8859
  suspense.pendingBranch = null;
8674
8860
  suspense.isInFallback = false;
@@ -8698,12 +8884,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8698
8884
  triggerEvent(vnode, "onFallback");
8699
8885
  const anchor = next(activeBranch);
8700
8886
  const mountFallback = () => {
8887
+ suspense.isFallbackMountPending = false;
8701
8888
  if (!suspense.isInFallback) return;
8702
8889
  patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8703
8890
  setActiveBranch(suspense, fallbackVNode);
8704
8891
  };
8705
8892
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
8706
- if (delayEnter) activeBranch.transition.afterLeave = mountFallback;
8893
+ if (delayEnter) {
8894
+ suspense.isFallbackMountPending = true;
8895
+ activeBranch.transition.afterLeave = mountFallback;
8896
+ }
8707
8897
  suspense.isInFallback = true;
8708
8898
  unmount(activeBranch, parentComponent, null, true);
8709
8899
  if (!delayEnter) mountFallback();
@@ -8722,6 +8912,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8722
8912
  handleError(err, instance, 0);
8723
8913
  }).then((asyncSetupResult) => {
8724
8914
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
8915
+ setCurrentInstance(null, void 0);
8725
8916
  instance.asyncResolved = true;
8726
8917
  onResolve(asyncSetupResult);
8727
8918
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
@@ -9054,12 +9245,30 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
9054
9245
  el: vnode.el,
9055
9246
  anchor: vnode.anchor,
9056
9247
  ctx: vnode.ctx,
9057
- ce: vnode.ce
9248
+ ce: vnode.ce,
9249
+ vi: vnode.vi,
9250
+ vs: cloneVaporSlotMeta(vnode),
9251
+ vb: vnode.vb
9058
9252
  };
9059
9253
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
9060
9254
  defineLegacyVNodeProperties(cloned);
9061
9255
  return cloned;
9062
9256
  }
9257
+ function cloneVaporSlotMeta(vnode) {
9258
+ const vaporSlot = vnode.vs;
9259
+ if (!vaporSlot) return vaporSlot;
9260
+ const cloned = {
9261
+ slot: vaporSlot.slot,
9262
+ fallback: vaporSlot.fallback,
9263
+ outletFallback: vaporSlot.outletFallback
9264
+ };
9265
+ if (vnode.el) {
9266
+ cloned.state = vaporSlot.state;
9267
+ cloned.ref = vaporSlot.ref;
9268
+ cloned.scope = vaporSlot.scope;
9269
+ }
9270
+ return cloned;
9271
+ }
9063
9272
  /**
9064
9273
  * Dev only, for HMR of hoisted vnodes reused in v-for
9065
9274
  * https://github.com/vitejs/vite/issues/2022
@@ -9122,6 +9331,10 @@ function normalizeChildren(vnode, children) {
9122
9331
  }
9123
9332
  }
9124
9333
  else if (isFunction(children)) {
9334
+ if (shapeFlag & 65) {
9335
+ normalizeChildren(vnode, { default: children });
9336
+ return;
9337
+ }
9125
9338
  children = {
9126
9339
  default: children,
9127
9340
  _ctx: currentRenderingInstance
@@ -9148,6 +9361,7 @@ function mergeProps(...args) {
9148
9361
  const existing = ret[key];
9149
9362
  const incoming = toMerge[key];
9150
9363
  if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) ret[key] = existing ? [].concat(existing, incoming) : incoming;
9364
+ else if (incoming == null && existing == null && !isModelListener(key)) ret[key] = incoming;
9151
9365
  } else if (key !== "") ret[key] = toMerge[key];
9152
9366
  }
9153
9367
  return ret;
@@ -9747,7 +9961,7 @@ function isMemoSame(cached, memo) {
9747
9961
  }
9748
9962
  //#endregion
9749
9963
  //#region packages/runtime-core/src/index.ts
9750
- const version = "3.6.0-beta.8";
9964
+ const version = "3.6.0-rc.1";
9751
9965
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
9752
9966
  /**
9753
9967
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -10252,7 +10466,10 @@ function patchStyle(el, prev, next) {
10252
10466
  }
10253
10467
  for (const key in next) {
10254
10468
  if (key === "display") hasControlledDisplay = true;
10255
- setStyle(style, key, next[key]);
10469
+ const value = next[key];
10470
+ if (value != null) {
10471
+ if (!shouldPreserveTextareaResizeStyle(el, key, !isString(prev) && prev ? prev[key] : void 0, value)) setStyle(style, key, value);
10472
+ } else setStyle(style, key, "");
10256
10473
  }
10257
10474
  } else if (isCssString) {
10258
10475
  if (prev !== next) {
@@ -10302,6 +10519,14 @@ function autoPrefix(style, rawName) {
10302
10519
  }
10303
10520
  return rawName;
10304
10521
  }
10522
+ /**
10523
+ * Browsers update textarea width/height directly during native resize.
10524
+ * Only special-case this common textarea path for now; other resize scenarios
10525
+ * still follow normal vnode style patching.
10526
+ */
10527
+ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
10528
+ return el.tagName === "TEXTAREA" && (key === "width" || key === "height") && isString(next) && prev === next;
10529
+ }
10305
10530
  //#endregion
10306
10531
  //#region packages/runtime-dom/src/modules/attrs.ts
10307
10532
  const xlinkNS = "http://www.w3.org/1999/xlink";
@@ -10385,7 +10610,7 @@ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
10385
10610
  const existingInvoker = invokers[rawName];
10386
10611
  if (nextValue && existingInvoker) existingInvoker.value = !!(process.env.NODE_ENV !== "production") ? sanitizeEventValue(nextValue, rawName) : nextValue;
10387
10612
  else {
10388
- const [name, options] = parseName(rawName);
10613
+ const [name, options] = parseEventName(rawName);
10389
10614
  if (nextValue) addEventListener(el, name, invokers[rawName] = createInvoker(!!(process.env.NODE_ENV !== "production") ? sanitizeEventValue(nextValue, rawName) : nextValue, instance), options);
10390
10615
  else if (existingInvoker) {
10391
10616
  removeEventListener(el, name, existingInvoker, options);
@@ -10393,16 +10618,15 @@ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
10393
10618
  }
10394
10619
  }
10395
10620
  }
10396
- const optionsModifierRE = /(?:Once|Passive|Capture)$/;
10397
- function parseName(name) {
10621
+ const optionsModifierRE = /(Once|Passive|Capture)$/;
10622
+ const optionsModifierEventRE = /^on:?(?:Once|Passive|Capture)$/;
10623
+ function parseEventName(name) {
10398
10624
  let options;
10399
- if (optionsModifierRE.test(name)) {
10400
- options = {};
10401
- let m;
10402
- while (m = name.match(optionsModifierRE)) {
10403
- name = name.slice(0, name.length - m[0].length);
10404
- options[m[0].toLowerCase()] = true;
10405
- }
10625
+ let m;
10626
+ while ((m = name.match(optionsModifierRE)) && !optionsModifierEventRE.test(name)) {
10627
+ if (!options) options = {};
10628
+ name = name.slice(0, name.length - m[1].length);
10629
+ options[m[1].toLowerCase()] = true;
10406
10630
  }
10407
10631
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
10408
10632
  }
@@ -10413,7 +10637,21 @@ function createInvoker(initialValue, instance) {
10413
10637
  const invoker = (e) => {
10414
10638
  if (!e._vts) e._vts = Date.now();
10415
10639
  else if (e._vts <= invoker.attached) return;
10416
- callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5, [e]);
10640
+ const value = invoker.value;
10641
+ if (isArray(value)) {
10642
+ const originalStop = e.stopImmediatePropagation;
10643
+ e.stopImmediatePropagation = () => {
10644
+ originalStop.call(e);
10645
+ e._stopped = true;
10646
+ };
10647
+ const handlers = value.slice();
10648
+ const args = [e];
10649
+ for (let i = 0; i < handlers.length; i++) {
10650
+ if (e._stopped) break;
10651
+ const handler = handlers[i];
10652
+ if (handler) callWithAsyncErrorHandling(handler, instance, 5, args);
10653
+ }
10654
+ } else callWithAsyncErrorHandling(value, instance, 5, [e]);
10417
10655
  };
10418
10656
  invoker.value = initialValue;
10419
10657
  invoker.attached = getNow();
@@ -10424,16 +10662,6 @@ function sanitizeEventValue(value, propName) {
10424
10662
  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}.`);
10425
10663
  return NOOP;
10426
10664
  }
10427
- function patchStopImmediatePropagation(e, value) {
10428
- if (isArray(value)) {
10429
- const originalStop = e.stopImmediatePropagation;
10430
- e.stopImmediatePropagation = () => {
10431
- originalStop.call(e);
10432
- e._stopped = true;
10433
- };
10434
- return value.map((fn) => (e) => !e._stopped && fn && fn(e));
10435
- } else return value;
10436
- }
10437
10665
  //#endregion
10438
10666
  //#region packages/runtime-dom/src/patchProp.ts
10439
10667
  const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
@@ -10761,7 +10989,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
10761
10989
  replacementNodes.push(child);
10762
10990
  }
10763
10991
  parent.removeChild(o);
10764
- slotReplacements.set(o, replacementNodes);
10992
+ slotReplacements.set(o, {
10993
+ nodes: replacementNodes,
10994
+ usedFallback: !content
10995
+ });
10765
10996
  }
10766
10997
  this._updateSlotNodes(slotReplacements);
10767
10998
  }
@@ -10953,7 +11184,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
10953
11184
  prevChildren = [];
10954
11185
  if (children) for (let i = 0; i < children.length; i++) {
10955
11186
  const child = children[i];
10956
- if (child.el && child.el instanceof Element) {
11187
+ if (child.el && child.el instanceof Element && !child.el[vShowHidden]) {
10957
11188
  prevChildren.push(child);
10958
11189
  setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
10959
11190
  positionMap.set(child, getPosition(child.el));
@@ -11094,7 +11325,8 @@ const vModelTextUpdate = (el, oldValue, value, trim, number, lazy) => {
11094
11325
  const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
11095
11326
  const newValue = value == null ? "" : value;
11096
11327
  if (elValue === newValue) return;
11097
- if (document.activeElement === el && el.type !== "range") {
11328
+ const rootNode = el.getRootNode();
11329
+ if ((rootNode instanceof Document || rootNode instanceof ShadowRoot) && rootNode.activeElement === el && el.type !== "range") {
11098
11330
  if (lazy && value === oldValue) return;
11099
11331
  if (trim && el.value.trim() === newValue) return;
11100
11332
  }
@@ -11176,7 +11408,8 @@ const vModelSelect = {
11176
11408
  mounted(el, { value }) {
11177
11409
  vModelSetSelected(el, value);
11178
11410
  },
11179
- beforeUpdate(el, _binding, vnode) {
11411
+ beforeUpdate(el, { value }, vnode) {
11412
+ el._modelValue = value;
11180
11413
  el[assignKey] = getModelAssigner(vnode);
11181
11414
  },
11182
11415
  updated(el, { value }) {
@@ -11187,10 +11420,10 @@ const vModelSelect = {
11187
11420
  * @internal
11188
11421
  */
11189
11422
  const vModelSelectInit = (el, value, number, set) => {
11190
- const isSetModel = isSet(value);
11423
+ el._modelValue = value;
11191
11424
  addEventListener(el, "change", () => {
11192
11425
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
11193
- (set || el[assignKey])(el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]);
11426
+ (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
11194
11427
  el._assigning = true;
11195
11428
  nextTick(() => {
11196
11429
  el._assigning = false;
@@ -11201,6 +11434,7 @@ const vModelSelectInit = (el, value, number, set) => {
11201
11434
  * @internal
11202
11435
  */
11203
11436
  const vModelSetSelected = (el, value) => {
11437
+ el._modelValue = value;
11204
11438
  if (el._assigning) return;
11205
11439
  const isMultiple = el.multiple;
11206
11440
  const isArrayValue = isArray(value);
@@ -11383,6 +11617,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11383
11617
  TransitionGroup: () => TransitionGroup,
11384
11618
  TransitionPropsValidators: () => TransitionPropsValidators,
11385
11619
  TriggerOpTypes: () => TriggerOpTypes,
11620
+ VaporSlot: () => VaporSlot,
11386
11621
  VueElement: () => VueElement,
11387
11622
  VueElementBase: () => VueElementBase,
11388
11623
  activate: () => activate,
@@ -11438,6 +11673,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11438
11673
  endMeasure: () => endMeasure,
11439
11674
  ensureHydrationRenderer: () => ensureHydrationRenderer,
11440
11675
  ensureRenderer: () => ensureRenderer,
11676
+ ensureValidVNode: () => ensureValidVNode,
11441
11677
  ensureVaporSlotFallback: () => ensureVaporSlotFallback,
11442
11678
  expose: () => expose,
11443
11679
  flushOnAppMount: () => flushOnAppMount,
@@ -11465,6 +11701,8 @@ var src_exports = /* @__PURE__ */ __exportAll({
11465
11701
  initDirectivesForSSR: () => initDirectivesForSSR,
11466
11702
  initFeatureFlags: () => initFeatureFlags,
11467
11703
  inject: () => inject,
11704
+ invalidateMount: () => invalidateMount,
11705
+ invokeDirectiveHook: () => invokeDirectiveHook,
11468
11706
  isAsyncWrapper: () => isAsyncWrapper,
11469
11707
  isEmitListener: () => isEmitListener,
11470
11708
  isHydrating: () => isHydrating,
@@ -11487,6 +11725,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11487
11725
  isValidHtmlOrSvgAttribute: () => isValidHtmlOrSvgAttribute,
11488
11726
  knownTemplateRefs: () => knownTemplateRefs,
11489
11727
  leaveCbKey: () => leaveCbKey,
11728
+ logMismatchError: () => logMismatchError,
11490
11729
  markAsyncBoundary: () => markAsyncBoundary,
11491
11730
  markRaw: () => markRaw,
11492
11731
  matches: () => matches,
@@ -11501,6 +11740,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11501
11740
  normalizeProps: () => normalizeProps,
11502
11741
  normalizeRef: () => normalizeRef,
11503
11742
  normalizeStyle: () => normalizeStyle,
11743
+ normalizeVNode: () => normalizeVNode,
11504
11744
  onActivated: () => onActivated,
11505
11745
  onBeforeMount: () => onBeforeMount,
11506
11746
  onBeforeUnmount: () => onBeforeUnmount,
@@ -11516,6 +11756,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11516
11756
  onUpdated: () => onUpdated,
11517
11757
  onWatcherCleanup: () => onWatcherCleanup,
11518
11758
  openBlock: () => openBlock,
11759
+ parseEventName: () => parseEventName,
11519
11760
  patchProp: () => patchProp,
11520
11761
  patchStyle: () => patchStyle,
11521
11762
  performAsyncHydrate: () => performAsyncHydrate,
@@ -11559,6 +11800,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11559
11800
  shallowRef: () => shallowRef,
11560
11801
  shouldSetAsProp: () => shouldSetAsProp,
11561
11802
  shouldSetAsPropForVueCE: () => shouldSetAsPropForVueCE,
11803
+ shouldUpdateComponent: () => shouldUpdateComponent,
11562
11804
  simpleSetCurrentInstance: () => simpleSetCurrentInstance,
11563
11805
  ssrContextKey: () => ssrContextKey,
11564
11806
  ssrUtils: () => ssrUtils,
@@ -12985,6 +13227,7 @@ function getUnnormalizedProps(props, callPath = []) {
12985
13227
  return [props, callPath];
12986
13228
  }
12987
13229
  function injectProp(node, prop, context) {
13230
+ if (node.type !== 13 && injectSlotKey(node, prop)) return;
12988
13231
  let propsWithInjection;
12989
13232
  /**
12990
13233
  * 1. mergeProps(...)
@@ -13023,6 +13266,20 @@ function injectProp(node, prop, context) {
13023
13266
  else if (parentCall) parentCall.arguments[0] = propsWithInjection;
13024
13267
  else node.arguments[2] = propsWithInjection;
13025
13268
  }
13269
+ function injectSlotKey(node, prop) {
13270
+ var _node$arguments, _node$arguments2, _node$arguments3;
13271
+ if (prop.key.type !== 4 || prop.key.content !== "key") return false;
13272
+ const props = node.arguments[2];
13273
+ if (props && !isString(props)) {
13274
+ const [unnormalizedProps] = getUnnormalizedProps(props);
13275
+ if (unnormalizedProps && !isString(unnormalizedProps) && unnormalizedProps.type === 15 && hasProp(prop, unnormalizedProps)) return true;
13276
+ }
13277
+ (_node$arguments = node.arguments)[2] || (_node$arguments[2] = "{}");
13278
+ (_node$arguments2 = node.arguments)[3] || (_node$arguments2[3] = "undefined");
13279
+ (_node$arguments3 = node.arguments)[4] || (_node$arguments3[4] = "undefined");
13280
+ node.arguments[5] = prop.value;
13281
+ return true;
13282
+ }
13026
13283
  function hasProp(prop, props) {
13027
13284
  let result = false;
13028
13285
  if (prop.key.type === 4) {
@@ -13292,7 +13549,7 @@ const tokenizer = new Tokenizer(stack, {
13292
13549
  }
13293
13550
  },
13294
13551
  oncdata(start, end) {
13295
- if (stack[0].ns !== 0) onText(getSlice(start, end), start, end);
13552
+ if ((stack[0] ? stack[0].ns : currentOptions.ns) !== 0) onText(getSlice(start, end), start, end);
13296
13553
  else emitError(1, start - 9);
13297
13554
  },
13298
13555
  onprocessinginstruction(start) {
@@ -13788,7 +14045,7 @@ function getSelfName(filename) {
13788
14045
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
13789
14046
  return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
13790
14047
  }
13791
- function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
14048
+ function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, eventDelegation = true, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
13792
14049
  const context = {
13793
14050
  filename,
13794
14051
  selfName: getSelfName(filename),
@@ -13810,6 +14067,7 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
13810
14067
  bindingMetadata,
13811
14068
  inline,
13812
14069
  isTS,
14070
+ eventDelegation,
13813
14071
  onError,
13814
14072
  onWarn,
13815
14073
  compatConfig,
@@ -13821,8 +14079,10 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
13821
14079
  imports: [],
13822
14080
  cached: [],
13823
14081
  constantCache: /* @__PURE__ */ new WeakMap(),
14082
+ vForMemoKeyedNodes: /* @__PURE__ */ new WeakSet(),
13824
14083
  temps: 0,
13825
14084
  identifiers: Object.create(null),
14085
+ identifierScopes: Object.create(null),
13826
14086
  scopes: {
13827
14087
  vFor: 0,
13828
14088
  vSlot: 0,
@@ -13876,8 +14136,12 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
13876
14136
  context.parent.children.splice(removalIndex, 1);
13877
14137
  },
13878
14138
  onNodeRemoved: NOOP,
13879
- addIdentifiers(exp) {},
14139
+ addIdentifiers(exp, type = "local") {},
13880
14140
  removeIdentifiers(exp) {},
14141
+ isSlotScopeIdentifier(name) {
14142
+ const scopes = context.identifierScopes[name];
14143
+ return scopes ? scopes[scopes.length - 1] === "slot" : false;
14144
+ },
13881
14145
  hoist(exp) {
13882
14146
  if (isString(exp)) exp = createSimpleExpression(exp);
13883
14147
  context.hoists.push(exp);
@@ -14231,6 +14495,7 @@ function genNode(node, context) {
14231
14495
  case 24: break;
14232
14496
  case 25: break;
14233
14497
  case 26: break;
14498
+ /* v8 ignore start */
14234
14499
  case 10: break;
14235
14500
  default: if (!!(process.env.NODE_ENV !== "production")) {
14236
14501
  assert(false, `unhandled codegen node type: ${node.type}`);
@@ -14450,7 +14715,7 @@ const transformExpression = (node, context) => {
14450
14715
  if (dir.type === 7 && dir.name !== "for") {
14451
14716
  const exp = dir.exp;
14452
14717
  const arg = dir.arg;
14453
- if (exp && exp.type === 4 && !(dir.name === "on" && arg) && !(memo && arg && arg.type === 4 && arg.content === "key")) dir.exp = processExpression(exp, context, dir.name === "slot");
14718
+ if (exp && exp.type === 4 && !(dir.name === "on" && arg) && !(memo && context.vForMemoKeyedNodes.has(node) && arg && arg.type === 4 && arg.content === "key")) dir.exp = processExpression(exp, context, dir.name === "slot");
14454
14719
  if (arg && arg.type === 4 && !arg.isStatic) dir.arg = processExpression(arg, context);
14455
14720
  }
14456
14721
  }
@@ -14591,10 +14856,9 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
14591
14856
  const isTemplate = isTemplateNode$1(node);
14592
14857
  const memo = findDir(node, "memo");
14593
14858
  const keyProp = findProp(node, `key`, false, true);
14594
- const isDirKey = keyProp && keyProp.type === 7;
14859
+ keyProp && keyProp.type;
14595
14860
  let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
14596
- if (memo && keyExp && isDirKey) {}
14597
- const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
14861
+ const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
14598
14862
  const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
14599
14863
  const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
14600
14864
  forNode.codegenNode = createVNodeCall(context, helper(FRAGMENT), void 0, renderExp, fragmentFlag, void 0, void 0, true, !isStableFragment, false, node.loc);
@@ -14638,7 +14902,7 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
14638
14902
  `)`
14639
14903
  ]),
14640
14904
  createCompoundExpression([
14641
- `if (_cached`,
14905
+ `if (_cached && _cached.el`,
14642
14906
  ...keyExp ? [` && _cached.key === `, keyExp] : [],
14643
14907
  ` && ${context.helperString(IS_MEMO_SAME)}(_cached, _memo)) return _cached`
14644
14908
  ]),
@@ -15375,7 +15639,7 @@ function rewriteFilter(node, context) {
15375
15639
  const child = node.children[i];
15376
15640
  if (typeof child !== "object") continue;
15377
15641
  if (child.type === 4) parseFilter(child, context);
15378
- else if (child.type === 8) rewriteFilter(node, context);
15642
+ else if (child.type === 8) rewriteFilter(child, context);
15379
15643
  else if (child.type === 5) rewriteFilter(child.content, context);
15380
15644
  }
15381
15645
  }
@@ -15810,7 +16074,7 @@ function postTransformTransition(node, onError, hasMultipleChildren = defaultHas
15810
16074
  source: ""
15811
16075
  }));
15812
16076
  const child = node.children[0];
15813
- if (child.type === 1) {
16077
+ if (child.type === 1 && !findDir(child, "if")) {
15814
16078
  for (const p of child.props) if (p.type === 7 && p.name === "show") node.props.push({
15815
16079
  type: 6,
15816
16080
  name: "persisted",
@@ -16096,4 +16360,4 @@ Vue.compile = compileToFunction;
16096
16360
  var esm_index_default = Vue;
16097
16361
  const configureCompat = Vue.configureCompat;
16098
16362
  //#endregion
16099
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, SchedulerJobFlags, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TransitionPropsValidators, TriggerOpTypes, VueElement, VueElementBase, activate, assertNumber, baseApplyTranslation, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, baseUseCssVars, callPendingCbs, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, configureCompat, createApp, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, esm_index_default as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureVaporSlotFallback, expose, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, isAsyncWrapper, isEmitListener, isHydrating, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isVNode, isValidHtmlOrSvgAttribute, knownTemplateRefs, leaveCbKey, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, nodeOps, normalizeClass, normalizeContainer, normalizeProps, normalizeRef, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, patchProp, patchStyle, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, resolveTransitionProps, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVarsOnNode, shallowReactive, shallowReadonly, shallowRef, shouldSetAsProp, shouldSetAsPropForVueCE, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, svgNS, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, unsafeToTrustedHTML, useAsyncComponentState, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelCheckboxInit, vModelCheckboxUpdate, vModelDynamic, getValue as vModelGetValue, vModelRadio, vModelSelect, vModelSelectInit, vModelSetSelected, vModelText, vModelTextInit, vModelTextUpdate, vShow, vShowHidden, vShowOriginalDisplay, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId, xlinkNS };
16363
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, SchedulerJobFlags, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TransitionPropsValidators, TriggerOpTypes, VaporSlot, VueElement, VueElementBase, activate, assertNumber, baseApplyTranslation, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, baseUseCssVars, callPendingCbs, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, configureCompat, createApp, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, esm_index_default as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, ensureVaporSlotFallback, expose, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, isAsyncWrapper, isEmitListener, isHydrating, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isVNode, isValidHtmlOrSvgAttribute, knownTemplateRefs, leaveCbKey, logMismatchError, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, nodeOps, normalizeClass, normalizeContainer, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, parseEventName, patchProp, patchStyle, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, resolveTransitionProps, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVarsOnNode, shallowReactive, shallowReadonly, shallowRef, shouldSetAsProp, shouldSetAsPropForVueCE, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, svgNS, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, unsafeToTrustedHTML, useAsyncComponentState, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelCheckboxInit, vModelCheckboxUpdate, vModelDynamic, getValue as vModelGetValue, vModelRadio, vModelSelect, vModelSelectInit, vModelSetSelected, vModelText, vModelTextInit, vModelTextUpdate, vShow, vShowHidden, vShowOriginalDisplay, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId, xlinkNS };