@vue/compat 3.4.0-beta.4 → 3.4.0-rc.2

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.
@@ -280,7 +280,7 @@ const stringifySymbol = (v, i = "") => {
280
280
  return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
281
281
  };
282
282
 
283
- function warn$1(msg, ...args) {
283
+ function warn$2(msg, ...args) {
284
284
  console.warn(`[Vue warn] ${msg}`, ...args);
285
285
  }
286
286
 
@@ -320,7 +320,7 @@ class EffectScope {
320
320
  activeEffectScope = currentEffectScope;
321
321
  }
322
322
  } else if (!!(process.env.NODE_ENV !== "production")) {
323
- warn$1(`cannot run an inactive effect scope.`);
323
+ warn$2(`cannot run an inactive effect scope.`);
324
324
  }
325
325
  }
326
326
  /**
@@ -378,7 +378,7 @@ function onScopeDispose(fn) {
378
378
  if (activeEffectScope) {
379
379
  activeEffectScope.cleanups.push(fn);
380
380
  } else if (!!(process.env.NODE_ENV !== "production")) {
381
- warn$1(
381
+ warn$2(
382
382
  `onScopeDispose() is called when there is no active effect scope to be associated with.`
383
383
  );
384
384
  }
@@ -826,7 +826,7 @@ class ReadonlyReactiveHandler extends BaseReactiveHandler {
826
826
  }
827
827
  set(target, key) {
828
828
  if (!!(process.env.NODE_ENV !== "production")) {
829
- warn$1(
829
+ warn$2(
830
830
  `Set operation on key "${String(key)}" failed: target is readonly.`,
831
831
  target
832
832
  );
@@ -835,7 +835,7 @@ class ReadonlyReactiveHandler extends BaseReactiveHandler {
835
835
  }
836
836
  deleteProperty(target, key) {
837
837
  if (!!(process.env.NODE_ENV !== "production")) {
838
- warn$1(
838
+ warn$2(
839
839
  `Delete operation on key "${String(key)}" failed: target is readonly.`,
840
840
  target
841
841
  );
@@ -1493,9 +1493,7 @@ function pushWarningContext(vnode) {
1493
1493
  function popWarningContext() {
1494
1494
  stack.pop();
1495
1495
  }
1496
- function warn(msg, ...args) {
1497
- if (!!!(process.env.NODE_ENV !== "production"))
1498
- return;
1496
+ function warn$1(msg, ...args) {
1499
1497
  pauseTracking();
1500
1498
  const instance = stack.length ? stack[stack.length - 1].component : null;
1501
1499
  const appWarnHandler = instance && instance.appContext.config.warnHandler;
@@ -1598,9 +1596,9 @@ function assertNumber(val, type) {
1598
1596
  if (val === void 0) {
1599
1597
  return;
1600
1598
  } else if (typeof val !== "number") {
1601
- warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1599
+ warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1602
1600
  } else if (isNaN(val)) {
1603
- warn(`${type} is NaN - the duration expression might be incorrect.`);
1601
+ warn$1(`${type} is NaN - the duration expression might be incorrect.`);
1604
1602
  }
1605
1603
  }
1606
1604
 
@@ -1728,7 +1726,7 @@ function logError(err, type, contextVNode, throwInDev = true) {
1728
1726
  if (contextVNode) {
1729
1727
  pushWarningContext(contextVNode);
1730
1728
  }
1731
- warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1729
+ warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1732
1730
  if (contextVNode) {
1733
1731
  popWarningContext();
1734
1732
  }
@@ -2028,22 +2026,22 @@ function tryWrap(fn) {
2028
2026
  };
2029
2027
  }
2030
2028
 
2031
- let devtools;
2029
+ let devtools$1;
2032
2030
  let buffer = [];
2033
2031
  let devtoolsNotInstalled = false;
2034
2032
  function emit$2(event, ...args) {
2035
- if (devtools) {
2036
- devtools.emit(event, ...args);
2033
+ if (devtools$1) {
2034
+ devtools$1.emit(event, ...args);
2037
2035
  } else if (!devtoolsNotInstalled) {
2038
2036
  buffer.push({ event, args });
2039
2037
  }
2040
2038
  }
2041
- function setDevtoolsHook(hook, target) {
2039
+ function setDevtoolsHook$1(hook, target) {
2042
2040
  var _a, _b;
2043
- devtools = hook;
2044
- if (devtools) {
2045
- devtools.enabled = true;
2046
- buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
2041
+ devtools$1 = hook;
2042
+ if (devtools$1) {
2043
+ devtools$1.enabled = true;
2044
+ buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
2047
2045
  buffer = [];
2048
2046
  } else if (
2049
2047
  // handle late devtools injection - only do this if we are in an actual
@@ -2055,10 +2053,10 @@ function setDevtoolsHook(hook, target) {
2055
2053
  ) {
2056
2054
  const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
2057
2055
  replay.push((newHook) => {
2058
- setDevtoolsHook(newHook, target);
2056
+ setDevtoolsHook$1(newHook, target);
2059
2057
  });
2060
2058
  setTimeout(() => {
2061
- if (!devtools) {
2059
+ if (!devtools$1) {
2062
2060
  target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
2063
2061
  devtoolsNotInstalled = true;
2064
2062
  buffer = [];
@@ -2088,8 +2086,8 @@ const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(
2088
2086
  "component:removed" /* COMPONENT_REMOVED */
2089
2087
  );
2090
2088
  const devtoolsComponentRemoved = (component) => {
2091
- if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2092
- !devtools.cleanupBuffer(component)) {
2089
+ if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2090
+ !devtools$1.cleanupBuffer(component)) {
2093
2091
  _devtoolsComponentRemoved(component);
2094
2092
  }
2095
2093
  };
@@ -2391,12 +2389,12 @@ function warnDeprecation(key, instance, ...args) {
2391
2389
  }
2392
2390
  instanceWarned[componentDupKey] = true;
2393
2391
  if (dupKey in warnCount) {
2394
- warn(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);
2392
+ warn$1(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);
2395
2393
  return;
2396
2394
  }
2397
2395
  warnCount[dupKey] = 0;
2398
2396
  const { message, link } = deprecationData[key];
