@vue/runtime-dom 3.6.0-alpha.7 → 3.6.0-beta.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/runtime-dom v3.6.0-alpha.7
2
+ * @vue/runtime-dom v3.6.0-beta.1
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -751,13 +751,13 @@ class Dep {
751
751
  }
752
752
  }
753
753
  const targetMap = /* @__PURE__ */ new WeakMap();
754
- const ITERATE_KEY = Symbol(
754
+ const ITERATE_KEY = /* @__PURE__ */ Symbol(
755
755
  "Object iterate"
756
756
  );
757
- const MAP_KEY_ITERATE_KEY = Symbol(
757
+ const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(
758
758
  "Map keys iterate"
759
759
  );
760
- const ARRAY_ITERATE_KEY = Symbol(
760
+ const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(
761
761
  "Array iterate"
762
762
  );
763
763
  function track(target, type, key) {
@@ -2758,10 +2758,10 @@ function flushPostFlushCbs(seen) {
2758
2758
  }
2759
2759
  }
2760
2760
  let isFlushing = false;
2761
- function flushOnAppMount() {
2761
+ function flushOnAppMount(instance) {
2762
2762
  if (!isFlushing) {
2763
2763
  isFlushing = true;
2764
- flushPreFlushCbs();
2764
+ flushPreFlushCbs(instance);
2765
2765
  flushPostFlushCbs();
2766
2766
  isFlushing = false;
2767
2767
  }
@@ -3176,7 +3176,203 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
3176
3176
  }
3177
3177
  }
3178
3178
 
3179
- const TeleportEndKey = Symbol("_vte");
3179
+ function provide(key, value) {
3180
+ {
3181
+ if (!currentInstance || currentInstance.isMounted && !isHmrUpdating) {
3182
+ warn$1(`provide() can only be used inside setup().`);
3183
+ }
3184
+ }
3185
+ if (currentInstance) {
3186
+ let provides = currentInstance.provides;
3187
+ const parentProvides = currentInstance.parent && currentInstance.parent.provides;
3188
+ if (parentProvides === provides) {
3189
+ provides = currentInstance.provides = Object.create(parentProvides);
3190
+ }
3191
+ provides[key] = value;
3192
+ }
3193
+ }
3194
+ function inject(key, defaultValue, treatDefaultAsFactory = false) {
3195
+ const instance = getCurrentGenericInstance();
3196
+ if (instance || currentApp) {
3197
+ let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.appContext && instance.appContext.provides : instance.parent.provides : void 0;
3198
+ if (provides && key in provides) {
3199
+ return provides[key];
3200
+ } else if (arguments.length > 1) {
3201
+ return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
3202
+ } else {
3203
+ warn$1(`injection "${String(key)}" not found.`);
3204
+ }
3205
+ } else {
3206
+ warn$1(`inject() can only be used inside setup() or functional components.`);
3207
+ }
3208
+ }
3209
+ function hasInjectionContext() {
3210
+ return !!(getCurrentGenericInstance() || currentApp);
3211
+ }
3212
+
3213
+ const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx");
3214
+ const useSSRContext = () => {
3215
+ {
3216
+ const ctx = inject(ssrContextKey);
3217
+ if (!ctx) {
3218
+ warn$1(
3219
+ `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
3220
+ );
3221
+ }
3222
+ return ctx;
3223
+ }
3224
+ };
3225
+
3226
+ function watchEffect(effect, options) {
3227
+ return doWatch(effect, null, options);
3228
+ }
3229
+ function watchPostEffect(effect, options) {
3230
+ return doWatch(
3231
+ effect,
3232
+ null,
3233
+ extend({}, options, { flush: "post" })
3234
+ );
3235
+ }
3236
+ function watchSyncEffect(effect, options) {
3237
+ return doWatch(
3238
+ effect,
3239
+ null,
3240
+ extend({}, options, { flush: "sync" })
3241
+ );
3242
+ }
3243
+ function watch(source, cb, options) {
3244
+ if (!isFunction(cb)) {
3245
+ warn$1(
3246
+ `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`
3247
+ );
3248
+ }
3249
+ return doWatch(source, cb, options);
3250
+ }
3251
+ class RenderWatcherEffect extends WatcherEffect {
3252
+ constructor(instance, source, cb, options, flush) {
3253
+ super(source, cb, options);
3254
+ this.flush = flush;
3255
+ const job = () => {
3256
+ if (this.dirty) {
3257
+ this.run();
3258
+ }
3259
+ };
3260
+ if (cb) {
3261
+ this.flags |= 128;
3262
+ job.flags |= 2;
3263
+ }
3264
+ if (instance) {
3265
+ job.i = instance;
3266
+ }
3267
+ this.job = job;
3268
+ }
3269
+ notify() {
3270
+ const flags = this.flags;
3271
+ if (!(flags & 256)) {
3272
+ const flush = this.flush;
3273
+ const job = this.job;
3274
+ if (flush === "post") {
3275
+ queuePostRenderEffect(job, void 0, job.i ? job.i.suspense : null);
3276
+ } else if (flush === "pre") {
3277
+ queueJob(job, job.i ? job.i.uid : void 0, true);
3278
+ } else {
3279
+ job();
3280
+ }
3281
+ }
3282
+ }
3283
+ }
3284
+ function doWatch(source, cb, options = EMPTY_OBJ) {
3285
+ const { immediate, deep, flush = "pre", once } = options;
3286
+ if (!cb) {
3287
+ if (immediate !== void 0) {
3288
+ warn$1(
3289
+ `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
3290
+ );
3291
+ }
3292
+ if (deep !== void 0) {
3293
+ warn$1(
3294
+ `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
3295
+ );
3296
+ }
3297
+ if (once !== void 0) {
3298
+ warn$1(
3299
+ `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
3300
+ );
3301
+ }
3302
+ }
3303
+ const baseWatchOptions = extend({}, options);
3304
+ baseWatchOptions.onWarn = warn$1;
3305
+ const runsImmediately = cb && immediate || !cb && flush !== "post";
3306
+ let ssrCleanup;
3307
+ if (isInSSRComponentSetup) {
3308
+ if (flush === "sync") {
3309
+ const ctx = useSSRContext();
3310
+ ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
3311
+ } else if (!runsImmediately) {
3312
+ const watchStopHandle = () => {
3313
+ };
3314
+ watchStopHandle.stop = NOOP;
3315
+ watchStopHandle.resume = NOOP;
3316
+ watchStopHandle.pause = NOOP;
3317
+ return watchStopHandle;
3318
+ }
3319
+ }
3320
+ const instance = currentInstance;
3321
+ baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
3322
+ const effect = new RenderWatcherEffect(
3323
+ instance,
3324
+ source,
3325
+ cb,
3326
+ baseWatchOptions,
3327
+ flush
3328
+ );
3329
+ if (cb) {
3330
+ effect.run(true);
3331
+ } else if (flush === "post") {
3332
+ queuePostRenderEffect(effect.job, void 0, instance && instance.suspense);
3333
+ } else {
3334
+ effect.run(true);
3335
+ }
3336
+ const stop = effect.stop.bind(effect);
3337
+ stop.pause = effect.pause.bind(effect);
3338
+ stop.resume = effect.resume.bind(effect);
3339
+ stop.stop = stop;
3340
+ if (isInSSRComponentSetup) {
3341
+ if (ssrCleanup) {
3342
+ ssrCleanup.push(stop);
3343
+ } else if (runsImmediately) {
3344
+ stop();
3345
+ }
3346
+ }
3347
+ return stop;
3348
+ }
3349
+ function instanceWatch(source, value, options) {
3350
+ const publicThis = this.proxy;
3351
+ const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
3352
+ let cb;
3353
+ if (isFunction(value)) {
3354
+ cb = value;
3355
+ } else {
3356
+ cb = value.handler;
3357
+ options = value;
3358
+ }
3359
+ const prev = setCurrentInstance(this);
3360
+ const res = doWatch(getter, cb.bind(publicThis), options);
3361
+ setCurrentInstance(...prev);
3362
+ return res;
3363
+ }
3364
+ function createPathGetter(ctx, path) {
3365
+ const segments = path.split(".");
3366
+ return () => {
3367
+ let cur = ctx;
3368
+ for (let i = 0; i < segments.length && cur; i++) {
3369
+ cur = cur[segments[i]];
3370
+ }
3371
+ return cur;
3372
+ };
3373
+ }
3374
+
3375
+ const TeleportEndKey = /* @__PURE__ */ Symbol("_vte");
3180
3376
  const isTeleport = (type) => type.__isTeleport;
3181
3377
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
3182
3378
  const isTeleportDeferred = (props) => props && (props.defer || props.defer === "");
@@ -3548,8 +3744,8 @@ function prepareAnchor(target, vnode, createText, insert) {
3548
3744
  return targetAnchor;
3549
3745
  }
3550
3746
 
3551
- const leaveCbKey = Symbol("_leaveCb");
3552
- const enterCbKey$1 = Symbol("_enterCb");
3747
+ const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb");
3748
+ const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb");
3553
3749
  function useTransitionState() {
3554
3750
  const state = {
3555
3751
  isMounted: false,
@@ -5162,7 +5358,9 @@ const KeepAliveImpl = {
5162
5358
  }
5163
5359
  function pruneCache(filter) {
5164
5360
  cache.forEach((vnode, key) => {
5165
- const name = getComponentName(vnode.type);
5361
+ const name = getComponentName(
5362
+ isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type
5363
+ );
5166
5364
  if (name && !filter(name)) {
5167
5365
  pruneCacheEntry(key);
5168
5366
  }
@@ -5464,7 +5662,7 @@ const DIRECTIVES = "directives";
5464
5662
  function resolveComponent(name, maybeSelfReference) {
5465
5663
  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
5466
5664
  }
5467
- const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
5665
+ const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc");
5468
5666
  function resolveDynamicComponent(component) {
5469
5667
  if (isString(component)) {
5470
5668
  return resolveAsset(COMPONENTS, component, false) || component;
@@ -5655,14 +5853,14 @@ function ensureVaporSlotFallback(vnodes, fallback) {
5655
5853
  }
5656
5854
  }
5657
5855
 
5658
- function toHandlers(obj, preserveCaseIfNecessary) {
5856
+ function toHandlers(obj, preserveCaseIfNecessary, needWrap) {
5659
5857
  const ret = {};
5660
5858
  if (!isObject(obj)) {
5661
5859
  warn$1(`v-on with no argument expects an object value.`);
5662
5860
  return ret;
5663
5861
  }
5664
5862
  for (const key in obj) {
5665
- ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];
5863
+ ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = needWrap ? () => obj[key] : obj[key];
5666
5864
  }
5667
5865
  return ret;
5668
5866
  }
@@ -6634,202 +6832,6 @@ If you want to remount the same app, move your app creation logic into a factory
6634
6832
  }
6635
6833
  let currentApp = null;
6636
6834
 
6637
- function provide(key, value) {
6638
- {
6639
- if (!currentInstance || currentInstance.isMounted) {
6640
- warn$1(`provide() can only be used inside setup().`);
6641
- }
6642
- }
6643
- if (currentInstance) {
6644
- let provides = currentInstance.provides;
6645
- const parentProvides = currentInstance.parent && currentInstance.parent.provides;
6646
- if (parentProvides === provides) {
6647
- provides = currentInstance.provides = Object.create(parentProvides);
6648
- }
6649
- provides[key] = value;
6650
- }
6651
- }
6652
- function inject(key, defaultValue, treatDefaultAsFactory = false) {
6653
- const instance = getCurrentGenericInstance();
6654
- if (instance || currentApp) {
6655
- let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.appContext && instance.appContext.provides : instance.parent.provides : void 0;
6656
- if (provides && key in provides) {
6657
- return provides[key];
6658
- } else if (arguments.length > 1) {
6659
- return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
6660
- } else {
6661
- warn$1(`injection "${String(key)}" not found.`);
6662
- }
6663
- } else {
6664
- warn$1(`inject() can only be used inside setup() or functional components.`);
6665
- }
6666
- }
6667
- function hasInjectionContext() {
6668
- return !!(getCurrentGenericInstance() || currentApp);
6669
- }
6670
-
6671
- const ssrContextKey = Symbol.for("v-scx");
6672
- const useSSRContext = () => {
6673
- {
6674
- const ctx = inject(ssrContextKey);
6675
- if (!ctx) {
6676
- warn$1(
6677
- `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
6678
- );
6679
- }
6680
- return ctx;
6681
- }
6682
- };
6683
-
6684
- function watchEffect(effect, options) {
6685
- return doWatch(effect, null, options);
6686
- }
6687
- function watchPostEffect(effect, options) {
6688
- return doWatch(
6689
- effect,
6690
- null,
6691
- extend({}, options, { flush: "post" })
6692
- );
6693
- }
6694
- function watchSyncEffect(effect, options) {
6695
- return doWatch(
6696
- effect,
6697
- null,
6698
- extend({}, options, { flush: "sync" })
6699
- );
6700
- }
6701
- function watch(source, cb, options) {
6702
- if (!isFunction(cb)) {
6703
- warn$1(
6704
- `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`
6705
- );
6706
- }
6707
- return doWatch(source, cb, options);
6708
- }
6709
- class RenderWatcherEffect extends WatcherEffect {
6710
- constructor(instance, source, cb, options, flush) {
6711
- super(source, cb, options);
6712
- this.flush = flush;
6713
- const job = () => {
6714
- if (this.dirty) {
6715
- this.run();
6716
- }
6717
- };
6718
- if (cb) {
6719
- this.flags |= 128;
6720
- job.flags |= 2;
6721
- }
6722
- if (instance) {
6723
- job.i = instance;
6724
- }
6725
- this.job = job;
6726
- }
6727
- notify() {
6728
- const flags = this.flags;
6729
- if (!(flags & 256)) {
6730
- const flush = this.flush;
6731
- const job = this.job;
6732
- if (flush === "post") {
6733
- queuePostRenderEffect(job, void 0, job.i ? job.i.suspense : null);
6734
- } else if (flush === "pre") {
6735
- queueJob(job, job.i ? job.i.uid : void 0, true);
6736
- } else {
6737
- job();
6738
- }
6739
- }
6740
- }
6741
- }
6742
- function doWatch(source, cb, options = EMPTY_OBJ) {
6743
- const { immediate, deep, flush = "pre", once } = options;
6744
- if (!cb) {
6745
- if (immediate !== void 0) {
6746
- warn$1(
6747
- `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
6748
- );
6749
- }
6750
- if (deep !== void 0) {
6751
- warn$1(
6752
- `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
6753
- );
6754
- }
6755
- if (once !== void 0) {
6756
- warn$1(
6757
- `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
6758
- );
6759
- }
6760
- }
6761
- const baseWatchOptions = extend({}, options);
6762
- baseWatchOptions.onWarn = warn$1;
6763
- const runsImmediately = cb && immediate || !cb && flush !== "post";
6764
- let ssrCleanup;
6765
- if (isInSSRComponentSetup) {
6766
- if (flush === "sync") {
6767
- const ctx = useSSRContext();
6768
- ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
6769
- } else if (!runsImmediately) {
6770
- const watchStopHandle = () => {
6771
- };
6772
- watchStopHandle.stop = NOOP;
6773
- watchStopHandle.resume = NOOP;
6774
- watchStopHandle.pause = NOOP;
6775
- return watchStopHandle;
6776
- }
6777
- }
6778
- const instance = currentInstance;
6779
- baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
6780
- const effect = new RenderWatcherEffect(
6781
- instance,
6782
- source,
6783
- cb,
6784
- baseWatchOptions,
6785
- flush
6786
- );
6787
- if (cb) {
6788
- effect.run(true);
6789
- } else if (flush === "post") {
6790
- queuePostRenderEffect(effect.job, void 0, instance && instance.suspense);
6791
- } else {
6792
- effect.run(true);
6793
- }
6794
- const stop = effect.stop.bind(effect);
6795
- stop.pause = effect.pause.bind(effect);
6796
- stop.resume = effect.resume.bind(effect);
6797
- stop.stop = stop;
6798
- if (isInSSRComponentSetup) {
6799
- if (ssrCleanup) {
6800
- ssrCleanup.push(stop);
6801
- } else if (runsImmediately) {
6802
- stop();
6803
- }
6804
- }
6805
- return stop;
6806
- }
6807
- function instanceWatch(source, value, options) {
6808
- const publicThis = this.proxy;
6809
- const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
6810
- let cb;
6811
- if (isFunction(value)) {
6812
- cb = value;
6813
- } else {
6814
- cb = value.handler;
6815
- options = value;
6816
- }
6817
- const prev = setCurrentInstance(this);
6818
- const res = doWatch(getter, cb.bind(publicThis), options);
6819
- setCurrentInstance(...prev);
6820
- return res;
6821
- }
6822
- function createPathGetter(ctx, path) {
6823
- const segments = path.split(".");
6824
- return () => {
6825
- let cur = ctx;
6826
- for (let i = 0; i < segments.length && cur; i++) {
6827
- cur = cur[segments[i]];
6828
- }
6829
- return cur;
6830
- };
6831
- }
6832
-
6833
6835
  function useModel(props, name, options = EMPTY_OBJ) {
6834
6836
  const i = getCurrentGenericInstance();
6835
6837
  if (!i) {
@@ -7914,6 +7916,14 @@ function isSupported() {
7914
7916
  return supported;
7915
7917
  }
7916
7918
 
7919
+ const MoveType = {
7920
+ "ENTER": 0,
7921
+ "0": "ENTER",
7922
+ "LEAVE": 1,
7923
+ "1": "LEAVE",
7924
+ "REORDER": 2,
7925
+ "2": "REORDER"
7926
+ };
7917
7927
  const queuePostRenderEffect = queueEffectWithSuspense ;
7918
7928
  function createRenderer(options) {
7919
7929
  return baseCreateRenderer(options);
@@ -8062,7 +8072,15 @@ function baseCreateRenderer(options, createHydrationFns) {
8062
8072
  } else {
8063
8073
  const el = n2.el = n1.el;
8064
8074
  if (n2.children !== n1.children) {
8065
- hostSetText(el, n2.children);
8075
+ if (isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
8076
+ const childNodes = container.childNodes;
8077
+ const newChild = hostCreateText(n2.children);
8078
+ const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
8079
+ hostInsert(newChild, container, oldChild);
8080
+ hostRemove(oldChild);
8081
+ } else {
8082
+ hostSetText(el, n2.children);
8083
+ }
8066
8084
  }
8067
8085
  }
8068
8086
  };
@@ -8448,7 +8466,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8448
8466
  } else {
8449
8467
  if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
8450
8468
  // of renderSlot() with no valid children
8451
- n1.dynamicChildren) {
8469
+ n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) {
8452
8470
  patchBlockChildren(
8453
8471
  n1.dynamicChildren,
8454
8472
  dynamicChildren,
@@ -9136,8 +9154,8 @@ function baseCreateRenderer(options, createHydrationFns) {
9136
9154
  const nextChild = c2[nextIndex];
9137
9155
  const anchorVNode = c2[nextIndex + 1];
9138
9156
  const anchor = nextIndex + 1 < l2 ? (
9139
- // #13559, fallback to el placeholder for unresolved async component
9140
- anchorVNode.el || anchorVNode.placeholder
9157
+ // #13559, #14173 fallback to el placeholder for unresolved async component
9158
+ anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode)
9141
9159
  ) : parentAnchor;
9142
9160
  if (newIndexToOldIndexMap[i] === 0) {
9143
9161
  patch(
@@ -9442,9 +9460,11 @@ function baseCreateRenderer(options, createHydrationFns) {
9442
9460
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
9443
9461
  };
9444
9462
  const render = (vnode, container, namespace) => {
9463
+ let instance;
9445
9464
  if (vnode == null) {
9446
9465
  if (container._vnode) {
9447
9466
  unmount(container._vnode, null, null, true);
9467
+ instance = container._vnode.component;
9448
9468
  }
9449
9469
  } else {
9450
9470
  patch(
@@ -9458,7 +9478,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9458
9478
  );
9459
9479
  }
9460
9480
  container._vnode = vnode;
9461
- flushOnAppMount();
9481
+ flushOnAppMount(instance);
9462
9482
  };
9463
9483
  const internals = {
9464
9484
  p: patch,
@@ -9548,9 +9568,13 @@ function traverseStaticChildren(n1, n2, shallow = false) {
9548
9568
  if (!shallow && c2.patchFlag !== -2)
9549
9569
  traverseStaticChildren(c1, c2);
9550
9570
  }
9551
- if (c2.type === Text && // avoid cached text nodes retaining detached dom nodes
9552
- c2.patchFlag !== -1) {
9553
- c2.el = c1.el;
9571
+ if (c2.type === Text) {
9572
+ if (c2.patchFlag !== -1) {
9573
+ c2.el = c1.el;
9574
+ } else {
9575
+ c2.__elIndex = i + // take fragment start anchor into account
9576
+ (n1.type === Fragment ? 1 : 0);
9577
+ }
9554
9578
  }
9555
9579
  if (c2.type === Comment && !c2.el) {
9556
9580
  c2.el = c1.el;
@@ -9586,16 +9610,24 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
9586
9610
  insert();
9587
9611
  }
9588
9612
  }
9589
- function performTransitionLeave(el, transition, remove, isElement = true) {
9613
+ function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
9590
9614
  const performRemove = () => {
9591
9615
  remove();
9592
9616
  if (transition && !transition.persisted && transition.afterLeave) {
9593
9617
  transition.afterLeave();
9594
9618
  }
9595
9619
  };
9596
- if (isElement && transition && !transition.persisted) {
9620
+ if (force || isElement && transition && !transition.persisted) {
9597
9621
  const { leave, delayLeave } = transition;
9598
- const performLeave = () => leave(el, performRemove);
9622
+ const performLeave = () => {
9623
+ if (el._isLeaving && force) {
9624
+ el[leaveCbKey](
9625
+ true
9626
+ /* cancelled */
9627
+ );
9628
+ }
9629
+ leave(el, performRemove);
9630
+ };
9599
9631
  if (delayLeave) {
9600
9632
  delayLeave(el, performRemove, performLeave);
9601
9633
  } else {
@@ -9651,6 +9683,16 @@ function getInheritedScopeIds(vnode, parentComponent) {
9651
9683
  }
9652
9684
  return inheritedScopeIds;
9653
9685
  }
9686
+ function resolveAsyncComponentPlaceholder(anchorVnode) {
9687
+ if (anchorVnode.placeholder) {
9688
+ return anchorVnode.placeholder;
9689
+ }
9690
+ const instance = anchorVnode.component;
9691
+ if (instance) {
9692
+ return resolveAsyncComponentPlaceholder(instance.subTree);
9693
+ }
9694
+ return null;
9695
+ }
9654
9696
 
9655
9697
  const isSuspense = (type) => type.__isSuspense;
9656
9698
  let suspenseId = 0;
@@ -10233,11 +10275,11 @@ function isVNodeSuspensible(vnode) {
10233
10275
  return suspensible != null && suspensible !== false;
10234
10276
  }
10235
10277
 
10236
- const Fragment = Symbol.for("v-fgt");
10237
- const Text = Symbol.for("v-txt");
10238
- const Comment = Symbol.for("v-cmt");
10239
- const Static = Symbol.for("v-stc");
10240
- const VaporSlot = Symbol.for("v-vps");
10278
+ const Fragment = /* @__PURE__ */ Symbol.for("v-fgt");
10279
+ const Text = /* @__PURE__ */ Symbol.for("v-txt");
10280
+ const Comment = /* @__PURE__ */ Symbol.for("v-cmt");
10281
+ const Static = /* @__PURE__ */ Symbol.for("v-stc");
10282
+ const VaporSlot = /* @__PURE__ */ Symbol.for("v-vps");
10241
10283
  const blockStack = [];
10242
10284
  let currentBlock = null;
10243
10285
  function openBlock(disableTracking = false) {
@@ -11293,7 +11335,7 @@ function isMemoSame(cached, memo) {
11293
11335
  return true;
11294
11336
  }
11295
11337
 
11296
- const version = "3.6.0-alpha.7";
11338
+ const version = "3.6.0-beta.1";
11297
11339
  const warn = warn$1 ;
11298
11340
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11299
11341
  const devtools = devtools$1 ;
@@ -11398,7 +11440,7 @@ const nodeOps = {
11398
11440
 
11399
11441
  const TRANSITION = "transition";
11400
11442
  const ANIMATION = "animation";
11401
- const vtcKey = Symbol("_vtc");
11443
+ const vtcKey = /* @__PURE__ */ Symbol("_vtc");
11402
11444
  const DOMTransitionPropsValidators = {
11403
11445
  name: String,
11404
11446
  type: String,
@@ -11691,8 +11733,8 @@ function patchClass(el, value, isSVG) {
11691
11733
  }
11692
11734
  }
11693
11735
 
11694
- const vShowOriginalDisplay = Symbol("_vod");
11695
- const vShowHidden = Symbol("_vsh");
11736
+ const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod");
11737
+ const vShowHidden = /* @__PURE__ */ Symbol("_vsh");
11696
11738
  const vShow = {
11697
11739
  // used for prop mismatch check during hydration
11698
11740
  name: "show",
@@ -11741,7 +11783,7 @@ function initVShowForSSR() {
11741
11783
  };
11742
11784
  }
11743
11785
 
11744
- const CSS_VAR_TEXT = Symbol("CSS_VAR_TEXT" );
11786
+ const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" );
11745
11787
  function useCssVars(getter) {
11746
11788
  const instance = getCurrentInstance();
11747
11789
  const getVars = () => getter(instance.proxy);
@@ -12002,7 +12044,7 @@ function addEventListener(el, event, handler, options) {
12002
12044
  function removeEventListener(el, event, handler, options) {
12003
12045
  el.removeEventListener(event, handler, options);
12004
12046
  }
12005
- const veiKey = Symbol("_vei");
12047
+ const veiKey = /* @__PURE__ */ Symbol("_vei");
12006
12048
  function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
12007
12049
  const invokers = el[veiKey] || (el[veiKey] = {});
12008
12050
  const existingInvoker = invokers[rawName];
@@ -12664,8 +12706,8 @@ function useCssModule(name = "$style") {
12664
12706
 
12665
12707
  const positionMap = /* @__PURE__ */ new WeakMap();
12666
12708
  const newPositionMap = /* @__PURE__ */ new WeakMap();
12667
- const moveCbKey = Symbol("_moveCb");
12668
- const enterCbKey = Symbol("_enterCb");
12709
+ const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
12710
+ const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
12669
12711
  const decorate = (t) => {
12670
12712
  delete t.props.mode;
12671
12713
  return t;
@@ -12828,7 +12870,7 @@ function onCompositionEnd(e) {
12828
12870
  target.dispatchEvent(new Event("input"));
12829
12871
  }
12830
12872
  }
12831
- const assignKey = Symbol("_assign");
12873
+ const assignKey = /* @__PURE__ */ Symbol("_assign");
12832
12874
  const vModelText = {
12833
12875
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
12834
12876
  el[assignKey] = getModelAssigner(vnode);
@@ -13305,4 +13347,4 @@ const initDirectivesForSSR = () => {
13305
13347
  }
13306
13348
  } ;
13307
13349
 
13308
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, VueElementBase, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getCurrentWatcher, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, nodeOps, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, patchProp, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
13350
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MoveType, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, VueElementBase, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getCurrentWatcher, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, nodeOps, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, patchProp, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };