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

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.
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-rc.1
2
+ * @vue/compat v3.6.0-rc.11
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -26,7 +26,7 @@ let source_map_js = require("source-map-js");
26
26
  * \/\*#\_\_PURE\_\_\*\/
27
27
  * So that they can be tree-shaken if necessary.
28
28
  */
29
- /* @__NO_SIDE_EFFECTS__ */
29
+ /*@__NO_SIDE_EFFECTS__*/
30
30
  function makeMap(str) {
31
31
  const map = Object.create(null);
32
32
  for (const key of str.split(",")) map[key] = 1;
@@ -70,9 +70,9 @@ const toRawType = (value) => {
70
70
  };
71
71
  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
72
72
  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
73
- const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
74
- const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
75
- const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
73
+ const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
74
+ const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
75
+ const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
76
76
  const cacheStringFunction = (fn) => {
77
77
  const cache = Object.create(null);
78
78
  return ((str) => {
@@ -184,7 +184,7 @@ const slotFlagsText = {
184
184
  [2]: "DYNAMIC",
185
185
  [3]: "FORWARDED"
186
186
  };
187
- 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");
187
+ 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");
188
188
  //#endregion
189
189
  //#region packages/shared/src/codeframe.ts
190
190
  const range = 2;
@@ -238,10 +238,10 @@ function normalizeStyle(value) {
238
238
  }
239
239
  const listDelimiterRE = /;(?![^(]*\))/g;
240
240
  const propertyDelimiterRE = /:([^]+)/;
241
- const styleCommentRE = /\/\*[^]*?\*\//g;
241
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
242
242
  function parseStringStyle(cssText) {
243
243
  const ret = {};
244
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
244
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
245
245
  if (item) {
246
246
  const tmp = item.split(propertyDelimiterRE);
247
247
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -291,22 +291,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
291
291
  * Compiler only.
292
292
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
293
293
  */
294
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
294
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
295
295
  /**
296
296
  * Compiler only.
297
297
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
298
298
  */
299
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
299
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
300
300
  /**
301
301
  * Compiler only.
302
302
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
303
303
  */
304
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
304
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
305
305
  /**
306
306
  * Compiler only.
307
307
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
308
308
  */
309
- const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
309
+ const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
310
310
  //#endregion
311
311
  //#region packages/shared/src/domAttrConfig.ts
312
312
  /**
@@ -321,11 +321,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
321
321
  * - readonly -> readOnly
322
322
  */
323
323
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
324
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
324
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
325
325
  /**
326
326
  * The full list is needed during SSR to produce the correct initial markup.
327
327
  */
328
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
328
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
329
329
  /**
330
330
  * Boolean attributes should be included if the value is truthy or ''.
331
331
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -339,15 +339,15 @@ function includeBooleanAttr(value) {
339
339
  * Don't also forget to allow `data-*` and `aria-*`!
340
340
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
341
341
  */
342
- 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");
342
+ 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");
343
343
  /**
344
344
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
345
345
  */
346
- 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");
346
+ 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");
347
347
  /**
348
348
  * Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
349
349
  */
350
- const isKnownMathMLAttr = /* @__PURE__ */ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
350
+ const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
351
351
  /**
352
352
  * Shared between server-renderer and runtime-core hydration logic
353
353
  */
@@ -407,13 +407,54 @@ function getEscapedCssVarName(key, doubleEscape) {
407
407
  }
408
408
  //#endregion
409
409
  //#region packages/shared/src/looseEqual.ts
410
- function looseCompareArrays(a, b) {
410
+ function looseCompareArrays(a, b, seen) {
411
411
  if (a.length !== b.length) return false;
412
412
  let equal = true;
413
- for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
413
+ for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
414
414
  return equal;
415
415
  }
416
- function looseEqual(a, b) {
416
+ function looseCompareCollections(a, b, seen) {
417
+ if (a.size !== b.size) return false;
418
+ const candidates = Array.from(b);
419
+ const matched = new Uint8Array(candidates.length);
420
+ for (const item of a) {
421
+ let index = -1;
422
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
423
+ index = i;
424
+ break;
425
+ }
426
+ if (index < 0) return false;
427
+ matched[index] = 1;
428
+ }
429
+ return true;
430
+ }
431
+ function looseCompareObjects(a, b, seen) {
432
+ let aValidType = isMap(a);
433
+ let bValidType = isMap(b);
434
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
435
+ aValidType = isSet(a);
436
+ bValidType = isSet(b);
437
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
438
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
439
+ for (const key in a) {
440
+ const aHasKey = a.hasOwnProperty(key);
441
+ const bHasKey = b.hasOwnProperty(key);
442
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
443
+ }
444
+ return String(a) === String(b);
445
+ }
446
+ function looseCompareNested(a, b, seen, compare) {
447
+ if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
448
+ const [seenA, seenB] = seen;
449
+ if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
450
+ seenA.set(a, b);
451
+ seenB.set(b, a);
452
+ const equal = compare(a, b, seen);
453
+ seenA.delete(a);
454
+ seenB.delete(b);
455
+ return equal;
456
+ }
457
+ function looseEqual(a, b, seen) {
417
458
  if (a === b) return true;
418
459
  let aValidType = isDate(a);
419
460
  let bValidType = isDate(b);
@@ -423,17 +464,12 @@ function looseEqual(a, b) {
423
464
  if (aValidType || bValidType) return a === b;
424
465
  aValidType = isArray(a);
425
466
  bValidType = isArray(b);
426
- if (aValidType || bValidType) return aValidType && bValidType ? looseCompareArrays(a, b) : false;
467
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
427
468
  aValidType = isObject(a);
428
469
  bValidType = isObject(b);
429
470
  if (aValidType || bValidType) {
430
471
  if (!aValidType || !bValidType) return false;
431
- if (Object.keys(a).length !== Object.keys(b).length) return false;
432
- for (const key in a) {
433
- const aHasKey = a.hasOwnProperty(key);
434
- const bHasKey = b.hasOwnProperty(key);
435
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
436
- }
472
+ return looseCompareNested(a, b, seen, looseCompareObjects);
437
473
  }
438
474
  return String(a) === String(b);
439
475
  }
@@ -563,6 +599,8 @@ function setupFlagsHandler(target) {
563
599
  function warn$2(msg, ...args) {
564
600
  console.warn(`[Vue warn] ${msg}`, ...args);
565
601
  }
602
+ //#endregion
603
+ //#region packages/reactivity/src/system.ts
566
604
  const notifyBuffer = [];
567
605
  let batchDepth = 0;
568
606
  let activeSub = void 0;
@@ -701,13 +739,23 @@ function endTracking(sub, prevSub) {
701
739
  sub.flags &= -5;
702
740
  }
703
741
  function flush() {
742
+ let hasError = false;
743
+ let error;
704
744
  while (notifyIndex < notifyBufferLength) {
705
745
  const effect = notifyBuffer[notifyIndex];
706
746
  notifyBuffer[notifyIndex++] = void 0;
707
- effect.notify();
747
+ try {
748
+ effect.notify();
749
+ } catch (err) {
750
+ if (!hasError) {
751
+ hasError = true;
752
+ error = err;
753
+ }
754
+ }
708
755
  }
709
756
  notifyIndex = 0;
710
757
  notifyBufferLength = 0;
758
+ if (hasError) throw error;
711
759
  }
712
760
  function checkDirty(link, sub) {
713
761
  let stack;
@@ -791,7 +839,7 @@ var Dep = class {
791
839
  }
792
840
  set subs(value) {
793
841
  this._subs = value;
794
- if (value === void 0) this.map.delete(this.key);
842
+ if (value === void 0 && this.map) this.map.delete(this.key);
795
843
  }
796
844
  };
797
845
  const targetMap = /* @__PURE__ */ new WeakMap();
@@ -874,9 +922,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
874
922
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
875
923
  }
876
924
  break;
877
- case "set":
878
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
879
- break;
925
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
880
926
  }
881
927
  }
882
928
  }
@@ -891,13 +937,17 @@ function getDepFromReactive(object, key) {
891
937
  /**
892
938
  * Track array iteration and return:
893
939
  * - if input is reactive: a cloned raw array with reactive values
894
- * - if input is non-reactive or shallowReactive: the original raw array
940
+ * - if input is readonly: a cloned raw array with readonly values, preserving
941
+ * reactivity
942
+ * - if input is raw or shallow: the original raw array
895
943
  */
896
944
  function reactiveReadArray(array) {
897
945
  const raw = /* @__PURE__ */ toRaw(array);
898
946
  if (raw === array) return raw;
899
947
  track(raw, "iterate", ARRAY_ITERATE_KEY);
900
- return /* @__PURE__ */ isShallow(array) ? raw : raw.map(toReactive);
948
+ if (/* @__PURE__ */ isShallow(array)) return raw;
949
+ if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
950
+ return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
901
951
  }
902
952
  /**
903
953
  * Track array iteration and return raw array
@@ -1073,8 +1123,8 @@ function noTracking(self, method, args = []) {
1073
1123
  }
1074
1124
  //#endregion
1075
1125
  //#region packages/reactivity/src/baseHandlers.ts
1076
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
1077
- const builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1126
+ const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
1127
+ const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1078
1128
  function hasOwnProperty(key) {
1079
1129
  if (!isSymbol(key)) key = String(key);
1080
1130
  const obj = /* @__PURE__ */ toRaw(this);
@@ -1129,12 +1179,14 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
1129
1179
  oldValue = /* @__PURE__ */ toRaw(oldValue);
1130
1180
  value = /* @__PURE__ */ toRaw(value);
1131
1181
  }
1132
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) {
1133
- warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1134
- return true;
1135
- } else {
1136
- oldValue.value = value;
1137
- return true;
1182
+ if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1183
+ if (isOldValueReadonly) {
1184
+ warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1185
+ return true;
1186
+ } else {
1187
+ oldValue.value = value;
1188
+ return true;
1189
+ }
1138
1190
  }
1139
1191
  }
1140
1192
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
@@ -1175,10 +1227,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1175
1227
  return true;
1176
1228
  }
1177
1229
  };
1178
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1179
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1180
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1181
- const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1230
+ const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
1231
+ const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
1232
+ const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
1233
+ const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
1182
1234
  //#endregion
1183
1235
  //#region packages/reactivity/src/collectionHandlers.ts
1184
1236
  const toShallow = (value) => value;
@@ -1329,10 +1381,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
1329
1381
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1330
1382
  };
1331
1383
  }
