@vue/runtime-dom 3.4.0-rc.1 → 3.4.0-rc.3

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 {
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 {
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
  {
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
  {
838
- warn$1(
838
+ warn$2(
839
839
  `Delete operation on key "${String(key)}" failed: target is readonly.`,
840
840
  target
841
841
  );
@@ -1493,7 +1493,7 @@ function pushWarningContext(vnode) {
1493
1493
  function popWarningContext() {
1494
1494
  stack.pop();
1495
1495
  }
1496
- function warn(msg, ...args) {
1496
+ function warn$1(msg, ...args) {
1497
1497
  pauseTracking();
1498
1498
  const instance = stack.length ? stack[stack.length - 1].component : null;
1499
1499
  const appWarnHandler = instance && instance.appContext.config.warnHandler;
@@ -1594,9 +1594,9 @@ function assertNumber(val, type) {
1594
1594
  if (val === void 0) {
1595
1595
  return;
1596
1596
  } else if (typeof val !== "number") {
1597
- warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1597
+ warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1598
1598
  } else if (isNaN(val)) {
1599
- warn(`${type} is NaN - the duration expression might be incorrect.`);
1599
+ warn$1(`${type} is NaN - the duration expression might be incorrect.`);
1600
1600
  }
1601
1601
  }
1602
1602
 
@@ -1661,7 +1661,7 @@ const ErrorTypeStrings$1 = {
1661
1661
  [11]: "app warnHandler",
1662
1662
  [12]: "ref function",
1663
1663
  [13]: "async component loader",
1664
- [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"
1664
+ [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
1665
1665
  };
1666
1666
  function callWithErrorHandling(fn, instance, type, args) {
1667
1667
  let res;
@@ -1724,7 +1724,7 @@ function logError(err, type, contextVNode, throwInDev = true) {
1724
1724
  if (contextVNode) {
1725
1725
  pushWarningContext(contextVNode);
1726
1726
  }
1727
- warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1727
+ warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1728
1728
  if (contextVNode) {
1729
1729
  popWarningContext();
1730
1730
  }
@@ -2022,22 +2022,22 @@ function tryWrap(fn) {
2022
2022
  };
2023
2023
  }
2024
2024
 
2025
- let devtools;
2025
+ let devtools$1;
2026
2026
  let buffer = [];
2027
2027
  let devtoolsNotInstalled = false;
2028
2028
  function emit$1(event, ...args) {
2029
- if (devtools) {
2030
- devtools.emit(event, ...args);
2029
+ if (devtools$1) {
2030
+ devtools$1.emit(event, ...args);
2031
2031
  } else if (!devtoolsNotInstalled) {
2032
2032
  buffer.push({ event, args });
2033
2033
  }
2034
2034
  }
2035
- function setDevtoolsHook(hook, target) {
2035
+ function setDevtoolsHook$1(hook, target) {
2036
2036
  var _a, _b;
2037
- devtools = hook;
2038
- if (devtools) {
2039
- devtools.enabled = true;
2040
- buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
2037
+ devtools$1 = hook;
2038
+ if (devtools$1) {
2039
+ devtools$1.enabled = true;
2040
+ buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
2041
2041
  buffer = [];
2042
2042
  } else if (
2043
2043
  // handle late devtools injection - only do this if we are in an actual
@@ -2049,10 +2049,10 @@ function setDevtoolsHook(hook, target) {
2049
2049
  ) {
2050
2050
  const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
2051
2051
  replay.push((newHook) => {
2052
- setDevtoolsHook(newHook, target);
2052
+ setDevtoolsHook$1(newHook, target);
2053
2053
  });
2054
2054
  setTimeout(() => {
2055
- if (!devtools) {
2055
+ if (!devtools$1) {
2056
2056
  target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
2057
2057
  devtoolsNotInstalled = true;
2058
2058
  buffer = [];
@@ -2082,8 +2082,8 @@ const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(
2082
2082
  "component:removed" /* COMPONENT_REMOVED */
2083
2083
  );
2084
2084
  const devtoolsComponentRemoved = (component) => {
2085
- if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2086
- !devtools.cleanupBuffer(component)) {
2085
+ if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2086
+ !devtools$1.cleanupBuffer(component)) {
2087
2087
  _devtoolsComponentRemoved(component);
2088
2088
  }
2089
2089
  };
@@ -2131,7 +2131,7 @@ function emit(instance, event, ...rawArgs) {
2131
2131
  if (emitsOptions) {
2132
2132
  if (!(event in emitsOptions) && true) {
2133
2133
  if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
2134
- warn(
2134
+ warn$1(
2135
2135
  `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
2136
2136
  );
2137
2137
  }
@@ -2140,7 +2140,7 @@ function emit(instance, event, ...rawArgs) {
2140
2140
  if (isFunction(validator)) {
2141
2141
  const isValid = validator(...rawArgs);
2142
2142
  if (!isValid) {
2143
- warn(
2143
+ warn$1(
2144
2144
  `Invalid event arguments: event validation failed for event "${event}".`
2145
2145
  );
2146
2146
  }
@@ -2167,11 +2167,13 @@ function emit(instance, event, ...rawArgs) {
2167
2167
  {
2168
2168
  const lowerCaseEvent = event.toLowerCase();
2169
2169
  if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
2170
- warn(
2170
+ warn$1(
2171
2171
  `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
2172
2172
  instance,
2173
2173
  instance.type
2174
- )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".`
2174
+ )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(
2175
+ event
2176
+ )}" instead of "${event}".`
2175
2177
  );
2176
2178
  }
2177
2179
  }
@@ -2335,7 +2337,7 @@ function renderComponentRoot(instance) {
2335
2337
  const proxyToUse = withProxy || proxy;
2336
2338
  const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, {
2337
2339
  get(target, key, receiver) {
2338
- warn(
2340
+ warn$1(
2339
2341
  `Property '${String(
2340
2342
  key
2341
2343
  )}' was accessed via 'this'. Avoid using 'this' in templates.`
@@ -2416,12 +2418,12 @@ function renderComponentRoot(instance) {
2416
2418
  }
2417
2419
  }
2418
2420
  if (extraAttrs.length) {
2419
- warn(
2421
+ warn$1(
2420
2422
  `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
2421
2423
  );
2422
2424
  }
2423
2425
  if (eventAttrs.length) {
2424
- warn(
2426
+ warn$1(
2425
2427
  `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.`
2426
2428
  );
2427
2429
  }
@@ -2430,7 +2432,7 @@ function renderComponentRoot(instance) {
2430
2432
  }
2431
2433
  if (vnode.dirs) {
2432
2434
  if (!isElementRoot(root)) {
2433
- warn(
2435
+ warn$1(
2434
2436
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
2435
2437
  );
2436
2438
  }
@@ -2439,7 +2441,7 @@ function renderComponentRoot(instance) {
2439
2441
  }
2440
2442
  if (vnode.transition) {
2441
2443
  if (!isElementRoot(root)) {
2442
- warn(
2444
+ warn$1(
2443
2445
  `Component inside <Transition> renders non-element root node that cannot be animated.`
2444
2446
  );
2445
2447
  }
@@ -2614,7 +2616,6 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
2614
2616
  const selfName = getComponentName(
2615
2617
  Component,
2616
2618
  false
2617
- /* do not include inferred name to avoid breaking existing code */
2618
2619
  );
2619
2620
  if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
2620
2621
  return Component;
@@ -2632,11 +2633,11 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
2632
2633
  if (warnMissing && !res) {
2633
2634
  const extra = type === COMPONENTS ? `
2634
2635
  If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
2635
- warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
2636
+ warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
2636
2637
  }
2637
2638
  return res;
2638
2639
  } else {
2639
- warn(
2640
+ warn$1(
2640
2641
  `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
2641
2642
  );
2642
2643
  }
@@ -3144,6 +3145,7 @@ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace
3144
3145
  parentSuspense,
3145
3146
  parentComponent,
3146
3147
  node.parentNode,
3148
+ // eslint-disable-next-line no-restricted-globals
3147
3149
  document.createElement("div"),
3148
3150
  null,
3149
3151
  namespace,
@@ -3151,7 +3153,6 @@ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace
3151
3153
  optimized,
3152
3154
  rendererInternals,
3153
3155
  true
3154
- /* hydrating */
3155
3156
  );
3156
3157
  const result = hydrateNode(
3157
3158
  node,
@@ -3192,7 +3193,7 @@ function normalizeSuspenseSlot(s) {
3192
3193
  if (isArray(s)) {
3193
3194
  const singleChild = filterSingleRoot(s);
3194
3195
  if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
3195
- warn(`<Suspense> slots expect a single root node.`);
3196
+ warn$1(`<Suspense> slots expect a single root node.`);
3196
3197
  }
3197
3198
  s = singleChild;
3198
3199
  }
@@ -3247,13 +3248,20 @@ function watchSyncEffect(effect, options) {
3247
3248
  const INITIAL_WATCHER_VALUE = {};
3248
3249
  function watch(source, cb, options) {
3249
3250
  if (!isFunction(cb)) {
3250
- warn(
3251
+ warn$1(
3251
3252
  `\`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.`
3252
3253
  );
3253
3254
  }
3254
3255
  return doWatch(source, cb, options);
3255
3256
  }
3256
- function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger } = EMPTY_OBJ) {
3257
+ function doWatch(source, cb, {
3258
+ immediate,
3259
+ deep,
3260
+ flush,
3261
+ once,
3262
+ onTrack,
3263
+ onTrigger
3264
+ } = EMPTY_OBJ) {
3257
3265
  var _a;
3258
3266
  if (cb && once) {
3259
3267
  const _cb = cb;
@@ -3264,23 +3272,23 @@ function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger
3264
3272
  }
3265
3273
  if (!cb) {
3266
3274
  if (immediate !== void 0) {
3267
- warn(
3275
+ warn$1(
3268
3276
  `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
3269
3277
  );
3270
3278
  }
3271
3279
  if (deep !== void 0) {
3272
- warn(
3280
+ warn$1(
3273
3281
  `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
3274
3282
  );
3275
3283
  }
3276
3284
  if (once !== void 0) {
3277
- warn(
3285
+ warn$1(
3278
3286
  `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
3279
3287
  );
3280
3288
  }
3281
3289
  }
3282
3290
  const warnInvalidSource = (s) => {
3283
- warn(
3291
+ warn$1(
3284
3292
  `Invalid watch source: `,
3285
3293
  s,
3286
3294
  `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
@@ -3465,13 +3473,13 @@ function traverse(value, seen) {
3465
3473
 
3466
3474
  function validateDirectiveName(name) {
3467
3475
  if (isBuiltInDirective(name)) {
3468
- warn("Do not use built-in directive ids as custom directive id: " + name);
3476
+ warn$1("Do not use built-in directive ids as custom directive id: " + name);
3469
3477
  }
3470
3478
  }
3471
3479
  function withDirectives(vnode, directives) {
3472
3480
  const internalInstance = currentRenderingInstance;
3473
3481
  if (internalInstance === null) {
3474
- warn(`withDirectives can only be used inside render functions.`);
3482
+ warn$1(`withDirectives can only be used inside render functions.`);
3475
3483
  return vnode;
3476
3484
  }
3477
3485
  const instance = getExposeProxy(internalInstance) || internalInstance.proxy;
@@ -3578,7 +3586,7 @@ const BaseTransitionImpl = {
3578
3586
  for (const c of children) {
3579
3587
  if (c.type !== Comment) {
3580
3588
  if (hasFound) {
3581
- warn(
3589
+ warn$1(
3582
3590
  "<transition> can only be used on a single element or component. Use <transition-group> for lists."
3583
3591
  );
3584
3592
  break;
@@ -3591,7 +3599,7 @@ const BaseTransitionImpl = {
3591
3599
  const rawProps = toRaw(props);
3592
3600
  const { mode } = rawProps;
3593
3601
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
3594
- warn(`invalid <transition> mode: ${mode}`);
3602
+ warn$1(`invalid <transition> mode: ${mode}`);
3595
3603
  }
3596
3604
  if (state.isLeaving) {
3597
3605
  return emptyPlaceholder(child);
@@ -3906,7 +3914,7 @@ function defineAsyncComponent(source) {
3906
3914
  return pendingRequest;
3907
3915
  }
3908
3916
  if (!comp) {
3909
- warn(
3917
+ warn$1(
3910
3918
  `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`
3911
3919
  );
3912
3920
  }
@@ -3938,7 +3946,6 @@ function defineAsyncComponent(source) {
3938
3946
  instance,
3939
3947
  13,
3940
3948
  !errorComponent
3941
- /* do not throw in dev if user provided error component */
3942
3949
  );
3943
3950
  };
3944
3951
  if (suspensible && instance.suspense || false) {
@@ -4140,7 +4147,7 @@ const KeepAliveImpl = {
4140
4147
  const rawVNode = children[0];
4141
4148
  if (children.length > 1) {
4142
4149
  {
4143
- warn(`KeepAlive should contain exactly one component child.`);
4150
+ warn$1(`KeepAlive should contain exactly one component child.`);
4144
4151
  }
4145
4152
  current = null;
4146
4153
  return children;
@@ -4269,7 +4276,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
4269
4276
  return wrappedHook;
4270
4277
  } else {
4271
4278
  const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
4272
- warn(
4279
+ warn$1(
4273
4280
  `${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.` )
4274
4281
  );
4275
4282
  }
@@ -4305,7 +4312,7 @@ function renderList(source, renderItem, cache, index) {
4305
4312
  }
4306
4313
  } else if (typeof source === "number") {
4307
4314
  if (!Number.isInteger(source)) {
4308
- warn(`The v-for range expect an integer value but got ${source}.`);
4315
+ warn$1(`The v-for range expect an integer value but got ${source}.`);
4309
4316
  }
4310
4317
  ret = new Array(source);
4311
4318
  for (let i = 0; i < source; i++) {
@@ -4361,7 +4368,7 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
4361
4368
  }
4362
4369
  let slot = slots[name];
4363
4370
  if (slot && slot.length > 1) {
4364
- warn(
4371
+ warn$1(
4365
4372
  `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.`
4366
4373
  );
4367
4374
  slot = () => [];
@@ -4404,7 +4411,7 @@ function ensureValidVNode(vnodes) {
4404
4411
  function toHandlers(obj, preserveCaseIfNecessary) {
4405
4412
  const ret = {};
4406
4413
  if (!isObject(obj)) {
4407
- warn(`v-on with no argument expects an object value.`);
4414
+ warn$1(`v-on with no argument expects an object value.`);
4408
4415
  return ret;
4409
4416
  }
4410
4417
  for (const key in obj) {
@@ -4514,13 +4521,13 @@ const PublicInstanceProxyHandlers = {
4514
4521
  // to infinite warning loop
4515
4522
  key.indexOf("__v") !== 0)) {
4516
4523
  if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {
4517
- warn(
4524
+ warn$1(
4518
4525
  `Property ${JSON.stringify(
4519
4526
  key
4520
4527
  )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
4521
4528
  );
4522
4529
  } else if (instance === currentRenderingInstance) {
4523
- warn(
4530
+ warn$1(
4524
4531
  `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
4525
4532
  );
4526
4533
  }
@@ -4532,17 +4539,17 @@ const PublicInstanceProxyHandlers = {
4532
4539
  setupState[key] = value;
4533
4540
  return true;
4534
4541
  } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) {
4535
- warn(`Cannot mutate <script setup> binding "${key}" from Options API.`);
4542
+ warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
4536
4543
  return false;
4537
4544
  } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
4538
4545
  data[key] = value;
4539
4546
  return true;
4540
4547
  } else if (hasOwn(instance.props, key)) {
4541
- warn(`Attempting to mutate prop "${key}". Props are readonly.`);
4548
+ warn$1(`Attempting to mutate prop "${key}". Props are readonly.`);
4542
4549
  return false;
4543
4550
  }
4544
4551
  if (key[0] === "$" && key.slice(1) in instance) {
4545
- warn(
4552
+ warn$1(
4546
4553
  `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.`
4547
4554
  );
4548
4555
  return false;
@@ -4576,7 +4583,7 @@ const PublicInstanceProxyHandlers = {
4576
4583
  };
4577
4584
  {
4578
4585
  PublicInstanceProxyHandlers.ownKeys = (target) => {
4579
- warn(
4586
+ warn$1(
4580
4587
  `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
4581
4588
  );
4582
4589
  return Reflect.ownKeys(target);
@@ -4595,7 +4602,7 @@ const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(
4595
4602
  has(_, key) {
4596
4603
  const has = key[0] !== "_" && !isGloballyAllowed(key);
4597
4604
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
4598
- warn(
4605
+ warn$1(
4599
4606
  `Property ${JSON.stringify(
4600
4607
  key
4601
4608
  )} should not start with _ which is a reserved prefix for Vue internals.`
@@ -4645,7 +4652,7 @@ function exposeSetupStateOnRenderContext(instance) {
4645
4652
  Object.keys(toRaw(setupState)).forEach((key) => {
4646
4653
  if (!setupState.__isScriptSetup) {
4647
4654
  if (isReservedPrefix(key[0])) {
4648
- warn(
4655
+ warn$1(
4649
4656
  `setup() return property ${JSON.stringify(
4650
4657
  key
4651
4658
  )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
@@ -4662,7 +4669,7 @@ function exposeSetupStateOnRenderContext(instance) {
4662
4669
  });
4663
4670
  }
4664
4671
 
4665
- const warnRuntimeUsage = (method) => warn(
4672
+ const warnRuntimeUsage = (method) => warn$1(
4666
4673
  `${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.`
4667
4674
  );
4668
4675
  function defineProps() {
@@ -4710,17 +4717,17 @@ function useSlots() {
4710
4717
  function useAttrs() {
4711
4718
  return getContext().attrs;
4712
4719
  }
4713
- function useModel(props, name) {
4720
+ function useModel(props, name, options = EMPTY_OBJ) {
4714
4721
  const i = getCurrentInstance();
4715
4722
  if (!i) {
4716
- warn(`useModel() called without active instance.`);
4723
+ warn$1(`useModel() called without active instance.`);
4717
4724
  return ref();
4718
4725
  }
4719
4726
  if (!i.propsOptions[0][name]) {
4720
- warn(`useModel() called with prop "${name}" which is not declared.`);
4727
+ warn$1(`useModel() called with prop "${name}" which is not declared.`);
4721
4728
  return ref();
4722
4729
  }
4723
- return customRef((track, trigger) => {
4730
+ const res = customRef((track, trigger) => {
4724
4731
  let localValue;
4725
4732
  watchSyncEffect(() => {
4726
4733
  const propValue = props[name];
@@ -4732,7 +4739,7 @@ function useModel(props, name) {
4732
4739
  return {
4733
4740
  get() {
4734
4741
  track();
4735
- return localValue;
4742
+ return options.get ? options.get(localValue) : localValue;
4736
4743
  },
4737
4744
  set(value) {
4738
4745
  const rawProps = i.vnode.props;
@@ -4740,15 +4747,29 @@ function useModel(props, name) {
4740
4747
  localValue = value;
4741
4748
  trigger();
4742
4749
  }
4743
- i.emit(`update:${name}`, value);
4750
+ i.emit(`update:${name}`, options.set ? options.set(value) : value);
4744
4751
  }
4745
4752
  };
4746
4753
  });
4754
+ const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
4755
+ res[Symbol.iterator] = () => {
4756
+ let i2 = 0;
4757
+ return {
4758
+ next() {
4759
+ if (i2 < 2) {
4760
+ return { value: i2++ ? props[modifierKey] : res, done: false };
4761
+ } else {
4762
+ return { done: true };
4763
+ }
4764
+ }
4765
+ };
4766
+ };
4767
+ return res;
4747
4768
  }
4748
4769
  function getContext() {
4749
4770
  const i = getCurrentInstance();
4750
4771
  if (!i) {
4751
- warn(`useContext() called without active instance.`);
4772
+ warn$1(`useContext() called without active instance.`);
4752
4773
  }
4753
4774
  return i.setupContext || (i.setupContext = createSetupContext(i));
4754
4775
  }
@@ -4773,7 +4794,7 @@ function mergeDefaults(raw, defaults) {
4773
4794
  } else if (opt === null) {
4774
4795
  opt = props[key] = { default: defaults[key] };
4775
4796
  } else {
4776
- warn(`props default key "${key}" has no corresponding declaration.`);
4797
+ warn$1(`props default key "${key}" has no corresponding declaration.`);
4777
4798
  }
4778
4799
  if (opt && defaults[`__skip_${key}`]) {
4779
4800
  opt.skipFactory = true;
@@ -4803,7 +4824,7 @@ function createPropsRestProxy(props, excludedKeys) {
4803
4824
  function withAsyncContext(getAwaitable) {
4804
4825
  const ctx = getCurrentInstance();
4805
4826
  if (!ctx) {
4806
- warn(
4827
+ warn$1(
4807
4828
  `withAsyncContext called without active current instance. This is likely a bug.`
4808
4829
  );
4809
4830
  }
@@ -4822,7 +4843,7 @@ function createDuplicateChecker() {
4822
4843
  const cache = /* @__PURE__ */ Object.create(null);
4823
4844
  return (type, key) => {
4824
4845
  if (cache[key]) {
4825
- warn(`${type} property "${key}" is already defined in ${cache[key]}.`);
4846
+ warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
4826
4847
  } else {
4827
4848
  cache[key] = type;
4828
4849
  }
@@ -4898,7 +4919,7 @@ function applyOptions(instance) {
4898
4919
  checkDuplicateProperties("Methods" /* METHODS */, key);
4899
4920
  }
4900
4921
  } else {
4901
- warn(
4922
+ warn$1(
4902
4923
  `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
4903
4924
  );
4904
4925
  }
@@ -4906,18 +4927,18 @@ function applyOptions(instance) {
4906
4927
  }
4907
4928
  if (dataOptions) {
4908
4929
  if (!isFunction(dataOptions)) {
4909
- warn(
4930
+ warn$1(
4910
4931
  `The data option must be a function. Plain object usage is no longer supported.`
4911
4932
  );
4912
4933
  }
4913
4934
  const data = dataOptions.call(publicThis, publicThis);
4914
4935
  if (isPromise(data)) {
4915
- warn(
4936
+ warn$1(
4916
4937
  `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
4917
4938
  );
4918
4939
  }
4919
4940
  if (!isObject(data)) {
4920
- warn(`data() should return an object.`);
4941
+ warn$1(`data() should return an object.`);
4921
4942
  } else {
4922
4943
  instance.data = reactive(data);
4923
4944
  {
@@ -4941,10 +4962,10 @@ function applyOptions(instance) {
4941
4962
  const opt = computedOptions[key];
4942
4963
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
4943
4964
  if (get === NOOP) {
4944
- warn(`Computed property "${key}" has no getter.`);
4965
+ warn$1(`Computed property "${key}" has no getter.`);
4945
4966
  }
4946
4967
  const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
4947
- warn(
4968
+ warn$1(
4948
4969
  `Write operation failed: computed property "${key}" is readonly.`
4949
4970
  );
4950
4971
  } ;
@@ -5033,7 +5054,6 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
5033
5054
  opt.from || key,
5034
5055
  opt.default,
5035
5056
  true
5036
- /* treat default function as factory */
5037
5057
  );
5038
5058
  } else {
5039
5059
  injected = inject(opt.from || key);
@@ -5070,7 +5090,7 @@ function createWatcher(raw, ctx, publicThis, key) {
5070
5090
  if (isFunction(handler)) {
5071
5091
  watch(getter, handler);
5072
5092
  } else {
5073
- warn(`Invalid watch handler specified by key "${raw}"`, handler);
5093
+ warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
5074
5094
  }
5075
5095
  } else if (isFunction(raw)) {
5076
5096
  watch(getter, raw.bind(publicThis));
@@ -5082,11 +5102,11 @@ function createWatcher(raw, ctx, publicThis, key) {
5082
5102
  if (isFunction(handler)) {
5083
5103
  watch(getter, handler, raw);
5084
5104
  } else {
5085
- warn(`Invalid watch handler specified by key "${raw.handler}"`, handler);
5105
+ warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
5086
5106
  }
5087
5107
  }
5088
5108
  } else {
5089
- warn(`Invalid watch option: "${key}"`, raw);
5109
+ warn$1(`Invalid watch option: "${key}"`, raw);
5090
5110
  }
5091
5111
  }
5092
5112
  function resolveMergedOptions(instance) {
@@ -5131,7 +5151,7 @@ function mergeOptions(to, from, strats, asMixin = false) {
5131
5151
  }
5132
5152
  for (const key in from) {
5133
5153
  if (asMixin && key === "expose") {
5134
- warn(
5154
+ warn$1(
5135
5155
  `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`
5136
5156
  );
5137
5157
  } else {
@@ -5259,7 +5279,7 @@ function createAppAPI(render, hydrate) {
5259
5279
  rootComponent = extend({}, rootComponent);
5260
5280
  }
5261
5281
  if (rootProps != null && !isObject(rootProps)) {
5262
- warn(`root props passed to app.mount() must be an object.`);
5282
+ warn$1(`root props passed to app.mount() must be an object.`);
5263
5283
  rootProps = null;
5264
5284
  }
5265
5285
  const context = createAppContext();
@@ -5278,14 +5298,14 @@ function createAppAPI(render, hydrate) {
5278
5298
  },
5279
5299
  set config(v) {
5280
5300
  {
5281
- warn(
5301
+ warn$1(
5282
5302
  `app.config cannot be replaced. Modify individual options instead.`
5283
5303
  );
5284
5304
  }
5285
5305
  },
5286
5306
  use(plugin, ...options) {
5287
5307
  if (installedPlugins.has(plugin)) {
5288
- warn(`Plugin has already been applied to target app.`);
5308
+ warn$1(`Plugin has already been applied to target app.`);
5289
5309
  } else if (plugin && isFunction(plugin.install)) {
5290
5310
  installedPlugins.add(plugin);
5291
5311
  plugin.install(app, ...options);
@@ -5293,7 +5313,7 @@ function createAppAPI(render, hydrate) {
5293
5313
  installedPlugins.add(plugin);
5294
5314
  plugin(app, ...options);
5295
5315
  } else {
5296
- warn(
5316
+ warn$1(
5297
5317
  `A plugin must either be a function or an object with an "install" function.`
5298
5318
  );
5299
5319
  }
@@ -5304,7 +5324,7 @@ function createAppAPI(render, hydrate) {
5304
5324
  if (!context.mixins.includes(mixin)) {
5305
5325
  context.mixins.push(mixin);
5306
5326
  } else {
5307
- warn(
5327
+ warn$1(
5308
5328
  "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
5309
5329
  );
5310
5330
  }
@@ -5319,7 +5339,7 @@ function createAppAPI(render, hydrate) {
5319
5339
  return context.components[name];
5320
5340
  }
5321
5341
  if (context.components[name]) {
5322
- warn(`Component "${name}" has already been registered in target app.`);
5342
+ warn$1(`Component "${name}" has already been registered in target app.`);
5323
5343
  }
5324
5344
  context.components[name] = component;
5325
5345
  return app;
@@ -5332,7 +5352,7 @@ function createAppAPI(render, hydrate) {
5332
5352
  return context.directives[name];
5333
5353
  }
5334
5354
  if (context.directives[name]) {
5335
- warn(`Directive "${name}" has already been registered in target app.`);
5355
+ warn$1(`Directive "${name}" has already been registered in target app.`);
5336
5356
  }
5337
5357
  context.directives[name] = directive;
5338
5358
  return app;
@@ -5340,7 +5360,7 @@ function createAppAPI(render, hydrate) {
5340
5360
  mount(rootContainer, isHydrate, namespace) {
5341
5361
  if (!isMounted) {
5342
5362
  if (rootContainer.__vue_app__) {
5343
- warn(
5363
+ warn$1(
5344
5364
  `There is already an app instance mounted on the host container.
5345
5365
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
5346
5366
  );
@@ -5375,7 +5395,7 @@ function createAppAPI(render, hydrate) {
5375
5395
  }
5376
5396
  return getExposeProxy(vnode.component) || vnode.component.proxy;
5377
5397
  } else {
5378
- warn(
5398
+ warn$1(
5379
5399
  `App has already been mounted.
5380
5400
  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)\``
5381
5401
  );
@@ -5390,12 +5410,12 @@ If you want to remount the same app, move your app creation logic into a factory
5390
5410
  }
5391
5411
  delete app._container.__vue_app__;
5392
5412
  } else {
5393
- warn(`Cannot unmount an app that is not mounted.`);
5413
+ warn$1(`Cannot unmount an app that is not mounted.`);
5394
5414
  }
5395
5415
  },
5396
5416
  provide(key, value) {
5397
5417
  if (key in context.provides) {
5398
- warn(
5418
+ warn$1(
5399
5419
  `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
5400
5420
  );
5401
5421
  }
@@ -5419,7 +5439,7 @@ let currentApp = null;
5419
5439
  function provide(key, value) {
5420
5440
  if (!currentInstance) {
5421
5441
  {
5422
- warn(`provide() can only be used inside setup().`);
5442
+ warn$1(`provide() can only be used inside setup().`);
5423
5443
  }
5424
5444
  } else {
5425
5445
  let provides = currentInstance.provides;
@@ -5439,10 +5459,10 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
5439
5459
  } else if (arguments.length > 1) {
5440
5460
  return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
5441
5461
  } else {
5442
- warn(`injection "${String(key)}" not found.`);
5462
+ warn$1(`injection "${String(key)}" not found.`);
5443
5463
  }
5444
5464
  } else {
5445
- warn(`inject() can only be used inside setup() or functional components.`);
5465
+ warn$1(`inject() can only be used inside setup() or functional components.`);
5446
5466
  }
5447
5467
  }
5448
5468
  function hasInjectionContext() {
@@ -5519,7 +5539,6 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
5519
5539
  value,
5520
5540
  instance,
5521
5541
  false
5522
- /* isAbsent */
5523
5542
  );
5524
5543
  }
5525
5544
  } else {
@@ -5551,7 +5570,6 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
5551
5570
  void 0,
5552
5571
  instance,
5553
5572
  true
5554
- /* isAbsent */
5555
5573
  );
5556
5574
  }
5557
5575
  } else {
@@ -5686,7 +5704,7 @@ function normalizePropsOptions(comp, appContext, asMixin = false) {
5686
5704
  if (isArray(raw)) {
5687
5705
  for (let i = 0; i < raw.length; i++) {
5688
5706
  if (!isString(raw[i])) {
5689
- warn(`props must be strings when using array syntax.`, raw[i]);
5707
+ warn$1(`props must be strings when using array syntax.`, raw[i]);
5690
5708
  }
5691
5709
  const normalizedKey = camelize(raw[i]);
5692
5710
  if (validatePropName(normalizedKey)) {
@@ -5695,7 +5713,7 @@ function normalizePropsOptions(comp, appContext, asMixin = false) {
5695
5713
  }
5696
5714
  } else if (raw) {
5697
5715
  if (!isObject(raw)) {
5698
- warn(`invalid props options`, raw);
5716
+ warn$1(`invalid props options`, raw);
5699
5717
  }
5700
5718
  for (const key in raw) {
5701
5719
  const normalizedKey = camelize(key);
@@ -5724,7 +5742,7 @@ function validatePropName(key) {
5724
5742
  if (key[0] !== "$") {
5725
5743
  return true;
5726
5744
  } else {
5727
- warn(`Invalid prop name: "${key}" is a reserved property.`);
5745
+ warn$1(`Invalid prop name: "${key}" is a reserved property.`);
5728
5746
  }
5729
5747
  return false;
5730
5748
  }
@@ -5762,7 +5780,7 @@ function validateProps(rawProps, props, instance) {
5762
5780
  function validateProp(name, value, prop, props, isAbsent) {
5763
5781
  const { type, required, validator, skipCheck } = prop;
5764
5782
  if (required && isAbsent) {
5765
- warn('Missing required prop: "' + name + '"');
5783
+ warn$1('Missing required prop: "' + name + '"');
5766
5784
  return;
5767
5785
  }
5768
5786
  if (value == null && !required) {
@@ -5778,12 +5796,12 @@ function validateProp(name, value, prop, props, isAbsent) {
5778
5796
  isValid = valid;
5779
5797
  }
5780
5798
  if (!isValid) {
5781
- warn(getInvalidTypeMessage(name, value, expectedTypes));
5799
+ warn$1(getInvalidTypeMessage(name, value, expectedTypes));
5782
5800
  return;
5783
5801
  }
5784
5802
  }
5785
5803
  if (validator && !validator(value, props)) {
5786
- warn('Invalid prop: custom validator check failed for prop "' + name + '".');
5804
+ warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
5787
5805
  }
5788
5806
  }
5789
5807
  const isSimpleType = /* @__PURE__ */ makeMap(
@@ -5855,7 +5873,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
5855
5873
  }
5856
5874
  const normalized = withCtx((...args) => {
5857
5875
  if (currentInstance) {
5858
- warn(
5876
+ warn$1(
5859
5877
  `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.`
5860
5878
  );
5861
5879
  }
@@ -5874,7 +5892,7 @@ const normalizeObjectSlots = (rawSlots, slots, instance) => {
5874
5892
  slots[key] = normalizeSlot(key, value, ctx);
5875
5893
  } else if (value != null) {
5876
5894
  {
5877
- warn(
5895
+ warn$1(
5878
5896
  `Non-function value encountered for slot "${key}". Prefer function slots for better performance.`
5879
5897
  );
5880
5898
  }
@@ -5885,7 +5903,7 @@ const normalizeObjectSlots = (rawSlots, slots, instance) => {
5885
5903
  };
5886
5904
  const normalizeVNodeSlots = (instance, children) => {
5887
5905
  if (!isKeepAlive(instance.vnode) && true) {
5888
- warn(
5906
+ warn$1(
5889
5907
  `Non-function value encountered for default slot. Prefer function slots for better performance.`
5890
5908
  );
5891
5909
  }
@@ -5967,7 +5985,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
5967
5985
  const value = isUnmount ? null : refValue;
5968
5986
  const { i: owner, r: ref } = rawRef;
5969
5987
  if (!owner) {
5970
- warn(
5988
+ warn$1(
5971
5989
  `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`
5972
5990
  );
5973
5991
  return;
@@ -6022,7 +6040,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
6022
6040
  if (rawRef.k)
6023
6041
  refs[rawRef.k] = value;
6024
6042
  } else {
6025
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
6043
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
6026
6044
  }
6027
6045
  };
6028
6046
  if (value) {
@@ -6032,7 +6050,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
6032
6050
  doSet();
6033
6051
  }
6034
6052
  } else {
6035
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
6053
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
6036
6054
  }
6037
6055
  }
6038
6056
  }
@@ -6064,7 +6082,7 @@ function createHydrationFunctions(rendererInternals) {
6064
6082
  } = rendererInternals;
6065
6083
  const hydrate = (vnode, container) => {
6066
6084
  if (!container.hasChildNodes()) {
6067
- warn(
6085
+ warn$1(
6068
6086
  `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
6069
6087
  );
6070
6088
  patch(null, vnode, container);
@@ -6124,7 +6142,7 @@ function createHydrationFunctions(rendererInternals) {
6124
6142
  } else {
6125
6143
  if (node.data !== vnode.children) {
6126
6144
  hasMismatch = true;
6127
- warn(
6145
+ warn$1(
6128
6146
  `Hydration text mismatch in`,
6129
6147
  node.parentNode,
6130
6148
  `
@@ -6259,7 +6277,7 @@ function createHydrationFunctions(rendererInternals) {
6259
6277
  hydrateNode
6260
6278
  );
6261
6279
  } else {
6262
- warn("Invalid HostVNode type:", type, `(${typeof type})`);
6280
+ warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
6263
6281
  }
6264
6282
  }
6265
6283
  if (ref != null) {
@@ -6300,7 +6318,7 @@ function createHydrationFunctions(rendererInternals) {
6300
6318
  while (next) {
6301
6319
  hasMismatch = true;
6302
6320
  if (!hasWarned) {
6303
- warn(
6321
+ warn$1(
6304
6322
  `Hydration children mismatch on`,
6305
6323
  el,
6306
6324
  `
@@ -6315,7 +6333,7 @@ Server rendered element contains more child nodes than client vdom.`
6315
6333
  } else if (shapeFlag & 8) {
6316
6334
  if (el.textContent !== vnode.children) {
6317
6335
  hasMismatch = true;
6318
- warn(
6336
+ warn$1(
6319
6337
  `Hydration text content mismatch on`,
6320
6338
  el,
6321
6339
  `
@@ -6384,7 +6402,7 @@ Server rendered element contains more child nodes than client vdom.`
6384
6402
  } else {
6385
6403
  hasMismatch = true;
6386
6404
  if (!hasWarned) {
6387
- warn(
6405
+ warn$1(
6388
6406
  `Hydration children mismatch on`,
6389
6407
  container,
6390
6408
  `
@@ -6431,7 +6449,7 @@ Server rendered element contains fewer child nodes than client vdom.`
6431
6449
  };
6432
6450
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
6433
6451
  hasMismatch = true;
6434
- warn(
6452
+ warn$1(
6435
6453
  `Hydration node mismatch:
6436
6454
  - rendered on server:`,
6437
6455
  node,
@@ -6530,7 +6548,7 @@ function propHasMismatch(el, key, clientValue) {
6530
6548
  }
6531
6549
  if (mismatchType) {
6532
6550
  const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
6533
- warn(
6551
+ warn$1(
6534
6552
  `Hydration ${mismatchType} mismatch on`,
6535
6553
  el,
6536
6554
  `
@@ -6609,7 +6627,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6609
6627
  const target = getGlobalThis();
6610
6628
  target.__VUE__ = true;
6611
6629
  {
6612
- setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
6630
+ setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
6613
6631
  }
6614
6632
  const {
6615
6633
  insert: hostInsert,
@@ -6718,7 +6736,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6718
6736
  internals
6719
6737
  );
6720
6738
  } else {
6721
- warn("Invalid VNode type:", type, `(${typeof type})`);
6739
+ warn$1("Invalid VNode type:", type, `(${typeof type})`);
6722
6740
  }
6723
6741
  }
6724
6742
  if (ref != null && parentComponent) {
@@ -7687,7 +7705,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7687
7705
  const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
7688
7706
  if (nextChild.key != null) {
7689
7707
  if (keyToNewIndexMap.has(nextChild.key)) {
7690
- warn(
7708
+ warn$1(
7691
7709
  `Duplicate keys found during update:`,
7692
7710
  JSON.stringify(nextChild.key),
7693
7711
  `Make sure keys are unique.`
@@ -8116,14 +8134,14 @@ const resolveTarget = (props, select) => {
8116
8134
  const targetSelector = props && props.to;
8117
8135
  if (isString(targetSelector)) {
8118
8136
  if (!select) {
8119
- warn(
8137
+ warn$1(
8120
8138
  `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`
8121
8139
  );
8122
8140
  return null;
8123
8141
  } else {
8124
8142
  const target = select(targetSelector);
8125
8143
  if (!target) {
8126
- warn(
8144
+ warn$1(
8127
8145
  `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.`
8128
8146
  );
8129
8147
  }
@@ -8131,7 +8149,7 @@ const resolveTarget = (props, select) => {
8131
8149
  }
8132
8150
  } else {
8133
8151
  if (!targetSelector && !isTeleportDisabled(props)) {
8134
- warn(`Invalid Teleport target: ${targetSelector}`);
8152
+ warn$1(`Invalid Teleport target: ${targetSelector}`);
8135
8153
  }
8136
8154
  return targetSelector;
8137
8155
  }
@@ -8167,7 +8185,7 @@ const TeleportImpl = {
8167
8185
  namespace = "mathml";
8168
8186
  }
8169
8187
  } else if (!disabled) {
8170
- warn("Invalid Teleport target on mount:", target, `(${typeof target})`);
8188
+ warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
8171
8189
  }
8172
8190
  const mount = (container2, anchor2) => {
8173
8191
  if (shapeFlag & 16) {
@@ -8254,7 +8272,7 @@ const TeleportImpl = {
8254
8272
  0
8255
8273
  );
8256
8274
  } else {
8257
- warn(
8275
+ warn$1(
8258
8276
  "Invalid Teleport target on update:",
8259
8277
  target,
8260
8278
  `(${typeof target})`
@@ -8417,7 +8435,6 @@ function createElementBlock(type, props, children, patchFlag, dynamicProps, shap
8417
8435
  dynamicProps,
8418
8436
  shapeFlag,
8419
8437
  true
8420
- /* isBlock */
8421
8438
  )
8422
8439
  );
8423
8440
  }
@@ -8430,7 +8447,6 @@ function createBlock(type, props, children, patchFlag, dynamicProps) {
8430
8447
  patchFlag,
8431
8448
  dynamicProps,
8432
8449
  true
8433
- /* isBlock: prevent a block from tracking itself */
8434
8450
  )
8435
8451
  );
8436
8452
  }
@@ -8504,7 +8520,7 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
8504
8520
  vnode.shapeFlag |= isString(children) ? 8 : 16;
8505
8521
  }
8506
8522
  if (vnode.key !== vnode.key) {
8507
- warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
8523
+ warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
8508
8524
  }
8509
8525
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
8510
8526
  !isBlockNode && // has current parent block
@@ -8523,7 +8539,7 @@ const createVNode = createVNodeWithArgsTransform ;
8523
8539
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
8524
8540
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
8525
8541
  if (!type) {
8526
- warn(`Invalid vnode type when creating vnode: ${type}.`);
8542
+ warn$1(`Invalid vnode type when creating vnode: ${type}.`);
8527
8543
  }
8528
8544
  type = Comment;
8529
8545
  }
@@ -8566,7 +8582,7 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
8566
8582
  const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;
8567
8583
  if (shapeFlag & 4 && isProxy(type)) {
8568
8584
  type = toRaw(type);
8569
- warn(
8585
+ warn$1(
8570
8586
  `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\`.`,
8571
8587
  `
8572
8588
  Component that was made reactive: `,
@@ -8864,7 +8880,7 @@ const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
8864
8880
  function validateComponentName(name, config) {
8865
8881
  const appIsNativeTag = config.isNativeTag || NO;
8866
8882
  if (isBuiltInTag(name) || appIsNativeTag(name)) {
8867
- warn(
8883
+ warn$1(
8868
8884
  "Do not use built-in or reserved HTML elements as component id: " + name
8869
8885
  );
8870
8886
  }
@@ -8903,7 +8919,7 @@ function setupStatefulComponent(instance, isSSR) {
8903
8919
  }
8904
8920
  }
8905
8921
  if (Component.compilerOptions && isRuntimeOnly()) {
8906
- warn(
8922
+ warn$1(
8907
8923
  `"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.`
8908
8924
  );
8909
8925
  }
@@ -8922,7 +8938,10 @@ function setupStatefulComponent(instance, isSSR) {
8922
8938
  setup,
8923
8939
  instance,
8924
8940
  0,
8925
- [shallowReadonly(instance.props) , setupContext]
8941
+ [
8942
+ shallowReadonly(instance.props) ,
8943
+ setupContext
8944
+ ]
8926
8945
  );
8927
8946
  resetTracking();
8928
8947
  unsetCurrentInstance();
@@ -8938,7 +8957,7 @@ function setupStatefulComponent(instance, isSSR) {
8938
8957
  instance.asyncDep = setupResult;
8939
8958
  if (!instance.suspense) {
8940
8959
  const name = (_a = Component.name) != null ? _a : "Anonymous";
8941
- warn(
8960
+ warn$1(
8942
8961
  `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.`
8943
8962
  );
8944
8963
  }
@@ -8957,7 +8976,7 @@ function handleSetupResult(instance, setupResult, isSSR) {
8957
8976
  }
8958
8977
  } else if (isObject(setupResult)) {
8959
8978
  if (isVNode(setupResult)) {
8960
- warn(
8979
+ warn$1(
8961
8980
  `setup() should not return VNodes directly - return a render function instead.`
8962
8981
  );
8963
8982
  }
@@ -8969,7 +8988,7 @@ function handleSetupResult(instance, setupResult, isSSR) {
8969
8988
  exposeSetupStateOnRenderContext(instance);
8970
8989
  }
8971
8990
  } else if (setupResult !== void 0) {
8972
- warn(
8991
+ warn$1(
8973
8992
  `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
8974
8993
  );
8975
8994
  }
@@ -9030,12 +9049,11 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
9030
9049
  }
9031
9050
  if (!Component.render && instance.render === NOOP && !isSSR) {
9032
9051
  if (!compile && Component.template) {
9033
- warn(
9052
+ warn$1(
9034
9053
  `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.esm-browser.js" instead.` )
9035
- /* should not happen */
9036
9054
  );
9037
9055
  } else {
9038
- warn(`Component is missing template or render function.`);
9056
+ warn$1(`Component is missing template or render function.`);
9039
9057
  }
9040
9058
  }
9041
9059
  }
@@ -9049,11 +9067,11 @@ function getAttrsProxy(instance) {
9049
9067
  return target[key];
9050
9068
  },
9051
9069
  set() {
9052
- warn(`setupContext.attrs is readonly.`);
9070
+ warn$1(`setupContext.attrs is readonly.`);
9053
9071
  return false;
9054
9072
  },
9055
9073
  deleteProperty() {
9056
- warn(`setupContext.attrs is readonly.`);
9074
+ warn$1(`setupContext.attrs is readonly.`);
9057
9075
  return false;
9058
9076
  }
9059
9077
  }
@@ -9071,7 +9089,7 @@ function createSetupContext(instance) {
9071
9089
  const expose = (exposed) => {
9072
9090
  {
9073
9091
  if (instance.exposed) {
9074
- warn(`expose() should be called only once per setup().`);
9092
+ warn$1(`expose() should be called only once per setup().`);
9075
9093
  }
9076
9094
  if (exposed != null) {
9077
9095
  let exposedType = typeof exposed;
@@ -9083,7 +9101,7 @@ function createSetupContext(instance) {
9083
9101
  }
9084
9102
  }
9085
9103
  if (exposedType !== "object") {
9086
- warn(
9104
+ warn$1(
9087
9105
  `expose() should be passed a plain object, received ${exposedType}.`
9088
9106
  );
9089
9107
  }
@@ -9183,7 +9201,7 @@ const useSSRContext = () => {
9183
9201
  {
9184
9202
  const ctx = inject(ssrContextKey);
9185
9203
  if (!ctx) {
9186
- warn(
9204
+ warn$1(
9187
9205
  `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
9188
9206
  );
9189
9207
  }
@@ -9392,8 +9410,11 @@ function isMemoSame(cached, memo) {
9392
9410
  return true;
9393
9411
  }
9394
9412
 
9395
- const version = "3.4.0-rc.1";
9413
+ const version = "3.4.0-rc.3";
9414
+ const warn = warn$1 ;
9396
9415
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9416
+ const devtools = devtools$1 ;
9417
+ const setDevtoolsHook = setDevtoolsHook$1 ;
9397
9418
  const ssrUtils = null;
9398
9419
  const resolveFilter = null;
9399
9420
  const compatUtils = null;