@vue/runtime-dom 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.
@@ -283,7 +283,7 @@ var VueRuntimeDOM = (function (exports) {
283
283
  return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
284
284
  };
285
285
 
286
- function warn$1(msg, ...args) {
286
+ function warn$2(msg, ...args) {
287
287
  console.warn(`[Vue warn] ${msg}`, ...args);
288
288
  }
289
289
 
@@ -323,7 +323,7 @@ var VueRuntimeDOM = (function (exports) {
323
323
  activeEffectScope = currentEffectScope;
324
324
  }
325
325
  } else {
326
- warn$1(`cannot run an inactive effect scope.`);
326
+ warn$2(`cannot run an inactive effect scope.`);
327
327
  }
328
328
  }
329
329
  /**
@@ -381,7 +381,7 @@ var VueRuntimeDOM = (function (exports) {
381
381
  if (activeEffectScope) {
382
382
  activeEffectScope.cleanups.push(fn);
383
383
  } else {
384
- warn$1(
384
+ warn$2(
385
385
  `onScopeDispose() is called when there is no active effect scope to be associated with.`
386
386
  );
387
387
  }
@@ -829,7 +829,7 @@ var VueRuntimeDOM = (function (exports) {
829
829
  }
830
830
  set(target, key) {
831
831
  {
832
- warn$1(
832
+ warn$2(
833
833
  `Set operation on key "${String(key)}" failed: target is readonly.`,
834
834
  target
835
835
  );
@@ -838,7 +838,7 @@ var VueRuntimeDOM = (function (exports) {
838
838
  }
839
839
  deleteProperty(target, key) {
840
840
  {
841
- warn$1(
841
+ warn$2(
842
842
  `Delete operation on key "${String(key)}" failed: target is readonly.`,
843
843
  target
844
844
  );
@@ -1496,7 +1496,7 @@ var VueRuntimeDOM = (function (exports) {
1496
1496
  function popWarningContext() {
1497
1497
  stack.pop();
1498
1498
  }
1499
- function warn(msg, ...args) {
1499
+ function warn$1(msg, ...args) {
1500
1500
  pauseTracking();
1501
1501
  const instance = stack.length ? stack[stack.length - 1].component : null;
1502
1502
  const appWarnHandler = instance && instance.appContext.config.warnHandler;
@@ -1597,9 +1597,9 @@ var VueRuntimeDOM = (function (exports) {
1597
1597
  if (val === void 0) {
1598
1598
  return;
1599
1599
  } else if (typeof val !== "number") {
1600
- warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1600
+ warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1601
1601
  } else if (isNaN(val)) {
1602
- warn(`${type} is NaN - the duration expression might be incorrect.`);
1602
+ warn$1(`${type} is NaN - the duration expression might be incorrect.`);
1603
1603
  }
1604
1604
  }
1605
1605
 
@@ -1727,7 +1727,7 @@ var VueRuntimeDOM = (function (exports) {
1727
1727
  if (contextVNode) {
1728
1728
  pushWarningContext(contextVNode);
1729
1729
  }
1730
- warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1730
+ warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1731
1731
  if (contextVNode) {
1732
1732
  popWarningContext();
1733
1733
  }
@@ -2025,22 +2025,22 @@ var VueRuntimeDOM = (function (exports) {
2025
2025
  };
2026
2026
  }
2027
2027
 
2028
- exports.devtools = void 0;
2028
+ let devtools$1;
2029
2029
  let buffer = [];
2030
2030
  let devtoolsNotInstalled = false;
2031
2031
  function emit$1(event, ...args) {
2032
- if (exports.devtools) {
2033
- exports.devtools.emit(event, ...args);
2032
+ if (devtools$1) {
2033
+ devtools$1.emit(event, ...args);
2034
2034
  } else if (!devtoolsNotInstalled) {
2035
2035
  buffer.push({ event, args });
2036
2036
  }
2037
2037
  }
2038
- function setDevtoolsHook(hook, target) {
2038
+ function setDevtoolsHook$1(hook, target) {
2039
2039
  var _a, _b;
2040
- exports.devtools = hook;
2041
- if (exports.devtools) {
2042
- exports.devtools.enabled = true;
2043
- buffer.forEach(({ event, args }) => exports.devtools.emit(event, ...args));
2040
+ devtools$1 = hook;
2041
+ if (devtools$1) {
2042
+ devtools$1.enabled = true;
2043
+ buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
2044
2044
  buffer = [];
2045
2045
  } else if (
2046
2046
  // handle late devtools injection - only do this if we are in an actual
@@ -2052,10 +2052,10 @@ var VueRuntimeDOM = (function (exports) {
2052
2052
  ) {
2053
2053
  const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
2054
2054
  replay.push((newHook) => {
2055
- setDevtoolsHook(newHook, target);
2055
+ setDevtoolsHook$1(newHook, target);
2056
2056
  });
2057
2057
  setTimeout(() => {
2058
- if (!exports.devtools) {
2058
+ if (!devtools$1) {
2059
2059
  target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
2060
2060
  devtoolsNotInstalled = true;
2061
2061
  buffer = [];
@@ -2085,8 +2085,8 @@ var VueRuntimeDOM = (function (exports) {
2085
2085
  "component:removed" /* COMPONENT_REMOVED */
2086
2086
  );
2087
2087
  const devtoolsComponentRemoved = (component) => {
2088
- if (exports.devtools && typeof exports.devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2089
- !exports.devtools.cleanupBuffer(component)) {
2088
+ if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2089
+ !devtools$1.cleanupBuffer(component)) {
2090
2090
  _devtoolsComponentRemoved(component);
2091
2091
  }
2092
2092
  };
