@vue/runtime-dom 3.6.0-rc.12 → 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/runtime-dom v3.6.0-rc.12
2
+ * @vue/runtime-dom v3.6.0-rc.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -1030,7 +1030,7 @@ const decorate = (t) => {
1030
1030
  delete t.props.mode;
1031
1031
  return t;
1032
1032
  };
1033
- const TransitionGroup = /* @__PURE__ */ decorate({
1033
+ const TransitionGroupImpl = /*@__PURE__*/ decorate({
1034
1034
  name: "TransitionGroup",
1035
1035
  props: /*@__PURE__*/ (0, _vue_shared.extend)({}, TransitionPropsValidators, {
1036
1036
  tag: String,
@@ -1039,6 +1039,11 @@ const TransitionGroup = /* @__PURE__ */ decorate({
1039
1039
  setup(props, { slots }) {
1040
1040
  const instance = (0, _vue_runtime_core.getCurrentInstance)();
1041
1041
  const state = (0, _vue_runtime_core.useTransitionState)();
1042
+ const group = {
1043
+ props: {},
1044
+ state,
1045
+ instance
1046
+ };
1042
1047
  let prevChildren;
1043
1048
  let children;
1044
1049
  let origins;
@@ -1069,7 +1074,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
1069
1074
  });
1070
1075
  return () => {
1071
1076
  const rawProps = (0, _vue_runtime_core.toRaw)(props);
1072
- const cssTransitionProps = resolveTransitionProps(rawProps);
1077
+ const cssTransitionProps = group.props = resolveTransitionProps(rawProps);
1073
1078
  let tag = rawProps.tag || _vue_runtime_core.Fragment;
1074
1079
  prevChildren = [];
1075
1080
  moves = void 0;
@@ -1079,12 +1084,17 @@ const TransitionGroup = /* @__PURE__ */ decorate({
1079
1084
  prevChildren.push(child);
1080
1085
  (0, _vue_runtime_core.setTransitionHooks)(child, (0, _vue_runtime_core.resolveTransitionHooks)(child, cssTransitionProps, state, instance));
1081
1086
  positionMap.set(child, getPosition(child.el));
1082
- }
1087
+ } else if (_vue_runtime_core.isVaporInteropEnabled && child.vs && child.vb) instance.appContext.vapor.forEachGroupChild(child, (el) => {
1088
+ const row = { el };
1089
+ prevChildren.push(row);
1090
+ positionMap.set(row, getPosition(el));
1091
+ });
1083
1092
  }
1084
1093
  children = slots.default ? (0, _vue_runtime_core.getTransitionRawChildren)(slots.default()) : [];
1085
1094
  for (let i = 0; i < children.length; i++) {
1086
1095
  const child = children[i];
1087
- if (child.key != null) (0, _vue_runtime_core.setTransitionHooks)(child, (0, _vue_runtime_core.resolveTransitionHooks)(child, cssTransitionProps, state, instance));
1096
+ if (_vue_runtime_core.isVaporInteropEnabled && child.vs) child.vs.group = group;
1097
+ else if (child.key != null) (0, _vue_runtime_core.setTransitionHooks)(child, (0, _vue_runtime_core.resolveTransitionHooks)(child, cssTransitionProps, state, instance));
1088
1098
  else if (child.type !== _vue_runtime_core.Text) (0, _vue_runtime_core.warn)(`<TransitionGroup> children must be keyed.`);
1089
1099
  }
1090
1100
  if (prevChildren.length) {
@@ -1099,6 +1109,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
1099
1109
  };
1100
1110
  }
1101
1111
  });
1112
+ const TransitionGroup = /*@__PURE__*/ (0, _vue_runtime_core.withTransitionEnabled)(TransitionGroupImpl);
1102
1113
  function callPendingCbs(el) {
1103
1114
  if (el[moveCbKey]) el[moveCbKey]();
1104
1115
  if (el[enterCbKey]) el[enterCbKey]();
@@ -1242,7 +1253,7 @@ const vModelTextInit = (el, trim, number, lazy, set) => {
1242
1253
  if (e.target.composing) return;
1243
1254
  (set || el[assignKey])(castValue(el.value, trim, number || el.type === "number"));
1244
1255
  });
1245
- if (trim || number) addEventListener(el, "change", () => {
1256
+ if (trim || number || el.type === "number") addEventListener(el, "change", () => {
1246
1257
  el.value = castValue(el.value, trim, number || el.type === "number");
1247
1258
  });
1248
1259
  if (!lazy) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-dom v3.6.0-rc.12
2
+ * @vue/runtime-dom v3.6.0-rc.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -971,7 +971,7 @@ const decorate = (t) => {
971
971
  delete t.props.mode;
972
972
  return t;
973
973
  };
974
- const TransitionGroup = /* @__PURE__ */ decorate({
974
+ const TransitionGroupImpl = /*@__PURE__*/ decorate({
975
975
  name: "TransitionGroup",
976
976
  props: /*@__PURE__*/ (0, _vue_shared.extend)({}, TransitionPropsValidators, {
977
977
  tag: String,
@@ -980,6 +980,11 @@ const TransitionGroup = /* @__PURE__ */ decorate({
980
980
  setup(props, { slots }) {
981
981
  const instance = (0, _vue_runtime_core.getCurrentInstance)();
982
982
  const state = (0, _vue_runtime_core.useTransitionState)();
983
+ const group = {
984
+ props: {},
985
+ state,
986
+ instance
987
+ };
983
988
  let prevChildren;
984
989
  let children;
985
990
  let origins;
@@ -1010,7 +1015,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
1010
1015
  });
1011
1016
  return () => {
1012
1017
  const rawProps = (0, _vue_runtime_core.toRaw)(props);
1013
- const cssTransitionProps = resolveTransitionProps(rawProps);
1018
+ const cssTransitionProps = group.props = resolveTransitionProps(rawProps);
1014
1019
  let tag = rawProps.tag || _vue_runtime_core.Fragment;
1015
1020
  prevChildren = [];
1016
1021
  moves = void 0;
@@ -1020,12 +1025,17 @@ const TransitionGroup = /* @__PURE__ */ decorate({
1020
1025
  prevChildren.push(child);
1021
1026
  (0, _vue_runtime_core.setTransitionHooks)(child, (0, _vue_runtime_core.resolveTransitionHooks)(child, cssTransitionProps, state, instance));
1022
1027
  positionMap.set(child, getPosition(child.el));
1023
- }
1028
+ } else if (_vue_runtime_core.isVaporInteropEnabled && child.vs && child.vb) instance.appContext.vapor.forEachGroupChild(child, (el) => {
1029
+ const row = { el };
1030
+ prevChildren.push(row);
1031
+ positionMap.set(row, getPosition(el));
1032
+ });
1024
1033
  }
1025
1034
  children = slots.default ? (0, _vue_runtime_core.getTransitionRawChildren)(slots.default()) : [];
1026
1035
  for (let i = 0; i < children.length; i++) {
1027
1036
  const child = children[i];
1028
- if (child.key != null) (0, _vue_runtime_core.setTransitionHooks)(child, (0, _vue_runtime_core.resolveTransitionHooks)(child, cssTransitionProps, state, instance));
1037
+ if (_vue_runtime_core.isVaporInteropEnabled && child.vs) child.vs.group = group;
1038
+ else if (child.key != null) (0, _vue_runtime_core.setTransitionHooks)(child, (0, _vue_runtime_core.resolveTransitionHooks)(child, cssTransitionProps, state, instance));
1029
1039
  }
1030
1040
  if (prevChildren.length) {
1031
1041
  const root = instance.vnode.el;
@@ -1039,6 +1049,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
1039
1049
  };
1040
1050
  }
1041
1051
  });
1052
+ const TransitionGroup = /*@__PURE__*/ (0, _vue_runtime_core.withTransitionEnabled)(TransitionGroupImpl);
1042
1053
  function callPendingCbs(el) {
1043
1054
  if (el[moveCbKey]) el[moveCbKey]();
1044
1055
  if (el[enterCbKey]) el[enterCbKey]();
@@ -1182,7 +1193,7 @@ const vModelTextInit = (el, trim, number, lazy, set) => {
1182
1193
  if (e.target.composing) return;
1183
1194
  (set || el[assignKey])(castValue(el.value, trim, number || el.type === "number"));
1184
1195
  });
1185
- if (trim || number) addEventListener(el, "change", () => {
1196
+ if (trim || number || el.type === "number") addEventListener(el, "change", () => {
1186
1197
  el.value = castValue(el.value, trim, number || el.type === "number");
1187
1198
  });
1188
1199
  if (!lazy) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-dom v3.6.0-rc.12
2
+ * @vue/runtime-dom v3.6.0-rc.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -3211,6 +3211,16 @@ function createPathGetter(ctx, path) {
3211
3211
  };
3212
3212
  }
3213
3213
  //#endregion
3214
+ //#region packages/runtime-core/src/vaporInteropState.ts
3215
+ /**
3216
+ * Set by `vaporInteropPlugin`. Stays false in apps that never import the
3217
+ * plugin, so bundlers drop the vapor-in-vdom branches of the renderer.
3218
+ */
3219
+ let isVaporInteropEnabled = false;
3220
+ function setVaporInteropEnabled() {
3221
+ isVaporInteropEnabled = true;
3222
+ }
3223
+ //#endregion
3214
3224
  //#region packages/runtime-core/src/components/Teleport.ts
3215
3225
  const pendingMounts = /* @__PURE__ */ new WeakMap();
3216
3226
  const TeleportEndKey = Symbol("_vte");
@@ -3470,13 +3480,18 @@ const BaseTransitionPropsValidators = {
3470
3480
  onAfterAppear: TransitionHookValidator,
3471
3481
  onAppearCancelled: TransitionHookValidator
3472
3482
  };
3483
+ let isTransitionEnabled = false;
3484
+ function withTransitionEnabled(value) {
3485
+ isTransitionEnabled = true;
3486
+ return value;
3487
+ }
3473
3488
  function isEmptyTransitionChild(vnode, instance) {
3474
3489
  if (vnode.type === Comment) return true;
3475
3490
  if (vnode.type === Fragment) {
3476
3491
  const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
3477
3492
  return !child || isEmptyTransitionChild(child, instance);
3478
3493
  }
3479
- if (vnode.type === VaporSlot || isVaporComponent(vnode.type)) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
3494
+ if (isVaporInteropEnabled && (vnode.type === VaporSlot || isVaporComponent(vnode.type))) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
3480
3495
  return !!vnode.component && isEmptyTransitionChild(vnode.component.subTree, instance);
3481
3496
  }
3482
3497
  const BaseTransitionImpl = {
@@ -3493,7 +3508,7 @@ const BaseTransitionImpl = {
3493
3508
  const { mode } = rawProps;
3494
3509
  checkTransitionMode(mode);
3495
3510
  return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3496
- if (!(instance.job.flags & 4)) instance.update();
3511
+ if (!(instance.effect.flags & 1024)) instance.update();
3497
3512
  }) : NOOP);
3498
3513
  };
3499
3514
  }
@@ -3513,7 +3528,7 @@ function findNonCommentChild(children) {
3513
3528
  }
3514
3529
  return child;
3515
3530
  }
3516
- const BaseTransition = BaseTransitionImpl;
3531
+ const BaseTransition = /*@__PURE__*/ withTransitionEnabled(BaseTransitionImpl);
3517
3532
  function getLeavingNodesForType(state, vnode) {
3518
3533
  const { leavingNodes } = state;
3519
3534
  let leavingVNodesCache = leavingNodes.get(vnode.type);
@@ -3551,7 +3566,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3551
3566
  return hooks;
3552
3567
  }
3553
3568
  }, props, state, instance);
3554
- if (vnode.type === VaporSlot) extend(hooks, {
3569
+ if (isVaporInteropEnabled && vnode.type === VaporSlot) extend(hooks, {
3555
3570
  __vapor: true,
3556
3571
  props,
3557
3572
  state,
@@ -3728,7 +3743,7 @@ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, pr
3728
3743
  function setTransitionHooks(vnode, hooks) {
3729
3744
  if (vnode.shapeFlag & 6 && vnode.component) {
3730
3745
  vnode.transition = hooks;
3731
- if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
3746
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
3732
3747
  else {
3733
3748
  const subTree = vnode.component.subTree;
3734
3749
  return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
@@ -3767,7 +3782,7 @@ function checkTransitionMode(mode) {
3767
3782
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") warn$1(`invalid <transition> mode: ${mode}`);
3768
3783
  }
3769
3784
  function getTransitionRoot(vnode) {
3770
- if (vnode.component && !isVaporComponent(vnode.type)) return getTransitionRoot(vnode.component.subTree);
3785
+ if (vnode.component && (!isVaporInteropEnabled || !isVaporComponent(vnode.type))) return getTransitionRoot(vnode.component.subTree);
3771
3786
  if (vnode.type === Fragment) {
3772
3787
  const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
3773
3788
  return child ? getTransitionRoot(child) : void 0;
@@ -4027,7 +4042,7 @@ function createHydrationFunctions(rendererInternals) {
4027
4042
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4028
4043
  break;
4029
4044
  case VaporSlot:
4030
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
4045
+ if (isVaporInteropEnabled) nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
4031
4046
  break;
4032
4047
  default: if (shapeFlag & 1) {
4033
4048
  if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
@@ -4159,7 +4174,7 @@ function createHydrationFunctions(rendererInternals) {
4159
4174
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
4160
4175
  const container = parentNode(node);
4161
4176
  const first = nextSibling(node);
4162
- const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4177
+ const next = isVaporInteropEnabled && vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4163
4178
  if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
4164
4179
  else {
4165
4180
  logMismatchError();
@@ -4566,7 +4581,7 @@ function createAsyncComponentContext(source) {
4566
4581
  setPendingRequest: (request) => pendingRequest = request
4567
4582
  };
4568
4583
  }
4569
- const useAsyncComponentState = (delay, timeout, onError, instance = currentInstance) => {
4584
+ const useAsyncComponentState = (delay = 200, timeout, onError, instance = currentInstance) => {
4570
4585
  const loaded = /* @__PURE__ */ ref(false);
4571
4586
  const error = /* @__PURE__ */ ref();
4572
4587
  const delayed = /* @__PURE__ */ ref(!!delay);
@@ -4623,7 +4638,12 @@ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydra
4623
4638
  //#endregion
4624
4639
  //#region packages/runtime-core/src/components/KeepAlive.ts
4625
4640
  const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
4626
- const KeepAlive = {
4641
+ let isKeepAliveEnabled = false;
4642
+ function withKeepAliveEnabled(value) {
4643
+ isKeepAliveEnabled = true;
4644
+ return value;
4645
+ }
4646
+ const KeepAlive = /*@__PURE__*/ withKeepAliveEnabled({
4627
4647
  name: `KeepAlive`,
4628
4648
  __isKeepAlive: true,
4629
4649
  props: {
@@ -4762,7 +4782,7 @@ const KeepAlive = {
4762
4782
  return isSuspense(rawVNode.type) ? rawVNode : vnode;
4763
4783
  };
4764
4784
  }
4765
- };
4785
+ });
4766
4786
  function matches(pattern, name) {
4767
4787
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
4768
4788
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -4994,11 +5014,12 @@ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
4994
5014
  function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
4995
5015
  if (props == null) props = {};
4996
5016
  let slot = slots[name];
4997
- const vaporSlot = slot && slot[rawVaporSlotKey];
5017
+ const vaporSlot = isVaporInteropEnabled && slot && slot[rawVaporSlotKey];
4998
5018
  if (vaporSlot) {
4999
5019
  const ret = (openBlock(), createBlock(VaporSlot, props));
5000
5020
  ret.vs = {
5001
5021
  slot: vaporSlot,
5022
+ name,
5002
5023
  outlets: fallback ? [{
5003
5024
  fallback,
5004
5025
  owner: currentRenderingInstance
@@ -5029,7 +5050,7 @@ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5029
5050
  try {
5030
5051
  const validSlotContent = slot && ensureValidVNode(slot(props));
5031
5052
  let attached = false;
5032
- if (fallback && validSlotContent && currentRenderingInstance) {
5053
+ if (isVaporInteropEnabled && fallback && validSlotContent && currentRenderingInstance) {
5033
5054
  const interop = currentRenderingInstance.appContext.vapor;
5034
5055
  if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
5035
5056
  }
@@ -6713,7 +6734,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6713
6734
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6714
6735
  break;
6715
6736
  case VaporSlot:
6716
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
6737
+ if (isVaporInteropEnabled) getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
6717
6738
  break;
6718
6739
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6719
6740
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -6847,7 +6868,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6847
6868
  let vnodeHook;
6848
6869
  parentComponent && toggleRecurse(parentComponent, false);
6849
6870
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6850
- if (n2.ibu) n2.ibu();
6871
+ if (isVaporInteropEnabled && n2.ibu) n2.ibu();
6851
6872
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6852
6873
  parentComponent && toggleRecurse(parentComponent, true);
6853
6874
  if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -6881,9 +6902,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6881
6902
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
6882
6903
  }
6883
6904
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
6884
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
6905
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || isVaporInteropEnabled && n2.iu) queuePostRenderEffect(() => {
6885
6906
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6886
- n2.iu && n2.iu();
6907
+ isVaporInteropEnabled && n2.iu && n2.iu();
6887
6908
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6888
6909
  }, void 0, parentSuspense);
6889
6910
  };
@@ -7091,7 +7112,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7091
7112
  } else next = vnode;
7092
7113
  if (bu) invokeArrayFns(bu);
7093
7114
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
7094
- if (next.ibu) next.ibu();
7115
+ if (isVaporInteropEnabled && next.ibu) next.ibu();
7095
7116
  toggleRecurse(instance, true);
7096
7117
  startMeasure(instance, `render`);
7097
7118
  const nextTree = renderComponentRoot(instance);
@@ -7104,9 +7125,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7104
7125
  next.el = nextTree.el;
7105
7126
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
7106
7127
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
7107
- if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
7128
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || isVaporInteropEnabled && next.iu) queuePostRenderEffect(() => {
7108
7129
  vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
7109
- next.iu && next.iu();
7130
+ isVaporInteropEnabled && next.iu && next.iu();
7110
7131
  }, void 0, parentSuspense);
7111
7132
  devtoolsComponentUpdated(instance);
7112
7133
  popWarningContext();
@@ -7258,7 +7279,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7258
7279
  };
7259
7280
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
7260
7281
  const { el, type, transition, children, shapeFlag } = vnode;
7261
- if (isVaporComponent(type) || type === VaporSlot) {
7282
+ if (isVaporInteropEnabled && (isVaporComponent(type) || type === VaporSlot)) {
7262
7283
  getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
7263
7284
  return;
7264
7285
  }
@@ -7302,11 +7323,11 @@ function baseCreateRenderer(options, createHydrationFns) {
7302
7323
  }
7303
7324
  if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
7304
7325
  if (shapeFlag & 256) {
7305
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
7326
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
7306
7327
  else parentComponent.ctx.deactivate(vnode);
7307
7328
  return;
7308
7329
  }
7309
- if (shapeFlag & 6 && isVaporComponent(type)) {
7330
+ if (isVaporInteropEnabled && shapeFlag & 6 && isVaporComponent(type)) {
7310
7331
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7311
7332
  return;
7312
7333
  }
@@ -7324,7 +7345,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7324
7345
  if (shapeFlag & 64) vnode.type.remove(vnode, parentComponent, parentSuspense, internals, doRemove);
7325
7346
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
7326
7347
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
7327
- if (type === VaporSlot) {
7348
+ if (isVaporInteropEnabled && type === VaporSlot) {
7328
7349
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7329
7350
  return;
7330
7351
  }
@@ -7358,7 +7379,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7358
7379
  if (transition) {
7359
7380
  let leavingEl = leavingNode && leavingNode.el;
7360
7381
  let isElement = !!(leavingNode && leavingNode.shapeFlag & 1);
7361
- if (isFragment && leavingNode && isVaporComponent(leavingNode.type)) {
7382
+ if (isVaporInteropEnabled && isFragment && leavingNode && isVaporComponent(leavingNode.type)) {
7362
7383
  leavingEl = getVaporInterface(leavingNode.component, leavingNode).getTransitionElement(leavingNode);
7363
7384
  isElement = !!leavingEl;
7364
7385
  }
@@ -7397,7 +7418,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7397
7418
  };
7398
7419
  const getNextHostNode = (vnode) => {
7399
7420
  if (vnode.shapeFlag & 6) {
7400
- if (isVaporComponent(vnode.type)) return hostNextSibling(vnode.anchor);
7421
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) return hostNextSibling(vnode.anchor);
7401
7422
  return getNextHostNode(vnode.component.subTree);
7402
7423
  }
7403
7424
  if (vnode.shapeFlag & 128) return vnode.suspense.next();
@@ -7458,7 +7479,7 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
7458
7479
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
7459
7480
  }
7460
7481
  function toggleRecurse({ effect, job, vapor }, allowed) {
7461
- if (!vapor) {
7482
+ if (!isVaporInteropEnabled || !vapor) {
7462
7483
  if (allowed) {
7463
7484
  effect.flags |= 128;
7464
7485
  job.flags |= 2;
@@ -7570,7 +7591,7 @@ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true
7570
7591
  currentParent = currentParent.parent;
7571
7592
  } else break;
7572
7593
  }
7573
- const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
7594
+ const vaporScopeIds = isVaporInteropEnabled && includeVaporRootIds && currentVNode.vaporScopeIds;
7574
7595
  if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
7575
7596
  return inheritedScopeIds;
7576
7597
  }
@@ -7583,8 +7604,13 @@ function resolveAsyncComponentPlaceholder(anchorVnode) {
7583
7604
  //#endregion
7584
7605
  //#region packages/runtime-core/src/components/Suspense.ts
7585
7606
  const isSuspense = (type) => type.__isSuspense;
7607
+ let isSuspenseEnabled = false;
7608
+ function withSuspenseEnabled(value) {
7609
+ isSuspenseEnabled = true;
7610
+ return value;
7611
+ }
7586
7612
  let suspenseId = 0;
7587
- const Suspense = {
7613
+ const Suspense = /*@__PURE__*/ withSuspenseEnabled({
7588
7614
  name: "Suspense",
7589
7615
  __isSuspense: true,
7590
7616
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
@@ -7601,7 +7627,7 @@ const Suspense = {
7601
7627
  },
7602
7628
  hydrate: hydrateSuspense,
7603
7629
  normalize: normalizeSuspenseChildren
7604
- };
7630
+ });
7605
7631
  function triggerEvent(vnode, name) {
7606
7632
  const eventListener = vnode.props && vnode.props[name];
7607
7633
  if (isFunction(eventListener)) eventListener();
@@ -8136,16 +8162,23 @@ function cloneVaporSlotMeta(vnode, extraProps) {
8136
8162
  if (!vaporSlot) return vaporSlot;
8137
8163
  const cloned = {
8138
8164
  slot: vaporSlot.slot,
8165
+ name: vaporSlot.name,
8139
8166
  outlets: vaporSlot.outlets,
8140
- props: vaporSlot.props
8167
+ props: vaporSlot.props,
8168
+ attrs: vaporSlot.attrs && vaporSlot.attrs === EMPTY_OBJ ? {} : vaporSlot.attrs,
8169
+ group: vaporSlot.group
8141
8170
  };
8142
- if (vaporSlot.props && extraProps) {
8171
+ const attrs = cloned.attrs;
8172
+ if (extraProps && vaporSlot.props) {
8143
8173
  let extraSlotProps;
8144
- for (const key in extraProps) if (key !== "key") {
8174
+ for (const key in extraProps) if (attrs ? !isReservedProp(key) : key !== "key") {
8145
8175
  if (!extraSlotProps) extraSlotProps = {};
8146
8176
  extraSlotProps[key] = extraProps[key];
8147
8177
  }
8148
- if (extraSlotProps) cloned.props = mergeProps(vaporSlot.props, extraSlotProps);
8178
+ if (extraSlotProps) {
8179
+ if (attrs) cloned.attrs = mergeProps(attrs, extraSlotProps);
8180
+ else cloned.props = mergeProps(vaporSlot.props, extraSlotProps);
8181
+ }
8149
8182
  }
8150
8183
  if (vnode.el) {
8151
8184
  cloned.state = vaporSlot.state;
@@ -8418,7 +8451,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
8418
8451
  isSSR && setInSSRSetupState(isSSR);
8419
8452
  const { props, children, vi } = instance.vnode;
8420
8453
  const isStateful = isStatefulComponent(instance);
8421
- if (vi) vi(instance);
8454
+ if (isVaporInteropEnabled && vi) vi(instance);
8422
8455
  else {
8423
8456
  initProps(instance, props, isStateful, isSSR);
8424
8457
  initSlots(instance, children, optimized || isSSR);
@@ -8836,7 +8869,7 @@ function isMemoSame(cached, memo) {
8836
8869
  }
8837
8870
  //#endregion
8838
8871
  //#region packages/runtime-core/src/index.ts
8839
- const version = "3.6.0-rc.12";
8872
+ const version = "3.6.0-rc.13";
8840
8873
  const warn = warn$1;
8841
8874
  /**
8842
8875
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -9249,14 +9282,14 @@ function setVarsOnVNode(vnode, vars) {
9249
9282
  }
9250
9283
  while (vnode.component) {
9251
9284
  const component = vnode.component;
9252
- if (component.vapor) {
9285
+ if (isVaporInteropEnabled && component.vapor) {
9253
9286
  component.appContext.vapor.applyCssVars(vnode, vars);
9254
9287
  return;
9255
9288
  }
9256
9289
  vnode = vnode.component.subTree;
9257
9290
  }
9258
9291
  if (vnode.shapeFlag & 1 && vnode.el) setVarsOnNode(vnode.el, vars);
9259
- else if (vnode.vb) vnode.ctx.appContext.vapor.applyCssVars(vnode, vars);
9292
+ else if (isVaporInteropEnabled && vnode.vb) vnode.ctx.appContext.vapor.applyCssVars(vnode, vars);
9260
9293
  else if (vnode.type === Fragment) vnode.children.forEach((c) => setVarsOnVNode(c, vars));
9261
9294
  else if (vnode.type === Static) {
9262
9295
  let { el, anchor } = vnode;
@@ -9951,7 +9984,7 @@ const decorate = (t) => {
9951
9984
  delete t.props.mode;
9952
9985
  return t;
9953
9986
  };
9954
- const TransitionGroup = /* @__PURE__ */ decorate({
9987
+ const TransitionGroup = /*@__PURE__*/ withTransitionEnabled(/* @__PURE__ */ decorate({
9955
9988
  name: "TransitionGroup",
9956
9989
  props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
9957
9990
  tag: String,
@@ -9960,6 +9993,11 @@ const TransitionGroup = /* @__PURE__ */ decorate({
9960
9993
  setup(props, { slots }) {
9961
9994
  const instance = getCurrentInstance();
9962
9995
  const state = useTransitionState();
9996
+ const group = {
9997
+ props: {},
9998
+ state,
9999
+ instance
10000
+ };
9963
10001
  let prevChildren;
9964
10002
  let children;
9965
10003
  let origins;
@@ -9990,7 +10028,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
9990
10028
  });
9991
10029
  return () => {
9992
10030
  const rawProps = /* @__PURE__ */ toRaw(props);
9993
- const cssTransitionProps = resolveTransitionProps(rawProps);
10031
+ const cssTransitionProps = group.props = resolveTransitionProps(rawProps);
9994
10032
  let tag = rawProps.tag || Fragment;
9995
10033
  prevChildren = [];
9996
10034
  moves = void 0;
@@ -10000,12 +10038,17 @@ const TransitionGroup = /* @__PURE__ */ decorate({
10000
10038
  prevChildren.push(child);
10001
10039
  setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
10002
10040
  positionMap.set(child, getPosition(child.el));
10003
- }
10041
+ } else if (isVaporInteropEnabled && child.vs && child.vb) instance.appContext.vapor.forEachGroupChild(child, (el) => {
10042
+ const row = { el };
10043
+ prevChildren.push(row);
10044
+ positionMap.set(row, getPosition(el));
10045
+ });
10004
10046
  }
10005
10047
  children = slots.default ? getTransitionRawChildren(slots.default()) : [];
10006
10048
  for (let i = 0; i < children.length; i++) {
10007
10049
  const child = children[i];
10008
- if (child.key != null) setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
10050
+ if (isVaporInteropEnabled && child.vs) child.vs.group = group;
10051
+ else if (child.key != null) setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
10009
10052
  else if (child.type !== Text) warn(`<TransitionGroup> children must be keyed.`);
10010
10053
  }
10011
10054
  if (prevChildren.length) {
@@ -10019,7 +10062,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
10019
10062
  return createVNode(tag, null, children);
10020
10063
  };
10021
10064
  }
10022
- });
10065
+ }));
10023
10066
  function callPendingCbs(el) {
10024
10067
  if (el[moveCbKey]) el[moveCbKey]();
10025
10068
  if (el[enterCbKey]) el[enterCbKey]();
@@ -10163,7 +10206,7 @@ const vModelTextInit = (el, trim, number, lazy, set) => {
10163
10206
  if (e.target.composing) return;
10164
10207
  (set || el[assignKey])(castValue(el.value, trim, number || el.type === "number"));
10165
10208
  });
10166
- if (trim || number) addEventListener(el, "change", () => {
10209
+ if (trim || number || el.type === "number") addEventListener(el, "change", () => {
10167
10210
  el.value = castValue(el.value, trim, number || el.type === "number");
10168
10211
  });
10169
10212
  if (!lazy) {
@@ -10534,4 +10577,4 @@ function normalizeContainer(container) {
10534
10577
  */
10535
10578
  const initDirectivesForSSR = NOOP;
10536
10579
  //#endregion
10537
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MoveType, NULL_DYNAMIC_COMPONENT, 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, setIsHydratingEnabled, 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 };
10580
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MoveType, NULL_DYNAMIC_COMPONENT, 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, isKeepAliveEnabled, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isSuspenseEnabled, isTransitionEnabled, isVNode, isVaporInteropEnabled, 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, setIsHydratingEnabled, setTransitionHooks, setVaporInteropEnabled, 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, withKeepAliveEnabled, withKeys, withMemo, withModifiers, withScopeId, withSuspenseEnabled, withTransitionEnabled };