@vue/runtime-dom 3.6.0-alpha.6 → 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.6
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) {
@@ -1997,6 +1997,16 @@ class EffectScope {
1997
1997
  return;
1998
1998
  }
1999
1999
  this.flags = 1024;
2000
+ this.reset();
2001
+ const sub = this.subs;
2002
+ if (sub !== void 0) {
2003
+ unlink(sub);
2004
+ }
2005
+ }
2006
+ /**
2007
+ * @internal
2008
+ */
2009
+ reset() {
2000
2010
  let dep = this.deps;
2001
2011
  while (dep !== void 0) {
2002
2012
  const node = dep.dep;
@@ -2007,10 +2017,6 @@ class EffectScope {
2007
2017
  dep = unlink(dep, this);
2008
2018
  }
2009
2019
  }
2010
- const sub = this.subs;
2011
- if (sub !== void 0) {
2012
- unlink(sub);
2013
- }
2014
2020
  cleanup(this);
2015
2021
  }
2016
2022
  }
@@ -2752,10 +2758,10 @@ function flushPostFlushCbs(seen) {
2752
2758
  }
2753
2759
  }
2754
2760
  let isFlushing = false;
2755
- function flushOnAppMount() {
2761
+ function flushOnAppMount(instance) {
2756
2762
  if (!isFlushing) {
2757
2763
  isFlushing = true;
2758
- flushPreFlushCbs();
2764
+ flushPreFlushCbs(instance);
2759
2765
  flushPostFlushCbs();
2760
2766
  isFlushing = false;
2761
2767
  }
@@ -2822,6 +2828,7 @@ function checkRecursiveUpdates(seen, fn) {
2822
2828
 
2823
2829
  let isHmrUpdating = false;
2824
2830
  const hmrDirtyComponents = /* @__PURE__ */ new Map();
2831
+ const hmrDirtyComponentsMode = /* @__PURE__ */ new Map();
2825
2832
  {
2826
2833
  getGlobalThis().__VUE_HMR_RUNTIME__ = {
2827
2834
  createRecord: tryWrap(createRecord),
@@ -2885,9 +2892,10 @@ function reload(id, newComp) {
2885
2892
  const record = map.get(id);
2886
2893
  if (!record) return;
2887
2894
  newComp = normalizeClassComponent(newComp);
2895
+ const isVapor = record.initialDef.__vapor;
2888
2896
  updateComponentDef(record.initialDef, newComp);
2889
2897
  const instances = [...record.instances];
2890
- if (newComp.__vapor && !instances.some((i) => i.ceReload)) {
2898
+ if (isVapor && newComp.__vapor && !instances.some((i) => i.ceReload)) {
2891
2899
  for (const instance of instances) {
2892
2900
  if (instance.root && instance.root.ce && instance !== instance.root) {
2893
2901
  instance.root.ce._removeChildStyle(instance.type);
@@ -2907,6 +2915,7 @@ function reload(id, newComp) {
2907
2915
  hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
2908
2916
  }
2909
2917
  dirtyInstances.add(instance);
2918
+ hmrDirtyComponentsMode.set(oldComp, !!isVapor);
2910
2919
  instance.appContext.propsCache.delete(instance.type);
2911
2920
  instance.appContext.emitsCache.delete(instance.type);
2912
2921
  instance.appContext.optionsCache.delete(instance.type);
@@ -2947,6 +2956,7 @@ function reload(id, newComp) {
2947
2956
  }
2948
2957
  queuePostFlushCb(() => {
2949
2958
  hmrDirtyComponents.clear();
2959
+ hmrDirtyComponentsMode.clear();
2950
2960
  });
2951
2961
  }
2952
2962
  function updateComponentDef(oldComp, newComp) {
@@ -3166,7 +3176,203 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
3166
3176
  }
3167
3177
  }
3168
3178
 
3169
- 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");
3170
3376
  const isTeleport = (type) => type.__isTeleport;
3171
3377
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
3172
3378
  const isTeleportDeferred = (props) => props && (props.defer || props.defer === "");
@@ -3538,8 +3744,8 @@ function prepareAnchor(target, vnode, createText, insert) {
3538
3744
  return targetAnchor;
3539
3745
  }
3540
3746
 
3541
- const leaveCbKey = Symbol("_leaveCb");
3542
- const enterCbKey$1 = Symbol("_enterCb");
3747
+ const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb");
3748
+ const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb");
3543
3749
  function useTransitionState() {
3544
3750
  const state = {
3545
3751
  isMounted: false,
@@ -3577,7 +3783,7 @@ const BaseTransitionPropsValidators = {
3577
3783
  onAppearCancelled: TransitionHookValidator
3578
3784
  };
3579
3785
  const recursiveGetSubtree = (instance) => {
3580
- const subTree = instance.type.__vapor ? instance.block : instance.subTree;
3786
+ const subTree = isVaporComponent(instance.type) ? instance.block : instance.subTree;
3581
3787
  return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
3582
3788
  };
3583
3789
  const BaseTransitionImpl = {
@@ -3884,7 +4090,7 @@ function getInnerChild$1(vnode) {
3884
4090
  }
3885
4091
  function setTransitionHooks(vnode, hooks) {
3886
4092
  if (vnode.shapeFlag & 6 && vnode.component) {
3887
- if (vnode.type.__vapor) {
4093
+ if (isVaporComponent(vnode.type)) {
3888
4094
  getVaporInterface(vnode.component, vnode).setTransitionHooks(
3889
4095
  vnode.component,
3890
4096
  hooks
@@ -5152,7 +5358,9 @@ const KeepAliveImpl = {
5152
5358
  }
5153
5359
  function pruneCache(filter) {
5154
5360
  cache.forEach((vnode, key) => {
5155
- const name = getComponentName(vnode.type);
5361
+ const name = getComponentName(
5362
+ isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type
5363
+ );
5156
5364
  if (name && !filter(name)) {
5157
5365
  pruneCacheEntry(key);
5158
5366
  }
@@ -5454,7 +5662,7 @@ const DIRECTIVES = "directives";
5454
5662
  function resolveComponent(name, maybeSelfReference) {
5455
5663
  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
5456
5664
  }
5457
- const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
5665
+ const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc");
5458
5666
  function resolveDynamicComponent(component) {
5459
5667
  if (isString(component)) {
5460
5668
  return resolveAsset(COMPONENTS, component, false) || component;
@@ -5645,14 +5853,14 @@ function ensureVaporSlotFallback(vnodes, fallback) {
5645
5853
  }
5646
5854
  }
5647
5855
 
5648
- function toHandlers(obj, preserveCaseIfNecessary) {
5856
+ function toHandlers(obj, preserveCaseIfNecessary, needWrap) {
5649
5857
  const ret = {};
5650
5858
  if (!isObject(obj)) {
5651
5859
  warn$1(`v-on with no argument expects an object value.`);
5652
5860
  return ret;
5653
5861
  }
5654
5862
  for (const key in obj) {
5655
- 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];
5656
5864
  }
5657
5865
  return ret;
5658
5866
  }
@@ -6624,202 +6832,6 @@ If you want to remount the same app, move your app creation logic into a factory
6624
6832
  }
6625
6833
  let currentApp = null;
6626
6834
 
6627
- function provide(key, value) {
6628
- {
6629
- if (!currentInstance || currentInstance.isMounted) {
6630
- warn$1(`provide() can only be used inside setup().`);
6631
- }
6632
- }
6633
- if (currentInstance) {
6634
- let provides = currentInstance.provides;
6635
- const parentProvides = currentInstance.parent && currentInstance.parent.provides;
6636
- if (parentProvides === provides) {
6637
- provides = currentInstance.provides = Object.create(parentProvides);
6638
- }
6639
- provides[key] = value;
6640
- }
6641
- }
6642
- function inject(key, defaultValue, treatDefaultAsFactory = false) {
6643
- const instance = getCurrentGenericInstance();
6644
- if (instance || currentApp) {
6645
- let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.appContext && instance.appContext.provides : instance.parent.provides : void 0;
6646
- if (provides && key in provides) {
6647
- return provides[key];
6648
- } else if (arguments.length > 1) {
6649
- return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
6650
- } else {
6651
- warn$1(`injection "${String(key)}" not found.`);
6652
- }
6653
- } else {
6654
- warn$1(`inject() can only be used inside setup() or functional components.`);
6655
- }
6656
- }
6657
- function hasInjectionContext() {
6658
- return !!(getCurrentGenericInstance() || currentApp);
6659
- }
6660
-
6661
- const ssrContextKey = Symbol.for("v-scx");
6662
- const useSSRContext = () => {
6663
- {
6664
- const ctx = inject(ssrContextKey);
6665
- if (!ctx) {
6666
- warn$1(
6667
- `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
6668
- );
6669
- }
6670
- return ctx;
6671
- }
6672
- };
6673
-
6674
- function watchEffect(effect, options) {
6675
- return doWatch(effect, null, options);
6676
- }
6677
- function watchPostEffect(effect, options) {
6678
- return doWatch(
6679
- effect,
6680
- null,
6681
- extend({}, options, { flush: "post" })
6682
- );
6683
- }
6684
- function watchSyncEffect(effect, options) {
6685
- return doWatch(
6686
- effect,
6687
- null,
6688
- extend({}, options, { flush: "sync" })
6689
- );
6690
- }
6691
- function watch(source, cb, options) {
6692
- if (!isFunction(cb)) {
6693
- warn$1(
6694
- `\`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.`
6695
- );
6696
- }
6697
- return doWatch(source, cb, options);
6698
- }
6699
- class RenderWatcherEffect extends WatcherEffect {
6700
- constructor(instance, source, cb, options, flush) {
6701
- super(source, cb, options);
6702
- this.flush = flush;
6703
- const job = () => {
6704
- if (this.dirty) {
6705
- this.run();
6706
- }
6707
- };
6708
- if (cb) {
6709
- this.flags |= 128;
6710
- job.flags |= 2;
6711
- }
6712
- if (instance) {
6713
- job.i = instance;
6714
- }
6715
- this.job = job;
6716
- }
6717
- notify() {
6718
- const flags = this.flags;
6719
- if (!(flags & 256)) {
6720
- const flush = this.flush;
6721
- const job = this.job;
6722
- if (flush === "post") {
6723
- queuePostRenderEffect(job, void 0, job.i ? job.i.suspense : null);
6724
- } else if (flush === "pre") {
6725
- queueJob(job, job.i ? job.i.uid : void 0, true);
6726
- } else {
6727
- job();
6728
- }
6729
- }
6730
- }
6731
- }
6732
- function doWatch(source, cb, options = EMPTY_OBJ) {
6733
- const { immediate, deep, flush = "pre", once } = options;
6734
- if (!cb) {
6735
- if (immediate !== void 0) {
6736
- warn$1(
6737
- `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
6738
- );
6739
- }
6740
- if (deep !== void 0) {
6741
- warn$1(
6742
- `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
6743
- );
6744
- }
6745
- if (once !== void 0) {
6746
- warn$1(
6747
- `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
6748
- );
6749
- }
6750
- }
6751
- const baseWatchOptions = extend({}, options);
6752
- baseWatchOptions.onWarn = warn$1;
6753
- const runsImmediately = cb && immediate || !cb && flush !== "post";
6754
- let ssrCleanup;
6755
- if (isInSSRComponentSetup) {
6756
- if (flush === "sync") {
6757
- const ctx = useSSRContext();
6758
- ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
6759
- } else if (!runsImmediately) {
6760
- const watchStopHandle = () => {
6761
- };
6762
- watchStopHandle.stop = NOOP;
6763
- watchStopHandle.resume = NOOP;
6764
- watchStopHandle.pause = NOOP;
6765
- return watchStopHandle;
6766
- }
6767
- }
6768
- const instance = currentInstance;
6769
- baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
6770
- const effect = new RenderWatcherEffect(
6771
- instance,
6772
- source,
6773
- cb,
6774
- baseWatchOptions,
6775
- flush
6776
- );
6777
- if (cb) {
6778
- effect.run(true);
6779
- } else if (flush === "post") {
6780
- queuePostRenderEffect(effect.job, void 0, instance && instance.suspense);
6781
- } else {
6782
- effect.run(true);
6783
- }
6784
- const stop = effect.stop.bind(effect);
6785
- stop.pause = effect.pause.bind(effect);
6786
- stop.resume = effect.resume.bind(effect);
6787
- stop.stop = stop;
6788
- if (isInSSRComponentSetup) {
6789
- if (ssrCleanup) {
6790
- ssrCleanup.push(stop);
6791
- } else if (runsImmediately) {
6792
- stop();
6793
- }
6794
- }
6795
- return stop;
6796
- }
6797
- function instanceWatch(source, value, options) {
6798
- const publicThis = this.proxy;
6799
- const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
6800
- let cb;
6801
- if (isFunction(value)) {
6802
- cb = value;
6803
- } else {
6804
- cb = value.handler;
6805
- options = value;
6806
- }
6807
- const prev = setCurrentInstance(this);
6808
- const res = doWatch(getter, cb.bind(publicThis), options);
6809
- setCurrentInstance(...prev);
6810
- return res;
6811
- }
6812
- function createPathGetter(ctx, path) {
6813
- const segments = path.split(".");
6814
- return () => {
6815
- let cur = ctx;
6816
- for (let i = 0; i < segments.length && cur; i++) {
6817
- cur = cur[segments[i]];
6818
- }
6819
- return cur;
6820
- };
6821
- }
6822
-
6823
6835
  function useModel(props, name, options = EMPTY_OBJ) {
6824
6836
  const i = getCurrentGenericInstance();
6825
6837
  if (!i) {
@@ -7904,6 +7916,14 @@ function isSupported() {
7904
7916
  return supported;
7905
7917
  }
7906
7918
 
7919
+ const MoveType = {
7920
+ "ENTER": 0,
7921
+ "0": "ENTER",
7922
+ "LEAVE": 1,
7923
+ "1": "LEAVE",
7924
+ "REORDER": 2,
7925
+ "2": "REORDER"
7926
+ };
7907
7927
  const queuePostRenderEffect = queueEffectWithSuspense ;
7908
7928
  function createRenderer(options) {
7909
7929
  return baseCreateRenderer(options);
@@ -7973,7 +7993,13 @@ function baseCreateRenderer(options, createHydrationFns) {
7973
7993
  );
7974
7994
  break;
7975
7995
  case VaporSlot:
7976
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor);
7996
+ getVaporInterface(parentComponent, n2).slot(
7997
+ n1,
7998
+ n2,
7999
+ container,
8000
+ anchor,
8001
+ parentComponent
8002
+ );
7977
8003
  break;
7978
8004
  default:
7979
8005
  if (shapeFlag & 1) {
@@ -8046,7 +8072,15 @@ function baseCreateRenderer(options, createHydrationFns) {
8046
8072
  } else {
8047
8073
  const el = n2.el = n1.el;
8048
8074
  if (n2.children !== n1.children) {
8049
- 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
+ }
8050
8084
  }
8051
8085
  }
8052
8086
  };
@@ -8432,7 +8466,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8432
8466
  } else {
8433
8467
  if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
8434
8468
  // of renderSlot() with no valid children
8435
- n1.dynamicChildren) {
8469
+ n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) {
8436
8470
  patchBlockChildren(
8437
8471
  n1.dynamicChildren,
8438
8472
  dynamicChildren,
@@ -9120,8 +9154,8 @@ function baseCreateRenderer(options, createHydrationFns) {
9120
9154
  const nextChild = c2[nextIndex];
9121
9155
  const anchorVNode = c2[nextIndex + 1];
9122
9156
  const anchor = nextIndex + 1 < l2 ? (
9123
- // #13559, fallback to el placeholder for unresolved async component
9124
- anchorVNode.el || anchorVNode.placeholder
9157
+ // #13559, #14173 fallback to el placeholder for unresolved async component
9158
+ anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode)
9125
9159
  ) : parentAnchor;
9126
9160
  if (newIndexToOldIndexMap[i] === 0) {
9127
9161
  patch(
@@ -9154,7 +9188,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9154
9188
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
9155
9189
  const { el, type, transition, children, shapeFlag } = vnode;
9156
9190
  if (shapeFlag & 6) {
9157
- if (type.__vapor) {
9191
+ if (isVaporComponent(type)) {
9158
9192
  getVaporInterface(parentComponent, vnode).move(vnode, container, anchor);
9159
9193
  } else {
9160
9194
  move(
@@ -9264,7 +9298,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9264
9298
  parentComponent.renderCache[cacheIndex] = void 0;
9265
9299
  }
9266
9300
  if (shapeFlag & 256) {
9267
- if (vnode.type.__vapor) {
9301
+ if (isVaporComponent(vnode.type)) {
9268
9302
  getVaporInterface(parentComponent, vnode).deactivate(
9269
9303
  vnode,
9270
9304
  parentComponent.ctx.getStorageContainer()
@@ -9281,7 +9315,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9281
9315
  invokeVNodeHook(vnodeHook, parentComponent, vnode);
9282
9316
  }
9283
9317
  if (shapeFlag & 6) {
9284
- if (type.__vapor) {
9318
+ if (isVaporComponent(type)) {
9285
9319
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
9286
9320
  return;
9287
9321
  } else {
@@ -9413,7 +9447,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9413
9447
  };
9414
9448
  const getNextHostNode = (vnode) => {
9415
9449
  if (vnode.shapeFlag & 6) {
9416
- if (vnode.type.__vapor) {
9450
+ if (isVaporComponent(vnode.type)) {
9417
9451
  return hostNextSibling(vnode.anchor);
9418
9452
  }
9419
9453
  return getNextHostNode(vnode.component.subTree);
@@ -9426,9 +9460,11 @@ function baseCreateRenderer(options, createHydrationFns) {
9426
9460
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
9427
9461
  };
9428
9462
  const render = (vnode, container, namespace) => {
9463
+ let instance;
9429
9464
  if (vnode == null) {
9430
9465
  if (container._vnode) {
9431
9466
  unmount(container._vnode, null, null, true);
9467
+ instance = container._vnode.component;
9432
9468
  }
9433
9469
  } else {
9434
9470
  patch(
@@ -9442,7 +9478,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9442
9478
  );
9443
9479
  }
9444
9480
  container._vnode = vnode;
9445
- flushOnAppMount();
9481
+ flushOnAppMount(instance);
9446
9482
  };
9447
9483
  const internals = {
9448
9484
  p: patch,
@@ -9532,9 +9568,13 @@ function traverseStaticChildren(n1, n2, shallow = false) {
9532
9568
  if (!shallow && c2.patchFlag !== -2)
9533
9569
  traverseStaticChildren(c1, c2);
9534
9570
  }
9535
- if (c2.type === Text && // avoid cached text nodes retaining detached dom nodes
9536
- c2.patchFlag !== -1) {
9537
- 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
+ }
9538
9578
  }
9539
9579
  if (c2.type === Comment && !c2.el) {
9540
9580
  c2.el = c1.el;
@@ -9570,16 +9610,24 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
9570
9610
  insert();
9571
9611
  }
9572
9612
  }
9573
- function performTransitionLeave(el, transition, remove, isElement = true) {
9613
+ function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
9574
9614
  const performRemove = () => {
9575
9615
  remove();
9576
9616
  if (transition && !transition.persisted && transition.afterLeave) {
9577
9617
  transition.afterLeave();
9578
9618
  }
9579
9619
  };
9580
- if (isElement && transition && !transition.persisted) {
9620
+ if (force || isElement && transition && !transition.persisted) {
9581
9621
  const { leave, delayLeave } = transition;
9582
- 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
+ };
9583
9631
  if (delayLeave) {
9584
9632
  delayLeave(el, performRemove, performLeave);
9585
9633
  } else {
@@ -9603,6 +9651,12 @@ app.use(vaporInteropPlugin)
9603
9651
  }
9604
9652
  return res;
9605
9653
  }
9654
+ function isVaporComponent(type) {
9655
+ if (isHmrUpdating && hmrDirtyComponentsMode.has(type)) {
9656
+ return hmrDirtyComponentsMode.get(type);
9657
+ }
9658
+ return type.__vapor;
9659
+ }
9606
9660
  function getInheritedScopeIds(vnode, parentComponent) {
9607
9661
  const inheritedScopeIds = [];
9608
9662
  let currentParent = parentComponent;
@@ -9629,6 +9683,16 @@ function getInheritedScopeIds(vnode, parentComponent) {
9629
9683
  }
9630
9684
  return inheritedScopeIds;
9631
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
+ }
9632
9696
 
9633
9697
  const isSuspense = (type) => type.__isSuspense;
9634
9698
  let suspenseId = 0;
@@ -10211,11 +10275,11 @@ function isVNodeSuspensible(vnode) {
10211
10275
  return suspensible != null && suspensible !== false;
10212
10276
  }
10213
10277
 
10214
- const Fragment = Symbol.for("v-fgt");
10215
- const Text = Symbol.for("v-txt");
10216
- const Comment = Symbol.for("v-cmt");
10217
- const Static = Symbol.for("v-stc");
10218
- 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");
10219
10283
  const blockStack = [];
10220
10284
  let currentBlock = null;
10221
10285
  function openBlock(disableTracking = false) {
@@ -11271,7 +11335,7 @@ function isMemoSame(cached, memo) {
11271
11335
  return true;
11272
11336
  }
11273
11337
 
11274
- const version = "3.6.0-alpha.6";
11338
+ const version = "3.6.0-beta.1";
11275
11339
  const warn = warn$1 ;
11276
11340
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11277
11341
  const devtools = devtools$1 ;
@@ -11376,7 +11440,7 @@ const nodeOps = {
11376
11440
 
11377
11441
  const TRANSITION = "transition";
11378
11442
  const ANIMATION = "animation";
11379
- const vtcKey = Symbol("_vtc");
11443
+ const vtcKey = /* @__PURE__ */ Symbol("_vtc");
11380
11444
  const DOMTransitionPropsValidators = {
11381
11445
  name: String,
11382
11446
  type: String,
@@ -11669,8 +11733,8 @@ function patchClass(el, value, isSVG) {
11669
11733
  }
11670
11734
  }
11671
11735
 
11672
- const vShowOriginalDisplay = Symbol("_vod");
11673
- const vShowHidden = Symbol("_vsh");
11736
+ const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod");
11737
+ const vShowHidden = /* @__PURE__ */ Symbol("_vsh");
11674
11738
  const vShow = {
11675
11739
  // used for prop mismatch check during hydration
11676
11740
  name: "show",
@@ -11719,7 +11783,7 @@ function initVShowForSSR() {
11719
11783
  };
11720
11784
  }
11721
11785
 
11722
- const CSS_VAR_TEXT = Symbol("CSS_VAR_TEXT" );
11786
+ const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" );
11723
11787
  function useCssVars(getter) {
11724
11788
  const instance = getCurrentInstance();
11725
11789
  const getVars = () => getter(instance.proxy);
@@ -11980,7 +12044,7 @@ function addEventListener(el, event, handler, options) {
11980
12044
  function removeEventListener(el, event, handler, options) {
11981
12045
  el.removeEventListener(event, handler, options);
11982
12046
  }
11983
- const veiKey = Symbol("_vei");
12047
+ const veiKey = /* @__PURE__ */ Symbol("_vei");
11984
12048
  function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11985
12049
  const invokers = el[veiKey] || (el[veiKey] = {});
11986
12050
  const existingInvoker = invokers[rawName];
@@ -12642,8 +12706,8 @@ function useCssModule(name = "$style") {
12642
12706
 
12643
12707
  const positionMap = /* @__PURE__ */ new WeakMap();
12644
12708
  const newPositionMap = /* @__PURE__ */ new WeakMap();
12645
- const moveCbKey = Symbol("_moveCb");
12646
- const enterCbKey = Symbol("_enterCb");
12709
+ const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
12710
+ const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
12647
12711
  const decorate = (t) => {
12648
12712
  delete t.props.mode;
12649
12713
  return t;
@@ -12806,7 +12870,7 @@ function onCompositionEnd(e) {
12806
12870
  target.dispatchEvent(new Event("input"));
12807
12871
  }
12808
12872
  }
12809
- const assignKey = Symbol("_assign");
12873
+ const assignKey = /* @__PURE__ */ Symbol("_assign");
12810
12874
  const vModelText = {
12811
12875
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
12812
12876
  el[assignKey] = getModelAssigner(vnode);
@@ -13283,4 +13347,4 @@ const initDirectivesForSSR = () => {
13283
13347
  }
13284
13348
  } ;
13285
13349
 
13286
- 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 };