@vue/compat 3.5.0-alpha.5 → 3.5.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.0-alpha.5
2
+ * @vue/compat v3.5.0-beta.1
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -61,9 +61,11 @@ const cacheStringFunction = (fn) => {
61
61
  };
62
62
  };
63
63
  const camelizeRE = /-(\w)/g;
64
- const camelize = cacheStringFunction((str) => {
65
- return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
66
- });
64
+ const camelize = cacheStringFunction(
65
+ (str) => {
66
+ return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
67
+ }
68
+ );
67
69
  const hyphenateRE = /\B([A-Z])/g;
68
70
  const hyphenate = cacheStringFunction(
69
71
  (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
@@ -71,10 +73,12 @@ const hyphenate = cacheStringFunction(
71
73
  const capitalize = cacheStringFunction((str) => {
72
74
  return str.charAt(0).toUpperCase() + str.slice(1);
73
75
  });
74
- const toHandlerKey = cacheStringFunction((str) => {
75
- const s = str ? `on${capitalize(str)}` : ``;
76
- return s;
77
- });
76
+ const toHandlerKey = cacheStringFunction(
77
+ (str) => {
78
+ const s = str ? `on${capitalize(str)}` : ``;
79
+ return s;
80
+ }
81
+ );
78
82
  const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
79
83
  const invokeArrayFns = (fns, ...arg) => {
80
84
  for (let i = 0; i < fns.length; i++) {
@@ -386,6 +390,7 @@ class EffectScope {
386
390
  * @internal
387
391
  */
388
392
  this.cleanups = [];
393
+ this._isPaused = false;
389
394
  this.parent = activeEffectScope;
390
395
  if (!detached && activeEffectScope) {
391
396
  this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
@@ -396,6 +401,37 @@ class EffectScope {
396
401
  get active() {
397
402
  return this._active;
398
403
  }
404
+ pause() {
405
+ if (this._active) {
406
+ this._isPaused = true;
407
+ if (this.scopes) {
408
+ for (let i = 0, l = this.scopes.length; i < l; i++) {
409
+ this.scopes[i].pause();
410
+ }
411
+ }
412
+ for (let i = 0, l = this.effects.length; i < l; i++) {
413
+ this.effects[i].pause();
414
+ }
415
+ }
416
+ }
417
+ /**
418
+ * Resumes the effect scope, including all child scopes and effects.
419
+ */
420
+ resume() {
421
+ if (this._active) {
422
+ if (this._isPaused) {
423
+ this._isPaused = false;
424
+ if (this.scopes) {
425
+ for (let i = 0, l = this.scopes.length; i < l; i++) {
426
+ this.scopes[i].resume();
427
+ }
428
+ }
429
+ for (let i = 0, l = this.effects.length; i < l; i++) {
430
+ this.effects[i].resume();
431
+ }
432
+ }
433
+ }
434
+ }
399
435
  run(fn) {
400
436
  if (this._active) {
401
437
  const currentEffectScope = activeEffectScope;
@@ -466,6 +502,7 @@ function onScopeDispose(fn, failSilently = false) {
466
502
  }
467
503
 
468
504
  let activeSub;
505
+ const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
469
506
  class ReactiveEffect {
470
507
  constructor(fn) {
471
508
  this.fn = fn;
@@ -494,6 +531,18 @@ class ReactiveEffect {
494
531
  activeEffectScope.effects.push(this);
495
532
  }
496
533
  }
534
+ pause() {
535
+ this.flags |= 128;
536
+ }
537
+ resume() {
538
+ if (this.flags & 128) {
539
+ this.flags &= ~128;
540
+ if (pausedQueueEffects.has(this)) {
541
+ pausedQueueEffects.delete(this);
542
+ this.trigger();
543
+ }
544
+ }
545
+ }
497
546
  /**
498
547
  * @internal
499
548
  */
@@ -547,7 +596,9 @@ class ReactiveEffect {
547
596
  }
548
597
  }
549
598
  trigger() {
550
- if (this.scheduler) {
599
+ if (this.flags & 128) {
600
+ pausedQueueEffects.add(this);
601
+ } else if (this.scheduler) {
551
602
  this.scheduler();
552
603
  } else {
553
604
  this.runIfDirty();
@@ -867,9 +918,15 @@ function addSub(link) {
867
918
  link.dep.subs = link;
868
919
  }
869
920
  const targetMap = /* @__PURE__ */ new WeakMap();
870
- const ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== "production") ? "Object iterate" : "");
871
- const MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== "production") ? "Map keys iterate" : "");
872
- const ARRAY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== "production") ? "Array iterate" : "");
921
+ const ITERATE_KEY = Symbol(
922
+ !!(process.env.NODE_ENV !== "production") ? "Object iterate" : ""
923
+ );
924
+ const MAP_KEY_ITERATE_KEY = Symbol(
925
+ !!(process.env.NODE_ENV !== "production") ? "Map keys iterate" : ""
926
+ );
927
+ const ARRAY_ITERATE_KEY = Symbol(
928
+ !!(process.env.NODE_ENV !== "production") ? "Array iterate" : ""
929
+ );
873
930
  function track(target, type, key) {
874
931
  if (shouldTrack && activeSub) {
875
932
  let depsMap = targetMap.get(target);
@@ -1163,7 +1220,7 @@ class BaseReactiveHandler {
1163
1220
  return isShallow2;
1164
1221
  } else if (key === "__v_raw") {
1165
1222
  if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
1166
- // this means the reciever is a user proxy of the reactive proxy
1223
+ // this means the receiver is a user proxy of the reactive proxy
1167
1224
  Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
1168
1225
  return target;
1169
1226
  }
@@ -1287,9 +1344,7 @@ class ReadonlyReactiveHandler extends BaseReactiveHandler {
1287
1344
  }
1288
1345
  const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1289
1346
  const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1290
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(
1291
- true
1292
- );
1347
+ const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1293
1348
  const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1294
1349
 
1295
1350
  const toShallow = (value) => value;
@@ -1790,13 +1845,14 @@ function proxyRefs(objectWithRefs) {
1790
1845
  class CustomRefImpl {
1791
1846
  constructor(factory) {
1792
1847
  this["__v_isRef"] = true;
1848
+ this._value = void 0;
1793
1849
  const dep = this.dep = new Dep();
1794
1850
  const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));
1795
1851
  this._get = get;
1796
1852
  this._set = set;
1797
1853
  }
1798
1854
  get value() {
1799
- return this._get();
1855
+ return this._value = this._get();
1800
1856
  }
1801
1857
  set value(newVal) {
1802
1858
  this._set(newVal);
@@ -1821,10 +1877,11 @@ class ObjectRefImpl {
1821
1877
  this._key = _key;
1822
1878
  this._defaultValue = _defaultValue;
1823
1879
  this["__v_isRef"] = true;
1880
+ this._value = void 0;
1824
1881
  }
1825
1882
  get value() {
1826
1883
  const val = this._object[this._key];
1827
- return val === void 0 ? this._defaultValue : val;
1884
+ return this._value = val === void 0 ? this._defaultValue : val;
1828
1885
  }
1829
1886
  set value(newVal) {
1830
1887
  this._object[this._key] = newVal;
@@ -1838,9 +1895,10 @@ class GetterRefImpl {
1838
1895
  this._getter = _getter;
1839
1896
  this["__v_isRef"] = true;
1840
1897
  this["__v_isReadonly"] = true;
1898
+ this._value = void 0;
1841
1899
  }
1842
1900
  get value() {
1843
- return this._getter();
1901
+ return this._value = this._getter();
1844
1902
  }
1845
1903
  }
1846
1904
  function toRef(source, key, defaultValue) {
@@ -1874,7 +1932,8 @@ class ComputedRefImpl {
1874
1932
  /**
1875
1933
  * @internal
1876
1934
  */
1877
- this["__v_isRef"] = true;
1935
+ this.__v_isRef = true;
1936
+ // TODO isolatedDeclarations "__v_isReadonly"
1878
1937
  // A computed is also a subscriber that tracks other deps
1879
1938
  /**
1880
1939
  * @internal
@@ -2504,6 +2563,9 @@ function reload(id, newComp) {
2504
2563
  "[HMR] Root or manually mounted instance modified. Full reload required."
2505
2564
  );
2506
2565
  }
2566
+ if (instance.root.ce && instance !== instance.root) {
2567
+ instance.root.ce._removeChildStyle(oldComp);
2568
+ }
2507
2569
  }
2508
2570
  queuePostFlushCb(() => {
2509
2571
  hmrDirtyComponents.clear();
@@ -2583,9 +2645,7 @@ function devtoolsInitApp(app, version) {
2583
2645
  function devtoolsUnmountApp(app) {
2584
2646
  emit$2("app:unmount" /* APP_UNMOUNT */, app);
2585
2647
  }
2586
- const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(
2587
- "component:added" /* COMPONENT_ADDED */
2588
- );
2648
+ const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */);
2589
2649
  const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */);
2590
2650
  const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(
2591
2651
  "component:removed" /* COMPONENT_REMOVED */
@@ -2609,12 +2669,8 @@ function createDevtoolsComponentHook(hook) {
2609
2669
  );
2610
2670
  };
2611
2671
  }
2612
- const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(
2613
- "perf:start" /* PERFORMANCE_START */
2614
- );
2615
- const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(
2616
- "perf:end" /* PERFORMANCE_END */
2617
- );
2672
+ const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */);
2673
+ const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */);
2618
2674
  function createDevtoolsPerformanceHook(hook) {
2619
2675
  return (component, type, time) => {
2620
2676
  emit$2(hook, component.appContext.app, component.uid, component, type, time);
@@ -4327,6 +4383,7 @@ Server rendered element contains more child nodes than client vdom.`
4327
4383
  }
4328
4384
  if (props) {
4329
4385
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {
4386
+ const isCustomElement = el.tagName.includes("-");
4330
4387
  for (const key in props) {
4331
4388
  if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks
4332
4389
  // as it could have mutated the DOM in any possible way
@@ -4334,7 +4391,7 @@ Server rendered element contains more child nodes than client vdom.`
4334
4391
  logMismatchError();
4335
4392
  }
4336
4393
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
4337
- key[0] === ".") {
4394
+ key[0] === "." || isCustomElement) {
4338
4395
  patchProp(el, key, null, props[key], void 0, parentComponent);
4339
4396
  }
4340
4397
  }
@@ -4670,24 +4727,19 @@ function isMismatchAllowed(el, allowedType) {
4670
4727
  }
4671
4728
  }
4672
4729
 
4673
- const hydrateOnIdle = () => (hydrate) => {
4674
- const id = requestIdleCallback(hydrate);
4730
+ const hydrateOnIdle = (timeout = 1e4) => (hydrate) => {
4731
+ const id = requestIdleCallback(hydrate, { timeout });
4675
4732
  return () => cancelIdleCallback(id);
4676
4733
  };
4677
- const hydrateOnVisible = (margin = 0) => (hydrate, forEach) => {
4678
- const ob = new IntersectionObserver(
4679
- (entries) => {
4680
- for (const e of entries) {
4681
- if (!e.isIntersecting) continue;
4682
- ob.disconnect();
4683
- hydrate();
4684
- break;
4685
- }
4686
- },
4687
- {
4688
- rootMargin: isString(margin) ? margin : margin + "px"
4734
+ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
4735
+ const ob = new IntersectionObserver((entries) => {
4736
+ for (const e of entries) {
4737
+ if (!e.isIntersecting) continue;
4738
+ ob.disconnect();
4739
+ hydrate();
4740
+ break;
4689
4741
  }
4690
- );
4742
+ }, opts);
4691
4743
  forEach((el) => ob.observe(el));
4692
4744
  return () => ob.disconnect();
4693
4745
  };
@@ -5002,7 +5054,7 @@ const KeepAliveImpl = {
5002
5054
  }
5003
5055
  function pruneCacheEntry(key) {
5004
5056
  const cached = cache.get(key);
5005
- if (!current || !isSameVNodeType(cached, current)) {
5057
+ if (cached && (!current || !isSameVNodeType(cached, current))) {
5006
5058
  unmount(cached);
5007
5059
  } else if (current) {
5008
5060
  resetShapeFlag(current);
@@ -5064,6 +5116,10 @@ const KeepAliveImpl = {
5064
5116
  return rawVNode;
5065
5117
  }
5066
5118
  let vnode = getInnerChild(rawVNode);
5119
+ if (vnode.type === Comment) {
5120
+ current = null;
5121
+ return vnode;
5122
+ }
5067
5123
  const comp = vnode.type;
5068
5124
  const name = getComponentName(
5069
5125
  isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp
@@ -5196,17 +5252,19 @@ const createHook = (lifecycle) => (hook, target = currentInstance) => {
5196
5252
  };
5197
5253
  const onBeforeMount = createHook("bm");
5198
5254
  const onMounted = createHook("m");
5199
- const onBeforeUpdate = createHook("bu");
5255
+ const onBeforeUpdate = createHook(
5256
+ "bu"
5257
+ );
5200
5258
  const onUpdated = createHook("u");
5201
- const onBeforeUnmount = createHook("bum");
5202
- const onUnmounted = createHook("um");
5203
- const onServerPrefetch = createHook("sp");
5204
- const onRenderTriggered = createHook(
5205
- "rtg"
5259
+ const onBeforeUnmount = createHook(
5260
+ "bum"
5206
5261
  );
5207
- const onRenderTracked = createHook(
5208
- "rtc"
5262
+ const onUnmounted = createHook("um");
5263
+ const onServerPrefetch = createHook(
5264
+ "sp"
5209
5265
  );
5266
+ const onRenderTriggered = createHook("rtg");
5267
+ const onRenderTracked = createHook("rtc");
5210
5268
  function onErrorCaptured(hook, target = currentInstance) {
5211
5269
  injectHook("ec", hook, target);
5212
5270
  }
@@ -5620,9 +5678,14 @@ function createSlots(slots, dynamicSlots) {
5620
5678
  }
5621
5679
 
5622
5680
  function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5623
- if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {
5681
+ if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
5624
5682
  if (name !== "default") props.name = name;
5625
- return createVNode("slot", props, fallback && fallback());
5683
+ return openBlock(), createBlock(
5684
+ Fragment,
5685
+ null,
5686
+ [createVNode("slot", props, fallback && fallback())],
5687
+ 64
5688
+ );
5626
5689
  }
5627
5690
  let slot = slots[name];
5628
5691
  if (!!(process.env.NODE_ENV !== "production") && slot && slot.length > 1) {
@@ -5924,6 +5987,7 @@ const publicPropertiesMap = (
5924
5987
  $refs: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly(i.refs) : i.refs,
5925
5988
  $parent: (i) => getPublicInstance(i.parent),
5926
5989
  $root: (i) => getPublicInstance(i.root),
5990
+ $host: (i) => i.ce,
5927
5991
  $emit: (i) => i.emit,
5928
5992
  $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,
5929
5993
  $forceUpdate: (i) => i.f || (i.f = () => {
@@ -6084,29 +6148,25 @@ if (!!(process.env.NODE_ENV !== "production") && true) {
6084
6148
  return Reflect.ownKeys(target);
6085
6149
  };
6086
6150
  }
6087
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(
6088
- {},
6089
- PublicInstanceProxyHandlers,
6090
- {
6091
- get(target, key) {
6092
- if (key === Symbol.unscopables) {
6093
- return;
6094
- }
6095
- return PublicInstanceProxyHandlers.get(target, key, target);
6096
- },
6097
- has(_, key) {
6098
- const has = key[0] !== "_" && !isGloballyAllowed(key);
6099
- if (!!(process.env.NODE_ENV !== "production") && !has && PublicInstanceProxyHandlers.has(_, key)) {
6100
- warn$1(
6101
- `Property ${JSON.stringify(
6102
- key
6103
- )} should not start with _ which is a reserved prefix for Vue internals.`
6104
- );
6105
- }
6106
- return has;
6151
+ const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
6152
+ get(target, key) {
6153
+ if (key === Symbol.unscopables) {
6154
+ return;
6155
+ }
6156
+ return PublicInstanceProxyHandlers.get(target, key, target);
6157
+ },
6158
+ has(_, key) {
6159
+ const has = key[0] !== "_" && !isGloballyAllowed(key);
6160
+ if (!!(process.env.NODE_ENV !== "production") && !has && PublicInstanceProxyHandlers.has(_, key)) {
6161
+ warn$1(
6162
+ `Property ${JSON.stringify(
6163
+ key
6164
+ )} should not start with _ which is a reserved prefix for Vue internals.`
6165
+ );
6107
6166
  }
6167
+ return has;
6108
6168
  }
6109
- );
6169
+ });
6110
6170
  function createDevRenderContext(instance) {
6111
6171
  const target = {};
6112
6172
  Object.defineProperty(target, `_`, {
@@ -6795,7 +6855,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6795
6855
  return vm;
6796
6856
  }
6797
6857
  }
6798
- Vue.version = `2.6.14-compat:${"3.5.0-alpha.5"}`;
6858
+ Vue.version = `2.6.14-compat:${"3.5.0-beta.1"}`;
6799
6859
  Vue.config = singletonApp.config;
6800
6860
  Vue.use = (plugin, ...options) => {
6801
6861
  if (plugin && isFunction(plugin.install)) {
@@ -7068,7 +7128,7 @@ function installCompatMount(app, context, render) {
7068
7128
  /* skip options */
7069
7129
  );
7070
7130
  }
7071
- container.innerHTML = "";
7131
+ container.textContent = "";
7072
7132
  render(vnode, container, namespace);
7073
7133
  if (container instanceof Element) {
7074
7134
  container.removeAttribute("v-cloak");
@@ -7282,7 +7342,7 @@ function createAppAPI(render, hydrate) {
7282
7342
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
7283
7343
  );
7284
7344
  }
7285
- const vnode = createVNode(rootComponent, rootProps);
7345
+ const vnode = app._ceVNode || createVNode(rootComponent, rootProps);
7286
7346
  vnode.appContext = context;
7287
7347
  if (namespace === true) {
7288
7348
  namespace = "svg";
@@ -7387,7 +7447,7 @@ function provide(key, value) {
7387
7447
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
7388
7448
  const instance = currentInstance || currentRenderingInstance;
7389
7449
  if (instance || currentApp) {
7390
- const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;
7450
+ const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
7391
7451
  if (provides && key in provides) {
7392
7452
  return provides[key];
7393
7453
  } else if (arguments.length > 1) {
@@ -7661,6 +7721,9 @@ function resolvePropValue(options, props, key, value, instance, isAbsent) {
7661
7721
  } else {
7662
7722
  value = defaultValue;
7663
7723
  }
7724
+ if (instance.ce) {
7725
+ instance.ce._setProp(key, value);
7726
+ }
7664
7727
  }
7665
7728
  if (opt[0 /* shouldCast */]) {
7666
7729
  if (isAbsent && !hasDefault) {
@@ -8701,8 +8764,8 @@ function baseCreateRenderer(options, createHydrationFns) {
8701
8764
  const componentUpdateFn = () => {
8702
8765
  if (!instance.isMounted) {
8703
8766
  let vnodeHook;
8704
- const { el, props, type } = initialVNode;
8705
- const { bm, m, parent } = instance;
8767
+ const { el, props } = initialVNode;
8768
+ const { bm, m, parent, root, type } = instance;
8706
8769
  const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
8707
8770
  toggleRecurse(instance, false);
8708
8771
  if (bm) {
@@ -8748,6 +8811,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8748
8811
  hydrateSubTree();
8749
8812
  }
8750
8813
  } else {
8814
+ if (root.ce) {
8815
+ root.ce._injectChildStyle(type);
8816
+ }
8751
8817
  if (!!(process.env.NODE_ENV !== "production")) {
8752
8818
  startMeasure(instance, `render`);
8753
8819
  }
@@ -9451,13 +9517,13 @@ function baseCreateRenderer(options, createHydrationFns) {
9451
9517
  namespace
9452
9518
  );
9453
9519
  }
9520
+ container._vnode = vnode;
9454
9521
  if (!isFlushing) {
9455
9522
  isFlushing = true;
9456
9523
  flushPreFlushCbs();
9457
9524
  flushPostFlushCbs();
9458
9525
  isFlushing = false;
9459
9526
  }
9460
- container._vnode = vnode;
9461
9527
  };
9462
9528
  const internals = {
9463
9529
  p: patch,
@@ -9631,14 +9697,9 @@ function doWatch(source, cb, {
9631
9697
  const _cb = cb;
9632
9698
  cb = (...args) => {
9633
9699
  _cb(...args);
9634
- unwatch();
9700
+ watchHandle();
9635
9701
  };
9636
9702
  }
9637
- if (!!(process.env.NODE_ENV !== "production") && deep !== void 0 && typeof deep === "number") {
9638
- warn$1(
9639
- `watch() "deep" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`
9640
- );
9641
- }
9642
9703
  if (!!(process.env.NODE_ENV !== "production") && !cb) {
9643
9704
  if (immediate !== void 0) {
9644
9705
  warn$1(
@@ -9664,10 +9725,12 @@ function doWatch(source, cb, {
9664
9725
  );
9665
9726
  };
9666
9727
  const instance = currentInstance;
9667
- const reactiveGetter = (source2) => deep === true ? source2 : (
9668
- // for deep: false, only traverse root-level properties
9669
- traverse(source2, deep === false ? 1 : void 0)
9670
- );
9728
+ const reactiveGetter = (source2) => {
9729
+ if (deep) return source2;
9730
+ if (isShallow(source2) || deep === false || deep === 0)
9731
+ return traverse(source2, 1);
9732
+ return traverse(source2);
9733
+ };
9671
9734
  let getter;
9672
9735
  let forceTrigger = false;
9673
9736
  let isMultiSource = false;
@@ -9723,7 +9786,8 @@ function doWatch(source, cb, {
9723
9786
  }
9724
9787
  if (cb && deep) {
9725
9788
  const baseGetter = getter;
9726
- getter = () => traverse(baseGetter());
9789
+ const depth = deep === true ? Infinity : deep;
9790
+ getter = () => traverse(baseGetter(), depth);
9727
9791
  }
9728
9792
  let cleanup;
9729
9793
  let onCleanup = (fn) => {
@@ -9748,7 +9812,12 @@ function doWatch(source, cb, {
9748
9812
  const ctx = useSSRContext();
9749
9813
  ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
9750
9814
  } else {
9751
- return NOOP;
9815
+ const watchHandle2 = () => {
9816
+ };
9817
+ watchHandle2.stop = NOOP;
9818
+ watchHandle2.resume = NOOP;
9819
+ watchHandle2.pause = NOOP;
9820
+ return watchHandle2;
9752
9821
  }
9753
9822
  }
9754
9823
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -9789,12 +9858,15 @@ function doWatch(source, cb, {
9789
9858
  }
9790
9859
  effect.scheduler = scheduler;
9791
9860
  const scope = getCurrentScope();
9792
- const unwatch = () => {
9861
+ const watchHandle = () => {
9793
9862
  effect.stop();
9794
9863
  if (scope) {
9795
9864
  remove(scope.effects, effect);
9796
9865
  }
9797
9866
  };
9867
+ watchHandle.pause = effect.pause.bind(effect);
9868
+ watchHandle.resume = effect.resume.bind(effect);
9869
+ watchHandle.stop = watchHandle;
9798
9870
  if (!!(process.env.NODE_ENV !== "production")) {
9799
9871
  effect.onTrack = onTrack;
9800
9872
  effect.onTrigger = onTrigger;
@@ -9813,8 +9885,8 @@ function doWatch(source, cb, {
9813
9885
  } else {
9814
9886
  effect.run();
9815
9887
  }
9816
- if (ssrCleanup) ssrCleanup.push(unwatch);
9817
- return unwatch;
9888
+ if (ssrCleanup) ssrCleanup.push(watchHandle);
9889
+ return watchHandle;
9818
9890
  }
9819
9891
  function instanceWatch(source, value, options) {
9820
9892
  const publicThis = this.proxy;
@@ -9904,7 +9976,8 @@ function useModel(props, name, options = EMPTY_OBJ) {
9904
9976
  return options.get ? options.get(localValue) : localValue;
9905
9977
  },
9906
9978
  set(value) {
9907
- if (!hasChanged(value, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
9979
+ const emittedValue = options.set ? options.set(value) : value;
9980
+ if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
9908
9981
  return;
9909
9982
  }
9910
9983
  const rawProps = i.vnode.props;
@@ -9913,7 +9986,6 @@ function useModel(props, name, options = EMPTY_OBJ) {
9913
9986
  localValue = value;
9914
9987
  trigger();
9915
9988
  }
9916
- const emittedValue = options.set ? options.set(value) : value;
9917
9989
  i.emit(`update:${name}`, emittedValue);
9918
9990
  if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
9919
9991
  trigger();
@@ -9951,9 +10023,9 @@ function emit(instance, event, ...rawArgs) {
9951
10023
  } = instance;
9952
10024
  if (emitsOptions) {
9953
10025
  if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
9954
- if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
10026
+ if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {
9955
10027
  warn$1(
9956
- `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
10028
+ `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`
9957
10029
  );
9958
10030
  }
9959
10031
  } else {
@@ -11898,11 +11970,16 @@ function useTemplateRef(key) {
11898
11970
  const r = shallowRef(null);
11899
11971
  if (i) {
11900
11972
  const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
11901
- Object.defineProperty(refs, key, {
11902
- enumerable: true,
11903
- get: () => r.value,
11904
- set: (val) => r.value = val
11905
- });
11973
+ let desc;
11974
+ if (!!(process.env.NODE_ENV !== "production") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
11975
+ warn$1(`useTemplateRef('${key}') already exists.`);
11976
+ } else {
11977
+ Object.defineProperty(refs, key, {
11978
+ enumerable: true,
11979
+ get: () => r.value,
11980
+ set: (val) => r.value = val
11981
+ });
11982
+ }
11906
11983
  } else if (!!(process.env.NODE_ENV !== "production")) {
11907
11984
  warn$1(
11908
11985
  `useTemplateRef() is called when there is no active component instance to be associated with.`
@@ -12136,7 +12213,7 @@ function isMemoSame(cached, memo) {
12136
12213
  return true;
12137
12214
  }
12138
12215
 
12139
- const version = "3.5.0-alpha.5";
12216
+ const version = "3.5.0-beta.1";
12140
12217
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12141
12218
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12142
12219
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -12148,7 +12225,8 @@ const _ssrUtils = {
12148
12225
  setCurrentRenderingInstance,
12149
12226
  isVNode: isVNode,
12150
12227
  normalizeVNode,
12151
- getComponentPublicInstance
12228
+ getComponentPublicInstance,
12229
+ ensureValidVNode
12152
12230
  };
12153
12231
  const ssrUtils = _ssrUtils ;
12154
12232
  const resolveFilter = resolveFilter$1 ;
@@ -12162,6 +12240,18 @@ const _compatUtils = {
12162
12240
  const compatUtils = _compatUtils ;
12163
12241
  const DeprecationTypes = DeprecationTypes$1 ;
12164
12242
 
12243
+ let policy = void 0;
12244
+ const tt = typeof window !== "undefined" && window.trustedTypes;
12245
+ if (tt) {
12246
+ try {
12247
+ policy = /* @__PURE__ */ tt.createPolicy("vue", {
12248
+ createHTML: (val) => val
12249
+ });
12250
+ } catch (e) {
12251
+ !!(process.env.NODE_ENV !== "production") && warn(`Error creating trusted types policy: ${e}`);
12252
+ }
12253
+ }
12254
+ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
12165
12255
  const svgNS = "http://www.w3.org/2000/svg";
12166
12256
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
12167
12257
  const doc = typeof document !== "undefined" ? document : null;
@@ -12209,7 +12299,9 @@ const nodeOps = {
12209
12299
  if (start === end || !(start = start.nextSibling)) break;
12210
12300
  }
12211
12301
  } else {
12212
- templateContainer.innerHTML = namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content;
12302
+ templateContainer.innerHTML = unsafeToTrustedHTML(
12303
+ namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content
12304
+ );
12213
12305
  const template = templateContainer.content;
12214
12306
  if (namespace === "svg" || namespace === "mathml") {
12215
12307
  const wrapper = template.firstChild;
@@ -12616,11 +12708,17 @@ function useCssVars(getter) {
12616
12708
  }
12617
12709
  const setVars = () => {
12618
12710
  const vars = getter(instance.proxy);
12619
- setVarsOnVNode(instance.subTree, vars);
12711
+ if (instance.ce) {
12712
+ setVarsOnNode(instance.ce, vars);
12713
+ } else {
12714
+ setVarsOnVNode(instance.subTree, vars);
12715
+ }
12620
12716
  updateTeleports(vars);
12621
12717
  };
12622
- onMounted(() => {
12718
+ onBeforeMount(() => {
12623
12719
  watchPostEffect(setVars);
12720
+ });
12721
+ onMounted(() => {
12624
12722
  const ob = new MutationObserver(setVars);
12625
12723
  ob.observe(instance.subTree.el.parentNode, { childList: true });
12626
12724
  onUnmounted(() => ob.disconnect());
@@ -13017,16 +13115,24 @@ function shouldSetAsProp(el, key, value, isSVG) {
13017
13115
  if (isNativeOn(key) && isString(value)) {
13018
13116
  return false;
13019
13117
  }
13020
- return key in el;
13118
+ if (key in el) {
13119
+ return true;
13120
+ }
13121
+ if (el._isVueCE && (/[A-Z]/.test(key) || !isString(value))) {
13122
+ return true;
13123
+ }
13124
+ return false;
13021
13125
  }
13022
13126
 
13127
+ const REMOVAL = {};
13023
13128
  /*! #__NO_SIDE_EFFECTS__ */
13024
13129
  // @__NO_SIDE_EFFECTS__
13025
- function defineCustomElement(options, extraOptions, hydrate2) {
13130
+ function defineCustomElement(options, extraOptions, _createApp) {
13026
13131
  const Comp = defineComponent(options, extraOptions);
13132
+ if (isPlainObject(Comp)) extend(Comp, extraOptions);
13027
13133
  class VueCustomElement extends VueElement {
13028
13134
  constructor(initialProps) {
13029
- super(Comp, initialProps, hydrate2);
13135
+ super(Comp, initialProps, _createApp);
13030
13136
  }
13031
13137
  }
13032
13138
  VueCustomElement.def = Comp;
@@ -13034,47 +13140,88 @@ function defineCustomElement(options, extraOptions, hydrate2) {
13034
13140
  }
13035
13141
  /*! #__NO_SIDE_EFFECTS__ */
13036
13142
  const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {
13037
- return /* @__PURE__ */ defineCustomElement(options, extraOptions, hydrate);
13143
+ return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);
13038
13144
  };
13039
13145
  const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
13040
13146
  };
13041
13147
  class VueElement extends BaseClass {
13042
- constructor(_def, _props = {}, hydrate2) {
13148
+ constructor(_def, _props = {}, _createApp = createApp) {
13043
13149
  super();
13044
13150
  this._def = _def;
13045
13151
  this._props = _props;
13152
+ this._createApp = _createApp;
13153
+ this._isVueCE = true;
13046
13154
  /**
13047
13155
  * @internal
13048
13156
  */
13049
13157
  this._instance = null;
13158
+ /**
13159
+ * @internal
13160
+ */
13161
+ this._app = null;
13162
+ /**
13163
+ * @internal
13164
+ */
13165
+ this._nonce = this._def.nonce;
13050
13166
  this._connected = false;
13051
13167
  this._resolved = false;
13052
13168
  this._numberProps = null;
13169
+ this._styleChildren = /* @__PURE__ */ new WeakSet();
13053
13170
  this._ob = null;
13054
- if (this.shadowRoot && hydrate2) {
13055
- hydrate2(this._createVNode(), this.shadowRoot);
13171
+ if (this.shadowRoot && _createApp !== createApp) {
13172
+ this._root = this.shadowRoot;
13173
+ this._mount(_def);
13056
13174
  } else {
13057
13175
  if (!!(process.env.NODE_ENV !== "production") && this.shadowRoot) {
13058
13176
  warn(
13059
13177
  `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
13060
13178
  );
13061
13179
  }
13062
- this.attachShadow({ mode: "open" });
13180
+ if (_def.shadowRoot !== false) {
13181
+ this.attachShadow({ mode: "open" });
13182
+ this._root = this.shadowRoot;
13183
+ } else {
13184
+ this._root = this;
13185
+ }
13063
13186
  if (!this._def.__asyncLoader) {
13064
13187
  this._resolveProps(this._def);
13065
13188
  }
13066
13189
  }
13067
13190
  }
13068
13191
  connectedCallback() {
13192
+ if (!this.shadowRoot) {
13193
+ this._parseSlots();
13194
+ }
13069
13195
  this._connected = true;
13196
+ let parent = this;
13197
+ while (parent = parent && (parent.parentNode || parent.host)) {
13198
+ if (parent instanceof VueElement) {
13199
+ this._parent = parent;
13200
+ break;
13201
+ }
13202
+ }
13070
13203
  if (!this._instance) {
13071
13204
  if (this._resolved) {
13205
+ this._setParent();
13072
13206
  this._update();
13073
13207
  } else {
13074
- this._resolveDef();
13208
+ if (parent && parent._pendingResolve) {
13209
+ this._pendingResolve = parent._pendingResolve.then(() => {
13210
+ this._pendingResolve = void 0;
13211
+ this._resolveDef();
13212
+ });
13213
+ } else {
13214
+ this._resolveDef();
13215
+ }
13075
13216
  }
13076
13217
  }
13077
13218
  }
13219
+ _setParent(parent = this._parent) {
13220
+ if (parent) {
13221
+ this._instance.parent = parent._instance;
13222
+ this._instance.provides = parent._instance.provides;
13223
+ }
13224
+ }
13078
13225
  disconnectedCallback() {
13079
13226
  this._connected = false;
13080
13227
  nextTick(() => {
@@ -13083,8 +13230,9 @@ class VueElement extends BaseClass {
13083
13230
  this._ob.disconnect();
13084
13231
  this._ob = null;
13085
13232
  }
13086
- render(null, this.shadowRoot);
13087
- this._instance = null;
13233
+ this._app && this._app.unmount();
13234
+ this._instance.ce = void 0;
13235
+ this._app = this._instance = null;
13088
13236
  }
13089
13237
  });
13090
13238
  }
@@ -13092,7 +13240,9 @@ class VueElement extends BaseClass {
13092
13240
  * resolve inner component definition (handle possible async component)
13093
13241
  */
13094
13242
  _resolveDef() {
13095
- this._resolved = true;
13243
+ if (this._pendingResolve) {
13244
+ return;
13245
+ }
13096
13246
  for (let i = 0; i < this.attributes.length; i++) {
13097
13247
  this._setAttr(this.attributes[i].name);
13098
13248
  }
@@ -13103,6 +13253,8 @@ class VueElement extends BaseClass {
13103
13253
  });
13104
13254
  this._ob.observe(this, { attributes: true });
13105
13255
  const resolve = (def, isAsync = false) => {
13256
+ this._resolved = true;
13257
+ this._pendingResolve = void 0;
13106
13258
  const { props, styles } = def;
13107
13259
  let numberProps;
13108
13260
  if (props && !isArray(props)) {
@@ -13120,22 +13272,53 @@ class VueElement extends BaseClass {
13120
13272
  if (isAsync) {
13121
13273
  this._resolveProps(def);
13122
13274
  }
13123
- this._applyStyles(styles);
13124
- this._update();
13275
+ if (this.shadowRoot) {
13276
+ this._applyStyles(styles);
13277
+ } else if (!!(process.env.NODE_ENV !== "production") && styles) {
13278
+ warn(
13279
+ "Custom element style injection is not supported when using shadowRoot: false"
13280
+ );
13281
+ }
13282
+ this._mount(def);
13125
13283
  };
13126
13284
  const asyncDef = this._def.__asyncLoader;
13127
13285
  if (asyncDef) {
13128
- asyncDef().then((def) => resolve(def, true));
13286
+ this._pendingResolve = asyncDef().then(
13287
+ (def) => resolve(this._def = def, true)
13288
+ );
13129
13289
  } else {
13130
13290
  resolve(this._def);
13131
13291
  }
13132
13292
  }
13293
+ _mount(def) {
13294
+ if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) && !def.name) {
13295
+ def.name = "VueElement";
13296
+ }
13297
+ this._app = this._createApp(def);
13298
+ if (def.configureApp) {
13299
+ def.configureApp(this._app);
13300
+ }
13301
+ this._app._ceVNode = this._createVNode();
13302
+ this._app.mount(this._root);
13303
+ const exposed = this._instance && this._instance.exposed;
13304
+ if (!exposed) return;
13305
+ for (const key in exposed) {
13306
+ if (!hasOwn(this, key)) {
13307
+ Object.defineProperty(this, key, {
13308
+ // unwrap ref to be consistent with public instance behavior
13309
+ get: () => unref(exposed[key])
13310
+ });
13311
+ } else if (!!(process.env.NODE_ENV !== "production")) {
13312
+ warn(`Exposed property "${key}" already exists on custom element.`);
13313
+ }
13314
+ }
13315
+ }
13133
13316
  _resolveProps(def) {
13134
13317
  const { props } = def;
13135
13318
  const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
13136
13319
  for (const key of Object.keys(this)) {
13137
13320
  if (key[0] !== "_" && declaredPropKeys.includes(key)) {
13138
- this._setProp(key, this[key], true, false);
13321
+ this._setProp(key, this[key]);
13139
13322
  }
13140
13323
  }
13141
13324
  for (const key of declaredPropKeys.map(camelize)) {
@@ -13144,18 +13327,20 @@ class VueElement extends BaseClass {
13144
13327
  return this._getProp(key);
13145
13328
  },
13146
13329
  set(val) {
13147
- this._setProp(key, val);
13330
+ this._setProp(key, val, true, true);
13148
13331
  }
13149
13332
  });
13150
13333
  }
13151
13334
  }
13152
13335
  _setAttr(key) {
13153
- let value = this.hasAttribute(key) ? this.getAttribute(key) : void 0;
13336
+ if (key.startsWith("data-v-")) return;
13337
+ const has = this.hasAttribute(key);
13338
+ let value = has ? this.getAttribute(key) : REMOVAL;
13154
13339
  const camelKey = camelize(key);
13155
- if (this._numberProps && this._numberProps[camelKey]) {
13340
+ if (has && this._numberProps && this._numberProps[camelKey]) {
13156
13341
  value = toNumber(value);
13157
13342
  }
13158
- this._setProp(camelKey, value, false);
13343
+ this._setProp(camelKey, value, false, true);
13159
13344
  }
13160
13345
  /**
13161
13346
  * @internal
@@ -13166,9 +13351,13 @@ class VueElement extends BaseClass {
13166
13351
  /**
13167
13352
  * @internal
13168
13353
  */
13169
- _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
13354
+ _setProp(key, val, shouldReflect = true, shouldUpdate = false) {
13170
13355
  if (val !== this._props[key]) {
13171
- this._props[key] = val;
13356
+ if (val === REMOVAL) {
13357
+ delete this._props[key];
13358
+ } else {
13359
+ this._props[key] = val;
13360
+ }
13172
13361
  if (shouldUpdate && this._instance) {
13173
13362
  this._update();
13174
13363
  }
@@ -13184,18 +13373,22 @@ class VueElement extends BaseClass {
13184
13373
  }
13185
13374
  }
13186
13375
  _update() {
13187
- render(this._createVNode(), this.shadowRoot);
13376
+ render(this._createVNode(), this._root);
13188
13377
  }
13189
13378
  _createVNode() {
13190
- const vnode = createVNode(this._def, extend({}, this._props));
13379
+ const baseProps = {};
13380
+ if (!this.shadowRoot) {
13381
+ baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
13382
+ }
13383
+ const vnode = createVNode(this._def, extend(baseProps, this._props));
13191
13384
  if (!this._instance) {
13192
13385
  vnode.ce = (instance) => {
13193
13386
  this._instance = instance;
13194
- instance.isCE = true;
13387
+ instance.ce = this;
13195
13388
  if (!!(process.env.NODE_ENV !== "production")) {
13196
13389
  instance.ceReload = (newStyles) => {
13197
13390
  if (this._styles) {
13198
- this._styles.forEach((s) => this.shadowRoot.removeChild(s));
13391
+ this._styles.forEach((s) => this._root.removeChild(s));
13199
13392
  this._styles.length = 0;
13200
13393
  }
13201
13394
  this._applyStyles(newStyles);
@@ -13205,9 +13398,10 @@ class VueElement extends BaseClass {
13205
13398
  }
13206
13399
  const dispatch = (event, args) => {
13207
13400
  this.dispatchEvent(
13208
- new CustomEvent(event, {
13209
- detail: args
13210
- })
13401
+ new CustomEvent(
13402
+ event,
13403
+ isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args }
13404
+ )
13211
13405
  );
13212
13406
  };
13213
13407
  instance.emit = (event, ...args) => {
@@ -13216,31 +13410,127 @@ class VueElement extends BaseClass {
13216
13410
  dispatch(hyphenate(event), args);
13217
13411
  }
13218
13412
  };
13219
- let parent = this;
13220
- while (parent = parent && (parent.parentNode || parent.host)) {
13221
- if (parent instanceof VueElement) {
13222
- instance.parent = parent._instance;
13223
- instance.provides = parent._instance.provides;
13224
- break;
13225
- }
13226
- }
13413
+ this._setParent();
13227
13414
  };
13228
13415
  }
13229
13416
  return vnode;
13230
13417
  }
13231
- _applyStyles(styles) {
13232
- if (styles) {
13233
- styles.forEach((css) => {
13234
- const s = document.createElement("style");
13235
- s.textContent = css;
13236
- this.shadowRoot.appendChild(s);
13237
- if (!!(process.env.NODE_ENV !== "production")) {
13418
+ _applyStyles(styles, owner) {
13419
+ if (!styles) return;
13420
+ if (owner) {
13421
+ if (owner === this._def || this._styleChildren.has(owner)) {
13422
+ return;
13423
+ }
13424
+ this._styleChildren.add(owner);
13425
+ }
13426
+ const nonce = this._nonce;
13427
+ for (let i = styles.length - 1; i >= 0; i--) {
13428
+ const s = document.createElement("style");
13429
+ if (nonce) s.setAttribute("nonce", nonce);
13430
+ s.textContent = styles[i];
13431
+ this.shadowRoot.prepend(s);
13432
+ if (!!(process.env.NODE_ENV !== "production")) {
13433
+ if (owner) {
13434
+ if (owner.__hmrId) {
13435
+ if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();
13436
+ let entry = this._childStyles.get(owner.__hmrId);
13437
+ if (!entry) {
13438
+ this._childStyles.set(owner.__hmrId, entry = []);
13439
+ }
13440
+ entry.push(s);
13441
+ }
13442
+ } else {
13238
13443
  (this._styles || (this._styles = [])).push(s);
13239
13444
  }
13240
- });
13445
+ }
13446
+ }
13447
+ }
13448
+ /**
13449
+ * Only called when shaddowRoot is false
13450
+ */
13451
+ _parseSlots() {
13452
+ const slots = this._slots = {};
13453
+ let n;
13454
+ while (n = this.firstChild) {
13455
+ const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default";
13456
+ (slots[slotName] || (slots[slotName] = [])).push(n);
13457
+ this.removeChild(n);
13458
+ }
13459
+ }
13460
+ /**
13461
+ * Only called when shaddowRoot is false
13462
+ */
13463
+ _renderSlots() {
13464
+ const outlets = this.querySelectorAll("slot");
13465
+ const scopeId = this._instance.type.__scopeId;
13466
+ for (let i = 0; i < outlets.length; i++) {
13467
+ const o = outlets[i];
13468
+ const slotName = o.getAttribute("name") || "default";
13469
+ const content = this._slots[slotName];
13470
+ const parent = o.parentNode;
13471
+ if (content) {
13472
+ for (const n of content) {
13473
+ if (scopeId && n.nodeType === 1) {
13474
+ const id = scopeId + "-s";
13475
+ const walker = document.createTreeWalker(n, 1);
13476
+ n.setAttribute(id, "");
13477
+ let child;
13478
+ while (child = walker.nextNode()) {
13479
+ child.setAttribute(id, "");
13480
+ }
13481
+ }
13482
+ parent.insertBefore(n, o);
13483
+ }
13484
+ } else {
13485
+ while (o.firstChild) parent.insertBefore(o.firstChild, o);
13486
+ }
13487
+ parent.removeChild(o);
13488
+ }
13489
+ }
13490
+ /**
13491
+ * @internal
13492
+ */
13493
+ _injectChildStyle(comp) {
13494
+ this._applyStyles(comp.styles, comp);
13495
+ }
13496
+ /**
13497
+ * @internal
13498
+ */
13499
+ _removeChildStyle(comp) {
13500
+ if (!!(process.env.NODE_ENV !== "production")) {
13501
+ this._styleChildren.delete(comp);
13502
+ if (this._childStyles && comp.__hmrId) {
13503
+ const oldStyles = this._childStyles.get(comp.__hmrId);
13504
+ if (oldStyles) {
13505
+ oldStyles.forEach((s) => this._root.removeChild(s));
13506
+ oldStyles.length = 0;
13507
+ }
13508
+ }
13241
13509
  }
13242
13510
  }
13243
13511
  }
13512
+ function useHost(caller) {
13513
+ const instance = getCurrentInstance();
13514
+ const el = instance && instance.ce;
13515
+ if (el) {
13516
+ return el;
13517
+ } else if (!!(process.env.NODE_ENV !== "production")) {
13518
+ if (!instance) {
13519
+ warn(
13520
+ `${caller || "useHost"} called without an active component instance.`
13521
+ );
13522
+ } else {
13523
+ warn(
13524
+ `${caller || "useHost"} can only be used in components defined via defineCustomElement.`
13525
+ );
13526
+ }
13527
+ }
13528
+ return null;
13529
+ }
13530
+ function useShadowRoot() {
13531
+ const el = !!(process.env.NODE_ENV !== "production") ? useHost("useShadowRoot") : useHost();
13532
+ return el && el.shadowRoot;
13533
+ }
13244
13534
 
13245
13535
  function useCssModule(name = "$style") {
13246
13536
  {
@@ -13798,7 +14088,7 @@ const createApp = (...args) => {
13798
14088
  const component = app._component;
13799
14089
  if (!isFunction(component) && !component.render && !component.template) {
13800
14090
  component.template = container.innerHTML;
13801
- if (!!(process.env.NODE_ENV !== "production")) {
14091
+ if (!!(process.env.NODE_ENV !== "production") && container.nodeType === 1) {
13802
14092
  for (let i = 0; i < container.attributes.length; i++) {
13803
14093
  const attr = container.attributes[i];
13804
14094
  if (attr.name !== "v-cloak" && /^(v-|:|@)/.test(attr.name)) {
@@ -13811,7 +14101,9 @@ const createApp = (...args) => {
13811
14101
  }
13812
14102
  }
13813
14103
  }
13814
- container.innerHTML = "";
14104
+ if (container.nodeType === 1) {
14105
+ container.textContent = "";
14106
+ }
13815
14107
  const proxy = mount(container, false, resolveRootNamespace(container));
13816
14108
  if (container instanceof Element) {
13817
14109
  container.removeAttribute("v-cloak");
@@ -14045,9 +14337,11 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
14045
14337
  useAttrs: useAttrs,
14046
14338
  useCssModule: useCssModule,
14047
14339
  useCssVars: useCssVars,
14340
+ useHost: useHost,
14048
14341
  useId: useId,
14049
14342
  useModel: useModel,
14050
14343
  useSSRContext: useSSRContext,
14344
+ useShadowRoot: useShadowRoot,
14051
14345
  useSlots: useSlots,
14052
14346
  useTemplateRef: useTemplateRef,
14053
14347
  useTransitionState: useTransitionState,
@@ -14103,36 +14397,70 @@ const FRAGMENT = Symbol(!!(process.env.NODE_ENV !== "production") ? `Fragment` :
14103
14397
  const TELEPORT = Symbol(!!(process.env.NODE_ENV !== "production") ? `Teleport` : ``);
14104
14398
  const SUSPENSE = Symbol(!!(process.env.NODE_ENV !== "production") ? `Suspense` : ``);
14105
14399
  const KEEP_ALIVE = Symbol(!!(process.env.NODE_ENV !== "production") ? `KeepAlive` : ``);
14106
- const BASE_TRANSITION = Symbol(!!(process.env.NODE_ENV !== "production") ? `BaseTransition` : ``);
14400
+ const BASE_TRANSITION = Symbol(
14401
+ !!(process.env.NODE_ENV !== "production") ? `BaseTransition` : ``
14402
+ );
14107
14403
  const OPEN_BLOCK = Symbol(!!(process.env.NODE_ENV !== "production") ? `openBlock` : ``);
14108
14404
  const CREATE_BLOCK = Symbol(!!(process.env.NODE_ENV !== "production") ? `createBlock` : ``);
14109
- const CREATE_ELEMENT_BLOCK = Symbol(!!(process.env.NODE_ENV !== "production") ? `createElementBlock` : ``);
14405
+ const CREATE_ELEMENT_BLOCK = Symbol(
14406
+ !!(process.env.NODE_ENV !== "production") ? `createElementBlock` : ``
14407
+ );
14110
14408
  const CREATE_VNODE = Symbol(!!(process.env.NODE_ENV !== "production") ? `createVNode` : ``);
14111
- const CREATE_ELEMENT_VNODE = Symbol(!!(process.env.NODE_ENV !== "production") ? `createElementVNode` : ``);
14112
- const CREATE_COMMENT = Symbol(!!(process.env.NODE_ENV !== "production") ? `createCommentVNode` : ``);
14113
- const CREATE_TEXT = Symbol(!!(process.env.NODE_ENV !== "production") ? `createTextVNode` : ``);
14114
- const CREATE_STATIC = Symbol(!!(process.env.NODE_ENV !== "production") ? `createStaticVNode` : ``);
14115
- const RESOLVE_COMPONENT = Symbol(!!(process.env.NODE_ENV !== "production") ? `resolveComponent` : ``);
14409
+ const CREATE_ELEMENT_VNODE = Symbol(
14410
+ !!(process.env.NODE_ENV !== "production") ? `createElementVNode` : ``
14411
+ );
14412
+ const CREATE_COMMENT = Symbol(
14413
+ !!(process.env.NODE_ENV !== "production") ? `createCommentVNode` : ``
14414
+ );
14415
+ const CREATE_TEXT = Symbol(
14416
+ !!(process.env.NODE_ENV !== "production") ? `createTextVNode` : ``
14417
+ );
14418
+ const CREATE_STATIC = Symbol(
14419
+ !!(process.env.NODE_ENV !== "production") ? `createStaticVNode` : ``
14420
+ );
14421
+ const RESOLVE_COMPONENT = Symbol(
14422
+ !!(process.env.NODE_ENV !== "production") ? `resolveComponent` : ``
14423
+ );
14116
14424
  const RESOLVE_DYNAMIC_COMPONENT = Symbol(
14117
14425
  !!(process.env.NODE_ENV !== "production") ? `resolveDynamicComponent` : ``
14118
14426
  );
14119
- const RESOLVE_DIRECTIVE = Symbol(!!(process.env.NODE_ENV !== "production") ? `resolveDirective` : ``);
14120
- const RESOLVE_FILTER = Symbol(!!(process.env.NODE_ENV !== "production") ? `resolveFilter` : ``);
14121
- const WITH_DIRECTIVES = Symbol(!!(process.env.NODE_ENV !== "production") ? `withDirectives` : ``);
14427
+ const RESOLVE_DIRECTIVE = Symbol(
14428
+ !!(process.env.NODE_ENV !== "production") ? `resolveDirective` : ``
14429
+ );
14430
+ const RESOLVE_FILTER = Symbol(
14431
+ !!(process.env.NODE_ENV !== "production") ? `resolveFilter` : ``
14432
+ );
14433
+ const WITH_DIRECTIVES = Symbol(
14434
+ !!(process.env.NODE_ENV !== "production") ? `withDirectives` : ``
14435
+ );
14122
14436
  const RENDER_LIST = Symbol(!!(process.env.NODE_ENV !== "production") ? `renderList` : ``);
14123
14437
  const RENDER_SLOT = Symbol(!!(process.env.NODE_ENV !== "production") ? `renderSlot` : ``);
14124
14438
  const CREATE_SLOTS = Symbol(!!(process.env.NODE_ENV !== "production") ? `createSlots` : ``);
14125
- const TO_DISPLAY_STRING = Symbol(!!(process.env.NODE_ENV !== "production") ? `toDisplayString` : ``);
14439
+ const TO_DISPLAY_STRING = Symbol(
14440
+ !!(process.env.NODE_ENV !== "production") ? `toDisplayString` : ``
14441
+ );
14126
14442
  const MERGE_PROPS = Symbol(!!(process.env.NODE_ENV !== "production") ? `mergeProps` : ``);
14127
- const NORMALIZE_CLASS = Symbol(!!(process.env.NODE_ENV !== "production") ? `normalizeClass` : ``);
14128
- const NORMALIZE_STYLE = Symbol(!!(process.env.NODE_ENV !== "production") ? `normalizeStyle` : ``);
14129
- const NORMALIZE_PROPS = Symbol(!!(process.env.NODE_ENV !== "production") ? `normalizeProps` : ``);
14130
- const GUARD_REACTIVE_PROPS = Symbol(!!(process.env.NODE_ENV !== "production") ? `guardReactiveProps` : ``);
14443
+ const NORMALIZE_CLASS = Symbol(
14444
+ !!(process.env.NODE_ENV !== "production") ? `normalizeClass` : ``
14445
+ );
14446
+ const NORMALIZE_STYLE = Symbol(
14447
+ !!(process.env.NODE_ENV !== "production") ? `normalizeStyle` : ``
14448
+ );
14449
+ const NORMALIZE_PROPS = Symbol(
14450
+ !!(process.env.NODE_ENV !== "production") ? `normalizeProps` : ``
14451
+ );
14452
+ const GUARD_REACTIVE_PROPS = Symbol(
14453
+ !!(process.env.NODE_ENV !== "production") ? `guardReactiveProps` : ``
14454
+ );
14131
14455
  const TO_HANDLERS = Symbol(!!(process.env.NODE_ENV !== "production") ? `toHandlers` : ``);
14132
14456
  const CAMELIZE = Symbol(!!(process.env.NODE_ENV !== "production") ? `camelize` : ``);
14133
14457
  const CAPITALIZE = Symbol(!!(process.env.NODE_ENV !== "production") ? `capitalize` : ``);
14134
- const TO_HANDLER_KEY = Symbol(!!(process.env.NODE_ENV !== "production") ? `toHandlerKey` : ``);
14135
- const SET_BLOCK_TRACKING = Symbol(!!(process.env.NODE_ENV !== "production") ? `setBlockTracking` : ``);
14458
+ const TO_HANDLER_KEY = Symbol(
14459
+ !!(process.env.NODE_ENV !== "production") ? `toHandlerKey` : ``
14460
+ );
14461
+ const SET_BLOCK_TRACKING = Symbol(
14462
+ !!(process.env.NODE_ENV !== "production") ? `setBlockTracking` : ``
14463
+ );
14136
14464
  const PUSH_SCOPE_ID = Symbol(!!(process.env.NODE_ENV !== "production") ? `pushScopeId` : ``);
14137
14465
  const POP_SCOPE_ID = Symbol(!!(process.env.NODE_ENV !== "production") ? `popScopeId` : ``);
14138
14466
  const WITH_CTX = Symbol(!!(process.env.NODE_ENV !== "production") ? `withCtx` : ``);
@@ -18357,7 +18685,7 @@ function resolveComponentType(node, context, ssr = false) {
18357
18685
  } else {
18358
18686
  exp = isProp.exp;
18359
18687
  if (!exp) {
18360
- exp = createSimpleExpression(`is`, false, isProp.loc);
18688
+ exp = createSimpleExpression(`is`, false, isProp.arg.loc);
18361
18689
  }
18362
18690
  }
18363
18691
  if (exp) {
@@ -19330,15 +19658,27 @@ function baseCompile(source, options = {}) {
19330
19658
  const noopDirectiveTransform = () => ({ props: [] });
19331
19659
 
19332
19660
  const V_MODEL_RADIO = Symbol(!!(process.env.NODE_ENV !== "production") ? `vModelRadio` : ``);
19333
- const V_MODEL_CHECKBOX = Symbol(!!(process.env.NODE_ENV !== "production") ? `vModelCheckbox` : ``);
19661
+ const V_MODEL_CHECKBOX = Symbol(
19662
+ !!(process.env.NODE_ENV !== "production") ? `vModelCheckbox` : ``
19663
+ );
19334
19664
  const V_MODEL_TEXT = Symbol(!!(process.env.NODE_ENV !== "production") ? `vModelText` : ``);
19335
- const V_MODEL_SELECT = Symbol(!!(process.env.NODE_ENV !== "production") ? `vModelSelect` : ``);
19336
- const V_MODEL_DYNAMIC = Symbol(!!(process.env.NODE_ENV !== "production") ? `vModelDynamic` : ``);
19337
- const V_ON_WITH_MODIFIERS = Symbol(!!(process.env.NODE_ENV !== "production") ? `vOnModifiersGuard` : ``);
19338
- const V_ON_WITH_KEYS = Symbol(!!(process.env.NODE_ENV !== "production") ? `vOnKeysGuard` : ``);
19665
+ const V_MODEL_SELECT = Symbol(
19666
+ !!(process.env.NODE_ENV !== "production") ? `vModelSelect` : ``
19667
+ );
19668
+ const V_MODEL_DYNAMIC = Symbol(
19669
+ !!(process.env.NODE_ENV !== "production") ? `vModelDynamic` : ``
19670
+ );
19671
+ const V_ON_WITH_MODIFIERS = Symbol(
19672
+ !!(process.env.NODE_ENV !== "production") ? `vOnModifiersGuard` : ``
19673
+ );
19674
+ const V_ON_WITH_KEYS = Symbol(
19675
+ !!(process.env.NODE_ENV !== "production") ? `vOnKeysGuard` : ``
19676
+ );
19339
19677
  const V_SHOW = Symbol(!!(process.env.NODE_ENV !== "production") ? `vShow` : ``);
19340
19678
  const TRANSITION = Symbol(!!(process.env.NODE_ENV !== "production") ? `Transition` : ``);
19341
- const TRANSITION_GROUP = Symbol(!!(process.env.NODE_ENV !== "production") ? `TransitionGroup` : ``);
19679
+ const TRANSITION_GROUP = Symbol(
19680
+ !!(process.env.NODE_ENV !== "production") ? `TransitionGroup` : ``
19681
+ );
19342
19682
  registerRuntimeHelpers({
19343
19683
  [V_MODEL_RADIO]: `vModelRadio`,
19344
19684
  [V_MODEL_CHECKBOX]: `vModelCheckbox`,
@@ -20022,6 +20362,6 @@ registerRuntimeCompiler(compileToFunction);
20022
20362
  const Vue = createCompatVue();
20023
20363
  Vue.compile = compileToFunction;
20024
20364
 
20025
- const { configureCompat } = Vue;
20365
+ const configureCompat = Vue.configureCompat;
20026
20366
 
20027
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
20367
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useHost, useId, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };