@vue/runtime-core 3.6.0-rc.12 → 3.6.0-rc.14

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,10 +1,10 @@
1
1
  /**
2
- * @vue/runtime-core v3.6.0-rc.12
2
+ * @vue/runtime-core v3.6.0-rc.14
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
6
  import { EffectScope, EffectScope as EffectScope$1, ReactiveEffect, ReactiveEffect as ReactiveEffect$1, TrackOpTypes, TriggerOpTypes, WatcherEffect, computed as computed$1, customRef, customRef as customRef$1, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isProxy as isProxy$1, isReactive, isReactive as isReactive$1, isReadonly, isReadonly as isReadonly$1, isRef, isRef as isRef$1, isShallow, isShallow as isShallow$1, markRaw, markRaw as markRaw$1, onScopeDispose, onWatcherCleanup, proxyRefs, proxyRefs as proxyRefs$1, reactive, reactive as reactive$1, readonly, readonly as readonly$1, ref, ref as ref$1, setActiveSub, setCurrentScope, shallowReactive, shallowReactive as shallowReactive$1, shallowReadArray, shallowReadonly, shallowReadonly as shallowReadonly$1, shallowRef, shallowRef as shallowRef$1, stop, toRaw, toRaw as toRaw$1, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref } from "@vue/reactivity";
7
- import { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, camelize, camelize as camelize$1, capitalize, capitalize as capitalize$1, def, extend, getEscapedCssVarName, getGlobalThis, getModifierPropName, getSequence, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isBuiltInTag, isFunction, isGloballyAllowed, isKnownHtmlAttr, isKnownSvgAttr, isModelListener, isObject, isOn, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isString, isSymbol, looseEqual, looseToNumber, makeMap, normalizeClass, normalizeClass as normalizeClass$1, normalizeCssVarValue, normalizeProps, normalizeStyle, normalizeStyle as normalizeStyle$1, remove, stringifyStyle, toDisplayString, toHandlerKey, toHandlerKey as toHandlerKey$1, toNumber, toRawType } from "@vue/shared";
7
+ import { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, camelize, camelize as camelize$1, capitalize, capitalize as capitalize$1, def, extend, getEscapedCssVarName, getGlobalThis, getModifierPropName, getSequence, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isBuiltInTag, isFunction, isGloballyAllowed, isKnownHtmlAttr, isKnownSvgAttr, isModelListener, isObject, isOn, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isString, isSymbol, isVaporBranchStart, looseEqual, looseToNumber, makeMap, normalizeClass, normalizeClass as normalizeClass$1, normalizeCssVarValue, normalizeProps, normalizeStyle, normalizeStyle as normalizeStyle$1, remove, stringifyStyle, toDisplayString, toHandlerKey, toHandlerKey as toHandlerKey$1, toNumber, toRawType } from "@vue/shared";
8
8
  //#region packages/runtime-core/src/warning.ts
9
9
  const stack = [];
10
10
  /**
@@ -940,6 +940,16 @@ function createPathGetter(ctx, path) {
940
940
  };
941
941
  }
942
942
  //#endregion
943
+ //#region packages/runtime-core/src/vaporInteropState.ts
944
+ /**
945
+ * Set by `vaporInteropPlugin`. Stays false in apps that never import the
946
+ * plugin, so bundlers drop the vapor-in-vdom branches of the renderer.
947
+ */
948
+ let isVaporInteropEnabled = false;
949
+ function setVaporInteropEnabled() {
950
+ isVaporInteropEnabled = true;
951
+ }
952
+ //#endregion
943
953
  //#region packages/runtime-core/src/components/Teleport.ts
944
954
  const pendingMounts = /* @__PURE__ */ new WeakMap();
945
955
  const TeleportEndKey = Symbol("_vte");
@@ -1199,13 +1209,18 @@ const BaseTransitionPropsValidators = {
1199
1209
  onAfterAppear: TransitionHookValidator,
1200
1210
  onAppearCancelled: TransitionHookValidator
1201
1211
  };
1212
+ let isTransitionEnabled = false;
1213
+ function withTransitionEnabled(value) {
1214
+ isTransitionEnabled = true;
1215
+ return value;
1216
+ }
1202
1217
  function isEmptyTransitionChild(vnode, instance) {
1203
1218
  if (vnode.type === Comment) return true;
1204
1219
  if (vnode.type === Fragment) {
1205
1220
  const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
1206
1221
  return !child || isEmptyTransitionChild(child, instance);
1207
1222
  }
1208
- if (vnode.type === VaporSlot || isVaporComponent(vnode.type)) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
1223
+ if (isVaporInteropEnabled && (vnode.type === VaporSlot || isVaporComponent(vnode.type))) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
1209
1224
  return !!vnode.component && isEmptyTransitionChild(vnode.component.subTree, instance);
1210
1225
  }
1211
1226
  const BaseTransitionImpl = {
@@ -1222,7 +1237,7 @@ const BaseTransitionImpl = {
1222
1237
  const { mode } = rawProps;
1223
1238
  checkTransitionMode(mode);
1224
1239
  return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
1225
- if (!(instance.job.flags & 4)) instance.update();
1240
+ if (!(instance.effect.flags & 1024)) instance.update();
1226
1241
  }) : NOOP);
1227
1242
  };
1228
1243
  }
@@ -1243,7 +1258,7 @@ function findNonCommentChild(children) {
1243
1258
  }
1244
1259
  return child;
1245
1260
  }
1246
- const BaseTransition = BaseTransitionImpl;
1261
+ const BaseTransition = /*@__PURE__*/ withTransitionEnabled(BaseTransitionImpl);
1247
1262
  function getLeavingNodesForType(state, vnode) {
1248
1263
  const { leavingNodes } = state;
1249
1264
  let leavingVNodesCache = leavingNodes.get(vnode.type);
@@ -1281,7 +1296,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
1281
1296
  return hooks;
1282
1297
  }
1283
1298
  }, props, state, instance);
1284
- if (vnode.type === VaporSlot) extend(hooks, {
1299
+ if (isVaporInteropEnabled && vnode.type === VaporSlot) extend(hooks, {
1285
1300
  __vapor: true,
1286
1301
  props,
1287
1302
  state,
@@ -1476,7 +1491,7 @@ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, pr
1476
1491
  function setTransitionHooks(vnode, hooks) {
1477
1492
  if (vnode.shapeFlag & 6 && vnode.component) {
1478
1493
  vnode.transition = hooks;
1479
- if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
1494
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
1480
1495
  else {
1481
1496
  const subTree = vnode.component.subTree;
1482
1497
  return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
@@ -1515,7 +1530,7 @@ function checkTransitionMode(mode) {
1515
1530
  if (!!(process.env.NODE_ENV !== "production") && mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") warn$1(`invalid <transition> mode: ${mode}`);
1516
1531
  }
1517
1532
  function getTransitionRoot(vnode) {
1518
- if (vnode.component && !isVaporComponent(vnode.type)) return getTransitionRoot(vnode.component.subTree);
1533
+ if (vnode.component && (!isVaporInteropEnabled || !isVaporComponent(vnode.type))) return getTransitionRoot(vnode.component.subTree);
1519
1534
  if (vnode.type === Fragment) {
1520
1535
  const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
1521
1536
  return child ? getTransitionRoot(child) : void 0;
@@ -1711,6 +1726,8 @@ const getContainerType = (container) => {
1711
1726
  if (isMathMLContainer(container)) return "mathml";
1712
1727
  };
1713
1728
  const isComment = (node) => node.nodeType === 8;
1729
+ /** The data of a comment opening a range a hydration steps over as one. */
1730
+ const isRangeStart = (data) => data === "[" || data === "(" || isVaporBranchStart(data);
1714
1731
  function createHydrationFunctions(rendererInternals) {
1715
1732
  const { mt: mountComponent, p: patch, o: { patchProp, createText, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;
1716
1733
  const hydrate = (vnode, container) => {
@@ -1730,7 +1747,7 @@ function createHydrationFunctions(rendererInternals) {
1730
1747
  };
1731
1748
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
1732
1749
  optimized = optimized || !!vnode.dynamicChildren;
1733
- const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
1750
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(" || isVaporInteropEnabled && isVaporBranchStart(node.data));
1734
1751
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
1735
1752
  const { type, ref, shapeFlag, patchFlag } = vnode;
1736
1753
  let domType = node.nodeType;
@@ -1788,7 +1805,7 @@ function createHydrationFunctions(rendererInternals) {
1788
1805
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
1789
1806
  break;
1790
1807
  case VaporSlot:
1791
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
1808
+ if (isVaporInteropEnabled) nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
1792
1809
  break;
1793
1810
  default: if (shapeFlag & 1) {
1794
1811
  if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
@@ -1799,7 +1816,7 @@ function createHydrationFunctions(rendererInternals) {
1799
1816
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
1800
1817
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
1801
1818
  else nextNode = nextSibling(node);
1802
- if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
1819
+ if ((isVaporInteropEnabled || !!(process.env.NODE_ENV !== "production")) && vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
1803
1820
  else {
1804
1821
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
1805
1822
  const component = vnode.component;
@@ -1924,7 +1941,7 @@ function createHydrationFunctions(rendererInternals) {
1924
1941
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
1925
1942
  const container = parentNode(node);
1926
1943
  const first = nextSibling(node);
1927
- const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
1944
+ const next = isVaporInteropEnabled && vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
1928
1945
  if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
1929
1946
  else {
1930
1947
  logMismatchError();
@@ -1934,7 +1951,7 @@ function createHydrationFunctions(rendererInternals) {
1934
1951
  };
1935
1952
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
1936
1953
  if (!isNodeMismatchAllowed(node, vnode)) {
1937
- (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && (node.data === "[" || node.data === "(") ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
1954
+ (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && isRangeStart(node.data) ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
1938
1955
  logMismatchError();
1939
1956
  }
1940
1957
  vnode.el = null;
@@ -1961,7 +1978,7 @@ function createHydrationFunctions(rendererInternals) {
1961
1978
  while (node) {
1962
1979
  node = nextSibling(node);
1963
1980
  if (node && isComment(node)) {
1964
- if (node.data === open) match++;
1981
+ if (node.data === open || isVaporInteropEnabled && open === "[" && isVaporBranchStart(node.data)) match++;
1965
1982
  if (node.data === close) {
1966
1983
  if (match === 0) return nextSibling(node);
1967
1984
  else match--;
@@ -2229,9 +2246,9 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
2229
2246
  return teardown;
2230
2247
  };
2231
2248
  function forEachElement(node, cb) {
2232
- if (isComment(node) && (node.data === "[" || node.data === "(")) {
2249
+ if (isComment(node) && isRangeStart(node.data)) {
2233
2250
  const open = node.data;
2234
- const close = open === "[" ? "]" : ")";
2251
+ const close = open === "(" ? ")" : "]";
2235
2252
  let depth = 1;
2236
2253
  let next = node.nextSibling;
2237
2254
  while (next) {
@@ -2240,7 +2257,7 @@ function forEachElement(node, cb) {
2240
2257
  } else if (isComment(next)) {
2241
2258
  if (next.data === close) {
2242
2259
  if (--depth === 0) break;
2243
- } else if (next.data === open) depth++;
2260
+ } else if (close === "]" ? next.data === "[" || isVaporBranchStart(next.data) : next.data === open) depth++;
2244
2261
  }
2245
2262
  next = next.nextSibling;
2246
2263
  }
@@ -2343,7 +2360,7 @@ function createAsyncComponentContext(source) {
2343
2360
  setPendingRequest: (request) => pendingRequest = request
2344
2361
  };
2345
2362
  }
2346
- const useAsyncComponentState = (delay, timeout, onError, instance = currentInstance) => {
2363
+ const useAsyncComponentState = (delay = 200, timeout, onError, instance = currentInstance) => {
2347
2364
  const loaded = ref$1(false);
2348
2365
  const error = ref$1();
2349
2366
  const delayed = ref$1(!!delay);
@@ -2400,7 +2417,12 @@ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydra
2400
2417
  //#endregion
2401
2418
  //#region packages/runtime-core/src/components/KeepAlive.ts
2402
2419
  const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
2403
- const KeepAlive = {
2420
+ let isKeepAliveEnabled = false;
2421
+ function withKeepAliveEnabled(value) {
2422
+ isKeepAliveEnabled = true;
2423
+ return value;
2424
+ }
2425
+ const KeepAlive = /*@__PURE__*/ withKeepAliveEnabled({
2404
2426
  name: `KeepAlive`,
2405
2427
  __isKeepAlive: true,
2406
2428
  props: {
@@ -2543,7 +2565,7 @@ const KeepAlive = {
2543
2565
  return isSuspense(rawVNode.type) ? rawVNode : vnode;
2544
2566
  };
2545
2567
  }
2546
- };
2568
+ });
2547
2569
  function matches(pattern, name) {
2548
2570
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
2549
2571
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -2792,11 +2814,12 @@ function invokeSlotFallback(fallback, owner) {
2792
2814
  function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
2793
2815
  if (props == null) props = {};
2794
2816
  let slot = slots[name];
2795
- const vaporSlot = slot && slot[rawVaporSlotKey];
2817
+ const vaporSlot = isVaporInteropEnabled && slot && slot[rawVaporSlotKey];
2796
2818
  if (vaporSlot) {
2797
2819
  const ret = (openBlock(), createBlock(VaporSlot, props));
2798
2820
  ret.vs = {
2799
2821
  slot: vaporSlot,
2822
+ name,
2800
2823
  outlets: fallback ? [{
2801
2824
  fallback,
2802
2825
  owner: currentRenderingInstance
@@ -2827,7 +2850,7 @@ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
2827
2850
  try {
2828
2851
  const validSlotContent = slot && ensureValidVNode(slot(props));
2829
2852
  let attached = false;
2830
- if (fallback && validSlotContent && currentRenderingInstance) {
2853
+ if (isVaporInteropEnabled && fallback && validSlotContent && currentRenderingInstance) {
2831
2854
  const interop = currentRenderingInstance.appContext.vapor;
2832
2855
  if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
2833
2856
  }
@@ -4553,7 +4576,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4553
4576
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4554
4577
  break;
4555
4578
  case VaporSlot:
4556
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
4579
+ if (isVaporInteropEnabled) getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
4557
4580
  break;
4558
4581
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4559
4582
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -4689,7 +4712,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4689
4712
  let vnodeHook;
4690
4713
  parentComponent && toggleRecurse(parentComponent, false);
4691
4714
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
4692
- if (n2.ibu) n2.ibu();
4715
+ if (isVaporInteropEnabled && n2.ibu) n2.ibu();
4693
4716
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
4694
4717
  parentComponent && toggleRecurse(parentComponent, true);
4695
4718
  if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -4723,9 +4746,9 @@ function baseCreateRenderer(options, createHydrationFns) {
4723
4746
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
4724
4747
  }
4725
4748
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
4726
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
4749
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || isVaporInteropEnabled && n2.iu) queuePostRenderEffect(() => {
4727
4750
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
4728
- n2.iu && n2.iu();
4751
+ isVaporInteropEnabled && n2.iu && n2.iu();
4729
4752
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
4730
4753
  }, void 0, parentSuspense);
4731
4754
  };
@@ -4774,7 +4797,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4774
4797
  };
4775
4798
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4776
4799
  n2.slotScopeIds = slotScopeIds;
4777
- if (n2.type.__vapor) {
4800
+ if ((isVaporInteropEnabled || !!(process.env.NODE_ENV !== "production")) && n2.type.__vapor) {
4778
4801
  if (n1 == null) {
4779
4802
  if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
4780
4803
  else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
@@ -4940,7 +4963,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4940
4963
  } else next = vnode;
4941
4964
  if (bu) invokeArrayFns(bu);
4942
4965
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
4943
- if (next.ibu) next.ibu();
4966
+ if (isVaporInteropEnabled && next.ibu) next.ibu();
4944
4967
  toggleRecurse(instance, true);
4945
4968
  if (!!(process.env.NODE_ENV !== "production")) startMeasure(instance, `render`);
4946
4969
  const nextTree = renderComponentRoot(instance);
@@ -4953,9 +4976,9 @@ function baseCreateRenderer(options, createHydrationFns) {
4953
4976
  next.el = nextTree.el;
4954
4977
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
4955
4978
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
4956
- if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
4979
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || isVaporInteropEnabled && next.iu) queuePostRenderEffect(() => {
4957
4980
  vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
4958
- next.iu && next.iu();
4981
+ isVaporInteropEnabled && next.iu && next.iu();
4959
4982
  }, void 0, parentSuspense);
4960
4983
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentUpdated(instance);
4961
4984
  if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
@@ -5107,7 +5130,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5107
5130
  };
5108
5131
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
5109
5132
  const { el, type, transition, children, shapeFlag } = vnode;
5110
- if (isVaporComponent(type) || type === VaporSlot) {
5133
+ if (isVaporInteropEnabled && (isVaporComponent(type) || type === VaporSlot)) {
5111
5134
  getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
5112
5135
  return;
5113
5136
  }
@@ -5151,11 +5174,11 @@ function baseCreateRenderer(options, createHydrationFns) {
5151
5174
  }
5152
5175
  if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
5153
5176
  if (shapeFlag & 256) {
5154
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
5177
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
5155
5178
  else parentComponent.ctx.deactivate(vnode);
5156
5179
  return;
5157
5180
  }
5158
- if (shapeFlag & 6 && isVaporComponent(type)) {
5181
+ if (isVaporInteropEnabled && shapeFlag & 6 && isVaporComponent(type)) {
5159
5182
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
5160
5183
  return;
5161
5184
  }
@@ -5173,7 +5196,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5173
5196
  if (shapeFlag & 64) vnode.type.remove(vnode, parentComponent, parentSuspense, internals, doRemove);
5174
5197
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
5175
5198
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
5176
- if (type === VaporSlot) {
5199
+ if (isVaporInteropEnabled && type === VaporSlot) {
5177
5200
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
5178
5201
  return;
5179
5202
  }
@@ -5207,7 +5230,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5207
5230
  if (transition) {
5208
5231
  let leavingEl = leavingNode && leavingNode.el;
5209
5232
  let isElement = !!(leavingNode && leavingNode.shapeFlag & 1);
5210
- if (isFragment && leavingNode && isVaporComponent(leavingNode.type)) {
5233
+ if (isVaporInteropEnabled && isFragment && leavingNode && isVaporComponent(leavingNode.type)) {
5211
5234
  leavingEl = getVaporInterface(leavingNode.component, leavingNode).getTransitionElement(leavingNode);
5212
5235
  isElement = !!leavingEl;
5213
5236
  }
@@ -5246,7 +5269,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5246
5269
  };
5247
5270
  const getNextHostNode = (vnode) => {
5248
5271
  if (vnode.shapeFlag & 6) {
5249
- if (isVaporComponent(vnode.type)) return hostNextSibling(vnode.anchor);
5272
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) return hostNextSibling(vnode.anchor);
5250
5273
  return getNextHostNode(vnode.component.subTree);
5251
5274
  }
5252
5275
  if (vnode.shapeFlag & 128) return vnode.suspense.next();
@@ -5307,7 +5330,7 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
5307
5330
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
5308
5331
  }
5309
5332
  function toggleRecurse({ effect, job, vapor }, allowed) {
5310
- if (!vapor) {
5333
+ if (!isVaporInteropEnabled || !vapor) {
5311
5334
  if (allowed) {
5312
5335
  effect.flags |= 128;
5313
5336
  job.flags |= 2;
@@ -5419,7 +5442,7 @@ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true
5419
5442
  currentParent = currentParent.parent;
5420
5443
  } else break;
5421
5444
  }
5422
- const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
5445
+ const vaporScopeIds = isVaporInteropEnabled && includeVaporRootIds && currentVNode.vaporScopeIds;
5423
5446
  if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
5424
5447
  return inheritedScopeIds;
5425
5448
  }
@@ -5432,8 +5455,13 @@ function resolveAsyncComponentPlaceholder(anchorVnode) {
5432
5455
  //#endregion
5433
5456
  //#region packages/runtime-core/src/components/Suspense.ts
5434
5457
  const isSuspense = (type) => type.__isSuspense;
5458
+ let isSuspenseEnabled = false;
5459
+ function withSuspenseEnabled(value) {
5460
+ isSuspenseEnabled = true;
5461
+ return value;
5462
+ }
5435
5463
  let suspenseId = 0;
5436
- const Suspense = {
5464
+ const Suspense = /*@__PURE__*/ withSuspenseEnabled({
5437
5465
  name: "Suspense",
5438
5466
  __isSuspense: true,
5439
5467
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
@@ -5450,7 +5478,7 @@ const Suspense = {
5450
5478
  },
5451
5479
  hydrate: hydrateSuspense,
5452
5480
  normalize: normalizeSuspenseChildren
5453
- };
5481
+ });
5454
5482
  function triggerEvent(vnode, name) {
5455
5483
  const eventListener = vnode.props && vnode.props[name];
5456
5484
  if (isFunction(eventListener)) eventListener();
@@ -5987,16 +6015,23 @@ function cloneVaporSlotMeta(vnode, extraProps) {
5987
6015
  if (!vaporSlot) return vaporSlot;
5988
6016
  const cloned = {
5989
6017
  slot: vaporSlot.slot,
6018
+ name: vaporSlot.name,
5990
6019
  outlets: vaporSlot.outlets,
5991
- props: vaporSlot.props
6020
+ props: vaporSlot.props,
6021
+ attrs: vaporSlot.attrs && vaporSlot.attrs === EMPTY_OBJ ? {} : vaporSlot.attrs,
6022
+ group: vaporSlot.group
5992
6023
  };
5993
- if (vaporSlot.props && extraProps) {
6024
+ const attrs = cloned.attrs;
6025
+ if (extraProps && vaporSlot.props) {
5994
6026
  let extraSlotProps;
5995
- for (const key in extraProps) if (key !== "key") {
6027
+ for (const key in extraProps) if (attrs ? !isReservedProp(key) : key !== "key") {
5996
6028
  if (!extraSlotProps) extraSlotProps = {};
5997
6029
  extraSlotProps[key] = extraProps[key];
5998
6030
  }
5999
- if (extraSlotProps) cloned.props = mergeProps(vaporSlot.props, extraSlotProps);
6031
+ if (extraSlotProps) {
6032
+ if (attrs) cloned.attrs = mergeProps(attrs, extraSlotProps);
6033
+ else cloned.props = mergeProps(vaporSlot.props, extraSlotProps);
6034
+ }
6000
6035
  }
6001
6036
  if (vnode.el) {
6002
6037
  cloned.state = vaporSlot.state;
@@ -6285,7 +6320,7 @@ function setupComponent(instance, isSSR = false, optimized = false) {
6285
6320
  isSSR && setInSSRSetupState(isSSR);
6286
6321
  const { props, children, vi } = instance.vnode;
6287
6322
  const isStateful = isStatefulComponent(instance);
6288
- if (vi) vi(instance);
6323
+ if (isVaporInteropEnabled && vi) vi(instance);
6289
6324
  else {
6290
6325
  initProps(instance, props, isStateful, isSSR);
6291
6326
  initSlots(instance, children, optimized || isSSR);
@@ -6717,7 +6752,7 @@ function isMemoSame(cached, memo) {
6717
6752
  }
6718
6753
  //#endregion
6719
6754
  //#region packages/runtime-core/src/index.ts
6720
- const version = "3.6.0-rc.12";
6755
+ const version = "3.6.0-rc.14";
6721
6756
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
6722
6757
  /**
6723
6758
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -6755,4 +6790,4 @@ const resolveFilter = null;
6755
6790
  const compatUtils = null;
6756
6791
  const DeprecationTypes = null;
6757
6792
  //#endregion
6758
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, SchedulerJobFlags, Static, Suspense, Teleport, Text, TrackOpTypes, TriggerOpTypes, VaporSlot, activate, assertNumber, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, defaultPropGetter, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureValidVNode, expose, filterModelListeners, filterSingleRoot, flushOnAppMount, getAttributeMismatch, getComponentName, getContainerType, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getNextUid, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, 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, normalizeClass, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, prepareTransitionLeave, prepareTransitionSwitch, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, queuePostRenderEffect, rawVaporSlotKey, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveCssVars, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionChild, resolveTransitionHooks, restoreCurrentInstance, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, useAsyncComponentState, useAttrs, useId, useInstanceOption, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
6793
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, SchedulerJobFlags, Static, Suspense, Teleport, Text, TrackOpTypes, TriggerOpTypes, VaporSlot, activate, assertNumber, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, defaultPropGetter, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, devtoolsComponentAdded, devtoolsComponentRemoved, effect, effectScope, endMeasure, ensureValidVNode, enterCbKey, expose, filterModelListeners, filterSingleRoot, flushOnAppMount, getAttributeMismatch, getComponentName, getContainerType, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getNextUid, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, 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, normalizeClass, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, prepareTransitionLeave, prepareTransitionSwitch, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, queuePostRenderEffect, rawVaporSlotKey, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveCssVars, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionChild, resolveTransitionHooks, restoreCurrentInstance, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVaporInteropEnabled, shallowReactive, shallowReadonly, shallowRef, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, useAsyncComponentState, useAttrs, useId, useInstanceOption, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeepAliveEnabled, withMemo, withScopeId, withSuspenseEnabled, withTransitionEnabled };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/runtime-core",
3
- "version": "3.6.0-rc.12",
3
+ "version": "3.6.0-rc.14",
4
4
  "description": "@vue/runtime-core",
5
5
  "main": "index.js",
6
6
  "module": "dist/runtime-core.esm-bundler.js",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
48
48
  "dependencies": {
49
- "@vue/shared": "3.6.0-rc.12",
50
- "@vue/reactivity": "3.6.0-rc.12"
49
+ "@vue/shared": "3.6.0-rc.14",
50
+ "@vue/reactivity": "3.6.0-rc.14"
51
51
  }
52
52
  }