2399
- warn(
2397
+ warn$1(
2400
2398
  `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? `
2401
2399
  Details: ${link}` : ``}`
2402
2400
  );
@@ -2426,19 +2424,19 @@ function validateCompatConfig(config, instance) {
2426
2424
  if (key !== "MODE" && !(key in deprecationData) && !(key in warnedInvalidKeys)) {
2427
2425
  if (key.startsWith("COMPILER_")) {
2428
2426
  if (isRuntimeOnly()) {
2429
- warn(
2427
+ warn$1(
2430
2428
  `Deprecation config "${key}" is compiler-specific and you are running a runtime-only build of Vue. This deprecation should be configured via compiler options in your build setup instead.
2431
2429
  Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2432
2430
  );
2433
2431
  }
2434
2432
  } else {
2435
- warn(`Invalid deprecation config "${key}".`);
2433
+ warn$1(`Invalid deprecation config "${key}".`);
2436
2434
  }
2437
2435
  warnedInvalidKeys[key] = true;
2438
2436
  }
2439
2437
  }
2440
2438
  if (instance && config["OPTIONS_DATA_MERGE"] != null) {
2441
- warn(
2439
+ warn$1(
2442
2440
  `Deprecation config "${"OPTIONS_DATA_MERGE"}" can only be configured globally.`
2443
2441
  );
2444
2442
  }
@@ -2628,7 +2626,7 @@ function emit(instance, event, ...rawArgs) {
2628
2626
  if (emitsOptions) {
2629
2627
  if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
2630
2628
  if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
2631
- warn(
2629
+ warn$1(
2632
2630
  `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
2633
2631
  );
2634
2632
  }
@@ -2637,7 +2635,7 @@ function emit(instance, event, ...rawArgs) {
2637
2635
  if (isFunction(validator)) {
2638
2636
  const isValid = validator(...rawArgs);
2639
2637
  if (!isValid) {
2640
- warn(
2638
+ warn$1(
2641
2639
  `Invalid event arguments: event validation failed for event "${event}".`
2642
2640
  );
2643
2641
  }
@@ -2664,7 +2662,7 @@ function emit(instance, event, ...rawArgs) {
2664
2662
  if (!!(process.env.NODE_ENV !== "production")) {
2665
2663
  const lowerCaseEvent = event.toLowerCase();
2666
2664
  if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
2667
- warn(
2665
+ warn$1(
2668
2666
  `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
2669
2667
  instance,
2670
2668
  instance.type
@@ -2845,7 +2843,7 @@ function renderComponentRoot(instance) {
2845
2843
  const proxyToUse = withProxy || proxy;
2846
2844
  const thisProxy = !!(process.env.NODE_ENV !== "production") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {
2847
2845
  get(target, key, receiver) {
2848
- warn(
2846
+ warn$1(
2849
2847
  `Property '${String(
2850
2848
  key
2851
2849
  )}' was accessed via 'this'. Avoid using 'this' in templates.`
@@ -2926,12 +2924,12 @@ function renderComponentRoot(instance) {
2926
2924
  }
2927
2925
  }
2928
2926
  if (extraAttrs.length) {
2929
- warn(
2927
+ warn$1(
2930
2928
  `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
2931
2929
  );
2932
2930
  }
2933
2931
  if (eventAttrs.length) {
2934
- warn(
2932
+ warn$1(
2935
2933
  `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`
2936
2934
  );
2937
2935
  }
@@ -2956,7 +2954,7 @@ function renderComponentRoot(instance) {
2956
2954
  }
2957
2955
  if (vnode.dirs) {
2958
2956
  if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) {
2959
- warn(
2957
+ warn$1(
2960
2958
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
2961
2959
  );
2962
2960
  }
@@ -2965,7 +2963,7 @@ function renderComponentRoot(instance) {
2965
2963
  }
2966
2964
  if (vnode.transition) {
2967
2965
  if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) {
2968
- warn(
2966
+ warn$1(
2969
2967
  `Component inside <Transition> renders non-element root node that cannot be animated.`
2970
2968
  );
2971
2969
  }
@@ -3162,11 +3160,11 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
3162
3160
  if (!!(process.env.NODE_ENV !== "production") && warnMissing && !res) {
3163
3161
  const extra = type === COMPONENTS ? `
3164
3162
  If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
3165
- warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
3163
+ warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
3166
3164
  }
3167
3165
  return res;
3168
3166
  } else if (!!(process.env.NODE_ENV !== "production")) {
3169
- warn(
3167
+ warn$1(
3170
3168
  `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
3171
3169
  );
3172
3170
  }
@@ -3722,7 +3720,7 @@ function normalizeSuspenseSlot(s) {
3722
3720
  if (isArray(s)) {
3723
3721
  const singleChild = filterSingleRoot(s);
3724
3722
  if (!!(process.env.NODE_ENV !== "production") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
3725
- warn(`<Suspense> slots expect a single root node.`);
3723
+ warn$1(`<Suspense> slots expect a single root node.`);
3726
3724
  }
3727
3725
  s = singleChild;
3728
3726
  }
@@ -3815,7 +3813,7 @@ function watchSyncEffect(effect, options) {
3815
3813
  const INITIAL_WATCHER_VALUE = {};
3816
3814
  function watch(source, cb, options) {
3817
3815
  if (!!(process.env.NODE_ENV !== "production") && !isFunction(cb)) {
3818
- warn(
3816
+ warn$1(
3819
3817
  `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`
3820
3818
  );
3821
3819
  }
@@ -3832,23 +3830,23 @@ function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger
3832
3830
  }
3833
3831
  if (!!(process.env.NODE_ENV !== "production") && !cb) {
3834
3832
  if (immediate !== void 0) {
3835
- warn(
3833
+ warn$1(
3836
3834
  `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
3837
3835
  );
3838
3836
  }
3839
3837
  if (deep !== void 0) {
3840
- warn(
3838
+ warn$1(
3841
3839
  `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
3842
3840
  );
3843
3841
  }
3844
3842
  if (once !== void 0) {
3845
- warn(
3843
+ warn$1(
3846
3844
  `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
3847
3845
  );
3848
3846
  }
3849
3847
  }
3850
3848
  const warnInvalidSource = (s) => {
3851
- warn(
3849
+ warn$1(
3852
3850
  `Invalid watch source: `,
3853
3851
  s,
3854
3852
  `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
@@ -4064,13 +4062,13 @@ function traverse(value, seen) {
4064
4062
 
4065
4063
  function validateDirectiveName(name) {
4066
4064
  if (isBuiltInDirective(name)) {
4067
- warn("Do not use built-in directive ids as custom directive id: " + name);
4065
+ warn$1("Do not use built-in directive ids as custom directive id: " + name);
4068
4066
  }
4069
4067
  }
4070
4068
  function withDirectives(vnode, directives) {
4071
4069
  const internalInstance = currentRenderingInstance;
4072
4070
  if (internalInstance === null) {
4073
- !!(process.env.NODE_ENV !== "production") && warn(`withDirectives can only be used inside render functions.`);
4071
+ !!(process.env.NODE_ENV !== "production") && warn$1(`withDirectives can only be used inside render functions.`);
4074
4072
  return vnode;
4075
4073
  }
4076
4074
  const instance = getExposeProxy(internalInstance) || internalInstance.proxy;
@@ -4180,7 +4178,7 @@ const BaseTransitionImpl = {
4180
4178
  for (const c of children) {
4181
4179
  if (c.type !== Comment) {
4182
4180
  if (!!(process.env.NODE_ENV !== "production") && hasFound) {
4183
- warn(
4181
+ warn$1(
4184
4182
  "<transition> can only be used on a single element or component. Use <transition-group> for lists."
4185
4183
  );
4186
4184
  break;
@@ -4195,7 +4193,7 @@ const BaseTransitionImpl = {
4195
4193
  const rawProps = toRaw(props);
4196
4194
  const { mode } = rawProps;
4197
4195
  if (!!(process.env.NODE_ENV !== "production") && mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
4198
- warn(`invalid <transition> mode: ${mode}`);
4196
+ warn$1(`invalid <transition> mode: ${mode}`);
4199
4197
  }
4200
4198
  if (state.isLeaving) {
4201
4199
  return emptyPlaceholder(child);
@@ -4513,7 +4511,7 @@ function defineAsyncComponent(source) {
4513
4511
  return pendingRequest;
4514
4512
  }
4515
4513
  if (!!(process.env.NODE_ENV !== "production") && !comp) {
4516
- warn(
4514
+ warn$1(
4517
4515
  `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`
4518
4516
  );
4519
4517
  }
@@ -4753,7 +4751,7 @@ const KeepAliveImpl = {
4753
4751
  const rawVNode = children[0];
4754
4752
  if (children.length > 1) {
4755
4753
  if (!!(process.env.NODE_ENV !== "production")) {
4756
- warn(`KeepAlive should contain exactly one component child.`);
4754
+ warn$1(`KeepAlive should contain exactly one component child.`);
4757
4755
  }
4758
4756
  current = null;
4759
4757
  return children;
@@ -4885,7 +4883,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
4885
4883
  return wrappedHook;
4886
4884
  } else if (!!(process.env.NODE_ENV !== "production")) {
4887
4885
  const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
4888
- warn(
4886
+ warn$1(
4889
4887
  `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )
4890
4888
  );
4891
4889
  }
@@ -5207,7 +5205,7 @@ function renderList(source, renderItem, cache, index) {
5207
5205
  }
5208
5206
  } else if (typeof source === "number") {
5209
5207
  if (!!(process.env.NODE_ENV !== "production") && !Number.isInteger(source)) {
5210
- warn(`The v-for range expect an integer value but got ${source}.`);
5208
+ warn$1(`The v-for range expect an integer value but got ${source}.`);
5211
5209
  }
5212
5210
  ret = new Array(source);
5213
5211
  for (let i = 0; i < source; i++) {
@@ -5263,7 +5261,7 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5263
5261
  }
5264
5262
  let slot = slots[name];
5265
5263
  if (!!(process.env.NODE_ENV !== "production") && slot && slot.length > 1) {
5266
- warn(
5264
+ warn$1(
5267
5265
  `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`
5268
5266
  );
5269
5267
  slot = () => [];
@@ -5306,7 +5304,7 @@ function ensureValidVNode(vnodes) {
5306
5304
  function toHandlers(obj, preserveCaseIfNecessary) {
5307
5305
  const ret = {};
5308
5306
  if (!!(process.env.NODE_ENV !== "production") && !isObject(obj)) {
5309
- warn(`v-on with no argument expects an object value.`);
5307
+ warn$1(`v-on with no argument expects an object value.`);
5310
5308
  return ret;
5311
5309
  }
5312
5310
  for (const key in obj) {
@@ -5635,13 +5633,13 @@ const PublicInstanceProxyHandlers = {
5635
5633
  // to infinite warning loop
5636
5634
  key.indexOf("__v") !== 0)) {
5637
5635
  if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {
5638
- warn(
5636
+ warn$1(
5639
5637
  `Property ${JSON.stringify(
5640
5638
  key
5641
5639
  )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
5642
5640
  );
5643
5641
  } else if (instance === currentRenderingInstance) {
5644
- warn(
5642
+ warn$1(
5645
5643
  `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
5646
5644
  );
5647
5645
  }
@@ -5653,17 +5651,17 @@ const PublicInstanceProxyHandlers = {
5653
5651
  setupState[key] = value;
5654
5652
  return true;
5655
5653
  } else if (!!(process.env.NODE_ENV !== "production") && setupState.__isScriptSetup && hasOwn(setupState, key)) {
5656
- warn(`Cannot mutate <script setup> binding "${key}" from Options API.`);
5654
+ warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
5657
5655
  return false;
5658
5656
  } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
5659
5657
  data[key] = value;
5660
5658
  return true;
5661
5659
  } else if (hasOwn(instance.props, key)) {
5662
- !!(process.env.NODE_ENV !== "production") && warn(`Attempting to mutate prop "${key}". Props are readonly.`);
5660
+ !!(process.env.NODE_ENV !== "production") && warn$1(`Attempting to mutate prop "${key}". Props are readonly.`);
5663
5661
  return false;
5664
5662
  }
5665
5663
  if (key[0] === "$" && key.slice(1) in instance) {
5666
- !!(process.env.NODE_ENV !== "production") && warn(
5664
+ !!(process.env.NODE_ENV !== "production") && warn$1(
5667
5665
  `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.`
5668
5666
  );
5669
5667
  return false;
@@ -5697,7 +5695,7 @@ const PublicInstanceProxyHandlers = {
5697
5695
  };
5698
5696
  if (!!(process.env.NODE_ENV !== "production") && true) {
5699
5697
  PublicInstanceProxyHandlers.ownKeys = (target) => {
5700
- warn(
5698
+ warn$1(
5701
5699
  `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
5702
5700
  );
5703
5701
  return Reflect.ownKeys(target);
@@ -5716,7 +5714,7 @@ const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(
5716
5714
  has(_, key) {
5717
5715
  const has = key[0] !== "_" && !isGloballyAllowed(key);
5718
5716
  if (!!(process.env.NODE_ENV !== "production") && !has && PublicInstanceProxyHandlers.has(_, key)) {
5719
- warn(
5717
+ warn$1(
5720
5718
  `Property ${JSON.stringify(
5721
5719
  key
5722
5720
  )} should not start with _ which is a reserved prefix for Vue internals.`
@@ -5766,7 +5764,7 @@ function exposeSetupStateOnRenderContext(instance) {
5766
5764
  Object.keys(toRaw(setupState)).forEach((key) => {
5767
5765
  if (!setupState.__isScriptSetup) {
5768
5766
  if (isReservedPrefix(key[0])) {
5769
- warn(
5767
+ warn$1(
5770
5768
  `setup() return property ${JSON.stringify(
5771
5769
  key
5772
5770
  )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
@@ -5797,7 +5795,7 @@ function deepMergeData(to, from) {
5797
5795
  return to;
5798
5796
  }
5799
5797
 
5800
- const warnRuntimeUsage = (method) => warn(
5798
+ const warnRuntimeUsage = (method) => warn$1(
5801
5799
  `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`
5802
5800
  );
5803
5801
  function defineProps() {
@@ -5848,11 +5846,11 @@ function useAttrs() {
5848
5846
  function useModel(props, name) {
5849
5847
  const i = getCurrentInstance();
5850
5848
  if (!!(process.env.NODE_ENV !== "production") && !i) {
5851
- warn(`useModel() called without active instance.`);
5849
+ warn$1(`useModel() called without active instance.`);
5852
5850
  return ref();
5853
5851
  }
5854
5852
  if (!!(process.env.NODE_ENV !== "production") && !i.propsOptions[0][name]) {
5855
- warn(`useModel() called with prop "${name}" which is not declared.`);
5853
+ warn$1(`useModel() called with prop "${name}" which is not declared.`);
5856
5854
  return ref();
5857
5855
  }
5858
5856
  return customRef((track, trigger) => {
@@ -5883,7 +5881,7 @@ function useModel(props, name) {
5883
5881
  function getContext() {
5884
5882
  const i = getCurrentInstance();
5885
5883
  if (!!(process.env.NODE_ENV !== "production") && !i) {
5886
- warn(`useContext() called without active instance.`);
5884
+ warn$1(`useContext() called without active instance.`);
5887
5885
  }
5888
5886
  return i.setupContext || (i.setupContext = createSetupContext(i));
5889
5887
  }
@@ -5908,7 +5906,7 @@ function mergeDefaults(raw, defaults) {
5908
5906
  } else if (opt === null) {
5909
5907
  opt = props[key] = { default: defaults[key] };
5910
5908
  } else if (!!(process.env.NODE_ENV !== "production")) {
5911
- warn(`props default key "${key}" has no corresponding declaration.`);
5909
+ warn$1(`props default key "${key}" has no corresponding declaration.`);
5912
5910
  }
5913
5911
  if (opt && defaults[`__skip_${key}`]) {
5914
5912
  opt.skipFactory = true;
@@ -5938,7 +5936,7 @@ function createPropsRestProxy(props, excludedKeys) {
5938
5936
  function withAsyncContext(getAwaitable) {
5939
5937
  const ctx = getCurrentInstance();
5940
5938
  if (!!(process.env.NODE_ENV !== "production") && !ctx) {
5941
- warn(
5939
+ warn$1(
5942
5940
  `withAsyncContext called without active current instance. This is likely a bug.`
5943
5941
  );
5944
5942
  }
@@ -5957,7 +5955,7 @@ function createDuplicateChecker() {
5957
5955
  const cache = /* @__PURE__ */ Object.create(null);
5958
5956
  return (type, key) => {
5959
5957
  if (cache[key]) {
5960
- warn(`${type} property "${key}" is already defined in ${cache[key]}.`);
5958
+ warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
5961
5959
  } else {
5962
5960
  cache[key] = type;
5963
5961
  }
@@ -6035,7 +6033,7 @@ function applyOptions(instance) {
6035
6033
  checkDuplicateProperties("Methods" /* METHODS */, key);
6036
6034
  }
6037
6035
  } else if (!!(process.env.NODE_ENV !== "production")) {
6038
- warn(
6036
+ warn$1(
6039
6037
  `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
6040
6038
  );
6041
6039
  }
@@ -6043,18 +6041,18 @@ function applyOptions(instance) {
6043
6041
  }
6044
6042
  if (dataOptions) {
6045
6043
  if (!!(process.env.NODE_ENV !== "production") && !isFunction(dataOptions)) {
6046
- warn(
6044
+ warn$1(
6047
6045
  `The data option must be a function. Plain object usage is no longer supported.`
6048
6046
  );
6049
6047
  }
6050
6048
  const data = dataOptions.call(publicThis, publicThis);
6051
6049
  if (!!(process.env.NODE_ENV !== "production") && isPromise(data)) {
6052
- warn(
6050
+ warn$1(
6053
6051
  `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
6054
6052
  );
6055
6053
  }
6056
6054
  if (!isObject(data)) {
6057
- !!(process.env.NODE_ENV !== "production") && warn(`data() should return an object.`);
6055
+ !!(process.env.NODE_ENV !== "production") && warn$1(`data() should return an object.`);
6058
6056
  } else {
6059
6057
  instance.data = reactive(data);
6060
6058
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -6078,10 +6076,10 @@ function applyOptions(instance) {
6078
6076
  const opt = computedOptions[key];
6079
6077
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
6080
6078
  if (!!(process.env.NODE_ENV !== "production") && get === NOOP) {
6081
- warn(`Computed property "${key}" has no getter.`);
6079
+ warn$1(`Computed property "${key}" has no getter.`);
6082
6080
  }
6083
6081
  const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== "production") ? () => {
6084
- warn(
6082
+ warn$1(
6085
6083
  `Write operation failed: computed property "${key}" is readonly.`
6086
6084
  );
6087
6085
  } : NOOP;
@@ -6218,7 +6216,7 @@ function createWatcher(raw, ctx, publicThis, key) {
6218
6216
  if (isFunction(handler)) {
6219
6217
  watch(getter, handler);
6220
6218
  } else if (!!(process.env.NODE_ENV !== "production")) {
6221
- warn(`Invalid watch handler specified by key "${raw}"`, handler);
6219
+ warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
6222
6220
  }
6223
6221
  } else if (isFunction(raw)) {
6224
6222
  watch(getter, raw.bind(publicThis));
@@ -6230,11 +6228,11 @@ function createWatcher(raw, ctx, publicThis, key) {
6230
6228
  if (isFunction(handler)) {
6231
6229
  watch(getter, handler, raw);
6232
6230
  } else if (!!(process.env.NODE_ENV !== "production")) {
6233
- warn(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6231
+ warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6234
6232
  }
6235
6233
  }
6236
6234
  } else if (!!(process.env.NODE_ENV !== "production")) {
6237
- warn(`Invalid watch option: "${key}"`, raw);
6235
+ warn$1(`Invalid watch option: "${key}"`, raw);
6238
6236
  }
6239
6237
  }
6240
6238
  function resolveMergedOptions(instance) {
@@ -6286,7 +6284,7 @@ function mergeOptions(to, from, strats, asMixin = false) {
6286
6284
  }
6287
6285
  for (const key in from) {
6288
6286
  if (asMixin && key === "expose") {
6289
- !!(process.env.NODE_ENV !== "production") && warn(
6287
+ !!(process.env.NODE_ENV !== "production") && warn$1(
6290
6288
  `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`
6291
6289
  );
6292
6290
  } else {
@@ -6454,7 +6452,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6454
6452
  return vm;
6455
6453
  }
6456
6454
  }
6457
- Vue.version = `2.6.14-compat:${"3.4.0-beta.4"}`;
6455
+ Vue.version = `2.6.14-compat:${"3.4.0-rc.2"}`;
6458
6456
  Vue.config = singletonApp.config;
6459
6457
  Vue.use = (p, ...options) => {
6460
6458
  if (p && isFunction(p.install)) {
@@ -6555,7 +6553,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6555
6553
  }
6556
6554
  };
6557
6555
  const util = {
6558
- warn: !!(process.env.NODE_ENV !== "production") ? warn : NOOP,
6556
+ warn: !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP,
6559
6557
  extend,
6560
6558
  mergeOptions: (parent, child, vm) => mergeOptions(
6561
6559
  parent,
@@ -6593,7 +6591,7 @@ function installFilterMethod(app, context) {
6593
6591
  return context.filters[name];
6594
6592
  }
6595
6593
  if (!!(process.env.NODE_ENV !== "production") && context.filters[name]) {
6596
- warn(`Filter "${name}" has already been registered.`);
6594
+ warn$1(`Filter "${name}" has already been registered.`);
6597
6595
  }
6598
6596
  context.filters[name] = filter;
6599
6597
  return app;
@@ -6684,14 +6682,14 @@ function installCompatMount(app, context, render) {
6684
6682
  vnode.isCompatRoot = true;
6685
6683
  instance.ctx._compat_mount = (selectorOrEl) => {
6686
6684
  if (isMounted) {
6687
- !!(process.env.NODE_ENV !== "production") && warn(`Root instance is already mounted.`);
6685
+ !!(process.env.NODE_ENV !== "production") && warn$1(`Root instance is already mounted.`);
6688
6686
  return;
6689
6687
  }
6690
6688
  let container;
6691
6689
  if (typeof selectorOrEl === "string") {
6692
6690
  const result = document.querySelector(selectorOrEl);
6693
6691
  if (!result) {
6694
- !!(process.env.NODE_ENV !== "production") && warn(
6692
+ !!(process.env.NODE_ENV !== "production") && warn$1(
6695
6693
  `Failed to mount root instance: selector "${selectorOrEl}" returned null.`
6696
6694
  );
6697
6695
  return;
@@ -6856,7 +6854,7 @@ function createAppAPI(render, hydrate) {
6856
6854
  rootComponent = extend({}, rootComponent);
6857
6855
  }
6858
6856
  if (rootProps != null && !isObject(rootProps)) {
6859
- !!(process.env.NODE_ENV !== "production") && warn(`root props passed to app.mount() must be an object.`);
6857
+ !!(process.env.NODE_ENV !== "production") && warn$1(`root props passed to app.mount() must be an object.`);
6860
6858
  rootProps = null;
6861
6859
  }
6862
6860
  const context = createAppContext();
@@ -6875,14 +6873,14 @@ function createAppAPI(render, hydrate) {
6875
6873
  },
6876
6874
  set config(v) {
6877
6875
  if (!!(process.env.NODE_ENV !== "production")) {
6878
- warn(
6876
+ warn$1(
6879
6877
  `app.config cannot be replaced. Modify individual options instead.`
6880
6878
  );
6881
6879
  }
6882
6880
  },
6883
6881
  use(plugin, ...options) {
6884
6882
  if (installedPlugins.has(plugin)) {
6885
- !!(process.env.NODE_ENV !== "production") && warn(`Plugin has already been applied to target app.`);
6883
+ !!(process.env.NODE_ENV !== "production") && warn$1(`Plugin has already been applied to target app.`);
6886
6884
  } else if (plugin && isFunction(plugin.install)) {
6887
6885
  installedPlugins.add(plugin);
6888
6886
  plugin.install(app, ...options);
@@ -6890,7 +6888,7 @@ function createAppAPI(render, hydrate) {
6890
6888
  installedPlugins.add(plugin);
6891
6889
  plugin(app, ...options);
6892
6890
  } else if (!!(process.env.NODE_ENV !== "production")) {
6893
- warn(
6891
+ warn$1(
6894
6892
  `A plugin must either be a function or an object with an "install" function.`
6895
6893
  );
6896
6894
  }
@@ -6901,12 +6899,12 @@ function createAppAPI(render, hydrate) {
6901
6899
  if (!context.mixins.includes(mixin)) {
6902
6900
  context.mixins.push(mixin);
6903
6901
  } else if (!!(process.env.NODE_ENV !== "production")) {
6904
- warn(
6902
+ warn$1(
6905
6903
  "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
6906
6904
  );
6907
6905
  }
6908
6906
  } else if (!!(process.env.NODE_ENV !== "production")) {
6909
- warn("Mixins are only available in builds supporting Options API");
6907
+ warn$1("Mixins are only available in builds supporting Options API");
6910
6908
  }
6911
6909
  return app;
6912
6910
  },
@@ -6918,7 +6916,7 @@ function createAppAPI(render, hydrate) {
6918
6916
  return context.components[name];
6919
6917
  }
6920
6918
  if (!!(process.env.NODE_ENV !== "production") && context.components[name]) {
6921
- warn(`Component "${name}" has already been registered in target app.`);
6919
+ warn$1(`Component "${name}" has already been registered in target app.`);
6922
6920
  }
6923
6921
  context.components[name] = component;
6924
6922
  return app;
@@ -6931,7 +6929,7 @@ function createAppAPI(render, hydrate) {
6931
6929
  return context.directives[name];
6932
6930
  }
6933
6931
  if (!!(process.env.NODE_ENV !== "production") && context.directives[name]) {
6934
- warn(`Directive "${name}" has already been registered in target app.`);
6932
+ warn$1(`Directive "${name}" has already been registered in target app.`);
6935
6933
  }
6936
6934
  context.directives[name] = directive;
6937
6935
  return app;
@@ -6939,7 +6937,7 @@ function createAppAPI(render, hydrate) {
6939
6937
  mount(rootContainer, isHydrate, namespace) {
6940
6938
  if (!isMounted) {
6941
6939
  if (!!(process.env.NODE_ENV !== "production") && rootContainer.__vue_app__) {
6942
- warn(
6940
+ warn$1(
6943
6941
  `There is already an app instance mounted on the host container.
6944
6942
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6945
6943
  );
@@ -6974,7 +6972,7 @@ function createAppAPI(render, hydrate) {
6974
6972
  }
6975
6973
  return getExposeProxy(vnode.component) || vnode.component.proxy;
6976
6974
  } else if (!!(process.env.NODE_ENV !== "production")) {
6977
- warn(
6975
+ warn$1(
6978
6976
  `App has already been mounted.
6979
6977
  If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\``
6980
6978
  );
@@ -6989,12 +6987,12 @@ If you want to remount the same app, move your app creation logic into a factory
6989
6987
  }
6990
6988
  delete app._container.__vue_app__;
6991
6989
  } else if (!!(process.env.NODE_ENV !== "production")) {
6992
- warn(`Cannot unmount an app that is not mounted.`);
6990
+ warn$1(`Cannot unmount an app that is not mounted.`);
6993
6991
  }
6994
6992
  },
6995
6993
  provide(key, value) {
6996
6994
  if (!!(process.env.NODE_ENV !== "production") && key in context.provides) {
6997
- warn(
6995
+ warn$1(
6998
6996
  `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
6999
6997
  );
7000
6998
  }
@@ -7021,7 +7019,7 @@ let currentApp = null;
7021
7019
  function provide(key, value) {
7022
7020
  if (!currentInstance) {
7023
7021
  if (!!(process.env.NODE_ENV !== "production")) {
7024
- warn(`provide() can only be used inside setup().`);
7022
+ warn$1(`provide() can only be used inside setup().`);
7025
7023
  }
7026
7024
  } else {
7027
7025
  let provides = currentInstance.provides;
@@ -7041,10 +7039,10 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
7041
7039
  } else if (arguments.length > 1) {
7042
7040
  return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
7043
7041
  } else if (!!(process.env.NODE_ENV !== "production")) {
7044
- warn(`injection "${String(key)}" not found.`);
7042
+ warn$1(`injection "${String(key)}" not found.`);
7045
7043
  }
7046
7044
  } else if (!!(process.env.NODE_ENV !== "production")) {
7047
- warn(`inject() can only be used inside setup() or functional components.`);
7045
+ warn$1(`inject() can only be used inside setup() or functional components.`);
7048
7046
  }
7049
7047
  }
7050
7048
  function hasInjectionContext() {
@@ -7360,7 +7358,7 @@ function normalizePropsOptions(comp, appContext, asMixin = false) {
7360
7358
  if (isArray(raw)) {
7361
7359
  for (let i = 0; i < raw.length; i++) {
7362
7360
  if (!!(process.env.NODE_ENV !== "production") && !isString(raw[i])) {
7363
- warn(`props must be strings when using array syntax.`, raw[i]);
7361
+ warn$1(`props must be strings when using array syntax.`, raw[i]);
7364
7362
  }
7365
7363
  const normalizedKey = camelize(raw[i]);
7366
7364
  if (validatePropName(normalizedKey)) {
@@ -7369,7 +7367,7 @@ function normalizePropsOptions(comp, appContext, asMixin = false) {
7369
7367
  }
7370
7368
  } else if (raw) {
7371
7369
  if (!!(process.env.NODE_ENV !== "production") && !isObject(raw)) {
7372
- warn(`invalid props options`, raw);
7370
+ warn$1(`invalid props options`, raw);
7373
7371
  }
7374
7372
  for (const key in raw) {
7375
7373
  const normalizedKey = camelize(key);
@@ -7398,7 +7396,7 @@ function validatePropName(key) {
7398
7396
  if (key[0] !== "$") {
7399
7397
  return true;
7400
7398
  } else if (!!(process.env.NODE_ENV !== "production")) {
7401
- warn(`Invalid prop name: "${key}" is a reserved property.`);
7399
+ warn$1(`Invalid prop name: "${key}" is a reserved property.`);
7402
7400
  }
7403
7401
  return false;
7404
7402
  }
@@ -7436,7 +7434,7 @@ function validateProps(rawProps, props, instance) {
7436
7434
  function validateProp(name, value, prop, props, isAbsent) {
7437
7435
  const { type, required, validator, skipCheck } = prop;
7438
7436
  if (required && isAbsent) {
7439
- warn('Missing required prop: "' + name + '"');
7437
+ warn$1('Missing required prop: "' + name + '"');
7440
7438
  return;
7441
7439
  }
7442
7440
  if (value == null && !required) {
@@ -7452,12 +7450,12 @@ function validateProp(name, value, prop, props, isAbsent) {
7452
7450
  isValid = valid;
7453
7451
  }
7454
7452
  if (!isValid) {
7455
- warn(getInvalidTypeMessage(name, value, expectedTypes));
7453
+ warn$1(getInvalidTypeMessage(name, value, expectedTypes));
7456
7454
  return;
7457
7455
  }
7458
7456
  }
7459
7457
  if (validator && !validator(value, props)) {
7460
- warn('Invalid prop: custom validator check failed for prop "' + name + '".');
7458
+ warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
7461
7459
  }
7462
7460
  }
7463
7461
  const isSimpleType = /* @__PURE__ */ makeMap(
@@ -7529,7 +7527,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
7529
7527
  }
7530
7528
  const normalized = withCtx((...args) => {
7531
7529
  if (!!(process.env.NODE_ENV !== "production") && currentInstance) {
7532
- warn(
7530
+ warn$1(
7533
7531
  `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
7534
7532
  );
7535
7533
  }
@@ -7548,7 +7546,7 @@ const normalizeObjectSlots = (rawSlots, slots, instance) => {
7548
7546
  slots[key] = normalizeSlot(key, value, ctx);
7549
7547
  } else if (value != null) {
7550
7548
  if (!!(process.env.NODE_ENV !== "production") && !isCompatEnabled("RENDER_FUNCTION", instance)) {
7551
- warn(
7549
+ warn$1(
7552
7550
  `Non-function value encountered for slot "${key}". Prefer function slots for better performance.`
7553
7551
  );
7554
7552
  }
@@ -7559,7 +7557,7 @@ const normalizeObjectSlots = (rawSlots, slots, instance) => {
7559
7557
  };
7560
7558
  const normalizeVNodeSlots = (instance, children) => {
7561
7559
  if (!!(process.env.NODE_ENV !== "production") && !isKeepAlive(instance.vnode) && !isCompatEnabled("RENDER_FUNCTION", instance)) {
7562
- warn(
7560
+ warn$1(
7563
7561
  `Non-function value encountered for default slot. Prefer function slots for better performance.`
7564
7562
  );
7565
7563
  }
@@ -7643,7 +7641,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7643
7641
  const value = isUnmount ? null : refValue;
7644
7642
  const { i: owner, r: ref } = rawRef;
7645
7643
  if (!!(process.env.NODE_ENV !== "production") && !owner) {
7646
- warn(
7644
+ warn$1(
7647
7645
  `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`
7648
7646
  );
7649
7647
  return;
@@ -7698,7 +7696,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7698
7696
  if (rawRef.k)
7699
7697
  refs[rawRef.k] = value;
7700
7698
  } else if (!!(process.env.NODE_ENV !== "production")) {
7701
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
7699
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7702
7700
  }
7703
7701
  };
7704
7702
  if (value) {
@@ -7708,7 +7706,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7708
7706
  doSet();
7709
7707
  }
7710
7708
  } else if (!!(process.env.NODE_ENV !== "production")) {
7711
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
7709
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7712
7710
  }
7713
7711
  }
7714
7712
  }
@@ -7740,7 +7738,7 @@ function createHydrationFunctions(rendererInternals) {
7740
7738
  } = rendererInternals;
7741
7739
  const hydrate = (vnode, container) => {
7742
7740
  if (!container.hasChildNodes()) {
7743
- (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
7741
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(
7744
7742
  `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
7745
7743
  );
7746
7744
  patch(null, vnode, container);
@@ -7800,7 +7798,7 @@ function createHydrationFunctions(rendererInternals) {
7800
7798
  } else {
7801
7799
  if (node.data !== vnode.children) {
7802
7800
  hasMismatch = true;
7803
- (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
7801
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(
7804
7802
  `Hydration text mismatch in`,
7805
7803
  node.parentNode,
7806
7804
  `
@@ -7935,7 +7933,7 @@ function createHydrationFunctions(rendererInternals) {
7935
7933
  hydrateNode
7936
7934
  );
7937
7935
  } else if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {
7938
- warn("Invalid HostVNode type:", type, `(${typeof type})`);
7936
+ warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
7939
7937
  }
7940
7938
  }
7941
7939
  if (ref != null) {
@@ -7976,7 +7974,7 @@ function createHydrationFunctions(rendererInternals) {
7976
7974
  while (next) {
7977
7975
  hasMismatch = true;
7978
7976
  if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
7979
- warn(
7977
+ warn$1(
7980
7978
  `Hydration children mismatch on`,
7981
7979
  el,
7982
7980
  `
@@ -7991,7 +7989,7 @@ Server rendered element contains more child nodes than client vdom.`
7991
7989
  } else if (shapeFlag & 8) {
7992
7990
  if (el.textContent !== vnode.children) {
7993
7991
  hasMismatch = true;
7994
- (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
7992
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(
7995
7993
  `Hydration text content mismatch on`,
7996
7994
  el,
7997
7995
  `
@@ -8070,7 +8068,7 @@ Server rendered element contains more child nodes than client vdom.`
8070
8068
  } else {
8071
8069
  hasMismatch = true;
8072
8070
  if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
8073
- warn(
8071
+ warn$1(
8074
8072
  `Hydration children mismatch on`,
8075
8073
  container,
8076
8074
  `
@@ -8117,7 +8115,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8117
8115
  };
8118
8116
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
8119
8117
  hasMismatch = true;
8120
- (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
8118
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(
8121
8119
  `Hydration node mismatch:
8122
8120
  - rendered on server:`,
8123
8121
  node,
@@ -8195,9 +8193,9 @@ function propHasMismatch(el, key, clientValue) {
8195
8193
  let actual;
8196
8194
  let expected;
8197
8195
  if (key === "class") {
8198
- actual = el.getAttribute("class");
8199
- expected = normalizeClass(clientValue);
8200
- if (actual !== expected) {
8196
+ actual = toClassSet(el.getAttribute("class") || "");
8197
+ expected = toClassSet(normalizeClass(clientValue));
8198
+ if (!isSetEqual(actual, expected)) {
8201
8199
  mismatchType = mismatchKey = `class`;
8202
8200
  }
8203
8201
  } else if (key === "style") {
@@ -8216,7 +8214,7 @@ function propHasMismatch(el, key, clientValue) {
8216
8214
  }
8217
8215
  if (mismatchType) {
8218
8216
  const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
8219
- warn(
8217
+ warn$1(
8220
8218
  `Hydration ${mismatchType} mismatch on`,
8221
8219
  el,
8222
8220
  `
@@ -8229,6 +8227,20 @@ function propHasMismatch(el, key, clientValue) {
8229
8227
  }
8230
8228
  return false;
8231
8229
  }
8230
+ function toClassSet(str) {
8231
+ return new Set(str.trim().split(/\s+/));
8232
+ }
8233
+ function isSetEqual(a, b) {
8234
+ if (a.size !== b.size) {
8235
+ return false;
8236
+ }
8237
+ for (const s of a) {
8238
+ if (!b.has(s)) {
8239
+ return false;
8240
+ }
8241
+ }
8242
+ return true;
8243
+ }
8232
8244
 
8233
8245
  let supported;
8234
8246
  let perf;
@@ -8308,7 +8320,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8308
8320
  const target = getGlobalThis();
8309
8321
  target.__VUE__ = true;
8310
8322
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) {
8311
- setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
8323
+ setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
8312
8324
  }
8313
8325
  const {
8314
8326
  insert: hostInsert,
@@ -8417,7 +8429,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8417
8429
  internals
8418
8430
  );
8419
8431
  } else if (!!(process.env.NODE_ENV !== "production")) {
8420
- warn("Invalid VNode type:", type, `(${typeof type})`);
8432
+ warn$1("Invalid VNode type:", type, `(${typeof type})`);
8421
8433
  }
8422
8434
  }
8423
8435
  if (ref != null && parentComponent) {
@@ -9422,7 +9434,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9422
9434
  const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
9423
9435
  if (nextChild.key != null) {
9424
9436
  if (!!(process.env.NODE_ENV !== "production") && keyToNewIndexMap.has(nextChild.key)) {
9425
- warn(
9437
+ warn$1(
9426
9438
  `Duplicate keys found during update:`,
9427
9439
  JSON.stringify(nextChild.key),
9428
9440
  `Make sure keys are unique.`
@@ -9860,14 +9872,14 @@ const resolveTarget = (props, select) => {
9860
9872
  const targetSelector = props && props.to;
9861
9873
  if (isString(targetSelector)) {
9862
9874
  if (!select) {
9863
- !!(process.env.NODE_ENV !== "production") && warn(
9875
+ !!(process.env.NODE_ENV !== "production") && warn$1(
9864
9876
  `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`
9865
9877
  );
9866
9878
  return null;
9867
9879
  } else {
9868
9880
  const target = select(targetSelector);
9869
9881
  if (!target) {
9870
- !!(process.env.NODE_ENV !== "production") && warn(
9882
+ !!(process.env.NODE_ENV !== "production") && warn$1(
9871
9883
  `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`
9872
9884
  );
9873
9885
  }
@@ -9875,7 +9887,7 @@ const resolveTarget = (props, select) => {
9875
9887
  }
9876
9888
  } else {
9877
9889
  if (!!(process.env.NODE_ENV !== "production") && !targetSelector && !isTeleportDisabled(props)) {
9878
- warn(`Invalid Teleport target: ${targetSelector}`);
9890
+ warn$1(`Invalid Teleport target: ${targetSelector}`);
9879
9891
  }
9880
9892
  return targetSelector;
9881
9893
  }
@@ -9911,7 +9923,7 @@ const TeleportImpl = {
9911
9923
  namespace = "mathml";
9912
9924
  }
9913
9925
  } else if (!!(process.env.NODE_ENV !== "production") && !disabled) {
9914
- warn("Invalid Teleport target on mount:", target, `(${typeof target})`);
9926
+ warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
9915
9927
  }
9916
9928
  const mount = (container2, anchor2) => {
9917
9929
  if (shapeFlag & 16) {
@@ -9998,7 +10010,7 @@ const TeleportImpl = {
9998
10010
  0
9999
10011
  );
10000
10012
  } else if (!!(process.env.NODE_ENV !== "production")) {
10001
- warn(
10013
+ warn$1(
10002
10014
  "Invalid Teleport target on update:",
10003
10015
  target,
10004
10016
  `(${typeof target})`
@@ -10299,7 +10311,7 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
10299
10311
  vnode.shapeFlag |= isString(children) ? 8 : 16;
10300
10312
  }
10301
10313
  if (!!(process.env.NODE_ENV !== "production") && vnode.key !== vnode.key) {
10302
- warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
10314
+ warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
10303
10315
  }
10304
10316
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
10305
10317
  !isBlockNode && // has current parent block
@@ -10322,7 +10334,7 @@ const createVNode = !!(process.env.NODE_ENV !== "production") ? createVNodeWithA
10322
10334
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
10323
10335
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
10324
10336
  if (!!(process.env.NODE_ENV !== "production") && !type) {
10325
- warn(`Invalid vnode type when creating vnode: ${type}.`);
10337
+ warn$1(`Invalid vnode type when creating vnode: ${type}.`);
10326
10338
  }
10327
10339
  type = Comment;
10328
10340
  }
@@ -10368,7 +10380,7 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
10368
10380
  const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;
10369
10381
  if (!!(process.env.NODE_ENV !== "production") && shapeFlag & 4 && isProxy(type)) {
10370
10382
  type = toRaw(type);
10371
- warn(
10383
+ warn$1(
10372
10384
  `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`,
10373
10385
  `
10374
10386
  Component that was made reactive: `,
@@ -10686,7 +10698,7 @@ const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
10686
10698
  function validateComponentName(name, config) {
10687
10699
  const appIsNativeTag = config.isNativeTag || NO;
10688
10700
  if (isBuiltInTag(name) || appIsNativeTag(name)) {
10689
- warn(
10701
+ warn$1(
10690
10702
  "Do not use built-in or reserved HTML elements as component id: " + name
10691
10703
  );
10692
10704
  }
@@ -10725,7 +10737,7 @@ function setupStatefulComponent(instance, isSSR) {
10725
10737
  }
10726
10738
  }
10727
10739
  if (Component.compilerOptions && isRuntimeOnly()) {
10728
- warn(
10740
+ warn$1(
10729
10741
  `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`
10730
10742
  );
10731
10743
  }
@@ -10760,7 +10772,7 @@ function setupStatefulComponent(instance, isSSR) {
10760
10772
  instance.asyncDep = setupResult;
10761
10773
  if (!!(process.env.NODE_ENV !== "production") && !instance.suspense) {
10762
10774
  const name = (_a = Component.name) != null ? _a : "Anonymous";
10763
- warn(
10775
+ warn$1(
10764
10776
  `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`
10765
10777
  );
10766
10778
  }
@@ -10781,7 +10793,7 @@ function handleSetupResult(instance, setupResult, isSSR) {
10781
10793
  }
10782
10794
  } else if (isObject(setupResult)) {
10783
10795
  if (!!(process.env.NODE_ENV !== "production") && isVNode(setupResult)) {
10784
- warn(
10796
+ warn$1(
10785
10797
  `setup() should not return VNodes directly - return a render function instead.`
10786
10798
  );
10787
10799
  }
@@ -10793,7 +10805,7 @@ function handleSetupResult(instance, setupResult, isSSR) {
10793
10805
  exposeSetupStateOnRenderContext(instance);
10794
10806
  }
10795
10807
  } else if (!!(process.env.NODE_ENV !== "production") && setupResult !== void 0) {
10796
- warn(
10808
+ warn$1(
10797
10809
  `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
10798
10810
  );
10799
10811
  }
@@ -10866,12 +10878,12 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
10866
10878
  }
10867
10879
  if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) {
10868
10880
  if (!compile && Component.template) {
10869
- warn(
10881
+ warn$1(
10870
10882
  `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".` )
10871
10883
  /* should not happen */
10872
10884
  );
10873
10885
  } else {
10874
- warn(`Component is missing template or render function.`);
10886
+ warn$1(`Component is missing template or render function.`);
10875
10887
  }
10876
10888
  }
10877
10889
  }
@@ -10885,11 +10897,11 @@ function getAttrsProxy(instance) {
10885
10897
  return target[key];
10886
10898
  },
10887
10899
  set() {
10888
- warn(`setupContext.attrs is readonly.`);
10900
+ warn$1(`setupContext.attrs is readonly.`);
10889
10901
  return false;
10890
10902
  },
10891
10903
  deleteProperty() {
10892
- warn(`setupContext.attrs is readonly.`);
10904
+ warn$1(`setupContext.attrs is readonly.`);
10893
10905
  return false;
10894
10906
  }
10895
10907
  } : {
@@ -10912,7 +10924,7 @@ function createSetupContext(instance) {
10912
10924
  const expose = (exposed) => {
10913
10925
  if (!!(process.env.NODE_ENV !== "production")) {
10914
10926
  if (instance.exposed) {
10915
- warn(`expose() should be called only once per setup().`);
10927
+ warn$1(`expose() should be called only once per setup().`);
10916
10928
  }
10917
10929
  if (exposed != null) {
10918
10930
  let exposedType = typeof exposed;
@@ -10924,7 +10936,7 @@ function createSetupContext(instance) {
10924
10936
  }
10925
10937
  }
10926
10938
  if (exposedType !== "object") {
10927
- warn(
10939
+ warn$1(
10928
10940
  `expose() should be passed a plain object, received ${exposedType}.`
10929
10941
  );
10930
10942
  }
@@ -11033,7 +11045,7 @@ const useSSRContext = () => {
11033
11045
  {
11034
11046
  const ctx = inject(ssrContextKey);
11035
11047
  if (!ctx) {
11036
- !!(process.env.NODE_ENV !== "production") && warn(
11048
+ !!(process.env.NODE_ENV !== "production") && warn$1(
11037
11049
  `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
11038
11050
  );
11039
11051
  }
@@ -11242,8 +11254,11 @@ function isMemoSame(cached, memo) {
11242
11254
  return true;
11243
11255
  }
11244
11256
 
11245
- const version = "3.4.0-beta.4";
11257
+ const version = "3.4.0-rc.2";
11258
+ const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
11246
11259
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11260
+ const devtools = !!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__ ? devtools$1 : void 0;
11261
+ const setDevtoolsHook = !!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__ ? setDevtoolsHook$1 : NOOP;
11247
11262
  const _ssrUtils = {
11248
11263
  createComponentInstance,
11249
11264
  setupComponent,
@@ -13011,7 +13026,7 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
13011
13026
  defineProps: defineProps,
13012
13027
  defineSSRCustomElement: defineSSRCustomElement,
13013
13028
  defineSlots: defineSlots,
13014
- get devtools () { return devtools; },
13029
+ devtools: devtools,
13015
13030
  effect: effect,
13016
13031
  effectScope: effectScope,
13017
13032
  getCurrentInstance: getCurrentInstance,