@vue/compat 3.6.0-rc.1 → 3.6.0-rc.10

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.1
2
+ * @vue/compat v3.6.0-rc.10
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -23,7 +23,7 @@ var __exportAll = (all, no_symbols) => {
23
23
  * \/\*#\_\_PURE\_\_\*\/
24
24
  * So that they can be tree-shaken if necessary.
25
25
  */
26
- /* @__NO_SIDE_EFFECTS__ */
26
+ /*@__NO_SIDE_EFFECTS__*/
27
27
  function makeMap(str) {
28
28
  const map = Object.create(null);
29
29
  for (const key of str.split(",")) map[key] = 1;
@@ -67,9 +67,9 @@ const toRawType = (value) => {
67
67
  };
68
68
  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
69
69
  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
70
- const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
71
- const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
72
- const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
70
+ const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
71
+ const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
72
+ const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
73
73
  const cacheStringFunction = (fn) => {
74
74
  const cache = Object.create(null);
75
75
  return ((str) => {
@@ -177,7 +177,7 @@ const slotFlagsText = {
177
177
  [2]: "DYNAMIC",
178
178
  [3]: "FORWARDED"
179
179
  };
180
- const isGloballyAllowed = /* @__PURE__ */ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
180
+ const isGloballyAllowed = /*@__PURE__*/ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
181
181
  //#endregion
182
182
  //#region packages/shared/src/codeframe.ts
183
183
  const range = 2;
@@ -231,10 +231,10 @@ function normalizeStyle(value) {
231
231
  }
232
232
  const listDelimiterRE = /;(?![^(]*\))/g;
233
233
  const propertyDelimiterRE = /:([^]+)/;
234
- const styleCommentRE = /\/\*[^]*?\*\//g;
234
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
235
235
  function parseStringStyle(cssText) {
236
236
  const ret = {};
237
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
237
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
238
238
  if (item) {
239
239
  const tmp = item.split(propertyDelimiterRE);
240
240
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -284,22 +284,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
284
284
  * Compiler only.
285
285
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
286
286
  */
287
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
287
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
288
288
  /**
289
289
  * Compiler only.
290
290
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
291
291
  */
292
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
292
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
293
293
  /**
294
294
  * Compiler only.
295
295
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
296
296
  */
297
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
297
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
298
298
  /**
299
299
  * Compiler only.
300
300
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
301
301
  */
302
- const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
302
+ const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
303
303
  //#endregion
304
304
  //#region packages/shared/src/domAttrConfig.ts
305
305
  /**
@@ -314,11 +314,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
314
314
  * - readonly -> readOnly
315
315
  */
316
316
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
317
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
317
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
318
318
  /**
319
319
  * The full list is needed during SSR to produce the correct initial markup.
320
320
  */
321
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
321
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
322
322
  /**
323
323
  * Boolean attributes should be included if the value is truthy or ''.
324
324
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -332,11 +332,11 @@ function includeBooleanAttr(value) {
332
332
  * Don't also forget to allow `data-*` and `aria-*`!
333
333
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
334
334
  */
335
- const isKnownHtmlAttr = /* @__PURE__ */ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
335
+ const isKnownHtmlAttr = /*@__PURE__*/ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
336
336
  /**
337
337
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
338
338
  */
339
- const isKnownSvgAttr = /* @__PURE__ */ makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");
339
+ const isKnownSvgAttr = /*@__PURE__*/ makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");
340
340
  /**
341
341
  * Shared between server-renderer and runtime-core hydration logic
342
342
  */
@@ -362,13 +362,54 @@ function getEscapedCssVarName(key, doubleEscape) {
362
362
  }
363
363
  //#endregion
364
364
  //#region packages/shared/src/looseEqual.ts
365
- function looseCompareArrays(a, b) {
365
+ function looseCompareArrays(a, b, seen) {
366
366
  if (a.length !== b.length) return false;
367
367
  let equal = true;
368
- for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
368
+ for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
369
369
  return equal;
370
370
  }
371
- function looseEqual(a, b) {
371
+ function looseCompareCollections(a, b, seen) {
372
+ if (a.size !== b.size) return false;
373
+ const candidates = Array.from(b);
374
+ const matched = new Uint8Array(candidates.length);
375
+ for (const item of a) {
376
+ let index = -1;
377
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
378
+ index = i;
379
+ break;
380
+ }
381
+ if (index < 0) return false;
382
+ matched[index] = 1;
383
+ }
384
+ return true;
385
+ }
386
+ function looseCompareObjects(a, b, seen) {
387
+ let aValidType = isMap(a);
388
+ let bValidType = isMap(b);
389
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
390
+ aValidType = isSet(a);
391
+ bValidType = isSet(b);
392
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
393
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
394
+ for (const key in a) {
395
+ const aHasKey = a.hasOwnProperty(key);
396
+ const bHasKey = b.hasOwnProperty(key);
397
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
398
+ }
399
+ return String(a) === String(b);
400
+ }
401
+ function looseCompareNested(a, b, seen, compare) {
402
+ if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
403
+ const [seenA, seenB] = seen;
404
+ if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
405
+ seenA.set(a, b);
406
+ seenB.set(b, a);
407
+ const equal = compare(a, b, seen);
408
+ seenA.delete(a);
409
+ seenB.delete(b);
410
+ return equal;
411
+ }
412
+ function looseEqual(a, b, seen) {
372
413
  if (a === b) return true;
373
414
  let aValidType = isDate(a);
374
415
  let bValidType = isDate(b);
@@ -378,17 +419,12 @@ function looseEqual(a, b) {
378
419
  if (aValidType || bValidType) return a === b;
379
420
  aValidType = isArray(a);
380
421
  bValidType = isArray(b);
381
- if (aValidType || bValidType) return aValidType && bValidType ? looseCompareArrays(a, b) : false;
422
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
382
423
  aValidType = isObject(a);
383
424
  bValidType = isObject(b);
384
425
  if (aValidType || bValidType) {
385
426
  if (!aValidType || !bValidType) return false;
386
- if (Object.keys(a).length !== Object.keys(b).length) return false;
387
- for (const key in a) {
388
- const aHasKey = a.hasOwnProperty(key);
389
- const bHasKey = b.hasOwnProperty(key);
390
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
391
- }
427
+ return looseCompareNested(a, b, seen, looseCompareObjects);
392
428
  }
393
429
  return String(a) === String(b);
394
430
  }
@@ -523,6 +559,8 @@ function setupFlagsHandler(target) {
523
559
  function warn$2(msg, ...args) {
524
560
  console.warn(`[Vue warn] ${msg}`, ...args);
525
561
  }
562
+ //#endregion
563
+ //#region packages/reactivity/src/system.ts
526
564
  const notifyBuffer = [];
527
565
  let batchDepth = 0;
528
566
  let activeSub = void 0;
@@ -661,13 +699,23 @@ function endTracking(sub, prevSub) {
661
699
  sub.flags &= -5;
662
700
  }
663
701
  function flush() {
702
+ let hasError = false;
703
+ let error;
664
704
  while (notifyIndex < notifyBufferLength) {
665
705
  const effect = notifyBuffer[notifyIndex];
666
706
  notifyBuffer[notifyIndex++] = void 0;
667
- effect.notify();
707
+ try {
708
+ effect.notify();
709
+ } catch (err) {
710
+ if (!hasError) {
711
+ hasError = true;
712
+ error = err;
713
+ }
714
+ }
668
715
  }
669
716
  notifyIndex = 0;
670
717
  notifyBufferLength = 0;
718
+ if (hasError) throw error;
671
719
  }
672
720
  function checkDirty(link, sub) {
673
721
  let stack;
@@ -751,7 +799,7 @@ var Dep = class {
751
799
  }
752
800
  set subs(value) {
753
801
  this._subs = value;
754
- if (value === void 0) this.map.delete(this.key);
802
+ if (value === void 0 && this.map) this.map.delete(this.key);
755
803
  }
756
804
  };
757
805
  const targetMap = /* @__PURE__ */ new WeakMap();
@@ -834,9 +882,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
834
882
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
835
883
  }
836
884
  break;
837
- case "set":
838
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
839
- break;
885
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
840
886
  }
841
887
  }
842
888
  }
@@ -851,13 +897,17 @@ function getDepFromReactive(object, key) {
851
897
  /**
852
898
  * Track array iteration and return:
853
899
  * - if input is reactive: a cloned raw array with reactive values
854
- * - if input is non-reactive or shallowReactive: the original raw array
900
+ * - if input is readonly: a cloned raw array with readonly values, preserving
901
+ * reactivity
902
+ * - if input is raw or shallow: the original raw array
855
903
  */
856
904
  function reactiveReadArray(array) {
857
905
  const raw = /* @__PURE__ */ toRaw(array);
858
906
  if (raw === array) return raw;
859
907
  track(raw, "iterate", ARRAY_ITERATE_KEY);
860
- return /* @__PURE__ */ isShallow(array) ? raw : raw.map(toReactive);
908
+ if (/* @__PURE__ */ isShallow(array)) return raw;
909
+ if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
910
+ return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
861
911
  }
862
912
  /**
863
913
  * Track array iteration and return raw array
@@ -1033,8 +1083,8 @@ function noTracking(self, method, args = []) {
1033
1083
  }
1034
1084
  //#endregion
1035
1085
  //#region packages/reactivity/src/baseHandlers.ts
1036
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
1037
- const builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1086
+ const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
1087
+ const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1038
1088
  function hasOwnProperty(key) {
1039
1089
  if (!isSymbol(key)) key = String(key);
1040
1090
  const obj = /* @__PURE__ */ toRaw(this);
@@ -1089,12 +1139,14 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
1089
1139
  oldValue = /* @__PURE__ */ toRaw(oldValue);
1090
1140
  value = /* @__PURE__ */ toRaw(value);
1091
1141
  }
1092
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) {
1093
- if (!!(process.env.NODE_ENV !== "production")) warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1094
- return true;
1095
- } else {
1096
- oldValue.value = value;
1097
- return true;
1142
+ if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1143
+ if (isOldValueReadonly) {
1144
+ if (!!(process.env.NODE_ENV !== "production")) warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1145
+ return true;
1146
+ } else {
1147
+ oldValue.value = value;
1148
+ return true;
1149
+ }
1098
1150
  }
1099
1151
  }
1100
1152
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
@@ -1135,10 +1187,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1135
1187
  return true;
1136
1188
  }
1137
1189
  };
1138
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1139
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1140
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1141
- const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1190
+ const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
1191
+ const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
1192
+ const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
1193
+ const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
1142
1194
  //#endregion
1143
1195
  //#region packages/reactivity/src/collectionHandlers.ts
1144
1196
  const toShallow = (value) => value;
@@ -1289,10 +1341,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
1289
1341
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1290
1342
  };
1291
1343
  }