1332
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1333
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1334
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1335
- const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1384
+ const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
1385
+ const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
1386
+ const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
1387
+ const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
1336
1388
  function checkIdentityKeys(target, has, key) {
1337
1389
  const rawKey = /* @__PURE__ */ toRaw(key);
1338
1390
  if (rawKey !== key && has.call(target, rawKey)) {
@@ -1357,7 +1409,7 @@ function targetTypeMap(rawType) {
1357
1409
  default: return 0;
1358
1410
  }
1359
1411
  }
1360
- /* @__NO_SIDE_EFFECTS__ */
1412
+ /*@__NO_SIDE_EFFECTS__*/
1361
1413
  function reactive(target) {
1362
1414
  if (/* @__PURE__ */ isReadonly(target)) return target;
1363
1415
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1392,7 +1444,7 @@ function reactive(target) {
1392
1444
  * @param target - The source object.
1393
1445
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1394
1446
  */
1395
- /* @__NO_SIDE_EFFECTS__ */
1447
+ /*@__NO_SIDE_EFFECTS__*/
1396
1448
  function shallowReactive(target) {
1397
1449
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1398
1450
  }
@@ -1425,7 +1477,7 @@ function shallowReactive(target) {
1425
1477
  * @param target - The source object.
1426
1478
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1427
1479
  */
1428
- /* @__NO_SIDE_EFFECTS__ */
1480
+ /*@__NO_SIDE_EFFECTS__*/
1429
1481
  function readonly(target) {
1430
1482
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1431
1483
  }
@@ -1459,7 +1511,7 @@ function readonly(target) {
1459
1511
  * @param target - The source object.
1460
1512
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1461
1513
  */
1462
- /* @__NO_SIDE_EFFECTS__ */
1514
+ /*@__NO_SIDE_EFFECTS__*/
1463
1515
  function shallowReadonly(target) {
1464
1516
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1465
1517
  }
@@ -1496,7 +1548,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1496
1548
  * @param value - The value to check.
1497
1549
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1498
1550
  */
1499
- /* @__NO_SIDE_EFFECTS__ */
1551
+ /*@__NO_SIDE_EFFECTS__*/
1500
1552
  function isReactive(value) {
1501
1553
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1502
1554
  return !!(value && value["__v_isReactive"]);
@@ -1512,11 +1564,11 @@ function isReactive(value) {
1512
1564
  * @param value - The value to check.
1513
1565
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1514
1566
  */
1515
- /* @__NO_SIDE_EFFECTS__ */
1567
+ /*@__NO_SIDE_EFFECTS__*/
1516
1568
  function isReadonly(value) {
1517
1569
  return !!(value && value["__v_isReadonly"]);
1518
1570
  }
1519
- /* @__NO_SIDE_EFFECTS__ */
1571
+ /*@__NO_SIDE_EFFECTS__*/
1520
1572
  function isShallow(value) {
1521
1573
  return !!(value && value["__v_isShallow"]);
1522
1574
  }
@@ -1527,7 +1579,7 @@ function isShallow(value) {
1527
1579
  * @param value - The value to check.
1528
1580
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1529
1581
  */
1530
- /* @__NO_SIDE_EFFECTS__ */
1582
+ /*@__NO_SIDE_EFFECTS__*/
1531
1583
  function isProxy(value) {
1532
1584
  return value ? !!value["__v_raw"] : false;
1533
1585
  }
@@ -1554,7 +1606,7 @@ function isProxy(value) {
1554
1606
  * @param observed - The object for which the "raw" value is requested.
1555
1607
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1556
1608
  */
1557
- /* @__NO_SIDE_EFFECTS__ */
1609
+ /*@__NO_SIDE_EFFECTS__*/
1558
1610
  function toRaw(observed) {
1559
1611
  const raw = observed && observed["__v_raw"];
1560
1612
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1603,15 +1655,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
1603
1655
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1604
1656
  //#endregion
1605
1657
  //#region packages/reactivity/src/ref.ts
1606
- /* @__NO_SIDE_EFFECTS__ */
1658
+ /*@__NO_SIDE_EFFECTS__*/
1607
1659
  function isRef(r) {
1608
1660
  return r ? r["__v_isRef"] === true : false;
1609
1661
  }
1610
- /* @__NO_SIDE_EFFECTS__ */
1662
+ /*@__NO_SIDE_EFFECTS__*/
1611
1663
  function ref(value) {
1612
1664
  return createRef(value, toReactive);
1613
1665
  }
1614
- /* @__NO_SIDE_EFFECTS__ */
1666
+ /*@__NO_SIDE_EFFECTS__*/
1615
1667
  function shallowRef(value) {
1616
1668
  return createRef(value);
1617
1669
  }
@@ -1814,7 +1866,7 @@ function customRef(factory) {
1814
1866
  * @param object - Reactive object to be made into an object of linked refs.
1815
1867
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1816
1868
  */
1817
- /* @__NO_SIDE_EFFECTS__ */
1869
+ /*@__NO_SIDE_EFFECTS__*/
1818
1870
  function toRefs(object) {
1819
1871
  const ret = isArray(object) ? new Array(object.length) : {};
1820
1872
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1865,7 +1917,7 @@ var GetterRefImpl = class {
1865
1917
  return this._value = this._getter();
1866
1918
  }
1867
1919
  };
1868
- /* @__NO_SIDE_EFFECTS__ */
1920
+ /*@__NO_SIDE_EFFECTS__*/
1869
1921
  function toRef(source, key, defaultValue) {
1870
1922
  if (/* @__PURE__ */ isRef(source)) return source;
1871
1923
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1931,10 +1983,12 @@ var ReactiveEffect = class {
1931
1983
  get dirty() {
1932
1984
  const flags = this.flags;
1933
1985
  if (flags & 16) return true;
1934
- if (flags & 32) if (checkDirty(this.deps, this)) {
1935
- this.flags = flags | 16;
1936
- return true;
1937
- } else this.flags = flags & -33;
1986
+ if (flags & 32) {
1987
+ if (checkDirty(this.deps, this)) {
1988
+ this.flags = flags | 16;
1989
+ return true;
1990
+ } else this.flags = flags & -33;
1991
+ }
1938
1992
  return false;
1939
1993
  }
1940
1994
  };
@@ -2113,10 +2167,12 @@ var ComputedRefImpl = class {
2113
2167
  get _dirty() {
2114
2168
  const flags = this.flags;
2115
2169
  if (flags & 16) return true;
2116
- if (flags & 32) if (checkDirty(this.deps, this)) {
2117
- this.flags = flags | 16;
2118
- return true;
2119
- } else this.flags = flags & -33;
2170
+ if (flags & 32) {
2171
+ if (checkDirty(this.deps, this)) {
2172
+ this.flags = flags | 16;
2173
+ return true;
2174
+ } else this.flags = flags & -33;
2175
+ }
2120
2176
  return false;
2121
2177
  }
2122
2178
  /**
@@ -2177,7 +2233,7 @@ var ComputedRefImpl = class {
2177
2233
  }
2178
2234
  };
2179
2235
  setupOnTrigger(ComputedRefImpl);
2180
- /* @__NO_SIDE_EFFECTS__ */
2236
+ /*@__NO_SIDE_EFFECTS__*/
2181
2237
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
2182
2238
  let getter;
2183
2239
  let setter;
@@ -2255,25 +2311,26 @@ var WatcherEffect = class extends ReactiveEffect {
2255
2311
  else if (isFunction(s)) return call ? call(s, 2) : s();
2256
2312
  else warnInvalidSource(s, onWarn);
2257
2313
  });
2258
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2259
- else getter = () => {
2260
- if (this.cleanupsLength) {
2261
- const prevSub = setActiveSub();
2314
+ } else if (isFunction(source)) {
2315
+ if (cb) getter = call ? () => call(source, 2) : source;
2316
+ else getter = () => {
2317
+ if (this.cleanupsLength) {
2318
+ const prevSub = setActiveSub();
2319
+ try {
2320
+ cleanup(this);
2321
+ } finally {
2322
+ setActiveSub(prevSub);
2323
+ }
2324
+ }
2325
+ const currentEffect = activeWatcher;
2326
+ activeWatcher = this;
2262
2327
  try {
2263
- cleanup(this);
2328
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2264
2329
  } finally {
2265
- setActiveSub(prevSub);
2330
+ activeWatcher = currentEffect;
2266
2331
  }
2267
- }
2268
- const currentEffect = activeWatcher;
2269
- activeWatcher = this;
2270
- try {
2271
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2272
- } finally {
2273
- activeWatcher = currentEffect;
2274
- }
2275
- };
2276
- else {
2332
+ };
2333
+ } else {
2277
2334
  getter = NOOP;
2278
2335
  warnInvalidSource(source, onWarn);
2279
2336
  }
@@ -2597,7 +2654,7 @@ let currentFlushPromise = null;
2597
2654
  let jobsLength = 0;
2598
2655
  let flushIndex = 0;
2599
2656
  let postFlushIndex = 0;
2600
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2657
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2601
2658
  const RECURSION_LIMIT = 100;
2602
2659
  function nextTick(fn) {
2603
2660
  const p = currentFlushPromise || resolvedPromise;
@@ -2636,6 +2693,7 @@ const doFlushJobs = () => {
2636
2693
  flushJobs();
2637
2694
  } catch (e) {
2638
2695
  currentFlushPromise = null;
2696
+ if (jobsLength || postJobs.length) queueFlush();
2639
2697
  throw e;
2640
2698
  }
2641
2699
  };
@@ -2643,9 +2701,10 @@ function queueFlush() {
2643
2701
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2644
2702
  }
2645
2703
  function queuePostFlushCb(jobs, id = Infinity) {
2646
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2647
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2648
- else for (const job of jobs) queueJobWorker(job, id, postJobs, postJobs.length, 0);
2704
+ if (!isArray(jobs)) {
2705
+ if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2706
+ else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2707
+ } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2649
2708
  queueFlush();
2650
2709
  }
2651
2710
  function flushPreFlushCbs(instance, seen) {
@@ -2659,32 +2718,39 @@ function flushPreFlushCbs(instance, seen) {
2659
2718
  i--;
2660
2719
  jobsLength--;
2661
2720
  if (cb.flags & 2) cb.flags &= -2;
2662
- cb();
2663
- if (!(cb.flags & 2)) cb.flags &= -2;
2721
+ try {
2722
+ cb();
2723
+ } finally {
2724
+ if (!(cb.flags & 2)) cb.flags &= -2;
2725
+ }
2664
2726
  }
2665
2727
  }
2666
2728
  function flushPostFlushCbs(seen) {
2667
2729
  if (postJobs.length) {
2668
2730
  if (activePostJobs) {
2669
- activePostJobs.push(...postJobs);
2731
+ for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
2670
2732
  postJobs.length = 0;
2671
2733
  return;
2672
2734
  }
2673
2735
  activePostJobs = postJobs;
2674
2736
  postJobs = [];
2675
2737
  seen = seen || /* @__PURE__ */ new Map();
2676
- while (postFlushIndex < activePostJobs.length) {
2677
- const cb = activePostJobs[postFlushIndex++];
2678
- if (checkRecursiveUpdates(seen, cb)) continue;
2679
- if (cb.flags & 2) cb.flags &= -2;
2680
- if (!(cb.flags & 4)) try {
2681
- cb();
2682
- } finally {
2683
- cb.flags &= -2;
2738
+ try {
2739
+ while (postFlushIndex < activePostJobs.length) {
2740
+ const cb = activePostJobs[postFlushIndex++];
2741
+ if (checkRecursiveUpdates(seen, cb)) continue;
2742
+ if (cb.flags & 2) cb.flags &= -2;
2743
+ if (!(cb.flags & 4)) try {
2744
+ cb();
2745
+ } finally {
2746
+ if (!(cb.flags & 2)) cb.flags &= -2;
2747
+ }
2684
2748
  }
2749
+ } finally {
2750
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2751
+ activePostJobs = null;
2752
+ postFlushIndex = 0;
2685
2753
  }
2686
- activePostJobs = null;
2687
- postFlushIndex = 0;
2688
2754
  }
2689
2755
  }
2690
2756
  let isFlushing = false;
@@ -2694,9 +2760,12 @@ let isFlushing = false;
2694
2760
  function flushOnAppMount(instance) {
2695
2761
  if (!isFlushing) {
2696
2762
  isFlushing = true;
2697
- flushPreFlushCbs(instance);
2698
- flushPostFlushCbs();
2699
- isFlushing = false;
2763
+ try {
2764
+ flushPreFlushCbs(instance);
2765
+ flushPostFlushCbs();
2766
+ } finally {
2767
+ isFlushing = false;
2768
+ }
2700
2769
  }
2701
2770
  }
2702
2771
  function flushJobs(seen) {
@@ -2726,8 +2795,8 @@ function flushJobs(seen) {
2726
2795
  jobsLength = 0;
2727
2796
  jobs.length = 0;
2728
2797
  flushPostFlushCbs(seen);
2729
- currentFlushPromise = null;
2730
2798
  if (jobsLength || postJobs.length) flushJobs(seen);
2799
+ else currentFlushPromise = null;
2731
2800
  }
2732
2801
  }
2733
2802
  function checkRecursiveUpdates(seen, fn) {
@@ -2758,6 +2827,19 @@ getGlobalThis().__VUE_HMR_RUNTIME__ = {
2758
2827
  rerender: tryWrap(rerender),
2759
2828
  reload: tryWrap(reload)
2760
2829
  };
2830
+ function runWithHmrUpdating(fn) {
2831
+ isHmrUpdating = true;
2832
+ let done = false;
2833
+ try {
2834
+ fn();
2835
+ done = true;
2836
+ } finally {
2837
+ if (done) nextTick(() => {
2838
+ isHmrUpdating = false;
2839
+ });
2840
+ else isHmrUpdating = false;
2841
+ }
2842
+ }
2761
2843
  const map = /* @__PURE__ */ new Map();
2762
2844
  function registerHMR(instance) {
2763
2845
  const id = instance.type.__hmrId;
@@ -2799,18 +2881,16 @@ function rerender(id, newRender) {
2799
2881
  instance.render = newRender;
2800
2882
  normalizeClassComponent(instance.type).render = newRender;
2801
2883
  }
2802
- isHmrUpdating = true;
2803
- if (instance.vapor) {
2804
- if (!instance.isUnmounted) instance.hmrRerender();
2805
- } else {
2806
- const i = instance;
2807
- if (!(i.effect.flags & 1024)) {
2808
- i.renderCache = [];
2809
- i.effect.run();
2884
+ runWithHmrUpdating(() => {
2885
+ if (instance.vapor) {
2886
+ if (!instance.isUnmounted) instance.hmrRerender();
2887
+ } else {
2888
+ const i = instance;
2889
+ if (!(i.effect.flags & 1024)) {
2890
+ i.renderCache = [];
2891
+ i.effect.run();
2892
+ }
2810
2893
  }
2811
- }
2812
- nextTick(() => {
2813
- isHmrUpdating = false;
2814
2894
  });
2815
2895
  });
2816
2896
  }
@@ -2825,17 +2905,19 @@ function reload(id, newComp) {
2825
2905
  for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
2826
2906
  const dirtyInstances = new Set(instances);
2827
2907
  const rerenderedParents = /* @__PURE__ */ new Set();
2828
- for (const instance of instances) {
2829
- const parent = instance.parent;
2830
- if (parent) {
2831
- if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2832
- rerenderedParents.add(parent);
2833
- parent.hmrRerender();
2834
- }
2835
- } else instance.hmrReload(newComp);
2836
- }
2908
+ runWithHmrUpdating(() => {
2909
+ for (const instance of instances) {
2910
+ const parent = instance.parent;
2911
+ if (parent) {
2912
+ if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2913
+ rerenderedParents.add(parent);
2914
+ parent.hmrRerender();
2915
+ }
2916
+ } else instance.hmrReload(newComp);
2917
+ }
2918
+ });
2837
2919
  } else {
2838
- const parentUpdates = /* @__PURE__ */ new Map();
2920
+ const parents = /* @__PURE__ */ new Set();
2839
2921
  const dirtyInstanceSet = new Set(instances);
2840
2922
  for (const instance of instances) {
2841
2923
  const oldComp = normalizeClassComponent(instance.type);
@@ -2854,33 +2936,23 @@ function reload(id, newComp) {
2854
2936
  instance.ceReload(newComp.styles);
2855
2937
  dirtyInstances.delete(instance);
2856
2938
  } else if (instance.parent) {
2857
- const parent = instance.parent;
2858
- if (!hasDirtyAncestor(instance, dirtyInstanceSet)) {
2859
- let updates = parentUpdates.get(parent);
2860
- if (!updates) parentUpdates.set(parent, updates = []);
2861
- updates.push([instance, dirtyInstances]);
2862
- }
2939
+ if (!hasDirtyAncestor(instance, dirtyInstanceSet)) parents.add(instance.parent);
2863
2940
  } else if (instance.appContext.reload) instance.appContext.reload();
2864
2941
  else if (typeof window !== "undefined") window.location.reload();
2865
2942
  else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
2866
2943
  if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2867
2944
  }
2868
- parentUpdates.forEach((updates, parent) => {
2945
+ parents.forEach((parent) => {
2869
2946
  queueJob(() => {
2870
- isHmrUpdating = true;
2871
- if (parent.vapor) parent.hmrRerender();
2872
- else {
2873
- const i = parent;
2874
- if (!(i.effect.flags & 1024)) {
2875
- i.renderCache = [];
2876
- i.effect.run();
2947
+ runWithHmrUpdating(() => {
2948
+ if (parent.vapor) parent.hmrRerender();
2949
+ else {
2950
+ const i = parent;
2951
+ if (!(i.effect.flags & 1024)) {
2952
+ i.renderCache = [];
2953
+ i.effect.run();
2954
+ }
2877
2955
  }
2878
- }
2879
- nextTick(() => {
2880
- isHmrUpdating = false;
2881
- });
2882
- updates.forEach(([instance, dirtyInstances]) => {
2883
- dirtyInstances.delete(instance);
2884
2956
  });
2885
2957
  });
2886
2958
  });
@@ -2950,20 +3022,20 @@ function devtoolsInitApp(app, version) {
2950
3022
  function devtoolsUnmountApp(app) {
2951
3023
  emit$2("app:unmount", app);
2952
3024
  }
2953
- const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added");
2954
- const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated");
2955
- const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook("component:removed");
3025
+ const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
3026
+ const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
3027
+ const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
2956
3028
  const devtoolsComponentRemoved = (component) => {
2957
3029
  if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
2958
3030
  };
2959
- /* @__NO_SIDE_EFFECTS__ */
3031
+ /*@__NO_SIDE_EFFECTS__*/
2960
3032
  function createDevtoolsComponentHook(hook) {
2961
3033
  return (component) => {
2962
3034
  emit$2(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
2963
3035
  };
2964
3036
  }
2965
- const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start");
2966
- const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end");
3037
+ const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
3038
+ const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
2967
3039
  function createDevtoolsPerformanceHook(hook) {
2968
3040
  return (component, type, time) => {
2969
3041
  emit$2(hook, component.appContext.app, component.uid, component, type, time);
@@ -3192,7 +3264,7 @@ function configureCompat(config) {
3192
3264
  validateCompatConfig(config);
3193
3265
  extend(globalCompatConfig, config);
3194
3266
  }
3195
- const seenConfigObjects = /* @__PURE__ */ new WeakSet();
3267
+ const seenConfigObjects = /*@__PURE__*/ new WeakSet();
3196
3268
  const warnedInvalidKeys = {};
3197
3269
  function validateCompatConfig(config, instance) {
3198
3270
  if (seenConfigObjects.has(config)) return;
@@ -3244,7 +3316,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
3244
3316
  }
3245
3317
  //#endregion
3246
3318
  //#region packages/runtime-core/src/compat/instanceEventEmitter.ts
3247
- const eventRegistryMap = /* @__PURE__ */ new WeakMap();
3319
+ const eventRegistryMap = /*@__PURE__*/ new WeakMap();
3248
3320
  function getRegistry(instance) {
3249
3321
  let events = eventRegistryMap.get(instance);
3250
3322
  if (!events) eventRegistryMap.set(instance, events = Object.create(null));
@@ -3378,19 +3450,21 @@ const legacyDirectiveHookMap = {
3378
3450
  };
3379
3451
  function mapCompatDirectiveHook(name, dir, instance) {
3380
3452
  const mappedName = legacyDirectiveHookMap[name];
3381
- if (mappedName) if (isArray(mappedName)) {
3382
- const hook = [];
3383
- mappedName.forEach((mapped) => {
3384
- const mappedHook = dir[mapped];
3385
- if (mappedHook) {
3386
- softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
3387
- hook.push(mappedHook);
3388
- }
3389
- });
3390
- return hook.length ? hook : void 0;
3391
- } else {
3392
- if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
3393
- return dir[mappedName];
3453
+ if (mappedName) {
3454
+ if (isArray(mappedName)) {
3455
+ const hook = [];
3456
+ mappedName.forEach((mapped) => {
3457
+ const mappedHook = dir[mapped];
3458
+ if (mappedHook) {
3459
+ softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
3460
+ hook.push(mappedHook);
3461
+ }
3462
+ });
3463
+ return hook.length ? hook : void 0;
3464
+ } else {
3465
+ if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
3466
+ return dir[mappedName];
3467
+ }
3394
3468
  }
3395
3469
  }
3396
3470
  //#endregion
@@ -3575,7 +3649,7 @@ function instanceWatch(source, value, options) {
3575
3649
  }
3576
3650
  const prev = setCurrentInstance(this);
3577
3651
  const res = doWatch(getter, cb.bind(publicThis), options);
3578
- setCurrentInstance(...prev);
3652
+ restoreCurrentInstance(prev);
3579
3653
  return res;
3580
3654
  }
3581
3655
  function createPathGetter(ctx, path) {
@@ -3597,15 +3671,16 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
3597
3671
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
3598
3672
  const resolveTarget = (props, select) => {
3599
3673
  const targetSelector = props && props.to;
3600
- if (isString(targetSelector)) if (!select) {
3601
- warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3602
- return null;
3674
+ if (isString(targetSelector)) {
3675
+ if (!select) {
3676
+ warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3677
+ return null;
3678
+ } else {
3679
+ const target = select(targetSelector);
3680
+ if (!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.`);
3681
+ return target;
3682
+ }
3603
3683
  } else {
3604
- const target = select(targetSelector);
3605
- if (!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.`);
3606
- return target;
3607
- }
3608
- else {
3609
3684
  if (!targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
3610
3685
  return targetSelector;
3611
3686
  }
@@ -3643,7 +3718,8 @@ const TeleportImpl = {
3643
3718
  if (pendingMounts.get(vnode) !== mountJob) return;
3644
3719
  pendingMounts.delete(vnode);
3645
3720
  if (isTeleportDisabled(vnode.props)) {
3646
- mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
3721
+ const mountContainer = parentNode(vnode.el) || container;
3722
+ mount(vnode, mountContainer, vnode.anchor);
3647
3723
  updateCssVars(vnode, true);
3648
3724
  }
3649
3725
  mountToTarget(vnode);
@@ -3752,15 +3828,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3752
3828
  const disabled = isTeleportDisabled(vnode.props);
3753
3829
  if (target) {
3754
3830
  const targetNode = target._lpa || target.firstChild;
3755
- if (vnode.shapeFlag & 16) if (disabled) {
3756
- hydrateDisabledTeleport(node, vnode);
3757
- hydrateAnchor(target, targetNode);
3758
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3759
- } else {
3760
- vnode.anchor = nextSibling(node);
3761
- hydrateAnchor(target, targetNode);
3762
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3763
- hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3831
+ if (vnode.shapeFlag & 16) {
3832
+ if (disabled) {
3833
+ hydrateDisabledTeleport(node, vnode);
3834
+ hydrateAnchor(target, targetNode);
3835
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3836
+ } else {
3837
+ vnode.anchor = nextSibling(node);
3838
+ hydrateAnchor(target, targetNode);
3839
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3840
+ hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3841
+ }
3764
3842
  }
3765
3843
  updateCssVars(vnode, disabled);
3766
3844
  } else if (disabled) {
@@ -3838,59 +3916,27 @@ const BaseTransitionPropsValidators = {
3838
3916
  onAfterAppear: TransitionHookValidator,
3839
3917
  onAppearCancelled: TransitionHookValidator
3840
3918
  };
3841
- const recursiveGetSubtree = (instance) => {
3842
- const subTree = isVaporComponent(instance.type) ? instance.block : instance.subTree;
3843
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
3844
- };
3919
+ function isEmptyTransitionChild(vnode, instance) {
3920
+ if (vnode.type === Comment) return true;
3921
+ if (vnode.type === VaporSlot || isVaporComponent(vnode.type)) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
3922
+ return !!vnode.component && isEmptyTransitionChild(vnode.component.subTree, instance);
3923
+ }
3845
3924
  const BaseTransitionImpl = {
3846
3925
  name: `BaseTransition`,
3847
3926
  props: BaseTransitionPropsValidators,
3848
3927
  setup(props, { slots }) {
3849
3928
  const instance = getCurrentInstance();
3850
3929
  const state = useTransitionState();
3930
+ let resumeAfterLeave;
3851
3931
  return () => {
3852
- const children = slots.default && getTransitionRawChildren(slots.default(), true);
3853
- const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
3932
+ const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
3854
3933
  if (!child) return;
3855
3934
  const rawProps = /* @__PURE__ */ toRaw(props);
3856
3935
  const { mode } = rawProps;
3857
3936
  checkTransitionMode(mode);
3858
- if (state.isLeaving) return emptyPlaceholder(child);
3859
- const innerChild = getInnerChild$1(child);
3860
- if (!innerChild) return emptyPlaceholder(child);
3861
- let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
3862
- if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
3863
- let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3864
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3865
- let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
3866
- setTransitionHooks(oldInnerChild, leavingHooks);
3867
- if (mode === "out-in" && innerChild.type !== Comment) {
3868
- state.isLeaving = true;
3869
- leavingHooks.afterLeave = () => {
3870
- state.isLeaving = false;
3871
- if (!(instance.job.flags & 4)) instance.update();
3872
- delete leavingHooks.afterLeave;
3873
- oldInnerChild = void 0;
3874
- };
3875
- return emptyPlaceholder(child);
3876
- } else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3877
- const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
3878
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3879
- el[leaveCbKey] = () => {
3880
- earlyRemove();
3881
- el[leaveCbKey] = void 0;
3882
- delete enterHooks.delayedLeave;
3883
- oldInnerChild = void 0;
3884
- };
3885
- enterHooks.delayedLeave = () => {
3886
- delayedLeave();
3887
- delete enterHooks.delayedLeave;
3888
- oldInnerChild = void 0;
3889
- };
3890
- };
3891
- else oldInnerChild = void 0;
3892
- } else if (oldInnerChild) oldInnerChild = void 0;
3893
- return child;
3937
+ return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3938
+ if (!(instance.job.flags & 4)) instance.update();
3939
+ }) : NOOP);
3894
3940
  };
3895
3941
  }
3896
3942
  };
@@ -3923,7 +3969,7 @@ function getLeavingNodesForType(state, vnode) {
3923
3969
  function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3924
3970
  const key = String(vnode.key);
3925
3971
  const leavingVNodesCache = getLeavingNodesForType(state, vnode);
3926
- return baseResolveTransitionHooks({
3972
+ const hooks = baseResolveTransitionHooks({
3927
3973
  isLeaving: () => leavingVNodesCache[key] === vnode,
3928
3974
  setLeavingNodeCache: () => {
3929
3975
  leavingVNodesCache[key] = vnode;
@@ -3941,6 +3987,13 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3941
3987
  return hooks;
3942
3988
  }
3943
3989
  }, props, state, instance);
3990
+ if (vnode.type === VaporSlot) extend(hooks, {
3991
+ __vapor: true,
3992
+ props,
3993
+ state,
3994
+ instance
3995
+ });
3996
+ return hooks;
3944
3997
  }
3945
3998
  function baseResolveTransitionHooks(context, props, state, instance) {
3946
3999
  const { isLeaving, setLeavingNodeCache, unsetLeavingNodeCache, earlyRemove, cloneHooks } = context;
@@ -3960,8 +4013,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3960
4013
  persisted,
3961
4014
  beforeEnter(el) {
3962
4015
  let hook = onBeforeEnter;
3963
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3964
- else return;
4016
+ if (!state.isMounted) {
4017
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
4018
+ else return;
4019
+ }
3965
4020
  if (el[leaveCbKey]) el[leaveCbKey](true);
3966
4021
  earlyRemove();
3967
4022
  callHook(hook, [el]);
@@ -3971,11 +4026,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3971
4026
  let hook = onEnter;
3972
4027
  let afterHook = onAfterEnter;
3973
4028
  let cancelHook = onEnterCancelled;
3974
- if (!state.isMounted) if (appear) {
3975
- hook = onAppear || onEnter;
3976
- afterHook = onAfterAppear || onAfterEnter;
3977
- cancelHook = onAppearCancelled || onEnterCancelled;
3978
- } else return;
4029
+ if (!state.isMounted) {
4030
+ if (appear) {
4031
+ hook = onAppear || onEnter;
4032
+ afterHook = onAfterAppear || onAfterEnter;
4033
+ cancelHook = onAppearCancelled || onEnterCancelled;
4034
+ } else return;
4035
+ }
3979
4036
  let called = false;
3980
4037
  el[enterCbKey$1] = (cancelled) => {
3981
4038
  if (called) return;
@@ -4009,7 +4066,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
4009
4066
  else done();
4010
4067
  },
4011
4068
  clone(node) {
4012
- return cloneHooks(node);
4069
+ return cloneHooks ? cloneHooks(node) : hooks;
4013
4070
  }
4014
4071
  };
4015
4072
  return hooks;
@@ -4033,16 +4090,91 @@ function getInnerChild$1(vnode) {
4033
4090
  if (shapeFlag & 32 && isFunction(children.default)) return children.default();
4034
4091
  }
4035
4092
  }
4093
+ function resolveTransitionChild(children, renderEmpty = false) {
4094
+ const branches = children && getTransitionRawChildren(children, true);
4095
+ return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
4096
+ }
4097
+ /**
4098
+ * @internal
4099
+ */
4100
+ function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
4101
+ if (state.isLeaving) return emptyPlaceholder(next);
4102
+ const nextInner = getInnerChild$1(next);
4103
+ if (!nextInner) return emptyPlaceholder(next);
4104
+ let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
4105
+ if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
4106
+ enterHooks = hooks;
4107
+ });
4108
+ if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
4109
+ if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
4110
+ const mode = props.mode;
4111
+ const previousInner = previous && getInnerChild$1(previous);
4112
+ if (previous && previousInner && !isSameVNodeType(previousInner, nextInner) && !isEmptyTransitionChild(previousInner, instance)) {
4113
+ const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
4114
+ 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);
4115
+ }
4116
+ return next;
4117
+ }
4118
+ function forwardDelayedLeave(hooks, source) {
4119
+ const delayedLeave = source && source.delayedLeave;
4120
+ if (!delayedLeave) return;
4121
+ hooks.delayedLeave = () => {
4122
+ if (source.delayedLeave === delayedLeave) delayedLeave();
4123
+ delete hooks.delayedLeave;
4124
+ };
4125
+ }
4126
+ function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
4127
+ return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
4128
+ }
4129
+ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
4130
+ if (props.mode === "out-in") {
4131
+ state.isLeaving = true;
4132
+ leavingHooks.afterLeave = () => {
4133
+ state.isLeaving = false;
4134
+ resumeAfterLeave();
4135
+ delete leavingHooks.afterLeave;
4136
+ };
4137
+ return true;
4138
+ } else if (props.mode === "in-out" && getEnterHooks) {
4139
+ let delayedLeavingVNode = leavingVNode;
4140
+ leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
4141
+ const enterHooks = getEnterHooks();
4142
+ if (!enterHooks) {
4143
+ delayedLeave();
4144
+ return;
4145
+ }
4146
+ const vnode = delayedLeavingVNode;
4147
+ const leavingVNodesCache = getLeavingNodesForType(state, vnode);
4148
+ leavingVNodesCache[String(vnode.key)] = vnode;
4149
+ el[leaveCbKey] = () => {
4150
+ earlyRemove();
4151
+ el[leaveCbKey] = void 0;
4152
+ delete enterHooks.delayedLeave;
4153
+ delayedLeavingVNode = void 0;
4154
+ };
4155
+ enterHooks.delayedLeave = () => {
4156
+ delayedLeave();
4157
+ delete enterHooks.delayedLeave;
4158
+ delayedLeavingVNode = void 0;
4159
+ };
4160
+ };
4161
+ }
4162
+ return false;
4163
+ }
4036
4164
  function setTransitionHooks(vnode, hooks) {
4037
- if (vnode.shapeFlag & 6 && vnode.component) if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4038
- else {
4165
+ if (vnode.shapeFlag & 6 && vnode.component) {
4039
4166
  vnode.transition = hooks;
4040
- setTransitionHooks(vnode.component.subTree, hooks);
4041
- }
4042
- else if (vnode.shapeFlag & 128) {
4043
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4044
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4167
+ if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4168
+ else {
4169
+ const subTree = vnode.component.subTree;
4170
+ return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
4171
+ }
4172
+ } else if (vnode.shapeFlag & 128) {
4173
+ const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4174
+ const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4175
+ return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
4045
4176
  } else vnode.transition = hooks;
4177
+ return hooks;
4046
4178
  }
4047
4179
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
4048
4180
  let ret = [];
@@ -4066,9 +4198,9 @@ function checkTransitionMode(mode) {
4066
4198
  }
4067
4199
  //#endregion
4068
4200
  //#region packages/runtime-core/src/apiDefineComponent.ts
4069
- /* @__NO_SIDE_EFFECTS__ */
4201
+ /*@__NO_SIDE_EFFECTS__*/
4070
4202
  function defineComponent(options, extraOptions) {
4071
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
4203
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
4072
4204
  }
4073
4205
  //#endregion
4074
4206
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -4165,15 +4297,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4165
4297
  if (rawRef.f) {
4166
4298
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
4167
4299
  if (isUnmount) isArray(existing) && remove(existing, refValue);
4168
- else if (!isArray(existing)) if (_isString) {
4169
- refs[ref] = [refValue];
4170
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4171
- } else {
4172
- const newVal = [refValue];
4173
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4174
- if (rawRef.k) refs[rawRef.k] = newVal;
4175
- }
4176
- else if (!existing.includes(refValue)) existing.push(refValue);
4300
+ else if (!isArray(existing)) {
4301
+ if (_isString) {
4302
+ refs[ref] = [refValue];
4303
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4304
+ } else {
4305
+ const newVal = [refValue];
4306
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4307
+ if (rawRef.k) refs[rawRef.k] = newVal;
4308
+ }
4309
+ } else if (!existing.includes(refValue)) existing.push(refValue);
4177
4310
  } else if (_isString) {
4178
4311
  refs[ref] = value;
4179
4312
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -4225,7 +4358,18 @@ const logMismatchError = () => {
4225
4358
  hasLoggedMismatchError = true;
4226
4359
  };
4227
4360
  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
4228
- const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
4361
+ const isMathMLContainer = (container) => {
4362
+ if (!container.namespaceURI.includes("MathML")) return false;
4363
+ if (container.tagName !== "annotation-xml") return true;
4364
+ const encoding = container.getAttribute("encoding");
4365
+ return !encoding || !encoding.includes("html");
4366
+ };
4367
+ /**
4368
+ * Resolve the element namespace a container's children should be created in.
4369
+ * The live DOM is the source of truth, so this also covers containers that are
4370
+ * only known at runtime (interop boundaries, teleport targets).
4371
+ * @internal
4372
+ */
4229
4373
  const getContainerType = (container) => {
4230
4374
  if (container.nodeType !== 1) return void 0;
4231
4375
  if (isSVGContainer(container)) return "svg";
@@ -4249,7 +4393,7 @@ function createHydrationFunctions(rendererInternals) {
4249
4393
  };
4250
4394
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
4251
4395
  optimized = optimized || !!vnode.dynamicChildren;
4252
- const isFragmentStart = isComment(node) && node.data === "[";
4396
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
4253
4397
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
4254
4398
  const { type, ref, shapeFlag, patchFlag } = vnode;
4255
4399
  let domType = node.nodeType;
@@ -4263,11 +4407,12 @@ function createHydrationFunctions(rendererInternals) {
4263
4407
  let nextNode = null;
4264
4408
  switch (type) {
4265
4409
  case Text:
4266
- if (domType !== 3) if (vnode.children === "") {
4267
- insert(vnode.el = createText(""), parentNode(node), node);
4268
- nextNode = node;
4269
- } else nextNode = onMismatch();
4270
- else {
4410
+ if (domType !== 3) {
4411
+ if (vnode.children === "") {
4412
+ insert(vnode.el = createText(""), parentNode(node), node);
4413
+ nextNode = node;
4414
+ } else nextNode = onMismatch();
4415
+ } else {
4271
4416
  if (node.data !== vnode.children) {
4272
4417
  warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
4273
4418
  logMismatchError();
@@ -4304,45 +4449,35 @@ function createHydrationFunctions(rendererInternals) {
4304
4449
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4305
4450
  break;
4306
4451
  case VaporSlot:
4307
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
4452
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
4308
4453
  break;
4309
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
4310
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4311
- else if (shapeFlag & 6) {
4454
+ default: if (shapeFlag & 1) {
4455
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
4456
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4457
+ } else if (shapeFlag & 6) {
4312
4458
  vnode.slotScopeIds = slotScopeIds;
4313
4459
  const container = parentNode(node);
4314
4460
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
4315
4461
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
4316
4462
  else nextNode = nextSibling(node);
4317
- if (vnode.type.__vapor) {
4318
- const vnodeBeforeMountHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeBeforeMount;
4319
- getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
4320
- if (vnode.dirs) {
4321
- invokeDirectiveHook(vnode, null, parentComponent, "created");
4322
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4323
- }
4324
- }, () => {
4325
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
4326
- });
4327
- if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
4328
- const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
4329
- if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
4330
- } else {
4463
+ if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
4464
+ else {
4331
4465
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
4332
4466
  const component = vnode.component;
4333
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
4467
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
4334
4468
  let subTree;
4335
4469
  if (isFragmentStart) {
4336
- subTree = createVNode(Fragment);
4470
+ subTree = createVNode(Static);
4337
4471
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4338
- } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4472
+ } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
4339
4473
  subTree.el = node;
4340
4474
  component.subTree = subTree;
4341
4475
  }
4342
4476
  }
4343
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
4344
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
4345
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
4477
+ } else if (shapeFlag & 64) {
4478
+ if (domType !== 8) nextNode = onMismatch();
4479
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
4480
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
4346
4481
  else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
4347
4482
  }
4348
4483
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
@@ -4394,7 +4529,10 @@ function createHydrationFunctions(rendererInternals) {
4394
4529
  const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
4395
4530
  for (const key in props) {
4396
4531
  if (!(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
4397
- 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);
4532
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
4533
+ if (isUnchangedResourceProp(el, key, props[key])) continue;
4534
+ patchProp(el, key, null, props[key], namespace, parentComponent);
4535
+ }
4398
4536
  }
4399
4537
  }
4400
4538
  let vnodeHooks;
@@ -4442,8 +4580,9 @@ function createHydrationFunctions(rendererInternals) {
4442
4580
  const { slotScopeIds: fragmentSlotScopeIds } = vnode;
4443
4581
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
4444
4582
  const container = parentNode(node);
4445
- const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4446
- if (next && isComment(next) && next.data === "]") return nextSibling(vnode.anchor = next);
4583
+ const first = nextSibling(node);
4584
+ const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4585
+ if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
4447
4586
  else {
4448
4587
  logMismatchError();
4449
4588
  insert(vnode.anchor = createComment(`]`), container, next);
@@ -4452,7 +4591,7 @@ function createHydrationFunctions(rendererInternals) {
4452
4591
  };
4453
4592
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
4454
4593
  if (!isNodeMismatchAllowed(node, vnode)) {
4455
- 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);
4594
+ 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);
4456
4595
  logMismatchError();
4457
4596
  }
4458
4597
  vnode.el = null;
@@ -4468,20 +4607,22 @@ function createHydrationFunctions(rendererInternals) {
4468
4607
  const container = parentNode(node);
4469
4608
  remove(node);
4470
4609
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4471
- if (parentComponent) {
4610
+ if (parentComponent && parentComponent.vnode) {
4472
4611
  parentComponent.vnode.el = vnode.el;
4473
4612
  updateHOCHostEl(parentComponent, vnode.el);
4474
4613
  }
4475
4614
  return next;
4476
4615
  };
4477
- const locateClosingAnchor = (node, open = "[", close = "]") => {
4616
+ const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
4478
4617
  let match = 0;
4479
4618
  while (node) {
4480
4619
  node = nextSibling(node);
4481
4620
  if (node && isComment(node)) {
4482
4621
  if (node.data === open) match++;
4483
- if (node.data === close) if (match === 0) return nextSibling(node);
4484
- else match--;
4622
+ if (node.data === close) {
4623
+ if (match === 0) return nextSibling(node);
4624
+ else match--;
4625
+ }
4485
4626
  }
4486
4627
  }
4487
4628
  return node;
@@ -4491,7 +4632,7 @@ function createHydrationFunctions(rendererInternals) {
4491
4632
  if (parentNode) parentNode.replaceChild(newNode, oldNode);
4492
4633
  let parent = parentComponent;
4493
4634
  while (parent) {
4494
- if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4635
+ if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4495
4636
  parent = parent.parent;
4496
4637
  }
4497
4638
  };
@@ -4500,6 +4641,16 @@ function createHydrationFunctions(rendererInternals) {
4500
4641
  const isTemplateNode$1 = (node) => {
4501
4642
  return node.nodeType === 1 && node.tagName === "TEMPLATE";
4502
4643
  };
4644
+ const resourceProps = /*@__PURE__*/ new Set([
4645
+ "src",
4646
+ "srcset",
4647
+ "href",
4648
+ "poster"
4649
+ ]);
4650
+ function isUnchangedResourceProp(el, key, clientValue) {
4651
+ if (!resourceProps.has(key)) return false;
4652
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
4653
+ }
4503
4654
  /**
4504
4655
  * Dev only
4505
4656
  */
@@ -4543,7 +4694,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
4543
4694
  function getAttributeMismatch(el, key, clientValue) {
4544
4695
  let actual;
4545
4696
  let expected;
4546
- if (isBooleanAttr(key)) {
4697
+ if (key === "hidden") {
4698
+ actual = normalizeHiddenValue(el.getAttribute(key));
4699
+ expected = normalizeHiddenValue(clientValue);
4700
+ } else if (isBooleanAttr(key)) {
4547
4701
  actual = el.hasAttribute(key);
4548
4702
  expected = includeBooleanAttr(clientValue);
4549
4703
  } else if (clientValue == null) {
@@ -4571,6 +4725,11 @@ function warnPropMismatch(el, mismatchKey, mismatchType, actual, expected) {
4571
4725
  }
4572
4726
  return false;
4573
4727
  }
4728
+ function normalizeHiddenValue(value) {
4729
+ if (!isRenderableAttrValue(value)) return false;
4730
+ if (isString(value)) return value.toLowerCase() === "until-found" ? "until-found" : "";
4731
+ return includeBooleanAttr(value) ? "" : false;
4732
+ }
4574
4733
  function toClassSet(str) {
4575
4734
  return new Set(str.trim().split(/\s+/));
4576
4735
  }
@@ -4709,16 +4868,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
4709
4868
  return teardown;
4710
4869
  };
4711
4870
  function forEachElement(node, cb) {
4712
- if (isComment(node) && node.data === "[") {
4871
+ if (isComment(node) && (node.data === "[" || node.data === "(")) {
4872
+ const open = node.data;
4873
+ const close = open === "[" ? "]" : ")";
4713
4874
  let depth = 1;
4714
4875
  let next = node.nextSibling;
4715
4876
  while (next) {
4716
4877
  if (next.nodeType === 1) {
4717
4878
  if (cb(next) === false) break;
4718
4879
  } else if (isComment(next)) {
4719
- if (next.data === "]") {
4880
+ if (next.data === close) {
4720
4881
  if (--depth === 0) break;
4721
- } else if (next.data === "[") depth++;
4882
+ } else if (next.data === open) depth++;
4722
4883
  }
4723
4884
  next = next.nextSibling;
4724
4885
  }
@@ -4727,14 +4888,14 @@ function forEachElement(node, cb) {
4727
4888
  //#endregion
4728
4889
  //#region packages/runtime-core/src/apiAsyncComponent.ts
4729
4890
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4730
- /* @__NO_SIDE_EFFECTS__ */
4891
+ /*@__NO_SIDE_EFFECTS__*/
4731
4892
  function defineAsyncComponent(source) {
4732
4893
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
4733
4894
  return /* @__PURE__ */ defineComponent({
4734
4895
  name: "AsyncComponentWrapper",
4735
4896
  __asyncLoader: load,
4736
4897
  __asyncHydrate(el, instance, hydrate) {
4737
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
4898
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
4738
4899
  },
4739
4900
  get __asyncResolved() {
4740
4901
  return getResolvedComp();
@@ -4853,10 +5014,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
4853
5014
  * shared between core and vapor
4854
5015
  * @internal
4855
5016
  */
4856
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
5017
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4857
5018
  const wasConnected = el.isConnected;
4858
5019
  let patched = false;
4859
- (instance.bu || (instance.bu = [])).push(() => patched = true);
5020
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
4860
5021
  const performHydrate = () => {
4861
5022
  if (patched) {
4862
5023
  {
@@ -4946,10 +5107,13 @@ const KeepAliveImpl = {
4946
5107
  });
4947
5108
  let pendingCacheKey = null;
4948
5109
  const cacheSubtree = () => {
4949
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4950
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4951
- }, void 0, keepAliveInstance.subTree.suspense);
4952
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5110
+ if (pendingCacheKey != null) {
5111
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
5112
+ const vnode = getInnerChild(keepAliveInstance.subTree);
5113
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
5114
+ }, void 0, keepAliveInstance.subTree.suspense);
5115
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5116
+ }
4953
5117
  };
4954
5118
  onMounted(cacheSubtree);
4955
5119
  onUpdated(cacheSubtree);
@@ -5020,7 +5184,7 @@ const decorate$2 = (t) => {
5020
5184
  t.__isBuiltIn = true;
5021
5185
  return t;
5022
5186
  };
5023
- const KeepAlive = /* @__PURE__ */ decorate$2(KeepAliveImpl);
5187
+ const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
5024
5188
  function matches(pattern, name) {
5025
5189
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
5026
5190
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -5111,7 +5275,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
5111
5275
  try {
5112
5276
  return callWithAsyncErrorHandling(hook, target, type, args);
5113
5277
  } finally {
5114
- setCurrentInstance(...prev);
5278
+ restoreCurrentInstance(prev);
5115
5279
  setActiveSub(prevSub);
5116
5280
  }
5117
5281
  });
@@ -5236,16 +5400,17 @@ function compatH(type, propsOrChildren, children) {
5236
5400
  }
5237
5401
  const l = arguments.length;
5238
5402
  const is2ndArgArrayChildren = isArray(propsOrChildren);
5239
- if (l === 2 || is2ndArgArrayChildren) if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
5240
- if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
5241
- return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
5242
- } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
5243
- else {
5403
+ if (l === 2 || is2ndArgArrayChildren) {
5404
+ if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
5405
+ if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
5406
+ return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
5407
+ } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
5408
+ } else {
5244
5409
  if (isVNode(children)) children = [children];
5245
5410
  return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
5246
5411
  }
5247
5412
  }
5248
- const skipLegacyRootLevelProps = /* @__PURE__ */ makeMap("staticStyle,staticClass,directives,model,hook");
5413
+ const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
5249
5414
  function convertLegacyProps(legacyProps, type) {
5250
5415
  if (!legacyProps) return null;
5251
5416
  const converted = {};
@@ -5257,8 +5422,10 @@ function convertLegacyProps(legacyProps, type) {
5257
5422
  if (key === "nativeOn") handlerKey += `Native`;
5258
5423
  const existing = converted[handlerKey];
5259
5424
  const incoming = listeners[event];
5260
- if (existing !== incoming) if (existing) converted[handlerKey] = [].concat(existing, incoming);
5261
- else converted[handlerKey] = incoming;
5425
+ if (existing !== incoming) {
5426
+ if (existing) converted[handlerKey] = [].concat(existing, incoming);
5427
+ else converted[handlerKey] = incoming;
5428
+ }
5262
5429
  }
5263
5430
  } else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
5264
5431
  if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
@@ -5357,7 +5524,7 @@ function convertLegacyFunctionalComponent(comp) {
5357
5524
  const legacyFn = comp.render;
5358
5525
  const Func = (props, ctx) => {
5359
5526
  const instance = getCurrentInstance();
5360
- return legacyFn(compatH, {
5527
+ const legacyCtx = {
5361
5528
  props,
5362
5529
  children: instance.vnode.children || [],
5363
5530
  data: instance.vnode.props || {},
@@ -5377,7 +5544,8 @@ function convertLegacyFunctionalComponent(comp) {
5377
5544
  }
5378
5545
  return {};
5379
5546
  }
5380
- });
5547
+ };
5548
+ return legacyFn(compatH, legacyCtx);
5381
5549
  };
5382
5550
  Func.props = comp.props;
5383
5551
  Func.displayName = comp.name;
@@ -5406,23 +5574,25 @@ function renderList(source, renderItem, cache, index) {
5406
5574
  }
5407
5575
  ret = new Array(source.length);
5408
5576
  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]);
5409
- } else if (typeof source === "number") if (!Number.isInteger(source) || source < 0) {
5410
- warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5411
- ret = [];
5412
- } else {
5413
- ret = new Array(source);
5414
- for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
5415
- }
5416
- else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
5417
- else {
5418
- const keys = Object.keys(source);
5419
- ret = new Array(keys.length);
5420
- for (let i = 0, l = keys.length; i < l; i++) {
5421
- const key = keys[i];
5422
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
5577
+ } else if (typeof source === "number") {
5578
+ if (!Number.isInteger(source) || source < 0) {
5579
+ warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5580
+ ret = [];
5581
+ } else {
5582
+ ret = new Array(source);
5583
+ for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
5423
5584
  }
5424
- }
5425
- else ret = [];
5585
+ } else if (isObject(source)) {
5586
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
5587
+ else {
5588
+ const keys = Object.keys(source);
5589
+ ret = new Array(keys.length);
5590
+ for (let i = 0, l = keys.length; i < l; i++) {
5591
+ const key = keys[i];
5592
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
5593
+ }
5594
+ }
5595
+ } else ret = [];
5426
5596
  if (cache) cache[index] = ret;
5427
5597
  return ret;
5428
5598
  }
@@ -5447,18 +5617,45 @@ function createSlots(slots, dynamicSlots) {
5447
5617
  //#endregion
5448
5618
  //#region packages/runtime-core/src/helpers/renderSlot.ts
5449
5619
  /**
5620
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
5621
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
5622
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
5623
+ * "which one". Internal to vapor interop.
5624
+ */
5625
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
5626
+ /**
5627
+ * Invokes a VDOM slot fallback under the outlet owner that produced it, the
5628
+ * way `renderSlot` would have rendered it inline. Vapor interop invokes
5629
+ * fallbacks late, outside any render, so it passes the owner recorded on the
5630
+ * vapor slot vnode. Internal to vapor interop.
5631
+ */
5632
+ function invokeSlotFallback(fallback, owner) {
5633
+ if (!owner) return fallback();
5634
+ const prev = setCurrentRenderingInstance(owner);
5635
+ const prevStackSize = blockStack.length;
5636
+ try {
5637
+ return fallback();
5638
+ } finally {
5639
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5640
+ setCurrentRenderingInstance(prev);
5641
+ }
5642
+ }
5643
+ /**
5450
5644
  * Compiler runtime helper for rendering `<slot/>`
5451
5645
  * @private
5452
5646
  */
5453
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5647
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5648
+ if (props == null) props = {};
5454
5649
  let slot = slots[name];
5455
- if (fallback) fallback.__vdom = true;
5456
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
5650
+ const vaporSlot = slot && slot[rawVaporSlotKey];
5457
5651
  if (vaporSlot) {
5458
5652
  const ret = (openBlock(), createBlock(VaporSlot, props));
5459
5653
  ret.vs = {
5460
5654
  slot: vaporSlot,
5461
- fallback
5655
+ outlets: fallback ? [{
5656
+ fallback,
5657
+ owner: currentRenderingInstance
5658
+ }] : void 0
5462
5659
  };
5463
5660
  if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
5464
5661
  return ret;
@@ -5479,9 +5676,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5479
5676
  let rendered;
5480
5677
  try {
5481
5678
  const validSlotContent = slot && ensureValidVNode(slot(props));
5482
- ensureVaporSlotFallback(validSlotContent, fallback);
5679
+ let attached = false;
5680
+ if (fallback && validSlotContent && currentRenderingInstance) {
5681
+ const interop = currentRenderingInstance.appContext.vapor;
5682
+ if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
5683
+ }
5483
5684
  const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
5484
5685
  rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
5686
+ if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
5687
+ if (attached) rendered.vo = true;
5485
5688
  } catch (err) {
5486
5689
  for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5487
5690
  throw err;
@@ -5499,10 +5702,6 @@ function ensureValidVNode(vnodes) {
5499
5702
  return true;
5500
5703
  }) ? vnodes : null;
5501
5704
  }
5502
- function ensureVaporSlotFallback(vnodes, fallback) {
5503
- let vaporSlot;
5504
- if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
5505
- }
5506
5705
  //#endregion
5507
5706
  //#region packages/runtime-core/src/helpers/toHandlers.ts
5508
5707
  /**
@@ -5561,12 +5760,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
5561
5760
  function mapKeyToName(slots) {
5562
5761
  for (let i = 0; i < slots.length; i++) {
5563
5762
  const fn = slots[i];
5564
- if (fn) if (isArray(fn)) mapKeyToName(fn);
5565
- else fn.name = fn.key || "default";
5763
+ if (fn) {
5764
+ if (isArray(fn)) mapKeyToName(fn);
5765
+ else fn.name = fn.key || "default";
5766
+ }
5566
5767
  }
5567
5768
  return slots;
5568
5769
  }
5569
- const staticCacheMap = /* @__PURE__ */ new WeakMap();
5770
+ const staticCacheMap = /*@__PURE__*/ new WeakMap();
5570
5771
  function legacyRenderStatic(instance, index) {
5571
5772
  let cache = staticCacheMap.get(instance);
5572
5773
  if (!cache) staticCacheMap.set(instance, cache = []);
@@ -5699,11 +5900,38 @@ const getPublicInstance = (i) => {
5699
5900
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
5700
5901
  return getPublicInstance(i.parent);
5701
5902
  };
5903
+ const resolveDevRootEl = (vnode) => {
5904
+ let found = false;
5905
+ while (true) {
5906
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
5907
+ const root = filterSingleRoot(vnode.children);
5908
+ if (!root) return;
5909
+ vnode = root;
5910
+ found = true;
5911
+ continue;
5912
+ }
5913
+ const component = vnode.component;
5914
+ if (component && component.subTree) {
5915
+ vnode = component.subTree;
5916
+ continue;
5917
+ }
5918
+ const suspense = vnode.suspense;
5919
+ if (suspense && suspense.activeBranch) {
5920
+ vnode = suspense.activeBranch;
5921
+ continue;
5922
+ }
5923
+ return found ? vnode.el : void 0;
5924
+ }
5925
+ };
5926
+ const getDevRootFragmentEl = (i) => {
5927
+ const el = i.subTree && resolveDevRootEl(i.subTree);
5928
+ return el === void 0 ? i.vnode.el : el;
5929
+ };
5702
5930
  let publicPropertiesMap;
5703
5931
  const getPublicPropertiesMap = () => {
5704
5932
  if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
5705
5933
  $: (i) => i,
5706
- $el: (i) => i.vnode.el,
5934
+ $el: (i) => getDevRootFragmentEl(i),
5707
5935
  $data: (i) => i.data,
5708
5936
  $props: (i) => /* @__PURE__ */ shallowReadonly(i.props),
5709
5937
  $attrs: (i) => /* @__PURE__ */ shallowReadonly(i.attrs),
@@ -5816,7 +6044,7 @@ PublicInstanceProxyHandlers.ownKeys = (target) => {
5816
6044
  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.");
5817
6045
  return Reflect.ownKeys(target);
5818
6046
  };
5819
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
6047
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
5820
6048
  get(target, key) {
5821
6049
  if (key === Symbol.unscopables) return;
5822
6050
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -6001,12 +6229,13 @@ function mergeDefaults(raw, defaults) {
6001
6229
  for (const key in defaults) {
6002
6230
  if (key.startsWith("__skip")) continue;
6003
6231
  let opt = props[key];
6004
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
6005
- type: opt,
6006
- default: defaults[key]
6007
- };
6008
- else opt.default = defaults[key];
6009
- else if (opt === null) opt = props[key] = { default: defaults[key] };
6232
+ if (opt) {
6233
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
6234
+ type: opt,
6235
+ default: defaults[key]
6236
+ };
6237
+ else opt.default = defaults[key];
6238
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
6010
6239
  else warn$1(`props default key "${key}" has no corresponding declaration.`);
6011
6240
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
6012
6241
  }
@@ -6056,37 +6285,32 @@ function createPropsRestProxy(props, excludedKeys) {
6056
6285
  function withAsyncContext(getAwaitable) {
6057
6286
  const ctx = getCurrentGenericInstance();
6058
6287
  const inSSRSetup = isInSSRComponentSetup;
6059
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
6060
6288
  if (!ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
6061
6289
  let awaitable = getAwaitable();
6062
6290
  setCurrentInstance(null, void 0);
6063
6291
  if (inSSRSetup) setInSSRSetupState(false);
6064
6292
  const restore = () => {
6065
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6293
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6066
6294
  setCurrentInstance(ctx);
6067
6295
  if (inSSRSetup) setInSSRSetupState(true);
6068
- const reset = restoreAsyncContext && restoreAsyncContext();
6069
- return () => {
6070
- if (reset) reset();
6071
- if (resetStoppedScope) resetStoppedScope.reset();
6072
- };
6296
+ return stoppedScope;
6073
6297
  };
6074
6298
  const cleanup = () => {
6075
6299
  setCurrentInstance(null, void 0);
6076
6300
  if (inSSRSetup) setInSSRSetupState(false);
6077
6301
  };
6078
6302
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
6079
- const reset = restore();
6303
+ const stoppedScope = restore();
6080
6304
  Promise.resolve().then(() => Promise.resolve().then(() => {
6081
- if (reset) reset();
6305
+ if (stoppedScope) stoppedScope.reset();
6082
6306
  cleanup();
6083
6307
  }));
6084
6308
  throw e;
6085
6309
  });
6086
6310
  return [awaitable, () => {
6087
- const reset = restore();
6311
+ const stoppedScope = restore();
6088
6312
  Promise.resolve().then(() => {
6089
- if (reset) reset();
6313
+ if (stoppedScope) stoppedScope.reset();
6090
6314
  cleanup();
6091
6315
  });
6092
6316
  }];
@@ -6149,11 +6373,12 @@ function applyOptions(instance) {
6149
6373
  const opt = computedOptions[key];
6150
6374
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
6151
6375
  if (get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
6376
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
6377
+ warn$1(`Write operation failed: computed property "${key}" is readonly.`);
6378
+ };
6152
6379
  const c = computed({
6153
6380
  get,
6154
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
6155
- warn$1(`Write operation failed: computed property "${key}" is readonly.`);
6156
- }
6381
+ set
6157
6382
  });
6158
6383
  Object.defineProperty(ctx, key, {
6159
6384
  enumerable: true,
@@ -6213,9 +6438,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
6213
6438
  for (const key in injectOptions) {
6214
6439
  const opt = injectOptions[key];
6215
6440
  let injected;
6216
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
6217
- else injected = inject(opt.from || key);
6218
- else injected = inject(opt);
6441
+ if (isObject(opt)) {
6442
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
6443
+ else injected = inject(opt.from || key);
6444
+ } else injected = inject(opt);
6219
6445
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
6220
6446
  enumerable: true,
6221
6447
  configurable: true,
@@ -6235,7 +6461,8 @@ function createWatcher(raw, ctx, publicThis, key) {
6235
6461
  {
6236
6462
  const cur = getCurrentInstance();
6237
6463
  const instance = cur && getCurrentScope() === cur.scope ? cur : null;
6238
- if (isArray(getter()) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
6464
+ const newValue = getter();
6465
+ if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
6239
6466
  const baseGetter = getter;
6240
6467
  getter = () => {
6241
6468
  const val = baseGetter();
@@ -6248,13 +6475,14 @@ function createWatcher(raw, ctx, publicThis, key) {
6248
6475
  if (isFunction(handler)) watch(getter, handler, options);
6249
6476
  else warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
6250
6477
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
6251
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
6252
- else {
6253
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
6254
- if (isFunction(handler)) watch(getter, handler, extend(raw, options));
6255
- else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6256
- }
6257
- else warn$1(`Invalid watch option: "${key}"`, raw);
6478
+ else if (isObject(raw)) {
6479
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
6480
+ else {
6481
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
6482
+ if (isFunction(handler)) watch(getter, handler, extend(raw, options));
6483
+ else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6484
+ }
6485
+ } else warn$1(`Invalid watch option: "${key}"`, raw);
6258
6486
  }
6259
6487
  /**
6260
6488
  * Resolve merged options and cache it on the component.
@@ -6268,12 +6496,13 @@ function resolveMergedOptions(instance) {
6268
6496
  const cached = cache.get(base);
6269
6497
  let resolved;
6270
6498
  if (cached) resolved = cached;
6271
- else if (!globalMixins.length && !mixins && !extendsOptions) if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
6272
- resolved = extend({}, base);
6273
- resolved.parent = instance.parent && instance.parent.proxy;
6274
- resolved.propsData = instance.vnode.props;
6275
- } else resolved = base;
6276
- else {
6499
+ else if (!globalMixins.length && !mixins && !extendsOptions) {
6500
+ if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
6501
+ resolved = extend({}, base);
6502
+ resolved.parent = instance.parent && instance.parent.proxy;
6503
+ resolved.propsData = instance.vnode.props;
6504
+ } else resolved = base;
6505
+ } else {
6277
6506
  resolved = {};
6278
6507
  if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
6279
6508
  mergeOptions(resolved, base, optionMergeStrategies);
@@ -6346,7 +6575,7 @@ function mergeObjectOptions(to, from) {
6346
6575
  }
6347
6576
  function mergeEmitsOrPropsOptions(to, from) {
6348
6577
  if (to) {
6349
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
6578
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
6350
6579
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
6351
6580
  } else return from;
6352
6581
  }
@@ -6407,7 +6636,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6407
6636
  if (options.el) return vm.$mount(options.el);
6408
6637
  else return vm;
6409
6638
  }
6410
- Vue.version = `2.6.14-compat:3.6.0-rc.1`;
6639
+ Vue.version = `2.6.14-compat:3.6.0-rc.11`;
6411
6640
  Vue.config = singletonApp.config;
6412
6641
  Vue.use = (plugin, ...options) => {
6413
6642
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -6797,8 +7026,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
6797
7026
  } else warn$1(`Cannot unmount an app that is not mounted.`);
6798
7027
  },
6799
7028
  provide(key, value) {
6800
- if (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.`);
6801
- else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
7029
+ if (key in context.provides) {
7030
+ if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
7031
+ else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
7032
+ }
6802
7033
  context.provides[key] = value;
6803
7034
  return app;
6804
7035
  },
@@ -6880,13 +7111,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
6880
7111
  const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
6881
7112
  const res = customRef((track, trigger) => {
6882
7113
  let localValue;
7114
+ let prevPropValue = EMPTY_OBJ;
6883
7115
  let prevSetValue = EMPTY_OBJ;
6884
7116
  let prevEmittedValue;
6885
7117
  watchSyncEffect(() => {
6886
7118
  const propValue = props[camelizedName];
6887
- if (hasChanged(localValue, propValue)) {
6888
- localValue = propValue;
6889
- trigger();
7119
+ if (hasChanged(prevPropValue, propValue)) {
7120
+ prevPropValue = propValue;
7121
+ if (hasChanged(localValue, propValue)) {
7122
+ localValue = propValue;
7123
+ trigger();
7124
+ }
6890
7125
  }
6891
7126
  });
6892
7127
  return {
@@ -6948,12 +7183,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
6948
7183
  if (instance.isUnmounted) return;
6949
7184
  {
6950
7185
  const { emitsOptions, propsOptions } = instance;
6951
- if (emitsOptions) if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
6952
- 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.`);
6953
- } else {
6954
- const validator = emitsOptions[event];
6955
- if (isFunction(validator)) {
6956
- if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
7186
+ if (emitsOptions) {
7187
+ if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
7188
+ 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.`);
7189
+ } else {
7190
+ const validator = emitsOptions[event];
7191
+ if (isFunction(validator)) {
7192
+ if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
7193
+ }
6957
7194
  }
6958
7195
  }
6959
7196
  }
@@ -6963,7 +7200,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
6963
7200
  const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
6964
7201
  if (modifiers) {
6965
7202
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
6966
- if (modifiers.number) args = rawArgs.map(looseToNumber);
7203
+ if (modifiers.number) args = args.map(looseToNumber);
6967
7204
  }
6968
7205
  devtoolsComponentEmit(instance, event, args);
6969
7206
  {
@@ -7105,8 +7342,9 @@ function renderComponentRoot(instance) {
7105
7342
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
7106
7343
  }
7107
7344
  if (vnode.transition) {
7108
- if (!isElementRoot(root)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
7109
- setTransitionHooks(root, vnode.transition);
7345
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
7346
+ if (!isElementRoot(child)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
7347
+ setTransitionHooks(child, vnode.transition);
7110
7348
  }
7111
7349
  if (setRoot) setRoot(root);
7112
7350
  else result = root;
@@ -7157,18 +7395,21 @@ function filterSingleRoot(children, recurse = true) {
7157
7395
  for (let i = 0; i < children.length; i++) {
7158
7396
  const child = children[i];
7159
7397
  if (isVNode(child)) {
7160
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
7161
- else {
7162
- singleRoot = child;
7163
- if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
7398
+ if (child.type !== Comment || child.children === "v-if") {
7399
+ if (singleRoot) return;
7400
+ else {
7401
+ singleRoot = child;
7402
+ if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
7403
+ }
7164
7404
  }
7165
7405
  } else return;
7166
7406
  }
7167
7407
  return singleRoot;
7168
7408
  }
7409
+ const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
7169
7410
  const getFunctionalFallthrough = (attrs) => {
7170
7411
  let res;
7171
- for (const key in attrs) if (key === "class" || key === "style" || isOn(key)) (res || (res = {}))[key] = attrs[key];
7412
+ for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
7172
7413
  return res;
7173
7414
  };
7174
7415
  const filterModelListeners = (attrs, props) => {
@@ -7304,16 +7545,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7304
7545
  let key = propsToUpdate[i];
7305
7546
  if (isEmitListener(instance.emitsOptions, key)) continue;
7306
7547
  const value = rawProps[key];
7307
- if (options) if (hasOwn(attrs, key)) {
7308
- if (value !== attrs[key]) {
7309
- attrs[key] = value;
7310
- hasAttrsChanged = true;
7548
+ if (options) {
7549
+ if (hasOwn(attrs, key)) {
7550
+ if (value !== attrs[key]) {
7551
+ attrs[key] = value;
7552
+ hasAttrsChanged = true;
7553
+ }
7554
+ } else {
7555
+ const camelizedKey = camelize(key);
7556
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
7311
7557
  }
7312
7558
  } else {
7313
- const camelizedKey = camelize(key);
7314
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
7315
- }
7316
- else {
7317
7559
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
7318
7560
  else if (shouldSkipAttr(key, instance)) continue;
7319
7561
  if (value !== attrs[key]) {
@@ -7326,9 +7568,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7326
7568
  } else {
7327
7569
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
7328
7570
  let kebabKey;
7329
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
7330
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
7331
- } else delete props[key];
7571
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
7572
+ if (options) {
7573
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
7574
+ } else delete props[key];
7575
+ }
7332
7576
  if (attrs !== rawCurrentProps) {
7333
7577
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
7334
7578
  delete attrs[key];
@@ -7349,9 +7593,10 @@ function setFullProps(instance, rawProps, props, attrs) {
7349
7593
  if (key === "inline-template") continue;
7350
7594
  const value = rawProps[key];
7351
7595
  let camelKey;
7352
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
7353
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
7354
- else if (!isEmitListener(instance.emitsOptions, key)) {
7596
+ if (options && hasOwn(options, camelKey = camelize(key))) {
7597
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
7598
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
7599
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
7355
7600
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
7356
7601
  else if (shouldSkipAttr(key, instance)) continue;
7357
7602
  if (!(key in attrs) || value !== attrs[key]) {
@@ -7400,7 +7645,7 @@ function baseResolveDefault(factory, instance, key) {
7400
7645
  const prev = setCurrentInstance(instance);
7401
7646
  const props = /* @__PURE__ */ toRaw(instance.props);
7402
7647
  value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
7403
- setCurrentInstance(...prev);
7648
+ restoreCurrentInstance(prev);
7404
7649
  return value;
7405
7650
  }
7406
7651
  const mixinPropsCache = /* @__PURE__ */ new WeakMap();
@@ -7517,7 +7762,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
7517
7762
  }
7518
7763
  if (validator && !validator(value, /* @__PURE__ */ shallowReadonly(resolvedProps))) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
7519
7764
  }
7520
- const isSimpleType = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
7765
+ const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
7521
7766
  /**
7522
7767
  * dev only
7523
7768
  */
@@ -7630,12 +7875,13 @@ const updateSlots = (instance, children, optimized) => {
7630
7875
  let deletionComparisonTarget = EMPTY_OBJ;
7631
7876
  if (vnode.shapeFlag & 32) {
7632
7877
  const type = children._;
7633
- if (type) if (isHmrUpdating) {
7634
- assignSlots(slots, children, optimized);
7635
- trigger(instance, "set", "$slots");
7636
- } else if (optimized && type === 1) needDeletionCheck = false;
7637
- else assignSlots(slots, children, optimized);
7638
- else {
7878
+ if (type) {
7879
+ if (isHmrUpdating) {
7880
+ assignSlots(slots, children, optimized);
7881
+ trigger(instance, "set", "$slots");
7882
+ } else if (optimized && type === 1) needDeletionCheck = false;
7883
+ else assignSlots(slots, children, optimized);
7884
+ } else {
7639
7885
  needDeletionCheck = !children.$stable;
7640
7886
  normalizeObjectSlots(children, slots, instance);
7641
7887
  }
@@ -7653,7 +7899,7 @@ const updateSlots = (instance, children, optimized) => {
7653
7899
  let supported;
7654
7900
  let perf;
7655
7901
  let cachedNow$1 = 0;
7656
- const p$1 = /* @__PURE__ */ Promise.resolve();
7902
+ const p$1 = /*@__PURE__*/ Promise.resolve();
7657
7903
  const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
7658
7904
  /**
7659
7905
  * @internal
@@ -7734,6 +7980,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7734
7980
  optimized = false;
7735
7981
  n2.dynamicChildren = null;
7736
7982
  }
7983
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
7984
+ if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
7985
+ n2.dynamicChildren.hasOnce = true;
7986
+ }
7737
7987
  const { type, ref, shapeFlag } = n2;
7738
7988
  switch (type) {
7739
7989
  case Text:
@@ -7750,7 +8000,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7750
8000
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7751
8001
  break;
7752
8002
  case VaporSlot:
7753
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
8003
+ getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
7754
8004
  break;
7755
8005
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7756
8006
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -7869,7 +8119,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7869
8119
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
7870
8120
  };
7871
8121
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
7872
- 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);
8122
+ for (let i = start; i < children.length; i++) {
8123
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
8124
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8125
+ }
7873
8126
  };
7874
8127
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
7875
8128
  const el = n2.el = n1.el;
@@ -7881,6 +8134,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7881
8134
  let vnodeHook;
7882
8135
  parentComponent && toggleRecurse(parentComponent, false);
7883
8136
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8137
+ if (n2.ibu) n2.ibu();
7884
8138
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
7885
8139
  parentComponent && toggleRecurse(parentComponent, true);
7886
8140
  if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -7914,8 +8168,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7914
8168
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
7915
8169
  }
7916
8170
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
7917
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
8171
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
7918
8172
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8173
+ n2.iu && n2.iu();
7919
8174
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
7920
8175
  }, void 0, parentSuspense);
7921
8176
  };
@@ -7923,7 +8178,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7923
8178
  for (let i = 0; i < newChildren.length; i++) {
7924
8179
  const oldVNode = oldChildren[i];
7925
8180
  const newVNode = newChildren[i];
7926
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
8181
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
8182
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
7927
8183
  }
7928
8184
  };
7929
8185
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -7961,41 +8217,15 @@ function baseCreateRenderer(options, createHydrationFns) {
7961
8217
  };
7962
8218
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
7963
8219
  n2.slotScopeIds = slotScopeIds;
7964
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
7965
- else {
7966
- const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
7967
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
7968
- if (n2.dirs) {
7969
- invokeDirectiveHook(n2, null, parentComponent, "created");
7970
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
7971
- }
7972
- }, () => {
7973
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
7974
- });
7975
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
7976
- const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
7977
- if (vnodeMountedHook) {
7978
- const scopedVNode = n2;
7979
- queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
7980
- }
7981
- }
7982
- else {
7983
- const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
7984
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
7985
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
7986
- }, () => {
7987
- const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
7988
- if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
7989
- });
7990
- const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
7991
- if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
7992
- n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
7993
- vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
7994
- }, void 0, parentSuspense);
7995
- }
7996
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
7997
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
7998
- else updateComponent(n1, n2, optimized);
8220
+ if (n2.type.__vapor) {
8221
+ if (n1 == null) {
8222
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
8223
+ else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
8224
+ } else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
8225
+ } else if (n1 == null) {
8226
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
8227
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
8228
+ } else updateComponent(n1, n2, optimized);
7999
8229
  };
8000
8230
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
8001
8231
  const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
@@ -8039,16 +8269,18 @@ function baseCreateRenderer(options, createHydrationFns) {
8039
8269
  };
8040
8270
  const updateComponent = (n1, n2, optimized) => {
8041
8271
  const instance = n2.component = n1.component;
8042
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
8043
- pushWarningContext(n2);
8044
- updateComponentPreRender(instance, n2, optimized);
8045
- popWarningContext();
8046
- return;
8272
+ if (shouldUpdateComponent(n1, n2, optimized)) {
8273
+ if (instance.asyncDep && !instance.asyncResolved) {
8274
+ pushWarningContext(n2);
8275
+ n2.el = n1.el;
8276
+ updateComponentPreRender(instance, n2, optimized);
8277
+ popWarningContext();
8278
+ return;
8279
+ } else {
8280
+ instance.next = n2;
8281
+ instance.effect.run();
8282
+ }
8047
8283
  } else {
8048
- instance.next = n2;
8049
- instance.effect.run();
8050
- }
8051
- else {
8052
8284
  n2.el = n1.el;
8053
8285
  instance.vnode = n2;
8054
8286
  }
@@ -8151,6 +8383,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8151
8383
  } else next = vnode;
8152
8384
  if (bu) invokeArrayFns(bu);
8153
8385
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
8386
+ if (next.ibu) next.ibu();
8154
8387
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
8155
8388
  toggleRecurse(instance, true);
8156
8389
  startMeasure(instance, `render`);
@@ -8164,7 +8397,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8164
8397
  next.el = nextTree.el;
8165
8398
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
8166
8399
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
8167
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
8400
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
8401
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
8402
+ next.iu && next.iu();
8403
+ }, void 0, parentSuspense);
8168
8404
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
8169
8405
  devtoolsComponentUpdated(instance);
8170
8406
  popWarningContext();
@@ -8205,9 +8441,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8205
8441
  if (shapeFlag & 8) {
8206
8442
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
8207
8443
  if (c2 !== c1) hostSetElementText(container, c2);
8208
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8209
- else unmountChildren(c1, parentComponent, parentSuspense, true);
8210
- else {
8444
+ } else if (prevShapeFlag & 16) {
8445
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8446
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
8447
+ } else {
8211
8448
  if (prevShapeFlag & 8) hostSetElementText(container, "");
8212
8449
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8213
8450
  }
@@ -8306,15 +8543,17 @@ function baseCreateRenderer(options, createHydrationFns) {
8306
8543
  const anchorVNode = c2[nextIndex + 1];
8307
8544
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
8308
8545
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8309
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
8310
- else j--;
8546
+ else if (moved) {
8547
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
8548
+ else j--;
8549
+ }
8311
8550
  }
8312
8551
  }
8313
8552
  };
8314
8553
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
8315
8554
  const { el, type, transition, children, shapeFlag } = vnode;
8316
8555
  if (isVaporComponent(type) || type === VaporSlot) {
8317
- getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
8556
+ getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
8318
8557
  return;
8319
8558
  }
8320
8559
  if (shapeFlag & 6) {
@@ -8339,54 +8578,37 @@ function baseCreateRenderer(options, createHydrationFns) {
8339
8578
  moveStaticNode(vnode, container, anchor);
8340
8579
  return;
8341
8580
  }
8342
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8343
- else {
8344
- const { leave, delayLeave, afterLeave } = transition;
8345
- const remove = () => {
8581
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
8582
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8583
+ else performTransitionLeave(el, transition, () => {
8346
8584
  if (vnode.ctx.isUnmounted) hostRemove(el);
8347
8585
  else hostInsert(el, container, anchor);
8348
- };
8349
- const performLeave = () => {
8350
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8351
- if (el._isLeaving) el[leaveCbKey](true);
8352
- if (transition.persisted && !wasLeaving) remove();
8353
- else leave(el, () => {
8354
- remove();
8355
- afterLeave && afterLeave();
8356
- });
8357
- };
8358
- if (delayLeave) delayLeave(el, remove, performLeave);
8359
- else performLeave();
8360
- }
8361
- else hostInsert(el, container, anchor);
8586
+ }, true, true);
8587
+ } else hostInsert(el, container, anchor);
8362
8588
  };
8363
8589
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
8364
8590
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
8365
- if (patchFlag === -2) optimized = false;
8591
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
8366
8592
  if (ref != null) {
8367
8593
  const prevSub = setActiveSub();
8368
8594
  setRef(ref, null, parentSuspense, vnode, true);
8369
8595
  setActiveSub(prevSub);
8370
8596
  }
8371
- if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
8597
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
8372
8598
  if (shapeFlag & 256) {
8373
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
8599
+ if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
8374
8600
  else parentComponent.ctx.deactivate(vnode);
8375
8601
  return;
8376
8602
  }
8603
+ if (shapeFlag & 6 && isVaporComponent(type)) {
8604
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8605
+ return;
8606
+ }
8377
8607
  const shouldInvokeDirs = shapeFlag & 1 && dirs;
8378
8608
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
8379
8609
  let vnodeHook;
8380
8610
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
8381
- if (shapeFlag & 6) if (isVaporComponent(type)) {
8382
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
8383
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8384
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
8385
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
8386
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
8387
- }, void 0, parentSuspense);
8388
- return;
8389
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
8611
+ if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
8390
8612
  else {
8391
8613
  if (shapeFlag & 128) {
8392
8614
  vnode.suspense.unmount(parentSuspense, doRemove);
@@ -8397,7 +8619,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8397
8619
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
8398
8620
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
8399
8621
  if (type === VaporSlot) {
8400
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8622
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8401
8623
  return;
8402
8624
  }
8403
8625
  if (doRemove) remove(vnode);
@@ -8421,6 +8643,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8421
8643
  }
8422
8644
  if (type === Static) {
8423
8645
  removeStaticNode(vnode);
8646
+ if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8424
8647
  return;
8425
8648
  }
8426
8649
  if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
@@ -8446,7 +8669,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8446
8669
  if (effect) {
8447
8670
  effect.stop();
8448
8671
  unmount(subTree, instance, parentSuspense, doRemove);
8449
- } else if (doRemove && subTree && instance.vnode.el) remove(subTree);
8672
+ } else if (instance.vnode.el && subTree) {
8673
+ subTree.transition = instance.vnode.transition;
8674
+ unmount(subTree, instance, parentSuspense, doRemove);
8675
+ }
8450
8676
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
8451
8677
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
8452
8678
  queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
@@ -8521,12 +8747,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
8521
8747
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
8522
8748
  }
8523
8749
  function toggleRecurse({ effect, job, vapor }, allowed) {
8524
- if (!vapor) if (allowed) {
8525
- effect.flags |= 128;
8526
- job.flags |= 2;
8527
- } else {
8528
- effect.flags &= -129;
8529
- job.flags &= -3;
8750
+ if (!vapor) {
8751
+ if (allowed) {
8752
+ effect.flags |= 128;
8753
+ job.flags |= 2;
8754
+ } else {
8755
+ effect.flags &= -129;
8756
+ job.flags &= -3;
8757
+ }
8530
8758
  }
8531
8759
  }
8532
8760
  function needTransition(parentSuspense, transition) {
@@ -8566,8 +8794,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
8566
8794
  }
8567
8795
  function locateNonHydratedAsyncRoot(instance) {
8568
8796
  const subComponent = instance.subTree && instance.subTree.component;
8569
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
8570
- else return locateNonHydratedAsyncRoot(subComponent);
8797
+ if (subComponent) {
8798
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
8799
+ else return locateNonHydratedAsyncRoot(subComponent);
8800
+ }
8571
8801
  }
8572
8802
  function invalidateMount(hooks) {
8573
8803
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
@@ -8586,13 +8816,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
8586
8816
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
8587
8817
  const performRemove = () => {
8588
8818
  remove();
8589
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8819
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
8590
8820
  };
8591
8821
  if (force || isElement && transition && !transition.persisted) {
8592
8822
  const { leave, delayLeave } = transition;
8593
8823
  const performLeave = () => {
8824
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8594
8825
  if (el._isLeaving && force) el[leaveCbKey](true);
8595
- leave(el, performRemove);
8826
+ if (force && transition.persisted && !wasLeaving) remove();
8827
+ else leave(el, performRemove);
8596
8828
  };
8597
8829
  if (delayLeave) delayLeave(el, performRemove, performLeave);
8598
8830
  else performLeave();
@@ -8611,7 +8843,7 @@ function isVaporComponent(type) {
8611
8843
  /**
8612
8844
  * shared between vdom and vapor
8613
8845
  */
8614
- function getInheritedScopeIds(vnode, parentComponent) {
8846
+ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
8615
8847
  const inheritedScopeIds = [];
8616
8848
  let currentParent = parentComponent;
8617
8849
  let currentVNode = vnode;
@@ -8627,6 +8859,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
8627
8859
  currentParent = currentParent.parent;
8628
8860
  } else break;
8629
8861
  }
8862
+ const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
8863
+ if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
8630
8864
  return inheritedScopeIds;
8631
8865
  }
8632
8866
  function resolveAsyncComponentPlaceholder(anchorVnode) {
@@ -8645,7 +8879,7 @@ const Suspense = {
8645
8879
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
8646
8880
  if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
8647
8881
  else {
8648
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
8882
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
8649
8883
  n2.suspense = n1.suspense;
8650
8884
  n2.suspense.vnode = n2;
8651
8885
  n2.el = n1.el;
@@ -8683,10 +8917,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
8683
8917
  if (pendingBranch) {
8684
8918
  suspense.pendingBranch = newBranch;
8685
8919
  if (isSameVNodeType(pendingBranch, newBranch)) {
8686
- patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8920
+ suspense.deps++;
8921
+ patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8922
+ suspense.deps--;
8687
8923
  if (suspense.deps <= 0) suspense.resolve();
8688
8924
  else if (isInFallback) {
8689
- if (!isHydrating) {
8925
+ if (!isHydrating && !suspense.isFallbackMountPending) {
8690
8926
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8691
8927
  setActiveBranch(suspense, newFallback);
8692
8928
  }
@@ -8698,12 +8934,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
8698
8934
  suspense.activeBranch = pendingBranch;
8699
8935
  } else unmount(pendingBranch, parentComponent, suspense);
8700
8936
  suspense.deps = 0;
8937
+ for (let i = 0; i < suspense.effects.length; i++) {
8938
+ const effect = suspense.effects[i];
8939
+ if (effect.flags & 8) queuePostFlushCb(effect);
8940
+ }
8701
8941
  suspense.effects.length = 0;
8702
8942
  suspense.hiddenContainer = createElement("div");
8703
8943
  if (isInFallback) {
8704
8944
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8705
8945
  if (suspense.deps <= 0) suspense.resolve();
8706
- else {
8946
+ else if (!suspense.isFallbackMountPending) {
8707
8947
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8708
8948
  setActiveBranch(suspense, newFallback);
8709
8949
  }
@@ -8805,7 +9045,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8805
9045
  let hasUnresolvedAncestor = false;
8806
9046
  while (parent) {
8807
9047
  if (parent.pendingBranch) {
8808
- parent.effects.push(...effects);
9048
+ for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
8809
9049
  hasUnresolvedAncestor = true;
8810
9050
  break;
8811
9051
  }
@@ -8815,6 +9055,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8815
9055
  suspense.effects = [];
8816
9056
  if (isSuspensible) {
8817
9057
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
9058
+ parentSuspenseId = void 0;
8818
9059
  parentSuspense.deps--;
8819
9060
  if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
8820
9061
  }
@@ -8829,8 +9070,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8829
9070
  const mountFallback = () => {
8830
9071
  suspense.isFallbackMountPending = false;
8831
9072
  if (!suspense.isInFallback) return;
8832
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8833
- setActiveBranch(suspense, fallbackVNode);
9073
+ const latestFallback = suspense.vnode.ssFallback;
9074
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
9075
+ setActiveBranch(suspense, latestFallback);
8834
9076
  };
8835
9077
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
8836
9078
  if (delayEnter) {
@@ -8851,11 +9093,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8851
9093
  registerDep(instance, onResolve) {
8852
9094
  const isInPendingSuspense = !!suspense.pendingBranch;
8853
9095
  if (isInPendingSuspense) suspense.deps++;
9096
+ const hydratedEl = instance.vnode && instance.vnode.el;
8854
9097
  instance.asyncDep.catch((err) => {
8855
9098
  handleError(err, instance, 0);
8856
9099
  }).then((asyncSetupResult) => {
8857
9100
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
8858
9101
  setCurrentInstance(null, void 0);
9102
+ if (hydratedEl && !instance.scope.active) {
9103
+ if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
9104
+ return;
9105
+ }
8859
9106
  instance.asyncResolved = true;
8860
9107
  onResolve(asyncSetupResult);
8861
9108
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
@@ -8906,9 +9153,10 @@ function normalizeSuspenseSlot(s) {
8906
9153
  return s;
8907
9154
  }
8908
9155
  function queueEffectWithSuspense(fn, id, suspense) {
8909
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
8910
- else suspense.effects.push(fn);
8911
- else queuePostFlushCb(fn, id);
9156
+ if (suspense && suspense.pendingBranch) {
9157
+ if (isArray(fn)) suspense.effects.push(...fn);
9158
+ else suspense.effects.push(fn);
9159
+ } else queuePostFlushCb(fn, id);
8912
9160
  }
8913
9161
  function setActiveBranch(suspense, branch) {
8914
9162
  suspense.activeBranch = branch;
@@ -9115,11 +9363,26 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
9115
9363
  if (shapeFlag & 128) type.normalize(vnode);
9116
9364
  } else if (children) vnode.shapeFlag |= isString(children) ? 8 : 16;
9117
9365
  if (vnode.key !== vnode.key) warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
9366
+ if (props && vnode.shapeFlag & 1) {
9367
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
9368
+ 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.`);
9369
+ }
9118
9370
  if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) currentBlock.push(vnode);
9119
9371
  convertLegacyVModelProps(vnode);
9120
9372
  defineLegacyVNodeProperties(vnode);
9121
9373
  return vnode;
9122
9374
  }
9375
+ /**
9376
+ * dev only
9377
+ * Whether children would actually render something. Empty text and empty
9378
+ * arrays are ignored, mirroring the compiler's `node.children.length` check
9379
+ * for `v-html` / `v-text`.
9380
+ */
9381
+ function hasContentChildren(children) {
9382
+ if (isString(children)) return children !== "";
9383
+ if (isArray(children)) return children.length > 0;
9384
+ return false;
9385
+ }
9123
9386
  const createVNode = createVNodeWithArgsTransform;
9124
9387
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
9125
9388
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -9129,8 +9392,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
9129
9392
  if (isVNode(type)) {
9130
9393
  const cloned = cloneVNode(type, props, true);
9131
9394
  if (children) normalizeChildren(cloned, children);
9132
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
9133
- else currentBlock.push(cloned);
9395
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
9396
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
9397
+ else currentBlock.push(cloned);
9398
+ }
9134
9399
  cloned.patchFlag = -2;
9135
9400
  return cloned;
9136
9401
  }
@@ -9191,7 +9456,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
9191
9456
  ce: vnode.ce,
9192
9457
  vi: vnode.vi,
9193
9458
  vs: cloneVaporSlotMeta(vnode),
9194
- vb: vnode.vb
9459
+ vb: vnode.vb,
9460
+ ibu: vnode.ibu,
9461
+ iu: vnode.iu,
9462
+ cacheIndex: vnode.cacheIndex
9195
9463
  };
9196
9464
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
9197
9465
  defineLegacyVNodeProperties(cloned);
@@ -9202,8 +9470,7 @@ function cloneVaporSlotMeta(vnode) {
9202
9470
  if (!vaporSlot) return vaporSlot;
9203
9471
  const cloned = {
9204
9472
  slot: vaporSlot.slot,
9205
- fallback: vaporSlot.fallback,
9206
- outletFallback: vaporSlot.outletFallback
9473
+ outlets: vaporSlot.outlets
9207
9474
  };
9208
9475
  if (vnode.el) {
9209
9476
  cloned.state = vaporSlot.state;
@@ -9255,25 +9522,28 @@ function normalizeChildren(vnode, children) {
9255
9522
  const { shapeFlag } = vnode;
9256
9523
  if (children == null) children = null;
9257
9524
  else if (isArray(children)) type = 16;
9258
- else if (typeof children === "object") if (shapeFlag & 65) {
9259
- const slot = children.default;
9260
- if (slot) {
9261
- slot._c && (slot._d = false);
9262
- normalizeChildren(vnode, slot());
9263
- slot._c && (slot._d = true);
9264
- }
9265
- return;
9266
- } else {
9267
- type = 32;
9268
- const slotFlag = children._;
9269
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
9270
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
9271
- else {
9272
- children._ = 2;
9273
- vnode.patchFlag |= 1024;
9525
+ else if (typeof children === "object") {
9526
+ if (shapeFlag & 65) {
9527
+ const slot = children.default;
9528
+ if (slot) {
9529
+ slot._c && (slot._d = false);
9530
+ normalizeChildren(vnode, slot());
9531
+ slot._c && (slot._d = true);
9532
+ }
9533
+ return;
9534
+ } else {
9535
+ type = 32;
9536
+ const slotFlag = children._;
9537
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
9538
+ else if (slotFlag === 3 && currentRenderingInstance) {
9539
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
9540
+ else {
9541
+ children._ = 2;
9542
+ vnode.patchFlag |= 1024;
9543
+ }
9544
+ }
9274
9545
  }
9275
- }
9276
- else if (isFunction(children)) {
9546
+ } else if (isFunction(children)) {
9277
9547
  if (shapeFlag & 65) {
9278
9548
  normalizeChildren(vnode, { default: children });
9279
9549
  return;
@@ -9350,6 +9620,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
9350
9620
  simpleSetCurrentInstance(instance);
9351
9621
  }
9352
9622
  };
9623
+ /**
9624
+ * Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
9625
+ * `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
9626
+ * verbatim instead of re-triggering the `instance.scope` default.
9627
+ * @internal
9628
+ */
9629
+ const restoreCurrentInstance = (prev) => {
9630
+ setCurrentScope(prev[1]);
9631
+ simpleSetCurrentInstance(prev[0]);
9632
+ };
9353
9633
  const internalOptions = [
9354
9634
  "ce",
9355
9635
  "type",
@@ -9381,7 +9661,7 @@ const useInstanceOption = (key, silent = false) => {
9381
9661
  };
9382
9662
  //#endregion
9383
9663
  //#region packages/runtime-core/src/component.ts
9384
- const emptyAppContext = /* @__PURE__ */ createAppContext();
9664
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
9385
9665
  let uid = 0;
9386
9666
  function createComponentInstance(vnode, parent, suspense) {
9387
9667
  const type = vnode.type;
@@ -9501,7 +9781,7 @@ function setupStatefulComponent(instance, isSSR) {
9501
9781
  const setupResult = callWithErrorHandling(setup, instance, 0, [/* @__PURE__ */ shallowReadonly(instance.props), setupContext]);
9502
9782
  const isAsyncSetup = isPromise(setupResult);
9503
9783
  setActiveSub(prevSub);
9504
- setCurrentInstance(...prev);
9784
+ restoreCurrentInstance(prev);
9505
9785
  if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
9506
9786
  if (isAsyncSetup) {
9507
9787
  const unsetCurrentInstance = () => {
@@ -9509,7 +9789,12 @@ function setupStatefulComponent(instance, isSSR) {
9509
9789
  };
9510
9790
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
9511
9791
  if (isSSR) return setupResult.then((resolvedResult) => {
9512
- handleSetupResult(instance, resolvedResult, isSSR);
9792
+ setInSSRSetupState(true);
9793
+ try {
9794
+ handleSetupResult(instance, resolvedResult, isSSR);
9795
+ } finally {
9796
+ setInSSRSetupState(false);
9797
+ }
9513
9798
  }).catch((e) => {
9514
9799
  handleError(e, instance, 0);
9515
9800
  });
@@ -9521,9 +9806,10 @@ function setupStatefulComponent(instance, isSSR) {
9521
9806
  } else finishComponentSetup(instance, isSSR);
9522
9807
  }
9523
9808
  function handleSetupResult(instance, setupResult, isSSR) {
9524
- if (isFunction(setupResult)) if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
9525
- else instance.render = setupResult;
9526
- else if (isObject(setupResult)) {
9809
+ if (isFunction(setupResult)) {
9810
+ if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
9811
+ else instance.render = setupResult;
9812
+ } else if (isObject(setupResult)) {
9527
9813
  if (isVNode(setupResult)) warn$1("setup() should not return VNodes directly - return a render function instead.");
9528
9814
  instance.devtoolsRawSetupState = setupResult;
9529
9815
  instance.setupState = proxyRefs(setupResult);
@@ -9575,13 +9861,15 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
9575
9861
  applyOptions(instance);
9576
9862
  } finally {
9577
9863
  setActiveSub(prevSub);
9578
- setCurrentInstance(...prevInstance);
9864
+ restoreCurrentInstance(prevInstance);
9579
9865
  }
9580
9866
  }
9581
- if (!Component.render && instance.render === NOOP && !isSSR) if (!compile$1 && Component.template)
9867
+ if (!Component.render && instance.render === NOOP && !isSSR) {
9868
+ if (!compile$1 && Component.template)
9582
9869
  /* v8 ignore start */
9583
- warn$1("Component provided template option but runtime compilation is not supported in this build of Vue.");
9584
- else warn$1(`Component is missing template or render function: `, Component);
9870
+ warn$1("Component provided template option but runtime compilation is not supported in this build of Vue.");
9871
+ else warn$1(`Component is missing template or render function: `, Component);
9872
+ }
9585
9873
  }
9586
9874
  const attrsProxyHandlers = {
9587
9875
  get(target, key) {
@@ -9644,14 +9932,13 @@ function getComponentPublicInstance(instance) {
9644
9932
  if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
9645
9933
  get(target, key) {
9646
9934
  if (key in target) return target[key];
9647
- else {
9935
+ else if (!instance.vapor) {
9648
9936
  const publicPropertiesMap = getPublicPropertiesMap();
9649
9937
  if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
9650
9938
  }
9651
9939
  },
9652
9940
  has(target, key) {
9653
- const publicPropertiesMap = getPublicPropertiesMap();
9654
- return key in target || key in publicPropertiesMap;
9941
+ return key in target || !instance.vapor && key in getPublicPropertiesMap();
9655
9942
  }
9656
9943
  }));
9657
9944
  else return instance.proxy;
@@ -9689,11 +9976,12 @@ function h(type, propsOrChildren, children) {
9689
9976
  try {
9690
9977
  setBlockTracking(-1);
9691
9978
  const l = arguments.length;
9692
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
9693
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
9694
- return createVNode(type, propsOrChildren);
9695
- } else return createVNode(type, null, propsOrChildren);
9696
- else {
9979
+ if (l === 2) {
9980
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
9981
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
9982
+ return createVNode(type, propsOrChildren);
9983
+ } else return createVNode(type, null, propsOrChildren);
9984
+ } else {
9697
9985
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
9698
9986
  else if (l === 3 && isVNode(children)) children = [children];
9699
9987
  return createVNode(type, propsOrChildren, children);
@@ -9885,7 +10173,7 @@ function isMemoSame(cached, memo) {
9885
10173
  }
9886
10174
  //#endregion
9887
10175
  //#region packages/runtime-core/src/index.ts
9888
- const version = "3.6.0-rc.1";
10176
+ const version = "3.6.0-rc.11";
9889
10177
  const warn = warn$1;
9890
10178
  /**
9891
10179
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -9908,7 +10196,10 @@ const ssrUtils = {
9908
10196
  getComponentPublicInstance,
9909
10197
  ensureValidVNode,
9910
10198
  pushWarningContext,
9911
- popWarningContext
10199
+ popWarningContext,
10200
+ VaporSlot,
10201
+ rawVaporSlotKey,
10202
+ invokeSlotFallback
9912
10203
  };
9913
10204
  /**
9914
10205
  * @internal only exposed in compat builds
@@ -9930,7 +10221,7 @@ const DeprecationTypes = DeprecationTypes$1;
9930
10221
  let policy = void 0;
9931
10222
  const tt = typeof window !== "undefined" && window.trustedTypes;
9932
10223
  if (tt) try {
9933
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
10224
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
9934
10225
  } catch (e) {
9935
10226
  warn(`Error creating trusted types policy: ${e}`);
9936
10227
  }
@@ -9938,7 +10229,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
9938
10229
  const svgNS = "http://www.w3.org/2000/svg";
9939
10230
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
9940
10231
  const doc = typeof document !== "undefined" ? document : null;
9941
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
10232
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
9942
10233
  const nodeOps = {
9943
10234
  insert: (child, parent, anchor) => {
9944
10235
  parent.insertBefore(child, anchor || null);
@@ -10012,7 +10303,7 @@ const DOMTransitionPropsValidators = {
10012
10303
  leaveActiveClass: String,
10013
10304
  leaveToClass: String
10014
10305
  };
10015
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
10306
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
10016
10307
  /**
10017
10308
  * Wrap logic that attaches extra properties to Transition in a function
10018
10309
  * so that it can be annotated as pure
@@ -10027,7 +10318,7 @@ const decorate$1 = (t) => {
10027
10318
  * DOM Transition is a higher-order-component based on the platform-agnostic
10028
10319
  * base Transition component, with DOM-specific logic.
10029
10320
  */
10030
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
10321
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
10031
10322
  /**
10032
10323
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
10033
10324
  * with custom HOCs.
@@ -10267,14 +10558,15 @@ const vShow = {
10267
10558
  },
10268
10559
  updated(el, { value, oldValue }, { transition }) {
10269
10560
  if (!value === !oldValue) return;
10270
- if (transition) if (value) {
10271
- transition.beforeEnter(el);
10272
- setDisplay(el, true);
10273
- transition.enter(el);
10274
- } else transition.leave(el, () => {
10275
- setDisplay(el, false);
10276
- });
10277
- else setDisplay(el, value);
10561
+ if (transition) {
10562
+ if (value) {
10563
+ transition.beforeEnter(el);
10564
+ setDisplay(el, true);
10565
+ transition.enter(el);
10566
+ } else transition.leave(el, () => {
10567
+ setDisplay(el, false);
10568
+ });
10569
+ } else setDisplay(el, value);
10278
10570
  },
10279
10571
  beforeUnmount(el, { value }) {
10280
10572
  setDisplay(el, value);
@@ -10305,11 +10597,13 @@ function patchStyle(el, prev, next) {
10305
10597
  const isCssString = isString(next);
10306
10598
  let hasControlledDisplay = false;
10307
10599
  if (next && !isCssString) {
10308
- if (prev) if (!isString(prev)) {
10309
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
10310
- } else for (const prevStyle of prev.split(";")) {
10311
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10312
- if (next[key] == null) setStyle(style, key, "");
10600
+ if (prev) {
10601
+ if (!isString(prev)) {
10602
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
10603
+ } else for (const prevStyle of prev.split(";")) {
10604
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10605
+ if (next[key] == null) setStyle(style, key, "");
10606
+ }
10313
10607
  }
10314
10608
  for (const key in next) {
10315
10609
  if (key === "display") hasControlledDisplay = true;
@@ -10325,7 +10619,11 @@ function patchStyle(el, prev, next) {
10325
10619
  style.cssText = next;
10326
10620
  hasControlledDisplay = displayRE.test(next);
10327
10621
  }
10328
- } else if (prev) el.removeAttribute("style");
10622
+ } else if (prev) {
10623
+ const cssVarText = style[CSS_VAR_TEXT];
10624
+ if (cssVarText) style.cssText = cssVarText;
10625
+ else el.removeAttribute("style");
10626
+ }
10329
10627
  if (vShowOriginalDisplay in el) {
10330
10628
  el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
10331
10629
  if (el[vShowHidden]) style.display = "none";
@@ -10338,8 +10636,10 @@ function setStyle(style, name, rawVal) {
10338
10636
  else {
10339
10637
  const val = rawVal == null ? "" : String(rawVal);
10340
10638
  if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
10341
- if (name.startsWith("--")) style.setProperty(name, val);
10342
- else {
10639
+ if (name.startsWith("--")) {
10640
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
10641
+ else style.setProperty(name, val);
10642
+ } else {
10343
10643
  const prefixed = autoPrefix(style, name);
10344
10644
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
10345
10645
  else style[prefixed] = val;
@@ -10376,15 +10676,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
10376
10676
  //#region packages/runtime-dom/src/modules/attrs.ts
10377
10677
  const xlinkNS = "http://www.w3.org/1999/xlink";
10378
10678
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
10379
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10380
- else el.setAttributeNS(xlinkNS, key, value);
10381
- else {
10679
+ if (isSVG && key.startsWith("xlink:")) {
10680
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10681
+ else el.setAttributeNS(xlinkNS, key, value);
10682
+ } else {
10382
10683
  if (compatCoerceAttr(el, key, value, instance)) return;
10383
10684
  if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
10384
10685
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
10385
10686
  }
10386
10687
  }
10387
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck");
10688
+ const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
10388
10689
  function compatCoerceAttr(el, key, value, instance = null) {
10389
10690
  if (isEnumeratedAttr(key)) {
10390
10691
  const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
@@ -10476,7 +10777,7 @@ function parseEventName(name) {
10476
10777
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
10477
10778
  }
10478
10779
  let cachedNow = 0;
10479
- const p = /* @__PURE__ */ Promise.resolve();
10780
+ const p = /*@__PURE__*/ Promise.resolve();
10480
10781
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
10481
10782
  function createInvoker(initialValue, instance) {
10482
10783
  const invoker = (e) => {
@@ -10544,7 +10845,7 @@ function shouldSetAsPropForVueCE(el, key) {
10544
10845
  //#endregion
10545
10846
  //#region packages/runtime-dom/src/apiCustomElement.ts
10546
10847
  const REMOVAL = {};
10547
- /* @__NO_SIDE_EFFECTS__ */
10848
+ /*@__NO_SIDE_EFFECTS__*/
10548
10849
  function defineCustomElement(options, extraOptions, _createApp) {
10549
10850
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
10550
10851
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -10593,12 +10894,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
10593
10894
  this._parent = parent;
10594
10895
  break;
10595
10896
  }
10596
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
10597
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
10598
- this._pendingResolve = void 0;
10599
- this._resolveDef();
10600
- });
10601
- else this._resolveDef();
10897
+ if (!this._instance) {
10898
+ if (this._resolved) this._mountComponent(this._def);
10899
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
10900
+ this._pendingResolve = void 0;
10901
+ if (this.isConnected) return this._resolveDef();
10902
+ });
10903
+ else this._resolveDef();
10904
+ }
10602
10905
  }
10603
10906
  disconnectedCallback() {
10604
10907
  this._connected = false;
@@ -10632,7 +10935,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10632
10935
  * resolve inner component definition (handle possible async component)
10633
10936
  */
10634
10937
  _resolveDef() {
10635
- if (this._pendingResolve) return;
10938
+ if (this._pendingResolve) return this._pendingResolve;
10636
10939
  for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
10637
10940
  this._ob = new MutationObserver(this._processMutations.bind(this));
10638
10941
  this._ob.observe(this, { attributes: true });
@@ -10662,6 +10965,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10662
10965
  this._def = def;
10663
10966
  resolve(def);
10664
10967
  });
10968
+ return this._pendingResolve;
10665
10969
  } else resolve(this._def);
10666
10970
  }
10667
10971
  _mountComponent(def) {
@@ -10700,14 +11004,17 @@ var VueElementBase = class VueElementBase extends BaseClass {
10700
11004
  const { props } = def;
10701
11005
  const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
10702
11006
  for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
10703
- for (const key of declaredPropKeys.map(camelize)) Object.defineProperty(this, key, {
10704
- get() {
10705
- return this._getProp(key);
10706
- },
10707
- set(val) {
10708
- this._setProp(key, val, true, !this._patching);
10709
- }
10710
- });
11007
+ for (const key of declaredPropKeys.map(camelize)) {
11008
+ if (key in Object.getPrototypeOf(this)) warn(`Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`);
11009
+ Object.defineProperty(this, key, {
11010
+ get() {
11011
+ return this._getProp(key);
11012
+ },
11013
+ set(val) {
11014
+ this._setProp(key, val, true, !this._patching);
11015
+ }
11016
+ });
11017
+ }
10711
11018
  }
10712
11019
  _setAttr(key) {
10713
11020
  if (key.startsWith("data-v-")) return;
@@ -10810,13 +11117,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
10810
11117
  _renderSlots() {
10811
11118
  const outlets = this._getSlots();
10812
11119
  const scopeId = this._instance.type.__scopeId;
10813
- const slotReplacements = /* @__PURE__ */ new Map();
10814
11120
  for (let i = 0; i < outlets.length; i++) {
10815
11121
  const o = outlets[i];
10816
11122
  const slotName = o.getAttribute("name") || "default";
10817
11123
  const content = this._slots[slotName];
10818
11124
  const parent = o.parentNode;
10819
- const replacementNodes = [];
10820
11125
  if (content) for (const n of content) {
10821
11126
  if (scopeId && n.nodeType === 1) {
10822
11127
  const id = scopeId + "-s";
@@ -10826,20 +11131,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
10826
11131
  while (child = walker.nextNode()) child.setAttribute(id, "");
10827
11132
  }
10828
11133
  parent.insertBefore(n, o);
10829
- replacementNodes.push(n);
10830
- }
10831
- else while (o.firstChild) {
10832
- const child = o.firstChild;
10833
- parent.insertBefore(child, o);
10834
- replacementNodes.push(child);
10835
11134
  }
11135
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
10836
11136
  parent.removeChild(o);
10837
- slotReplacements.set(o, {
10838
- nodes: replacementNodes,
10839
- usedFallback: !content
10840
- });
10841
11137
  }
10842
- this._updateSlotNodes(slotReplacements);
10843
11138
  }
10844
11139
  /**
10845
11140
  * @internal
@@ -10878,7 +11173,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10878
11173
  * @internal
10879
11174
  */
10880
11175
  _hasShadowRoot() {
10881
- return this._def.shadowRoot !== false;
11176
+ return this._root !== this;
10882
11177
  }
10883
11178
  /**
10884
11179
  * @internal
@@ -10923,10 +11218,6 @@ var VueElement = class extends VueElementBase {
10923
11218
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
10924
11219
  this._app = this._instance = null;
10925
11220
  }
10926
- /**
10927
- * Only called when shadowRoot is false
10928
- */
10929
- _updateSlotNodes(replacements) {}
10930
11221
  _createVNode() {
10931
11222
  const baseProps = {};
10932
11223
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -10993,7 +11284,7 @@ const decorate = (t) => {
10993
11284
  };
10994
11285
  const TransitionGroup = /* @__PURE__ */ decorate({
10995
11286
  name: "TransitionGroup",
10996
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
11287
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
10997
11288
  tag: String,
10998
11289
  moveClass: String
10999
11290
  }),
@@ -11125,13 +11416,22 @@ function onCompositionEnd(e) {
11125
11416
  }
11126
11417
  }
11127
11418
  const assignKey = Symbol("_assign");
11419
+ const initialValueKey = Symbol("_initialValue");
11128
11420
  const vModelText = {
11129
11421
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
11422
+ if (el.parentNode) {
11423
+ if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
11424
+ else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
11425
+ }
11130
11426
  el[assignKey] = getModelAssigner(vnode);
11131
11427
  vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
11132
11428
  },
11133
- mounted(el, { value }) {
11134
- el.value = value == null ? "" : value;
11429
+ mounted(el, { value, modifiers: { trim, number } }) {
11430
+ const newValue = value == null ? "" : value;
11431
+ const initialValue = el[initialValueKey];
11432
+ delete el[initialValueKey];
11433
+ if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
11434
+ else el.value = newValue;
11135
11435
  },
11136
11436
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
11137
11437
  el[assignKey] = getModelAssigner(vnode);
@@ -11266,19 +11566,39 @@ const vModelSelectInit = (el, value, number, set) => {
11266
11566
  el._modelValue = value;
11267
11567
  addEventListener(el, "change", () => {
11268
11568
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
11269
- (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
11270
- el._assigning = true;
11271
- nextTick(() => {
11272
- el._assigning = false;
11273
- });
11569
+ const multiple = el.multiple;
11570
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
11571
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
11572
+ try {
11573
+ (set || el[assignKey])(assignedValue);
11574
+ } finally {
11575
+ nextTick(() => {
11576
+ if (el._pendingValue === pending) el._pendingValue = void 0;
11577
+ });
11578
+ }
11274
11579
  });
11275
11580
  };
11581
+ function isSameSelectValue(value, assignedValue, multiple) {
11582
+ if (!multiple) return looseEqual(value, assignedValue);
11583
+ if (isArray(value)) return looseEqual(value, assignedValue);
11584
+ if (isSet(value)) {
11585
+ if (value.size !== assignedValue.length) return false;
11586
+ for (const item of assignedValue) if (!value.has(item)) return false;
11587
+ return true;
11588
+ }
11589
+ return false;
11590
+ }
11276
11591
  /**
11277
11592
  * @internal
11278
11593
  */
11279
11594
  const vModelSetSelected = (el, value) => {
11280
11595
  el._modelValue = value;
11281
- if (el._assigning) return;
11596
+ const pending = el._pendingValue;
11597
+ el._pendingValue = void 0;
11598
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
11599
+ setSelected(el, value);
11600
+ };
11601
+ function setSelected(el, value) {
11282
11602
  const isMultiple = el.multiple;
11283
11603
  const isArrayValue = isArray(value);
11284
11604
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -11288,18 +11608,19 @@ const vModelSetSelected = (el, value) => {
11288
11608
  for (let i = 0, l = el.options.length; i < l; i++) {
11289
11609
  const option = el.options[i];
11290
11610
  const optionValue = getValue(option);
11291
- if (isMultiple) if (isArrayValue) {
11292
- const optionType = typeof optionValue;
11293
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
11294
- else option.selected = looseIndexOf(value, optionValue) > -1;
11295
- } else option.selected = value.has(optionValue);
11296
- else if (looseEqual(getValue(option), value)) {
11611
+ if (isMultiple) {
11612
+ if (isArrayValue) {
11613
+ const optionType = typeof optionValue;
11614
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
11615
+ else option.selected = looseIndexOf(value, optionValue) > -1;
11616
+ } else option.selected = value.has(optionValue);
11617
+ } else if (looseEqual(getValue(option), value)) {
11297
11618
  if (el.selectedIndex !== i) el.selectedIndex = i;
11298
11619
  return;
11299
11620
  }
11300
11621
  }
11301
11622
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
11302
- };
11623
+ }
11303
11624
  /**
11304
11625
  * @internal retrieve raw value set via :value bindings
11305
11626
  */
@@ -11613,7 +11934,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11613
11934
  withModifiers: () => withModifiers,
11614
11935
  withScopeId: () => withScopeId
11615
11936
  });
11616
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
11937
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
11617
11938
  let renderer;
11618
11939
  let enabledHydration = false;
11619
11940
  function ensureRenderer() {
@@ -11994,7 +12315,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
11994
12315
  //#endregion
11995
12316
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
11996
12317
  var _a;
11997
- const decodeMap = new Map([
12318
+ const decodeMap = /* @__PURE__ */ new Map([
11998
12319
  [0, 65533],
11999
12320
  [128, 8364],
12000
12321
  [130, 8218],
@@ -12062,7 +12383,7 @@ function decodeBase64(input) {
12062
12383
  }
12063
12384
  //#endregion
12064
12385
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
12065
- const htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
12386
+ const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
12066
12387
  //#endregion
12067
12388
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
12068
12389
  /**
@@ -12456,7 +12777,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
12456
12777
  }
12457
12778
  return -1;
12458
12779
  }
12459
- const htmlDecoder = /* @__PURE__ */ getDecoder(htmlDecodeTree);
12780
+ const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
12460
12781
  /**
12461
12782
  * Decodes an HTML string.
12462
12783
  *
@@ -12648,13 +12969,14 @@ var Tokenizer = class {
12648
12969
  }
12649
12970
  }
12650
12971
  stateInterpolationOpen(c) {
12651
- if (c === this.delimiterOpen[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterOpen.length - 1) {
12652
- const start = this.index + 1 - this.delimiterOpen.length;
12653
- if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
12654
- this.state = 3;
12655
- this.sectionStart = start;
12656
- } else this.delimiterIndex++;
12657
- else if (this.inRCDATA) {
12972
+ if (c === this.delimiterOpen[this.delimiterIndex]) {
12973
+ if (this.delimiterIndex === this.delimiterOpen.length - 1) {
12974
+ const start = this.index + 1 - this.delimiterOpen.length;
12975
+ if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
12976
+ this.state = 3;
12977
+ this.sectionStart = start;
12978
+ } else this.delimiterIndex++;
12979
+ } else if (this.inRCDATA) {
12658
12980
  this.state = 32;
12659
12981
  this.stateInRCDATA(c);
12660
12982
  } else {
@@ -12670,13 +12992,14 @@ var Tokenizer = class {
12670
12992
  }
12671
12993
  }
12672
12994
  stateInterpolationClose(c) {
12673
- if (c === this.delimiterClose[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterClose.length - 1) {
12674
- this.cbs.oninterpolation(this.sectionStart, this.index + 1);
12675
- if (this.inRCDATA) this.state = 32;
12676
- else this.state = 1;
12677
- this.sectionStart = this.index + 1;
12678
- } else this.delimiterIndex++;
12679
- else {
12995
+ if (c === this.delimiterClose[this.delimiterIndex]) {
12996
+ if (this.delimiterIndex === this.delimiterClose.length - 1) {
12997
+ this.cbs.oninterpolation(this.sectionStart, this.index + 1);
12998
+ if (this.inRCDATA) this.state = 32;
12999
+ else this.state = 1;
13000
+ this.sectionStart = this.index + 1;
13001
+ } else this.delimiterIndex++;
13002
+ } else {
12680
13003
  this.state = 3;
12681
13004
  this.stateInterpolation(c);
12682
13005
  }
@@ -12792,9 +13115,10 @@ var Tokenizer = class {
12792
13115
  this.sectionStart = this.index;
12793
13116
  if (this.mode === 0) this.state = 6;
12794
13117
  else if (this.inSFCRoot) this.state = 34;
12795
- else if (!this.inXML) if (c === 116) this.state = 30;
12796
- else this.state = c === 115 ? 29 : 6;
12797
- else this.state = 6;
13118
+ else if (!this.inXML) {
13119
+ if (c === 116) this.state = 30;
13120
+ else this.state = c === 115 ? 29 : 6;
13121
+ } else this.state = 6;
12798
13122
  } else if (c === 47) this.state = 8;
12799
13123
  else {
12800
13124
  this.state = 1;
@@ -13161,9 +13485,7 @@ var Tokenizer = class {
13161
13485
  case 24:
13162
13486
  this.stateInProcessingInstruction(c);
13163
13487
  break;
13164
- case 33:
13165
- this.stateInEntity();
13166
- break;
13488
+ case 33: this.stateInEntity();
13167
13489
  }
13168
13490
  this.index++;
13169
13491
  }
@@ -13196,9 +13518,10 @@ var Tokenizer = class {
13196
13518
  handleTrailingData() {
13197
13519
  const endIndex = this.buffer.length;
13198
13520
  if (this.sectionStart >= endIndex) return;
13199
- if (this.state === 28) if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
13200
- else this.cbs.oncomment(this.sectionStart, endIndex);
13201
- 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);
13521
+ if (this.state === 28) {
13522
+ if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
13523
+ else this.cbs.oncomment(this.sectionStart, endIndex);
13524
+ } 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);
13202
13525
  }
13203
13526
  emitCodePoint(cp, consumed) {
13204
13527
  if (this.baseState !== 1 && this.baseState !== 32) {
@@ -13359,16 +13682,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
13359
13682
  const isRefed = isReferencedIdentifier(node, parent, parentStack);
13360
13683
  if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
13361
13684
  } else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
13362
- else if (isFunctionType(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13363
- else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
13364
- else if (node.type === "BlockStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13365
- else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
13366
- else if (node.type === "SwitchStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13367
- else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
13368
- else if (node.type === "CatchClause" && node.param) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13369
- else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
13370
- else if (isForStatement(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13371
- else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
13685
+ else if (isFunctionType(node)) {
13686
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13687
+ else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
13688
+ } else if (node.type === "BlockStatement") {
13689
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13690
+ else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
13691
+ } else if (node.type === "SwitchStatement") {
13692
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13693
+ else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
13694
+ } else if (node.type === "CatchClause" && node.param) {
13695
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13696
+ else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
13697
+ } else if (isForStatement(node)) {
13698
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13699
+ else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
13700
+ }
13372
13701
  },
13373
13702
  leave(node, parent) {
13374
13703
  parent && parentStack.pop();
@@ -13460,9 +13789,7 @@ function extractIdentifiers(param, nodes = []) {
13460
13789
  case "RestElement":
13461
13790
  extractIdentifiers(param.argument, nodes);
13462
13791
  break;
13463
- case "AssignmentPattern":
13464
- extractIdentifiers(param.left, nodes);
13465
- break;
13792
+ case "AssignmentPattern": extractIdentifiers(param.left, nodes);
13466
13793
  }
13467
13794
  return nodes;
13468
13795
  }
@@ -13658,7 +13985,7 @@ function isTemplateNode(node) {
13658
13985
  function isSlotOutlet(node) {
13659
13986
  return node.type === 1 && node.tagType === 2;
13660
13987
  }
13661
- const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
13988
+ const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
13662
13989
  function getUnnormalizedProps(props, callPath = []) {
13663
13990
  if (props && !isString(props) && props.type === 14) {
13664
13991
  const callee = props.callee;
@@ -13701,9 +14028,10 @@ function injectProp(node, prop, context) {
13701
14028
  propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
13702
14029
  if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
13703
14030
  }
13704
- if (node.type === 13) if (parentCall) parentCall.arguments[0] = propsWithInjection;
13705
- else node.props = propsWithInjection;
13706
- else if (parentCall) parentCall.arguments[0] = propsWithInjection;
14031
+ if (node.type === 13) {
14032
+ if (parentCall) parentCall.arguments[0] = propsWithInjection;
14033
+ else node.props = propsWithInjection;
14034
+ } else if (parentCall) parentCall.arguments[0] = propsWithInjection;
13707
14035
  else node.arguments[2] = propsWithInjection;
13708
14036
  }
13709
14037
  function injectSlotKey(node, prop) {
@@ -13943,26 +14271,28 @@ const tokenizer = new Tokenizer(stack, {
13943
14271
  onattribend(quote, end) {
13944
14272
  if (currentOpenTag && currentProp) {
13945
14273
  setLocEnd(currentProp.loc, end);
13946
- if (quote !== 0) if (currentProp.type === 6) {
13947
- if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
13948
- if (quote === 1 && !currentAttrValue) emitError(13, end);
13949
- currentProp.value = {
13950
- type: 2,
13951
- content: currentAttrValue,
13952
- loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
13953
- };
13954
- if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
13955
- } else {
13956
- let expParseMode = 0;
13957
- if (currentProp.name === "for") expParseMode = 3;
13958
- else if (currentProp.name === "slot") expParseMode = 1;
13959
- else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
13960
- currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
13961
- if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
13962
- let syncIndex = -1;
13963
- if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex((mod) => mod.content === "sync")) > -1 && checkCompatEnabled("COMPILER_V_BIND_SYNC", currentOptions, currentProp.loc, currentProp.arg.loc.source)) {
13964
- currentProp.name = "model";
13965
- currentProp.modifiers.splice(syncIndex, 1);
14274
+ if (quote !== 0) {
14275
+ if (currentProp.type === 6) {
14276
+ if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
14277
+ if (quote === 1 && !currentAttrValue) emitError(13, end);
14278
+ currentProp.value = {
14279
+ type: 2,
14280
+ content: currentAttrValue,
14281
+ loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
14282
+ };
14283
+ if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
14284
+ } else {
14285
+ let expParseMode = 0;
14286
+ if (currentProp.name === "for") expParseMode = 3;
14287
+ else if (currentProp.name === "slot") expParseMode = 1;
14288
+ else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
14289
+ currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
14290
+ if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
14291
+ let syncIndex = -1;
14292
+ if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex((mod) => mod.content === "sync")) > -1 && checkCompatEnabled("COMPILER_V_BIND_SYNC", currentOptions, currentProp.loc, currentProp.arg.loc.source)) {
14293
+ currentProp.name = "model";
14294
+ currentProp.modifiers.splice(syncIndex, 1);
14295
+ }
13966
14296
  }
13967
14297
  }
13968
14298
  if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
@@ -14005,10 +14335,7 @@ const tokenizer = new Tokenizer(stack, {
14005
14335
  case 18:
14006
14336
  case 19:
14007
14337
  case 20:
14008
- case 21:
14009
- emitError(9, end);
14010
- break;
14011
- default: break;
14338
+ case 21: emitError(9, end);
14012
14339
  }
14013
14340
  for (let index = 0; index < stack.length; index++) {
14014
14341
  onCloseTag(stack[index], end - 1);
@@ -14154,7 +14481,7 @@ function backTrack(index, c) {
14154
14481
  while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
14155
14482
  return i;
14156
14483
  }
14157
- const specialTemplateDir = new Set([
14484
+ const specialTemplateDir = /* @__PURE__ */ new Set([
14158
14485
  "if",
14159
14486
  "else",
14160
14487
  "else-if",
@@ -14190,16 +14517,18 @@ function condenseWhitespace(nodes) {
14190
14517
  let removedWhitespace = false;
14191
14518
  for (let i = 0; i < nodes.length; i++) {
14192
14519
  const node = nodes[i];
14193
- if (node.type === 2) if (!inPre) {
14194
- if (isAllWhitespace(node.content)) {
14195
- const prev = nodes[i - 1] && nodes[i - 1].type;
14196
- const next = nodes[i + 1] && nodes[i + 1].type;
14197
- if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
14198
- removedWhitespace = true;
14199
- nodes[i] = null;
14200
- } else node.content = " ";
14201
- } else if (shouldCondense) node.content = condense(node.content);
14202
- } else node.content = node.content.replace(windowsNewlineRE, "\n");
14520
+ if (node.type === 2) {
14521
+ if (!inPre) {
14522
+ if (isAllWhitespace(node.content)) {
14523
+ const prev = nodes[i - 1] && nodes[i - 1].type;
14524
+ const next = nodes[i + 1] && nodes[i + 1].type;
14525
+ if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
14526
+ removedWhitespace = true;
14527
+ nodes[i] = null;
14528
+ } else node.content = " ";
14529
+ } else if (shouldCondense) node.content = condense(node.content);
14530
+ } else node.content = node.content.replace(windowsNewlineRE, "\n");
14531
+ }
14203
14532
  }
14204
14533
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
14205
14534
  }
@@ -14477,7 +14806,7 @@ function getConstantType(node, context) {
14477
14806
  default: return 0;
14478
14807
  }
14479
14808
  }
14480
- const allowHoistedHelperSet = new Set([
14809
+ const allowHoistedHelperSet = /* @__PURE__ */ new Set([
14481
14810
  NORMALIZE_CLASS,
14482
14811
  NORMALIZE_STYLE,
14483
14812
  NORMALIZE_PROPS,
@@ -14521,7 +14850,7 @@ function getSelfName(filename) {
14521
14850
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
14522
14851
  return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
14523
14852
  }
14524
- 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 }) {
14853
+ 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 }) {
14525
14854
  const context = {
14526
14855
  filename,
14527
14856
  selfName: getSelfName(filename),
@@ -14543,7 +14872,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
14543
14872
  bindingMetadata,
14544
14873
  inline,
14545
14874
  isTS,
14546
- eventDelegation,
14547
14875
  onError,
14548
14876
  onWarn,
14549
14877
  compatConfig,
@@ -14655,7 +14983,7 @@ function transform(root, options) {
14655
14983
  traverseNode(root, context);
14656
14984
  if (options.hoistStatic) cacheStatic(root, context);
14657
14985
  if (!options.ssr) createRootCodegen(root, context);
14658
- root.helpers = new Set([...context.helpers.keys()]);
14986
+ root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
14659
14987
  root.components = [...context.components];
14660
14988
  root.directives = [...context.directives];
14661
14989
  root.imports = context.imports;
@@ -14702,8 +15030,10 @@ function traverseNode(node, context) {
14702
15030
  const exitFns = [];
14703
15031
  for (let i = 0; i < nodeTransforms.length; i++) {
14704
15032
  const onExit = nodeTransforms[i](node, context);
14705
- if (onExit) if (isArray(onExit)) exitFns.push(...onExit);
14706
- else exitFns.push(onExit);
15033
+ if (onExit) {
15034
+ if (isArray(onExit)) exitFns.push(...onExit);
15035
+ else exitFns.push(onExit);
15036
+ }
14707
15037
  if (!context.currentNode) return;
14708
15038
  else node = context.currentNode;
14709
15039
  }
@@ -14720,9 +15050,7 @@ function traverseNode(node, context) {
14720
15050
  case 10:
14721
15051
  case 11:
14722
15052
  case 1:
14723
- case 0:
14724
- traverseChildren(node, context);
14725
- break;
15053
+ case 0: traverseChildren(node, context);
14726
15054
  }
14727
15055
  context.currentNode = node;
14728
15056
  let i = exitFns.length;
@@ -14908,16 +15236,18 @@ function genFunctionPreamble(ast, context) {
14908
15236
  const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
14909
15237
  const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
14910
15238
  const helpers = Array.from(ast.helpers);
14911
- if (helpers.length > 0) if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
14912
- else {
14913
- push(`const _Vue = ${VueBinding}\n`, -1);
14914
- if (ast.hoists.length) push(`const { ${[
14915
- CREATE_VNODE,
14916
- CREATE_ELEMENT_VNODE,
14917
- CREATE_COMMENT,
14918
- CREATE_TEXT,
14919
- CREATE_STATIC
14920
- ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
15239
+ if (helpers.length > 0) {
15240
+ if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
15241
+ else {
15242
+ push(`const _Vue = ${VueBinding}\n`, -1);
15243
+ if (ast.hoists.length) push(`const { ${[
15244
+ CREATE_VNODE,
15245
+ CREATE_ELEMENT_VNODE,
15246
+ CREATE_COMMENT,
15247
+ CREATE_TEXT,
15248
+ CREATE_STATIC
15249
+ ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
15250
+ }
14921
15251
  }
14922
15252
  if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
14923
15253
  genHoists(ast.hoists, context);
@@ -14994,10 +15324,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
14994
15324
  if (isString(node)) push(node, -3);
14995
15325
  else if (isArray(node)) genNodeListAsArray(node, context);
14996
15326
  else genNode(node, context);
14997
- if (i < nodes.length - 1) if (multilines) {
14998
- comma && push(",");
14999
- newline();
15000
- } else comma && push(", ");
15327
+ if (i < nodes.length - 1) {
15328
+ if (multilines) {
15329
+ comma && push(",");
15330
+ newline();
15331
+ } else comma && push(", ");
15332
+ }
15001
15333
  }
15002
15334
  }
15003
15335
  function genNode(node, context) {
@@ -15119,8 +15451,10 @@ function genVNodeCall(node, context) {
15119
15451
  const { push, helper, pure } = context;
15120
15452
  const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent } = node;
15121
15453
  let patchFlagString;
15122
- if (patchFlag) if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
15123
- else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
15454
+ if (patchFlag) {
15455
+ if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
15456
+ else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
15457
+ }
15124
15458
  if (directives) push(helper(WITH_DIRECTIVES) + `(`);
15125
15459
  if (isBlock) push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
15126
15460
  if (pure) push(PURE_ANNOTATION);
@@ -15316,7 +15650,7 @@ function genReturnStatement({ returns }, context) {
15316
15650
  }
15317
15651
  //#endregion
15318
15652
  //#region packages/compiler-core/src/transforms/transformExpression.ts
15319
- const isLiteralWhitelisted = /* @__PURE__ */ makeMap("true,false,null,this");
15653
+ const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
15320
15654
  const transformExpression = (node, context) => {
15321
15655
  if (node.type === 5) node.content = processExpression(node.content, context);
15322
15656
  else if (node.type === 1) {
@@ -15349,20 +15683,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
15349
15683
  if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
15350
15684
  else if (type === "setup-ref") return `${raw}.value`;
15351
15685
  else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
15352
- else if (type === "setup-let") if (isAssignmentLVal) {
15353
- const { right: rVal, operator } = parent;
15354
- const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
15355
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
15356
- } else if (isUpdateArg) {
15357
- id.start = parent.start;
15358
- id.end = parent.end;
15359
- const { prefix: isPrefix, operator } = parent;
15360
- const prefix = isPrefix ? operator : ``;
15361
- const postfix = isPrefix ? `` : operator;
15362
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
15363
- } else if (isDestructureAssignment) return raw;
15364
- else return wrapWithUnref(raw);
15365
- else if (type === "props") return genPropsAccessExp(raw);
15686
+ else if (type === "setup-let") {
15687
+ if (isAssignmentLVal) {
15688
+ const { right: rVal, operator } = parent;
15689
+ const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
15690
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
15691
+ } else if (isUpdateArg) {
15692
+ id.start = parent.start;
15693
+ id.end = parent.end;
15694
+ const { prefix: isPrefix, operator } = parent;
15695
+ const prefix = isPrefix ? operator : ``;
15696
+ const postfix = isPrefix ? `` : operator;
15697
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
15698
+ } else if (isDestructureAssignment) return raw;
15699
+ else return wrapWithUnref(raw);
15700
+ } else if (type === "props") return genPropsAccessExp(raw);
15366
15701
  else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
15367
15702
  } else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
15368
15703
  else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
@@ -15379,8 +15714,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
15379
15714
  if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
15380
15715
  if (isConst(bindingMetadata[rawExp])) node.constType = 1;
15381
15716
  node.content = rewriteIdentifier(rawExp);
15382
- } else if (!isScopeVarReference) if (isLiteral) node.constType = 3;
15383
- else node.constType = 2;
15717
+ } else if (!isScopeVarReference) {
15718
+ if (isLiteral) node.constType = 3;
15719
+ else node.constType = 2;
15720
+ }
15384
15721
  return node;
15385
15722
  }
15386
15723
  if (!ast) {
@@ -15539,16 +15876,17 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
15539
15876
  const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
15540
15877
  const { children } = branch;
15541
15878
  const firstChild = children[0];
15542
- if (children.length !== 1 || firstChild.type !== 1) if (children.length === 1 && firstChild.type === 11) {
15543
- const vnodeCall = firstChild.codegenNode;
15544
- injectProp(vnodeCall, keyProperty, context);
15545
- return vnodeCall;
15879
+ if (children.length !== 1 || firstChild.type !== 1) {
15880
+ if (children.length === 1 && firstChild.type === 11) {
15881
+ const vnodeCall = firstChild.codegenNode;
15882
+ injectProp(vnodeCall, keyProperty, context);
15883
+ return vnodeCall;
15884
+ } else {
15885
+ let patchFlag = 64;
15886
+ if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
15887
+ return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
15888
+ }
15546
15889
  } else {
15547
- let patchFlag = 64;
15548
- if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
15549
- return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
15550
- }
15551
- else {
15552
15890
  const ret = firstChild.codegenNode;
15553
15891
  const vnodeCall = getMemoedVNodeCall(ret);
15554
15892
  if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
@@ -15569,9 +15907,10 @@ function isSameKey(a, b) {
15569
15907
  return true;
15570
15908
  }
15571
15909
  function getParentCondition(node) {
15572
- while (true) if (node.type === 19) if (node.alternate.type === 19) node = node.alternate;
15573
- else return node;
15574
- else if (node.type === 20) node = node.value;
15910
+ while (true) if (node.type === 19) {
15911
+ if (node.alternate.type === 19) node = node.alternate;
15912
+ else return node;
15913
+ } else if (node.type === 20) node = node.value;
15575
15914
  }
15576
15915
  //#endregion
15577
15916
  //#region packages/compiler-core/src/transforms/vFor.ts
@@ -15614,15 +15953,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
15614
15953
  else {
15615
15954
  childBlock = children[0].codegenNode;
15616
15955
  if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
15617
- if (childBlock.isBlock !== !isStableFragment) if (childBlock.isBlock) {
15618
- removeHelper(OPEN_BLOCK);
15619
- removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
15620
- } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15621
- childBlock.isBlock = !isStableFragment;
15956
+ const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
15957
+ if (childBlock.isBlock !== shouldUseBlock) {
15958
+ if (childBlock.isBlock) {
15959
+ removeHelper(OPEN_BLOCK);
15960
+ removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
15961
+ } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15962
+ }
15963
+ childBlock.isBlock = shouldUseBlock;
15622
15964
  if (childBlock.isBlock) {
15623
15965
  helper(OPEN_BLOCK);
15624
15966
  helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
15625
- } else helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15967
+ } else {
15968
+ helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15969
+ if (childBlock.needsPatch) {
15970
+ var _childBlock$patchFlag;
15971
+ childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
15972
+ }
15973
+ }
15626
15974
  }
15627
15975
  if (memo) {
15628
15976
  const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
@@ -15828,8 +16176,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
15828
16176
  return createObjectProperty(`default`, fn);
15829
16177
  };
15830
16178
  if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
15831
- else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
15832
- else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
16179
+ else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
16180
+ if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
16181
+ else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
16182
+ }
15833
16183
  }
15834
16184
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
15835
16185
  let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ` /* ${slotFlagsText[slotFlag]} */`, false))), loc);
@@ -15855,10 +16205,7 @@ function hasForwardedSlots(children) {
15855
16205
  if (hasForwardedSlots(child.branches)) return true;
15856
16206
  break;
15857
16207
  case 10:
15858
- case 11:
15859
- if (hasForwardedSlots(child.children)) return true;
15860
- break;
15861
- default: break;
16208
+ case 11: if (hasForwardedSlots(child.children)) return true;
15862
16209
  }
15863
16210
  }
15864
16211
  return false;
@@ -15880,12 +16227,16 @@ const transformElement = (node, context) => {
15880
16227
  let vnodeDynamicProps;
15881
16228
  let dynamicPropNames;
15882
16229
  let vnodeDirectives;
16230
+ let needsPatch = false;
16231
+ let isBlockRequired = false;
15883
16232
  let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
15884
16233
  if (props.length > 0) {
15885
16234
  const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
15886
16235
  vnodeProps = propsBuildResult.props;
15887
16236
  patchFlag = propsBuildResult.patchFlag;
15888
16237
  dynamicPropNames = propsBuildResult.dynamicPropNames;
16238
+ needsPatch = propsBuildResult.needsPatch;
16239
+ isBlockRequired = propsBuildResult.isBlockRequired;
15889
16240
  const directives = propsBuildResult.directives;
15890
16241
  vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
15891
16242
  if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
@@ -15914,7 +16265,10 @@ const transformElement = (node, context) => {
15914
16265
  } else vnodeChildren = node.children;
15915
16266
  }
15916
16267
  if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
15917
- node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
16268
+ const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
16269
+ needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
16270
+ if (needsPatch) vnodeCall.needsPatch = true;
16271
+ if (isBlockRequired) vnodeCall.isBlockRequired = true;
15918
16272
  };
15919
16273
  };
15920
16274
  function resolveComponentType(node, context, ssr = false) {
@@ -15999,6 +16353,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15999
16353
  const runtimeDirectives = [];
16000
16354
  const hasChildren = children.length > 0;
16001
16355
  let shouldUseBlock = false;
16356
+ let isBlockRequired = false;
16002
16357
  let patchFlag = 0;
16003
16358
  let hasRef = false;
16004
16359
  let hasClassBinding = false;
@@ -16023,12 +16378,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16023
16378
  const isEventHandler = isOn(name);
16024
16379
  if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
16025
16380
  if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
16381
+ if (name === "ref") hasRef = true;
16026
16382
  if (isEventHandler && value.type === 14) value = value.arguments[0];
16027
16383
  if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
16028
- if (name === "ref") hasRef = true;
16029
- else if (name === "class") hasClassBinding = true;
16384
+ if (name === "class") hasClassBinding = true;
16030
16385
  else if (name === "style") hasStyleBinding = true;
16031
- else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
16386
+ else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
16032
16387
  if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
16033
16388
  } else hasDynamicKeys = true;
16034
16389
  };
@@ -16061,33 +16416,38 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16061
16416
  if (name === "once" || name === "memo") continue;
16062
16417
  if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
16063
16418
  if (isVOn && ssr) continue;
16064
- if (isVBind && isStaticArgOf(arg, "key") || isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")) shouldUseBlock = true;
16419
+ if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
16420
+ if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
16421
+ shouldUseBlock = true;
16422
+ isBlockRequired = true;
16423
+ }
16065
16424
  if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
16066
16425
  if (!arg && (isVBind || isVOn)) {
16067
16426
  hasDynamicKeys = true;
16068
- if (exp) if (isVBind) {
16069
- pushMergeArg();
16070
- if (mergeArgs.some((arg) => {
16071
- if (arg.type === 15) return arg.properties.some(({ key }) => {
16072
- if (key.type !== 4 || !key.isStatic) return true;
16073
- return key.content !== "class" && key.content !== "style" && !isOn(key.content);
16074
- });
16075
- else return true;
16076
- })) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
16077
- if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
16078
- mergeArgs.unshift(exp);
16079
- continue;
16080
- }
16081
- pushRefVForMarker();
16082
- pushMergeArg();
16083
- mergeArgs.push(exp);
16084
- } else pushMergeArg({
16085
- type: 14,
16086
- loc,
16087
- callee: context.helper(TO_HANDLERS),
16088
- arguments: isComponent ? [exp] : [exp, `true`]
16089
- });
16090
- else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
16427
+ if (exp) {
16428
+ if (isVBind) {
16429
+ pushMergeArg();
16430
+ if (mergeArgs.some((arg) => {
16431
+ if (arg.type === 15) return arg.properties.some(({ key }) => {
16432
+ if (key.type !== 4 || !key.isStatic) return true;
16433
+ return key.content !== "class" && key.content !== "style" && !isOn(key.content);
16434
+ });
16435
+ else return true;
16436
+ })) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
16437
+ if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
16438
+ mergeArgs.unshift(exp);
16439
+ continue;
16440
+ }
16441
+ pushRefVForMarker();
16442
+ pushMergeArg();
16443
+ mergeArgs.push(exp);
16444
+ } else pushMergeArg({
16445
+ type: 14,
16446
+ loc,
16447
+ callee: context.helper(TO_HANDLERS),
16448
+ arguments: isComponent ? [exp] : [exp, `true`]
16449
+ });
16450
+ } else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
16091
16451
  continue;
16092
16452
  }
16093
16453
  if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
@@ -16103,7 +16463,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16103
16463
  }
16104
16464
  } else if (!isBuiltInDirective(name)) {
16105
16465
  runtimeDirectives.push(prop);
16106
- if (hasChildren) shouldUseBlock = true;
16466
+ if (hasChildren) {
16467
+ shouldUseBlock = true;
16468
+ isBlockRequired = true;
16469
+ }
16107
16470
  }
16108
16471
  }
16109
16472
  }
@@ -16120,7 +16483,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16120
16483
  if (dynamicPropNames.length) patchFlag |= 8;
16121
16484
  if (hasHydrationEventBinding) patchFlag |= 32;
16122
16485
  }
16123
- if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) patchFlag |= 512;
16486
+ const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
16487
+ if (!shouldUseBlock && needsPatch) patchFlag |= 512;
16124
16488
  if (!context.inSSR && propsExpression) switch (propsExpression.type) {
16125
16489
  case 15:
16126
16490
  let classKeyIndex = -1;
@@ -16141,16 +16505,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16141
16505
  } else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
16142
16506
  break;
16143
16507
  case 14: break;
16144
- default:
16145
- propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
16146
- break;
16508
+ default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
16147
16509
  }
16148
16510
  return {
16149
16511
  props: propsExpression,
16150
16512
  directives: runtimeDirectives,
16151
16513
  patchFlag,
16152
16514
  dynamicPropNames,
16153
- shouldUseBlock
16515
+ shouldUseBlock,
16516
+ needsPatch,
16517
+ isBlockRequired
16154
16518
  };
16155
16519
  }
16156
16520
  function dedupeProperties(properties) {
@@ -16251,10 +16615,12 @@ function processSlotOutlet(node, context) {
16251
16615
  for (let i = 0; i < node.props.length; i++) {
16252
16616
  const p = node.props[i];
16253
16617
  if (p.type === 6) {
16254
- if (p.value) if (p.name === "name") slotName = JSON.stringify(p.value.content);
16255
- else {
16256
- p.name = camelize(p.name);
16257
- nonNameProps.push(p);
16618
+ if (p.value) {
16619
+ if (p.name === "name") slotName = JSON.stringify(p.value.content);
16620
+ else {
16621
+ p.name = camelize(p.name);
16622
+ nonNameProps.push(p);
16623
+ }
16258
16624
  }
16259
16625
  } else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
16260
16626
  if (p.exp) slotName = p.exp;
@@ -16283,17 +16649,18 @@ const transformOn$1 = (dir, node, context, augmentor) => {
16283
16649
  const { loc, modifiers, arg } = dir;
16284
16650
  if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
16285
16651
  let eventName;
16286
- if (arg.type === 4) if (arg.isStatic) {
16287
- let rawName = arg.content;
16288
- if (rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
16289
- if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
16290
- eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
16291
- } else eventName = createCompoundExpression([
16292
- `${context.helperString(TO_HANDLER_KEY)}(`,
16293
- arg,
16294
- `)`
16295
- ]);
16296
- else {
16652
+ if (arg.type === 4) {
16653
+ if (arg.isStatic) {
16654
+ let rawName = arg.content;
16655
+ if (rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
16656
+ if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
16657
+ eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
16658
+ } else eventName = createCompoundExpression([
16659
+ `${context.helperString(TO_HANDLER_KEY)}(`,
16660
+ arg,
16661
+ `)`
16662
+ ]);
16663
+ } else {
16297
16664
  eventName = arg;
16298
16665
  eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
16299
16666
  eventName.children.push(`)`);
@@ -16310,13 +16677,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
16310
16677
  exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
16311
16678
  isInlineStatement && context.removeIdentifiers(`$event`);
16312
16679
  shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
16313
- if (shouldCache && isMemberExp) if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
16314
- else exp.children = [
16315
- ...exp.children,
16316
- ` && `,
16317
- ...exp.children,
16318
- `(...args)`
16319
- ];
16680
+ if (shouldCache && isMemberExp) {
16681
+ if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
16682
+ else exp.children = [
16683
+ ...exp.children,
16684
+ ` && `,
16685
+ ...exp.children,
16686
+ `(...args)`
16687
+ ];
16688
+ }
16320
16689
  }
16321
16690
  if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
16322
16691
  `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
@@ -16344,11 +16713,14 @@ const transformBind = (dir, _node, context) => {
16344
16713
  arg.children.unshift(`(`);
16345
16714
  arg.children.push(`) || ""`);
16346
16715
  } else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
16347
- if (modifiers.some((mod) => mod.content === "camel")) if (arg.type === 4) if (arg.isStatic) arg.content = camelize(arg.content);
16348
- else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
16349
- else {
16350
- arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
16351
- arg.children.push(`)`);
16716
+ if (modifiers.some((mod) => mod.content === "camel")) {
16717
+ if (arg.type === 4) {
16718
+ if (arg.isStatic) arg.content = camelize(arg.content);
16719
+ else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
16720
+ } else {
16721
+ arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
16722
+ arg.children.push(`)`);
16723
+ }
16352
16724
  }
16353
16725
  if (!context.inSSR) {
16354
16726
  if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
@@ -16357,9 +16729,10 @@ const transformBind = (dir, _node, context) => {
16357
16729
  return { props: [createObjectProperty(arg, exp)] };
16358
16730
  };
16359
16731
  const injectPrefix = (arg, prefix) => {
16360
- if (arg.type === 4) if (arg.isStatic) arg.content = prefix + arg.content;
16361
- else arg.content = `\`${prefix}\${${arg.content}}\``;
16362
- else {
16732
+ if (arg.type === 4) {
16733
+ if (arg.isStatic) arg.content = prefix + arg.content;
16734
+ else arg.content = `\`${prefix}\${${arg.content}}\``;
16735
+ } else {
16363
16736
  arg.children.unshift(`'${prefix}' + (`);
16364
16737
  arg.children.push(`)`);
16365
16738
  }
@@ -16454,20 +16827,21 @@ const transformModel$1 = (dir, node, context) => {
16454
16827
  const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
16455
16828
  let assignmentExp;
16456
16829
  const eventArg = context.isTS ? `($event: any)` : `$event`;
16457
- if (maybeRef) if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
16458
- `${eventArg} => ((`,
16459
- createSimpleExpression(rawExp, false, exp.loc),
16460
- `).value = $event)`
16461
- ]);
16462
- else {
16463
- const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
16464
- assignmentExp = createCompoundExpression([
16465
- `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
16830
+ if (maybeRef) {
16831
+ if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
16832
+ `${eventArg} => ((`,
16466
16833
  createSimpleExpression(rawExp, false, exp.loc),
16467
- `).value = $event : ${altAssignment})`
16834
+ `).value = $event)`
16468
16835
  ]);
16469
- }
16470
- else assignmentExp = createCompoundExpression([
16836
+ else {
16837
+ const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
16838
+ assignmentExp = createCompoundExpression([
16839
+ `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
16840
+ createSimpleExpression(rawExp, false, exp.loc),
16841
+ `).value = $event : ${altAssignment})`
16842
+ ]);
16843
+ }
16844
+ } else assignmentExp = createCompoundExpression([
16471
16845
  `${eventArg} => ((`,
16472
16846
  exp,
16473
16847
  `) = $event)`
@@ -16526,11 +16900,12 @@ function parseFilter(node, context) {
16526
16900
  if (c === 96 && prev !== 92) inTemplateString = false;
16527
16901
  } else if (inRegex) {
16528
16902
  if (c === 47 && prev !== 92) inRegex = false;
16529
- } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) if (expression === void 0) {
16530
- lastFilterIndex = i + 1;
16531
- expression = exp.slice(0, i).trim();
16532
- } else pushFilter();
16533
- else {
16903
+ } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
16904
+ if (expression === void 0) {
16905
+ lastFilterIndex = i + 1;
16906
+ expression = exp.slice(0, i).trim();
16907
+ } else pushFilter();
16908
+ } else {
16534
16909
  switch (c) {
16535
16910
  case 34:
16536
16911
  inDouble = true;
@@ -16556,9 +16931,7 @@ function parseFilter(node, context) {
16556
16931
  case 123:
16557
16932
  curly++;
16558
16933
  break;
16559
- case 125:
16560
- curly--;
16561
- break;
16934
+ case 125: curly--;
16562
16935
  }
16563
16936
  if (c === 47) {
16564
16937
  let j = i - 1;
@@ -16823,9 +17196,7 @@ const transformModel = (dir, node, context) => {
16823
17196
  isInvalidType = true;
16824
17197
  context.onError(createDOMCompilerError(60, dir.loc));
16825
17198
  break;
16826
- default:
16827
- checkDuplicatedValue();
16828
- break;
17199
+ default: checkDuplicatedValue();
16829
17200
  }
16830
17201
  } else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
16831
17202
  else checkDuplicatedValue();
@@ -16838,27 +17209,37 @@ const transformModel = (dir, node, context) => {
16838
17209
  };
16839
17210
  //#endregion
16840
17211
  //#region packages/compiler-dom/src/transforms/vOn.ts
16841
- const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
16842
- const isNonKeyModifier = /* @__PURE__ */ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
16843
- const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
16844
- const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);
17212
+ const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
17213
+ const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
17214
+ const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
17215
+ const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
16845
17216
  const resolveModifiers = (key, modifiers, context, loc) => {
16846
17217
  const keyModifiers = [];
16847
17218
  const nonKeyModifiers = [];
16848
17219
  const eventOptionModifiers = [];
16849
17220
  for (let i = 0; i < modifiers.length; i++) {
16850
17221
  const modifier = modifiers[i].content;
17222
+ if (modifier === "delegate") {
17223
+ if (context) {
17224
+ const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
17225
+ error.loc = modifiers[i].loc;
17226
+ context.onWarn(error);
17227
+ }
17228
+ continue;
17229
+ }
16851
17230
  if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
16852
17231
  else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
16853
17232
  else {
16854
17233
  const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
16855
- if (maybeKeyModifier(modifier)) if (keyString) if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
16856
- else nonKeyModifiers.push(modifier);
16857
- else {
16858
- keyModifiers.push(modifier);
16859
- nonKeyModifiers.push(modifier);
16860
- }
16861
- else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
17234
+ if (maybeKeyModifier(modifier)) {
17235
+ if (keyString) {
17236
+ if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
17237
+ else nonKeyModifiers.push(modifier);
17238
+ } else {
17239
+ keyModifiers.push(modifier);
17240
+ nonKeyModifiers.push(modifier);
17241
+ }
17242
+ } else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
16862
17243
  else keyModifiers.push(modifier);
16863
17244
  }
16864
17245
  }
@@ -17028,7 +17409,7 @@ const dataAriaRE = /^(?:data|aria)-/;
17028
17409
  const isStringifiableAttr = (name, ns) => {
17029
17410
  return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
17030
17411
  };
17031
- const isNonStringifiable = /* @__PURE__ */ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
17412
+ const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
17032
17413
  /**
17033
17414
  * for a cached node, analyze it and return:
17034
17415
  * - false: bailed (contains non-stringifiable props or runtime constant)
@@ -17099,10 +17480,11 @@ function stringifyElement(node, context) {
17099
17480
  res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
17100
17481
  continue;
17101
17482
  }
17102
- if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
17483
+ if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
17103
17484
  let evaluated = evaluateConstant(exp);
17104
17485
  if (evaluated != null) {
17105
17486
  const arg = p.arg && p.arg.content;
17487
+ if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
17106
17488
  if (arg === "class") evaluated = normalizeClass(evaluated);
17107
17489
  else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
17108
17490
  res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
@@ -17164,7 +17546,7 @@ function isValidHTMLNesting(parent, child) {
17164
17546
  }
17165
17547
  return true;
17166
17548
  }
17167
- const headings = new Set([
17549
+ const headings = /* @__PURE__ */ new Set([
17168
17550
  "h1",
17169
17551
  "h2",
17170
17552
  "h3",
@@ -17176,7 +17558,7 @@ const emptySet = /* @__PURE__ */ new Set([]);
17176
17558
  /**
17177
17559
  * maps element to set of elements that can be it's children, no other */
17178
17560
  const onlyValidChildren = {
17179
- head: new Set([
17561
+ head: /* @__PURE__ */ new Set([
17180
17562
  "base",
17181
17563
  "basefront",
17182
17564
  "bgsound",
@@ -17189,24 +17571,24 @@ const onlyValidChildren = {
17189
17571
  "script",
17190
17572
  "template"
17191
17573
  ]),
17192
- optgroup: new Set(["option"]),
17193
- select: new Set([
17574
+ optgroup: /* @__PURE__ */ new Set(["option"]),
17575
+ select: /* @__PURE__ */ new Set([
17194
17576
  "optgroup",
17195
17577
  "option",
17196
17578
  "hr"
17197
17579
  ]),
17198
- table: new Set([
17580
+ table: /* @__PURE__ */ new Set([
17199
17581
  "caption",
17200
17582
  "colgroup",
17201
17583
  "tbody",
17202
17584
  "tfoot",
17203
17585
  "thead"
17204
17586
  ]),
17205
- tr: new Set(["td", "th"]),
17206
- colgroup: new Set(["col"]),
17207
- tbody: new Set(["tr"]),
17208
- thead: new Set(["tr"]),
17209
- tfoot: new Set(["tr"]),
17587
+ tr: /* @__PURE__ */ new Set(["td", "th"]),
17588
+ colgroup: /* @__PURE__ */ new Set(["col"]),
17589
+ tbody: /* @__PURE__ */ new Set(["tr"]),
17590
+ thead: /* @__PURE__ */ new Set(["tr"]),
17591
+ tfoot: /* @__PURE__ */ new Set(["tr"]),
17210
17592
  script: emptySet,
17211
17593
  iframe: emptySet,
17212
17594
  option: emptySet,
@@ -17217,30 +17599,30 @@ const onlyValidChildren = {
17217
17599
  /** maps elements to set of elements which can be it's parent, no other */
17218
17600
  const onlyValidParents = {
17219
17601
  html: emptySet,
17220
- body: new Set(["html"]),
17221
- head: new Set(["html"]),
17222
- td: new Set(["tr"]),
17223
- colgroup: new Set(["table"]),
17224
- caption: new Set(["table"]),
17225
- tbody: new Set(["table"]),
17226
- tfoot: new Set(["table"]),
17227
- col: new Set(["colgroup"]),
17228
- th: new Set(["tr"]),
17229
- thead: new Set(["table"]),
17230
- tr: new Set([
17602
+ body: /* @__PURE__ */ new Set(["html"]),
17603
+ head: /* @__PURE__ */ new Set(["html"]),
17604
+ td: /* @__PURE__ */ new Set(["tr"]),
17605
+ colgroup: /* @__PURE__ */ new Set(["table"]),
17606
+ caption: /* @__PURE__ */ new Set(["table"]),
17607
+ tbody: /* @__PURE__ */ new Set(["table"]),
17608
+ tfoot: /* @__PURE__ */ new Set(["table"]),
17609
+ col: /* @__PURE__ */ new Set(["colgroup"]),
17610
+ th: /* @__PURE__ */ new Set(["tr"]),
17611
+ thead: /* @__PURE__ */ new Set(["table"]),
17612
+ tr: /* @__PURE__ */ new Set([
17231
17613
  "tbody",
17232
17614
  "thead",
17233
17615
  "tfoot"
17234
17616
  ]),
17235
- dd: new Set(["dl", "div"]),
17236
- dt: new Set(["dl", "div"]),
17237
- figcaption: new Set(["figure"]),
17238
- summary: new Set(["details"]),
17239
- area: new Set(["map"])
17617
+ dd: /* @__PURE__ */ new Set(["dl", "div"]),
17618
+ dt: /* @__PURE__ */ new Set(["dl", "div"]),
17619
+ figcaption: /* @__PURE__ */ new Set(["figure"]),
17620
+ summary: /* @__PURE__ */ new Set(["details"]),
17621
+ area: /* @__PURE__ */ new Set(["map"])
17240
17622
  };
17241
17623
  /** maps element to set of elements that can not be it's children, others can */
17242
17624
  const knownInvalidChildren = {
17243
- p: new Set([
17625
+ p: /* @__PURE__ */ new Set([
17244
17626
  "address",
17245
17627
  "article",
17246
17628
  "aside",
@@ -17275,7 +17657,7 @@ const knownInvalidChildren = {
17275
17657
  "table",
17276
17658
  "ul"
17277
17659
  ]),
17278
- svg: new Set([
17660
+ svg: /* @__PURE__ */ new Set([
17279
17661
  "b",
17280
17662
  "blockquote",
17281
17663
  "br",
@@ -17316,12 +17698,12 @@ const knownInvalidChildren = {
17316
17698
  };
17317
17699
  /** maps element to set of elements that can not be it's parent, others can */
17318
17700
  const knownInvalidParents = {
17319
- a: new Set(["a"]),
17320
- button: new Set(["button"]),
17321
- dd: new Set(["dd", "dt"]),
17322
- dt: new Set(["dd", "dt"]),
17323
- form: new Set(["form"]),
17324
- li: new Set(["li"]),
17701
+ a: /* @__PURE__ */ new Set(["a"]),
17702
+ button: /* @__PURE__ */ new Set(["button"]),
17703
+ dd: /* @__PURE__ */ new Set(["dd", "dt"]),
17704
+ dt: /* @__PURE__ */ new Set(["dd", "dt"]),
17705
+ form: /* @__PURE__ */ new Set(["form"]),
17706
+ li: /* @__PURE__ */ new Set(["li"]),
17325
17707
  h1: headings,
17326
17708
  h2: headings,
17327
17709
  h3: headings,
@@ -17364,10 +17746,12 @@ function compile(src, options = {}) {
17364
17746
  //#region packages/vue-compat/src/index.ts
17365
17747
  const compileCache = Object.create(null);
17366
17748
  function compileToFunction(template, options) {
17367
- if (!isString(template)) if (template.nodeType) template = template.innerHTML;
17368
- else {
17369
- warn(`invalid template option: `, template);
17370
- return NOOP;
17749
+ if (!isString(template)) {
17750
+ if (template.nodeType) template = template.innerHTML;
17751
+ else {
17752
+ warn(`invalid template option: `, template);
17753
+ return NOOP;
17754
+ }
17371
17755
  }
17372
17756
  const key = genCacheKey(template, options);
17373
17757
  const cached = compileCache[key];