@vue/compat 3.6.0-rc.13 → 3.6.0-rc.15

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.6.0-rc.13
2
+ * @vue/compat v3.6.0-rc.15
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -70,10 +70,18 @@ const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" &
70
70
  const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
71
71
  const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
72
72
  const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
73
+ const STRING_CACHE_MAX_SIZE = 1e4;
73
74
  const cacheStringFunction = (fn) => {
74
- const cache = Object.create(null);
75
+ let cache = Object.create(null);
76
+ let size = 0;
75
77
  return ((str) => {
76
- return cache[str] || (cache[str] = fn(str));
78
+ const hit = cache[str];
79
+ if (hit !== void 0) return hit;
80
+ if (++size > STRING_CACHE_MAX_SIZE) {
81
+ cache = Object.create(null);
82
+ size = 1;
83
+ }
84
+ return cache[str] = fn(str);
77
85
  });
78
86
  };
79
87
  const camelizeRE = /-(\w)/g;
@@ -81,22 +89,22 @@ const camelizeReplacer = (_, c) => c ? c.toUpperCase() : "";
81
89
  /**
82
90
  * @private
83
91
  */
84
- const camelize = cacheStringFunction((str) => str.replace(camelizeRE, camelizeReplacer));
92
+ const camelize = /*@__PURE__*/ cacheStringFunction((str) => str.replace(camelizeRE, camelizeReplacer));
85
93
  const hyphenateRE = /\B([A-Z])/g;
86
94
  /**
87
95
  * @private
88
96
  */
89
- const hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase());
97
+ const hyphenate = /*@__PURE__*/ cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase());
90
98
  /**
91
99
  * @private
92
100
  */
