@vue/compat 3.6.0-rc.11 → 3.6.0-rc.13

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-rc.11
2
+ * @vue/compat v3.6.0-rc.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -311,9 +311,10 @@ const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
311
311
  * - ismap -> isMap
312
312
  * - nomodule -> noModule
313
313
  * - novalidate -> noValidate
314
+ * - playsinline -> playsInline
314
315
  * - readonly -> readOnly
315
316
  */
316
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
317
+ const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
317
318
  const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
318
319
  /**
319
320
  * The full list is needed during SSR to produce the correct initial markup.
@@ -1009,17 +1010,33 @@ const arrayInstrumentations = {
1009
1010
  };
1010
1011
  function iterator(self, method, wrapValue) {
1011
1012
  const arr = shallowReadArray(self);
1012
- const iter = arr[method]();
1013
+ const methodFn = arr[method];
1014
+ const iter = methodFn.call(arr);
1013
1015
  if (arr !== self && !/* @__PURE__ */ isShallow(self)) {
1016
+ if (iter[Symbol.toStringTag] === "Array Iterator") {
1017
+ const wrapped = Object.create(Object.getPrototypeOf(iter));
1018
+ wrapped.next = () => wrapResult(iter.next(), wrapValue);
1019
+ if (methodFn !== arrayProto[method]) Object.defineProperties(wrapped, {
1020
+ return: { get() {
1021
+ const fn = iter.return;
1022
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1023
+ } },
1024
+ throw: { get() {
1025
+ const fn = iter.throw;
1026
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1027
+ } }
1028
+ });
1029
+ return wrapped;
1030
+ }
1014
1031
  iter._next = iter.next;
1015
- iter.next = () => {
1016
- const result = iter._next();
1017
- if (!result.done) result.value = wrapValue(result.value);
1018
- return result;
1019
- };
1032
+ iter.next = () => wrapResult(iter._next(), wrapValue);
1020
1033
  }
1021
1034
  return iter;
1022
1035
  }
1036
+ function wrapResult(result, wrapValue) {
1037
+ if (!result.done) result.value = wrapValue(result.value);
1038
+ return result;
1039
+ }
1023
1040
  const arrayProto = Array.prototype;
1024
1041
  function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1025
1042
  const arr = shallowReadArray(self);