1292
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1293
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1294
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1295
- const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1344
+ const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
1345
+ const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
1346
+ const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
1347
+ const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
1296
1348
  function checkIdentityKeys(target, has, key) {
1297
1349
  const rawKey = /* @__PURE__ */ toRaw(key);
1298
1350
  if (rawKey !== key && has.call(target, rawKey)) {
@@ -1317,7 +1369,7 @@ function targetTypeMap(rawType) {
1317
1369
  default: return 0;
1318
1370
  }
1319
1371
  }
1320
- /* @__NO_SIDE_EFFECTS__ */
1372
+ /*@__NO_SIDE_EFFECTS__*/
1321
1373
  function reactive(target) {
1322
1374
  if (/* @__PURE__ */ isReadonly(target)) return target;
1323
1375
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1352,7 +1404,7 @@ function reactive(target) {
1352
1404
  * @param target - The source object.
1353
1405
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1354
1406
  */
1355
- /* @__NO_SIDE_EFFECTS__ */
1407
+ /*@__NO_SIDE_EFFECTS__*/
1356
1408
  function shallowReactive(target) {
1357
1409
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1358
1410
  }
@@ -1385,7 +1437,7 @@ function shallowReactive(target) {
1385
1437
  * @param target - The source object.
1386
1438
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1387
1439
  */
1388
- /* @__NO_SIDE_EFFECTS__ */
1440
+ /*@__NO_SIDE_EFFECTS__*/
1389
1441
  function readonly(target) {
1390
1442
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1391
1443
  }
@@ -1419,7 +1471,7 @@ function readonly(target) {
1419
1471
  * @param target - The source object.
1420
1472
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1421
1473
  */
1422
- /* @__NO_SIDE_EFFECTS__ */
1474
+ /*@__NO_SIDE_EFFECTS__*/
1423
1475
  function shallowReadonly(target) {
1424
1476
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1425
1477
  }
@@ -1456,7 +1508,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1456
1508
  * @param value - The value to check.
1457
1509
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1458
1510
  */
1459
- /* @__NO_SIDE_EFFECTS__ */
1511
+ /*@__NO_SIDE_EFFECTS__*/
1460
1512
  function isReactive(value) {
1461
1513
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1462
1514
  return !!(value && value["__v_isReactive"]);
@@ -1472,11 +1524,11 @@ function isReactive(value) {
1472
1524
  * @param value - The value to check.
1473
1525
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1474
1526
  */
1475
- /* @__NO_SIDE_EFFECTS__ */
1527
+ /*@__NO_SIDE_EFFECTS__*/
1476
1528
  function isReadonly(value) {
1477
1529
  return !!(value && value["__v_isReadonly"]);
1478
1530
  }
1479
- /* @__NO_SIDE_EFFECTS__ */
1531
+ /*@__NO_SIDE_EFFECTS__*/
1480
1532
  function isShallow(value) {
1481
1533
  return !!(value && value["__v_isShallow"]);
1482
1534
  }
@@ -1487,7 +1539,7 @@ function isShallow(value) {
1487
1539
  * @param value - The value to check.
1488
1540
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1489
1541
  */
1490
- /* @__NO_SIDE_EFFECTS__ */
1542
+ /*@__NO_SIDE_EFFECTS__*/
1491
1543
  function isProxy(value) {
1492
1544
  return value ? !!value["__v_raw"] : false;
1493
1545
  }
@@ -1514,7 +1566,7 @@ function isProxy(value) {
1514
1566
  * @param observed - The object for which the "raw" value is requested.
1515
1567
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1516
1568
  */
1517
- /* @__NO_SIDE_EFFECTS__ */
1569
+ /*@__NO_SIDE_EFFECTS__*/
1518
1570
  function toRaw(observed) {
1519
1571
  const raw = observed && observed["__v_raw"];
1520
1572
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1563,15 +1615,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
1563
1615
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1564
1616
  //#endregion
1565
1617
  //#region packages/reactivity/src/ref.ts
1566
- /* @__NO_SIDE_EFFECTS__ */
1618
+ /*@__NO_SIDE_EFFECTS__*/
1567
1619
  function isRef(r) {
1568
1620
  return r ? r["__v_isRef"] === true : false;
1569
1621
  }
1570
- /* @__NO_SIDE_EFFECTS__ */
1622
+ /*@__NO_SIDE_EFFECTS__*/
1571
1623
  function ref(value) {
1572
1624
  return createRef(value, toReactive);
1573
1625
  }
1574
- /* @__NO_SIDE_EFFECTS__ */
1626
+ /*@__NO_SIDE_EFFECTS__*/
1575
1627
  function shallowRef(value) {
1576
1628
  return createRef(value);
1577
1629
  }
@@ -1774,7 +1826,7 @@ function customRef(factory) {
1774
1826
  * @param object - Reactive object to be made into an object of linked refs.
1775
1827
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1776
1828
  */
1777
- /* @__NO_SIDE_EFFECTS__ */
1829
+ /*@__NO_SIDE_EFFECTS__*/
1778
1830
  function toRefs(object) {
1779
1831
  const ret = isArray(object) ? new Array(object.length) : {};
1780
1832
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1825,7 +1877,7 @@ var GetterRefImpl = class {
1825
1877
  return this._value = this._getter();
1826
1878
  }
1827
1879
  };
1828
- /* @__NO_SIDE_EFFECTS__ */
1880
+ /*@__NO_SIDE_EFFECTS__*/
1829
1881
  function toRef(source, key, defaultValue) {
1830
1882
  if (/* @__PURE__ */ isRef(source)) return source;
1831
1883
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1891,10 +1943,12 @@ var ReactiveEffect = class {
1891
1943
  get dirty() {
1892
1944
  const flags = this.flags;
1893
1945
  if (flags & 16) return true;
1894
- if (flags & 32) if (checkDirty(this.deps, this)) {
1895
- this.flags = flags | 16;
1896
- return true;
1897
- } else this.flags = flags & -33;
1946
+ if (flags & 32) {
1947
+ if (checkDirty(this.deps, this)) {
1948
+ this.flags = flags | 16;
1949
+ return true;
1950
+ } else this.flags = flags & -33;
1951
+ }
1898
1952
  return false;
1899
1953
  }
1900
1954
  };
@@ -2073,10 +2127,12 @@ var ComputedRefImpl = class {
2073
2127
  get _dirty() {
2074
2128
  const flags = this.flags;
2075
2129
  if (flags & 16) return true;
2076
- if (flags & 32) if (checkDirty(this.deps, this)) {
2077
- this.flags = flags | 16;
2078
- return true;
2079
- } else this.flags = flags & -33;
2130
+ if (flags & 32) {
2131
+ if (checkDirty(this.deps, this)) {
2132
+ this.flags = flags | 16;
2133
+ return true;
2134
+ } else this.flags = flags & -33;
2135
+ }
2080
2136
  return false;
2081
2137
  }
2082
2138
  /**
@@ -2137,7 +2193,7 @@ var ComputedRefImpl = class {
2137
2193
  }
2138
2194
  };
2139
2195
  if (!!(process.env.NODE_ENV !== "production")) setupOnTrigger(ComputedRefImpl);
2140
- /* @__NO_SIDE_EFFECTS__ */
2196
+ /*@__NO_SIDE_EFFECTS__*/
2141
2197
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
2142
2198
  let getter;
2143
2199
  let setter;
@@ -2215,25 +2271,26 @@ var WatcherEffect = class extends ReactiveEffect {
2215
2271
  else if (isFunction(s)) return call ? call(s, 2) : s();
2216
2272
  else process.env.NODE_ENV !== "production" && warnInvalidSource(s, onWarn);
2217
2273
  });
2218
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2219
- else getter = () => {
2220
- if (this.cleanupsLength) {
2221
- const prevSub = setActiveSub();
2274
+ } else if (isFunction(source)) {
2275
+ if (cb) getter = call ? () => call(source, 2) : source;
2276
+ else getter = () => {
2277
+ if (this.cleanupsLength) {
2278
+ const prevSub = setActiveSub();
2279
+ try {
2280
+ cleanup(this);
2281
+ } finally {
2282
+ setActiveSub(prevSub);
2283
+ }
2284
+ }
2285
+ const currentEffect = activeWatcher;
2286
+ activeWatcher = this;
2222
2287
  try {
2223
- cleanup(this);
2288
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2224
2289
  } finally {
2225
- setActiveSub(prevSub);
2290
+ activeWatcher = currentEffect;
2226
2291
  }
2227
- }
2228
- const currentEffect = activeWatcher;
2229
- activeWatcher = this;
2230
- try {
2231
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2232
- } finally {
2233
- activeWatcher = currentEffect;
2234
- }
2235
- };
2236
- else {
2292
+ };
2293
+ } else {
2237
2294
  getter = NOOP;
2238
2295
  process.env.NODE_ENV !== "production" && warnInvalidSource(source, onWarn);
2239
2296
  }
@@ -2560,7 +2617,9 @@ const SchedulerJobFlags = {
2560
2617
  "ALLOW_RECURSE": 2,
2561
2618
  "2": "ALLOW_RECURSE",
2562
2619
  "DISPOSED": 4,
2563
- "4": "DISPOSED"
2620
+ "4": "DISPOSED",
2621
+ "REQUEUE_ON_SUSPENSE_DISCARD": 8,
2622
+ "8": "REQUEUE_ON_SUSPENSE_DISCARD"
2564
2623
  };
2565
2624
  const jobs = [];
2566
2625
  let postJobs = [];
@@ -2569,7 +2628,7 @@ let currentFlushPromise = null;
2569
2628
  let jobsLength = 0;
2570
2629
  let flushIndex = 0;
2571
2630
  let postFlushIndex = 0;
2572
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2631
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2573
2632
  const RECURSION_LIMIT = 100;
2574
2633
  function nextTick(fn) {
2575
2634
  const p = currentFlushPromise || resolvedPromise;
@@ -2608,6 +2667,7 @@ const doFlushJobs = () => {
2608
2667
  flushJobs();
2609
2668
  } catch (e) {
2610
2669
  currentFlushPromise = null;
2670
+ if (jobsLength || postJobs.length) queueFlush();
2611
2671
  throw e;
2612
2672
  }
2613
2673
  };
@@ -2615,9 +2675,10 @@ function queueFlush() {
2615
2675
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2616
2676
  }
2617
2677
  function queuePostFlushCb(jobs, id = Infinity) {
2618
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2619
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2620
- else for (const job of jobs) queueJobWorker(job, id, postJobs, postJobs.length, 0);
2678
+ if (!isArray(jobs)) {
2679
+ if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2680
+ else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2681
+ } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2621
2682
  queueFlush();
2622
2683
  }
2623
2684
  function flushPreFlushCbs(instance, seen) {
@@ -2631,32 +2692,39 @@ function flushPreFlushCbs(instance, seen) {
2631
2692
  i--;
2632
2693
  jobsLength--;
2633
2694
  if (cb.flags & 2) cb.flags &= -2;
2634
- cb();
2635
- if (!(cb.flags & 2)) cb.flags &= -2;
2695
+ try {
2696
+ cb();
2697
+ } finally {
2698
+ if (!(cb.flags & 2)) cb.flags &= -2;
2699
+ }
2636
2700
  }
2637
2701
  }
2638
2702
  function flushPostFlushCbs(seen) {
2639
2703
  if (postJobs.length) {
2640
2704
  if (activePostJobs) {
2641
- activePostJobs.push(...postJobs);
2705
+ for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
2642
2706
  postJobs.length = 0;
2643
2707
  return;
2644
2708
  }
2645
2709
  activePostJobs = postJobs;
2646
2710
  postJobs = [];
2647
2711
  if (!!(process.env.NODE_ENV !== "production")) seen = seen || /* @__PURE__ */ new Map();
2648
- while (postFlushIndex < activePostJobs.length) {
2649
- const cb = activePostJobs[postFlushIndex++];
2650
- if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) continue;
2651
- if (cb.flags & 2) cb.flags &= -2;
2652
- if (!(cb.flags & 4)) try {
2653
- cb();
2654
- } finally {
2655
- cb.flags &= -2;
2712
+ try {
2713
+ while (postFlushIndex < activePostJobs.length) {
2714
+ const cb = activePostJobs[postFlushIndex++];
2715
+ if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) continue;
2716
+ if (cb.flags & 2) cb.flags &= -2;
2717
+ if (!(cb.flags & 4)) try {
2718
+ cb();
2719
+ } finally {
2720
+ if (!(cb.flags & 2)) cb.flags &= -2;
2721
+ }
2656
2722
  }
2723
+ } finally {
2724
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2725
+ activePostJobs = null;
2726
+ postFlushIndex = 0;
2657
2727
  }
2658
- activePostJobs = null;
2659
- postFlushIndex = 0;
2660
2728
  }
2661
2729
  }
2662
2730
  let isFlushing = false;
@@ -2666,9 +2734,12 @@ let isFlushing = false;
2666
2734
  function flushOnAppMount(instance) {
2667
2735
  if (!isFlushing) {
2668
2736
  isFlushing = true;
2669
- flushPreFlushCbs(instance);
2670
- flushPostFlushCbs();
2671
- isFlushing = false;
2737
+ try {
2738
+ flushPreFlushCbs(instance);
2739
+ flushPostFlushCbs();
2740
+ } finally {
2741
+ isFlushing = false;
2742
+ }
2672
2743
  }
2673
2744
  }
2674
2745
  function flushJobs(seen) {
@@ -2698,8 +2769,8 @@ function flushJobs(seen) {
2698
2769
  jobsLength = 0;
2699
2770
  jobs.length = 0;
2700
2771
  flushPostFlushCbs(seen);
2701
- currentFlushPromise = null;
2702
2772
  if (jobsLength || postJobs.length) flushJobs(seen);
2773
+ else currentFlushPromise = null;
2703
2774
  }
2704
2775
  }
2705
2776
  function checkRecursiveUpdates(seen, fn) {
@@ -2730,6 +2801,19 @@ if (!!(process.env.NODE_ENV !== "production")) getGlobalThis().__VUE_HMR_RUNTIME
2730
2801
  rerender: tryWrap(rerender),
2731
2802
  reload: tryWrap(reload)
2732
2803
  };
2804
+ function runWithHmrUpdating(fn) {
2805
+ isHmrUpdating = true;
2806
+ let done = false;
2807
+ try {
2808
+ fn();
2809
+ done = true;
2810
+ } finally {
2811
+ if (done) nextTick(() => {
2812
+ isHmrUpdating = false;
2813
+ });
2814
+ else isHmrUpdating = false;
2815
+ }
2816
+ }
2733
2817
  const map = /* @__PURE__ */ new Map();
2734
2818
  function registerHMR(instance) {
2735
2819
  const id = instance.type.__hmrId;
@@ -2771,18 +2855,16 @@ function rerender(id, newRender) {
2771
2855
  instance.render = newRender;
2772
2856
  normalizeClassComponent(instance.type).render = newRender;
2773
2857
  }
2774
- isHmrUpdating = true;
2775
- if (instance.vapor) {
2776
- if (!instance.isUnmounted) instance.hmrRerender();
2777
- } else {
2778
- const i = instance;
2779
- if (!(i.effect.flags & 1024)) {
2780
- i.renderCache = [];
2781
- i.effect.run();
2858
+ runWithHmrUpdating(() => {
2859
+ if (instance.vapor) {
2860
+ if (!instance.isUnmounted) instance.hmrRerender();
2861
+ } else {
2862
+ const i = instance;
2863
+ if (!(i.effect.flags & 1024)) {
2864
+ i.renderCache = [];
2865
+ i.effect.run();
2866
+ }
2782
2867
  }
2783
- }
2784
- nextTick(() => {
2785
- isHmrUpdating = false;
2786
2868
  });
2787
2869
  });
2788
2870
  }
@@ -2797,17 +2879,19 @@ function reload(id, newComp) {
2797
2879
  for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
2798
2880
  const dirtyInstances = new Set(instances);
2799
2881
  const rerenderedParents = /* @__PURE__ */ new Set();
2800
- for (const instance of instances) {
2801
- const parent = instance.parent;
2802
- if (parent) {
2803
- if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2804
- rerenderedParents.add(parent);
2805
- parent.hmrRerender();
2806
- }
2807
- } else instance.hmrReload(newComp);
2808
- }
2882
+ runWithHmrUpdating(() => {
2883
+ for (const instance of instances) {
2884
+ const parent = instance.parent;
2885
+ if (parent) {
2886
+ if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2887
+ rerenderedParents.add(parent);
2888
+ parent.hmrRerender();
2889
+ }
2890
+ } else instance.hmrReload(newComp);
2891
+ }
2892
+ });
2809
2893
  } else {
2810
- const parentUpdates = /* @__PURE__ */ new Map();
2894
+ const parents = /* @__PURE__ */ new Set();
2811
2895
  const dirtyInstanceSet = new Set(instances);
2812
2896
  for (const instance of instances) {
2813
2897
  const oldComp = normalizeClassComponent(instance.type);
@@ -2826,33 +2910,23 @@ function reload(id, newComp) {
2826
2910
  instance.ceReload(newComp.styles);
2827
2911
  dirtyInstances.delete(instance);
2828
2912
  } else if (instance.parent) {
2829
- const parent = instance.parent;
2830
- if (!hasDirtyAncestor(instance, dirtyInstanceSet)) {
2831
- let updates = parentUpdates.get(parent);
2832
- if (!updates) parentUpdates.set(parent, updates = []);
2833
- updates.push([instance, dirtyInstances]);
2834
- }
2913
+ if (!hasDirtyAncestor(instance, dirtyInstanceSet)) parents.add(instance.parent);
2835
2914
  } else if (instance.appContext.reload) instance.appContext.reload();
2836
2915
  else if (typeof window !== "undefined") window.location.reload();
2837
2916
  else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
2838
2917
  if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2839
2918
  }
2840
- parentUpdates.forEach((updates, parent) => {
2919
+ parents.forEach((parent) => {
2841
2920
  queueJob(() => {
2842
- isHmrUpdating = true;
2843
- if (parent.vapor) parent.hmrRerender();
2844
- else {
2845
- const i = parent;
2846
- if (!(i.effect.flags & 1024)) {
2847
- i.renderCache = [];
2848
- i.effect.run();
2921
+ runWithHmrUpdating(() => {
2922
+ if (parent.vapor) parent.hmrRerender();
2923
+ else {
2924
+ const i = parent;
2925
+ if (!(i.effect.flags & 1024)) {
2926
+ i.renderCache = [];
2927
+ i.effect.run();
2928
+ }
2849
2929
  }
2850
- }
2851
- nextTick(() => {
2852
- isHmrUpdating = false;
2853
- });
2854
- updates.forEach(([instance, dirtyInstances]) => {
2855
- dirtyInstances.delete(instance);
2856
2930
  });
2857
2931
  });
2858
2932
  });
@@ -2922,20 +2996,20 @@ function devtoolsInitApp(app, version) {
2922
2996
  function devtoolsUnmountApp(app) {
2923
2997
  emit$2("app:unmount", app);
2924
2998
  }
2925
- const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added");
2926
- const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated");
2927
- const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook("component:removed");
2999
+ const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
3000
+ const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
3001
+ const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
2928
3002
  const devtoolsComponentRemoved = (component) => {
2929
3003
  if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
2930
3004
  };
2931
- /* @__NO_SIDE_EFFECTS__ */
3005
+ /*@__NO_SIDE_EFFECTS__*/
2932
3006
  function createDevtoolsComponentHook(hook) {
2933
3007
  return (component) => {
2934
3008
  emit$2(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
2935
3009
  };
2936
3010
  }
2937
- const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start");
2938
- const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end");
3011
+ const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
3012
+ const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
2939
3013
  function createDevtoolsPerformanceHook(hook) {
2940
3014
  return (component, type, time) => {
2941
3015
  emit$2(hook, component.appContext.app, component.uid, component, type, time);
@@ -3165,7 +3239,7 @@ function configureCompat$1(config) {
3165
3239
  if (!!(process.env.NODE_ENV !== "production")) validateCompatConfig(config);
3166
3240
  extend(globalCompatConfig, config);
3167
3241
  }
3168
- const seenConfigObjects = /* @__PURE__ */ new WeakSet();
3242
+ const seenConfigObjects = /*@__PURE__*/ new WeakSet();
3169
3243
  const warnedInvalidKeys = {};
3170
3244
  function validateCompatConfig(config, instance) {
3171
3245
  if (seenConfigObjects.has(config)) return;
@@ -3217,7 +3291,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
3217
3291
  }
3218
3292
  //#endregion
3219
3293
  //#region packages/runtime-core/src/compat/instanceEventEmitter.ts
3220
- const eventRegistryMap = /* @__PURE__ */ new WeakMap();
3294
+ const eventRegistryMap = /*@__PURE__*/ new WeakMap();
3221
3295
  function getRegistry(instance) {
3222
3296
  let events = eventRegistryMap.get(instance);
3223
3297
  if (!events) eventRegistryMap.set(instance, events = Object.create(null));
@@ -3351,19 +3425,21 @@ const legacyDirectiveHookMap = {
3351
3425
  };
3352
3426
  function mapCompatDirectiveHook(name, dir, instance) {
3353
3427
  const mappedName = legacyDirectiveHookMap[name];
3354
- if (mappedName) if (isArray(mappedName)) {
3355
- const hook = [];
3356
- mappedName.forEach((mapped) => {
3357
- const mappedHook = dir[mapped];
3358
- if (mappedHook) {
3359
- softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
3360
- hook.push(mappedHook);
3361
- }
3362
- });
3363
- return hook.length ? hook : void 0;
3364
- } else {
3365
- if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
3366
- return dir[mappedName];
3428
+ if (mappedName) {
3429
+ if (isArray(mappedName)) {
3430
+ const hook = [];
3431
+ mappedName.forEach((mapped) => {
3432
+ const mappedHook = dir[mapped];
3433
+ if (mappedHook) {
3434
+ softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
3435
+ hook.push(mappedHook);
3436
+ }
3437
+ });
3438
+ return hook.length ? hook : void 0;
3439
+ } else {
3440
+ if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
3441
+ return dir[mappedName];
3442
+ }
3367
3443
  }
3368
3444
  }
3369
3445
  //#endregion
@@ -3550,7 +3626,7 @@ function instanceWatch(source, value, options) {
3550
3626
  }
3551
3627
  const prev = setCurrentInstance(this);
3552
3628
  const res = doWatch(getter, cb.bind(publicThis), options);
3553
- setCurrentInstance(...prev);
3629
+ restoreCurrentInstance(prev);
3554
3630
  return res;
3555
3631
  }
3556
3632
  function createPathGetter(ctx, path) {
@@ -3572,15 +3648,16 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
3572
3648
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
3573
3649
  const resolveTarget = (props, select) => {
3574
3650
  const targetSelector = props && props.to;
3575
- if (isString(targetSelector)) if (!select) {
3576
- process.env.NODE_ENV !== "production" && warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3577
- return null;
3651
+ if (isString(targetSelector)) {
3652
+ if (!select) {
3653
+ process.env.NODE_ENV !== "production" && warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3654
+ return null;
3655
+ } else {
3656
+ const target = select(targetSelector);
3657
+ if (!!(process.env.NODE_ENV !== "production") && !target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
3658
+ return target;
3659
+ }
3578
3660
  } else {
3579
- const target = select(targetSelector);
3580
- if (!!(process.env.NODE_ENV !== "production") && !target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
3581
- return target;
3582
- }
3583
- else {
3584
3661
  if (!!(process.env.NODE_ENV !== "production") && !targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
3585
3662
  return targetSelector;
3586
3663
  }
@@ -3618,7 +3695,8 @@ const TeleportImpl = {
3618
3695
  if (pendingMounts.get(vnode) !== mountJob) return;
3619
3696
  pendingMounts.delete(vnode);
3620
3697
  if (isTeleportDisabled(vnode.props)) {
3621
- mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
3698
+ const mountContainer = parentNode(vnode.el) || container;
3699
+ mount(vnode, mountContainer, vnode.anchor);
3622
3700
  updateCssVars(vnode, true);
3623
3701
  }
3624
3702
  mountToTarget(vnode);
@@ -3727,15 +3805,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3727
3805
  const disabled = isTeleportDisabled(vnode.props);
3728
3806
  if (target) {
3729
3807
  const targetNode = target._lpa || target.firstChild;
3730
- if (vnode.shapeFlag & 16) if (disabled) {
3731
- hydrateDisabledTeleport(node, vnode);
3732
- hydrateAnchor(target, targetNode);
3733
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3734
- } else {
3735
- vnode.anchor = nextSibling(node);
3736
- hydrateAnchor(target, targetNode);
3737
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3738
- hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3808
+ if (vnode.shapeFlag & 16) {
3809
+ if (disabled) {
3810
+ hydrateDisabledTeleport(node, vnode);
3811
+ hydrateAnchor(target, targetNode);
3812
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3813
+ } else {
3814
+ vnode.anchor = nextSibling(node);
3815
+ hydrateAnchor(target, targetNode);
3816
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3817
+ hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3818
+ }
3739
3819
  }
3740
3820
  updateCssVars(vnode, disabled);
3741
3821
  } else if (disabled) {
@@ -3823,49 +3903,16 @@ const BaseTransitionImpl = {
3823
3903
  setup(props, { slots }) {
3824
3904
  const instance = getCurrentInstance();
3825
3905
  const state = useTransitionState();
3906
+ let resumeAfterLeave;
3826
3907
  return () => {
3827
- const children = slots.default && getTransitionRawChildren(slots.default(), true);
3828
- const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
3908
+ const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
3829
3909
  if (!child) return;
3830
3910
  const rawProps = /* @__PURE__ */ toRaw(props);
3831
3911
  const { mode } = rawProps;
3832
3912
  checkTransitionMode(mode);
3833
- if (state.isLeaving) return emptyPlaceholder(child);
3834
- const innerChild = getInnerChild$1(child);
3835
- if (!innerChild) return emptyPlaceholder(child);
3836
- let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
3837
- if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
3838
- let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3839
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3840
- let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
3841
- setTransitionHooks(oldInnerChild, leavingHooks);
3842
- if (mode === "out-in" && innerChild.type !== Comment) {
3843
- state.isLeaving = true;
3844
- leavingHooks.afterLeave = () => {
3845
- state.isLeaving = false;
3846
- if (!(instance.job.flags & 4)) instance.update();
3847
- delete leavingHooks.afterLeave;
3848
- oldInnerChild = void 0;
3849
- };
3850
- return emptyPlaceholder(child);
3851
- } else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3852
- const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
3853
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3854
- el[leaveCbKey] = () => {
3855
- earlyRemove();
3856
- el[leaveCbKey] = void 0;
3857
- delete enterHooks.delayedLeave;
3858
- oldInnerChild = void 0;
3859
- };
3860
- enterHooks.delayedLeave = () => {
3861
- delayedLeave();
3862
- delete enterHooks.delayedLeave;
3863
- oldInnerChild = void 0;
3864
- };
3865
- };
3866
- else oldInnerChild = void 0;
3867
- } else if (oldInnerChild) oldInnerChild = void 0;
3868
- return child;
3913
+ return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3914
+ if (!(instance.job.flags & 4)) instance.update();
3915
+ }) : NOOP);
3869
3916
  };
3870
3917
  }
3871
3918
  };
@@ -3936,8 +3983,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3936
3983
  persisted,
3937
3984
  beforeEnter(el) {
3938
3985
  let hook = onBeforeEnter;
3939
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3940
- else return;
3986
+ if (!state.isMounted) {
3987
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
3988
+ else return;
3989
+ }
3941
3990
  if (el[leaveCbKey]) el[leaveCbKey](true);
3942
3991
  earlyRemove();
3943
3992
  callHook(hook, [el]);
@@ -3947,11 +3996,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3947
3996
  let hook = onEnter;
3948
3997
  let afterHook = onAfterEnter;
3949
3998
  let cancelHook = onEnterCancelled;
3950
- if (!state.isMounted) if (appear) {
3951
- hook = onAppear || onEnter;
3952
- afterHook = onAfterAppear || onAfterEnter;
3953
- cancelHook = onAppearCancelled || onEnterCancelled;
3954
- } else return;
3999
+ if (!state.isMounted) {
4000
+ if (appear) {
4001
+ hook = onAppear || onEnter;
4002
+ afterHook = onAfterAppear || onAfterEnter;
4003
+ cancelHook = onAppearCancelled || onEnterCancelled;
4004
+ } else return;
4005
+ }
3955
4006
  let called = false;
3956
4007
  el[enterCbKey$1] = (cancelled) => {
3957
4008
  if (called) return;
@@ -3985,7 +4036,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3985
4036
  else done();
3986
4037
  },
3987
4038
  clone(node) {
3988
- return cloneHooks(node);
4039
+ return cloneHooks ? cloneHooks(node) : hooks;
3989
4040
  }
3990
4041
  };
3991
4042
  return hooks;
@@ -4009,16 +4060,102 @@ function getInnerChild$1(vnode) {
4009
4060
  if (shapeFlag & 32 && isFunction(children.default)) return children.default();
4010
4061
  }
4011
4062
  }
4063
+ function resolveTransitionChild(children, renderEmpty = false) {
4064
+ const branches = children && getTransitionRawChildren(children, true);
4065
+ return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
4066
+ }
4067
+ /**
4068
+ * @internal
4069
+ */
4070
+ function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
4071
+ if (state.isLeaving) return emptyPlaceholder(next);
4072
+ const nextInner = getInnerChild$1(next);
4073
+ if (!nextInner) return emptyPlaceholder(next);
4074
+ let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
4075
+ if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
4076
+ enterHooks = hooks;
4077
+ });
4078
+ if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
4079
+ if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
4080
+ const mode = props.mode;
4081
+ const previousInner = previous && getInnerChild$1(previous);
4082
+ if (previous && previousInner && previousInner.type !== Comment && !isSameVNodeType(previousInner, nextInner) && (!previous.component || recursiveGetSubtree(previous.component).type !== Comment)) {
4083
+ const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
4084
+ if (nextInner.type !== Comment && (mode === "out-in" || mode === "in-out") && applyTransitionModeSwitch(previousInner, leavingHooks, mode === "in-out" ? () => enterHooks : void 0, props, state, resumeAfterLeave)) return emptyPlaceholder(next);
4085
+ }
4086
+ return next;
4087
+ }
4088
+ function forwardDelayedLeave(hooks, source) {
4089
+ const delayedLeave = source && source.delayedLeave;
4090
+ if (!delayedLeave) return;
4091
+ hooks.delayedLeave = () => {
4092
+ if (source.delayedLeave === delayedLeave) delayedLeave();
4093
+ delete hooks.delayedLeave;
4094
+ };
4095
+ }
4096
+ /**
4097
+ * Prepares an outgoing VNode when the incoming branch belongs to another
4098
+ * renderer. Returns true when out-in must defer the incoming branch.
4099
+ *
4100
+ * @internal
4101
+ */
4102
+ function prepareTransitionLeave(previous, enterHooks, props, state, instance, resumeAfterLeave) {
4103
+ const previousInner = getInnerChild$1(previous);
4104
+ if (!previousInner || previousInner.type === Comment || previous.component && recursiveGetSubtree(previous.component).type === Comment) return false;
4105
+ return applyTransitionModeSwitch(previousInner, prepareLeavingTransitionHooks(previousInner, props, state, instance), enterHooks ? () => enterHooks : void 0, props, state, resumeAfterLeave);
4106
+ }
4107
+ function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
4108
+ return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
4109
+ }
4110
+ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
4111
+ if (props.mode === "out-in") {
4112
+ state.isLeaving = true;
4113
+ leavingHooks.afterLeave = () => {
4114
+ state.isLeaving = false;
4115
+ resumeAfterLeave();
4116
+ delete leavingHooks.afterLeave;
4117
+ };
4118
+ return true;
4119
+ } else if (props.mode === "in-out" && getEnterHooks) {
4120
+ let delayedLeavingVNode = leavingVNode;
4121
+ leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
4122
+ const enterHooks = getEnterHooks();
4123
+ if (!enterHooks) {
4124
+ delayedLeave();
4125
+ return;
4126
+ }
4127
+ const vnode = delayedLeavingVNode;
4128
+ const leavingVNodesCache = getLeavingNodesForType(state, vnode);
4129
+ leavingVNodesCache[String(vnode.key)] = vnode;
4130
+ el[leaveCbKey] = () => {
4131
+ earlyRemove();
4132
+ el[leaveCbKey] = void 0;
4133
+ delete enterHooks.delayedLeave;
4134
+ delayedLeavingVNode = void 0;
4135
+ };
4136
+ enterHooks.delayedLeave = () => {
4137
+ delayedLeave();
4138
+ delete enterHooks.delayedLeave;
4139
+ delayedLeavingVNode = void 0;
4140
+ };
4141
+ };
4142
+ }
4143
+ return false;
4144
+ }
4012
4145
  function setTransitionHooks(vnode, hooks) {
4013
- if (vnode.shapeFlag & 6 && vnode.component) if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4014
- else {
4146
+ if (vnode.shapeFlag & 6 && vnode.component) {
4015
4147
  vnode.transition = hooks;
4016
- setTransitionHooks(vnode.component.subTree, hooks);
4017
- }
4018
- else if (vnode.shapeFlag & 128) {
4019
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4020
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4148
+ if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4149
+ else {
4150
+ const subTree = vnode.component.subTree;
4151
+ return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
4152
+ }
4153
+ } else if (vnode.shapeFlag & 128) {
4154
+ const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4155
+ const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4156
+ return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
4021
4157
  } else vnode.transition = hooks;
4158
+ return hooks;
4022
4159
  }
4023
4160
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
4024
4161
  let ret = [];
@@ -4042,9 +4179,9 @@ function checkTransitionMode(mode) {
4042
4179
  }
4043
4180
  //#endregion
4044
4181
  //#region packages/runtime-core/src/apiDefineComponent.ts
4045
- /* @__NO_SIDE_EFFECTS__ */
4182
+ /*@__NO_SIDE_EFFECTS__*/
4046
4183
  function defineComponent(options, extraOptions) {
4047
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
4184
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
4048
4185
  }
4049
4186
  //#endregion
4050
4187
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -4141,15 +4278,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4141
4278
  if (rawRef.f) {
4142
4279
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
4143
4280
  if (isUnmount) isArray(existing) && remove(existing, refValue);
4144
- else if (!isArray(existing)) if (_isString) {
4145
- refs[ref] = [refValue];
4146
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4147
- } else {
4148
- const newVal = [refValue];
4149
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4150
- if (rawRef.k) refs[rawRef.k] = newVal;
4151
- }
4152
- else if (!existing.includes(refValue)) existing.push(refValue);
4281
+ else if (!isArray(existing)) {
4282
+ if (_isString) {
4283
+ refs[ref] = [refValue];
4284
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4285
+ } else {
4286
+ const newVal = [refValue];
4287
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4288
+ if (rawRef.k) refs[rawRef.k] = newVal;
4289
+ }
4290
+ } else if (!existing.includes(refValue)) existing.push(refValue);
4153
4291
  } else if (_isString) {
4154
4292
  refs[ref] = value;
4155
4293
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -4210,7 +4348,18 @@ const logMismatchError = () => {
4210
4348
  hasLoggedMismatchError = true;
4211
4349
  };
4212
4350
  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
4213
- const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
4351
+ const isMathMLContainer = (container) => {
4352
+ if (!container.namespaceURI.includes("MathML")) return false;
4353
+ if (container.tagName !== "annotation-xml") return true;
4354
+ const encoding = container.getAttribute("encoding");
4355
+ return !encoding || !encoding.includes("html");
4356
+ };
4357
+ /**
4358
+ * Resolve the element namespace a container's children should be created in.
4359
+ * The live DOM is the source of truth, so this also covers containers that are
4360
+ * only known at runtime (interop boundaries, teleport targets).
4361
+ * @internal
4362
+ */
4214
4363
  const getContainerType = (container) => {
4215
4364
  if (container.nodeType !== 1) return void 0;
4216
4365
  if (isSVGContainer(container)) return "svg";
@@ -4236,7 +4385,7 @@ function createHydrationFunctions(rendererInternals) {
4236
4385
  };
4237
4386
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
4238
4387
  optimized = optimized || !!vnode.dynamicChildren;
4239
- const isFragmentStart = isComment(node) && node.data === "[";
4388
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
4240
4389
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
4241
4390
  const { type, ref, shapeFlag, patchFlag } = vnode;
4242
4391
  let domType = node.nodeType;
@@ -4252,11 +4401,12 @@ function createHydrationFunctions(rendererInternals) {
4252
4401
  let nextNode = null;
4253
4402
  switch (type) {
4254
4403
  case Text:
4255
- if (domType !== 3) if (vnode.children === "") {
4256
- insert(vnode.el = createText(""), parentNode(node), node);
4257
- nextNode = node;
4258
- } else nextNode = onMismatch();
4259
- else {
4404
+ if (domType !== 3) {
4405
+ if (vnode.children === "") {
4406
+ insert(vnode.el = createText(""), parentNode(node), node);
4407
+ nextNode = node;
4408
+ } else nextNode = onMismatch();
4409
+ } else {
4260
4410
  if (node.data !== vnode.children) {
4261
4411
  (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
4262
4412
  logMismatchError();
@@ -4293,45 +4443,35 @@ function createHydrationFunctions(rendererInternals) {
4293
4443
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4294
4444
  break;
4295
4445
  case VaporSlot:
4296
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
4446
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
4297
4447
  break;
4298
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
4299
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4300
- else if (shapeFlag & 6) {
4448
+ default: if (shapeFlag & 1) {
4449
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
4450
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4451
+ } else if (shapeFlag & 6) {
4301
4452
  vnode.slotScopeIds = slotScopeIds;
4302
4453
  const container = parentNode(node);
4303
4454
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
4304
4455
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
4305
4456
  else nextNode = nextSibling(node);
4306
- if (vnode.type.__vapor) {
4307
- const vnodeBeforeMountHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeBeforeMount;
4308
- getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
4309
- if (vnode.dirs) {
4310
- invokeDirectiveHook(vnode, null, parentComponent, "created");
4311
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4312
- }
4313
- }, () => {
4314
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
4315
- });
4316
- if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
4317
- const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
4318
- if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
4319
- } else {
4457
+ if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
4458
+ else {
4320
4459
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
4321
4460
  const component = vnode.component;
4322
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
4461
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
4323
4462
  let subTree;
4324
4463
  if (isFragmentStart) {
4325
- subTree = createVNode(Fragment);
4464
+ subTree = createVNode(Static);
4326
4465
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4327
- } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4466
+ } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
4328
4467
  subTree.el = node;
4329
4468
  component.subTree = subTree;
4330
4469
  }
4331
4470
  }
4332
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
4333
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
4334
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
4471
+ } else if (shapeFlag & 64) {
4472
+ if (domType !== 8) nextNode = onMismatch();
4473
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
4474
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
4335
4475
  else if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
4336
4476
  }
4337
4477
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
@@ -4385,7 +4525,10 @@ function createHydrationFunctions(rendererInternals) {
4385
4525
  const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
4386
4526
  for (const key in props) {
4387
4527
  if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
4388
- if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) patchProp(el, key, null, props[key], namespace, parentComponent);
4528
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
4529
+ if (isUnchangedResourceProp(el, key, props[key])) continue;
4530
+ patchProp(el, key, null, props[key], namespace, parentComponent);
4531
+ }
4389
4532
  }
4390
4533
  } else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
4391
4534
  else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
@@ -4435,8 +4578,9 @@ function createHydrationFunctions(rendererInternals) {
4435
4578
  const { slotScopeIds: fragmentSlotScopeIds } = vnode;
4436
4579
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
4437
4580
  const container = parentNode(node);
4438
- const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4439
- if (next && isComment(next) && next.data === "]") return nextSibling(vnode.anchor = next);
4581
+ const first = nextSibling(node);
4582
+ const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4583
+ if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
4440
4584
  else {
4441
4585
  logMismatchError();
4442
4586
  insert(vnode.anchor = createComment(`]`), container, next);
@@ -4445,7 +4589,7 @@ function createHydrationFunctions(rendererInternals) {
4445
4589
  };
4446
4590
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
4447
4591
  if (!isNodeMismatchAllowed(node, vnode)) {
4448
- (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 === "[" ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
4592
+ (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);
4449
4593
  logMismatchError();
4450
4594
  }
4451
4595
  vnode.el = null;
@@ -4461,20 +4605,22 @@ function createHydrationFunctions(rendererInternals) {
4461
4605
  const container = parentNode(node);
4462
4606
  remove(node);
4463
4607
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4464
- if (parentComponent) {
4608
+ if (parentComponent && parentComponent.vnode) {
4465
4609
  parentComponent.vnode.el = vnode.el;
4466
4610
  updateHOCHostEl(parentComponent, vnode.el);
4467
4611
  }
4468
4612
  return next;
4469
4613
  };
4470
- const locateClosingAnchor = (node, open = "[", close = "]") => {
4614
+ const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
4471
4615
  let match = 0;
4472
4616
  while (node) {
4473
4617
  node = nextSibling(node);
4474
4618
  if (node && isComment(node)) {
4475
4619
  if (node.data === open) match++;
4476
- if (node.data === close) if (match === 0) return nextSibling(node);
4477
- else match--;
4620
+ if (node.data === close) {
4621
+ if (match === 0) return nextSibling(node);
4622
+ else match--;
4623
+ }
4478
4624
  }
4479
4625
  }
4480
4626
  return node;
@@ -4484,7 +4630,7 @@ function createHydrationFunctions(rendererInternals) {
4484
4630
  if (parentNode) parentNode.replaceChild(newNode, oldNode);
4485
4631
  let parent = parentComponent;
4486
4632
  while (parent) {
4487
- if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4633
+ if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4488
4634
  parent = parent.parent;
4489
4635
  }
4490
4636
  };
@@ -4493,6 +4639,16 @@ function createHydrationFunctions(rendererInternals) {
4493
4639
  const isTemplateNode = (node) => {
4494
4640
  return node.nodeType === 1 && node.tagName === "TEMPLATE";
4495
4641
  };
4642
+ const resourceProps = /*@__PURE__*/ new Set([
4643
+ "src",
4644
+ "srcset",
4645
+ "href",
4646
+ "poster"
4647
+ ]);
4648
+ function isUnchangedResourceProp(el, key, clientValue) {
4649
+ if (!resourceProps.has(key)) return false;
4650
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
4651
+ }
4496
4652
  /**
4497
4653
  * Dev only
4498
4654
  */
@@ -4536,7 +4692,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
4536
4692
  function getAttributeMismatch(el, key, clientValue) {
4537
4693
  let actual;
4538
4694
  let expected;
4539
- if (isBooleanAttr(key)) {
4695
+ if (key === "hidden") {
4696
+ actual = normalizeHiddenValue(el.getAttribute(key));
4697
+ expected = normalizeHiddenValue(clientValue);
4698
+ } else if (isBooleanAttr(key)) {
4540
4699
  actual = el.hasAttribute(key);
4541
4700
  expected = includeBooleanAttr(clientValue);
4542
4701
  } else if (clientValue == null) {
@@ -4564,6 +4723,11 @@ function warnPropMismatch(el, mismatchKey, mismatchType, actual, expected) {
4564
4723
  }
4565
4724
  return false;
4566
4725
  }
4726
+ function normalizeHiddenValue(value) {
4727
+ if (!isRenderableAttrValue(value)) return false;
4728
+ if (isString(value)) return value.toLowerCase() === "until-found" ? "until-found" : "";
4729
+ return includeBooleanAttr(value) ? "" : false;
4730
+ }
4567
4731
  function toClassSet(str) {
4568
4732
  return new Set(str.trim().split(/\s+/));
4569
4733
  }
@@ -4714,16 +4878,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
4714
4878
  return teardown;
4715
4879
  };
4716
4880
  function forEachElement(node, cb) {
4717
- if (isComment(node) && node.data === "[") {
4881
+ if (isComment(node) && (node.data === "[" || node.data === "(")) {
4882
+ const open = node.data;
4883
+ const close = open === "[" ? "]" : ")";
4718
4884
  let depth = 1;
4719
4885
  let next = node.nextSibling;
4720
4886
  while (next) {
4721
4887
  if (next.nodeType === 1) {
4722
4888
  if (cb(next) === false) break;
4723
4889
  } else if (isComment(next)) {
4724
- if (next.data === "]") {
4890
+ if (next.data === close) {
4725
4891
  if (--depth === 0) break;
4726
- } else if (next.data === "[") depth++;
4892
+ } else if (next.data === open) depth++;
4727
4893
  }
4728
4894
  next = next.nextSibling;
4729
4895
  }
@@ -4732,14 +4898,14 @@ function forEachElement(node, cb) {
4732
4898
  //#endregion
4733
4899
  //#region packages/runtime-core/src/apiAsyncComponent.ts
4734
4900
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4735
- /* @__NO_SIDE_EFFECTS__ */
4901
+ /*@__NO_SIDE_EFFECTS__*/
4736
4902
  function defineAsyncComponent(source) {
4737
4903
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
4738
4904
  return /* @__PURE__ */ defineComponent({
4739
4905
  name: "AsyncComponentWrapper",
4740
4906
  __asyncLoader: load,
4741
4907
  __asyncHydrate(el, instance, hydrate) {
4742
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
4908
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
4743
4909
  },
4744
4910
  get __asyncResolved() {
4745
4911
  return getResolvedComp();
@@ -4858,10 +5024,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
4858
5024
  * shared between core and vapor
4859
5025
  * @internal
4860
5026
  */
4861
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
5027
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4862
5028
  const wasConnected = el.isConnected;
4863
5029
  let patched = false;
4864
- (instance.bu || (instance.bu = [])).push(() => patched = true);
5030
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
4865
5031
  const performHydrate = () => {
4866
5032
  if (patched) {
4867
5033
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -4951,10 +5117,13 @@ const KeepAliveImpl = {
4951
5117
  });
4952
5118
  let pendingCacheKey = null;
4953
5119
  const cacheSubtree = () => {
4954
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4955
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4956
- }, void 0, keepAliveInstance.subTree.suspense);
4957
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5120
+ if (pendingCacheKey != null) {
5121
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
5122
+ const vnode = getInnerChild(keepAliveInstance.subTree);
5123
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
5124
+ }, void 0, keepAliveInstance.subTree.suspense);
5125
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5126
+ }
4958
5127
  };
4959
5128
  onMounted(cacheSubtree);
4960
5129
  onUpdated(cacheSubtree);
@@ -5025,7 +5194,7 @@ const decorate$2 = (t) => {
5025
5194
  t.__isBuiltIn = true;
5026
5195
  return t;
5027
5196
  };
5028
- const KeepAlive = /* @__PURE__ */ decorate$2(KeepAliveImpl);
5197
+ const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
5029
5198
  function matches(pattern, name) {
5030
5199
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
5031
5200
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -5116,7 +5285,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
5116
5285
  try {
5117
5286
  return callWithAsyncErrorHandling(hook, target, type, args);
5118
5287
  } finally {
5119
- setCurrentInstance(...prev);
5288
+ restoreCurrentInstance(prev);
5120
5289
  setActiveSub(prevSub);
5121
5290
  }
5122
5291
  });
@@ -5241,16 +5410,17 @@ function compatH(type, propsOrChildren, children) {
5241
5410
  }
5242
5411
  const l = arguments.length;
5243
5412
  const is2ndArgArrayChildren = isArray(propsOrChildren);
5244
- if (l === 2 || is2ndArgArrayChildren) if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
5245
- if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
5246
- return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
5247
- } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
5248
- else {
5413
+ if (l === 2 || is2ndArgArrayChildren) {
5414
+ if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
5415
+ if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
5416
+ return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
5417
+ } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
5418
+ } else {
5249
5419
  if (isVNode(children)) children = [children];
5250
5420
  return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
5251
5421
  }
5252
5422
  }
5253
- const skipLegacyRootLevelProps = /* @__PURE__ */ makeMap("staticStyle,staticClass,directives,model,hook");
5423
+ const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
5254
5424
  function convertLegacyProps(legacyProps, type) {
5255
5425
  if (!legacyProps) return null;
5256
5426
  const converted = {};
@@ -5262,8 +5432,10 @@ function convertLegacyProps(legacyProps, type) {
5262
5432
  if (key === "nativeOn") handlerKey += `Native`;
5263
5433
  const existing = converted[handlerKey];
5264
5434
  const incoming = listeners[event];
5265
- if (existing !== incoming) if (existing) converted[handlerKey] = [].concat(existing, incoming);
5266
- else converted[handlerKey] = incoming;
5435
+ if (existing !== incoming) {
5436
+ if (existing) converted[handlerKey] = [].concat(existing, incoming);
5437
+ else converted[handlerKey] = incoming;
5438
+ }
5267
5439
  }
5268
5440
  } else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
5269
5441
  if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
@@ -5362,7 +5534,7 @@ function convertLegacyFunctionalComponent(comp) {
5362
5534
  const legacyFn = comp.render;
5363
5535
  const Func = (props, ctx) => {
5364
5536
  const instance = getCurrentInstance();
5365
- return legacyFn(compatH, {
5537
+ const legacyCtx = {
5366
5538
  props,
5367
5539
  children: instance.vnode.children || [],
5368
5540
  data: instance.vnode.props || {},
@@ -5382,7 +5554,8 @@ function convertLegacyFunctionalComponent(comp) {
5382
5554
  }
5383
5555
  return {};
5384
5556
  }
5385
- });
5557
+ };
5558
+ return legacyFn(compatH, legacyCtx);
5386
5559
  };
5387
5560
  Func.props = comp.props;
5388
5561
  Func.displayName = comp.name;
@@ -5411,23 +5584,25 @@ function renderList(source, renderItem, cache, index) {
5411
5584
  }
5412
5585
  ret = new Array(source.length);
5413
5586
  for (let i = 0, l = source.length; i < l; i++) ret[i] = renderItem(needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], i, void 0, cached && cached[i]);
5414
- } else if (typeof source === "number") if (!!(process.env.NODE_ENV !== "production") && (!Number.isInteger(source) || source < 0)) {
5415
- warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5416
- ret = [];
5417
- } else {
5418
- ret = new Array(source);
5419
- for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
5420
- }
5421
- else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
5422
- else {
5423
- const keys = Object.keys(source);
5424
- ret = new Array(keys.length);
5425
- for (let i = 0, l = keys.length; i < l; i++) {
5426
- const key = keys[i];
5427
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
5587
+ } else if (typeof source === "number") {
5588
+ if (!!(process.env.NODE_ENV !== "production") && (!Number.isInteger(source) || source < 0)) {
5589
+ warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5590
+ ret = [];
5591
+ } else {
5592
+ ret = new Array(source);
5593
+ for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
5428
5594
  }
5429
- }
5430
- else ret = [];
5595
+ } else if (isObject(source)) {
5596
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
5597
+ else {
5598
+ const keys = Object.keys(source);
5599
+ ret = new Array(keys.length);
5600
+ for (let i = 0, l = keys.length; i < l; i++) {
5601
+ const key = keys[i];
5602
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
5603
+ }
5604
+ }
5605
+ } else ret = [];
5431
5606
  if (cache) cache[index] = ret;
5432
5607
  return ret;
5433
5608
  }
@@ -5452,18 +5627,45 @@ function createSlots(slots, dynamicSlots) {
5452
5627
  //#endregion
5453
5628
  //#region packages/runtime-core/src/helpers/renderSlot.ts
5454
5629
  /**
5630
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
5631
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
5632
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
5633
+ * "which one". Internal to vapor interop.
5634
+ */
5635
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
5636
+ /**
5637
+ * Invokes a VDOM slot fallback under the outlet owner that produced it, the
5638
+ * way `renderSlot` would have rendered it inline. Vapor interop invokes
5639
+ * fallbacks late, outside any render, so it passes the owner recorded on the
5640
+ * vapor slot vnode. Internal to vapor interop.
5641
+ */
5642
+ function invokeSlotFallback(fallback, owner) {
5643
+ if (!owner) return fallback();
5644
+ const prev = setCurrentRenderingInstance(owner);
5645
+ const prevStackSize = blockStack.length;
5646
+ try {
5647
+ return fallback();
5648
+ } finally {
5649
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5650
+ setCurrentRenderingInstance(prev);
5651
+ }
5652
+ }
5653
+ /**
5455
5654
  * Compiler runtime helper for rendering `<slot/>`
5456
5655
  * @private
5457
5656
  */
5458
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5657
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5658
+ if (props == null) props = {};
5459
5659
  let slot = slots[name];
5460
- if (fallback) fallback.__vdom = true;
5461
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
5660
+ const vaporSlot = slot && slot[rawVaporSlotKey];
5462
5661
  if (vaporSlot) {
5463
5662
  const ret = (openBlock(), createBlock(VaporSlot, props));
5464
5663
  ret.vs = {
5465
5664
  slot: vaporSlot,
5466
- fallback
5665
+ outlets: fallback ? [{
5666
+ fallback,
5667
+ owner: currentRenderingInstance
5668
+ }] : void 0
5467
5669
  };
5468
5670
  if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
5469
5671
  return ret;
@@ -5484,9 +5686,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5484
5686
  let rendered;
5485
5687
  try {
5486
5688
  const validSlotContent = slot && ensureValidVNode(slot(props));
5487
- ensureVaporSlotFallback(validSlotContent, fallback);
5689
+ let attached = false;
5690
+ if (fallback && validSlotContent && currentRenderingInstance) {
5691
+ const interop = currentRenderingInstance.appContext.vapor;
5692
+ if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
5693
+ }
5488
5694
  const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
5489
5695
  rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
5696
+ if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
5697
+ if (attached) rendered.vo = true;
5490
5698
  } catch (err) {
5491
5699
  for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5492
5700
  throw err;
@@ -5504,10 +5712,6 @@ function ensureValidVNode(vnodes) {
5504
5712
  return true;
5505
5713
  }) ? vnodes : null;
5506
5714
  }
5507
- function ensureVaporSlotFallback(vnodes, fallback) {
5508
- let vaporSlot;
5509
- if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
5510
- }
5511
5715
  //#endregion
5512
5716
  //#region packages/runtime-core/src/helpers/toHandlers.ts
5513
5717
  /**
@@ -5566,12 +5770,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
5566
5770
  function mapKeyToName(slots) {
5567
5771
  for (let i = 0; i < slots.length; i++) {
5568
5772
  const fn = slots[i];
5569
- if (fn) if (isArray(fn)) mapKeyToName(fn);
5570
- else fn.name = fn.key || "default";
5773
+ if (fn) {
5774
+ if (isArray(fn)) mapKeyToName(fn);
5775
+ else fn.name = fn.key || "default";
5776
+ }
5571
5777
  }
5572
5778
  return slots;
5573
5779
  }
5574
- const staticCacheMap = /* @__PURE__ */ new WeakMap();
5780
+ const staticCacheMap = /*@__PURE__*/ new WeakMap();
5575
5781
  function legacyRenderStatic(instance, index) {
5576
5782
  let cache = staticCacheMap.get(instance);
5577
5783
  if (!cache) staticCacheMap.set(instance, cache = []);
@@ -5704,11 +5910,38 @@ const getPublicInstance = (i) => {
5704
5910
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
5705
5911
  return getPublicInstance(i.parent);
5706
5912
  };
5913
+ const resolveDevRootEl = (vnode) => {
5914
+ let found = false;
5915
+ while (true) {
5916
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
5917
+ const root = filterSingleRoot(vnode.children);
5918
+ if (!root) return;
5919
+ vnode = root;
5920
+ found = true;
5921
+ continue;
5922
+ }
5923
+ const component = vnode.component;
5924
+ if (component && component.subTree) {
5925
+ vnode = component.subTree;
5926
+ continue;
5927
+ }
5928
+ const suspense = vnode.suspense;
5929
+ if (suspense && suspense.activeBranch) {
5930
+ vnode = suspense.activeBranch;
5931
+ continue;
5932
+ }
5933
+ return found ? vnode.el : void 0;
5934
+ }
5935
+ };
5936
+ const getDevRootFragmentEl = (i) => {
5937
+ const el = i.subTree && resolveDevRootEl(i.subTree);
5938
+ return el === void 0 ? i.vnode.el : el;
5939
+ };
5707
5940
  let publicPropertiesMap;
5708
5941
  const getPublicPropertiesMap = () => {
5709
5942
  if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
5710
5943
  $: (i) => i,
5711
- $el: (i) => i.vnode.el,
5944
+ $el: (i) => !!(process.env.NODE_ENV !== "production") ? getDevRootFragmentEl(i) : i.vnode.el,
5712
5945
  $data: (i) => i.data,
5713
5946
  $props: (i) => !!(process.env.NODE_ENV !== "production") ? /* @__PURE__ */ shallowReadonly(i.props) : i.props,
5714
5947
  $attrs: (i) => !!(process.env.NODE_ENV !== "production") ? /* @__PURE__ */ shallowReadonly(i.attrs) : i.attrs,
@@ -5821,7 +6054,7 @@ if (!!(process.env.NODE_ENV !== "production") && true) PublicInstanceProxyHandle
5821
6054
  warn$1("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.");
5822
6055
  return Reflect.ownKeys(target);
5823
6056
  };
5824
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
6057
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
5825
6058
  get(target, key) {
5826
6059
  if (key === Symbol.unscopables) return;
5827
6060
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -6006,12 +6239,13 @@ function mergeDefaults(raw, defaults) {
6006
6239
  for (const key in defaults) {
6007
6240
  if (key.startsWith("__skip")) continue;
6008
6241
  let opt = props[key];
6009
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
6010
- type: opt,
6011
- default: defaults[key]
6012
- };
6013
- else opt.default = defaults[key];
6014
- else if (opt === null) opt = props[key] = { default: defaults[key] };
6242
+ if (opt) {
6243
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
6244
+ type: opt,
6245
+ default: defaults[key]
6246
+ };
6247
+ else opt.default = defaults[key];
6248
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
6015
6249
  else if (!!(process.env.NODE_ENV !== "production")) warn$1(`props default key "${key}" has no corresponding declaration.`);
6016
6250
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
6017
6251
  }
@@ -6061,37 +6295,32 @@ function createPropsRestProxy(props, excludedKeys) {
6061
6295
  function withAsyncContext(getAwaitable) {
6062
6296
  const ctx = getCurrentGenericInstance();
6063
6297
  const inSSRSetup = isInSSRComponentSetup;
6064
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
6065
6298
  if (!!(process.env.NODE_ENV !== "production") && !ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
6066
6299
  let awaitable = getAwaitable();
6067
6300
  setCurrentInstance(null, void 0);
6068
6301
  if (inSSRSetup) setInSSRSetupState(false);
6069
6302
  const restore = () => {
6070
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6303
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6071
6304
  setCurrentInstance(ctx);
6072
6305
  if (inSSRSetup) setInSSRSetupState(true);
6073
- const reset = restoreAsyncContext && restoreAsyncContext();
6074
- return () => {
6075
- if (reset) reset();
6076
- if (resetStoppedScope) resetStoppedScope.reset();
6077
- };
6306
+ return stoppedScope;
6078
6307
  };
6079
6308
  const cleanup = () => {
6080
6309
  setCurrentInstance(null, void 0);
6081
6310
  if (inSSRSetup) setInSSRSetupState(false);
6082
6311
  };
6083
6312
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
6084
- const reset = restore();
6313
+ const stoppedScope = restore();
6085
6314
  Promise.resolve().then(() => Promise.resolve().then(() => {
6086
- if (reset) reset();
6315
+ if (stoppedScope) stoppedScope.reset();
6087
6316
  cleanup();
6088
6317
  }));
6089
6318
  throw e;
6090
6319
  });
6091
6320
  return [awaitable, () => {
6092
- const reset = restore();
6321
+ const stoppedScope = restore();
6093
6322
  Promise.resolve().then(() => {
6094
- if (reset) reset();
6323
+ if (stoppedScope) stoppedScope.reset();
6095
6324
  cleanup();
6096
6325
  });
6097
6326
  }];
@@ -6155,11 +6384,12 @@ function applyOptions(instance) {
6155
6384
  const opt = computedOptions[key];
6156
6385
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
6157
6386
  if (!!(process.env.NODE_ENV !== "production") && get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
6387
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== "production") ? () => {
6388
+ warn$1(`Write operation failed: computed property "${key}" is readonly.`);
6389
+ } : NOOP;
6158
6390
  const c = computed({
6159
6391
  get,
6160
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== "production") ? () => {
6161
- warn$1(`Write operation failed: computed property "${key}" is readonly.`);
6162
- } : NOOP
6392
+ set
6163
6393
  });
6164
6394
  Object.defineProperty(ctx, key, {
6165
6395
  enumerable: true,
@@ -6219,9 +6449,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
6219
6449
  for (const key in injectOptions) {
6220
6450
  const opt = injectOptions[key];
6221
6451
  let injected;
6222
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
6223
- else injected = inject(opt.from || key);
6224
- else injected = inject(opt);
6452
+ if (isObject(opt)) {
6453
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
6454
+ else injected = inject(opt.from || key);
6455
+ } else injected = inject(opt);
6225
6456
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
6226
6457
  enumerable: true,
6227
6458
  configurable: true,
@@ -6241,7 +6472,8 @@ function createWatcher(raw, ctx, publicThis, key) {
6241
6472
  {
6242
6473
  const cur = getCurrentInstance();
6243
6474
  const instance = cur && getCurrentScope() === cur.scope ? cur : null;
6244
- if (isArray(getter()) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
6475
+ const newValue = getter();
6476
+ if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
6245
6477
  const baseGetter = getter;
6246
6478
  getter = () => {
6247
6479
  const val = baseGetter();
@@ -6254,13 +6486,14 @@ function createWatcher(raw, ctx, publicThis, key) {
6254
6486
  if (isFunction(handler)) watch(getter, handler, options);
6255
6487
  else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
6256
6488
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
6257
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
6258
- else {
6259
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
6260
- if (isFunction(handler)) watch(getter, handler, extend(raw, options));
6261
- else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6262
- }
6263
- else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch option: "${key}"`, raw);
6489
+ else if (isObject(raw)) {
6490
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
6491
+ else {
6492
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
6493
+ if (isFunction(handler)) watch(getter, handler, extend(raw, options));
6494
+ else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6495
+ }
6496
+ } else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch option: "${key}"`, raw);
6264
6497
  }
6265
6498
  /**
6266
6499
  * Resolve merged options and cache it on the component.
@@ -6274,12 +6507,13 @@ function resolveMergedOptions(instance) {
6274
6507
  const cached = cache.get(base);
6275
6508
  let resolved;
6276
6509
  if (cached) resolved = cached;
6277
- else if (!globalMixins.length && !mixins && !extendsOptions) if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
6278
- resolved = extend({}, base);
6279
- resolved.parent = instance.parent && instance.parent.proxy;
6280
- resolved.propsData = instance.vnode.props;
6281
- } else resolved = base;
6282
- else {
6510
+ else if (!globalMixins.length && !mixins && !extendsOptions) {
6511
+ if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
6512
+ resolved = extend({}, base);
6513
+ resolved.parent = instance.parent && instance.parent.proxy;
6514
+ resolved.propsData = instance.vnode.props;
6515
+ } else resolved = base;
6516
+ } else {
6283
6517
  resolved = {};
6284
6518
  if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
6285
6519
  mergeOptions(resolved, base, optionMergeStrategies);
@@ -6352,7 +6586,7 @@ function mergeObjectOptions(to, from) {
6352
6586
  }
6353
6587
  function mergeEmitsOrPropsOptions(to, from) {
6354
6588
  if (to) {
6355
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
6589
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
6356
6590
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
6357
6591
  } else return from;
6358
6592
  }
@@ -6413,7 +6647,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6413
6647
  if (options.el) return vm.$mount(options.el);
6414
6648
  else return vm;
6415
6649
  }
6416
- Vue.version = `2.6.14-compat:3.6.0-rc.1`;
6650
+ Vue.version = `2.6.14-compat:3.6.0-rc.10`;
6417
6651
  Vue.config = singletonApp.config;
6418
6652
  Vue.use = (plugin, ...options) => {
6419
6653
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -6809,8 +7043,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
6809
7043
  } else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Cannot unmount an app that is not mounted.`);
6810
7044
  },
6811
7045
  provide(key, value) {
6812
- if (!!(process.env.NODE_ENV !== "production") && key in context.provides) if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
6813
- else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
7046
+ if (!!(process.env.NODE_ENV !== "production") && key in context.provides) {
7047
+ if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
7048
+ else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
7049
+ }
6814
7050
  context.provides[key] = value;
6815
7051
  return app;
6816
7052
  },
@@ -6892,13 +7128,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
6892
7128
  const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
6893
7129
  const res = customRef((track, trigger) => {
6894
7130
  let localValue;
7131
+ let prevPropValue = EMPTY_OBJ;
6895
7132
  let prevSetValue = EMPTY_OBJ;
6896
7133
  let prevEmittedValue;
6897
7134
  watchSyncEffect(() => {
6898
7135
  const propValue = props[camelizedName];
6899
- if (hasChanged(localValue, propValue)) {
6900
- localValue = propValue;
6901
- trigger();
7136
+ if (hasChanged(prevPropValue, propValue)) {
7137
+ prevPropValue = propValue;
7138
+ if (hasChanged(localValue, propValue)) {
7139
+ localValue = propValue;
7140
+ trigger();
7141
+ }
6902
7142
  }
6903
7143
  });
6904
7144
  return {
@@ -6960,12 +7200,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
6960
7200
  if (instance.isUnmounted) return;
6961
7201
  if (!!(process.env.NODE_ENV !== "production")) {
6962
7202
  const { emitsOptions, propsOptions } = instance;
6963
- if (emitsOptions) if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
6964
- if (!propsOptions || !propsOptions[0] || !(toHandlerKey(camelize(event)) in propsOptions[0])) warn$1(`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`);
6965
- } else {
6966
- const validator = emitsOptions[event];
6967
- if (isFunction(validator)) {
6968
- if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
7203
+ if (emitsOptions) {
7204
+ if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
7205
+ if (!propsOptions || !propsOptions[0] || !(toHandlerKey(camelize(event)) in propsOptions[0])) warn$1(`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`);
7206
+ } else {
7207
+ const validator = emitsOptions[event];
7208
+ if (isFunction(validator)) {
7209
+ if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
7210
+ }
6969
7211
  }
6970
7212
  }
6971
7213
  }
@@ -6975,7 +7217,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
6975
7217
  const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
6976
7218
  if (modifiers) {
6977
7219
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
6978
- if (modifiers.number) args = rawArgs.map(looseToNumber);
7220
+ if (modifiers.number) args = args.map(looseToNumber);
6979
7221
  }
6980
7222
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentEmit(instance, event, args);
6981
7223
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -7121,8 +7363,9 @@ function renderComponentRoot(instance) {
7121
7363
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
7122
7364
  }
7123
7365
  if (vnode.transition) {
7124
- if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
7125
- setTransitionHooks(root, vnode.transition);
7366
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
7367
+ if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(child)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
7368
+ setTransitionHooks(child, vnode.transition);
7126
7369
  }
7127
7370
  if (!!(process.env.NODE_ENV !== "production") && setRoot) setRoot(root);
7128
7371
  else result = root;
@@ -7173,18 +7416,21 @@ function filterSingleRoot(children, recurse = true) {
7173
7416
  for (let i = 0; i < children.length; i++) {
7174
7417
  const child = children[i];
7175
7418
  if (isVNode(child)) {
7176
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
7177
- else {
7178
- singleRoot = child;
7179
- if (!!(process.env.NODE_ENV !== "production") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
7419
+ if (child.type !== Comment || child.children === "v-if") {
7420
+ if (singleRoot) return;
7421
+ else {
7422
+ singleRoot = child;
7423
+ if (!!(process.env.NODE_ENV !== "production") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
7424
+ }
7180
7425
  }
7181
7426
  } else return;
7182
7427
  }
7183
7428
  return singleRoot;
7184
7429
  }
7430
+ const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
7185
7431
  const getFunctionalFallthrough = (attrs) => {
7186
7432
  let res;
7187
- for (const key in attrs) if (key === "class" || key === "style" || isOn(key)) (res || (res = {}))[key] = attrs[key];
7433
+ for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
7188
7434
  return res;
7189
7435
  };
7190
7436
  const filterModelListeners = (attrs, props) => {
@@ -7320,16 +7566,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7320
7566
  let key = propsToUpdate[i];
7321
7567
  if (isEmitListener(instance.emitsOptions, key)) continue;
7322
7568
  const value = rawProps[key];
7323
- if (options) if (hasOwn(attrs, key)) {
7324
- if (value !== attrs[key]) {
7325
- attrs[key] = value;
7326
- hasAttrsChanged = true;
7569
+ if (options) {
7570
+ if (hasOwn(attrs, key)) {
7571
+ if (value !== attrs[key]) {
7572
+ attrs[key] = value;
7573
+ hasAttrsChanged = true;
7574
+ }
7575
+ } else {
7576
+ const camelizedKey = camelize(key);
7577
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
7327
7578
  }
7328
7579
  } else {
7329
- const camelizedKey = camelize(key);
7330
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
7331
- }
7332
- else {
7333
7580
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
7334
7581
  else if (shouldSkipAttr(key, instance)) continue;
7335
7582
  if (value !== attrs[key]) {
@@ -7342,9 +7589,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7342
7589
  } else {
7343
7590
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
7344
7591
  let kebabKey;
7345
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
7346
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
7347
- } else delete props[key];
7592
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
7593
+ if (options) {
7594
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
7595
+ } else delete props[key];
7596
+ }
7348
7597
  if (attrs !== rawCurrentProps) {
7349
7598
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
7350
7599
  delete attrs[key];
@@ -7365,9 +7614,10 @@ function setFullProps(instance, rawProps, props, attrs) {
7365
7614
  if (key === "inline-template") continue;
7366
7615
  const value = rawProps[key];
7367
7616
  let camelKey;
7368
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
7369
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
7370
- else if (!isEmitListener(instance.emitsOptions, key)) {
7617
+ if (options && hasOwn(options, camelKey = camelize(key))) {
7618
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
7619
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
7620
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
7371
7621
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
7372
7622
  else if (shouldSkipAttr(key, instance)) continue;
7373
7623
  if (!(key in attrs) || value !== attrs[key]) {
@@ -7416,7 +7666,7 @@ function baseResolveDefault(factory, instance, key) {
7416
7666
  const prev = setCurrentInstance(instance);
7417
7667
  const props = /* @__PURE__ */ toRaw(instance.props);
7418
7668
  value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
7419
- setCurrentInstance(...prev);
7669
+ restoreCurrentInstance(prev);
7420
7670
  return value;
7421
7671
  }
7422
7672
  const mixinPropsCache = /* @__PURE__ */ new WeakMap();
@@ -7533,7 +7783,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
7533
7783
  }
7534
7784
  if (validator && !validator(value, !!(process.env.NODE_ENV !== "production") ? /* @__PURE__ */ shallowReadonly(resolvedProps) : resolvedProps)) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
7535
7785
  }
7536
- const isSimpleType = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
7786
+ const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
7537
7787
  /**
7538
7788
  * dev only
7539
7789
  */
@@ -7646,12 +7896,13 @@ const updateSlots = (instance, children, optimized) => {
7646
7896
  let deletionComparisonTarget = EMPTY_OBJ;
7647
7897
  if (vnode.shapeFlag & 32) {
7648
7898
  const type = children._;
7649
- if (type) if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) {
7650
- assignSlots(slots, children, optimized);
7651
- trigger(instance, "set", "$slots");
7652
- } else if (optimized && type === 1) needDeletionCheck = false;
7653
- else assignSlots(slots, children, optimized);
7654
- else {
7899
+ if (type) {
7900
+ if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) {
7901
+ assignSlots(slots, children, optimized);
7902
+ trigger(instance, "set", "$slots");
7903
+ } else if (optimized && type === 1) needDeletionCheck = false;
7904
+ else assignSlots(slots, children, optimized);
7905
+ } else {
7655
7906
  needDeletionCheck = !children.$stable;
7656
7907
  normalizeObjectSlots(children, slots, instance);
7657
7908
  }
@@ -7669,7 +7920,7 @@ const updateSlots = (instance, children, optimized) => {
7669
7920
  let supported;
7670
7921
  let perf;
7671
7922
  let cachedNow$1 = 0;
7672
- const p$1 = /* @__PURE__ */ Promise.resolve();
7923
+ const p$1 = /*@__PURE__*/ Promise.resolve();
7673
7924
  const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
7674
7925
  /**
7675
7926
  * @internal
@@ -7780,6 +8031,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7780
8031
  optimized = false;
7781
8032
  n2.dynamicChildren = null;
7782
8033
  }
8034
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
8035
+ if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
8036
+ n2.dynamicChildren.hasOnce = true;
8037
+ }
7783
8038
  const { type, ref, shapeFlag } = n2;
7784
8039
  switch (type) {
7785
8040
  case Text:
@@ -7796,7 +8051,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7796
8051
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7797
8052
  break;
7798
8053
  case VaporSlot:
7799
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
8054
+ getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
7800
8055
  break;
7801
8056
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7802
8057
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -7917,7 +8172,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7917
8172
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
7918
8173
  };
7919
8174
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
7920
- for (let i = start; i < children.length; i++) patch(null, children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]), container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8175
+ for (let i = start; i < children.length; i++) {
8176
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
8177
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8178
+ }
7921
8179
  };
7922
8180
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
7923
8181
  const el = n2.el = n1.el;
@@ -7929,6 +8187,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7929
8187
  let vnodeHook;
7930
8188
  parentComponent && toggleRecurse(parentComponent, false);
7931
8189
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8190
+ if (n2.ibu) n2.ibu();
7932
8191
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
7933
8192
  parentComponent && toggleRecurse(parentComponent, true);
7934
8193
  if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -7962,8 +8221,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7962
8221
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
7963
8222
  }
7964
8223
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
7965
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
8224
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
7966
8225
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8226
+ n2.iu && n2.iu();
7967
8227
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
7968
8228
  }, void 0, parentSuspense);
7969
8229
  };
@@ -7971,7 +8231,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7971
8231
  for (let i = 0; i < newChildren.length; i++) {
7972
8232
  const oldVNode = oldChildren[i];
7973
8233
  const newVNode = newChildren[i];
7974
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
8234
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
8235
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
7975
8236
  }
7976
8237
  };
7977
8238
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -8010,41 +8271,15 @@ function baseCreateRenderer(options, createHydrationFns) {
8010
8271
  };
8011
8272
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
8012
8273
  n2.slotScopeIds = slotScopeIds;
8013
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
8014
- else {
8015
- const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
8016
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
8017
- if (n2.dirs) {
8018
- invokeDirectiveHook(n2, null, parentComponent, "created");
8019
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
8020
- }
8021
- }, () => {
8022
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
8023
- });
8024
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
8025
- const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
8026
- if (vnodeMountedHook) {
8027
- const scopedVNode = n2;
8028
- queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
8029
- }
8030
- }
8031
- else {
8032
- const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
8033
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
8034
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
8035
- }, () => {
8036
- const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
8037
- if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
8038
- });
8039
- const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
8040
- if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
8041
- n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
8042
- vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
8043
- }, void 0, parentSuspense);
8044
- }
8045
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
8046
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
8047
- else updateComponent(n1, n2, optimized);
8274
+ if (n2.type.__vapor) {
8275
+ if (n1 == null) {
8276
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
8277
+ else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
8278
+ } else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
8279
+ } else if (n1 == null) {
8280
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
8281
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
8282
+ } else updateComponent(n1, n2, optimized);
8048
8283
  };
8049
8284
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
8050
8285
  const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
@@ -8092,16 +8327,18 @@ function baseCreateRenderer(options, createHydrationFns) {
8092
8327
  };
8093
8328
  const updateComponent = (n1, n2, optimized) => {
8094
8329
  const instance = n2.component = n1.component;
8095
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
8096
- if (!!(process.env.NODE_ENV !== "production")) pushWarningContext(n2);
8097
- updateComponentPreRender(instance, n2, optimized);
8098
- if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
8099
- return;
8330
+ if (shouldUpdateComponent(n1, n2, optimized)) {
8331
+ if (instance.asyncDep && !instance.asyncResolved) {
8332
+ if (!!(process.env.NODE_ENV !== "production")) pushWarningContext(n2);
8333
+ n2.el = n1.el;
8334
+ updateComponentPreRender(instance, n2, optimized);
8335
+ if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
8336
+ return;
8337
+ } else {
8338
+ instance.next = n2;
8339
+ instance.effect.run();
8340
+ }
8100
8341
  } else {
8101
- instance.next = n2;
8102
- instance.effect.run();
8103
- }
8104
- else {
8105
8342
  n2.el = n1.el;
8106
8343
  instance.vnode = n2;
8107
8344
  }
@@ -8206,6 +8443,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8206
8443
  } else next = vnode;
8207
8444
  if (bu) invokeArrayFns(bu);
8208
8445
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
8446
+ if (next.ibu) next.ibu();
8209
8447
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
8210
8448
  toggleRecurse(instance, true);
8211
8449
  if (!!(process.env.NODE_ENV !== "production")) startMeasure(instance, `render`);
@@ -8219,7 +8457,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8219
8457
  next.el = nextTree.el;
8220
8458
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
8221
8459
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
8222
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
8460
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
8461
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
8462
+ next.iu && next.iu();
8463
+ }, void 0, parentSuspense);
8223
8464
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
8224
8465
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentUpdated(instance);
8225
8466
  if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
@@ -8260,9 +8501,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8260
8501
  if (shapeFlag & 8) {
8261
8502
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
8262
8503
  if (c2 !== c1) hostSetElementText(container, c2);
8263
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8264
- else unmountChildren(c1, parentComponent, parentSuspense, true);
8265
- else {
8504
+ } else if (prevShapeFlag & 16) {
8505
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8506
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
8507
+ } else {
8266
8508
  if (prevShapeFlag & 8) hostSetElementText(container, "");
8267
8509
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8268
8510
  }
@@ -8361,15 +8603,17 @@ function baseCreateRenderer(options, createHydrationFns) {
8361
8603
  const anchorVNode = c2[nextIndex + 1];
8362
8604
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
8363
8605
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8364
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
8365
- else j--;
8606
+ else if (moved) {
8607
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
8608
+ else j--;
8609
+ }
8366
8610
  }
8367
8611
  }
8368
8612
  };
8369
8613
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
8370
8614
  const { el, type, transition, children, shapeFlag } = vnode;
8371
8615
  if (isVaporComponent(type) || type === VaporSlot) {
8372
- getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
8616
+ getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
8373
8617
  return;
8374
8618
  }
8375
8619
  if (shapeFlag & 6) {
@@ -8394,54 +8638,37 @@ function baseCreateRenderer(options, createHydrationFns) {
8394
8638
  moveStaticNode(vnode, container, anchor);
8395
8639
  return;
8396
8640
  }
8397
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8398
- else {
8399
- const { leave, delayLeave, afterLeave } = transition;
8400
- const remove = () => {
8641
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
8642
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8643
+ else performTransitionLeave(el, transition, () => {
8401
8644
  if (vnode.ctx.isUnmounted) hostRemove(el);
8402
8645
  else hostInsert(el, container, anchor);
8403
- };
8404
- const performLeave = () => {
8405
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8406
- if (el._isLeaving) el[leaveCbKey](true);
8407
- if (transition.persisted && !wasLeaving) remove();
8408
- else leave(el, () => {
8409
- remove();
8410
- afterLeave && afterLeave();
8411
- });
8412
- };
8413
- if (delayLeave) delayLeave(el, remove, performLeave);
8414
- else performLeave();
8415
- }
8416
- else hostInsert(el, container, anchor);
8646
+ }, true, true);
8647
+ } else hostInsert(el, container, anchor);
8417
8648
  };
8418
8649
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
8419
8650
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
8420
- if (patchFlag === -2) optimized = false;
8651
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
8421
8652
  if (ref != null) {
8422
8653
  const prevSub = setActiveSub();
8423
8654
  setRef(ref, null, parentSuspense, vnode, true);
8424
8655
  setActiveSub(prevSub);
8425
8656
  }
8426
- if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
8657
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
8427
8658
  if (shapeFlag & 256) {
8428
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
8659
+ if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
8429
8660
  else parentComponent.ctx.deactivate(vnode);
8430
8661
  return;
8431
8662
  }
8663
+ if (shapeFlag & 6 && isVaporComponent(type)) {
8664
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8665
+ return;
8666
+ }
8432
8667
  const shouldInvokeDirs = shapeFlag & 1 && dirs;
8433
8668
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
8434
8669
  let vnodeHook;
8435
8670
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
8436
- if (shapeFlag & 6) if (isVaporComponent(type)) {
8437
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
8438
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8439
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
8440
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
8441
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
8442
- }, void 0, parentSuspense);
8443
- return;
8444
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
8671
+ if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
8445
8672
  else {
8446
8673
  if (shapeFlag & 128) {
8447
8674
  vnode.suspense.unmount(parentSuspense, doRemove);
@@ -8452,7 +8679,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8452
8679
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
8453
8680
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
8454
8681
  if (type === VaporSlot) {
8455
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8682
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8456
8683
  return;
8457
8684
  }
8458
8685
  if (doRemove) remove(vnode);
@@ -8476,6 +8703,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8476
8703
  }
8477
8704
  if (type === Static) {
8478
8705
  removeStaticNode(vnode);
8706
+ if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8479
8707
  return;
8480
8708
  }
8481
8709
  if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
@@ -8501,7 +8729,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8501
8729
  if (effect) {
8502
8730
  effect.stop();
8503
8731
  unmount(subTree, instance, parentSuspense, doRemove);
8504
- } else if (doRemove && subTree && instance.vnode.el) remove(subTree);
8732
+ } else if (instance.vnode.el && subTree) {
8733
+ subTree.transition = instance.vnode.transition;
8734
+ unmount(subTree, instance, parentSuspense, doRemove);
8735
+ }
8505
8736
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
8506
8737
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
8507
8738
  queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
@@ -8576,12 +8807,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
8576
8807
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
8577
8808
  }
8578
8809
  function toggleRecurse({ effect, job, vapor }, allowed) {
8579
- if (!vapor) if (allowed) {
8580
- effect.flags |= 128;
8581
- job.flags |= 2;
8582
- } else {
8583
- effect.flags &= -129;
8584
- job.flags &= -3;
8810
+ if (!vapor) {
8811
+ if (allowed) {
8812
+ effect.flags |= 128;
8813
+ job.flags |= 2;
8814
+ } else {
8815
+ effect.flags &= -129;
8816
+ job.flags &= -3;
8817
+ }
8585
8818
  }
8586
8819
  }
8587
8820
  function needTransition(parentSuspense, transition) {
@@ -8621,8 +8854,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
8621
8854
  }
8622
8855
  function locateNonHydratedAsyncRoot(instance) {
8623
8856
  const subComponent = instance.subTree && instance.subTree.component;
8624
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
8625
- else return locateNonHydratedAsyncRoot(subComponent);
8857
+ if (subComponent) {
8858
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
8859
+ else return locateNonHydratedAsyncRoot(subComponent);
8860
+ }
8626
8861
  }
8627
8862
  function invalidateMount(hooks) {
8628
8863
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
@@ -8641,13 +8876,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
8641
8876
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
8642
8877
  const performRemove = () => {
8643
8878
  remove();
8644
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8879
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
8645
8880
  };
8646
8881
  if (force || isElement && transition && !transition.persisted) {
8647
8882
  const { leave, delayLeave } = transition;
8648
8883
  const performLeave = () => {
8884
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8649
8885
  if (el._isLeaving && force) el[leaveCbKey](true);
8650
- leave(el, performRemove);
8886
+ if (force && transition.persisted && !wasLeaving) remove();
8887
+ else leave(el, performRemove);
8651
8888
  };
8652
8889
  if (delayLeave) delayLeave(el, performRemove, performLeave);
8653
8890
  else performLeave();
@@ -8666,7 +8903,7 @@ function isVaporComponent(type) {
8666
8903
  /**
8667
8904
  * shared between vdom and vapor
8668
8905
  */
8669
- function getInheritedScopeIds(vnode, parentComponent) {
8906
+ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
8670
8907
  const inheritedScopeIds = [];
8671
8908
  let currentParent = parentComponent;
8672
8909
  let currentVNode = vnode;
@@ -8682,6 +8919,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
8682
8919
  currentParent = currentParent.parent;
8683
8920
  } else break;
8684
8921
  }
8922
+ const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
8923
+ if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
8685
8924
  return inheritedScopeIds;
8686
8925
  }
8687
8926
  function resolveAsyncComponentPlaceholder(anchorVnode) {
@@ -8700,7 +8939,7 @@ const Suspense = {
8700
8939
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
8701
8940
  if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
8702
8941
  else {
8703
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
8942
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
8704
8943
  n2.suspense = n1.suspense;
8705
8944
  n2.suspense.vnode = n2;
8706
8945
  n2.el = n1.el;
@@ -8738,10 +8977,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
8738
8977
  if (pendingBranch) {
8739
8978
  suspense.pendingBranch = newBranch;
8740
8979
  if (isSameVNodeType(pendingBranch, newBranch)) {
8741
- patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8980
+ suspense.deps++;
8981
+ patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8982
+ suspense.deps--;
8742
8983
  if (suspense.deps <= 0) suspense.resolve();
8743
8984
  else if (isInFallback) {
8744
- if (!isHydrating) {
8985
+ if (!isHydrating && !suspense.isFallbackMountPending) {
8745
8986
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8746
8987
  setActiveBranch(suspense, newFallback);
8747
8988
  }
@@ -8753,12 +8994,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
8753
8994
  suspense.activeBranch = pendingBranch;
8754
8995
  } else unmount(pendingBranch, parentComponent, suspense);
8755
8996
  suspense.deps = 0;
8997
+ for (let i = 0; i < suspense.effects.length; i++) {
8998
+ const effect = suspense.effects[i];
8999
+ if (effect.flags & 8) queuePostFlushCb(effect);
9000
+ }
8756
9001
  suspense.effects.length = 0;
8757
9002
  suspense.hiddenContainer = createElement("div");
8758
9003
  if (isInFallback) {
8759
9004
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8760
9005
  if (suspense.deps <= 0) suspense.resolve();
8761
- else {
9006
+ else if (!suspense.isFallbackMountPending) {
8762
9007
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8763
9008
  setActiveBranch(suspense, newFallback);
8764
9009
  }
@@ -8862,7 +9107,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8862
9107
  let hasUnresolvedAncestor = false;
8863
9108
  while (parent) {
8864
9109
  if (parent.pendingBranch) {
8865
- parent.effects.push(...effects);
9110
+ for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
8866
9111
  hasUnresolvedAncestor = true;
8867
9112
  break;
8868
9113
  }
@@ -8872,6 +9117,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8872
9117
  suspense.effects = [];
8873
9118
  if (isSuspensible) {
8874
9119
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
9120
+ parentSuspenseId = void 0;
8875
9121
  parentSuspense.deps--;
8876
9122
  if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
8877
9123
  }
@@ -8886,8 +9132,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8886
9132
  const mountFallback = () => {
8887
9133
  suspense.isFallbackMountPending = false;
8888
9134
  if (!suspense.isInFallback) return;
8889
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8890
- setActiveBranch(suspense, fallbackVNode);
9135
+ const latestFallback = suspense.vnode.ssFallback;
9136
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
9137
+ setActiveBranch(suspense, latestFallback);
8891
9138
  };
8892
9139
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
8893
9140
  if (delayEnter) {
@@ -8908,11 +9155,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8908
9155
  registerDep(instance, onResolve) {
8909
9156
  const isInPendingSuspense = !!suspense.pendingBranch;
8910
9157
  if (isInPendingSuspense) suspense.deps++;
9158
+ const hydratedEl = instance.vnode && instance.vnode.el;
8911
9159
  instance.asyncDep.catch((err) => {
8912
9160
  handleError(err, instance, 0);
8913
9161
  }).then((asyncSetupResult) => {
8914
9162
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
8915
9163
  setCurrentInstance(null, void 0);
9164
+ if (hydratedEl && !instance.scope.active) {
9165
+ if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
9166
+ return;
9167
+ }
8916
9168
  instance.asyncResolved = true;
8917
9169
  onResolve(asyncSetupResult);
8918
9170
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
@@ -8963,9 +9215,10 @@ function normalizeSuspenseSlot(s) {
8963
9215
  return s;
8964
9216
  }
8965
9217
  function queueEffectWithSuspense(fn, id, suspense) {
8966
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
8967
- else suspense.effects.push(fn);
8968
- else queuePostFlushCb(fn, id);
9218
+ if (suspense && suspense.pendingBranch) {
9219
+ if (isArray(fn)) suspense.effects.push(...fn);
9220
+ else suspense.effects.push(fn);
9221
+ } else queuePostFlushCb(fn, id);
8969
9222
  }
8970
9223
  function setActiveBranch(suspense, branch) {
8971
9224
  suspense.activeBranch = branch;
@@ -9172,11 +9425,26 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
9172
9425
  if (shapeFlag & 128) type.normalize(vnode);
9173
9426
  } else if (children) vnode.shapeFlag |= isString(children) ? 8 : 16;
9174
9427
  if (!!(process.env.NODE_ENV !== "production") && vnode.key !== vnode.key) warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
9428
+ if (!!(process.env.NODE_ENV !== "production") && props && vnode.shapeFlag & 1) {
9429
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
9430
+ if (overwritingProp && hasContentChildren(vnode.children)) warn$1(`The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`);
9431
+ }
9175
9432
  if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) currentBlock.push(vnode);
9176
9433
  convertLegacyVModelProps(vnode);
9177
9434
  defineLegacyVNodeProperties(vnode);
9178
9435
  return vnode;
9179
9436
  }
9437
+ /**
9438
+ * dev only
9439
+ * Whether children would actually render something. Empty text and empty
9440
+ * arrays are ignored, mirroring the compiler's `node.children.length` check
9441
+ * for `v-html` / `v-text`.
9442
+ */
9443
+ function hasContentChildren(children) {
9444
+ if (isString(children)) return children !== "";
9445
+ if (isArray(children)) return children.length > 0;
9446
+ return false;
9447
+ }
9180
9448
  const createVNode = !!(process.env.NODE_ENV !== "production") ? createVNodeWithArgsTransform : _createVNode;
9181
9449
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
9182
9450
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -9186,8 +9454,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
9186
9454
  if (isVNode(type)) {
9187
9455
  const cloned = cloneVNode(type, props, true);
9188
9456
  if (children) normalizeChildren(cloned, children);
9189
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
9190
- else currentBlock.push(cloned);
9457
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
9458
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
9459
+ else currentBlock.push(cloned);
9460
+ }
9191
9461
  cloned.patchFlag = -2;
9192
9462
  return cloned;
9193
9463
  }
@@ -9248,7 +9518,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
9248
9518
  ce: vnode.ce,
9249
9519
  vi: vnode.vi,
9250
9520
  vs: cloneVaporSlotMeta(vnode),
9251
- vb: vnode.vb
9521
+ vb: vnode.vb,
9522
+ ibu: vnode.ibu,
9523
+ iu: vnode.iu,
9524
+ cacheIndex: vnode.cacheIndex
9252
9525
  };
9253
9526
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
9254
9527
  defineLegacyVNodeProperties(cloned);
@@ -9259,8 +9532,7 @@ function cloneVaporSlotMeta(vnode) {
9259
9532
  if (!vaporSlot) return vaporSlot;
9260
9533
  const cloned = {
9261
9534
  slot: vaporSlot.slot,
9262
- fallback: vaporSlot.fallback,
9263
- outletFallback: vaporSlot.outletFallback
9535
+ outlets: vaporSlot.outlets
9264
9536
  };
9265
9537
  if (vnode.el) {
9266
9538
  cloned.state = vaporSlot.state;
@@ -9312,25 +9584,28 @@ function normalizeChildren(vnode, children) {
9312
9584
  const { shapeFlag } = vnode;
9313
9585
  if (children == null) children = null;
9314
9586
  else if (isArray(children)) type = 16;
9315
- else if (typeof children === "object") if (shapeFlag & 65) {
9316
- const slot = children.default;
9317
- if (slot) {
9318
- slot._c && (slot._d = false);
9319
- normalizeChildren(vnode, slot());
9320
- slot._c && (slot._d = true);
9321
- }
9322
- return;
9323
- } else {
9324
- type = 32;
9325
- const slotFlag = children._;
9326
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
9327
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
9328
- else {
9329
- children._ = 2;
9330
- vnode.patchFlag |= 1024;
9587
+ else if (typeof children === "object") {
9588
+ if (shapeFlag & 65) {
9589
+ const slot = children.default;
9590
+ if (slot) {
9591
+ slot._c && (slot._d = false);
9592
+ normalizeChildren(vnode, slot());
9593
+ slot._c && (slot._d = true);
9594
+ }
9595
+ return;
9596
+ } else {
9597
+ type = 32;
9598
+ const slotFlag = children._;
9599
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
9600
+ else if (slotFlag === 3 && currentRenderingInstance) {
9601
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
9602
+ else {
9603
+ children._ = 2;
9604
+ vnode.patchFlag |= 1024;
9605
+ }
9606
+ }
9331
9607
  }
9332
- }
9333
- else if (isFunction(children)) {
9608
+ } else if (isFunction(children)) {
9334
9609
  if (shapeFlag & 65) {
9335
9610
  normalizeChildren(vnode, { default: children });
9336
9611
  return;
@@ -9407,6 +9682,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
9407
9682
  simpleSetCurrentInstance(instance);
9408
9683
  }
9409
9684
  };
9685
+ /**
9686
+ * Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
9687
+ * `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
9688
+ * verbatim instead of re-triggering the `instance.scope` default.
9689
+ * @internal
9690
+ */
9691
+ const restoreCurrentInstance = (prev) => {
9692
+ setCurrentScope(prev[1]);
9693
+ simpleSetCurrentInstance(prev[0]);
9694
+ };
9410
9695
  const internalOptions = [
9411
9696
  "ce",
9412
9697
  "type",
@@ -9438,7 +9723,7 @@ const useInstanceOption = (key, silent = false) => {
9438
9723
  };
9439
9724
  //#endregion
9440
9725
  //#region packages/runtime-core/src/component.ts
9441
- const emptyAppContext = /* @__PURE__ */ createAppContext();
9726
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
9442
9727
  let uid = 0;
9443
9728
  /**
9444
9729
  * @internal for vapor
@@ -9567,7 +9852,7 @@ function setupStatefulComponent(instance, isSSR) {
9567
9852
  const setupResult = callWithErrorHandling(setup, instance, 0, [!!(process.env.NODE_ENV !== "production") ? /* @__PURE__ */ shallowReadonly(instance.props) : instance.props, setupContext]);
9568
9853
  const isAsyncSetup = isPromise(setupResult);
9569
9854
  setActiveSub(prevSub);
9570
- setCurrentInstance(...prev);
9855
+ restoreCurrentInstance(prev);
9571
9856
  if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
9572
9857
  if (isAsyncSetup) {
9573
9858
  const unsetCurrentInstance = () => {
@@ -9575,7 +9860,12 @@ function setupStatefulComponent(instance, isSSR) {
9575
9860
  };
9576
9861
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
9577
9862
  if (isSSR) return setupResult.then((resolvedResult) => {
9578
- handleSetupResult(instance, resolvedResult, isSSR);
9863
+ setInSSRSetupState(true);
9864
+ try {
9865
+ handleSetupResult(instance, resolvedResult, isSSR);
9866
+ } finally {
9867
+ setInSSRSetupState(false);
9868
+ }
9579
9869
  }).catch((e) => {
9580
9870
  handleError(e, instance, 0);
9581
9871
  });
@@ -9587,9 +9877,10 @@ function setupStatefulComponent(instance, isSSR) {
9587
9877
  } else finishComponentSetup(instance, isSSR);
9588
9878
  }
9589
9879
  function handleSetupResult(instance, setupResult, isSSR) {
9590
- if (isFunction(setupResult)) if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
9591
- else instance.render = setupResult;
9592
- else if (isObject(setupResult)) {
9880
+ if (isFunction(setupResult)) {
9881
+ if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
9882
+ else instance.render = setupResult;
9883
+ } else if (isObject(setupResult)) {
9593
9884
  if (!!(process.env.NODE_ENV !== "production") && isVNode(setupResult)) warn$1("setup() should not return VNodes directly - return a render function instead.");
9594
9885
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) instance.devtoolsRawSetupState = setupResult;
9595
9886
  instance.setupState = proxyRefs(setupResult);
@@ -9641,13 +9932,15 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
9641
9932
  applyOptions(instance);
9642
9933
  } finally {
9643
9934
  setActiveSub(prevSub);
9644
- setCurrentInstance(...prevInstance);
9935
+ restoreCurrentInstance(prevInstance);
9645
9936
  }
9646
9937
  }
9647
- if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) if (!compile$1 && Component.template)
9938
+ if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) {
9939
+ if (!compile$1 && Component.template)
9648
9940
  /* v8 ignore start */
9649
- warn$1("Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".");
9650
- else warn$1(`Component is missing template or render function: `, Component);
9941
+ warn$1("Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".");
9942
+ else warn$1(`Component is missing template or render function: `, Component);
9943
+ }
9651
9944
  }
9652
9945
  const attrsProxyHandlers = !!(process.env.NODE_ENV !== "production") ? {
9653
9946
  get(target, key) {
@@ -9720,14 +10013,13 @@ function getComponentPublicInstance(instance) {
9720
10013
  if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
9721
10014
  get(target, key) {
9722
10015
  if (key in target) return target[key];
9723
- else {
10016
+ else if (!instance.vapor) {
9724
10017
  const publicPropertiesMap = getPublicPropertiesMap();
9725
10018
  if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
9726
10019
  }
9727
10020
  },
9728
10021
  has(target, key) {
9729
- const publicPropertiesMap = getPublicPropertiesMap();
9730
- return key in target || key in publicPropertiesMap;
10022
+ return key in target || !instance.vapor && key in getPublicPropertiesMap();
9731
10023
  }
9732
10024
  }));
9733
10025
  else return instance.proxy;
@@ -9765,11 +10057,12 @@ function h(type, propsOrChildren, children) {
9765
10057
  try {
9766
10058
  setBlockTracking(-1);
9767
10059
  const l = arguments.length;
9768
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
9769
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
9770
- return createVNode(type, propsOrChildren);
9771
- } else return createVNode(type, null, propsOrChildren);
9772
- else {
10060
+ if (l === 2) {
10061
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
10062
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
10063
+ return createVNode(type, propsOrChildren);
10064
+ } else return createVNode(type, null, propsOrChildren);
10065
+ } else {
9773
10066
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
9774
10067
  else if (l === 3 && isVNode(children)) children = [children];
9775
10068
  return createVNode(type, propsOrChildren, children);
@@ -9961,7 +10254,7 @@ function isMemoSame(cached, memo) {
9961
10254
  }
9962
10255
  //#endregion
9963
10256
  //#region packages/runtime-core/src/index.ts
9964
- const version = "3.6.0-rc.1";
10257
+ const version = "3.6.0-rc.10";
9965
10258
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
9966
10259
  /**
9967
10260
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -9984,7 +10277,10 @@ const ssrUtils = {
9984
10277
  getComponentPublicInstance,
9985
10278
  ensureValidVNode,
9986
10279
  pushWarningContext,
9987
- popWarningContext
10280
+ popWarningContext,
10281
+ VaporSlot,
10282
+ rawVaporSlotKey,
10283
+ invokeSlotFallback
9988
10284
  };
9989
10285
  /**
9990
10286
  * @internal only exposed in compat builds
@@ -10006,7 +10302,7 @@ const DeprecationTypes = DeprecationTypes$1;
10006
10302
  let policy = void 0;
10007
10303
  const tt = typeof window !== "undefined" && window.trustedTypes;
10008
10304
  if (tt) try {
10009
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
10305
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
10010
10306
  } catch (e) {
10011
10307
  process.env.NODE_ENV !== "production" && warn(`Error creating trusted types policy: ${e}`);
10012
10308
  }
@@ -10014,7 +10310,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
10014
10310
  const svgNS = "http://www.w3.org/2000/svg";
10015
10311
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
10016
10312
  const doc = typeof document !== "undefined" ? document : null;
10017
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
10313
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
10018
10314
  const nodeOps = {
10019
10315
  insert: (child, parent, anchor) => {
10020
10316
  parent.insertBefore(child, anchor || null);
@@ -10088,7 +10384,7 @@ const DOMTransitionPropsValidators = {
10088
10384
  leaveActiveClass: String,
10089
10385
  leaveToClass: String
10090
10386
  };
10091
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
10387
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
10092
10388
  /**
10093
10389
  * Wrap logic that attaches extra properties to Transition in a function
10094
10390
  * so that it can be annotated as pure
@@ -10103,7 +10399,7 @@ const decorate$1 = (t) => {
10103
10399
  * DOM Transition is a higher-order-component based on the platform-agnostic
10104
10400
  * base Transition component, with DOM-specific logic.
10105
10401
  */
10106
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
10402
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
10107
10403
  /**
10108
10404
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
10109
10405
  * with custom HOCs.
@@ -10343,14 +10639,15 @@ const vShow = {
10343
10639
  },
10344
10640
  updated(el, { value, oldValue }, { transition }) {
10345
10641
  if (!value === !oldValue) return;
10346
- if (transition) if (value) {
10347
- transition.beforeEnter(el);
10348
- setDisplay(el, true);
10349
- transition.enter(el);
10350
- } else transition.leave(el, () => {
10351
- setDisplay(el, false);
10352
- });
10353
- else setDisplay(el, value);
10642
+ if (transition) {
10643
+ if (value) {
10644
+ transition.beforeEnter(el);
10645
+ setDisplay(el, true);
10646
+ transition.enter(el);
10647
+ } else transition.leave(el, () => {
10648
+ setDisplay(el, false);
10649
+ });
10650
+ } else setDisplay(el, value);
10354
10651
  },
10355
10652
  beforeUnmount(el, { value }) {
10356
10653
  setDisplay(el, value);
@@ -10374,50 +10671,20 @@ const CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== "production") ? "CSS_VAR
10374
10671
  */
10375
10672
  function useCssVars(getter) {
10376
10673
  const instance = getCurrentInstance();
10377
- const getVars = () => getter(instance.proxy);
10378
- const setVars = (vars) => {
10379
- if (instance.ce) setVarsOnNode(instance.ce, vars);
10380
- else setVarsOnVNode(instance.subTree, vars);
10381
- };
10382
- baseUseCssVars(instance, () => instance.subTree.el.parentNode, getVars, setVars);
10383
- }
10384
- function setVarsOnVNode(vnode, vars) {
10385
- if (vnode.shapeFlag & 128) {
10386
- const suspense = vnode.suspense;
10387
- vnode = suspense.activeBranch;
10388
- if (suspense.pendingBranch && !suspense.isHydrating) suspense.effects.push(() => {
10389
- setVarsOnVNode(suspense.activeBranch, vars);
10390
- });
10391
- }
10392
- while (vnode.component) vnode = vnode.component.subTree;
10393
- if (vnode.shapeFlag & 1 && vnode.el) setVarsOnNode(vnode.el, vars);
10394
- else if (vnode.type === Fragment) vnode.children.forEach((c) => setVarsOnVNode(c, vars));
10395
- else if (vnode.type === Static) {
10396
- let { el, anchor } = vnode;
10397
- while (el) {
10398
- setVarsOnNode(el, vars);
10399
- if (el === anchor) break;
10400
- el = el.nextSibling;
10401
- }
10402
- }
10403
- }
10404
- /**
10405
- * @internal
10406
- * shared between vdom and vapor
10407
- */
10408
- function baseUseCssVars(instance, getParentNode, getVars, setVars) {
10409
10674
  /* v8 ignore start */
10410
10675
  if (!instance) {
10411
10676
  process.env.NODE_ENV !== "production" && warn(`useCssVars is called without current active component instance.`);
10412
10677
  return;
10413
10678
  }
10414
10679
  /* v8 ignore stop */
10680
+ const getVars = () => getter(instance.proxy);
10415
10681
  if (!!(process.env.NODE_ENV !== "production")) instance.getCssVars = getVars;
10416
10682
  const updateTeleports = instance.ut = (vars = getVars()) => {
10417
10683
  Array.from(document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)).forEach((node) => setVarsOnNode(node, vars));
10418
10684
  };
10419
10685
  const applyCssVars = (vars = getVars()) => {
10420
- setVars(vars);
10686
+ if (instance.ce) setVarsOnNode(instance.ce, vars);
10687
+ else setVarsOnVNode(instance.subTree, vars);
10421
10688
  updateTeleports(vars);
10422
10689
  };
10423
10690
  onBeforeUpdate(() => {
@@ -10430,10 +10697,38 @@ function baseUseCssVars(instance, getParentNode, getVars, setVars) {
10430
10697
  applyCssVars(vars);
10431
10698
  }, NOOP, { flush: "post" });
10432
10699
  const ob = new MutationObserver(() => applyCssVars());
10433
- ob.observe(getParentNode(), { childList: true });
10700
+ ob.observe(instance.subTree.el.parentNode, { childList: true });
10434
10701
  onUnmounted(() => ob.disconnect());
10435
10702
  });
10436
10703
  }
10704
+ function setVarsOnVNode(vnode, vars) {
10705
+ if (vnode.shapeFlag & 128) {
10706
+ const suspense = vnode.suspense;
10707
+ vnode = suspense.activeBranch;
10708
+ if (suspense.pendingBranch && !suspense.isHydrating) suspense.effects.push(() => {
10709
+ setVarsOnVNode(suspense.activeBranch, vars);
10710
+ });
10711
+ }
10712
+ while (vnode.component) {
10713
+ const component = vnode.component;
10714
+ if (component.vapor) {
10715
+ component.appContext.vapor.applyCssVars(vnode, vars);
10716
+ return;
10717
+ }
10718
+ vnode = vnode.component.subTree;
10719
+ }
10720
+ if (vnode.shapeFlag & 1 && vnode.el) setVarsOnNode(vnode.el, vars);
10721
+ else if (vnode.vb) vnode.ctx.appContext.vapor.applyCssVars(vnode, vars);
10722
+ else if (vnode.type === Fragment) vnode.children.forEach((c) => setVarsOnVNode(c, vars));
10723
+ else if (vnode.type === Static) {
10724
+ let { el, anchor } = vnode;
10725
+ while (el) {
10726
+ setVarsOnNode(el, vars);
10727
+ if (el === anchor) break;
10728
+ el = el.nextSibling;
10729
+ }
10730
+ }
10731
+ }
10437
10732
  /**
10438
10733
  * @internal
10439
10734
  * shared between vdom and vapor
@@ -10458,11 +10753,13 @@ function patchStyle(el, prev, next) {
10458
10753
  const isCssString = isString(next);
10459
10754
  let hasControlledDisplay = false;
10460
10755
  if (next && !isCssString) {
10461
- if (prev) if (!isString(prev)) {
10462
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
10463
- } else for (const prevStyle of prev.split(";")) {
10464
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10465
- if (next[key] == null) setStyle(style, key, "");
10756
+ if (prev) {
10757
+ if (!isString(prev)) {
10758
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
10759
+ } else for (const prevStyle of prev.split(";")) {
10760
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10761
+ if (next[key] == null) setStyle(style, key, "");
10762
+ }
10466
10763
  }
10467
10764
  for (const key in next) {
10468
10765
  if (key === "display") hasControlledDisplay = true;
@@ -10478,7 +10775,11 @@ function patchStyle(el, prev, next) {
10478
10775
  style.cssText = next;
10479
10776
  hasControlledDisplay = displayRE.test(next);
10480
10777
  }
10481
- } else if (prev) el.removeAttribute("style");
10778
+ } else if (prev) {
10779
+ const cssVarText = style[CSS_VAR_TEXT];
10780
+ if (cssVarText) style.cssText = cssVarText;
10781
+ else el.removeAttribute("style");
10782
+ }
10482
10783
  if (vShowOriginalDisplay in el) {
10483
10784
  el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
10484
10785
  if (el[vShowHidden]) style.display = "none";
@@ -10493,8 +10794,10 @@ function setStyle(style, name, rawVal) {
10493
10794
  if (!!(process.env.NODE_ENV !== "production")) {
10494
10795
  if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
10495
10796
  }
10496
- if (name.startsWith("--")) style.setProperty(name, val);
10497
- else {
10797
+ if (name.startsWith("--")) {
10798
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
10799
+ else style.setProperty(name, val);
10800
+ } else {
10498
10801
  const prefixed = autoPrefix(style, name);
10499
10802
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
10500
10803
  else style[prefixed] = val;
@@ -10531,15 +10834,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
10531
10834
  //#region packages/runtime-dom/src/modules/attrs.ts
10532
10835
  const xlinkNS = "http://www.w3.org/1999/xlink";
10533
10836
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
10534
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10535
- else el.setAttributeNS(xlinkNS, key, value);
10536
- else {
10837
+ if (isSVG && key.startsWith("xlink:")) {
10838
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10839
+ else el.setAttributeNS(xlinkNS, key, value);
10840
+ } else {
10537
10841
  if (compatCoerceAttr(el, key, value, instance)) return;
10538
10842
  if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
10539
10843
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
10540
10844
  }
10541
10845
  }
10542
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck");
10846
+ const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
10543
10847
  function compatCoerceAttr(el, key, value, instance = null) {
10544
10848
  if (isEnumeratedAttr(key)) {
10545
10849
  const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
@@ -10631,7 +10935,7 @@ function parseEventName(name) {
10631
10935
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
10632
10936
  }
10633
10937
  let cachedNow = 0;
10634
- const p = /* @__PURE__ */ Promise.resolve();
10938
+ const p = /*@__PURE__*/ Promise.resolve();
10635
10939
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
10636
10940
  function createInvoker(initialValue, instance) {
10637
10941
  const invoker = (e) => {
@@ -10699,7 +11003,7 @@ function shouldSetAsPropForVueCE(el, key) {
10699
11003
  //#endregion
10700
11004
  //#region packages/runtime-dom/src/apiCustomElement.ts
10701
11005
  const REMOVAL = {};
10702
- /* @__NO_SIDE_EFFECTS__ */
11006
+ /*@__NO_SIDE_EFFECTS__*/
10703
11007
  function defineCustomElement(options, extraOptions, _createApp) {
10704
11008
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
10705
11009
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -10748,12 +11052,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
10748
11052
  this._parent = parent;
10749
11053
  break;
10750
11054
  }
10751
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
10752
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
10753
- this._pendingResolve = void 0;
10754
- this._resolveDef();
10755
- });
10756
- else this._resolveDef();
11055
+ if (!this._instance) {
11056
+ if (this._resolved) this._mountComponent(this._def);
11057
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
11058
+ this._pendingResolve = void 0;
11059
+ if (this.isConnected) return this._resolveDef();
11060
+ });
11061
+ else this._resolveDef();
11062
+ }
10757
11063
  }
10758
11064
  disconnectedCallback() {
10759
11065
  this._connected = false;
@@ -10787,7 +11093,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10787
11093
  * resolve inner component definition (handle possible async component)
10788
11094
  */
10789
11095
  _resolveDef() {
10790
- if (this._pendingResolve) return;
11096
+ if (this._pendingResolve) return this._pendingResolve;
10791
11097
  for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
10792
11098
  this._ob = new MutationObserver(this._processMutations.bind(this));
10793
11099
  this._ob.observe(this, { attributes: true });
@@ -10817,6 +11123,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10817
11123
  this._def = def;
10818
11124
  resolve(def);
10819
11125
  });
11126
+ return this._pendingResolve;
10820
11127
  } else resolve(this._def);
10821
11128
  }
10822
11129
  _mountComponent(def) {
@@ -10855,14 +11162,17 @@ var VueElementBase = class VueElementBase extends BaseClass {
10855
11162
  const { props } = def;
10856
11163
  const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
10857
11164
  for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
10858
- for (const key of declaredPropKeys.map(camelize)) Object.defineProperty(this, key, {
10859
- get() {
10860
- return this._getProp(key);
10861
- },
10862
- set(val) {
10863
- this._setProp(key, val, true, !this._patching);
10864
- }
10865
- });
11165
+ for (const key of declaredPropKeys.map(camelize)) {
11166
+ if (!!(process.env.NODE_ENV !== "production") && key in Object.getPrototypeOf(this)) warn(`Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`);
11167
+ Object.defineProperty(this, key, {
11168
+ get() {
11169
+ return this._getProp(key);
11170
+ },
11171
+ set(val) {
11172
+ this._setProp(key, val, true, !this._patching);
11173
+ }
11174
+ });
11175
+ }
10866
11176
  }
10867
11177
  _setAttr(key) {
10868
11178
  if (key.startsWith("data-v-")) return;
@@ -10923,14 +11233,16 @@ var VueElementBase = class VueElementBase extends BaseClass {
10923
11233
  if (!parentComp) this._styleAnchors.set(this._def, s);
10924
11234
  if (owner) this._styleAnchors.set(owner, s);
10925
11235
  }
10926
- if (!!(process.env.NODE_ENV !== "production")) if (owner) {
10927
- if (owner.__hmrId) {
10928
- if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();
10929
- let entry = this._childStyles.get(owner.__hmrId);
10930
- if (!entry) this._childStyles.set(owner.__hmrId, entry = []);
10931
- entry.push(s);
10932
- }
10933
- } else (this._styles || (this._styles = [])).push(s);
11236
+ if (!!(process.env.NODE_ENV !== "production")) {
11237
+ if (owner) {
11238
+ if (owner.__hmrId) {
11239
+ if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();
11240
+ let entry = this._childStyles.get(owner.__hmrId);
11241
+ if (!entry) this._childStyles.set(owner.__hmrId, entry = []);
11242
+ entry.push(s);
11243
+ }
11244
+ } else (this._styles || (this._styles = [])).push(s);
11245
+ }
10934
11246
  }
10935
11247
  }
10936
11248
  _getStyleAnchor(comp) {
@@ -10965,13 +11277,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
10965
11277
  _renderSlots() {
10966
11278
  const outlets = this._getSlots();
10967
11279
  const scopeId = this._instance.type.__scopeId;
10968
- const slotReplacements = /* @__PURE__ */ new Map();
10969
11280
  for (let i = 0; i < outlets.length; i++) {
10970
11281
  const o = outlets[i];
10971
11282
  const slotName = o.getAttribute("name") || "default";
10972
11283
  const content = this._slots[slotName];
10973
11284
  const parent = o.parentNode;
10974
- const replacementNodes = [];
10975
11285
  if (content) for (const n of content) {
10976
11286
  if (scopeId && n.nodeType === 1) {
10977
11287
  const id = scopeId + "-s";
@@ -10981,20 +11291,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
10981
11291
  while (child = walker.nextNode()) child.setAttribute(id, "");
10982
11292
  }
10983
11293
  parent.insertBefore(n, o);
10984
- replacementNodes.push(n);
10985
- }
10986
- else while (o.firstChild) {
10987
- const child = o.firstChild;
10988
- parent.insertBefore(child, o);
10989
- replacementNodes.push(child);
10990
11294
  }
11295
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
10991
11296
  parent.removeChild(o);
10992
- slotReplacements.set(o, {
10993
- nodes: replacementNodes,
10994
- usedFallback: !content
10995
- });
10996
11297
  }
10997
- this._updateSlotNodes(slotReplacements);
10998
11298
  }
10999
11299
  /**
11000
11300
  * @internal
@@ -11033,7 +11333,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
11033
11333
  * @internal
11034
11334
  */
11035
11335
  _hasShadowRoot() {
11036
- return this._def.shadowRoot !== false;
11336
+ return this._root !== this;
11037
11337
  }
11038
11338
  /**
11039
11339
  * @internal
@@ -11080,10 +11380,6 @@ var VueElement = class extends VueElementBase {
11080
11380
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
11081
11381
  this._app = this._instance = null;
11082
11382
  }
11083
- /**
11084
- * Only called when shadowRoot is false
11085
- */
11086
- _updateSlotNodes(replacements) {}
11087
11383
  _createVNode() {
11088
11384
  const baseProps = {};
11089
11385
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -11099,8 +11395,10 @@ function useHost(caller) {
11099
11395
  const { hasInstance, value } = useInstanceOption("ce", true);
11100
11396
  const el = value;
11101
11397
  if (el) return el;
11102
- else if (!!(process.env.NODE_ENV !== "production")) if (!hasInstance) warn(`${caller || "useHost"} called without an active component instance.`);
11103
- else warn(`${caller || "useHost"} can only be used in components defined via defineCustomElement.`);
11398
+ else if (!!(process.env.NODE_ENV !== "production")) {
11399
+ if (!hasInstance) warn(`${caller || "useHost"} called without an active component instance.`);
11400
+ else warn(`${caller || "useHost"} can only be used in components defined via defineCustomElement.`);
11401
+ }
11104
11402
  return null;
11105
11403
  }
11106
11404
  /**
@@ -11150,7 +11448,7 @@ const decorate = (t) => {
11150
11448
  };
11151
11449
  const TransitionGroup = /* @__PURE__ */ decorate({
11152
11450
  name: "TransitionGroup",
11153
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
11451
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
11154
11452
  tag: String,
11155
11453
  moveClass: String
11156
11454
  }),
@@ -11282,13 +11580,22 @@ function onCompositionEnd(e) {
11282
11580
  }
11283
11581
  }
11284
11582
  const assignKey = Symbol("_assign");
11583
+ const initialValueKey = Symbol("_initialValue");
11285
11584
  const vModelText = {
11286
11585
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
11586
+ if (el.parentNode) {
11587
+ if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
11588
+ else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
11589
+ }
11287
11590
  el[assignKey] = getModelAssigner(vnode);
11288
11591
  vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
11289
11592
  },
11290
- mounted(el, { value }) {
11291
- el.value = value == null ? "" : value;
11593
+ mounted(el, { value, modifiers: { trim, number } }) {
11594
+ const newValue = value == null ? "" : value;
11595
+ const initialValue = el[initialValueKey];
11596
+ delete el[initialValueKey];
11597
+ if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
11598
+ else el.value = newValue;
11292
11599
  },
11293
11600
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
11294
11601
  el[assignKey] = getModelAssigner(vnode);
@@ -11423,19 +11730,39 @@ const vModelSelectInit = (el, value, number, set) => {
11423
11730
  el._modelValue = value;
11424
11731
  addEventListener(el, "change", () => {
11425
11732
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
11426
- (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
11427
- el._assigning = true;
11428
- nextTick(() => {
11429
- el._assigning = false;
11430
- });
11733
+ const multiple = el.multiple;
11734
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
11735
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
11736
+ try {
11737
+ (set || el[assignKey])(assignedValue);
11738
+ } finally {
11739
+ nextTick(() => {
11740
+ if (el._pendingValue === pending) el._pendingValue = void 0;
11741
+ });
11742
+ }
11431
11743
  });
11432
11744
  };
11745
+ function isSameSelectValue(value, assignedValue, multiple) {
11746
+ if (!multiple) return looseEqual(value, assignedValue);
11747
+ if (isArray(value)) return looseEqual(value, assignedValue);
11748
+ if (isSet(value)) {
11749
+ if (value.size !== assignedValue.length) return false;
11750
+ for (const item of assignedValue) if (!value.has(item)) return false;
11751
+ return true;
11752
+ }
11753
+ return false;
11754
+ }
11433
11755
  /**
11434
11756
  * @internal
11435
11757
  */
11436
11758
  const vModelSetSelected = (el, value) => {
11437
11759
  el._modelValue = value;
11438
- if (el._assigning) return;
11760
+ const pending = el._pendingValue;
11761
+ el._pendingValue = void 0;
11762
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
11763
+ setSelected(el, value);
11764
+ };
11765
+ function setSelected(el, value) {
11439
11766
  const isMultiple = el.multiple;
11440
11767
  const isArrayValue = isArray(value);
11441
11768
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -11445,18 +11772,19 @@ const vModelSetSelected = (el, value) => {
11445
11772
  for (let i = 0, l = el.options.length; i < l; i++) {
11446
11773
  const option = el.options[i];
11447
11774
  const optionValue = getValue(option);
11448
- if (isMultiple) if (isArrayValue) {
11449
- const optionType = typeof optionValue;
11450
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
11451
- else option.selected = looseIndexOf(value, optionValue) > -1;
11452
- } else option.selected = value.has(optionValue);
11453
- else if (looseEqual(getValue(option), value)) {
11775
+ if (isMultiple) {
11776
+ if (isArrayValue) {
11777
+ const optionType = typeof optionValue;
11778
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
11779
+ else option.selected = looseIndexOf(value, optionValue) > -1;
11780
+ } else option.selected = value.has(optionValue);
11781
+ } else if (looseEqual(getValue(option), value)) {
11454
11782
  if (el.selectedIndex !== i) el.selectedIndex = i;
11455
11783
  return;
11456
11784
  }
11457
11785
  }
11458
11786
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
11459
- };
11787
+ }
11460
11788
  /**
11461
11789
  * @internal retrieve raw value set via :value bindings
11462
11790
  */
@@ -11626,7 +11954,6 @@ var src_exports = /* @__PURE__ */ __exportAll({
11626
11954
  baseEmit: () => baseEmit,
11627
11955
  baseNormalizePropsOptions: () => baseNormalizePropsOptions,
11628
11956
  baseResolveTransitionHooks: () => baseResolveTransitionHooks,
11629
- baseUseCssVars: () => baseUseCssVars,
11630
11957
  callPendingCbs: () => callPendingCbs,
11631
11958
  callWithAsyncErrorHandling: () => callWithAsyncErrorHandling,
11632
11959
  callWithErrorHandling: () => callWithErrorHandling,
@@ -11656,6 +11983,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11656
11983
  currentInstance: () => currentInstance,
11657
11984
  customRef: () => customRef,
11658
11985
  deactivate: () => deactivate,
11986
+ defaultPropGetter: () => defaultPropGetter,
11659
11987
  defineAsyncComponent: () => defineAsyncComponent,
11660
11988
  defineComponent: () => defineComponent,
11661
11989
  defineCustomElement: () => defineCustomElement,
@@ -11674,12 +12002,13 @@ var src_exports = /* @__PURE__ */ __exportAll({
11674
12002
  ensureHydrationRenderer: () => ensureHydrationRenderer,
11675
12003
  ensureRenderer: () => ensureRenderer,
11676
12004
  ensureValidVNode: () => ensureValidVNode,
11677
- ensureVaporSlotFallback: () => ensureVaporSlotFallback,
11678
12005
  expose: () => expose,
12006
+ filterModelListeners: () => filterModelListeners,
11679
12007
  flushOnAppMount: () => flushOnAppMount,
11680
12008
  forceReflow: () => forceReflow,
11681
12009
  getAttributeMismatch: () => getAttributeMismatch,
11682
12010
  getComponentName: () => getComponentName,
12011
+ getContainerType: () => getContainerType,
11683
12012
  getCurrentInstance: () => getCurrentInstance,
11684
12013
  getCurrentScope: () => getCurrentScope,
11685
12014
  getCurrentWatcher: () => getCurrentWatcher,
@@ -11703,9 +12032,13 @@ var src_exports = /* @__PURE__ */ __exportAll({
11703
12032
  inject: () => inject,
11704
12033
  invalidateMount: () => invalidateMount,
11705
12034
  invokeDirectiveHook: () => invokeDirectiveHook,
12035
+ invokeSlotFallback: () => invokeSlotFallback,
12036
+ invokeVNodeHook: () => invokeVNodeHook,
11706
12037
  isAsyncWrapper: () => isAsyncWrapper,
11707
12038
  isEmitListener: () => isEmitListener,
12039
+ isFunctionalFallthroughKey: () => isFunctionalFallthroughKey,
11708
12040
  isHydrating: () => isHydrating,
12041
+ isHydratingEnabled: () => isHydratingEnabled,
11709
12042
  isKeepAlive: () => isKeepAlive,
11710
12043
  isMapEqual: () => isMapEqual,
11711
12044
  isMemoSame: () => isMemoSame,
@@ -11721,6 +12054,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11721
12054
  isTeleportDisabled: () => isTeleportDisabled,
11722
12055
  isTemplateNode: () => isTemplateNode,
11723
12056
  isTemplateRefKey: () => isTemplateRefKey,
12057
+ isUnchangedResourceProp: () => isUnchangedResourceProp,
11724
12058
  isVNode: () => isVNode,
11725
12059
  isValidHtmlOrSvgAttribute: () => isValidHtmlOrSvgAttribute,
11726
12060
  knownTemplateRefs: () => knownTemplateRefs,
@@ -11757,6 +12091,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11757
12091
  onWatcherCleanup: () => onWatcherCleanup,
11758
12092
  openBlock: () => openBlock,
11759
12093
  parseEventName: () => parseEventName,
12094
+ patchClass: () => patchClass,
11760
12095
  patchProp: () => patchProp,
11761
12096
  patchStyle: () => patchStyle,
11762
12097
  performAsyncHydrate: () => performAsyncHydrate,
@@ -11764,12 +12099,16 @@ var src_exports = /* @__PURE__ */ __exportAll({
11764
12099
  performTransitionLeave: () => performTransitionLeave,
11765
12100
  popScopeId: () => popScopeId,
11766
12101
  popWarningContext: () => popWarningContext,
12102
+ prepareTransitionLeave: () => prepareTransitionLeave,
12103
+ prepareTransitionSwitch: () => prepareTransitionSwitch,
11767
12104
  provide: () => provide,
11768
12105
  proxyRefs: () => proxyRefs,
11769
12106
  pushScopeId: () => pushScopeId,
11770
12107
  pushWarningContext: () => pushWarningContext,
11771
12108
  queueJob: () => queueJob,
11772
12109
  queuePostFlushCb: () => queuePostFlushCb,
12110
+ queuePostRenderEffect: () => queuePostRenderEffect,
12111
+ rawVaporSlotKey: () => rawVaporSlotKey,
11773
12112
  reactive: () => reactive,
11774
12113
  readonly: () => readonly,
11775
12114
  ref: () => ref,
@@ -11780,13 +12119,16 @@ var src_exports = /* @__PURE__ */ __exportAll({
11780
12119
  renderSlot: () => renderSlot,
11781
12120
  resetShapeFlag: () => resetShapeFlag,
11782
12121
  resolveComponent: () => resolveComponent,
12122
+ resolveCssVars: () => resolveCssVars,
11783
12123
  resolveDirective: () => resolveDirective,
11784
12124
  resolveDynamicComponent: () => resolveDynamicComponent,
11785
12125
  resolveFilter: () => resolveFilter,
11786
12126
  resolvePropValue: () => resolvePropValue,
11787
12127
  resolveTeleportTarget: () => resolveTarget,
12128
+ resolveTransitionChild: () => resolveTransitionChild,
11788
12129
  resolveTransitionHooks: () => resolveTransitionHooks,
11789
12130
  resolveTransitionProps: () => resolveTransitionProps,
12131
+ restoreCurrentInstance: () => restoreCurrentInstance,
11790
12132
  setBlockTracking: () => setBlockTracking,
11791
12133
  setCurrentInstance: () => setCurrentInstance,
11792
12134
  setCurrentRenderingInstance: () => setCurrentRenderingInstance,
@@ -11869,7 +12211,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11869
12211
  withScopeId: () => withScopeId,
11870
12212
  xlinkNS: () => xlinkNS
11871
12213
  });
11872
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
12214
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
11873
12215
  let renderer;
11874
12216
  let enabledHydration = false;
11875
12217
  function ensureRenderer() {
@@ -12430,13 +12772,14 @@ var Tokenizer = class {
12430
12772
  }
12431
12773
  }
12432
12774
  stateInterpolationOpen(c) {
12433
- if (c === this.delimiterOpen[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterOpen.length - 1) {
12434
- const start = this.index + 1 - this.delimiterOpen.length;
12435
- if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
12436
- this.state = 3;
12437
- this.sectionStart = start;
12438
- } else this.delimiterIndex++;
12439
- else if (this.inRCDATA) {
12775
+ if (c === this.delimiterOpen[this.delimiterIndex]) {
12776
+ if (this.delimiterIndex === this.delimiterOpen.length - 1) {
12777
+ const start = this.index + 1 - this.delimiterOpen.length;
12778
+ if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
12779
+ this.state = 3;
12780
+ this.sectionStart = start;
12781
+ } else this.delimiterIndex++;
12782
+ } else if (this.inRCDATA) {
12440
12783
  this.state = 32;
12441
12784
  this.stateInRCDATA(c);
12442
12785
  } else {
@@ -12452,13 +12795,14 @@ var Tokenizer = class {
12452
12795
  }
12453
12796
  }
12454
12797
  stateInterpolationClose(c) {
12455
- if (c === this.delimiterClose[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterClose.length - 1) {
12456
- this.cbs.oninterpolation(this.sectionStart, this.index + 1);
12457
- if (this.inRCDATA) this.state = 32;
12458
- else this.state = 1;
12459
- this.sectionStart = this.index + 1;
12460
- } else this.delimiterIndex++;
12461
- else {
12798
+ if (c === this.delimiterClose[this.delimiterIndex]) {
12799
+ if (this.delimiterIndex === this.delimiterClose.length - 1) {
12800
+ this.cbs.oninterpolation(this.sectionStart, this.index + 1);
12801
+ if (this.inRCDATA) this.state = 32;
12802
+ else this.state = 1;
12803
+ this.sectionStart = this.index + 1;
12804
+ } else this.delimiterIndex++;
12805
+ } else {
12462
12806
  this.state = 3;
12463
12807
  this.stateInterpolation(c);
12464
12808
  }
@@ -12573,9 +12917,10 @@ var Tokenizer = class {
12573
12917
  this.sectionStart = this.index;
12574
12918
  if (this.mode === 0) this.state = 6;
12575
12919
  else if (this.inSFCRoot) this.state = 34;
12576
- else if (!this.inXML) if (c === 116) this.state = 30;
12577
- else this.state = c === 115 ? 29 : 6;
12578
- else this.state = 6;
12920
+ else if (!this.inXML) {
12921
+ if (c === 116) this.state = 30;
12922
+ else this.state = c === 115 ? 29 : 6;
12923
+ } else this.state = 6;
12579
12924
  } else if (c === 47) this.state = 8;
12580
12925
  else {
12581
12926
  this.state = 1;
@@ -12928,9 +13273,7 @@ var Tokenizer = class {
12928
13273
  case 24:
12929
13274
  this.stateInProcessingInstruction(c);
12930
13275
  break;
12931
- case 33:
12932
- this.stateInEntity();
12933
- break;
13276
+ case 33: this.stateInEntity();
12934
13277
  }
12935
13278
  this.index++;
12936
13279
  }
@@ -12959,9 +13302,10 @@ var Tokenizer = class {
12959
13302
  handleTrailingData() {
12960
13303
  const endIndex = this.buffer.length;
12961
13304
  if (this.sectionStart >= endIndex) return;
12962
- if (this.state === 28) if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
12963
- else this.cbs.oncomment(this.sectionStart, endIndex);
12964
- else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
13305
+ if (this.state === 28) {
13306
+ if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
13307
+ else this.cbs.oncomment(this.sectionStart, endIndex);
13308
+ } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
12965
13309
  }
12966
13310
  emitCodePoint(cp, consumed) {}
12967
13311
  };
@@ -13163,12 +13507,10 @@ const isMemberExpressionBrowser = (exp) => {
13163
13507
  if (!--currentOpenParensCount) state = stateStack.pop();
13164
13508
  }
13165
13509
  break;
13166
- case 3:
13167
- if (char === currentStringType) {
13168
- state = stateStack.pop();
13169
- currentStringType = null;
13170
- }
13171
- break;
13510
+ case 3: if (char === currentStringType) {
13511
+ state = stateStack.pop();
13512
+ currentStringType = null;
13513
+ }
13172
13514
  }
13173
13515
  }
13174
13516
  return !currentOpenBracketCount && !currentOpenParensCount;
@@ -13218,7 +13560,7 @@ function isTemplateNode$1(node) {
13218
13560
  function isSlotOutlet(node) {
13219
13561
  return node.type === 1 && node.tagType === 2;
13220
13562
  }
13221
- const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
13563
+ const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
13222
13564
  function getUnnormalizedProps(props, callPath = []) {
13223
13565
  if (props && !isString(props) && props.type === 14) {
13224
13566
  const callee = props.callee;
@@ -13261,9 +13603,10 @@ function injectProp(node, prop, context) {
13261
13603
  propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
13262
13604
  if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
13263
13605
  }
13264
- if (node.type === 13) if (parentCall) parentCall.arguments[0] = propsWithInjection;
13265
- else node.props = propsWithInjection;
13266
- else if (parentCall) parentCall.arguments[0] = propsWithInjection;
13606
+ if (node.type === 13) {
13607
+ if (parentCall) parentCall.arguments[0] = propsWithInjection;
13608
+ else node.props = propsWithInjection;
13609
+ } else if (parentCall) parentCall.arguments[0] = propsWithInjection;
13267
13610
  else node.arguments[2] = propsWithInjection;
13268
13611
  }
13269
13612
  function injectSlotKey(node, prop) {
@@ -13538,10 +13881,7 @@ const tokenizer = new Tokenizer(stack, {
13538
13881
  case 18:
13539
13882
  case 19:
13540
13883
  case 20:
13541
- case 21:
13542
- emitError(9, end);
13543
- break;
13544
- default: break;
13884
+ case 21: emitError(9, end);
13545
13885
  }
13546
13886
  for (let index = 0; index < stack.length; index++) {
13547
13887
  onCloseTag(stack[index], end - 1);
@@ -13691,7 +14031,7 @@ function backTrack(index, c) {
13691
14031
  while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
13692
14032
  return i;
13693
14033
  }
13694
- const specialTemplateDir = new Set([
14034
+ const specialTemplateDir = /* @__PURE__ */ new Set([
13695
14035
  "if",
13696
14036
  "else",
13697
14037
  "else-if",
@@ -13727,16 +14067,18 @@ function condenseWhitespace(nodes) {
13727
14067
  let removedWhitespace = false;
13728
14068
  for (let i = 0; i < nodes.length; i++) {
13729
14069
  const node = nodes[i];
13730
- if (node.type === 2) if (!inPre) {
13731
- if (isAllWhitespace(node.content)) {
13732
- const prev = nodes[i - 1] && nodes[i - 1].type;
13733
- const next = nodes[i + 1] && nodes[i + 1].type;
13734
- if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
13735
- removedWhitespace = true;
13736
- nodes[i] = null;
13737
- } else node.content = " ";
13738
- } else if (shouldCondense) node.content = condense(node.content);
13739
- } else node.content = node.content.replace(windowsNewlineRE, "\n");
14070
+ if (node.type === 2) {
14071
+ if (!inPre) {
14072
+ if (isAllWhitespace(node.content)) {
14073
+ const prev = nodes[i - 1] && nodes[i - 1].type;
14074
+ const next = nodes[i + 1] && nodes[i + 1].type;
14075
+ if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
14076
+ removedWhitespace = true;
14077
+ nodes[i] = null;
14078
+ } else node.content = " ";
14079
+ } else if (shouldCondense) node.content = condense(node.content);
14080
+ } else node.content = node.content.replace(windowsNewlineRE, "\n");
14081
+ }
13740
14082
  }
13741
14083
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
13742
14084
  }
@@ -14001,7 +14343,7 @@ function getConstantType(node, context) {
14001
14343
  return 0;
14002
14344
  }
14003
14345
  }
14004
- const allowHoistedHelperSet = new Set([
14346
+ const allowHoistedHelperSet = /* @__PURE__ */ new Set([
14005
14347
  NORMALIZE_CLASS,
14006
14348
  NORMALIZE_STYLE,
14007
14349
  NORMALIZE_PROPS,
@@ -14045,7 +14387,7 @@ function getSelfName(filename) {
14045
14387
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
14046
14388
  return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
14047
14389
  }
14048
- function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, eventDelegation = true, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
14390
+ function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
14049
14391
  const context = {
14050
14392
  filename,
14051
14393
  selfName: getSelfName(filename),
@@ -14067,7 +14409,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
14067
14409
  bindingMetadata,
14068
14410
  inline,
14069
14411
  isTS,
14070
- eventDelegation,
14071
14412
  onError,
14072
14413
  onWarn,
14073
14414
  compatConfig,
@@ -14163,7 +14504,7 @@ function transform(root, options) {
14163
14504
  traverseNode(root, context);
14164
14505
  if (options.hoistStatic) cacheStatic(root, context);
14165
14506
  if (!options.ssr) createRootCodegen(root, context);
14166
- root.helpers = new Set([...context.helpers.keys()]);
14507
+ root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
14167
14508
  root.components = [...context.components];
14168
14509
  root.directives = [...context.directives];
14169
14510
  root.imports = context.imports;
@@ -14210,8 +14551,10 @@ function traverseNode(node, context) {
14210
14551
  const exitFns = [];
14211
14552
  for (let i = 0; i < nodeTransforms.length; i++) {
14212
14553
  const onExit = nodeTransforms[i](node, context);
14213
- if (onExit) if (isArray(onExit)) exitFns.push(...onExit);
14214
- else exitFns.push(onExit);
14554
+ if (onExit) {
14555
+ if (isArray(onExit)) exitFns.push(...onExit);
14556
+ else exitFns.push(onExit);
14557
+ }
14215
14558
  if (!context.currentNode) return;
14216
14559
  else node = context.currentNode;
14217
14560
  }
@@ -14228,9 +14571,7 @@ function traverseNode(node, context) {
14228
14571
  case 10:
14229
14572
  case 11:
14230
14573
  case 1:
14231
- case 0:
14232
- traverseChildren(node, context);
14233
- break;
14574
+ case 0: traverseChildren(node, context);
14234
14575
  }
14235
14576
  context.currentNode = node;
14236
14577
  let i = exitFns.length;
@@ -14426,10 +14767,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
14426
14767
  if (isString(node)) push(node, -3);
14427
14768
  else if (isArray(node)) genNodeListAsArray(node, context);
14428
14769
  else genNode(node, context);
14429
- if (i < nodes.length - 1) if (multilines) {
14430
- comma && push(",");
14431
- newline();
14432
- } else comma && push(", ");
14770
+ if (i < nodes.length - 1) {
14771
+ if (multilines) {
14772
+ comma && push(",");
14773
+ newline();
14774
+ } else comma && push(", ");
14775
+ }
14433
14776
  }
14434
14777
  }
14435
14778
  function genNode(node, context) {
@@ -14542,9 +14885,12 @@ function genVNodeCall(node, context) {
14542
14885
  const { push, helper, pure } = context;
14543
14886
  const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent } = node;
14544
14887
  let patchFlagString;
14545
- if (patchFlag) if (!!(process.env.NODE_ENV !== "production")) if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
14546
- else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
14547
- else patchFlagString = String(patchFlag);
14888
+ if (patchFlag) {
14889
+ if (!!(process.env.NODE_ENV !== "production")) {
14890
+ if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
14891
+ else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
14892
+ } else patchFlagString = String(patchFlag);
14893
+ }
14548
14894
  if (directives) push(helper(WITH_DIRECTIVES) + `(`);
14549
14895
  if (isBlock) push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
14550
14896
  if (pure) push(PURE_ANNOTATION);
@@ -14813,16 +15159,17 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
14813
15159
  const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
14814
15160
  const { children } = branch;
14815
15161
  const firstChild = children[0];
14816
- if (children.length !== 1 || firstChild.type !== 1) if (children.length === 1 && firstChild.type === 11) {
14817
- const vnodeCall = firstChild.codegenNode;
14818
- injectProp(vnodeCall, keyProperty, context);
14819
- return vnodeCall;
15162
+ if (children.length !== 1 || firstChild.type !== 1) {
15163
+ if (children.length === 1 && firstChild.type === 11) {
15164
+ const vnodeCall = firstChild.codegenNode;
15165
+ injectProp(vnodeCall, keyProperty, context);
15166
+ return vnodeCall;
15167
+ } else {
15168
+ let patchFlag = 64;
15169
+ if (!!(process.env.NODE_ENV !== "production") && !branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
15170
+ return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
15171
+ }
14820
15172
  } else {
14821
- let patchFlag = 64;
14822
- if (!!(process.env.NODE_ENV !== "production") && !branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
14823
- return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
14824
- }
14825
- else {
14826
15173
  const ret = firstChild.codegenNode;
14827
15174
  const vnodeCall = getMemoedVNodeCall(ret);
14828
15175
  if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
@@ -14843,9 +15190,10 @@ function isSameKey(a, b) {
14843
15190
  return true;
14844
15191
  }
14845
15192
  function getParentCondition(node) {
14846
- while (true) if (node.type === 19) if (node.alternate.type === 19) node = node.alternate;
14847
- else return node;
14848
- else if (node.type === 20) node = node.value;
15193
+ while (true) if (node.type === 19) {
15194
+ if (node.alternate.type === 19) node = node.alternate;
15195
+ else return node;
15196
+ } else if (node.type === 20) node = node.value;
14849
15197
  }
14850
15198
  //#endregion
14851
15199
  //#region packages/compiler-core/src/transforms/vFor.ts
@@ -14883,15 +15231,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
14883
15231
  else {
14884
15232
  childBlock = children[0].codegenNode;
14885
15233
  if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
14886
- if (childBlock.isBlock !== !isStableFragment) if (childBlock.isBlock) {
14887
- removeHelper(OPEN_BLOCK);
14888
- removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
14889
- } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
14890
- childBlock.isBlock = !isStableFragment;
15234
+ const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
15235
+ if (childBlock.isBlock !== shouldUseBlock) {
15236
+ if (childBlock.isBlock) {
15237
+ removeHelper(OPEN_BLOCK);
15238
+ removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
15239
+ } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15240
+ }
15241
+ childBlock.isBlock = shouldUseBlock;
14891
15242
  if (childBlock.isBlock) {
14892
15243
  helper(OPEN_BLOCK);
14893
15244
  helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
14894
- } else helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15245
+ } else {
15246
+ helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15247
+ if (childBlock.needsPatch) {
15248
+ var _childBlock$patchFlag;
15249
+ childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
15250
+ }
15251
+ }
14895
15252
  }
14896
15253
  if (memo) {
14897
15254
  const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
@@ -15065,8 +15422,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
15065
15422
  return createObjectProperty(`default`, fn);
15066
15423
  };
15067
15424
  if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
15068
- else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
15069
- else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
15425
+ else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
15426
+ if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
15427
+ else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
15428
+ }
15070
15429
  }
15071
15430
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
15072
15431
  let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + (!!(process.env.NODE_ENV !== "production") ? ` /* ${slotFlagsText[slotFlag]} */` : ``), false))), loc);
@@ -15092,10 +15451,7 @@ function hasForwardedSlots(children) {
15092
15451
  if (hasForwardedSlots(child.branches)) return true;
15093
15452
  break;
15094
15453
  case 10:
15095
- case 11:
15096
- if (hasForwardedSlots(child.children)) return true;
15097
- break;
15098
- default: break;
15454
+ case 11: if (hasForwardedSlots(child.children)) return true;
15099
15455
  }
15100
15456
  }
15101
15457
  return false;
@@ -15117,12 +15473,16 @@ const transformElement = (node, context) => {
15117
15473
  let vnodeDynamicProps;
15118
15474
  let dynamicPropNames;
15119
15475
  let vnodeDirectives;
15476
+ let needsPatch = false;
15477
+ let isBlockRequired = false;
15120
15478
  let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
15121
15479
  if (props.length > 0) {
15122
15480
  const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
15123
15481
  vnodeProps = propsBuildResult.props;
15124
15482
  patchFlag = propsBuildResult.patchFlag;
15125
15483
  dynamicPropNames = propsBuildResult.dynamicPropNames;
15484
+ needsPatch = propsBuildResult.needsPatch;
15485
+ isBlockRequired = propsBuildResult.isBlockRequired;
15126
15486
  const directives = propsBuildResult.directives;
15127
15487
  vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
15128
15488
  if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
@@ -15151,7 +15511,10 @@ const transformElement = (node, context) => {
15151
15511
  } else vnodeChildren = node.children;
15152
15512
  }
15153
15513
  if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
15154
- node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
15514
+ const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
15515
+ needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
15516
+ if (needsPatch) vnodeCall.needsPatch = true;
15517
+ if (isBlockRequired) vnodeCall.isBlockRequired = true;
15155
15518
  };
15156
15519
  };
15157
15520
  function resolveComponentType(node, context, ssr = false) {
@@ -15185,6 +15548,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15185
15548
  const runtimeDirectives = [];
15186
15549
  const hasChildren = children.length > 0;
15187
15550
  let shouldUseBlock = false;
15551
+ let isBlockRequired = false;
15188
15552
  let patchFlag = 0;
15189
15553
  let hasRef = false;
15190
15554
  let hasClassBinding = false;
@@ -15209,12 +15573,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15209
15573
  const isEventHandler = isOn(name);
15210
15574
  if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
15211
15575
  if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
15576
+ if (name === "ref") hasRef = true;
15212
15577
  if (isEventHandler && value.type === 14) value = value.arguments[0];
15213
15578
  if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
15214
- if (name === "ref") hasRef = true;
15215
- else if (name === "class") hasClassBinding = true;
15579
+ if (name === "class") hasClassBinding = true;
15216
15580
  else if (name === "style") hasStyleBinding = true;
15217
- else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
15581
+ else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
15218
15582
  if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
15219
15583
  } else hasDynamicKeys = true;
15220
15584
  };
@@ -15240,35 +15604,40 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15240
15604
  if (name === "once" || name === "memo") continue;
15241
15605
  if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
15242
15606
  if (isVOn && ssr) continue;
15243
- if (isVBind && isStaticArgOf(arg, "key") || isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")) shouldUseBlock = true;
15607
+ if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
15608
+ if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
15609
+ shouldUseBlock = true;
15610
+ isBlockRequired = true;
15611
+ }
15244
15612
  if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
15245
15613
  if (!arg && (isVBind || isVOn)) {
15246
15614
  hasDynamicKeys = true;
15247
- if (exp) if (isVBind) {
15248
- pushMergeArg();
15249
- if (!!(process.env.NODE_ENV !== "production")) {
15250
- if (mergeArgs.some((arg) => {
15251
- if (arg.type === 15) return arg.properties.some(({ key }) => {
15252
- if (key.type !== 4 || !key.isStatic) return true;
15253
- return key.content !== "class" && key.content !== "style" && !isOn(key.content);
15254
- });
15255
- else return true;
15256
- })) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
15257
- }
15258
- if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
15259
- mergeArgs.unshift(exp);
15260
- continue;
15261
- }
15262
- pushRefVForMarker();
15263
- pushMergeArg();
15264
- mergeArgs.push(exp);
15265
- } else pushMergeArg({
15266
- type: 14,
15267
- loc,
15268
- callee: context.helper(TO_HANDLERS),
15269
- arguments: isComponent ? [exp] : [exp, `true`]
15270
- });
15271
- else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
15615
+ if (exp) {
15616
+ if (isVBind) {
15617
+ pushMergeArg();
15618
+ if (!!(process.env.NODE_ENV !== "production")) {
15619
+ if (mergeArgs.some((arg) => {
15620
+ if (arg.type === 15) return arg.properties.some(({ key }) => {
15621
+ if (key.type !== 4 || !key.isStatic) return true;
15622
+ return key.content !== "class" && key.content !== "style" && !isOn(key.content);
15623
+ });
15624
+ else return true;
15625
+ })) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
15626
+ }
15627
+ if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
15628
+ mergeArgs.unshift(exp);
15629
+ continue;
15630
+ }
15631
+ pushRefVForMarker();
15632
+ pushMergeArg();
15633
+ mergeArgs.push(exp);
15634
+ } else pushMergeArg({
15635
+ type: 14,
15636
+ loc,
15637
+ callee: context.helper(TO_HANDLERS),
15638
+ arguments: isComponent ? [exp] : [exp, `true`]
15639
+ });
15640
+ } else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
15272
15641
  continue;
15273
15642
  }
15274
15643
  if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
@@ -15284,7 +15653,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15284
15653
  }
15285
15654
  } else if (!isBuiltInDirective(name)) {
15286
15655
  runtimeDirectives.push(prop);
15287
- if (hasChildren) shouldUseBlock = true;
15656
+ if (hasChildren) {
15657
+ shouldUseBlock = true;
15658
+ isBlockRequired = true;
15659
+ }
15288
15660
  }
15289
15661
  }
15290
15662
  }
@@ -15301,7 +15673,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15301
15673
  if (dynamicPropNames.length) patchFlag |= 8;
15302
15674
  if (hasHydrationEventBinding) patchFlag |= 32;
15303
15675
  }
15304
- if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) patchFlag |= 512;
15676
+ const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
15677
+ if (!shouldUseBlock && needsPatch) patchFlag |= 512;
15305
15678
  if (!context.inSSR && propsExpression) switch (propsExpression.type) {
15306
15679
  case 15:
15307
15680
  let classKeyIndex = -1;
@@ -15322,16 +15695,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15322
15695
  } else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
15323
15696
  break;
15324
15697
  case 14: break;
15325
- default:
15326
- propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
15327
- break;
15698
+ default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
15328
15699
  }
15329
15700
  return {
15330
15701
  props: propsExpression,
15331
15702
  directives: runtimeDirectives,
15332
15703
  patchFlag,
15333
15704
  dynamicPropNames,
15334
- shouldUseBlock
15705
+ shouldUseBlock,
15706
+ needsPatch,
15707
+ isBlockRequired
15335
15708
  };
15336
15709
  }
15337
15710
  function dedupeProperties(properties) {
@@ -15428,10 +15801,12 @@ function processSlotOutlet(node, context) {
15428
15801
  for (let i = 0; i < node.props.length; i++) {
15429
15802
  const p = node.props[i];
15430
15803
  if (p.type === 6) {
15431
- if (p.value) if (p.name === "name") slotName = JSON.stringify(p.value.content);
15432
- else {
15433
- p.name = camelize(p.name);
15434
- nonNameProps.push(p);
15804
+ if (p.value) {
15805
+ if (p.name === "name") slotName = JSON.stringify(p.value.content);
15806
+ else {
15807
+ p.name = camelize(p.name);
15808
+ nonNameProps.push(p);
15809
+ }
15435
15810
  }
15436
15811
  } else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
15437
15812
  if (p.exp) slotName = p.exp;
@@ -15457,17 +15832,18 @@ const transformOn$1 = (dir, node, context, augmentor) => {
15457
15832
  const { loc, modifiers, arg } = dir;
15458
15833
  if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
15459
15834
  let eventName;
15460
- if (arg.type === 4) if (arg.isStatic) {
15461
- let rawName = arg.content;
15462
- if (!!(process.env.NODE_ENV !== "production") && rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
15463
- if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
15464
- eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
15465
- } else eventName = createCompoundExpression([
15466
- `${context.helperString(TO_HANDLER_KEY)}(`,
15467
- arg,
15468
- `)`
15469
- ]);
15470
- else {
15835
+ if (arg.type === 4) {
15836
+ if (arg.isStatic) {
15837
+ let rawName = arg.content;
15838
+ if (!!(process.env.NODE_ENV !== "production") && rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
15839
+ if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
15840
+ eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
15841
+ } else eventName = createCompoundExpression([
15842
+ `${context.helperString(TO_HANDLER_KEY)}(`,
15843
+ arg,
15844
+ `)`
15845
+ ]);
15846
+ } else {
15471
15847
  eventName = arg;
15472
15848
  eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
15473
15849
  eventName.children.push(`)`);
@@ -15503,11 +15879,14 @@ const transformBind = (dir, _node, context) => {
15503
15879
  arg.children.unshift(`(`);
15504
15880
  arg.children.push(`) || ""`);
15505
15881
  } else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
15506
- if (modifiers.some((mod) => mod.content === "camel")) if (arg.type === 4) if (arg.isStatic) arg.content = camelize(arg.content);
15507
- else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
15508
- else {
15509
- arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
15510
- arg.children.push(`)`);
15882
+ if (modifiers.some((mod) => mod.content === "camel")) {
15883
+ if (arg.type === 4) {
15884
+ if (arg.isStatic) arg.content = camelize(arg.content);
15885
+ else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
15886
+ } else {
15887
+ arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
15888
+ arg.children.push(`)`);
15889
+ }
15511
15890
  }
15512
15891
  if (!context.inSSR) {
15513
15892
  if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
@@ -15516,9 +15895,10 @@ const transformBind = (dir, _node, context) => {
15516
15895
  return { props: [createObjectProperty(arg, exp)] };
15517
15896
  };
15518
15897
  const injectPrefix = (arg, prefix) => {
15519
- if (arg.type === 4) if (arg.isStatic) arg.content = prefix + arg.content;
15520
- else arg.content = `\`${prefix}\${${arg.content}}\``;
15521
- else {
15898
+ if (arg.type === 4) {
15899
+ if (arg.isStatic) arg.content = prefix + arg.content;
15900
+ else arg.content = `\`${prefix}\${${arg.content}}\``;
15901
+ } else {
15522
15902
  arg.children.unshift(`'${prefix}' + (`);
15523
15903
  arg.children.push(`)`);
15524
15904
  }
@@ -15665,11 +16045,12 @@ function parseFilter(node, context) {
15665
16045
  if (c === 96 && prev !== 92) inTemplateString = false;
15666
16046
  } else if (inRegex) {
15667
16047
  if (c === 47 && prev !== 92) inRegex = false;
15668
- } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) if (expression === void 0) {
15669
- lastFilterIndex = i + 1;
15670
- expression = exp.slice(0, i).trim();
15671
- } else pushFilter();
15672
- else {
16048
+ } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
16049
+ if (expression === void 0) {
16050
+ lastFilterIndex = i + 1;
16051
+ expression = exp.slice(0, i).trim();
16052
+ } else pushFilter();
16053
+ } else {
15673
16054
  switch (c) {
15674
16055
  case 34:
15675
16056
  inDouble = true;
@@ -15695,9 +16076,7 @@ function parseFilter(node, context) {
15695
16076
  case 123:
15696
16077
  curly++;
15697
16078
  break;
15698
- case 125:
15699
- curly--;
15700
- break;
16079
+ case 125: curly--;
15701
16080
  }
15702
16081
  if (c === 47) {
15703
16082
  let j = i - 1;
@@ -15973,9 +16352,7 @@ const transformModel = (dir, node, context) => {
15973
16352
  isInvalidType = true;
15974
16353
  context.onError(createDOMCompilerError(60, dir.loc));
15975
16354
  break;
15976
- default:
15977
- process.env.NODE_ENV !== "production" && checkDuplicatedValue();
15978
- break;
16355
+ default: process.env.NODE_ENV !== "production" && checkDuplicatedValue();
15979
16356
  }
15980
16357
  } else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
15981
16358
  else process.env.NODE_ENV !== "production" && checkDuplicatedValue();
@@ -15988,27 +16365,37 @@ const transformModel = (dir, node, context) => {
15988
16365
  };
15989
16366
  //#endregion
15990
16367
  //#region packages/compiler-dom/src/transforms/vOn.ts
15991
- const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
15992
- const isNonKeyModifier = /* @__PURE__ */ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
15993
- const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
15994
- const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);
16368
+ const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
16369
+ const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
16370
+ const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
16371
+ const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
15995
16372
  const resolveModifiers = (key, modifiers, context, loc) => {
15996
16373
  const keyModifiers = [];
15997
16374
  const nonKeyModifiers = [];
15998
16375
  const eventOptionModifiers = [];
15999
16376
  for (let i = 0; i < modifiers.length; i++) {
16000
16377
  const modifier = modifiers[i].content;
16378
+ if (modifier === "delegate") {
16379
+ if (context) {
16380
+ const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
16381
+ error.loc = modifiers[i].loc;
16382
+ context.onWarn(error);
16383
+ }
16384
+ continue;
16385
+ }
16001
16386
  if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
16002
16387
  else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
16003
16388
  else {
16004
16389
  const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
16005
- if (maybeKeyModifier(modifier)) if (keyString) if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
16006
- else nonKeyModifiers.push(modifier);
16007
- else {
16008
- keyModifiers.push(modifier);
16009
- nonKeyModifiers.push(modifier);
16010
- }
16011
- else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
16390
+ if (maybeKeyModifier(modifier)) {
16391
+ if (keyString) {
16392
+ if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
16393
+ else nonKeyModifiers.push(modifier);
16394
+ } else {
16395
+ keyModifiers.push(modifier);
16396
+ nonKeyModifiers.push(modifier);
16397
+ }
16398
+ } else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
16012
16399
  else keyModifiers.push(modifier);
16013
16400
  }
16014
16401
  }
@@ -16123,7 +16510,7 @@ function isValidHTMLNesting(parent, child) {
16123
16510
  }
16124
16511
  return true;
16125
16512
  }
16126
- const headings = new Set([
16513
+ const headings = /* @__PURE__ */ new Set([
16127
16514
  "h1",
16128
16515
  "h2",
16129
16516
  "h3",
@@ -16135,7 +16522,7 @@ const emptySet = /* @__PURE__ */ new Set([]);
16135
16522
  /**
16136
16523
  * maps element to set of elements that can be it's children, no other */
16137
16524
  const onlyValidChildren = {
16138
- head: new Set([
16525
+ head: /* @__PURE__ */ new Set([
16139
16526
  "base",
16140
16527
  "basefront",
16141
16528
  "bgsound",
@@ -16148,24 +16535,24 @@ const onlyValidChildren = {
16148
16535
  "script",
16149
16536
  "template"
16150
16537
  ]),
16151
- optgroup: new Set(["option"]),
16152
- select: new Set([
16538
+ optgroup: /* @__PURE__ */ new Set(["option"]),
16539
+ select: /* @__PURE__ */ new Set([
16153
16540
  "optgroup",
16154
16541
  "option",
16155
16542
  "hr"
16156
16543
  ]),
16157
- table: new Set([
16544
+ table: /* @__PURE__ */ new Set([
16158
16545
  "caption",
16159
16546
  "colgroup",
16160
16547
  "tbody",
16161
16548
  "tfoot",
16162
16549
  "thead"
16163
16550
  ]),
16164
- tr: new Set(["td", "th"]),
16165
- colgroup: new Set(["col"]),
16166
- tbody: new Set(["tr"]),
16167
- thead: new Set(["tr"]),
16168
- tfoot: new Set(["tr"]),
16551
+ tr: /* @__PURE__ */ new Set(["td", "th"]),
16552
+ colgroup: /* @__PURE__ */ new Set(["col"]),
16553
+ tbody: /* @__PURE__ */ new Set(["tr"]),
16554
+ thead: /* @__PURE__ */ new Set(["tr"]),
16555
+ tfoot: /* @__PURE__ */ new Set(["tr"]),
16169
16556
  script: emptySet,
16170
16557
  iframe: emptySet,
16171
16558
  option: emptySet,
@@ -16176,30 +16563,30 @@ const onlyValidChildren = {
16176
16563
  /** maps elements to set of elements which can be it's parent, no other */
16177
16564
  const onlyValidParents = {
16178
16565
  html: emptySet,
16179
- body: new Set(["html"]),
16180
- head: new Set(["html"]),
16181
- td: new Set(["tr"]),
16182
- colgroup: new Set(["table"]),
16183
- caption: new Set(["table"]),
16184
- tbody: new Set(["table"]),
16185
- tfoot: new Set(["table"]),
16186
- col: new Set(["colgroup"]),
16187
- th: new Set(["tr"]),
16188
- thead: new Set(["table"]),
16189
- tr: new Set([
16566
+ body: /* @__PURE__ */ new Set(["html"]),
16567
+ head: /* @__PURE__ */ new Set(["html"]),
16568
+ td: /* @__PURE__ */ new Set(["tr"]),
16569
+ colgroup: /* @__PURE__ */ new Set(["table"]),
16570
+ caption: /* @__PURE__ */ new Set(["table"]),
16571
+ tbody: /* @__PURE__ */ new Set(["table"]),
16572
+ tfoot: /* @__PURE__ */ new Set(["table"]),
16573
+ col: /* @__PURE__ */ new Set(["colgroup"]),
16574
+ th: /* @__PURE__ */ new Set(["tr"]),
16575
+ thead: /* @__PURE__ */ new Set(["table"]),
16576
+ tr: /* @__PURE__ */ new Set([
16190
16577
  "tbody",
16191
16578
  "thead",
16192
16579
  "tfoot"
16193
16580
  ]),
16194
- dd: new Set(["dl", "div"]),
16195
- dt: new Set(["dl", "div"]),
16196
- figcaption: new Set(["figure"]),
16197
- summary: new Set(["details"]),
16198
- area: new Set(["map"])
16581
+ dd: /* @__PURE__ */ new Set(["dl", "div"]),
16582
+ dt: /* @__PURE__ */ new Set(["dl", "div"]),
16583
+ figcaption: /* @__PURE__ */ new Set(["figure"]),
16584
+ summary: /* @__PURE__ */ new Set(["details"]),
16585
+ area: /* @__PURE__ */ new Set(["map"])
16199
16586
  };
16200
16587
  /** maps element to set of elements that can not be it's children, others can */
16201
16588
  const knownInvalidChildren = {
16202
- p: new Set([
16589
+ p: /* @__PURE__ */ new Set([
16203
16590
  "address",
16204
16591
  "article",
16205
16592
  "aside",
@@ -16234,7 +16621,7 @@ const knownInvalidChildren = {
16234
16621
  "table",
16235
16622
  "ul"
16236
16623
  ]),
16237
- svg: new Set([
16624
+ svg: /* @__PURE__ */ new Set([
16238
16625
  "b",
16239
16626
  "blockquote",
16240
16627
  "br",
@@ -16275,12 +16662,12 @@ const knownInvalidChildren = {
16275
16662
  };
16276
16663
  /** maps element to set of elements that can not be it's parent, others can */
16277
16664
  const knownInvalidParents = {
16278
- a: new Set(["a"]),
16279
- button: new Set(["button"]),
16280
- dd: new Set(["dd", "dt"]),
16281
- dt: new Set(["dd", "dt"]),
16282
- form: new Set(["form"]),
16283
- li: new Set(["li"]),
16665
+ a: /* @__PURE__ */ new Set(["a"]),
16666
+ button: /* @__PURE__ */ new Set(["button"]),
16667
+ dd: /* @__PURE__ */ new Set(["dd", "dt"]),
16668
+ dt: /* @__PURE__ */ new Set(["dd", "dt"]),
16669
+ form: /* @__PURE__ */ new Set(["form"]),
16670
+ li: /* @__PURE__ */ new Set(["li"]),
16284
16671
  h1: headings,
16285
16672
  h2: headings,
16286
16673
  h3: headings,
@@ -16323,10 +16710,12 @@ function compile(src, options = {}) {
16323
16710
  //#region packages/vue-compat/src/index.ts
16324
16711
  const compileCache = Object.create(null);
16325
16712
  function compileToFunction(template, options) {
16326
- if (!isString(template)) if (template.nodeType) template = template.innerHTML;
16327
- else {
16328
- process.env.NODE_ENV !== "production" && warn(`invalid template option: `, template);
16329
- return NOOP;
16713
+ if (!isString(template)) {
16714
+ if (template.nodeType) template = template.innerHTML;
16715
+ else {
16716
+ process.env.NODE_ENV !== "production" && warn(`invalid template option: `, template);
16717
+ return NOOP;
16718
+ }
16330
16719
  }
16331
16720
  const key = genCacheKey(template, options);
16332
16721
  const cached = compileCache[key];
@@ -16360,4 +16749,4 @@ Vue.compile = compileToFunction;
16360
16749
  var esm_index_default = Vue;
16361
16750
  const configureCompat = Vue.configureCompat;
16362
16751
  //#endregion
16363
- 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, baseUseCssVars, 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, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, ensureVaporSlotFallback, expose, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, isAsyncWrapper, isEmitListener, isHydrating, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isVNode, isValidHtmlOrSvgAttribute, 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, patchProp, patchStyle, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, resolveTransitionProps, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, 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, withKeys, withMemo, withModifiers, withScopeId, xlinkNS };
16752
+ 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, expose, filterModelListeners, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getContainerType, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, 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, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isUnchangedResourceProp, isVNode, isValidHtmlOrSvgAttribute, 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, 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, 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, withKeys, withMemo, withModifiers, withScopeId, xlinkNS };