93
- const capitalize = cacheStringFunction((str) => {
101
+ const capitalize = /*@__PURE__*/ cacheStringFunction((str) => {
94
102
  return str.charAt(0).toUpperCase() + str.slice(1);
95
103
  });
96
104
  /**
97
105
  * @private
98
106
  */
99
- const toHandlerKey = cacheStringFunction((str) => {
107
+ const toHandlerKey = /*@__PURE__*/ cacheStringFunction((str) => {
100
108
  return str ? `on${capitalize(str)}` : ``;
101
109
  });
102
110
  /**
@@ -300,26 +308,11 @@ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
300
308
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
301
309
  */
302
310
  const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
303
- //#endregion
304
- //#region packages/shared/src/domAttrConfig.ts
305
- /**
306
- * On the client we only need to offer special cases for boolean attributes that
307
- * have different names from their corresponding dom properties:
308
- * - itemscope -> N/A
309
- * - allowfullscreen -> allowFullscreen
310
- * - formnovalidate -> formNoValidate
311
- * - ismap -> isMap
312
- * - nomodule -> noModule
313
- * - novalidate -> noValidate
314
- * - playsinline -> playsInline
315
- * - readonly -> readOnly
316
- */
317
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
318
- const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
311
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap("itemscope,allowfullscreen,disablepictureinpicture,disableremoteplayback,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly");
319
312
  /**
320
313
  * The full list is needed during SSR to produce the correct initial markup.
321
314
  */
322
- const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
315
+ const isBooleanAttr = /*@__PURE__*/ makeMap("itemscope,allowfullscreen,disablepictureinpicture,disableremoteplayback,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
323
316
  /**
324
317
  * Boolean attributes should be included if the value is truthy or ''.
325
318
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -518,42 +511,30 @@ function normalizeCssVarValue(value) {
518
511
  return String(value);
519
512
  }
520
513
  //#endregion
521
- //#region packages/reactivity/src/debug.ts
522
- const triggerEventInfos = [];
523
- function onTrack(sub, debugInfo) {
524
- if (!!!(process.env.NODE_ENV !== "production")) throw new Error(`Internal error: onTrack should be called only in development.`);
525
- if (sub.onTrack) sub.onTrack(extend({ effect: sub }, debugInfo));
526
- }
527
- function onTrigger(sub) {
528
- if (!!!(process.env.NODE_ENV !== "production")) throw new Error(`Internal error: onTrigger should be called only in development.`);
529
- if (sub.onTrigger) {
530
- const debugInfo = triggerEventInfos[triggerEventInfos.length - 1];
531
- sub.onTrigger(extend({ effect: sub }, debugInfo));
514
+ //#region packages/shared/src/vaporFlags.ts
515
+ /**
516
+ * The data of the comment a vapor server render opens the branch of a `v-if`
517
+ * chain with, `<!--[1-->`: the digits are the branch's position in the chain,
518
+ * and `<!--]-->` closes it like a fragment.
519
+ */
520
+ function isVaporBranchStart(data) {
521
+ if (data.length < 2 || data.charCodeAt(0) !== 91) return false;
522
+ for (let i = 1; i < data.length; i++) {
523
+ const c = data.charCodeAt(i);
524
+ if (c < 48 || c > 57) return false;
532
525
  }
526
+ return true;
533
527
  }
534
- function setupOnTrigger(target) {
535
- if (!!!(process.env.NODE_ENV !== "production")) throw new Error(`Internal error: setupOnTrigger should be called only in development.`);
536
- Object.defineProperty(target.prototype, "onTrigger", {
537
- get() {
538
- return this._onTrigger;
539
- },
540
- set(val) {
541
- if (val && !this._onTrigger) setupFlagsHandler(this);
542
- this._onTrigger = val;
543
- }
544
- });
528
+ /**
529
+ * The data of a comment opening a range only a vapor server render emits:
530
+ * `<!--{-->` around the render of a component, or a v-if branch's.
531
+ */
532
+ function isVaporRangeStart(data) {
533
+ return data === "{" || isVaporBranchStart(data);
545
534
  }
546
- function setupFlagsHandler(target) {
547
- target._flags = target.flags;
548
- Object.defineProperty(target, "flags", {
549
- get() {
550
- return target._flags;
551
- },
552
- set(value) {
553
- if (!(target._flags & 48) && !!(value & 48)) onTrigger(this);
554
- target._flags = value;
555
- }
556
- });
535
+ /** The data of the comment closing the range `open` opens. */
536
+ function rangeCloseOf(open) {
537
+ return open === "(" ? ")" : open === "{" ? "}" : "]";
557
538
  }
558
539
  //#endregion
559
540
  //#region packages/reactivity/src/warning.ts
@@ -565,13 +546,7 @@ function warn$2(msg, ...args) {
565
546
  const notifyBuffer = [];
566
547
  let batchDepth = 0;
567
548
  let activeSub = void 0;
568
- let runDepth = 0;
569
- function incRunDepth() {
570
- ++runDepth;
571
- }
572
- function decRunDepth() {
573
- --runDepth;
574
- }
549
+ const CHECKING = 512;
575
550
  let globalVersion = 0;
576
551
  let notifyIndex = 0;
577
552
  let notifyBufferLength = 0;
@@ -620,6 +595,7 @@ function unlink(link, sub = link.sub) {
620
595
  const nextDep = link.nextDep;
621
596
  const nextSub = link.nextSub;
622
597
  const prevSub = link.prevSub;
598
+ link.prevDep = link.nextDep = link.prevSub = link.nextSub = void 0;
623
599
  if (nextDep !== void 0) nextDep.prevDep = prevDep;
624
600
  else sub.depsTail = prevDep;
625
601
  if (prevDep !== void 0) prevDep.nextDep = nextDep;
@@ -627,7 +603,7 @@ function unlink(link, sub = link.sub) {
627
603
  if (nextSub !== void 0) nextSub.prevSub = prevSub;
628
604
  else dep.subsTail = prevSub;
629
605
  if (prevSub !== void 0) prevSub.nextSub = nextSub;
630
- else if ((dep.subs = nextSub) === void 0) {
606
+ else if ((dep.subs = nextSub) === void 0 && dep.flags & 1) {
631
607
  let toRemove = dep.deps;
632
608
  if (toRemove !== void 0) {
633
609
  do
@@ -645,14 +621,12 @@ function propagate(link) {
645
621
  const sub = link.sub;
646
622
  let flags = sub.flags;
647
623
  if (flags & 3) {
648
- if (!(flags & 60)) {
649
- sub.flags = flags | 32;
650
- if (runDepth) sub.flags |= 8;
651
- } else if (!(flags & 12)) flags = 0;
624
+ if (!(flags & 44)) sub.flags = flags | 32;
625
+ else if (!(flags & 12)) flags = 0;
652
626
  else if (!(flags & 4)) sub.flags = flags & -9 | 32;
653
627
  else if (!(flags & 48) && isValidLink(link, sub)) {
654
628
  sub.flags = flags | 40;
655
- flags &= 1;
629
+ flags = sub === activeSub || activeSub === void 0 ? 0 : flags & 1;
656
630
  } else flags = 0;
657
631
  if (flags & 2) notifyBuffer[notifyBufferLength++] = sub;
658
632
  if (flags & 1) {
@@ -688,7 +662,7 @@ function propagate(link) {
688
662
  function startTracking(sub) {
689
663
  ++globalVersion;
690
664
  sub.depsTail = void 0;
691
- sub.flags = sub.flags & -57 | 4;
665
+ sub.flags = sub.flags & -569 | 4;
692
666
  return setActiveSub(sub);
693
667
  }
694
668
  function endTracking(sub, prevSub) {
@@ -696,8 +670,11 @@ function endTracking(sub, prevSub) {
696
670
  activeSub = prevSub;
697
671
  const depsTail = sub.depsTail;
698
672
  let toRemove = depsTail !== void 0 ? depsTail.nextDep : sub.deps;
699
- while (toRemove !== void 0) toRemove = unlink(toRemove, sub);
700
- sub.flags &= -5;
673
+ while (toRemove !== void 0) {
674
+ unlink(toRemove, sub);
675
+ toRemove = depsTail !== void 0 ? depsTail.nextDep : sub.deps;
676
+ }
677
+ if ((sub.flags &= -5) & 8) markRecursed(sub);
701
678
  }
702
679
  function flush() {
703
680
  let hasError = false;
@@ -719,45 +696,67 @@ function flush() {
719
696
  if (hasError) throw error;
720
697
  }
721
698
  function checkDirty(link, sub) {
699
+ try {
700
+ return walkDirty(link, sub);
701
+ } catch (err) {
702
+ markStale(sub);
703
+ throw err;
704
+ }
705
+ }
706
+ function walkDirty(link, sub) {
707
+ const root = sub;
722
708
  let stack;
723
709
  let checkDepth = 0;
710
+ let staleDepth = 0;
711
+ let staleFloor = 0;
724
712
  top: do {
725
713
  const dep = link.dep;
726
714
  const depFlags = dep.flags;
727
715
  let dirty = false;
728
716
  if (sub.flags & 16) dirty = true;
729
717
  else if ((depFlags & 17) === 17) {
730
- const subs = dep.subs;
731
718
  if (dep.update()) {
732
- if (subs.nextSub !== void 0) shallowPropagate(subs);
719
+ const subs = dep.subs;
720
+ if (subs !== void 0 && (subs !== link || subs.nextSub !== void 0)) shallowPropagate(subs);
733
721
  dirty = true;
734
722
  }
735
723
  } else if ((depFlags & 33) === 33) {
736
- stack = {
737
- value: link,
738
- prev: stack
739
- };
740
- link = dep.deps;
741
- sub = dep;
742
- ++checkDepth;
743
- continue;
724
+ const depth = dep === root ? 0 : depFlags & CHECKING ? checkingDepth(dep, stack, checkDepth) : -1;
725
+ if (depth < 0) {
726
+ if (link.nextSub !== void 0 || link.prevSub !== void 0) dep.flags = depFlags | CHECKING;
727
+ stack = {
728
+ value: link,
729
+ prev: stack
730
+ };
731
+ link = dep.deps;
732
+ sub = dep;
733
+ ++checkDepth;
734
+ continue;
735
+ }
736
+ if (depth < checkDepth) {
737
+ staleFloor = staleDepth && staleFloor < depth ? staleFloor : depth;
738
+ staleDepth = checkDepth;
739
+ }
744
740
  }
745
741
  if (!dirty && link.nextDep !== void 0) {
746
742
  link = link.nextDep;
747
743
  continue;
748
744
  }
749
745
  while (checkDepth) {
746
+ const stale = checkDepth === staleDepth;
747
+ if (stale && --staleDepth === staleFloor) staleDepth = 0;
750
748
  --checkDepth;
751
749
  link = stack.value;
752
750
  stack = stack.prev;
753
751
  if (dirty) {
754
- const subs = sub.subs;
755
752
  if (sub.update()) {
756
- if (subs.nextSub !== void 0) shallowPropagate(subs);
753
+ const subs = sub.subs;
754
+ if (subs !== void 0 && (subs !== link || subs.nextSub !== void 0)) shallowPropagate(subs);
757
755
  sub = link.sub;
758
756
  continue;
759
757
  }
760
- } else sub.flags &= -33;
758
+ } else if (stale) sub.flags = sub.flags & -545 | 16;
759
+ else sub.flags &= -545;
761
760
  sub = link.sub;
762
761
  if (link.nextDep !== void 0) {
763
762
  link = link.nextDep;
@@ -765,9 +764,21 @@ function checkDirty(link, sub) {
765
764
  }
766
765
  dirty = false;
767
766
  }
768
- return dirty && !!sub.flags;
767
+ return (dirty || !!(sub.flags & 16)) && !!sub.flags;
769
768
  } while (true);
770
769
  }
770
+ function checkingDepth(dep, stack, depth) {
771
+ for (; stack !== void 0; stack = stack.prev, --depth) if (stack.value.dep === dep) return depth;
772
+ return -1;
773
+ }
774
+ function markStale(sub) {
775
+ const nodes = [sub];
776
+ do {
777
+ sub = nodes.pop();
778
+ sub.flags = sub.flags & -33 | 16;
779
+ for (let link = sub.deps; link !== void 0; link = link.nextDep) if (link.dep.flags & 32) nodes.push(link.dep);
780
+ } while (nodes.length);
781
+ }
771
782
  function shallowPropagate(link) {
772
783
  do {
773
784
  const sub = link.sub;
@@ -785,6 +796,76 @@ function isValidLink(checkLink, sub) {
785
796
  }
786
797
  return false;
787
798
  }
799
+ function markRecursed(sub) {
800
+ const nodes = [sub];
801
+ do {
802
+ sub = nodes.pop();
803
+ for (let link = sub.deps; link !== void 0; link = link.nextDep) {
804
+ const dep = link.dep;
805
+ if ((dep.flags & 40) === 32) {
806
+ dep.flags |= 8;
807
+ nodes.push(dep);
808
+ }
809
+ }
810
+ } while (nodes.length);
811
+ }
812
+ //#endregion
813
+ //#region packages/reactivity/src/debug.ts
814
+ const triggered = [];
815
+ function onTrack(sub, debugInfo) {
816
+ if (!!!(process.env.NODE_ENV !== "production")) throw new Error(`Internal error: onTrack should be called only in development.`);
817
+ if (sub.onTrack) sub.onTrack(extend({ effect: sub }, debugInfo));
818
+ }
819
+ function onTrigger(sub, debugInfo) {
820
+ if (!!!(process.env.NODE_ENV !== "production")) throw new Error(`Internal error: onTrigger should be called only in development.`);
821
+ if (sub.onTrigger) sub.onTrigger(extend({ effect: sub }, debugInfo));
822
+ }
823
+ function startTrigger() {
824
+ if (!!!(process.env.NODE_ENV !== "production")) throw new Error(`Internal error: startTrigger should be called only in development.`);
825
+ triggered.push([]);
826
+ }
827
+ function endTrigger(debugInfo) {
828
+ if (!!!(process.env.NODE_ENV !== "production")) throw new Error(`Internal error: endTrigger should be called only in development.`);
829
+ const subs = triggered.pop();
830
+ if (subs.length) {
831
+ startBatch();
832
+ try {
833
+ for (let i = 0; i < subs.length; i++) {
834
+ const sub = subs[i];
835
+ if (sub.flags & 3) onTrigger(sub, debugInfo);
836
+ }
837
+ } finally {
838
+ endBatch();
839
+ }
840
+ }
841
+ }
842
+ function setupOnTrigger(target) {
843
+ if (!!!(process.env.NODE_ENV !== "production")) throw new Error(`Internal error: setupOnTrigger should be called only in development.`);
844
+ Object.defineProperty(target.prototype, "onTrigger", {
845
+ get() {
846
+ return this._onTrigger;
847
+ },
848
+ set(val) {
849
+ if (val && !this._onTrigger) setupFlagsHandler(this);
850
+ this._onTrigger = val;
851
+ }
852
+ });
853
+ }
854
+ function setupFlagsHandler(target) {
855
+ target._flags = target.flags;
856
+ Object.defineProperty(target, "flags", {
857
+ get() {
858
+ return target._flags;
859
+ },
860
+ set(value) {
861
+ if (!(target._flags & 48) && !!(value & 48)) {
862
+ if (triggered.length) triggered[triggered.length - 1].push(this);
863
+ else onTrigger(this);
864
+ }
865
+ target._flags = value;
866
+ }
867
+ });
868
+ }
788
869
  //#endregion
789
870
  //#region packages/reactivity/src/dep.ts
790
871
  var Dep = class {
@@ -844,20 +925,12 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
844
925
  if (!depsMap) return;
845
926
  const run = (dep) => {
846
927
  if (dep !== void 0 && dep.subs !== void 0) {
847
- if (!!(process.env.NODE_ENV !== "production")) triggerEventInfos.push({
848
- target,
849
- type,
850
- key,
851
- newValue,
852
- oldValue,
853
- oldTarget
854
- });
855
928
  propagate(dep.subs);
856
929
  shallowPropagate(dep.subs);
857
- if (!!(process.env.NODE_ENV !== "production")) triggerEventInfos.pop();
858
930
  }
859
931
  };
860
932
  startBatch();
933
+ if (!!(process.env.NODE_ENV !== "production")) startTrigger();
861
934
  if (type === "clear") depsMap.forEach(run);
862
935
  else {
863
936
  const targetIsArray = isArray(target);
@@ -887,6 +960,14 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
887
960
  }
888
961
  }
889
962
  }
963
+ if (!!(process.env.NODE_ENV !== "production")) endTrigger({
964
+ target,
965
+ type,
966
+ key,
967
+ newValue,
968
+ oldValue,
969
+ oldTarget
970
+ });
890
971
  endBatch();
891
972
  }
892
973
  function getDepFromReactive(object, key) {
@@ -1101,7 +1182,7 @@ function noTracking(self, method, args = []) {
1101
1182
  //#endregion
1102
1183
  //#region packages/reactivity/src/baseHandlers.ts
1103
1184
  const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
1104
- const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1185
+ const builtInSymbols = /*@__PURE__*/ new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1105
1186
  function hasOwnProperty(key) {
1106
1187
  if (!isSymbol(key)) key = String(key);
1107
1188
  const obj = /* @__PURE__ */ toRaw(this);
@@ -1685,16 +1766,16 @@ var RefImpl = class {
1685
1766
  this._value = !useDirectValue && this._wrap ? this._wrap(newValue) : newValue;
1686
1767
  const subs = this.subs;
1687
1768
  if (subs !== void 0) {
1688
- if (!!(process.env.NODE_ENV !== "production")) triggerEventInfos.push({
1769
+ if (!!(process.env.NODE_ENV !== "production")) startTrigger();
1770
+ propagate(subs);
1771
+ if (!!(process.env.NODE_ENV !== "production")) endTrigger({
1689
1772
  target: this,
1690
1773
  type: "set",
1691
1774
  key: "value",
1692
1775
  newValue,
1693
1776
  oldValue
1694
1777
  });
1695
- propagate(subs);
1696
1778
  if (!batchDepth) flush();
1697
- if (!!(process.env.NODE_ENV !== "production")) triggerEventInfos.pop();
1698
1779
  }
1699
1780
  }
1700
1781
  }
@@ -1731,8 +1812,10 @@ var RefImpl = class {
1731
1812
  function triggerRef(ref) {
1732
1813
  const dep = ref.dep;
1733
1814
  if (dep !== void 0 && dep.subs !== void 0) {
1815
+ if (!!(process.env.NODE_ENV !== "production")) startTrigger();
1734
1816
  propagate(dep.subs);
1735
1817
  shallowPropagate(dep.subs);
1818
+ if (!!(process.env.NODE_ENV !== "production")) endTrigger();
1736
1819
  if (!batchDepth) flush();
1737
1820
  }
1738
1821
  }
@@ -1923,6 +2006,10 @@ var ReactiveEffect = class {
1923
2006
  get active() {
1924
2007
  return !(this.flags & 1024);
1925
2008
  }
2009
+ /** @internal */
2010
+ get running() {
2011
+ return !!(this.flags & 4);
2012
+ }
1926
2013
  pause() {
1927
2014
  this.flags |= 256;
1928
2015
  }
@@ -1936,11 +2023,9 @@ var ReactiveEffect = class {
1936
2023
  if (!this.active) return this.fn();
1937
2024
  cleanup(this);
1938
2025
  const prevSub = startTracking(this);
1939
- incRunDepth();
1940
2026
  try {
1941
2027
  return this.fn();
1942
2028
  } finally {
1943
- decRunDepth();
1944
2029
  endTracking(this, prevSub);
1945
2030
  const flags = this.flags;
1946
2031
  if ((flags & 136) === 136) {
@@ -1963,9 +2048,9 @@ var ReactiveEffect = class {
1963
2048
  if (flags & 16) return true;
1964
2049
  if (flags & 32) {
1965
2050
  if (checkDirty(this.deps, this)) {
1966
- this.flags = flags | 16;
2051
+ if (this.active) this.flags |= 16;
1967
2052
  return true;
1968
- } else this.flags = flags & -33;
2053
+ } else this.flags &= -33;
1969
2054
  }
1970
2055
  return false;
1971
2056
  }
@@ -1977,20 +2062,19 @@ function effect(fn, options) {
1977
2062
  if (options) {
1978
2063
  const { onStop, scheduler } = options;
1979
2064
  if (onStop) {
1980
- options.onStop = void 0;
1981
2065
  const stop = e.stop.bind(e);
1982
2066
  e.stop = () => {
1983
2067
  stop();
1984
2068
  onStop();
1985
2069
  };
1986
2070
  }
1987
- if (scheduler) {
1988
- options.scheduler = void 0;
1989
- e.notify = () => {
1990
- if (!(e.flags & 256)) scheduler();
1991
- };
2071
+ if (scheduler) e.notify = () => {
2072
+ if (!(e.flags & 1280)) scheduler();
2073
+ };
2074
+ if (!!(process.env.NODE_ENV !== "production")) {
2075
+ e.onTrack = options.onTrack;
2076
+ e.onTrigger = options.onTrigger;
1992
2077
  }
1993
- extend(e, options);
1994
2078
  }
1995
2079
  try {
1996
2080
  e.run();
@@ -2050,8 +2134,10 @@ var EffectScope = class {
2050
2134
  const flags = this.flags;
2051
2135
  if (flags & 256) {
2052
2136
  this.flags = flags & -257;
2053
- for (let link = this.deps; link !== void 0; link = link.nextDep) {
2054
- const dep = link.dep;
2137
+ const deps = [];
2138
+ for (let link = this.deps; link !== void 0; link = link.nextDep) deps.push(link.dep);
2139
+ for (let i = 0; i < deps.length; i++) {
2140
+ const dep = deps[i];
2055
2141
  if ("resume" in dep) dep.resume();
2056
2142
  }
2057
2143
  }
@@ -2080,8 +2166,10 @@ var EffectScope = class {
2080
2166
  while (dep !== void 0) {
2081
2167
  const node = dep.dep;
2082
2168
  if ("stop" in node) {
2083
- dep = dep.nextDep;
2169
+ const prev = dep.prevDep;
2084
2170
  node.stop();
2171
+ const next = prev !== void 0 ? prev.nextDep : this.deps;
2172
+ dep = next === dep ? dep.nextDep : next;
2085
2173
  } else dep = unlink(dep, this);
2086
2174
  }
2087
2175
  cleanup(this);
@@ -2122,11 +2210,14 @@ function setCurrentScope(scope) {
2122
2210
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#onscopedispose}
2123
2211
  */
2124
2212
  function onScopeDispose(fn, failSilently = false) {
2125
- if (activeEffectScope !== void 0) activeEffectScope.cleanups[activeEffectScope.cleanupsLength++] = fn;
2126
- else if (!!(process.env.NODE_ENV !== "production") && !failSilently) warn$2("onScopeDispose() is called when there is no active effect scope to be associated with.");
2213
+ if (activeEffectScope !== void 0) {
2214
+ if (activeEffectScope.active) activeEffectScope.cleanups[activeEffectScope.cleanupsLength++] = fn;
2215
+ else fn();
2216
+ } else if (!!(process.env.NODE_ENV !== "production") && !failSilently) warn$2("onScopeDispose() is called when there is no active effect scope to be associated with.");
2127
2217
  }
2128
2218
  //#endregion
2129
2219
  //#region packages/reactivity/src/computed.ts
2220
+ const FAILED = 64;
2130
2221
  /**
2131
2222
  * @private exported by @vue/reactivity for Vue core use, but not exported from
2132
2223
  * the main vue package
@@ -2175,12 +2266,24 @@ var ComputedRefImpl = class {
2175
2266
  }
2176
2267
  get value() {
2177
2268
  const flags = this.flags;
2178
- if (flags & 16 || flags & 32 && checkDirty(this.deps, this)) {
2179
- if (this.update()) {
2180
- const subs = this.subs;
2181
- if (subs !== void 0) shallowPropagate(subs);
2182
- }
2183
- } else if (flags & 32) this.flags = flags & -33;
2269
+ try {
2270
+ if (flags & 16 || flags & 32 && checkDirty(this.deps, this)) {
2271
+ if (this.update()) {
2272
+ const subs = this.subs;
2273
+ if (subs !== void 0) shallowPropagate(subs);
2274
+ }
2275
+ } else if (flags & 32) this.flags = flags & -33;
2276
+ } catch (err) {
2277
+ if (activeSub !== void 0) {
2278
+ if (!!(process.env.NODE_ENV !== "production")) onTrack(activeSub, {
2279
+ target: this,
2280
+ type: "get",
2281
+ key: "value"
2282
+ });
2283
+ link(this, activeSub);
2284
+ } else if (activeEffectScope !== void 0) link(this, activeEffectScope);
2285
+ throw err;
2286
+ }
2184
2287
  if (activeSub !== void 0) {
2185
2288
  if (!!(process.env.NODE_ENV !== "production")) onTrack(activeSub, {
2186
2289
  target: this,
@@ -2188,7 +2291,18 @@ var ComputedRefImpl = class {
2188
2291
  key: "value"
2189
2292
  });
2190
2293
  link(this, activeSub);
2191
- } else if (activeEffectScope !== void 0) link(this, activeEffectScope);
2294
+ } else if (activeEffectScope !== void 0) {
2295
+ if (activeEffectScope.active) link(this, activeEffectScope);
2296
+ else if (this.subs === void 0) {
2297
+ let dep = this.deps;
2298
+ if (dep !== void 0) {
2299
+ do
2300
+ dep = unlink(dep, this);
2301
+ while (dep !== void 0);
2302
+ this.flags |= 16;
2303
+ }
2304
+ }
2305
+ }
2192
2306
  return this._value;
2193
2307
  }
2194
2308
  set value(newValue) {
@@ -2200,11 +2314,15 @@ var ComputedRefImpl = class {
2200
2314
  try {
2201
2315
  const oldValue = this._value;
2202
2316
  const newValue = this.fn(oldValue);
2203
- if (hasChanged(oldValue, newValue)) {
2317
+ if (hasChanged(oldValue, newValue) || this.flags & FAILED) {
2204
2318
  this._value = newValue;
2319
+ this.flags &= -65;
2205
2320
  return true;
2206
2321
  }
2207
2322
  return false;
2323
+ } catch (err) {
2324
+ this.flags |= FAILED;
2325
+ throw err;
2208
2326
  } finally {
2209
2327
  endTracking(this, prevSub);
2210
2328
  }
@@ -2225,6 +2343,7 @@ function computed$1(getterOrOptions, debugOptions, isSSR = false) {
2225
2343
  cRef.onTrack = debugOptions.onTrack;
2226
2344
  cRef.onTrigger = debugOptions.onTrigger;
2227
2345
  }
2346
+ if (isSSR && activeEffectScope !== void 0) link(cRef, activeEffectScope);
2228
2347
  return cRef;
2229
2348
  }
2230
2349
  //#endregion
@@ -2598,7 +2717,7 @@ function callWithAsyncErrorHandling(fn, instance, type, args) {
2598
2717
  if (isFunction(fn)) {
2599
2718
  const res = callWithErrorHandling(fn, instance, type, args);
2600
2719
  if (res && isPromise(res)) res.catch((err) => {
2601
- handleError(err, instance, type);
2720
+ handleError(err, instance, type, void 0, true);
2602
2721
  });
2603
2722
  return res;
2604
2723
  }
@@ -2608,7 +2727,7 @@ function callWithAsyncErrorHandling(fn, instance, type, args) {
2608
2727
  return values;
2609
2728
  } else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`);
2610
2729
  }
2611
- function handleError(err, instance, type, throwInDev = true) {
2730
+ function handleError(err, instance, type, throwInDev = true, isAsyncError = false) {
2612
2731
  const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;
2613
2732
  if (instance) {
2614
2733
  let cur = instance.parent;
@@ -2616,7 +2735,7 @@ function handleError(err, instance, type, throwInDev = true) {
2616
2735
  const errorInfo = !!(process.env.NODE_ENV !== "production") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;
2617
2736
  while (cur) {
2618
2737
  const errorCapturedHooks = cur.ec;
2619
- if (errorCapturedHooks) {
2738
+ if (errorCapturedHooks && !cur.isUnmounted && (!isAsyncError || cur.scope.active)) {
2620
2739
  for (let i = 0; i < errorCapturedHooks.length; i++) if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) return;
2621
2740
  }
2622
2741
  cur = cur.parent;
@@ -2655,7 +2774,9 @@ const SchedulerJobFlags = {
2655
2774
  "DISPOSED": 4,
2656
2775
  "4": "DISPOSED",
2657
2776
  "REQUEUE_ON_SUSPENSE_DISCARD": 8,
2658
- "8": "REQUEUE_ON_SUSPENSE_DISCARD"
2777
+ "8": "REQUEUE_ON_SUSPENSE_DISCARD",
2778
+ "FLUSH_ON_SUSPENSE_RESOLVE": 16,
2779
+ "16": "FLUSH_ON_SUSPENSE_RESOLVE"
2659
2780
  };
2660
2781
  const jobs = [];
2661
2782
  let postJobs = [];
@@ -2932,7 +3053,11 @@ function reload(id, newComp) {
2932
3053
  updateComponentDef(record.initialDef, newComp);
2933
3054
  const instances = [...record.instances];
2934
3055
  if (isVapor && newComp.__vapor && !instances.some((instance) => instance.parent && !instance.parent.vapor) && !instances.some((i) => i.ceReload)) {
2935
- for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
3056
+ for (const instance of instances) {
3057
+ if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
3058
+ const oldComp = normalizeClassComponent(instance.type);
3059
+ if (oldComp !== record.initialDef) updateComponentDef(oldComp, newComp);
3060
+ }
2936
3061
  const dirtyInstances = new Set(instances);
2937
3062
  const rerenderedParents = /* @__PURE__ */ new Set();
2938
3063
  runWithHmrUpdating(() => {
@@ -2973,7 +3098,25 @@ function reload(id, newComp) {
2973
3098
  if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2974
3099
  }
2975
3100
  parents.forEach((parent) => {
2976
- queueJob(() => {
3101
+ const children = instances.filter((instance) => instance.parent === parent);
3102
+ const update = () => {
3103
+ if (!parent.scope.active) return;
3104
+ const activeChildren = children.filter((instance) => instance.scope.active);
3105
+ if (!activeChildren.length) return;
3106
+ const pending = activeChildren.find((instance) => instance.asyncDep && !instance.asyncResolved) || locateUnresolvedAsyncRoot(parent);
3107
+ if (pending) {
3108
+ pending.asyncDep.catch(NOOP).then(() => {
3109
+ if (parent.scope.active && (pending.asyncResolved || !pending.scope.active)) queueJob(update);
3110
+ });
3111
+ return;
3112
+ }
3113
+ for (const instance of activeChildren) {
3114
+ const oldComp = normalizeClassComponent(instance.type);
3115
+ let dirtyInstances = hmrDirtyComponents.get(oldComp);
3116
+ if (!dirtyInstances) hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
3117
+ dirtyInstances.add(instance);
3118
+ hmrDirtyComponentsMode.set(oldComp, !!isVapor);
3119
+ }
2977
3120
  runWithHmrUpdating(() => {
2978
3121
  if (parent.vapor) parent.hmrRerender();
2979
3122
  else {
@@ -2984,7 +3127,12 @@ function reload(id, newComp) {
2984
3127
  }
2985
3128
  }
2986
3129
  });
2987
- });
3130
+ queuePostFlushCb(() => {
3131
+ hmrDirtyComponents.clear();
3132
+ hmrDirtyComponentsMode.clear();
3133
+ });
3134
+ };
3135
+ queueJob(update);
2988
3136
  });
2989
3137
  }
2990
3138
  queuePostFlushCb(() => {
@@ -3534,11 +3682,28 @@ function withDirectives(vnode, directives) {
3534
3682
  return vnode;
3535
3683
  }
3536
3684
  function invokeDirectiveHook(vnode, prevVNode, instance, name) {
3537
- const bindings = vnode.dirs;
3685
+ let hookVNode = vnode;
3686
+ if (name === "beforeMount") vnode._mount = vnode;
3687
+ else if (name === "beforeUpdate") {
3688
+ const mount = prevVNode && prevVNode._mount;
3689
+ if (mount) {
3690
+ mount._latest = vnode;
3691
+ vnode._mount = mount;
3692
+ }
3693
+ } else if (name === "mounted") {
3694
+ const latest = vnode._latest;
3695
+ vnode._mount = vnode._latest = void 0;
3696
+ if (latest) {
3697
+ hookVNode = latest;
3698
+ latest._mount = void 0;
3699
+ }
3700
+ }
3701
+ const bindings = hookVNode.dirs;
3538
3702
  const oldBindings = prevVNode && prevVNode.dirs;
3539
3703
  for (let i = 0; i < bindings.length; i++) {
3540
- const binding = bindings[i];
3704
+ let binding = bindings[i];
3541
3705
  if (oldBindings) binding.oldValue = oldBindings[i].value;
3706
+ else if (name === "mounted" && binding.oldValue !== void 0) binding = extend({}, binding, { oldValue: void 0 });
3542
3707
  let hook = binding.dir[name];
3543
3708
  if (!hook) hook = mapCompatDirectiveHook(name, binding.dir, instance);
3544
3709
  if (hook) {
@@ -3546,7 +3711,7 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
3546
3711
  callWithAsyncErrorHandling(hook, instance, 8, [
3547
3712
  vnode.el,
3548
3713
  binding,
3549
- vnode,
3714
+ hookVNode,
3550
3715
  prevVNode
3551
3716
  ]);
3552
3717
  setActiveSub(prevSub);
@@ -3991,7 +4156,15 @@ const BaseTransitionImpl = {
3991
4156
  const { mode } = rawProps;
3992
4157
  checkTransitionMode(mode);
3993
4158
  return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3994
- if (!(instance.effect.flags & 1024)) instance.update();
4159
+ if (!(instance.effect.flags & 1024)) {
4160
+ if (instance.effect.running) {
4161
+ const job = () => {
4162
+ if (!(instance.effect.flags & 1024)) instance.update();
4163
+ };
4164
+ job.i = instance;
4165
+ queueJob(job);
4166
+ } else instance.update();
4167
+ }
3995
4168
  }) : NOOP);
3996
4169
  };
3997
4170
  }
@@ -4023,7 +4196,7 @@ function getLeavingNodesForType(state, vnode) {
4023
4196
  }
4024
4197
  return leavingVNodesCache;
4025
4198
  }
4026
- function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4199
+ function resolveTransitionHooks(vnode, props, state, instance) {
4027
4200
  const key = String(vnode.key);
4028
4201
  const leavingVNodesCache = getLeavingNodesForType(state, vnode);
4029
4202
  const hooks = baseResolveTransitionHooks({
@@ -4046,9 +4219,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4046
4219
  }
4047
4220
  },
4048
4221
  cloneHooks: (vnode) => {
4049
- const hooks = resolveTransitionHooks(vnode, props, state, instance, postClone);
4050
- if (postClone) postClone(hooks);
4051
- return hooks;
4222
+ return resolveTransitionHooks(vnode, props, state, instance);
4052
4223
  }
4053
4224
  }, props, state, instance);
4054
4225
  if (isVaporInteropEnabled && vnode.type === VaporSlot) extend(hooks, {
@@ -4086,7 +4257,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
4086
4257
  callHook(hook, [el]);
4087
4258
  },
4088
4259
  enter(el) {
4089
- if (!isHmrUpdating && isLeaving()) return;
4260
+ if (!isHmrUpdating && isLeaving(el)) return;
4090
4261
  let hook = onEnter;
4091
4262
  let afterHook = onAfterEnter;
4092
4263
  let cancelHook = onEnterCancelled;
@@ -4130,7 +4301,19 @@ function baseResolveTransitionHooks(context, props, state, instance) {
4130
4301
  else done();
4131
4302
  },
4132
4303
  clone(node) {
4133
- return cloneHooks ? cloneHooks(node) : hooks;
4304
+ if (!cloneHooks) return hooks;
4305
+ const cloned = cloneHooks(node);
4306
+ cloned.afterLeave = () => {
4307
+ if (hooks.afterLeave) hooks.afterLeave();
4308
+ };
4309
+ cloned.delayLeave = (el, earlyRemove, delayedLeave) => {
4310
+ if (hooks.delayLeave) hooks.delayLeave(el, earlyRemove, delayedLeave);
4311
+ else delayedLeave();
4312
+ };
4313
+ cloned.delayedLeave = () => {
4314
+ if (hooks.delayedLeave) hooks.delayedLeave();
4315
+ };
4316
+ return cloned;
4134
4317
  }
4135
4318
  };
4136
4319
  return hooks;
@@ -4165,10 +4348,7 @@ function prepareTransitionSwitch(previous, next, props, state, instance, resumeA
4165
4348
  if (state.isLeaving) return emptyPlaceholder(next);
4166
4349
  const nextInner = getInnerChild$1(next);
4167
4350
  if (!nextInner) return emptyPlaceholder(next);
4168
- let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
4169
- if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
4170
- enterHooks = hooks;
4171
- });
4351
+ const enterHooks = resolveTransitionHooks(nextInner, props, state, instance);
4172
4352
  if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
4173
4353
  if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
4174
4354
  const mode = props.mode;
@@ -4252,9 +4432,14 @@ function setTransitionHooks(vnode, hooks) {
4252
4432
  return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
4253
4433
  }
4254
4434
  } else if (vnode.shapeFlag & 128) {
4255
- const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4256
- const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4257
- return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
4435
+ const suspense = vnode.suspense;
4436
+ if (suspense) {
4437
+ const branch = suspense.isHydrating ? suspense.pendingBranch : suspense.activeBranch;
4438
+ if (branch) return setTransitionHooks(branch, hooks.clone(branch));
4439
+ } else {
4440
+ vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4441
+ vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4442
+ }
4258
4443
  } else {
4259
4444
  vnode.transition = hooks;
4260
4445
  if (vnode.type === Fragment && isArray(vnode.children)) {
@@ -4481,6 +4666,8 @@ const getContainerType = (container) => {
4481
4666
  if (isMathMLContainer(container)) return "mathml";
4482
4667
  };
4483
4668
  const isComment = (node) => node.nodeType === 8;
4669
+ /** The data of a comment opening a range a hydration steps over as one. */
4670
+ const isRangeStart = (data) => data === "[" || data === "(" || isVaporRangeStart(data);
4484
4671
  function createHydrationFunctions(rendererInternals) {
4485
4672
  const { mt: mountComponent, p: patch, o: { patchProp, createText, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;
4486
4673
  const hydrate = (vnode, container) => {
@@ -4500,7 +4687,7 @@ function createHydrationFunctions(rendererInternals) {
4500
4687
  };
4501
4688
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
4502
4689
  optimized = optimized || !!vnode.dynamicChildren;
4503
- const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
4690
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(" || isVaporInteropEnabled && isVaporRangeStart(node.data));
4504
4691
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
4505
4692
  const { type, ref, shapeFlag, patchFlag } = vnode;
4506
4693
  let domType = node.nodeType;
@@ -4695,16 +4882,17 @@ function createHydrationFunctions(rendererInternals) {
4695
4882
  const container = parentNode(node);
4696
4883
  const first = nextSibling(node);
4697
4884
  const next = isVaporInteropEnabled && vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4698
- if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
4885
+ const close = isVaporInteropEnabled ? rangeCloseOf(node.data) : node.data === "(" ? ")" : "]";
4886
+ if (next && isComment(next) && next.data === close) return nextSibling(vnode.anchor = next);
4699
4887
  else {
4700
4888
  logMismatchError();
4701
- insert(vnode.anchor = createComment(`]`), container, next);
4889
+ insert(vnode.anchor = createComment(close), container, next);
4702
4890
  return next;
4703
4891
  }
4704
4892
  };
4705
4893
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
4706
4894
  if (!isNodeMismatchAllowed(node, vnode)) {
4707
- (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && (node.data === "[" || node.data === "(") ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
4895
+ (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && isRangeStart(node.data) ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
4708
4896
  logMismatchError();
4709
4897
  }
4710
4898
  vnode.el = null;
@@ -4720,18 +4908,18 @@ function createHydrationFunctions(rendererInternals) {
4720
4908
  const container = parentNode(node);
4721
4909
  remove(node);
4722
4910
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4723
- if (parentComponent && parentComponent.vnode) {
4911
+ if (parentComponent && parentComponent.vnode && parentComponent.vnode.el === node) {
4724
4912
  parentComponent.vnode.el = vnode.el;
4725
4913
  updateHOCHostEl(parentComponent, vnode.el);
4726
4914
  }
4727
4915
  return next;
4728
4916
  };
4729
- const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
4917
+ const locateClosingAnchor = (node, open = node && isComment(node) && (node.data === "(" || isVaporInteropEnabled && node.data === "{") ? node.data : "[", close = isVaporInteropEnabled ? rangeCloseOf(open) : open === "(" ? ")" : "]") => {
4730
4918
  let match = 0;
4731
4919
  while (node) {
4732
4920
  node = nextSibling(node);
4733
4921
  if (node && isComment(node)) {
4734
- if (node.data === open) match++;
4922
+ if (node.data === open || isVaporInteropEnabled && open === "[" && isVaporBranchStart(node.data)) match++;
4735
4923
  if (node.data === close) {
4736
4924
  if (match === 0) return nextSibling(node);
4737
4925
  else match--;
@@ -4999,9 +5187,9 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
4999
5187
  return teardown;
5000
5188
  };
5001
5189
  function forEachElement(node, cb) {
5002
- if (isComment(node) && (node.data === "[" || node.data === "(")) {
5190
+ if (isComment(node) && isRangeStart(node.data)) {
5003
5191
  const open = node.data;
5004
- const close = open === "[" ? "]" : ")";
5192
+ const close = rangeCloseOf(open);
5005
5193
  let depth = 1;
5006
5194
  let next = node.nextSibling;
5007
5195
  while (next) {
@@ -5010,7 +5198,7 @@ function forEachElement(node, cb) {
5010
5198
  } else if (isComment(next)) {
5011
5199
  if (next.data === close) {
5012
5200
  if (--depth === 0) break;
5013
- } else if (next.data === open) depth++;
5201
+ } else if (close === "]" ? next.data === "[" || isVaporBranchStart(next.data) : next.data === open) depth++;
5014
5202
  }
5015
5203
  next = next.nextSibling;
5016
5204
  }
@@ -5038,7 +5226,7 @@ function defineAsyncComponent(source) {
5038
5226
  if (resolvedComp) return () => createInnerComp(resolvedComp, instance);
5039
5227
  const onError = (err) => {
5040
5228
  setPendingRequest(null);
5041
- handleError(err, instance, 13, !errorComponent);
5229
+ handleError(err, instance, 13, !errorComponent, true);
5042
5230
  };
5043
5231
  if (suspensible && instance.suspense || isInSSRComponentSetup) return load().then((comp) => {
5044
5232
  return () => createInnerComp(comp, instance);
@@ -5119,10 +5307,12 @@ const useAsyncComponentState = (delay = 200, timeout, onError, instance = curren
5119
5307
  const delayed = /* @__PURE__ */ ref(!!delay);
5120
5308
  let timeoutTimer;
5121
5309
  let delayTimer;
5122
- if (instance) onUnmounted(() => {
5123
- if (timeoutTimer != null) clearTimeout(timeoutTimer);
5124
- if (delayTimer != null) clearTimeout(delayTimer);
5125
- }, instance);
5310
+ if (instance) instance.scope.run(() => {
5311
+ onScopeDispose(() => {
5312
+ if (timeoutTimer != null) clearTimeout(timeoutTimer);
5313
+ if (delayTimer != null) clearTimeout(delayTimer);
5314
+ });
5315
+ });
5126
5316
  if (delay) delayTimer = setTimeout(() => {
5127
5317
  if (instance && instance.isUnmounted) return;
5128
5318
  delayed.value = false;
@@ -5157,7 +5347,12 @@ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydra
5157
5347
  }
5158
5348
  return;
5159
5349
  }
5160
- if (!el.parentNode || wasConnected && !el.isConnected) return;
5350
+ if (!el.parentNode) return;
5351
+ if (wasConnected && !el.isConnected) {
5352
+ let current = instance;
5353
+ while (current && !current.isDeactivated) current = current.parent;
5354
+ if (!current) return;
5355
+ }
5161
5356
  hydrate();
5162
5357
  };
5163
5358
  const doHydrate = hydrateStrategy ? () => {
@@ -5215,7 +5410,11 @@ const KeepAliveImpl = {
5215
5410
  activate(vnode, container, anchor, renderer, keepAliveInstance, parentSuspense, namespace, optimized);
5216
5411
  };
5217
5412
  sharedContext.deactivate = (vnode) => {
5218
- deactivate(vnode, storageContainer, renderer, keepAliveInstance, parentSuspense);
5413
+ const cached = sharedContext.getCachedComponent(vnode);
5414
+ if (!cached || cached.component !== vnode.component) return false;
5415
+ if (isVaporInteropEnabled && isVaporComponent(vnode.type)) getVaporInterface(keepAliveInstance, vnode).deactivate(vnode, storageContainer, parentSuspense);
5416
+ else deactivate(vnode, storageContainer, renderer, keepAliveInstance, parentSuspense);
5417
+ return true;
5219
5418
  };
5220
5419
  function unmount(vnode) {
5221
5420
  resetShapeFlag(vnode);
@@ -5247,11 +5446,15 @@ const KeepAliveImpl = {
5247
5446
  let pendingCacheKey = null;
5248
5447
  const cacheSubtree = () => {
5249
5448
  if (pendingCacheKey != null) {
5250
- if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
5251
- const vnode = getInnerChild(keepAliveInstance.subTree);
5252
- if (vnode.component) cache.set(pendingCacheKey, vnode);
5253
- }, void 0, keepAliveInstance.subTree.suspense);
5254
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5449
+ if (isSuspense(keepAliveInstance.subTree.type)) {
5450
+ const cacheInnerChild = () => {
5451
+ const vnode = getInnerChild(keepAliveInstance.subTree);
5452
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
5453
+ };
5454
+ const suspense = keepAliveInstance.subTree.suspense;
5455
+ if (suspense.pendingBranch) queuePostRenderEffect(cacheInnerChild, void 0, suspense);
5456
+ else cacheInnerChild();
5457
+ } else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5255
5458
  }
5256
5459
  };
5257
5460
  onMounted(cacheSubtree);
@@ -5361,9 +5564,8 @@ function registerKeepAliveHook(hook, type, target = getCurrentGenericInstance())
5361
5564
  }
5362
5565
  function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
5363
5566
  const injected = injectHook(type, hook, keepAliveRoot, true);
5364
- onUnmounted(() => {
5365
- remove(keepAliveRoot[type], injected);
5366
- }, target);
5567
+ const removal = injectHook("um", () => remove(keepAliveRoot[type], injected), target);
5568
+ removal.flags = 8;
5367
5569
  }
5368
5570
  function resetShapeFlag(vnode) {
5369
5571
  vnode.shapeFlag &= -257;
@@ -5802,6 +6004,11 @@ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5802
6004
  ret.props = extend({}, ret.props, { key: branchKey });
5803
6005
  ret.key = branchKey;
5804
6006
  }
6007
+ if (isBlockTreeEnabled <= 0) {
6008
+ if (!ret.vs.props) ret.vs.props = ret.props;
6009
+ ret.props = ret.key != null ? { key: ret.key } : null;
6010
+ ret.vs.attrs = EMPTY_OBJ;
6011
+ }
5805
6012
  if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
5806
6013
  return ret;
5807
6014
  }
@@ -6783,7 +6990,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6783
6990
  if (options.el) return vm.$mount(options.el);
6784
6991
  else return vm;
6785
6992
  }
6786
- Vue.version = `2.6.14-compat:3.6.0-rc.13`;
6993
+ Vue.version = `2.6.14-compat:3.6.0-rc.15`;
6787
6994
  Vue.config = singletonApp.config;
6788
6995
  Vue.use = (plugin, ...options) => {
6789
6996
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -8285,8 +8492,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8285
8492
  def(el, "__vueParentComponent", parentComponent, true);
8286
8493
  }
8287
8494
  if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
8288
- if (transition) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense);
8289
- else hostInsert(el, container, anchor);
8495
+ if (transition) {
8496
+ if (!needTransition(parentSuspense, transition) && !transition.persisted) el[deferredEnterKey] = true;
8497
+ performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense);
8498
+ } else hostInsert(el, container, anchor);
8290
8499
  if ((vnodeHook = props && props.onVnodeMounted) || dirs) {
8291
8500
  const isHmr = !!(process.env.NODE_ENV !== "production") && isHmrUpdating;
8292
8501
  queuePostRenderEffect(() => {
@@ -8558,16 +8767,20 @@ function baseCreateRenderer(options, createHydrationFns) {
8558
8767
  } else {
8559
8768
  let { next, bu, u, parent, vnode } = instance;
8560
8769
  {
8561
- const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
8562
- if (nonHydratedAsyncRoot) {
8770
+ const unresolvedAsyncRoot = locateUnresolvedAsyncRoot(instance);
8771
+ if (unresolvedAsyncRoot) {
8563
8772
  if (next) {
8564
8773
  next.el = vnode.el;
8565
8774
  updateComponentPreRender(instance, next, optimized);
8566
8775
  }
8567
- nonHydratedAsyncRoot.asyncDep.then(() => {
8568
- queuePostRenderEffect(() => {
8569
- if (!instance.isUnmounted) instance.update();
8570
- }, void 0, parentSuspense);
8776
+ unresolvedAsyncRoot.asyncDep.then(() => {
8777
+ const retry = () => {
8778
+ if (instance.effect.flags & 1024) return;
8779
+ if (parentSuspense && parentSuspense.pendingBranch) queuePostRenderEffect(retry, void 0, parentSuspense);
8780
+ else instance.update();
8781
+ };
8782
+ retry.flags = 24;
8783
+ queuePostRenderEffect(retry, void 0, parentSuspense);
8571
8784
  });
8572
8785
  return;
8573
8786
  }
@@ -8591,7 +8804,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8591
8804
  const prevTree = instance.subTree;
8592
8805
  instance.subTree = nextTree;
8593
8806
  if (!!(process.env.NODE_ENV !== "production")) startMeasure(instance, `patch`);
8594
- patch(prevTree, nextTree, hostParentNode(prevTree.el), getNextHostNode(prevTree), instance, parentSuspense, namespace);
8807
+ patch(prevTree, nextTree, hostParentNode(prevTree.el || resolveAsyncComponentPlaceholder(prevTree)), getNextHostNode(prevTree), instance, parentSuspense, namespace);
8595
8808
  if (!!(process.env.NODE_ENV !== "production")) endMeasure(instance, `patch`);
8596
8809
  next.el = nextTree.el;
8597
8810
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
@@ -8795,9 +9008,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8795
9008
  }
8796
9009
  if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
8797
9010
  if (shapeFlag & 256) {
8798
- if (isVaporInteropEnabled && isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
8799
- else parentComponent.ctx.deactivate(vnode);
8800
- return;
9011
+ if (parentComponent.ctx.deactivate(vnode)) return;
8801
9012
  }
8802
9013
  if (isVaporInteropEnabled && shapeFlag & 6 && isVaporComponent(type)) {
8803
9014
  getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
@@ -8878,13 +9089,15 @@ function baseCreateRenderer(options, createHydrationFns) {
8878
9089
  if (effect) {
8879
9090
  effect.stop();
8880
9091
  unmount(subTree, instance, parentSuspense, doRemove);
8881
- } else if (instance.vnode.el && subTree) {
9092
+ } else if (subTree) {
8882
9093
  subTree.transition = instance.vnode.transition;
8883
9094
  unmount(subTree, instance, parentSuspense, doRemove);
8884
9095
  }
8885
9096
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
8886
9097
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
8887
- queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
9098
+ const markUnmounted = () => instance.isUnmounted = true;
9099
+ markUnmounted.flags = 8;
9100
+ queuePostRenderEffect(markUnmounted, void 0, parentSuspense);
8888
9101
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentRemoved(instance);
8889
9102
  };
8890
9103
  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
@@ -8998,11 +9211,11 @@ function traverseStaticChildren(n1, n2, shallow = false) {
8998
9211
  if (!!(process.env.NODE_ENV !== "production")) c2.el && (c2.el.__vnode = c2);
8999
9212
  }
9000
9213
  }
9001
- function locateNonHydratedAsyncRoot(instance) {
9214
+ function locateUnresolvedAsyncRoot(instance) {
9002
9215
  const subComponent = instance.subTree && instance.subTree.component;
9003
9216
  if (subComponent) {
9004
9217
  if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
9005
- else return locateNonHydratedAsyncRoot(subComponent);
9218
+ else return locateUnresolvedAsyncRoot(subComponent);
9006
9219
  }
9007
9220
  }
9008
9221
  function invalidateMount(hooks) {
@@ -9072,7 +9285,9 @@ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true
9072
9285
  function resolveAsyncComponentPlaceholder(anchorVnode) {
9073
9286
  if (anchorVnode.placeholder) return anchorVnode.placeholder;
9074
9287
  const instance = anchorVnode.component;
9075
- if (instance) return resolveAsyncComponentPlaceholder(instance.subTree);
9288
+ if (instance && instance.subTree) return resolveAsyncComponentPlaceholder(instance.subTree);
9289
+ const suspense = anchorVnode.suspense;
9290
+ if (suspense && suspense.activeBranch) return resolveAsyncComponentPlaceholder(suspense.activeBranch);
9076
9291
  return null;
9077
9292
  }
9078
9293
  //#endregion
@@ -9084,17 +9299,22 @@ function withSuspenseEnabled(value) {
9084
9299
  return value;
9085
9300
  }
9086
9301
  let suspenseId = 0;
9302
+ const deferredEnterKey = Symbol("_deferredEnter");
9087
9303
  const Suspense = /*@__PURE__*/ withSuspenseEnabled({
9088
9304
  name: "Suspense",
9089
9305
  __isSuspense: true,
9090
9306
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
9091
9307
  if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
9092
9308
  else {
9093
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
9094
- n2.suspense = n1.suspense;
9095
- n2.suspense.vnode = n2;
9096
- n2.el = n1.el;
9097
- return;
9309
+ const suspense = n1.suspense;
9310
+ if (parentSuspense && parentSuspense.deps > 0 && !parentSuspense.isHydrating) {
9311
+ const owner = suspense.parentComponent;
9312
+ if (!!owner && owner.suspense === parentSuspense && owner.suspenseId !== parentSuspense.pendingId ? parentSuspense.pendingBranch && !isSameVNodeType(n2.ssContent, suspense.pendingBranch || suspense.activeBranch) : !suspense.isInFallback) {
9313
+ n2.suspense = suspense;
9314
+ suspense.vnode = n2;
9315
+ n2.el = n1.el;
9316
+ return;
9317
+ }
9098
9318
  }
9099
9319
  patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, rendererInternals);
9100
9320
  }
@@ -9106,6 +9326,36 @@ function triggerEvent(vnode, name) {
9106
9326
  const eventListener = vnode.props && vnode.props[name];
9107
9327
  if (isFunction(eventListener)) eventListener();
9108
9328
  }
9329
+ function enterDeferred(suspense, branch) {
9330
+ const enters = [];
9331
+ collectDeferredEnters(branch, enters, true);
9332
+ if (isVaporInteropEnabled) {
9333
+ const { parentComponent } = suspense;
9334
+ const vapor = parentComponent && parentComponent.appContext.vapor;
9335
+ if (vapor) vapor.enterDeferred(suspense, enters);
9336
+ }
9337
+ if (enters.length) queuePostFlushCb(enters);
9338
+ }
9339
+ function collectDeferredEnters(vnode, enters, isRoot) {
9340
+ const { el, transition, children, shapeFlag } = vnode;
9341
+ if (shapeFlag & 6) {
9342
+ const subTree = vnode.component.subTree;
9343
+ if (subTree) collectDeferredEnters(subTree, enters, isRoot);
9344
+ return;
9345
+ }
9346
+ if (shapeFlag & 192) return;
9347
+ if (shapeFlag & 1) {
9348
+ if (!isRoot && el && el[deferredEnterKey]) {
9349
+ el[deferredEnterKey] = void 0;
9350
+ if (transition && !transition.persisted) {
9351
+ transition.beforeEnter(el);
9352
+ enters.push(() => transition.enter(el));
9353
+ }
9354
+ }
9355
+ isRoot = false;
9356
+ }
9357
+ if (shapeFlag & 16) for (let i = 0; i < children.length; i++) collectDeferredEnters(children[i], enters, isRoot);
9358
+ }
9109
9359
  function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
9110
9360
  const { p: patch, o: { createElement } } = rendererInternals;
9111
9361
  const hiddenContainer = createElement("div");
@@ -9145,11 +9395,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
9145
9395
  suspense.activeBranch = pendingBranch;
9146
9396
  } else unmount(pendingBranch, parentComponent, suspense);
9147
9397
  suspense.deps = 0;
9148
- for (let i = 0; i < suspense.effects.length; i++) {
9149
- const effect = suspense.effects[i];
9150
- if (effect.flags & 8) queuePostFlushCb(effect);
9151
- }
9152
- suspense.effects.length = 0;
9398
+ discardEffects(suspense);
9153
9399
  suspense.hiddenContainer = createElement("div");
9154
9400
  if (isInFallback) {
9155
9401
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
@@ -9172,14 +9418,14 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
9172
9418
  } else {
9173
9419
  triggerEvent(n2, "onPending");
9174
9420
  suspense.pendingBranch = newBranch;
9175
- if (newBranch.shapeFlag & 512) suspense.pendingId = newBranch.component.suspenseId;
9176
- else suspense.pendingId = suspenseId++;
9421
+ suspense.pendingId = suspenseId++;
9177
9422
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
9178
9423
  if (suspense.deps <= 0) suspense.resolve();
9179
9424
  else {
9180
- const { timeout, pendingId } = suspense;
9181
- if (timeout > 0) setTimeout(() => {
9182
- if (suspense.pendingId === pendingId) suspense.fallback(newFallback);
9425
+ const { timeout } = suspense;
9426
+ if (timeout > 0) suspense.timeoutTimer = setTimeout(() => {
9427
+ suspense.timeoutTimer = void 0;
9428
+ suspense.fallback(suspense.vnode.ssFallback);
9183
9429
  }, timeout);
9184
9430
  else if (timeout === 0) suspense.fallback(newFallback);
9185
9431
  }
@@ -9215,6 +9461,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9215
9461
  deps: 0,
9216
9462
  pendingId: suspenseId++,
9217
9463
  timeout: typeof timeout === "number" ? timeout : -1,
9464
+ timeoutTimer: void 0,
9218
9465
  activeBranch: null,
9219
9466
  isFallbackMountPending: false,
9220
9467
  pendingBranch: null,
@@ -9234,26 +9481,39 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9234
9481
  delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
9235
9482
  let hasUpdatedAnchor = false;
9236
9483
  if (delayEnter) activeBranch.transition.afterLeave = () => {
9237
- if (pendingId === suspense.pendingId) {
9484
+ if (pendingId === suspense.pendingId && !suspense.isUnmounted) {
9485
+ enterDeferred(suspense, pendingBranch);
9238
9486
  move(pendingBranch, container, anchor === initialAnchor && !hasUpdatedAnchor ? next(activeBranch) : anchor, 0, parentComponent);
9239
9487
  queuePostFlushCb(effects);
9240
9488
  if (isInFallback && vnode.ssFallback) vnode.ssFallback.el = null;
9241
9489
  }
9242
9490
  };
9243
9491
  if (activeBranch && !suspense.isFallbackMountPending) {
9244
- if (parentNode(activeBranch.el) === container) {
9492
+ if (parentNode(activeBranch.el || resolveAsyncComponentPlaceholder(activeBranch)) === container) {
9245
9493
  anchor = next(activeBranch);
9246
9494
  hasUpdatedAnchor = true;
9247
9495
  }
9248
9496
  unmount(activeBranch, parentComponent, suspense, true);
9249
9497
  if (!delayEnter && isInFallback && vnode.ssFallback) queuePostRenderEffect(() => vnode.ssFallback.el = null, void 0, suspense);
9250
9498
  }
9251
- if (!delayEnter) move(pendingBranch, container, anchor, 0, parentComponent);
9499
+ if (!delayEnter) {
9500
+ enterDeferred(suspense, pendingBranch);
9501
+ move(pendingBranch, container, anchor, 0, parentComponent);
9502
+ }
9252
9503
  }
9504
+ clearTimeout(suspense.timeoutTimer);
9505
+ suspense.timeoutTimer = void 0;
9253
9506
  suspense.isFallbackMountPending = false;
9254
9507
  setActiveBranch(suspense, pendingBranch);
9255
9508
  suspense.pendingBranch = null;
9256
9509
  suspense.isInFallback = false;
9510
+ let kept = 0;
9511
+ for (let i = 0; i < effects.length; i++) {
9512
+ const effect = effects[i];
9513
+ if (effect.flags & 16) queuePostFlushCb(effect);
9514
+ else effects[kept++] = effect;
9515
+ }
9516
+ effects.length = kept;
9257
9517
  let parent = suspense.parent;
9258
9518
  let hasUnresolvedAncestor = false;
9259
9519
  while (parent) {
@@ -9276,13 +9536,13 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9276
9536
  triggerEvent(vnode, "onResolve");
9277
9537
  },
9278
9538
  fallback(fallbackVNode) {
9279
- if (!suspense.pendingBranch) return;
9539
+ if (suspense.isUnmounted || !suspense.pendingBranch) return;
9280
9540
  const { vnode, activeBranch, parentComponent, container, namespace } = suspense;
9281
9541
  triggerEvent(vnode, "onFallback");
9282
9542
  const anchor = next(activeBranch);
9283
9543
  const mountFallback = () => {
9284
9544
  suspense.isFallbackMountPending = false;
9285
- if (!suspense.isInFallback) return;
9545
+ if (suspense.isUnmounted || !suspense.isInFallback) return;
9286
9546
  const latestFallback = suspense.vnode.ssFallback;
9287
9547
  patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
9288
9548
  setActiveBranch(suspense, latestFallback);
@@ -9306,24 +9566,52 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9306
9566
  registerDep(instance, onResolve) {
9307
9567
  const isInPendingSuspense = !!suspense.pendingBranch;
9308
9568
  if (isInPendingSuspense) suspense.deps++;
9569
+ const render = (setupResult) => {
9570
+ instance.asyncResolved = true;
9571
+ onResolve(setupResult);
9572
+ };
9309
9573
  instance.asyncDep.catch((err) => {
9310
- handleError(err, instance, 0);
9574
+ handleError(err, instance, 0, false, true);
9575
+ return () => null;
9311
9576
  }).then((asyncSetupResult) => {
9312
- if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
9577
+ if (instance.isUnmounted || suspense.isUnmounted) return;
9578
+ const isPendingDep = isInPendingSuspense && suspense.pendingId === instance.suspenseId;
9313
9579
  setCurrentInstance(null, void 0);
9314
9580
  if (!instance.scope.active) {
9315
- if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
9581
+ if (isPendingDep && --suspense.deps === 0) suspense.resolve();
9316
9582
  return;
9317
9583
  }
9318
- instance.asyncResolved = true;
9319
- onResolve(asyncSetupResult);
9320
- if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
9584
+ if (!isPendingDep && suspense.pendingBranch) {
9585
+ const job = () => {
9586
+ if (instance.isUnmounted || suspense.isUnmounted || !instance.scope.active) return;
9587
+ if (suspense.pendingBranch) queueEffectWithSuspense(job, void 0, suspense);
9588
+ else render(asyncSetupResult);
9589
+ };
9590
+ job.flags = 24;
9591
+ queueEffectWithSuspense(job, void 0, suspense);
9592
+ return;
9593
+ }
9594
+ render(asyncSetupResult);
9595
+ if (isPendingDep && --suspense.deps === 0) suspense.resolve();
9321
9596
  });
9322
9597
  },
9323
9598
  unmount(parentSuspense, doRemove) {
9324
9599
  suspense.isUnmounted = true;
9600
+ clearTimeout(suspense.timeoutTimer);
9601
+ suspense.timeoutTimer = void 0;
9602
+ if (parentSuspenseId !== void 0) {
9603
+ const parent = suspense.parent;
9604
+ const pendingId = parentSuspenseId;
9605
+ parentSuspenseId = void 0;
9606
+ queuePostFlushCb(() => {
9607
+ if (parent.pendingId === pendingId && !parent.isUnmounted && --parent.deps === 0) parent.resolve();
9608
+ });
9609
+ }
9325
9610
  if (suspense.activeBranch) unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);
9326
- if (suspense.pendingBranch) unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);
9611
+ if (suspense.pendingBranch) {
9612
+ unmount(suspense.pendingBranch, parentComponent, suspense, doRemove);
9613
+ discardEffects(suspense);
9614
+ }
9327
9615
  }
9328
9616
  };
9329
9617
  return suspense;
@@ -9364,6 +9652,14 @@ function normalizeSuspenseSlot(s) {
9364
9652
  if (block && !s.dynamicChildren) s.dynamicChildren = block.filter((c) => c !== s);
9365
9653
  return s;
9366
9654
  }
9655
+ function discardEffects(suspense) {
9656
+ const { effects } = suspense;
9657
+ for (let i = 0; i < effects.length; i++) {
9658
+ const effect = effects[i];
9659
+ if (effect.flags & 8) queuePostFlushCb(effect);
9660
+ }
9661
+ effects.length = 0;
9662
+ }
9367
9663
  function queueEffectWithSuspense(fn, id, suspense) {
9368
9664
  if (suspense && suspense.pendingBranch) {
9369
9665
  if (isArray(fn)) suspense.effects.push(...fn);
@@ -9631,7 +9927,8 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
9631
9927
  }
9632
9928
  function guardReactiveProps(props) {
9633
9929
  if (!props) return null;
9634
- return /* @__PURE__ */ isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
9930
+ if (/* @__PURE__ */ isProxy(props)) return extend({}, props);
9931
+ return isInternalObject(props) ? extend({}, props[rawAttrsKey] || props) : props;
9635
9932
  }
9636
9933
  function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
9637
9934
  const { props, ref, patchFlag, children, transition } = vnode;
@@ -9745,6 +10042,17 @@ function normalizeVNode(child) {
9745
10042
  function cloneIfMounted(child) {
9746
10043
  return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);
9747
10044
  }
10045
+ let deferElementSlots = false;
10046
+ /**
10047
+ * While enabled, compiled default slots passed as children of plain elements
10048
+ * are kept on the vnode so the server renderer can render them in push mode.
10049
+ * @internal
10050
+ */
10051
+ function setDeferElementSlots(value) {
10052
+ const prev = deferElementSlots;
10053
+ deferElementSlots = value;
10054
+ return prev;
10055
+ }
9748
10056
  function normalizeChildren(vnode, children) {
9749
10057
  let type = 0;
9750
10058
  const { shapeFlag } = vnode;
@@ -9753,6 +10061,11 @@ function normalizeChildren(vnode, children) {
9753
10061
  else if (typeof children === "object") {
9754
10062
  if (shapeFlag & 65) {
9755
10063
  const slot = children.default;
10064
+ if (deferElementSlots && slot && slot._c && shapeFlag & 1) {
10065
+ vnode.children = children;
10066
+ vnode.shapeFlag |= 32;
10067
+ return;
10068
+ }
9756
10069
  if (slot) {
9757
10070
  slot._c && (slot._d = false);
9758
10071
  normalizeChildren(vnode, slot());
@@ -10036,7 +10349,8 @@ function setupStatefulComponent(instance, isSSR) {
10036
10349
  setInSSRSetupState(false);
10037
10350
  }
10038
10351
  }).catch((e) => {
10039
- handleError(e, instance, 0);
10352
+ handleError(e, instance, 0, void 0, true);
10353
+ instance.ssrRender = (_, push) => push("<!---->");
10040
10354
  });
10041
10355
  else {
10042
10356
  instance.asyncDep = setupResult;
@@ -10111,11 +10425,16 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
10111
10425
  else warn$1(`Component is missing template or render function: `, Component);
10112
10426
  }
10113
10427
  }
10428
+ /**
10429
+ * Read through the setup context `attrs` proxy to get the raw attrs object.
10430
+ * @internal
10431
+ */
10432
+ const rawAttrsKey = Symbol();
10114
10433
  const attrsProxyHandlers = !!(process.env.NODE_ENV !== "production") ? {
10115
10434
  get(target, key) {
10116
10435
  markAttrsAccessed();
10117
10436
  track(target, "get", "");
10118
- return target[key];
10437
+ return key === rawAttrsKey ? target : target[key];
10119
10438
  },
10120
10439
  set() {
10121
10440
  warn$1(`setupContext.attrs is readonly.`);
@@ -10127,7 +10446,7 @@ const attrsProxyHandlers = !!(process.env.NODE_ENV !== "production") ? {
10127
10446
  }
10128
10447
  } : { get(target, key) {
10129
10448
  track(target, "get", "");
10130
- return target[key];
10449
+ return key === rawAttrsKey ? target : target[key];
10131
10450
  } };
10132
10451
  /**
10133
10452
  * Dev-only
@@ -10423,7 +10742,7 @@ function isMemoSame(cached, memo) {
10423
10742
  }
10424
10743
  //#endregion
10425
10744
  //#region packages/runtime-core/src/index.ts
10426
- const version = "3.6.0-rc.13";
10745
+ const version = "3.6.0-rc.15";
10427
10746
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
10428
10747
  /**
10429
10748
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -10449,7 +10768,8 @@ const ssrUtils = {
10449
10768
  popWarningContext,
10450
10769
  VaporSlot,
10451
10770
  rawVaporSlotKey,
10452
- invokeSlotFallback
10771
+ invokeSlotFallback,
10772
+ setDeferElementSlots
10453
10773
  };
10454
10774
  /**
10455
10775
  * @internal only exposed in compat builds
@@ -11315,7 +11635,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
11315
11635
  }
11316
11636
  this._styleAnchors.delete(this._def);
11317
11637
  this._applyStyles(newStyles);
11318
- if (!this._instance.vapor) this._instance = null;
11638
+ this._instance = null;
11319
11639
  this._update();
11320
11640
  };
11321
11641
  const dispatch = (event, args) => {
@@ -11936,15 +12256,15 @@ const vModelSelect = {
11936
12256
  vModelSelectInit(el, value, number);
11937
12257
  el[assignKey] = getModelAssigner(vnode);
11938
12258
  },
11939
- mounted(el, { value }) {
11940
- vModelSetSelected(el, value);
12259
+ mounted(el, { value, modifiers: { number } }) {
12260
+ vModelSetSelected(el, value, number);
11941
12261
  },
11942
12262
  beforeUpdate(el, { value }, vnode) {
11943
12263
  el._modelValue = value;
11944
12264
  el[assignKey] = getModelAssigner(vnode);
11945
12265
  },
11946
- updated(el, { value }) {
11947
- vModelSetSelected(el, value);
12266
+ updated(el, { value, modifiers: { number } }) {
12267
+ vModelSetSelected(el, value, number);
11948
12268
  }
11949
12269
  };
11950
12270
  /**
@@ -11979,14 +12299,14 @@ function isSameSelectValue(value, assignedValue, multiple) {
11979
12299
  /**
11980
12300
  * @internal
11981
12301
  */
11982
- const vModelSetSelected = (el, value) => {
12302
+ const vModelSetSelected = (el, value, number = false) => {
11983
12303
  el._modelValue = value;
11984
12304
  const pending = el._pendingValue;
11985
12305
  el._pendingValue = void 0;
11986
12306
  if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
11987
- setSelected(el, value);
12307
+ setSelected(el, value, number);
11988
12308
  };
11989
- function setSelected(el, value) {
12309
+ function setSelected(el, value, number) {
11990
12310
  const isMultiple = el.multiple;
11991
12311
  const isArrayValue = isArray(value);
11992
12312
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -12001,7 +12321,7 @@ function setSelected(el, value) {
12001
12321
  const optionType = typeof optionValue;
12002
12322
  if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
12003
12323
  else option.selected = looseIndexOf(value, optionValue) > -1;
12004
- } else option.selected = value.has(optionValue);
12324
+ } else option.selected = value.has(optionValue) || number && typeof optionValue === "string" && value.has(looseToNumber(optionValue));
12005
12325
  } else if (looseEqual(getValue(option), value)) {
12006
12326
  if (el.selectedIndex !== i) el.selectedIndex = i;
12007
12327
  return;
@@ -12185,6 +12505,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
12185
12505
  capitalize: () => capitalize,
12186
12506
  checkTransitionMode: () => checkTransitionMode,
12187
12507
  cloneVNode: () => cloneVNode,
12508
+ collectDeferredEnters: () => collectDeferredEnters,
12188
12509
  compatUtils: () => compatUtils,
12189
12510
  computed: () => computed,
12190
12511
  createApp: () => createApp,
@@ -12220,6 +12541,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
12220
12541
  defineSlots: () => defineSlots,
12221
12542
  devtools: () => devtools,
12222
12543
  devtoolsComponentAdded: () => devtoolsComponentAdded,
12544
+ devtoolsComponentRemoved: () => devtoolsComponentRemoved,
12223
12545
  effect: () => effect,
12224
12546
  effectScope: () => effectScope,
12225
12547
  endMeasure: () => endMeasure,
@@ -14353,7 +14675,11 @@ function getLoc(start, end) {
14353
14675
  };
14354
14676
  }
14355
14677
  function cloneLoc(loc) {
14356
- return getLoc(loc.start.offset, loc.end.offset);
14678
+ return {
14679
+ start: extend({}, loc.start),
14680
+ end: extend({}, loc.end),
14681
+ source: loc.source
14682
+ };
14357
14683
  }
14358
14684
  function setLocEnd(loc, end) {
14359
14685
  loc.end = tokenizer.getPos(end);
@@ -16997,4 +17323,4 @@ Vue.compile = compileToFunction;
16997
17323
  var esm_index_default = Vue;
16998
17324
  const configureCompat = Vue.configureCompat;
16999
17325
  //#endregion
17000
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, SchedulerJobFlags, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TransitionPropsValidators, TriggerOpTypes, VaporSlot, VueElement, VueElementBase, activate, assertNumber, baseApplyTranslation, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callPendingCbs, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, configureCompat, createApp, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, esm_index_default as default, defaultPropGetter, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, enterCbKey, expose, filterModelListeners, filterSingleRoot, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getContainerType, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getNextUid, getOrigins as getTransitionGroupOrigins, getPosition as getTransitionGroupPosition, getOriginShift as getTransitionGroupShift, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, invokeSlotFallback, invokeVNodeHook, isAsyncWrapper, isEmitListener, isFunctionalFallthroughKey, isHydrating, isHydratingEnabled, isKeepAlive, isKeepAliveEnabled, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isSuspenseEnabled, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isTransitionEnabled, isUnchangedResourceProp, isVNode, isValidHtmlOrSvgAttribute, isVaporInteropEnabled, knownTemplateRefs, leaveCbKey, logMismatchError, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, nodeOps, normalizeClass, normalizeContainer, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, parseEventName, patchClass, patchProp, patchStyle, pendingGroups as pendingTransitionGroups, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, prepareTransitionLeave, prepareTransitionSwitch, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, queuePostRenderEffect, rawVaporSlotKey, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveCssVars, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionChild, resolveTransitionHooks, resolveTransitionProps, restoreCurrentInstance, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVaporInteropEnabled, setVarsOnNode, shallowReactive, shallowReadonly, shallowRef, shouldSetAsProp, shouldSetAsPropForVueCE, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, svgNS, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, unsafeToTrustedHTML, useAsyncComponentState, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelCheckboxInit, vModelCheckboxUpdate, vModelDynamic, getValue as vModelGetValue, vModelRadio, vModelSelect, vModelSelectInit, vModelSetSelected, vModelText, vModelTextInit, vModelTextUpdate, vShow, vShowHidden, vShowOriginalDisplay, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeepAliveEnabled, withKeys, withMemo, withModifiers, withScopeId, withSuspenseEnabled, withTransitionEnabled, xlinkNS };
17326
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, SchedulerJobFlags, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TransitionPropsValidators, TriggerOpTypes, VaporSlot, VueElement, VueElementBase, activate, assertNumber, baseApplyTranslation, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callPendingCbs, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, collectDeferredEnters, compatUtils, computed, configureCompat, createApp, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, esm_index_default as default, defaultPropGetter, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, devtoolsComponentRemoved, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, enterCbKey, expose, filterModelListeners, filterSingleRoot, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getContainerType, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getNextUid, getOrigins as getTransitionGroupOrigins, getPosition as getTransitionGroupPosition, getOriginShift as getTransitionGroupShift, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, invokeSlotFallback, invokeVNodeHook, isAsyncWrapper, isEmitListener, isFunctionalFallthroughKey, isHydrating, isHydratingEnabled, isKeepAlive, isKeepAliveEnabled, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isSuspenseEnabled, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isTransitionEnabled, isUnchangedResourceProp, isVNode, isValidHtmlOrSvgAttribute, isVaporInteropEnabled, knownTemplateRefs, leaveCbKey, logMismatchError, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, nodeOps, normalizeClass, normalizeContainer, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, parseEventName, patchClass, patchProp, patchStyle, pendingGroups as pendingTransitionGroups, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, prepareTransitionLeave, prepareTransitionSwitch, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, queuePostRenderEffect, rawVaporSlotKey, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveCssVars, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionChild, resolveTransitionHooks, resolveTransitionProps, restoreCurrentInstance, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVaporInteropEnabled, setVarsOnNode, shallowReactive, shallowReadonly, shallowRef, shouldSetAsProp, shouldSetAsPropForVueCE, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, svgNS, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, unsafeToTrustedHTML, useAsyncComponentState, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelCheckboxInit, vModelCheckboxUpdate, vModelDynamic, getValue as vModelGetValue, vModelRadio, vModelSelect, vModelSelectInit, vModelSetSelected, vModelText, vModelTextInit, vModelTextUpdate, vShow, vShowHidden, vShowOriginalDisplay, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeepAliveEnabled, withKeys, withMemo, withModifiers, withScopeId, withSuspenseEnabled, withTransitionEnabled, xlinkNS };