@@ -2134,7 +2134,7 @@ var VueRuntimeDOM = (function (exports) {
2134
2134
  if (emitsOptions) {
2135
2135
  if (!(event in emitsOptions) && true) {
2136
2136
  if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
2137
- warn(
2137
+ warn$1(
2138
2138
  `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
2139
2139
  );
2140
2140
  }
@@ -2143,7 +2143,7 @@ var VueRuntimeDOM = (function (exports) {
2143
2143
  if (isFunction(validator)) {
2144
2144
  const isValid = validator(...rawArgs);
2145
2145
  if (!isValid) {
2146
- warn(
2146
+ warn$1(
2147
2147
  `Invalid event arguments: event validation failed for event "${event}".`
2148
2148
  );
2149
2149
  }
@@ -2170,7 +2170,7 @@ var VueRuntimeDOM = (function (exports) {
2170
2170
  {
2171
2171
  const lowerCaseEvent = event.toLowerCase();
2172
2172
  if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
2173
- warn(
2173
+ warn$1(
2174
2174
  `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
2175
2175
  instance,
2176
2176
  instance.type
@@ -2338,7 +2338,7 @@ var VueRuntimeDOM = (function (exports) {
2338
2338
  const proxyToUse = withProxy || proxy;
2339
2339
  const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, {
2340
2340
  get(target, key, receiver) {
2341
- warn(
2341
+ warn$1(
2342
2342
  `Property '${String(
2343
2343
  key
2344
2344
  )}' was accessed via 'this'. Avoid using 'this' in templates.`
@@ -2419,12 +2419,12 @@ var VueRuntimeDOM = (function (exports) {
2419
2419
  }
2420
2420
  }
2421
2421
  if (extraAttrs.length) {
2422
- warn(
2422
+ warn$1(
2423
2423
  `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
2424
2424
  );
2425
2425
  }
2426
2426
  if (eventAttrs.length) {
2427
- warn(
2427
+ warn$1(
2428
2428
  `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.`
2429
2429
  );
2430
2430
  }
@@ -2433,7 +2433,7 @@ var VueRuntimeDOM = (function (exports) {
2433
2433
  }
2434
2434
  if (vnode.dirs) {
2435
2435
  if (!isElementRoot(root)) {
2436
- warn(
2436
+ warn$1(
2437
2437
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
2438
2438
  );
2439
2439
  }
@@ -2442,7 +2442,7 @@ var VueRuntimeDOM = (function (exports) {
2442
2442
  }
2443
2443
  if (vnode.transition) {
2444
2444
  if (!isElementRoot(root)) {
2445
- warn(
2445
+ warn$1(
2446
2446
  `Component inside <Transition> renders non-element root node that cannot be animated.`
2447
2447
  );
2448
2448
  }
@@ -2635,11 +2635,11 @@ var VueRuntimeDOM = (function (exports) {
2635
2635
  if (warnMissing && !res) {
2636
2636
  const extra = type === COMPONENTS ? `
2637
2637
  If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
2638
- warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
2638
+ warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
2639
2639
  }
2640
2640
  return res;
2641
2641
  } else {
2642
- warn(
2642
+ warn$1(
2643
2643
  `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
2644
2644
  );
2645
2645
  }
@@ -3195,7 +3195,7 @@ If this is a native custom element, make sure to exclude it from component resol
3195
3195
  if (isArray(s)) {
3196
3196
  const singleChild = filterSingleRoot(s);
3197
3197
  if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
3198
- warn(`<Suspense> slots expect a single root node.`);
3198
+ warn$1(`<Suspense> slots expect a single root node.`);
3199
3199
  }
3200
3200
  s = singleChild;
3201
3201
  }
@@ -3250,7 +3250,7 @@ If this is a native custom element, make sure to exclude it from component resol
3250
3250
  const INITIAL_WATCHER_VALUE = {};
3251
3251
  function watch(source, cb, options) {
3252
3252
  if (!isFunction(cb)) {
3253
- warn(
3253
+ warn$1(
3254
3254
  `\`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.`
3255
3255
  );
3256
3256
  }
@@ -3267,23 +3267,23 @@ If this is a native custom element, make sure to exclude it from component resol
3267
3267
  }
3268
3268
  if (!cb) {
3269
3269
  if (immediate !== void 0) {
3270
- warn(
3270
+ warn$1(
3271
3271
  `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
3272
3272
  );
3273
3273
  }
3274
3274
  if (deep !== void 0) {
3275
- warn(
3275
+ warn$1(
3276
3276
  `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
3277
3277
  );
3278
3278
  }
3279
3279
  if (once !== void 0) {
3280
- warn(
3280
+ warn$1(
3281
3281
  `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
3282
3282
  );
3283
3283
  }
3284
3284
  }
3285
3285
  const warnInvalidSource = (s) => {
3286
- warn(
3286
+ warn$1(
3287
3287
  `Invalid watch source: `,
3288
3288
  s,
3289
3289
  `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
@@ -3468,13 +3468,13 @@ If this is a native custom element, make sure to exclude it from component resol
3468
3468
 
3469
3469
  function validateDirectiveName(name) {
3470
3470
  if (isBuiltInDirective(name)) {
3471
- warn("Do not use built-in directive ids as custom directive id: " + name);
3471
+ warn$1("Do not use built-in directive ids as custom directive id: " + name);
3472
3472
  }
3473
3473
  }
3474
3474
  function withDirectives(vnode, directives) {
3475
3475
  const internalInstance = currentRenderingInstance;
3476
3476
  if (internalInstance === null) {
3477
- warn(`withDirectives can only be used inside render functions.`);
3477
+ warn$1(`withDirectives can only be used inside render functions.`);
3478
3478
  return vnode;
3479
3479
  }
3480
3480
  const instance = getExposeProxy(internalInstance) || internalInstance.proxy;
@@ -3581,7 +3581,7 @@ If this is a native custom element, make sure to exclude it from component resol
3581
3581
  for (const c of children) {
3582
3582
  if (c.type !== Comment) {
3583
3583
  if (hasFound) {
3584
- warn(
3584
+ warn$1(
3585
3585
  "<transition> can only be used on a single element or component. Use <transition-group> for lists."
3586
3586
  );
3587
3587
  break;
@@ -3594,7 +3594,7 @@ If this is a native custom element, make sure to exclude it from component resol
3594
3594
  const rawProps = toRaw(props);
3595
3595
  const { mode } = rawProps;
3596
3596
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
3597
- warn(`invalid <transition> mode: ${mode}`);
3597
+ warn$1(`invalid <transition> mode: ${mode}`);
3598
3598
  }
3599
3599
  if (state.isLeaving) {
3600
3600
  return emptyPlaceholder(child);
@@ -3909,7 +3909,7 @@ If this is a native custom element, make sure to exclude it from component resol
3909
3909
  return pendingRequest;
3910
3910
  }
3911
3911
  if (!comp) {
3912
- warn(
3912
+ warn$1(
3913
3913
  `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`
3914
3914
  );
3915
3915
  }
@@ -4143,7 +4143,7 @@ If this is a native custom element, make sure to exclude it from component resol
4143
4143
  const rawVNode = children[0];
4144
4144
  if (children.length > 1) {
4145
4145
  {
4146
- warn(`KeepAlive should contain exactly one component child.`);
4146
+ warn$1(`KeepAlive should contain exactly one component child.`);
4147
4147
  }
4148
4148
  current = null;
4149
4149
  return children;
@@ -4272,7 +4272,7 @@ If this is a native custom element, make sure to exclude it from component resol
4272
4272
  return wrappedHook;
4273
4273
  } else {
4274
4274
  const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
4275
- warn(
4275
+ warn$1(
4276
4276
  `${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.` )
4277
4277
  );
4278
4278
  }
@@ -4308,7 +4308,7 @@ If this is a native custom element, make sure to exclude it from component resol
4308
4308
  }
4309
4309
  } else if (typeof source === "number") {
4310
4310
  if (!Number.isInteger(source)) {
4311
- warn(`The v-for range expect an integer value but got ${source}.`);
4311
+ warn$1(`The v-for range expect an integer value but got ${source}.`);
4312
4312
  }
4313
4313
  ret = new Array(source);
4314
4314
  for (let i = 0; i < source; i++) {
@@ -4364,7 +4364,7 @@ If this is a native custom element, make sure to exclude it from component resol
4364
4364
  }
4365
4365
  let slot = slots[name];
4366
4366
  if (slot && slot.length > 1) {
4367
- warn(
4367
+ warn$1(
4368
4368
  `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.`
4369
4369
  );
4370
4370
  slot = () => [];
@@ -4407,7 +4407,7 @@ If this is a native custom element, make sure to exclude it from component resol
4407
4407
  function toHandlers(obj, preserveCaseIfNecessary) {
4408
4408
  const ret = {};
4409
4409
  if (!isObject(obj)) {
4410
- warn(`v-on with no argument expects an object value.`);
4410
+ warn$1(`v-on with no argument expects an object value.`);
4411
4411
  return ret;
4412
4412
  }
4413
4413
  for (const key in obj) {
@@ -4517,13 +4517,13 @@ If this is a native custom element, make sure to exclude it from component resol
4517
4517
  // to infinite warning loop
4518
4518
  key.indexOf("__v") !== 0)) {
4519
4519
  if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {
4520
- warn(
4520
+ warn$1(
4521
4521
  `Property ${JSON.stringify(
4522
4522
  key
4523
4523
  )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
4524
4524
  );
4525
4525
  } else if (instance === currentRenderingInstance) {
4526
- warn(
4526
+ warn$1(
4527
4527
  `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
4528
4528
  );
4529
4529
  }
@@ -4535,17 +4535,17 @@ If this is a native custom element, make sure to exclude it from component resol
4535
4535
  setupState[key] = value;
4536
4536
  return true;
4537
4537
  } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) {
4538
- warn(`Cannot mutate <script setup> binding "${key}" from Options API.`);
4538
+ warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
4539
4539
  return false;
4540
4540
  } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
4541
4541
  data[key] = value;
4542
4542
  return true;
4543
4543
  } else if (hasOwn(instance.props, key)) {
4544
- warn(`Attempting to mutate prop "${key}". Props are readonly.`);
4544
+ warn$1(`Attempting to mutate prop "${key}". Props are readonly.`);
4545
4545
  return false;
4546
4546
  }
4547
4547
  if (key[0] === "$" && key.slice(1) in instance) {
4548
- warn(
4548
+ warn$1(
4549
4549
  `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.`
4550
4550
  );
4551
4551
  return false;
@@ -4579,7 +4579,7 @@ If this is a native custom element, make sure to exclude it from component resol
4579
4579
  };
4580
4580
  {
4581
4581
  PublicInstanceProxyHandlers.ownKeys = (target) => {
4582
- warn(
4582
+ warn$1(
4583
4583
  `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
4584
4584
  );
4585
4585
  return Reflect.ownKeys(target);
@@ -4598,7 +4598,7 @@ If this is a native custom element, make sure to exclude it from component resol
4598
4598
  has(_, key) {
4599
4599
  const has = key[0] !== "_" && !isGloballyAllowed(key);
4600
4600
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
4601
- warn(
4601
+ warn$1(
4602
4602
  `Property ${JSON.stringify(
4603
4603
  key
4604
4604
  )} should not start with _ which is a reserved prefix for Vue internals.`
@@ -4648,7 +4648,7 @@ If this is a native custom element, make sure to exclude it from component resol
4648
4648
  Object.keys(toRaw(setupState)).forEach((key) => {
4649
4649
  if (!setupState.__isScriptSetup) {
4650
4650
  if (isReservedPrefix(key[0])) {
4651
- warn(
4651
+ warn$1(
4652
4652
  `setup() return property ${JSON.stringify(
4653
4653
  key
4654
4654
  )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
@@ -4665,7 +4665,7 @@ If this is a native custom element, make sure to exclude it from component resol
4665
4665
  });
4666
4666
  }
4667
4667
 
4668
- const warnRuntimeUsage = (method) => warn(
4668
+ const warnRuntimeUsage = (method) => warn$1(
4669
4669
  `${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.`
4670
4670
  );
4671
4671
  function defineProps() {
@@ -4716,11 +4716,11 @@ If this is a native custom element, make sure to exclude it from component resol
4716
4716
  function useModel(props, name) {
4717
4717
  const i = getCurrentInstance();
4718
4718
  if (!i) {
4719
- warn(`useModel() called without active instance.`);
4719
+ warn$1(`useModel() called without active instance.`);
4720
4720
  return ref();
4721
4721
  }
4722
4722
  if (!i.propsOptions[0][name]) {
4723
- warn(`useModel() called with prop "${name}" which is not declared.`);
4723
+ warn$1(`useModel() called with prop "${name}" which is not declared.`);
4724
4724
  return ref();
4725
4725
  }
4726
4726
  return customRef((track, trigger) => {
@@ -4751,7 +4751,7 @@ If this is a native custom element, make sure to exclude it from component resol
4751
4751
  function getContext() {
4752
4752
  const i = getCurrentInstance();
4753
4753
  if (!i) {
4754
- warn(`useContext() called without active instance.`);
4754
+ warn$1(`useContext() called without active instance.`);
4755
4755
  }
4756
4756
  return i.setupContext || (i.setupContext = createSetupContext(i));
4757
4757
  }
@@ -4776,7 +4776,7 @@ If this is a native custom element, make sure to exclude it from component resol
4776
4776
  } else if (opt === null) {
4777
4777
  opt = props[key] = { default: defaults[key] };
4778
4778
  } else {
4779
- warn(`props default key "${key}" has no corresponding declaration.`);
4779
+ warn$1(`props default key "${key}" has no corresponding declaration.`);
4780
4780
  }
4781
4781
  if (opt && defaults[`__skip_${key}`]) {
4782
4782
  opt.skipFactory = true;
@@ -4806,7 +4806,7 @@ If this is a native custom element, make sure to exclude it from component resol
4806
4806
  function withAsyncContext(getAwaitable) {
4807
4807
  const ctx = getCurrentInstance();
4808
4808
  if (!ctx) {
4809
- warn(
4809
+ warn$1(
4810
4810
  `withAsyncContext called without active current instance. This is likely a bug.`
4811
4811
  );
4812
4812
  }
@@ -4825,7 +4825,7 @@ If this is a native custom element, make sure to exclude it from component resol
4825
4825
  const cache = /* @__PURE__ */ Object.create(null);
4826
4826
  return (type, key) => {
4827
4827
  if (cache[key]) {
4828
- warn(`${type} property "${key}" is already defined in ${cache[key]}.`);
4828
+ warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
4829
4829
  } else {
4830
4830
  cache[key] = type;
4831
4831
  }
@@ -4901,7 +4901,7 @@ If this is a native custom element, make sure to exclude it from component resol
4901
4901
  checkDuplicateProperties("Methods" /* METHODS */, key);
4902
4902
  }
4903
4903
  } else {
4904
- warn(
4904
+ warn$1(
4905
4905
  `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
4906
4906
  );
4907
4907
  }
@@ -4909,18 +4909,18 @@ If this is a native custom element, make sure to exclude it from component resol
4909
4909
  }
4910
4910
  if (dataOptions) {
4911
4911
  if (!isFunction(dataOptions)) {
4912
- warn(
4912
+ warn$1(
4913
4913
  `The data option must be a function. Plain object usage is no longer supported.`
4914
4914
  );
4915
4915
  }
4916
4916
  const data = dataOptions.call(publicThis, publicThis);
4917
4917
  if (isPromise(data)) {
4918
- warn(
4918
+ warn$1(
4919
4919
  `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
4920
4920
  );
4921
4921
  }
4922
4922
  if (!isObject(data)) {
4923
- warn(`data() should return an object.`);
4923
+ warn$1(`data() should return an object.`);
4924
4924
  } else {
4925
4925
  instance.data = reactive(data);
4926
4926
  {
@@ -4944,10 +4944,10 @@ If this is a native custom element, make sure to exclude it from component resol
4944
4944
  const opt = computedOptions[key];
4945
4945
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
4946
4946
  if (get === NOOP) {
4947
- warn(`Computed property "${key}" has no getter.`);
4947
+ warn$1(`Computed property "${key}" has no getter.`);
4948
4948
  }
4949
4949
  const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
4950
- warn(
4950
+ warn$1(
4951
4951
  `Write operation failed: computed property "${key}" is readonly.`
4952
4952
  );
4953
4953
  } ;
@@ -5073,7 +5073,7 @@ If this is a native custom element, make sure to exclude it from component resol
5073
5073
  if (isFunction(handler)) {
5074
5074
  watch(getter, handler);
5075
5075
  } else {
5076
- warn(`Invalid watch handler specified by key "${raw}"`, handler);
5076
+ warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
5077
5077
  }
5078
5078
  } else if (isFunction(raw)) {
5079
5079
  watch(getter, raw.bind(publicThis));
@@ -5085,11 +5085,11 @@ If this is a native custom element, make sure to exclude it from component resol
5085
5085
  if (isFunction(handler)) {
5086
5086
  watch(getter, handler, raw);
5087
5087
  } else {
5088
- warn(`Invalid watch handler specified by key "${raw.handler}"`, handler);
5088
+ warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
5089
5089
  }
5090
5090
  }
5091
5091
  } else {
5092
- warn(`Invalid watch option: "${key}"`, raw);
5092
+ warn$1(`Invalid watch option: "${key}"`, raw);
5093
5093
  }
5094
5094
  }
5095
5095
  function resolveMergedOptions(instance) {
@@ -5134,7 +5134,7 @@ If this is a native custom element, make sure to exclude it from component resol
5134
5134
  }
5135
5135
  for (const key in from) {
5136
5136
  if (asMixin && key === "expose") {
5137
- warn(
5137
+ warn$1(
5138
5138
  `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`
5139
5139
  );
5140
5140
  } else {
@@ -5262,7 +5262,7 @@ If this is a native custom element, make sure to exclude it from component resol
5262
5262
  rootComponent = extend({}, rootComponent);
5263
5263
  }
5264
5264
  if (rootProps != null && !isObject(rootProps)) {
5265
- warn(`root props passed to app.mount() must be an object.`);
5265
+ warn$1(`root props passed to app.mount() must be an object.`);
5266
5266
  rootProps = null;
5267
5267
  }
5268
5268
  const context = createAppContext();
@@ -5281,14 +5281,14 @@ If this is a native custom element, make sure to exclude it from component resol
5281
5281
  },
5282
5282
  set config(v) {
5283
5283
  {
5284
- warn(
5284
+ warn$1(
5285
5285
  `app.config cannot be replaced. Modify individual options instead.`
5286
5286
  );
5287
5287
  }
5288
5288
  },
5289
5289
  use(plugin, ...options) {
5290
5290
  if (installedPlugins.has(plugin)) {
5291
- warn(`Plugin has already been applied to target app.`);
5291
+ warn$1(`Plugin has already been applied to target app.`);
5292
5292
  } else if (plugin && isFunction(plugin.install)) {
5293
5293
  installedPlugins.add(plugin);
5294
5294
  plugin.install(app, ...options);
@@ -5296,7 +5296,7 @@ If this is a native custom element, make sure to exclude it from component resol
5296
5296
  installedPlugins.add(plugin);
5297
5297
  plugin(app, ...options);
5298
5298
  } else {
5299
- warn(
5299
+ warn$1(
5300
5300
  `A plugin must either be a function or an object with an "install" function.`
5301
5301
  );
5302
5302
  }
@@ -5307,7 +5307,7 @@ If this is a native custom element, make sure to exclude it from component resol
5307
5307
  if (!context.mixins.includes(mixin)) {
5308
5308
  context.mixins.push(mixin);
5309
5309
  } else {
5310
- warn(
5310
+ warn$1(
5311
5311
  "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
5312
5312
  );
5313
5313
  }
@@ -5322,7 +5322,7 @@ If this is a native custom element, make sure to exclude it from component resol
5322
5322
  return context.components[name];
5323
5323
  }
5324
5324
  if (context.components[name]) {
5325
- warn(`Component "${name}" has already been registered in target app.`);
5325
+ warn$1(`Component "${name}" has already been registered in target app.`);
5326
5326
  }
5327
5327
  context.components[name] = component;
5328
5328
  return app;
@@ -5335,7 +5335,7 @@ If this is a native custom element, make sure to exclude it from component resol
5335
5335
  return context.directives[name];
5336
5336
  }
5337
5337
  if (context.directives[name]) {
5338
- warn(`Directive "${name}" has already been registered in target app.`);
5338
+ warn$1(`Directive "${name}" has already been registered in target app.`);
5339
5339
  }
5340
5340
  context.directives[name] = directive;
5341
5341
  return app;
@@ -5343,7 +5343,7 @@ If this is a native custom element, make sure to exclude it from component resol
5343
5343
  mount(rootContainer, isHydrate, namespace) {
5344
5344
  if (!isMounted) {
5345
5345
  if (rootContainer.__vue_app__) {
5346
- warn(
5346
+ warn$1(
5347
5347
  `There is already an app instance mounted on the host container.
5348
5348
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
5349
5349
  );
@@ -5378,7 +5378,7 @@ If this is a native custom element, make sure to exclude it from component resol
5378
5378
  }
5379
5379
  return getExposeProxy(vnode.component) || vnode.component.proxy;
5380
5380
  } else {
5381
- warn(
5381
+ warn$1(
5382
5382
  `App has already been mounted.
5383
5383
  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)\``
5384
5384
  );
@@ -5393,12 +5393,12 @@ If you want to remount the same app, move your app creation logic into a factory
5393
5393
  }
5394
5394
  delete app._container.__vue_app__;
5395
5395
  } else {
5396
- warn(`Cannot unmount an app that is not mounted.`);
5396
+ warn$1(`Cannot unmount an app that is not mounted.`);
5397
5397
  }
5398
5398
  },
5399
5399
  provide(key, value) {
5400
5400
  if (key in context.provides) {
5401
- warn(
5401
+ warn$1(
5402
5402
  `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
5403
5403
  );
5404
5404
  }
@@ -5422,7 +5422,7 @@ If you want to remount the same app, move your app creation logic into a factory
5422
5422
  function provide(key, value) {
5423
5423
  if (!currentInstance) {
5424
5424
  {
5425
- warn(`provide() can only be used inside setup().`);
5425
+ warn$1(`provide() can only be used inside setup().`);
5426
5426
  }
5427
5427
  } else {
5428
5428
  let provides = currentInstance.provides;
@@ -5442,10 +5442,10 @@ If you want to remount the same app, move your app creation logic into a factory
5442
5442
  } else if (arguments.length > 1) {
5443
5443
  return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
5444
5444
  } else {
5445
- warn(`injection "${String(key)}" not found.`);
5445
+ warn$1(`injection "${String(key)}" not found.`);
5446
5446
  }
5447
5447
  } else {
5448
- warn(`inject() can only be used inside setup() or functional components.`);
5448
+ warn$1(`inject() can only be used inside setup() or functional components.`);
5449
5449
  }
5450
5450
  }
5451
5451
  function hasInjectionContext() {
@@ -5689,7 +5689,7 @@ If you want to remount the same app, move your app creation logic into a factory
5689
5689
  if (isArray(raw)) {
5690
5690
  for (let i = 0; i < raw.length; i++) {
5691
5691
  if (!isString(raw[i])) {
5692
- warn(`props must be strings when using array syntax.`, raw[i]);
5692
+ warn$1(`props must be strings when using array syntax.`, raw[i]);
5693
5693
  }
5694
5694
  const normalizedKey = camelize(raw[i]);
5695
5695
  if (validatePropName(normalizedKey)) {
@@ -5698,7 +5698,7 @@ If you want to remount the same app, move your app creation logic into a factory
5698
5698
  }
5699
5699
  } else if (raw) {
5700
5700
  if (!isObject(raw)) {
5701
- warn(`invalid props options`, raw);
5701
+ warn$1(`invalid props options`, raw);
5702
5702
  }
5703
5703
  for (const key in raw) {
5704
5704
  const normalizedKey = camelize(key);
@@ -5727,7 +5727,7 @@ If you want to remount the same app, move your app creation logic into a factory
5727
5727
  if (key[0] !== "$") {
5728
5728
  return true;
5729
5729
  } else {
5730
- warn(`Invalid prop name: "${key}" is a reserved property.`);
5730
+ warn$1(`Invalid prop name: "${key}" is a reserved property.`);
5731
5731
  }
5732
5732
  return false;
5733
5733
  }
@@ -5765,7 +5765,7 @@ If you want to remount the same app, move your app creation logic into a factory
5765
5765
  function validateProp(name, value, prop, props, isAbsent) {
5766
5766
  const { type, required, validator, skipCheck } = prop;
5767
5767
  if (required && isAbsent) {
5768
- warn('Missing required prop: "' + name + '"');
5768
+ warn$1('Missing required prop: "' + name + '"');
5769
5769
  return;
5770
5770
  }
5771
5771
  if (value == null && !required) {
@@ -5781,12 +5781,12 @@ If you want to remount the same app, move your app creation logic into a factory
5781
5781
  isValid = valid;
5782
5782
  }
5783
5783
  if (!isValid) {
5784
- warn(getInvalidTypeMessage(name, value, expectedTypes));
5784
+ warn$1(getInvalidTypeMessage(name, value, expectedTypes));
5785
5785
  return;
5786
5786
  }
5787
5787
  }
5788
5788
  if (validator && !validator(value, props)) {
5789
- warn('Invalid prop: custom validator check failed for prop "' + name + '".');
5789
+ warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
5790
5790
  }
5791
5791
  }
5792
5792
  const isSimpleType = /* @__PURE__ */ makeMap(
@@ -5858,7 +5858,7 @@ If you want to remount the same app, move your app creation logic into a factory
5858
5858
  }
5859
5859
  const normalized = withCtx((...args) => {
5860
5860
  if (currentInstance) {
5861
- warn(
5861
+ warn$1(
5862
5862
  `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.`
5863
5863
  );
5864
5864
  }
@@ -5877,7 +5877,7 @@ If you want to remount the same app, move your app creation logic into a factory
5877
5877
  slots[key] = normalizeSlot(key, value, ctx);
5878
5878
  } else if (value != null) {
5879
5879
  {
5880
- warn(
5880
+ warn$1(
5881
5881
  `Non-function value encountered for slot "${key}". Prefer function slots for better performance.`
5882
5882
  );
5883
5883
  }
@@ -5888,7 +5888,7 @@ If you want to remount the same app, move your app creation logic into a factory
5888
5888
  };
5889
5889
  const normalizeVNodeSlots = (instance, children) => {
5890
5890
  if (!isKeepAlive(instance.vnode) && true) {
5891
- warn(
5891
+ warn$1(
5892
5892
  `Non-function value encountered for default slot. Prefer function slots for better performance.`
5893
5893
  );
5894
5894
  }
@@ -5970,7 +5970,7 @@ If you want to remount the same app, move your app creation logic into a factory
5970
5970
  const value = isUnmount ? null : refValue;
5971
5971
  const { i: owner, r: ref } = rawRef;
5972
5972
  if (!owner) {
5973
- warn(
5973
+ warn$1(
5974
5974
  `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`
5975
5975
  );
5976
5976
  return;
@@ -6025,7 +6025,7 @@ If you want to remount the same app, move your app creation logic into a factory
6025
6025
  if (rawRef.k)
6026
6026
  refs[rawRef.k] = value;
6027
6027
  } else {
6028
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
6028
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
6029
6029
  }
6030
6030
  };
6031
6031
  if (value) {
@@ -6035,7 +6035,7 @@ If you want to remount the same app, move your app creation logic into a factory
6035
6035
  doSet();
6036
6036
  }
6037
6037
  } else {
6038
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
6038
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
6039
6039
  }
6040
6040
  }
6041
6041
  }
@@ -6067,7 +6067,7 @@ If you want to remount the same app, move your app creation logic into a factory
6067
6067
  } = rendererInternals;
6068
6068
  const hydrate = (vnode, container) => {
6069
6069
  if (!container.hasChildNodes()) {
6070
- warn(
6070
+ warn$1(
6071
6071
  `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
6072
6072
  );
6073
6073
  patch(null, vnode, container);
@@ -6127,7 +6127,7 @@ If you want to remount the same app, move your app creation logic into a factory
6127
6127
  } else {
6128
6128
  if (node.data !== vnode.children) {
6129
6129
  hasMismatch = true;
6130
- warn(
6130
+ warn$1(
6131
6131
  `Hydration text mismatch in`,
6132
6132
  node.parentNode,
6133
6133
  `
@@ -6262,7 +6262,7 @@ If you want to remount the same app, move your app creation logic into a factory
6262
6262
  hydrateNode
6263
6263
  );
6264
6264
  } else {
6265
- warn("Invalid HostVNode type:", type, `(${typeof type})`);
6265
+ warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
6266
6266
  }
6267
6267
  }
6268
6268
  if (ref != null) {
@@ -6303,7 +6303,7 @@ If you want to remount the same app, move your app creation logic into a factory
6303
6303
  while (next) {
6304
6304
  hasMismatch = true;
6305
6305
  if (!hasWarned) {
6306
- warn(
6306
+ warn$1(
6307
6307
  `Hydration children mismatch on`,
6308
6308
  el,
6309
6309
  `
@@ -6318,7 +6318,7 @@ Server rendered element contains more child nodes than client vdom.`
6318
6318
  } else if (shapeFlag & 8) {
6319
6319
  if (el.textContent !== vnode.children) {
6320
6320
  hasMismatch = true;
6321
- warn(
6321
+ warn$1(
6322
6322
  `Hydration text content mismatch on`,
6323
6323
  el,
6324
6324
  `
@@ -6387,7 +6387,7 @@ Server rendered element contains more child nodes than client vdom.`
6387
6387
  } else {
6388
6388
  hasMismatch = true;
6389
6389
  if (!hasWarned) {
6390
- warn(
6390
+ warn$1(
6391
6391
  `Hydration children mismatch on`,
6392
6392
  container,
6393
6393
  `
@@ -6434,7 +6434,7 @@ Server rendered element contains fewer child nodes than client vdom.`
6434
6434
  };
6435
6435
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
6436
6436
  hasMismatch = true;
6437
- warn(
6437
+ warn$1(
6438
6438
  `Hydration node mismatch:
6439
6439
  - rendered on server:`,
6440
6440
  node,
@@ -6512,9 +6512,9 @@ Server rendered element contains fewer child nodes than client vdom.`
6512
6512
  let actual;
6513
6513
  let expected;
6514
6514
  if (key === "class") {
6515
- actual = el.getAttribute("class");
6516
- expected = normalizeClass(clientValue);
6517
- if (actual !== expected) {
6515
+ actual = toClassSet(el.getAttribute("class") || "");
6516
+ expected = toClassSet(normalizeClass(clientValue));
6517
+ if (!isSetEqual(actual, expected)) {
6518
6518
  mismatchType = mismatchKey = `class`;
6519
6519
  }
6520
6520
  } else if (key === "style") {
@@ -6533,7 +6533,7 @@ Server rendered element contains fewer child nodes than client vdom.`
6533
6533
  }
6534
6534
  if (mismatchType) {
6535
6535
  const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
6536
- warn(
6536
+ warn$1(
6537
6537
  `Hydration ${mismatchType} mismatch on`,
6538
6538
  el,
6539
6539
  `
@@ -6546,6 +6546,20 @@ Server rendered element contains fewer child nodes than client vdom.`
6546
6546
  }
6547
6547
  return false;
6548
6548
  }
6549
+ function toClassSet(str) {
6550
+ return new Set(str.trim().split(/\s+/));
6551
+ }
6552
+ function isSetEqual(a, b) {
6553
+ if (a.size !== b.size) {
6554
+ return false;
6555
+ }
6556
+ for (const s of a) {
6557
+ if (!b.has(s)) {
6558
+ return false;
6559
+ }
6560
+ }
6561
+ return true;
6562
+ }
6549
6563
 
6550
6564
  let supported;
6551
6565
  let perf;
@@ -6598,7 +6612,7 @@ Server rendered element contains fewer child nodes than client vdom.`
6598
6612
  const target = getGlobalThis();
6599
6613
  target.__VUE__ = true;
6600
6614
  {
6601
- setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
6615
+ setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
6602
6616
  }
6603
6617
  const {
6604
6618
  insert: hostInsert,
@@ -6707,7 +6721,7 @@ Server rendered element contains fewer child nodes than client vdom.`
6707
6721
  internals
6708
6722
  );
6709
6723
  } else {
6710
- warn("Invalid VNode type:", type, `(${typeof type})`);
6724
+ warn$1("Invalid VNode type:", type, `(${typeof type})`);
6711
6725
  }
6712
6726
  }
6713
6727
  if (ref != null && parentComponent) {
@@ -7676,7 +7690,7 @@ Server rendered element contains fewer child nodes than client vdom.`
7676
7690
  const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
7677
7691
  if (nextChild.key != null) {
7678
7692
  if (keyToNewIndexMap.has(nextChild.key)) {
7679
- warn(
7693
+ warn$1(
7680
7694
  `Duplicate keys found during update:`,
7681
7695
  JSON.stringify(nextChild.key),
7682
7696
  `Make sure keys are unique.`
@@ -8105,14 +8119,14 @@ Server rendered element contains fewer child nodes than client vdom.`
8105
8119
  const targetSelector = props && props.to;
8106
8120
  if (isString(targetSelector)) {
8107
8121
  if (!select) {
8108
- warn(
8122
+ warn$1(
8109
8123
  `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`
8110
8124
  );
8111
8125
  return null;
8112
8126
  } else {
8113
8127
  const target = select(targetSelector);
8114
8128
  if (!target) {
8115
- warn(
8129
+ warn$1(
8116
8130
  `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.`
8117
8131
  );
8118
8132
  }
@@ -8120,7 +8134,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8120
8134
  }
8121
8135
  } else {
8122
8136
  if (!targetSelector && !isTeleportDisabled(props)) {
8123
- warn(`Invalid Teleport target: ${targetSelector}`);
8137
+ warn$1(`Invalid Teleport target: ${targetSelector}`);
8124
8138
  }
8125
8139
  return targetSelector;
8126
8140
  }
@@ -8156,7 +8170,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8156
8170
  namespace = "mathml";
8157
8171
  }
8158
8172
  } else if (!disabled) {
8159
- warn("Invalid Teleport target on mount:", target, `(${typeof target})`);
8173
+ warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
8160
8174
  }
8161
8175
  const mount = (container2, anchor2) => {
8162
8176
  if (shapeFlag & 16) {
@@ -8243,7 +8257,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8243
8257
  0
8244
8258
  );
8245
8259
  } else {
8246
- warn(
8260
+ warn$1(
8247
8261
  "Invalid Teleport target on update:",
8248
8262
  target,
8249
8263
  `(${typeof target})`
@@ -8493,7 +8507,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8493
8507
  vnode.shapeFlag |= isString(children) ? 8 : 16;
8494
8508
  }
8495
8509
  if (vnode.key !== vnode.key) {
8496
- warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
8510
+ warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
8497
8511
  }
8498
8512
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
8499
8513
  !isBlockNode && // has current parent block
@@ -8512,7 +8526,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8512
8526
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
8513
8527
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
8514
8528
  if (!type) {
8515
- warn(`Invalid vnode type when creating vnode: ${type}.`);
8529
+ warn$1(`Invalid vnode type when creating vnode: ${type}.`);
8516
8530
  }
8517
8531
  type = Comment;
8518
8532
  }
@@ -8555,7 +8569,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8555
8569
  const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;
8556
8570
  if (shapeFlag & 4 && isProxy(type)) {
8557
8571
  type = toRaw(type);
8558
- warn(
8572
+ warn$1(
8559
8573
  `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\`.`,
8560
8574
  `
8561
8575
  Component that was made reactive: `,
@@ -8853,7 +8867,7 @@ Component that was made reactive: `,
8853
8867
  function validateComponentName(name, config) {
8854
8868
  const appIsNativeTag = config.isNativeTag || NO;
8855
8869
  if (isBuiltInTag(name) || appIsNativeTag(name)) {
8856
- warn(
8870
+ warn$1(
8857
8871
  "Do not use built-in or reserved HTML elements as component id: " + name
8858
8872
  );
8859
8873
  }
@@ -8892,7 +8906,7 @@ Component that was made reactive: `,
8892
8906
  }
8893
8907
  }
8894
8908
  if (Component.compilerOptions && isRuntimeOnly()) {
8895
- warn(
8909
+ warn$1(
8896
8910
  `"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.`
8897
8911
  );
8898
8912
  }
@@ -8927,7 +8941,7 @@ Component that was made reactive: `,
8927
8941
  instance.asyncDep = setupResult;
8928
8942
  if (!instance.suspense) {
8929
8943
  const name = (_a = Component.name) != null ? _a : "Anonymous";
8930
- warn(
8944
+ warn$1(
8931
8945
  `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.`
8932
8946
  );
8933
8947
  }
@@ -8946,7 +8960,7 @@ Component that was made reactive: `,
8946
8960
  }
8947
8961
  } else if (isObject(setupResult)) {
8948
8962
  if (isVNode(setupResult)) {
8949
- warn(
8963
+ warn$1(
8950
8964
  `setup() should not return VNodes directly - return a render function instead.`
8951
8965
  );
8952
8966
  }
@@ -8958,7 +8972,7 @@ Component that was made reactive: `,
8958
8972
  exposeSetupStateOnRenderContext(instance);
8959
8973
  }
8960
8974
  } else if (setupResult !== void 0) {
8961
- warn(
8975
+ warn$1(
8962
8976
  `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
8963
8977
  );
8964
8978
  }
@@ -9019,12 +9033,12 @@ Component that was made reactive: `,
9019
9033
  }
9020
9034
  if (!Component.render && instance.render === NOOP && !isSSR) {
9021
9035
  if (!compile && Component.template) {
9022
- warn(
9036
+ warn$1(
9023
9037
  `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` )
9024
9038
  /* should not happen */
9025
9039
  );
9026
9040
  } else {
9027
- warn(`Component is missing template or render function.`);
9041
+ warn$1(`Component is missing template or render function.`);
9028
9042
  }
9029
9043
  }
9030
9044
  }
@@ -9038,11 +9052,11 @@ Component that was made reactive: `,
9038
9052
  return target[key];
9039
9053
  },
9040
9054
  set() {
9041
- warn(`setupContext.attrs is readonly.`);
9055
+ warn$1(`setupContext.attrs is readonly.`);
9042
9056
  return false;
9043
9057
  },
9044
9058
  deleteProperty() {
9045
- warn(`setupContext.attrs is readonly.`);
9059
+ warn$1(`setupContext.attrs is readonly.`);
9046
9060
  return false;
9047
9061
  }
9048
9062
  }
@@ -9060,7 +9074,7 @@ Component that was made reactive: `,
9060
9074
  const expose = (exposed) => {
9061
9075
  {
9062
9076
  if (instance.exposed) {
9063
- warn(`expose() should be called only once per setup().`);
9077
+ warn$1(`expose() should be called only once per setup().`);
9064
9078
  }
9065
9079
  if (exposed != null) {
9066
9080
  let exposedType = typeof exposed;
@@ -9072,7 +9086,7 @@ Component that was made reactive: `,
9072
9086
  }
9073
9087
  }
9074
9088
  if (exposedType !== "object") {
9075
- warn(
9089
+ warn$1(
9076
9090
  `expose() should be passed a plain object, received ${exposedType}.`
9077
9091
  );
9078
9092
  }
@@ -9170,7 +9184,7 @@ Component that was made reactive: `,
9170
9184
  const ssrContextKey = Symbol.for("v-scx");
9171
9185
  const useSSRContext = () => {
9172
9186
  {
9173
- warn(`useSSRContext() is not supported in the global build.`);
9187
+ warn$1(`useSSRContext() is not supported in the global build.`);
9174
9188
  }
9175
9189
  };
9176
9190
 
@@ -9375,8 +9389,11 @@ Component that was made reactive: `,
9375
9389
  return true;
9376
9390
  }
9377
9391
 
9378
- const version = "3.4.0-beta.4";
9392
+ const version = "3.4.0-rc.2";
9393
+ const warn = warn$1 ;
9379
9394
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9395
+ const devtools = devtools$1 ;
9396
+ const setDevtoolsHook = setDevtoolsHook$1 ;
9380
9397
  const ssrUtils = null;
9381
9398
  const resolveFilter = null;
9382
9399
  const compatUtils = null;
@@ -10930,6 +10947,7 @@ Component that was made reactive: `,
10930
10947
  exports.defineProps = defineProps;
10931
10948
  exports.defineSSRCustomElement = defineSSRCustomElement;
10932
10949
  exports.defineSlots = defineSlots;
10950
+ exports.devtools = devtools;
10933
10951
  exports.effect = effect;
10934
10952
  exports.effectScope = effectScope;
10935
10953
  exports.getCurrentInstance = getCurrentInstance;