@@ -1337,6 +1354,7 @@ function createInstrumentationGetter(isReadonly, shallow) {
1337
1354
  return (target, key, receiver) => {
1338
1355
  if (key === "__v_isReactive") return !isReadonly;
1339
1356
  else if (key === "__v_isReadonly") return isReadonly;
1357
+ else if (key === "__v_isShallow") return shallow;
1340
1358
  else if (key === "__v_raw") return target;
1341
1359
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1342
1360
  };
@@ -2246,8 +2264,9 @@ function getCurrentWatcher() {
2246
2264
  function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {
2247
2265
  if (owner) {
2248
2266
  const { call } = owner.options;
2249
- if (call) owner.cleanups[owner.cleanupsLength++] = () => call(cleanupFn, 4);
2250
- else owner.cleanups[owner.cleanupsLength++] = cleanupFn;
2267
+ const cleanup = call ? () => call(cleanupFn, 4) : cleanupFn;
2268
+ if (owner.cb) (owner.cbCleanups || (owner.cbCleanups = [])).push(cleanup);
2269
+ else owner.cleanups[owner.cleanupsLength++] = cleanup;
2251
2270
  } else if (!!(process.env.NODE_ENV !== "production") && !failSilently) warn$2("onWatcherCleanup() was called when there was no active watcher to associate with.");
2252
2271
  }
2253
2272
  var WatcherEffect = class extends ReactiveEffect {
@@ -2308,9 +2327,11 @@ var WatcherEffect = class extends ReactiveEffect {
2308
2327
  if (once && cb) {
2309
2328
  const _cb = cb;
2310
2329
  cb = (...args) => {
2311
- const res = _cb(...args);
2312
- this.stop();
2313
- return res;
2330
+ try {
2331
+ return _cb(...args);
2332
+ } finally {
2333
+ this.stop();
2334
+ }
2314
2335
  };
2315
2336
  }
2316
2337
  this.cb = cb;
@@ -2320,6 +2341,19 @@ var WatcherEffect = class extends ReactiveEffect {
2320
2341
  this.onTrigger = options.onTrigger;
2321
2342
  }
2322
2343
  }
2344
+ cleanupCallback() {
2345
+ const cleanups = this.cbCleanups;
2346
+ if (cleanups) {
2347
+ this.cbCleanups = void 0;
2348
+ for (let i = 0, l = cleanups.length; i < l; i++) cleanups[i]();
2349
+ }
2350
+ }
2351
+ stop() {
2352
+ if (this.active) {
2353
+ super.stop();
2354
+ this.cleanupCallback();
2355
+ }
2356
+ }
2323
2357
  run(initialRun = false) {
2324
2358
  const oldValue = this.oldValue;
2325
2359
  const newValue = this.oldValue = super.run();
@@ -2327,10 +2361,11 @@ var WatcherEffect = class extends ReactiveEffect {
2327
2361
  const { immediate, deep, call } = this.options;
2328
2362
  if (initialRun && !immediate) return;
2329
2363
  if (initialRun || deep || this.forceTrigger || (this.isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2330
- cleanup(this);
2331
2364
  const currentWatcher = activeWatcher;
2332
- activeWatcher = this;
2365
+ const prevSub = setActiveSub();
2333
2366
  try {
2367
+ this.cleanupCallback();
2368
+ activeWatcher = this;
2334
2369
  const args = [
2335
2370
  newValue,
2336
2371
  oldValue === INITIAL_WATCHER_VALUE ? void 0 : this.isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
@@ -2339,6 +2374,7 @@ var WatcherEffect = class extends ReactiveEffect {
2339
2374
  call ? call(this.cb, 3, args) : this.cb(...args);
2340
2375
  } finally {
2341
2376
  activeWatcher = currentWatcher;
2377
+ setActiveSub(prevSub);
2342
2378
  }
2343
2379
  }
2344
2380
  }
@@ -2681,15 +2717,15 @@ function queuePostFlushCb(jobs, id = Infinity) {
2681
2717
  } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2682
2718
  queueFlush();
2683
2719
  }
2684
- function flushPreFlushCbs(instance, seen) {
2720
+ function flushPreFlushCbs(instance, minUid, seen) {
2685
2721
  if (!!(process.env.NODE_ENV !== "production")) seen = seen || /* @__PURE__ */ new Map();
2686
2722
  for (let i = flushIndex; i < jobsLength; i++) {
2687
2723
  const cb = jobs[i];
2688
2724
  if (cb.order & 1 || cb.order === Infinity) continue;
2689
- if (instance && cb.order !== instance.uid * 2) continue;
2725
+ if (instance && cb.order !== instance.uid * 2 || minUid !== void 0 && !(cb.order >= minUid * 2)) continue;
2690
2726
  if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) continue;
2691
2727
  jobs.splice(i, 1);
2692
- i--;
2728
+ i = instance ? i - 1 : flushIndex - 1;
2693
2729
  jobsLength--;
2694
2730
  if (cb.flags & 2) cb.flags &= -2;
2695
2731
  try {
@@ -2699,15 +2735,24 @@ function flushPreFlushCbs(instance, seen) {
2699
2735
  }
2700
2736
  }
2701
2737
  }
2702
- function flushPostFlushCbs(seen) {
2738
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2703
2739
  if (postJobs.length) {
2740
+ let cbs = postJobs;
2741
+ if (skip) {
2742
+ cbs = [];
2743
+ let kept = 0;
2744
+ for (let i = 0; i < postJobs.length; i++) {
2745
+ const cb = postJobs[i];
2746
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) postJobs[kept++] = cb;
2747
+ else cbs.push(cb);
2748
+ }
2749
+ postJobs.length = kept;
2750
+ } else postJobs = [];
2704
2751
  if (activePostJobs) {
2705
- for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
2706
- postJobs.length = 0;
2752
+ for (let i = 0; i < cbs.length; i++) activePostJobs.push(cbs[i]);
2707
2753
  return;
2708
2754
  }
2709
- activePostJobs = postJobs;
2710
- postJobs = [];
2755
+ activePostJobs = cbs;
2711
2756
  if (!!(process.env.NODE_ENV !== "production")) seen = seen || /* @__PURE__ */ new Map();
2712
2757
  try {
2713
2758
  while (postFlushIndex < activePostJobs.length) {
@@ -2729,17 +2774,28 @@ function flushPostFlushCbs(seen) {
2729
2774
  }
2730
2775
  let isFlushing = false;
2731
2776
  /**
2777
+ * Run a root render, then flush the jobs it is responsible for. A mount or
2778
+ * unmount (`minUid` given) only flushes the jobs of the components it created
2779
+ * and the post cbs it queued, so pre watchers triggered in setup run before
2780
+ * mounted (#5721) while the jobs of other components stay in the queue and
2781
+ * keep their order (#6728). A root update keeps flushing all pending pre jobs
2782
+ * and post cbs, as the jobs of the components it re-renders may predate it.
2783
+ *
2732
2784
  * @internal
2733
2785
  */
2734
- function flushOnAppMount(instance) {
2735
- if (!isFlushing) {
2736
- isFlushing = true;
2737
- try {
2738
- flushPreFlushCbs(instance);
2739
- flushPostFlushCbs();
2740
- } finally {
2741
- isFlushing = false;
2742
- }
2786
+ function flushOnAppMount(fn, minUid) {
2787
+ if (isFlushing) {
2788
+ fn();
2789
+ return;
2790
+ }
2791
+ const queued = minUid === void 0 ? void 0 : new Set(postJobs);
2792
+ fn();
2793
+ isFlushing = true;
2794
+ try {
2795
+ flushPreFlushCbs(void 0, minUid);
2796
+ flushPostFlushCbs(void 0, queued, minUid);
2797
+ } finally {
2798
+ isFlushing = false;
2743
2799
  }
2744
2800
  }
2745
2801
  function flushJobs(seen) {
@@ -3563,7 +3619,7 @@ var RenderWatcherEffect = class extends WatcherEffect {
3563
3619
  this.flags |= 128;
3564
3620
  job.flags |= 2;
3565
3621
  }
3566
- if (instance) job.i = instance;
3622
+ job.i = instance;
3567
3623
  this.job = job;
3568
3624
  }
3569
3625
  notify() {
@@ -3638,6 +3694,16 @@ function createPathGetter(ctx, path) {
3638
3694
  };
3639
3695
  }
3640
3696
  //#endregion
3697
+ //#region packages/runtime-core/src/vaporInteropState.ts
3698
+ /**
3699
+ * Set by `vaporInteropPlugin`. Stays false in apps that never import the
3700
+ * plugin, so bundlers drop the vapor-in-vdom branches of the renderer.
3701
+ */
3702
+ let isVaporInteropEnabled = false;
3703
+ function setVaporInteropEnabled() {
3704
+ isVaporInteropEnabled = true;
3705
+ }
3706
+ //#endregion
3641
3707
  //#region packages/runtime-core/src/components/Teleport.ts
3642
3708
  const pendingMounts = /* @__PURE__ */ new WeakMap();
3643
3709
  const TeleportEndKey = Symbol("_vte");
@@ -3774,7 +3840,11 @@ const TeleportImpl = {
3774
3840
  hydrate: hydrateTeleport
3775
3841
  };
3776
3842
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, parentComponent, moveType = 2) {
3777
- if (moveType === 0) insert(vnode.targetAnchor, container, parentAnchor);
3843
+ if (moveType === 0) {
3844
+ if (vnode.targetStart) insert(vnode.targetStart, container, parentAnchor);
3845
+ insert(vnode.targetAnchor, container, parentAnchor);
3846
+ parentAnchor = vnode.targetAnchor;
3847
+ }
3778
3848
  const { el, anchor, shapeFlag, children, props } = vnode;
3779
3849
  const isReorder = moveType === 2;
3780
3850
  if (isReorder) insert(el, container, parentAnchor);
@@ -3859,7 +3929,7 @@ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
3859
3929
  //#endregion
3860
3930
  //#region packages/runtime-core/src/components/BaseTransition.ts
3861
3931
  const leaveCbKey = Symbol("_leaveCb");
3862
- const enterCbKey$1 = Symbol("_enterCb");
3932
+ const enterCbKey = Symbol("_enterCb");
3863
3933
  function useTransitionState() {
3864
3934
  const state = {
3865
3935
  isMounted: false,
@@ -3893,9 +3963,18 @@ const BaseTransitionPropsValidators = {
3893
3963
  onAfterAppear: TransitionHookValidator,
3894
3964
  onAppearCancelled: TransitionHookValidator
3895
3965
  };
3966
+ let isTransitionEnabled = false;
3967
+ function withTransitionEnabled(value) {
3968
+ isTransitionEnabled = true;
3969
+ return value;
3970
+ }
3896
3971
  function isEmptyTransitionChild(vnode, instance) {
3897
3972
  if (vnode.type === Comment) return true;
3898
- if (vnode.type === VaporSlot || isVaporComponent(vnode.type)) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
3973
+ if (vnode.type === Fragment) {
3974
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
3975
+ return !child || isEmptyTransitionChild(child, instance);
3976
+ }
3977
+ if (isVaporInteropEnabled && (vnode.type === VaporSlot || isVaporComponent(vnode.type))) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
3899
3978
  return !!vnode.component && isEmptyTransitionChild(vnode.component.subTree, instance);
3900
3979
  }
3901
3980
  const BaseTransitionImpl = {
@@ -3912,7 +3991,7 @@ const BaseTransitionImpl = {
3912
3991
  const { mode } = rawProps;
3913
3992
  checkTransitionMode(mode);
3914
3993
  return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3915
- if (!(instance.job.flags & 4)) instance.update();
3994
+ if (!(instance.effect.flags & 1024)) instance.update();
3916
3995
  }) : NOOP);
3917
3996
  };
3918
3997
  }
@@ -3934,7 +4013,7 @@ function findNonCommentChild(children) {
3934
4013
  }
3935
4014
  return child;
3936
4015
  }
3937
- const BaseTransition = BaseTransitionImpl;
4016
+ const BaseTransition = /*@__PURE__*/ withTransitionEnabled(BaseTransitionImpl);
3938
4017
  function getLeavingNodesForType(state, vnode) {
3939
4018
  const { leavingNodes } = state;
3940
4019
  let leavingVNodesCache = leavingNodes.get(vnode.type);
@@ -3957,7 +4036,14 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3957
4036
  },
3958
4037
  earlyRemove: () => {
3959
4038
  const leavingVNode = leavingVNodesCache[key];
3960
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) leavingVNode.el[leaveCbKey]();
4039
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
4040
+ let leavingCb = leavingVNode.el[leaveCbKey];
4041
+ if (!leavingCb) {
4042
+ const leavingRoot = getTransitionRoot(leavingVNode);
4043
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
4044
+ }
4045
+ if (leavingCb) leavingCb();
4046
+ }
3961
4047
  },
3962
4048
  cloneHooks: (vnode) => {
3963
4049
  const hooks = resolveTransitionHooks(vnode, props, state, instance, postClone);
@@ -3965,7 +4051,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3965
4051
  return hooks;
3966
4052
  }
3967
4053
  }, props, state, instance);
3968
- if (vnode.type === VaporSlot) extend(hooks, {
4054
+ if (isVaporInteropEnabled && vnode.type === VaporSlot) extend(hooks, {
3969
4055
  __vapor: true,
3970
4056
  props,
3971
4057
  state,
@@ -4012,20 +4098,20 @@ function baseResolveTransitionHooks(context, props, state, instance) {
4012
4098
  } else return;
4013
4099
  }
4014
4100
  let called = false;
4015
- el[enterCbKey$1] = (cancelled) => {
4101
+ el[enterCbKey] = (cancelled) => {
4016
4102
  if (called) return;
4017
4103
  called = true;
4018
4104
  if (cancelled) callHook(cancelHook, [el]);
4019
4105
  else callHook(afterHook, [el]);
4020
4106
  if (hooks.delayedLeave) hooks.delayedLeave();
4021
- el[enterCbKey$1] = void 0;
4107
+ el[enterCbKey] = void 0;
4022
4108
  };
4023
- const done = el[enterCbKey$1].bind(null, false);
4109
+ const done = el[enterCbKey].bind(null, false);
4024
4110
  if (hook) callAsyncHook(hook, [el, done]);
4025
4111
  else done();
4026
4112
  },
4027
4113
  leave(el, remove) {
4028
- if (el[enterCbKey$1]) el[enterCbKey$1](true);
4114
+ if (el[enterCbKey]) el[enterCbKey](true);
4029
4115
  if (state.isUnmounting) return remove();
4030
4116
  callHook(onBeforeLeave, [el]);
4031
4117
  let called = false;
@@ -4103,14 +4189,21 @@ function forwardDelayedLeave(hooks, source) {
4103
4189
  }
4104
4190
  /**
4105
4191
  * Prepares an outgoing VNode when the incoming branch belongs to another
4106
- * renderer. Returns true when out-in must defer the incoming branch.
4192
+ * renderer. Returns true under out-in, where that branch is a comment
4193
+ * child's: no mode holds for it, the leave runs on its own and
4194
+ * `resumeAfterLeave` follows it.
4107
4195
  *
4108
4196
  * @internal
4109
4197
  */
4110
4198
  function prepareTransitionLeave(previous, enterHooks, props, state, instance, resumeAfterLeave) {
4111
4199
  const previousInner = getInnerChild$1(previous);
4112
4200
  if (!previousInner || isEmptyTransitionChild(previousInner, instance)) return false;
4113
- return applyTransitionModeSwitch(previousInner, prepareLeavingTransitionHooks(previousInner, props, state, instance), enterHooks ? () => enterHooks : void 0, props, state, resumeAfterLeave);
4201
+ const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
4202
+ if (props.mode === "out-in") {
4203
+ leavingHooks.afterLeave = resumeAfterLeave;
4204
+ return true;
4205
+ }
4206
+ return applyTransitionModeSwitch(previousInner, leavingHooks, enterHooks ? () => enterHooks : void 0, props, state, resumeAfterLeave);
4114
4207
  }
4115
4208
  function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
4116
4209
  return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
@@ -4153,7 +4246,7 @@ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, pr
4153
4246
  function setTransitionHooks(vnode, hooks) {
4154
4247
  if (vnode.shapeFlag & 6 && vnode.component) {
4155
4248
  vnode.transition = hooks;
4156
- if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4249
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4157
4250
  else {
4158
4251
  const subTree = vnode.component.subTree;
4159
4252
  return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
@@ -4162,7 +4255,13 @@ function setTransitionHooks(vnode, hooks) {
4162
4255
  const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4163
4256
  const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4164
4257
  return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
4165
- } else vnode.transition = hooks;
4258
+ } else {
4259
+ vnode.transition = hooks;
4260
+ if (vnode.type === Fragment && isArray(vnode.children)) {
4261
+ const child = filterSingleRoot(vnode.children, false);
4262
+ if (child) setTransitionHooks(child, hooks);
4263
+ }
4264
+ }
4166
4265
  return hooks;
4167
4266
  }
4168
4267
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -4185,6 +4284,14 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4185
4284
  function checkTransitionMode(mode) {
4186
4285
  if (!!(process.env.NODE_ENV !== "production") && mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") warn$1(`invalid <transition> mode: ${mode}`);
4187
4286
  }
4287
+ function getTransitionRoot(vnode) {
4288
+ if (vnode.component && (!isVaporInteropEnabled || !isVaporComponent(vnode.type))) return getTransitionRoot(vnode.component.subTree);
4289
+ if (vnode.type === Fragment) {
4290
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
4291
+ return child ? getTransitionRoot(child) : void 0;
4292
+ }
4293
+ if (vnode.type !== Comment) return vnode;
4294
+ }
4188
4295
  //#endregion
4189
4296
  //#region packages/runtime-core/src/apiDefineComponent.ts
4190
4297
  /*@__NO_SIDE_EFFECTS__*/
@@ -4451,7 +4558,7 @@ function createHydrationFunctions(rendererInternals) {
4451
4558
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4452
4559
  break;
4453
4560
  case VaporSlot:
4454
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
4561
+ if (isVaporInteropEnabled) nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
4455
4562
  break;
4456
4563
  default: if (shapeFlag & 1) {
4457
4564
  if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
@@ -4462,7 +4569,7 @@ function createHydrationFunctions(rendererInternals) {
4462
4569
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
4463
4570
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
4464
4571
  else nextNode = nextSibling(node);
4465
- if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
4572
+ if ((isVaporInteropEnabled || !!(process.env.NODE_ENV !== "production")) && vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
4466
4573
  else {
4467
4574
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
4468
4575
  const component = vnode.component;
@@ -4587,7 +4694,7 @@ function createHydrationFunctions(rendererInternals) {
4587
4694
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
4588
4695
  const container = parentNode(node);
4589
4696
  const first = nextSibling(node);
4590
- const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4697
+ const next = isVaporInteropEnabled && vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4591
4698
  if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
4592
4699
  else {
4593
4700
  logMismatchError();
@@ -4843,14 +4950,20 @@ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
4843
4950
  break;
4844
4951
  }
4845
4952
  }, opts);
4846
- forEach((el) => {
4847
- if (!(el instanceof Element)) return;
4953
+ const observe = (el) => {
4848
4954
  if (elementIsVisibleInViewport(el)) {
4849
4955
  hydrate();
4850
4956
  ob.disconnect();
4851
4957
  return false;
4852
4958
  }
4959
+ if (getComputedStyle(el).display === "contents") {
4960
+ for (let i = 0; i < el.children.length; i++) if (observe(el.children[i]) === false) return false;
4961
+ }
4853
4962
  ob.observe(el);
4963
+ };
4964
+ forEach((el) => {
4965
+ if (!(el instanceof Element)) return;
4966
+ return observe(el);
4854
4967
  });
4855
4968
  return () => ob.disconnect();
4856
4969
  };
@@ -5000,7 +5113,7 @@ function createAsyncComponentContext(source) {
5000
5113
  setPendingRequest: (request) => pendingRequest = request
5001
5114
  };
5002
5115
  }
5003
- const useAsyncComponentState = (delay, timeout, onError, instance = currentInstance) => {
5116
+ const useAsyncComponentState = (delay = 200, timeout, onError, instance = currentInstance) => {
5004
5117
  const loaded = /* @__PURE__ */ ref(false);
5005
5118
  const error = /* @__PURE__ */ ref();
5006
5119
  const delayed = /* @__PURE__ */ ref(!!delay);
@@ -5057,6 +5170,11 @@ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydra
5057
5170
  //#endregion
5058
5171
  //#region packages/runtime-core/src/components/KeepAlive.ts
5059
5172
  const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
5173
+ let isKeepAliveEnabled = false;
5174
+ function withKeepAliveEnabled(value) {
5175
+ isKeepAliveEnabled = true;
5176
+ return value;
5177
+ }
5060
5178
  const KeepAliveImpl = {
5061
5179
  name: `KeepAlive`,
5062
5180
  __isKeepAlive: true,
@@ -5112,7 +5230,10 @@ const KeepAliveImpl = {
5112
5230
  function pruneCacheEntry(key) {
5113
5231
  const cached = cache.get(key);
5114
5232
  if (cached && (!current || !isSameVNodeType(cached, current))) unmount(cached);
5115
- else if (current) resetShapeFlag(current);
5233
+ else if (current) {
5234
+ resetShapeFlag(current);
5235
+ if (cached) resetShapeFlag(cached);
5236
+ }
5116
5237
  cache.delete(key);
5117
5238
  keys.delete(key);
5118
5239
  }
@@ -5202,7 +5323,7 @@ const decorate$2 = (t) => {
5202
5323
  t.__isBuiltIn = true;
5203
5324
  return t;
5204
5325
  };
5205
- const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
5326
+ const KeepAlive = /*@__PURE__*/ withKeepAliveEnabled(/*@__PURE__*/ decorate$2(KeepAliveImpl));
5206
5327
  function matches(pattern, name) {
5207
5328
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
5208
5329
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -5593,8 +5714,8 @@ function renderList(source, renderItem, cache, index) {
5593
5714
  ret = new Array(source.length);
5594
5715
  for (let i = 0, l = source.length; i < l; i++) ret[i] = renderItem(needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], i, void 0, cached && cached[i]);
5595
5716
  } else if (typeof source === "number") {
5596
- if (!!(process.env.NODE_ENV !== "production") && (!Number.isInteger(source) || source < 0)) {
5597
- warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5717
+ if (!Number.isInteger(source) || source < 0) {
5718
+ if (!!(process.env.NODE_ENV !== "production")) warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5598
5719
  ret = [];
5599
5720
  } else {
5600
5721
  ret = new Array(source);
@@ -5665,16 +5786,22 @@ function invokeSlotFallback(fallback, owner) {
5665
5786
  function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5666
5787
  if (props == null) props = {};
5667
5788
  let slot = slots[name];
5668
- const vaporSlot = slot && slot[rawVaporSlotKey];
5789
+ const vaporSlot = isVaporInteropEnabled && slot && slot[rawVaporSlotKey];
5669
5790
  if (vaporSlot) {
5670
5791
  const ret = (openBlock(), createBlock(VaporSlot, props));
5671
5792
  ret.vs = {
5672
5793
  slot: vaporSlot,
5794
+ name,
5673
5795
  outlets: fallback ? [{
5674
5796
  fallback,
5675
5797
  owner: currentRenderingInstance
5676
5798
  }] : void 0
5677
5799
  };
5800
+ if (branchKey != null && props.key == null) {
5801
+ ret.vs.props = ret.props;
5802
+ ret.props = extend({}, ret.props, { key: branchKey });
5803
+ ret.key = branchKey;
5804
+ }
5678
5805
  if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
5679
5806
  return ret;
5680
5807
  }
@@ -5695,7 +5822,7 @@ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5695
5822
  try {
5696
5823
  const validSlotContent = slot && ensureValidVNode(slot(props));
5697
5824
  let attached = false;
5698
- if (fallback && validSlotContent && currentRenderingInstance) {
5825
+ if (isVaporInteropEnabled && fallback && validSlotContent && currentRenderingInstance) {
5699
5826
  const interop = currentRenderingInstance.appContext.vapor;
5700
5827
  if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
5701
5828
  }
@@ -5878,6 +6005,7 @@ function installCompatInstanceProperties(map) {
5878
6005
  const privateAPIs = {
5879
6006
  $vnode: (i) => i.vnode,
5880
6007
  _self: (i) => i.proxy,
6008
+ _setupProxy: (i) => i.setupState,
5881
6009
  _uid: (i) => i.uid,
5882
6010
  _data: (i) => i.data,
5883
6011
  _isMounted: (i) => i.isMounted,
@@ -6655,7 +6783,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6655
6783
  if (options.el) return vm.$mount(options.el);
6656
6784
  else return vm;
6657
6785
  }
6658
- Vue.version = `2.6.14-compat:3.6.0-rc.11`;
6786
+ Vue.version = `2.6.14-compat:3.6.0-rc.13`;
6659
6787
  Vue.config = singletonApp.config;
6660
6788
  Vue.use = (plugin, ...options) => {
6661
6789
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -7483,7 +7611,7 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
7483
7611
  if (nextKeys.length !== Object.keys(prevProps).length) return true;
7484
7612
  for (let i = 0; i < nextKeys.length; i++) {
7485
7613
  const key = nextKeys[i];
7486
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) return true;
7614
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) return true;
7487
7615
  }
7488
7616
  return false;
7489
7617
  }
@@ -8059,7 +8187,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8059
8187
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8060
8188
  break;
8061
8189
  case VaporSlot:
8062
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
8190
+ if (isVaporInteropEnabled) getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
8063
8191
  break;
8064
8192
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8065
8193
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -8195,7 +8323,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8195
8323
  let vnodeHook;
8196
8324
  parentComponent && toggleRecurse(parentComponent, false);
8197
8325
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8198
- if (n2.ibu) n2.ibu();
8326
+ if (isVaporInteropEnabled && n2.ibu) n2.ibu();
8199
8327
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
8200
8328
  parentComponent && toggleRecurse(parentComponent, true);
8201
8329
  if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -8229,9 +8357,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8229
8357
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
8230
8358
  }
8231
8359
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
8232
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
8360
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || isVaporInteropEnabled && n2.iu) queuePostRenderEffect(() => {
8233
8361
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8234
- n2.iu && n2.iu();
8362
+ isVaporInteropEnabled && n2.iu && n2.iu();
8235
8363
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
8236
8364
  }, void 0, parentSuspense);
8237
8365
  };
@@ -8239,7 +8367,8 @@ function baseCreateRenderer(options, createHydrationFns) {
8239
8367
  for (let i = 0; i < newChildren.length; i++) {
8240
8368
  const oldVNode = oldChildren[i];
8241
8369
  const newVNode = newChildren[i];
8242
- const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
8370
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
8371
+ const container = oldEl && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldEl) : fallbackContainer;
8243
8372
  patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
8244
8373
  }
8245
8374
  };
@@ -8279,7 +8408,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8279
8408
  };
8280
8409
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
8281
8410
  n2.slotScopeIds = slotScopeIds;
8282
- if (n2.type.__vapor) {
8411
+ if ((isVaporInteropEnabled || !!(process.env.NODE_ENV !== "production")) && n2.type.__vapor) {
8283
8412
  if (n1 == null) {
8284
8413
  if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
8285
8414
  else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
@@ -8339,6 +8468,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8339
8468
  if (instance.asyncDep && !instance.asyncResolved) {
8340
8469
  if (!!(process.env.NODE_ENV !== "production")) pushWarningContext(n2);
8341
8470
  n2.el = n1.el;
8471
+ n2.placeholder = n1.placeholder;
8342
8472
  updateComponentPreRender(instance, n2, optimized);
8343
8473
  if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
8344
8474
  return;
@@ -8348,6 +8478,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8348
8478
  }
8349
8479
  } else {
8350
8480
  n2.el = n1.el;
8481
+ n2.placeholder = n1.placeholder;
8351
8482
  instance.vnode = n2;
8352
8483
  }
8353
8484
  };
@@ -8451,7 +8582,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8451
8582
  } else next = vnode;
8452
8583
  if (bu) invokeArrayFns(bu);
8453
8584
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
8454
- if (next.ibu) next.ibu();
8585
+ if (isVaporInteropEnabled && next.ibu) next.ibu();
8455
8586
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
8456
8587
  toggleRecurse(instance, true);
8457
8588
  if (!!(process.env.NODE_ENV !== "production")) startMeasure(instance, `render`);
@@ -8465,9 +8596,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8465
8596
  next.el = nextTree.el;
8466
8597
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
8467
8598
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
8468
- if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
8599
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || isVaporInteropEnabled && next.iu) queuePostRenderEffect(() => {
8469
8600
  vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
8470
- next.iu && next.iu();
8601
+ isVaporInteropEnabled && next.iu && next.iu();
8471
8602
  }, void 0, parentSuspense);
8472
8603
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
8473
8604
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentUpdated(instance);
@@ -8620,7 +8751,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8620
8751
  };
8621
8752
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
8622
8753
  const { el, type, transition, children, shapeFlag } = vnode;
8623
- if (isVaporComponent(type) || type === VaporSlot) {
8754
+ if (isVaporInteropEnabled && (isVaporComponent(type) || type === VaporSlot)) {
8624
8755
  getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
8625
8756
  return;
8626
8757
  }
@@ -8664,11 +8795,11 @@ function baseCreateRenderer(options, createHydrationFns) {
8664
8795
  }
8665
8796
  if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
8666
8797
  if (shapeFlag & 256) {
8667
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
8798
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
8668
8799
  else parentComponent.ctx.deactivate(vnode);
8669
8800
  return;
8670
8801
  }
8671
- if (shapeFlag & 6 && isVaporComponent(type)) {
8802
+ if (isVaporInteropEnabled && shapeFlag & 6 && isVaporComponent(type)) {
8672
8803
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8673
8804
  return;
8674
8805
  }
@@ -8686,7 +8817,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8686
8817
  if (shapeFlag & 64) vnode.type.remove(vnode, parentComponent, parentSuspense, internals, doRemove);
8687
8818
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
8688
8819
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
8689
- if (type === VaporSlot) {
8820
+ if (isVaporInteropEnabled && type === VaporSlot) {
8690
8821
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8691
8822
  return;
8692
8823
  }
@@ -8701,12 +8832,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8701
8832
  };
8702
8833
  const remove = (vnode) => {
8703
8834
  const { type, el, anchor, transition } = vnode;
8704
- if (type === Fragment) {
8705
- if (!!(process.env.NODE_ENV !== "production") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) vnode.children.forEach((child) => {
8706
- if (child.type === Comment) hostRemove(child.el);
8707
- else remove(child);
8708
- });
8709
- else removeFragment(el, anchor);
8835
+ const isFragment = type === Fragment;
8836
+ if (isFragment && !transition) {
8837
+ removeFragment(el, anchor);
8710
8838
  return;
8711
8839
  }
8712
8840
  if (type === Static) {
@@ -8714,8 +8842,21 @@ function baseCreateRenderer(options, createHydrationFns) {
8714
8842
  if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8715
8843
  return;
8716
8844
  }
8717
- if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
8718
- else hostRemove(el);
8845
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
8846
+ const performRemove = () => {
8847
+ if (isFragment) {
8848
+ if (hostParentNode(el)) removeFragment(el, anchor);
8849
+ } else hostRemove(el);
8850
+ };
8851
+ if (transition) {
8852
+ let leavingEl = leavingNode && leavingNode.el;
8853
+ let isElement = !!(leavingNode && leavingNode.shapeFlag & 1);
8854
+ if (isVaporInteropEnabled && isFragment && leavingNode && isVaporComponent(leavingNode.type)) {
8855
+ leavingEl = getVaporInterface(leavingNode.component, leavingNode).getTransitionElement(leavingNode);
8856
+ isElement = !!leavingEl;
8857
+ }
8858
+ performTransitionLeave(leavingEl || el, transition, performRemove, isElement);
8859
+ } else performRemove();
8719
8860
  };
8720
8861
  const removeFragment = (cur, end) => {
8721
8862
  let next;
@@ -8751,7 +8892,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8751
8892
  };
8752
8893
  const getNextHostNode = (vnode) => {
8753
8894
  if (vnode.shapeFlag & 6) {
8754
- if (isVaporComponent(vnode.type)) return hostNextSibling(vnode.anchor);
8895
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) return hostNextSibling(vnode.anchor);
8755
8896
  return getNextHostNode(vnode.component.subTree);
8756
8897
  }
8757
8898
  if (vnode.shapeFlag & 128) return vnode.suspense.next();
@@ -8760,15 +8901,12 @@ function baseCreateRenderer(options, createHydrationFns) {
8760
8901
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
8761
8902
  };
8762
8903
  const render = (vnode, container, namespace) => {
8763
- let instance;
8764
- if (vnode == null) {
8765
- if (container._vnode) {
8766
- unmount(container._vnode, null, null, true);
8767
- instance = container._vnode.component;
8768
- }
8769
- } else patch(container._vnode || null, vnode, container, null, null, null, namespace);
8770
- container._vnode = vnode;
8771
- flushOnAppMount(instance);
8904
+ flushOnAppMount(() => {
8905
+ if (vnode == null) {
8906
+ if (container._vnode) unmount(container._vnode, null, null, true);
8907
+ } else patch(container._vnode || null, vnode, container, null, null, null, namespace);
8908
+ container._vnode = vnode;
8909
+ }, vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid());
8772
8910
  };
8773
8911
  const internals = {
8774
8912
  p: patch,
@@ -8815,7 +8953,7 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
8815
8953
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
8816
8954
  }
8817
8955
  function toggleRecurse({ effect, job, vapor }, allowed) {
8818
- if (!vapor) {
8956
+ if (!isVaporInteropEnabled || !vapor) {
8819
8957
  if (allowed) {
8820
8958
  effect.flags |= 128;
8821
8959
  job.flags |= 2;
@@ -8927,7 +9065,7 @@ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true
8927
9065
  currentParent = currentParent.parent;
8928
9066
  } else break;
8929
9067
  }
8930
- const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
9068
+ const vaporScopeIds = isVaporInteropEnabled && includeVaporRootIds && currentVNode.vaporScopeIds;
8931
9069
  if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
8932
9070
  return inheritedScopeIds;
8933
9071
  }
@@ -8940,8 +9078,13 @@ function resolveAsyncComponentPlaceholder(anchorVnode) {
8940
9078
  //#endregion
8941
9079
  //#region packages/runtime-core/src/components/Suspense.ts
8942
9080
  const isSuspense = (type) => type.__isSuspense;
9081
+ let isSuspenseEnabled = false;
9082
+ function withSuspenseEnabled(value) {
9083
+ isSuspenseEnabled = true;
9084
+ return value;
9085
+ }
8943
9086
  let suspenseId = 0;
8944
- const Suspense = {
9087
+ const Suspense = /*@__PURE__*/ withSuspenseEnabled({
8945
9088
  name: "Suspense",
8946
9089
  __isSuspense: true,
8947
9090
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
@@ -8958,7 +9101,7 @@ const Suspense = {
8958
9101
  },
8959
9102
  hydrate: hydrateSuspense,
8960
9103
  normalize: normalizeSuspenseChildren
8961
- };
9104
+ });
8962
9105
  function triggerEvent(vnode, name) {
8963
9106
  const eventListener = vnode.props && vnode.props[name];
8964
9107
  if (isFunction(eventListener)) eventListener();
@@ -9163,13 +9306,12 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9163
9306
  registerDep(instance, onResolve) {
9164
9307
  const isInPendingSuspense = !!suspense.pendingBranch;
9165
9308
  if (isInPendingSuspense) suspense.deps++;
9166
- const hydratedEl = instance.vnode && instance.vnode.el;
9167
9309
  instance.asyncDep.catch((err) => {
9168
9310
  handleError(err, instance, 0);
9169
9311
  }).then((asyncSetupResult) => {
9170
9312
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
9171
9313
  setCurrentInstance(null, void 0);
9172
- if (hydratedEl && !instance.scope.active) {
9314
+ if (!instance.scope.active) {
9173
9315
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
9174
9316
  return;
9175
9317
  }
@@ -9525,7 +9667,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
9525
9667
  ctx: vnode.ctx,
9526
9668
  ce: vnode.ce,
9527
9669
  vi: vnode.vi,
9528
- vs: cloneVaporSlotMeta(vnode),
9670
+ vs: cloneVaporSlotMeta(vnode, extraProps),
9529
9671
  vb: vnode.vb,
9530
9672
  ibu: vnode.ibu,
9531
9673
  iu: vnode.iu,
@@ -9535,13 +9677,29 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
9535
9677
  defineLegacyVNodeProperties(cloned);
9536
9678
  return cloned;
9537
9679
  }
9538
- function cloneVaporSlotMeta(vnode) {
9680
+ function cloneVaporSlotMeta(vnode, extraProps) {
9539
9681
  const vaporSlot = vnode.vs;
9540
9682
  if (!vaporSlot) return vaporSlot;
9541
9683
  const cloned = {
9542
9684
  slot: vaporSlot.slot,
9543
- outlets: vaporSlot.outlets
9685
+ name: vaporSlot.name,
9686
+ outlets: vaporSlot.outlets,
9687
+ props: vaporSlot.props,
9688
+ attrs: vaporSlot.attrs && vaporSlot.attrs === EMPTY_OBJ ? {} : vaporSlot.attrs,
9689
+ group: vaporSlot.group
9544
9690
  };
9691
+ const attrs = cloned.attrs;
9692
+ if (extraProps && vaporSlot.props) {
9693
+ let extraSlotProps;
9694
+ for (const key in extraProps) if (attrs ? !isReservedProp(key) : key !== "key") {
9695
+ if (!extraSlotProps) extraSlotProps = {};
9696
+ extraSlotProps[key] = extraProps[key];
9697
+ }
9698
+ if (extraSlotProps) {
9699
+ if (attrs) cloned.attrs = mergeProps(attrs, extraSlotProps);
9700
+ else cloned.props = mergeProps(vaporSlot.props, extraSlotProps);
9701
+ }
9702
+ }
9545
9703
  if (vnode.el) {
9546
9704
  cloned.state = vaporSlot.state;
9547
9705
  cloned.ref = vaporSlot.ref;
@@ -9733,6 +9891,9 @@ const useInstanceOption = (key, silent = false) => {
9733
9891
  //#region packages/runtime-core/src/component.ts
9734
9892
  const emptyAppContext = /*@__PURE__*/ createAppContext();
9735
9893
  let uid = 0;
9894
+ function getNextUid() {
9895
+ return uid;
9896
+ }
9736
9897
  /**
9737
9898
  * @internal for vapor
9738
9899
  */
@@ -9826,7 +9987,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
9826
9987
  isSSR && setInSSRSetupState(isSSR);
9827
9988
  const { props, children, vi } = instance.vnode;
9828
9989
  const isStateful = isStatefulComponent(instance);
9829
- if (vi) vi(instance);
9990
+ if (isVaporInteropEnabled && vi) vi(instance);
9830
9991
  else {
9831
9992
  initProps(instance, props, isStateful, isSSR);
9832
9993
  initSlots(instance, children, optimized || isSSR);
@@ -10262,7 +10423,7 @@ function isMemoSame(cached, memo) {
10262
10423
  }
10263
10424
  //#endregion
10264
10425
  //#region packages/runtime-core/src/index.ts
10265
- const version = "3.6.0-rc.11";
10426
+ const version = "3.6.0-rc.13";
10266
10427
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
10267
10428
  /**
10268
10429
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -10719,14 +10880,14 @@ function setVarsOnVNode(vnode, vars) {
10719
10880
  }
10720
10881
  while (vnode.component) {
10721
10882
  const component = vnode.component;
10722
- if (component.vapor) {
10883
+ if (isVaporInteropEnabled && component.vapor) {
10723
10884
  component.appContext.vapor.applyCssVars(vnode, vars);
10724
10885
  return;
10725
10886
  }
10726
10887
  vnode = vnode.component.subTree;
10727
10888
  }
10728
10889
  if (vnode.shapeFlag & 1 && vnode.el) setVarsOnNode(vnode.el, vars);
10729
- else if (vnode.vb) vnode.ctx.appContext.vapor.applyCssVars(vnode, vars);
10890
+ else if (isVaporInteropEnabled && vnode.vb) vnode.ctx.appContext.vapor.applyCssVars(vnode, vars);
10730
10891
  else if (vnode.type === Fragment) vnode.children.forEach((c) => setVarsOnVNode(c, vars));
10731
10892
  else if (vnode.type === Static) {
10732
10893
  let { el, anchor } = vnode;
@@ -10789,7 +10950,7 @@ function patchStyle(el, prev, next) {
10789
10950
  else el.removeAttribute("style");
10790
10951
  }
10791
10952
  if (vShowOriginalDisplay in el) {
10792
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
10953
+ if (!isCssString || prev !== next) el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
10793
10954
  if (el[vShowHidden]) style.display = "none";
10794
10955
  }
10795
10956
  }
@@ -11121,7 +11282,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
11121
11282
  this._resolveProps(def);
11122
11283
  if (this.shadowRoot) this._applyStyles(styles);
11123
11284
  else if (!!(process.env.NODE_ENV !== "production") && styles) warn("Custom element style injection is not supported when using shadowRoot: false");
11124
- this._mountComponent(def);
11285
+ if (this._connected) this._mountComponent(def);
11125
11286
  };
11126
11287
  const asyncDef = this._def.__asyncLoader;
11127
11288
  if (asyncDef) {
@@ -11444,7 +11605,8 @@ function useCssModule(name = "$style") {
11444
11605
  const positionMap = /* @__PURE__ */ new WeakMap();
11445
11606
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11446
11607
  const moveCbKey = Symbol("_moveCb");
11447
- const enterCbKey = Symbol("_enterCb");
11608
+ const enterCbKey$1 = Symbol("_enterCb");
11609
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
11448
11610
  /**
11449
11611
  * Wrap logic that modifies TransitionGroup properties in a function
11450
11612
  * so that it can be annotated as pure
@@ -11454,7 +11616,7 @@ const decorate = (t) => {
11454
11616
  t.__isBuiltIn = true;
11455
11617
  return t;
11456
11618
  };
11457
- const TransitionGroup = /* @__PURE__ */ decorate({
11619
+ const TransitionGroup = /*@__PURE__*/ withTransitionEnabled(/* @__PURE__ */ decorate({
11458
11620
  name: "TransitionGroup",
11459
11621
  props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
11460
11622
  tag: String,
@@ -11463,17 +11625,31 @@ const TransitionGroup = /* @__PURE__ */ decorate({
11463
11625
  setup(props, { slots }) {
11464
11626
  const instance = getCurrentInstance();
11465
11627
  const state = useTransitionState();
11628
+ const group = {
11629
+ props: {},
11630
+ state,
11631
+ instance
11632
+ };
11466
11633
  let prevChildren;
11467
11634
  let children;
11635
+ let origins;
11636
+ let moves;
11637
+ const willMove = () => {
11638
+ if (moves === void 0) moves = prevChildren.length > 0 && hasCSSTransform(prevChildren[0].el, instance.vnode.el, resolveMoveClass(props));
11639
+ return moves;
11640
+ };
11468
11641
  onUpdated(() => {
11469
- if (!prevChildren.length) return;
11470
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
11471
- if (!hasCSSTransform(prevChildren[0].el, instance.vnode.el, moveClass)) {
11642
+ pendingGroups.delete(instance);
11643
+ if (!willMove()) {
11472
11644
  prevChildren = [];
11645
+ origins = void 0;
11473
11646
  return;
11474
11647
  }
11648
+ const moveClass = resolveMoveClass(props);
11475
11649
  prevChildren.forEach((vnode) => callPendingCbs(vnode.el));
11476
- prevChildren.forEach(recordPosition);
11650
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
11651
+ origins = void 0;
11652
+ prevChildren.forEach((c) => recordPosition(c, shift));
11477
11653
  const movedChildren = prevChildren.filter(applyTranslation);
11478
11654
  forceReflow(instance.vnode.el);
11479
11655
  movedChildren.forEach((c) => {
@@ -11484,34 +11660,51 @@ const TransitionGroup = /* @__PURE__ */ decorate({
11484
11660
  });
11485
11661
  return () => {
11486
11662
  const rawProps = /* @__PURE__ */ toRaw(props);
11487
- const cssTransitionProps = resolveTransitionProps(rawProps);
11663
+ const cssTransitionProps = group.props = resolveTransitionProps(rawProps);
11488
11664
  let tag = rawProps.tag || Fragment;
11489
11665
  if (!rawProps.tag && compatUtils.checkCompatEnabled("TRANSITION_GROUP_ROOT", instance.parent)) tag = "span";
11490
11666
  prevChildren = [];
11667
+ moves = void 0;
11491
11668
  if (children) for (let i = 0; i < children.length; i++) {
11492
11669
  const child = children[i];
11493
11670
  if (child.el && child.el instanceof Element && !child.el[vShowHidden]) {
11494
11671
  prevChildren.push(child);
11495
11672
  setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
11496
11673
  positionMap.set(child, getPosition(child.el));
11497
- }
11674
+ } else if (isVaporInteropEnabled && child.vs && child.vb) instance.appContext.vapor.forEachGroupChild(child, (el) => {
11675
+ const row = { el };
11676
+ prevChildren.push(row);
11677
+ positionMap.set(row, getPosition(el));
11678
+ });
11498
11679
  }
11499
11680
  children = slots.default ? getTransitionRawChildren(slots.default()) : [];
11500
11681
  for (let i = 0; i < children.length; i++) {
11501
11682
  const child = children[i];
11502
- if (child.key != null) setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
11683
+ if (isVaporInteropEnabled && child.vs) child.vs.group = group;
11684
+ else if (child.key != null) setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
11503
11685
  else if (!!(process.env.NODE_ENV !== "production") && child.type !== Text) warn(`<TransitionGroup> children must be keyed.`);
11504
11686
  }
11687
+ if (prevChildren.length) {
11688
+ const root = instance.vnode.el;
11689
+ origins = getOrigins(instance, root);
11690
+ pendingGroups.set(instance, {
11691
+ root,
11692
+ willMove
11693
+ });
11694
+ }
11505
11695
  return createVNode(tag, null, children);
11506
11696
  };
11507
11697
  }
11508
- });
11698
+ }));
11509
11699
  function callPendingCbs(el) {
11510
11700
  if (el[moveCbKey]) el[moveCbKey]();
11511
- if (el[enterCbKey]) el[enterCbKey]();
11701
+ if (el[enterCbKey$1]) el[enterCbKey$1]();
11702
+ }
11703
+ function resolveMoveClass(props) {
11704
+ return props.moveClass || `${props.name || "v"}-move`;
11512
11705
  }
11513
- function recordPosition(c) {
11514
- newPositionMap.set(c, getPosition(c.el));
11706
+ function recordPosition(c, shift) {
11707
+ newPositionMap.set(c, getPosition(c.el, shift));
11515
11708
  }
11516
11709
  function applyTranslation(c) {
11517
11710
  if (baseApplyTranslation(positionMap.get(c), newPositionMap.get(c), c.el)) return c;
@@ -11536,13 +11729,36 @@ function baseApplyTranslation(oldPos, newPos, el) {
11536
11729
  }
11537
11730
  return false;
11538
11731
  }
11539
- function getPosition(el) {
11732
+ function getPosition(el, shift) {
11540
11733
  const rect = el.getBoundingClientRect();
11541
11734
  return {
11542
- left: rect.left,
11543
- top: rect.top
11735
+ left: rect.left - (shift ? shift.left : 0),
11736
+ top: rect.top - (shift ? shift.top : 0)
11544
11737
  };
11545
11738
  }
11739
+ function getOrigins(instance, root) {
11740
+ let origins;
11741
+ for (let group = instance.parent; group; group = group.parent) {
11742
+ const pending = pendingGroups.get(group);
11743
+ if (pending) {
11744
+ const item = findItem(pending.root, root);
11745
+ if (item) (origins || (origins = [])).push(extend(getPosition(item), {
11746
+ item,
11747
+ willMove: pending.willMove
11748
+ }));
11749
+ }
11750
+ }
11751
+ return origins;
11752
+ }
11753
+ function findItem(root, node) {
11754
+ const container = root.nodeType === 1 ? root : root.parentNode;
11755
+ while (node && node.parentNode !== container) node = node.parentNode;
11756
+ if (node && node.nodeType === 1) return node;
11757
+ }
11758
+ function getOriginShift(origins, root) {
11759
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
11760
+ return origin && getPosition(origin.item, origin);
11761
+ }
11546
11762
  function hasCSSTransform(el, root, moveClass) {
11547
11763
  const clone = el.cloneNode();
11548
11764
  const _vtc = el[vtcKey];
@@ -11623,7 +11839,7 @@ const vModelTextInit = (el, trim, number, lazy, set) => {
11623
11839
  if (e.target.composing) return;
11624
11840
  (set || el[assignKey])(castValue(el.value, trim, number || el.type === "number"));
11625
11841
  });
11626
- if (trim || number) addEventListener(el, "change", () => {
11842
+ if (trim || number || el.type === "number") addEventListener(el, "change", () => {
11627
11843
  el.value = castValue(el.value, trim, number || el.type === "number");
11628
11844
  });
11629
11845
  if (!lazy) {
@@ -12010,6 +12226,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
12010
12226
  ensureHydrationRenderer: () => ensureHydrationRenderer,
12011
12227
  ensureRenderer: () => ensureRenderer,
12012
12228
  ensureValidVNode: () => ensureValidVNode,
12229
+ enterCbKey: () => enterCbKey,
12013
12230
  expose: () => expose,
12014
12231
  filterModelListeners: () => filterModelListeners,
12015
12232
  filterSingleRoot: () => filterSingleRoot,
@@ -12023,6 +12240,10 @@ var src_exports = /* @__PURE__ */ __exportAll({
12023
12240
  getCurrentWatcher: () => getCurrentWatcher,
12024
12241
  getFunctionalFallthrough: () => getFunctionalFallthrough,
12025
12242
  getInheritedScopeIds: () => getInheritedScopeIds,
12243
+ getNextUid: () => getNextUid,
12244
+ getTransitionGroupOrigins: () => getOrigins,
12245
+ getTransitionGroupPosition: () => getPosition,
12246
+ getTransitionGroupShift: () => getOriginShift,
12026
12247
  getTransitionRawChildren: () => getTransitionRawChildren,
12027
12248
  guardReactiveProps: () => guardReactiveProps,
12028
12249
  h: () => h,
@@ -12049,6 +12270,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
12049
12270
  isHydrating: () => isHydrating,
12050
12271
  isHydratingEnabled: () => isHydratingEnabled,
12051
12272
  isKeepAlive: () => isKeepAlive,
12273
+ isKeepAliveEnabled: () => isKeepAliveEnabled,
12052
12274
  isMapEqual: () => isMapEqual,
12053
12275
  isMemoSame: () => isMemoSame,
12054
12276
  isMismatchAllowed: () => isMismatchAllowed,
@@ -12059,13 +12281,16 @@ var src_exports = /* @__PURE__ */ __exportAll({
12059
12281
  isRuntimeOnly: () => isRuntimeOnly,
12060
12282
  isSetEqual: () => isSetEqual,
12061
12283
  isShallow: () => isShallow,
12284
+ isSuspenseEnabled: () => isSuspenseEnabled,
12062
12285
  isTeleportDeferred: () => isTeleportDeferred,
12063
12286
  isTeleportDisabled: () => isTeleportDisabled,
12064
12287
  isTemplateNode: () => isTemplateNode,
12065
12288
  isTemplateRefKey: () => isTemplateRefKey,
12289
+ isTransitionEnabled: () => isTransitionEnabled,
12066
12290
  isUnchangedResourceProp: () => isUnchangedResourceProp,
12067
12291
  isVNode: () => isVNode,
12068
12292
  isValidHtmlOrSvgAttribute: () => isValidHtmlOrSvgAttribute,
12293
+ isVaporInteropEnabled: () => isVaporInteropEnabled,
12069
12294
  knownTemplateRefs: () => knownTemplateRefs,
12070
12295
  leaveCbKey: () => leaveCbKey,
12071
12296
  logMismatchError: () => logMismatchError,
@@ -12103,6 +12328,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
12103
12328
  patchClass: () => patchClass,
12104
12329
  patchProp: () => patchProp,
12105
12330
  patchStyle: () => patchStyle,
12331
+ pendingTransitionGroups: () => pendingGroups,
12106
12332
  performAsyncHydrate: () => performAsyncHydrate,
12107
12333
  performTransitionEnter: () => performTransitionEnter,
12108
12334
  performTransitionLeave: () => performTransitionLeave,
@@ -12145,6 +12371,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
12145
12371
  setIsHydratingEnabled: () => setIsHydratingEnabled,
12146
12372
  setRef: () => setRef,
12147
12373
  setTransitionHooks: () => setTransitionHooks,
12374
+ setVaporInteropEnabled: () => setVaporInteropEnabled,
12148
12375
  setVarsOnNode: () => setVarsOnNode,
12149
12376
  shallowReactive: () => shallowReactive,
12150
12377
  shallowReadonly: () => shallowReadonly,
@@ -12214,10 +12441,13 @@ var src_exports = /* @__PURE__ */ __exportAll({
12214
12441
  withCtx: () => withCtx,
12215
12442
  withDefaults: () => withDefaults,
12216
12443
  withDirectives: () => withDirectives,
12444
+ withKeepAliveEnabled: () => withKeepAliveEnabled,
12217
12445
  withKeys: () => withKeys,
12218
12446
  withMemo: () => withMemo,
12219
12447
  withModifiers: () => withModifiers,
12220
12448
  withScopeId: () => withScopeId,
12449
+ withSuspenseEnabled: () => withSuspenseEnabled,
12450
+ withTransitionEnabled: () => withTransitionEnabled,
12221
12451
  xlinkNS: () => xlinkNS
12222
12452
  });
12223
12453
  const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
@@ -13436,7 +13666,7 @@ const errorMessages = {
13436
13666
  [41]: `v-model is missing expression.`,
13437
13667
  [42]: `v-model value must be a valid JavaScript member expression.`,
13438
13668
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
13439
- [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.`,
13669
+ [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.\nFor props declared with defineModel(), assign the returned ref to a variable and use v-model on that variable.`,
13440
13670
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
13441
13671
  [46]: `Error parsing JavaScript expression: `,
13442
13672
  [47]: `<KeepAlive> expects exactly one child component.`,
@@ -15269,7 +15499,11 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
15269
15499
  ]),
15270
15500
  createCompoundExpression([
15271
15501
  `if (_cached && _cached.el`,
15272
- ...keyExp ? [` && _cached.key === `, keyExp] : [],
15502
+ ...keyExp ? [
15503
+ ` && _cached.key === (`,
15504
+ keyExp,
15505
+ `)`
15506
+ ] : [],
15273
15507
  ` && ${context.helperString(IS_MEMO_SAME)}(_cached, _memo)) return _cached`
15274
15508
  ]),
15275
15509
  createCompoundExpression([`const _item = `, childBlock]),
@@ -16464,7 +16698,8 @@ const transformTransition = (node, context) => {
16464
16698
  function postTransformTransition(node, onError, hasMultipleChildren = defaultHasMultipleChildren) {
16465
16699
  return () => {
16466
16700
  if (!node.children.length) return;
16467
- if (hasMultipleChildren(node)) onError(createDOMCompilerError(63, {
16701
+ const multipleChildren = hasMultipleChildren(node);
16702
+ if (!!(process.env.NODE_ENV !== "production") && multipleChildren) onError(createDOMCompilerError(63, {
16468
16703
  start: node.children[0].loc.start,
16469
16704
  end: node.children[node.children.length - 1].loc.end,
16470
16705
  source: ""
@@ -16695,7 +16930,11 @@ const validateHtmlNesting = (node, context) => {
16695
16930
  };
16696
16931
  //#endregion
16697
16932
  //#region packages/compiler-dom/src/index.ts
16698
- const DOMNodeTransforms = [transformStyle, ...!!(process.env.NODE_ENV !== "production") ? [transformTransition, validateHtmlNesting] : []];
16933
+ const DOMNodeTransforms = [
16934
+ transformStyle,
16935
+ transformTransition,
16936
+ ...!!(process.env.NODE_ENV !== "production") ? [validateHtmlNesting] : []
16937
+ ];
16699
16938
  const DOMDirectiveTransforms = {
16700
16939
  cloak: noopDirectiveTransform,
16701
16940
  html: transformVHtml,
@@ -16758,4 +16997,4 @@ Vue.compile = compileToFunction;
16758
16997
  var esm_index_default = Vue;
16759
16998
  const configureCompat = Vue.configureCompat;
16760
16999
  //#endregion
16761
- 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, 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, defaultPropGetter, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, expose, filterModelListeners, filterSingleRoot, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getContainerType, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, invokeSlotFallback, invokeVNodeHook, isAsyncWrapper, isEmitListener, isFunctionalFallthroughKey, isHydrating, isHydratingEnabled, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isUnchangedResourceProp, 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, patchClass, patchProp, patchStyle, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, prepareTransitionLeave, prepareTransitionSwitch, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, queuePostRenderEffect, rawVaporSlotKey, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveCssVars, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionChild, resolveTransitionHooks, resolveTransitionProps, restoreCurrentInstance, 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 };
17000
+ 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, 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, defaultPropGetter, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, enterCbKey, expose, filterModelListeners, filterSingleRoot, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getContainerType, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getNextUid, getOrigins as getTransitionGroupOrigins, getPosition as getTransitionGroupPosition, getOriginShift as getTransitionGroupShift, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, invokeSlotFallback, invokeVNodeHook, isAsyncWrapper, isEmitListener, isFunctionalFallthroughKey, isHydrating, isHydratingEnabled, isKeepAlive, isKeepAliveEnabled, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isSuspenseEnabled, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isTransitionEnabled, isUnchangedResourceProp, isVNode, isValidHtmlOrSvgAttribute, isVaporInteropEnabled, 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, patchClass, patchProp, patchStyle, pendingGroups as pendingTransitionGroups, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, prepareTransitionLeave, prepareTransitionSwitch, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, queuePostRenderEffect, rawVaporSlotKey, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveCssVars, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionChild, resolveTransitionHooks, resolveTransitionProps, restoreCurrentInstance, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVaporInteropEnabled, 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, withKeepAliveEnabled, withKeys, withMemo, withModifiers, withScopeId, withSuspenseEnabled, withTransitionEnabled, xlinkNS };