@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.
@@ -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,8 +70,8 @@ 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 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 isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
75
75
  const cacheStringFunction = (fn) => {
76
76
  const cache = Object.create(null);
77
77
  return ((str) => {
@@ -152,7 +152,7 @@ function genCacheKey(source, options) {
152
152
  function canSetValueDirectly(tagName) {
153
153
  return tagName !== "PROGRESS" && !tagName.includes("-");
154
154
  }
155
- 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");
155
+ 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");
156
156
  //#endregion
157
157
  //#region packages/shared/src/normalizeProp.ts
158
158
  function normalizeStyle(value) {
@@ -168,10 +168,10 @@ function normalizeStyle(value) {
168
168
  }
169
169
  const listDelimiterRE = /;(?![^(]*\))/g;
170
170
  const propertyDelimiterRE = /:([^]+)/;
171
- const styleCommentRE = /\/\*[^]*?\*\//g;
171
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
172
172
  function parseStringStyle(cssText) {
173
173
  const ret = {};
174
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
174
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
175
175
  if (item) {
176
176
  const tmp = item.split(propertyDelimiterRE);
177
177
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -221,22 +221,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
221
221
  * Compiler only.
222
222
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
223
223
  */
224
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
224
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
225
225
  /**
226
226
  * Compiler only.
227
227
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
228
228
  */
229
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
229
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
230
230
  /**
231
231
  * Compiler only.
232
232
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
233
233
  */
234
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
234
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
235
235
  /**
236
236
  * Compiler only.
237
237
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
238
238
  */
239
- const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
239
+ const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
240
240
  //#endregion
241
241
  //#region packages/shared/src/domAttrConfig.ts
242
242
  /**
@@ -251,11 +251,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
251
251
  * - readonly -> readOnly
252
252
  */
253
253
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
254
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
254
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
255
255
  /**
256
256
  * The full list is needed during SSR to produce the correct initial markup.
257
257
  */
258
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
258
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
259
259
  /**
260
260
  * Boolean attributes should be included if the value is truthy or ''.
261
261
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -269,15 +269,15 @@ function includeBooleanAttr(value) {
269
269
  * Don't also forget to allow `data-*` and `aria-*`!
270
270
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
271
271
  */
272
- 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");
272
+ 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");
273
273
  /**
274
274
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
275
275
  */
276
- 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");
276
+ 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");
277
277
  /**
278
278
  * Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
279
279
  */
280
- 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");
280
+ 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");
281
281
  function shouldSetAsAttr(tagName, key) {
282
282
  if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") return true;
283
283
  if (key === "form") return true;
@@ -325,13 +325,54 @@ function escapeHtml(string) {
325
325
  }
326
326
  //#endregion
327
327
  //#region packages/shared/src/looseEqual.ts
328
- function looseCompareArrays(a, b) {
328
+ function looseCompareArrays(a, b, seen) {
329
329
  if (a.length !== b.length) return false;
330
330
  let equal = true;
331
- for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
331
+ for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
332
332
  return equal;
333
333
  }
334
- function looseEqual(a, b) {
334
+ function looseCompareCollections(a, b, seen) {
335
+ if (a.size !== b.size) return false;
336
+ const candidates = Array.from(b);
337
+ const matched = new Uint8Array(candidates.length);
338
+ for (const item of a) {
339
+ let index = -1;
340
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
341
+ index = i;
342
+ break;
343
+ }
344
+ if (index < 0) return false;
345
+ matched[index] = 1;
346
+ }
347
+ return true;
348
+ }
349
+ function looseCompareObjects(a, b, seen) {
350
+ let aValidType = isMap(a);
351
+ let bValidType = isMap(b);
352
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
353
+ aValidType = isSet(a);
354
+ bValidType = isSet(b);
355
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
356
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
357
+ for (const key in a) {
358
+ const aHasKey = a.hasOwnProperty(key);
359
+ const bHasKey = b.hasOwnProperty(key);
360
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
361
+ }
362
+ return String(a) === String(b);
363
+ }
364
+ function looseCompareNested(a, b, seen, compare) {
365
+ if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
366
+ const [seenA, seenB] = seen;
367
+ if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
368
+ seenA.set(a, b);
369
+ seenB.set(b, a);
370
+ const equal = compare(a, b, seen);
371
+ seenA.delete(a);
372
+ seenB.delete(b);
373
+ return equal;
374
+ }
375
+ function looseEqual(a, b, seen) {
335
376
  if (a === b) return true;
336
377
  let aValidType = isDate(a);
337
378
  let bValidType = isDate(b);
@@ -341,17 +382,12 @@ function looseEqual(a, b) {
341
382
  if (aValidType || bValidType) return a === b;
342
383
  aValidType = isArray(a);
343
384
  bValidType = isArray(b);
344
- if (aValidType || bValidType) return aValidType && bValidType ? looseCompareArrays(a, b) : false;
385
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
345
386
  aValidType = isObject(a);
346
387
  bValidType = isObject(b);
347
388
  if (aValidType || bValidType) {
348
389
  if (!aValidType || !bValidType) return false;
349
- if (Object.keys(a).length !== Object.keys(b).length) return false;
350
- for (const key in a) {
351
- const aHasKey = a.hasOwnProperty(key);
352
- const bHasKey = b.hasOwnProperty(key);
353
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
354
- }
390
+ return looseCompareNested(a, b, seen, looseCompareObjects);
355
391
  }
356
392
  return String(a) === String(b);
357
393
  }
@@ -429,6 +465,8 @@ function getSequence(arr) {
429
465
  }
430
466
  return result;
431
467
  }
468
+ //#endregion
469
+ //#region packages/reactivity/src/system.ts
432
470
  const notifyBuffer = [];
433
471
  let batchDepth = 0;
434
472
  let activeSub = void 0;
@@ -566,13 +604,23 @@ function endTracking(sub, prevSub) {
566
604
  sub.flags &= -5;
567
605
  }
568
606
  function flush() {
607
+ let hasError = false;
608
+ let error;
569
609
  while (notifyIndex < notifyBufferLength) {
570
610
  const effect = notifyBuffer[notifyIndex];
571
611
  notifyBuffer[notifyIndex++] = void 0;
572
- effect.notify();
612
+ try {
613
+ effect.notify();
614
+ } catch (err) {
615
+ if (!hasError) {
616
+ hasError = true;
617
+ error = err;
618
+ }
619
+ }
573
620
  }
574
621
  notifyIndex = 0;
575
622
  notifyBufferLength = 0;
623
+ if (hasError) throw error;
576
624
  }
577
625
  function checkDirty(link, sub) {
578
626
  let stack;
@@ -656,7 +704,7 @@ var Dep = class {
656
704
  }
657
705
  set subs(value) {
658
706
  this._subs = value;
659
- if (value === void 0) this.map.delete(this.key);
707
+ if (value === void 0 && this.map) this.map.delete(this.key);
660
708
  }
661
709
  };
662
710
  const targetMap = /* @__PURE__ */ new WeakMap();
@@ -725,9 +773,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
725
773
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
726
774
  }
727
775
  break;
728
- case "set":
729
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
730
- break;
776
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
731
777
  }
732
778
  }
733
779
  }
@@ -742,13 +788,17 @@ function getDepFromReactive(object, key) {
742
788
  /**
743
789
  * Track array iteration and return:
744
790
  * - if input is reactive: a cloned raw array with reactive values
745
- * - if input is non-reactive or shallowReactive: the original raw array
791
+ * - if input is readonly: a cloned raw array with readonly values, preserving
792
+ * reactivity
793
+ * - if input is raw or shallow: the original raw array
746
794
  */
747
795
  function reactiveReadArray(array) {
748
796
  const raw = /* @__PURE__ */ toRaw(array);
749
797
  if (raw === array) return raw;
750
798
  track(raw, "iterate", ARRAY_ITERATE_KEY);
751
- return /* @__PURE__ */ isShallow(array) ? raw : raw.map(toReactive);
799
+ if (/* @__PURE__ */ isShallow(array)) return raw;
800
+ if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
801
+ return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
752
802
  }
753
803
  /**
754
804
  * Track array iteration and return raw array
@@ -924,8 +974,8 @@ function noTracking(self, method, args = []) {
924
974
  }
925
975
  //#endregion
926
976
  //#region packages/reactivity/src/baseHandlers.ts
927
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
928
- const builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
977
+ const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
978
+ const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
929
979
  function hasOwnProperty(key) {
930
980
  if (!isSymbol(key)) key = String(key);
931
981
  const obj = /* @__PURE__ */ toRaw(this);
@@ -980,10 +1030,12 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
980
1030
  oldValue = /* @__PURE__ */ toRaw(oldValue);
981
1031
  value = /* @__PURE__ */ toRaw(value);
982
1032
  }
983
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) return true;
984
- else {
985
- oldValue.value = value;
986
- return true;
1033
+ if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1034
+ if (isOldValueReadonly) return true;
1035
+ else {
1036
+ oldValue.value = value;
1037
+ return true;
1038
+ }
987
1039
  }
988
1040
  }
989
1041
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
@@ -1022,10 +1074,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1022
1074
  return true;
1023
1075
  }
1024
1076
  };
1025
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1026
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1027
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1028
- const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1077
+ const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
1078
+ const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
1079
+ const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
1080
+ const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
1029
1081
  //#endregion
1030
1082
  //#region packages/reactivity/src/collectionHandlers.ts
1031
1083
  const toShallow = (value) => value;
@@ -1172,10 +1224,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
1172
1224
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1173
1225
  };
1174
1226
  }
1175
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1176
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1177
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1178
- const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1227
+ const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
1228
+ const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
1229
+ const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
1230
+ const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
1179
1231
  //#endregion
1180
1232
  //#region packages/reactivity/src/reactive.ts
1181
1233
  const reactiveMap = /* @__PURE__ */ new WeakMap();
@@ -1193,7 +1245,7 @@ function targetTypeMap(rawType) {
1193
1245
  default: return 0;
1194
1246
  }
1195
1247
  }
1196
- /* @__NO_SIDE_EFFECTS__ */
1248
+ /*@__NO_SIDE_EFFECTS__*/
1197
1249
  function reactive(target) {
1198
1250
  if (/* @__PURE__ */ isReadonly(target)) return target;
1199
1251
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1228,7 +1280,7 @@ function reactive(target) {
1228
1280
  * @param target - The source object.
1229
1281
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1230
1282
  */
1231
- /* @__NO_SIDE_EFFECTS__ */
1283
+ /*@__NO_SIDE_EFFECTS__*/
1232
1284
  function shallowReactive(target) {
1233
1285
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1234
1286
  }
@@ -1261,7 +1313,7 @@ function shallowReactive(target) {
1261
1313
  * @param target - The source object.
1262
1314
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1263
1315
  */
1264
- /* @__NO_SIDE_EFFECTS__ */
1316
+ /*@__NO_SIDE_EFFECTS__*/
1265
1317
  function readonly(target) {
1266
1318
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1267
1319
  }
@@ -1295,7 +1347,7 @@ function readonly(target) {
1295
1347
  * @param target - The source object.
1296
1348
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1297
1349
  */
1298
- /* @__NO_SIDE_EFFECTS__ */
1350
+ /*@__NO_SIDE_EFFECTS__*/
1299
1351
  function shallowReadonly(target) {
1300
1352
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1301
1353
  }
@@ -1329,7 +1381,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1329
1381
  * @param value - The value to check.
1330
1382
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1331
1383
  */
1332
- /* @__NO_SIDE_EFFECTS__ */
1384
+ /*@__NO_SIDE_EFFECTS__*/
1333
1385
  function isReactive(value) {
1334
1386
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1335
1387
  return !!(value && value["__v_isReactive"]);
@@ -1345,11 +1397,11 @@ function isReactive(value) {
1345
1397
  * @param value - The value to check.
1346
1398
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1347
1399
  */
1348
- /* @__NO_SIDE_EFFECTS__ */
1400
+ /*@__NO_SIDE_EFFECTS__*/
1349
1401
  function isReadonly(value) {
1350
1402
  return !!(value && value["__v_isReadonly"]);
1351
1403
  }
1352
- /* @__NO_SIDE_EFFECTS__ */
1404
+ /*@__NO_SIDE_EFFECTS__*/
1353
1405
  function isShallow(value) {
1354
1406
  return !!(value && value["__v_isShallow"]);
1355
1407
  }
@@ -1360,7 +1412,7 @@ function isShallow(value) {
1360
1412
  * @param value - The value to check.
1361
1413
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1362
1414
  */
1363
- /* @__NO_SIDE_EFFECTS__ */
1415
+ /*@__NO_SIDE_EFFECTS__*/
1364
1416
  function isProxy(value) {
1365
1417
  return value ? !!value["__v_raw"] : false;
1366
1418
  }
@@ -1387,7 +1439,7 @@ function isProxy(value) {
1387
1439
  * @param observed - The object for which the "raw" value is requested.
1388
1440
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1389
1441
  */
1390
- /* @__NO_SIDE_EFFECTS__ */
1442
+ /*@__NO_SIDE_EFFECTS__*/
1391
1443
  function toRaw(observed) {
1392
1444
  const raw = observed && observed["__v_raw"];
1393
1445
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1436,15 +1488,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
1436
1488
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1437
1489
  //#endregion
1438
1490
  //#region packages/reactivity/src/ref.ts
1439
- /* @__NO_SIDE_EFFECTS__ */
1491
+ /*@__NO_SIDE_EFFECTS__*/
1440
1492
  function isRef(r) {
1441
1493
  return r ? r["__v_isRef"] === true : false;
1442
1494
  }
1443
- /* @__NO_SIDE_EFFECTS__ */
1495
+ /*@__NO_SIDE_EFFECTS__*/
1444
1496
  function ref(value) {
1445
1497
  return createRef(value, toReactive);
1446
1498
  }
1447
- /* @__NO_SIDE_EFFECTS__ */
1499
+ /*@__NO_SIDE_EFFECTS__*/
1448
1500
  function shallowRef(value) {
1449
1501
  return createRef(value);
1450
1502
  }
@@ -1632,7 +1684,7 @@ function customRef(factory) {
1632
1684
  * @param object - Reactive object to be made into an object of linked refs.
1633
1685
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1634
1686
  */
1635
- /* @__NO_SIDE_EFFECTS__ */
1687
+ /*@__NO_SIDE_EFFECTS__*/
1636
1688
  function toRefs(object) {
1637
1689
  const ret = isArray(object) ? new Array(object.length) : {};
1638
1690
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1683,7 +1735,7 @@ var GetterRefImpl = class {
1683
1735
  return this._value = this._getter();
1684
1736
  }
1685
1737
  };
1686
- /* @__NO_SIDE_EFFECTS__ */
1738
+ /*@__NO_SIDE_EFFECTS__*/
1687
1739
  function toRef(source, key, defaultValue) {
1688
1740
  if (/* @__PURE__ */ isRef(source)) return source;
1689
1741
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1749,10 +1801,12 @@ var ReactiveEffect = class {
1749
1801
  get dirty() {
1750
1802
  const flags = this.flags;
1751
1803
  if (flags & 16) return true;
1752
- if (flags & 32) if (checkDirty(this.deps, this)) {
1753
- this.flags = flags | 16;
1754
- return true;
1755
- } else this.flags = flags & -33;
1804
+ if (flags & 32) {
1805
+ if (checkDirty(this.deps, this)) {
1806
+ this.flags = flags | 16;
1807
+ return true;
1808
+ } else this.flags = flags & -33;
1809
+ }
1756
1810
  return false;
1757
1811
  }
1758
1812
  };
@@ -1929,10 +1983,12 @@ var ComputedRefImpl = class {
1929
1983
  get _dirty() {
1930
1984
  const flags = this.flags;
1931
1985
  if (flags & 16) return true;
1932
- if (flags & 32) if (checkDirty(this.deps, this)) {
1933
- this.flags = flags | 16;
1934
- return true;
1935
- } 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
+ }
1936
1992
  return false;
1937
1993
  }
1938
1994
  /**
@@ -1985,7 +2041,7 @@ var ComputedRefImpl = class {
1985
2041
  }
1986
2042
  }
1987
2043
  };
1988
- /* @__NO_SIDE_EFFECTS__ */
2044
+ /*@__NO_SIDE_EFFECTS__*/
1989
2045
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
1990
2046
  let getter;
1991
2047
  let setter;
@@ -2057,25 +2113,26 @@ var WatcherEffect = class extends ReactiveEffect {
2057
2113
  else if (/* @__PURE__ */ isReactive(s)) return reactiveGetter(s, deep);
2058
2114
  else if (isFunction(s)) return call ? call(s, 2) : s();
2059
2115
  });
2060
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2061
- else getter = () => {
2062
- if (this.cleanupsLength) {
2063
- const prevSub = setActiveSub();
2116
+ } else if (isFunction(source)) {
2117
+ if (cb) getter = call ? () => call(source, 2) : source;
2118
+ else getter = () => {
2119
+ if (this.cleanupsLength) {
2120
+ const prevSub = setActiveSub();
2121
+ try {
2122
+ cleanup(this);
2123
+ } finally {
2124
+ setActiveSub(prevSub);
2125
+ }
2126
+ }
2127
+ const currentEffect = activeWatcher;
2128
+ activeWatcher = this;
2064
2129
  try {
2065
- cleanup(this);
2130
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2066
2131
  } finally {
2067
- setActiveSub(prevSub);
2132
+ activeWatcher = currentEffect;
2068
2133
  }
2069
- }
2070
- const currentEffect = activeWatcher;
2071
- activeWatcher = this;
2072
- try {
2073
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2074
- } finally {
2075
- activeWatcher = currentEffect;
2076
- }
2077
- };
2078
- else getter = NOOP;
2134
+ };
2135
+ } else getter = NOOP;
2079
2136
  if (cb && deep) {
2080
2137
  const baseGetter = getter;
2081
2138
  const depth = deep === true ? Infinity : deep;
@@ -2288,7 +2345,7 @@ let currentFlushPromise = null;
2288
2345
  let jobsLength = 0;
2289
2346
  let flushIndex = 0;
2290
2347
  let postFlushIndex = 0;
2291
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2348
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2292
2349
  function nextTick(fn) {
2293
2350
  const p = currentFlushPromise || resolvedPromise;
2294
2351
  return fn ? p.then(this ? fn.bind(this) : fn) : p;
@@ -2326,6 +2383,7 @@ const doFlushJobs = () => {
2326
2383
  flushJobs();
2327
2384
  } catch (e) {
2328
2385
  currentFlushPromise = null;
2386
+ if (jobsLength || postJobs.length) queueFlush();
2329
2387
  throw e;
2330
2388
  }
2331
2389
  };
@@ -2333,9 +2391,10 @@ function queueFlush() {
2333
2391
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2334
2392
  }
2335
2393
  function queuePostFlushCb(jobs, id = Infinity) {
2336
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2337
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2338
- else for (const job of jobs) queueJobWorker(job, id, postJobs, postJobs.length, 0);
2394
+ if (!isArray(jobs)) {
2395
+ if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2396
+ else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2397
+ } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2339
2398
  queueFlush();
2340
2399
  }
2341
2400
  function flushPreFlushCbs(instance, seen) {
@@ -2347,30 +2406,37 @@ function flushPreFlushCbs(instance, seen) {
2347
2406
  i--;
2348
2407
  jobsLength--;
2349
2408
  if (cb.flags & 2) cb.flags &= -2;
2350
- cb();
2351
- if (!(cb.flags & 2)) cb.flags &= -2;
2409
+ try {
2410
+ cb();
2411
+ } finally {
2412
+ if (!(cb.flags & 2)) cb.flags &= -2;
2413
+ }
2352
2414
  }
2353
2415
  }
2354
2416
  function flushPostFlushCbs(seen) {
2355
2417
  if (postJobs.length) {
2356
2418
  if (activePostJobs) {
2357
- activePostJobs.push(...postJobs);
2419
+ for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
2358
2420
  postJobs.length = 0;
2359
2421
  return;
2360
2422
  }
2361
2423
  activePostJobs = postJobs;
2362
2424
  postJobs = [];
2363
- while (postFlushIndex < activePostJobs.length) {
2364
- const cb = activePostJobs[postFlushIndex++];
2365
- if (cb.flags & 2) cb.flags &= -2;
2366
- if (!(cb.flags & 4)) try {
2367
- cb();
2368
- } finally {
2369
- cb.flags &= -2;
2425
+ try {
2426
+ while (postFlushIndex < activePostJobs.length) {
2427
+ const cb = activePostJobs[postFlushIndex++];
2428
+ if (cb.flags & 2) cb.flags &= -2;
2429
+ if (!(cb.flags & 4)) try {
2430
+ cb();
2431
+ } finally {
2432
+ if (!(cb.flags & 2)) cb.flags &= -2;
2433
+ }
2370
2434
  }
2435
+ } finally {
2436
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2437
+ activePostJobs = null;
2438
+ postFlushIndex = 0;
2371
2439
  }
2372
- activePostJobs = null;
2373
- postFlushIndex = 0;
2374
2440
  }
2375
2441
  }
2376
2442
  let isFlushing = false;
@@ -2380,9 +2446,12 @@ let isFlushing = false;
2380
2446
  function flushOnAppMount(instance) {
2381
2447
  if (!isFlushing) {
2382
2448
  isFlushing = true;
2383
- flushPreFlushCbs(instance);
2384
- flushPostFlushCbs();
2385
- isFlushing = false;
2449
+ try {
2450
+ flushPreFlushCbs(instance);
2451
+ flushPostFlushCbs();
2452
+ } finally {
2453
+ isFlushing = false;
2454
+ }
2386
2455
  }
2387
2456
  }
2388
2457
  function flushJobs(seen) {
@@ -2410,8 +2479,8 @@ function flushJobs(seen) {
2410
2479
  jobsLength = 0;
2411
2480
  jobs.length = 0;
2412
2481
  flushPostFlushCbs(seen);
2413
- currentFlushPromise = null;
2414
2482
  if (jobsLength || postJobs.length) flushJobs(seen);
2483
+ else currentFlushPromise = null;
2415
2484
  }
2416
2485
  }
2417
2486
  //#endregion
@@ -2500,7 +2569,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
2500
2569
  }
2501
2570
  //#endregion
2502
2571
  //#region packages/runtime-core/src/compat/instanceEventEmitter.ts
2503
- const eventRegistryMap = /* @__PURE__ */ new WeakMap();
2572
+ const eventRegistryMap = /*@__PURE__*/ new WeakMap();
2504
2573
  function getRegistry(instance) {
2505
2574
  let events = eventRegistryMap.get(instance);
2506
2575
  if (!events) eventRegistryMap.set(instance, events = Object.create(null));
@@ -2633,19 +2702,21 @@ const legacyDirectiveHookMap = {
2633
2702
  };
2634
2703
  function mapCompatDirectiveHook(name, dir, instance) {
2635
2704
  const mappedName = legacyDirectiveHookMap[name];
2636
- if (mappedName) if (isArray(mappedName)) {
2637
- const hook = [];
2638
- mappedName.forEach((mapped) => {
2639
- const mappedHook = dir[mapped];
2640
- if (mappedHook) {
2641
- softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
2642
- hook.push(mappedHook);
2643
- }
2644
- });
2645
- return hook.length ? hook : void 0;
2646
- } else {
2647
- if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
2648
- return dir[mappedName];
2705
+ if (mappedName) {
2706
+ if (isArray(mappedName)) {
2707
+ const hook = [];
2708
+ mappedName.forEach((mapped) => {
2709
+ const mappedHook = dir[mapped];
2710
+ if (mappedHook) {
2711
+ softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
2712
+ hook.push(mappedHook);
2713
+ }
2714
+ });
2715
+ return hook.length ? hook : void 0;
2716
+ } else {
2717
+ if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
2718
+ return dir[mappedName];
2719
+ }
2649
2720
  }
2650
2721
  }
2651
2722
  //#endregion
@@ -2815,7 +2886,7 @@ function instanceWatch(source, value, options) {
2815
2886
  }
2816
2887
  const prev = setCurrentInstance(this);
2817
2888
  const res = doWatch(getter, cb.bind(publicThis), options);
2818
- setCurrentInstance(...prev);
2889
+ restoreCurrentInstance(prev);
2819
2890
  return res;
2820
2891
  }
2821
2892
  function createPathGetter(ctx, path) {
@@ -2837,9 +2908,10 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
2837
2908
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
2838
2909
  const resolveTarget = (props, select) => {
2839
2910
  const targetSelector = props && props.to;
2840
- if (isString(targetSelector)) if (!select) return null;
2841
- else return select(targetSelector);
2842
- else return targetSelector;
2911
+ if (isString(targetSelector)) {
2912
+ if (!select) return null;
2913
+ else return select(targetSelector);
2914
+ } else return targetSelector;
2843
2915
  };
2844
2916
  const TeleportImpl = {
2845
2917
  name: "Teleport",
@@ -2870,7 +2942,8 @@ const TeleportImpl = {
2870
2942
  if (pendingMounts.get(vnode) !== mountJob) return;
2871
2943
  pendingMounts.delete(vnode);
2872
2944
  if (isTeleportDisabled(vnode.props)) {
2873
- mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
2945
+ const mountContainer = parentNode(vnode.el) || container;
2946
+ mount(vnode, mountContainer, vnode.anchor);
2874
2947
  updateCssVars(vnode, true);
2875
2948
  }
2876
2949
  mountToTarget(vnode);
@@ -2979,15 +3052,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
2979
3052
  const disabled = isTeleportDisabled(vnode.props);
2980
3053
  if (target) {
2981
3054
  const targetNode = target._lpa || target.firstChild;
2982
- if (vnode.shapeFlag & 16) if (disabled) {
2983
- hydrateDisabledTeleport(node, vnode);
2984
- hydrateAnchor(target, targetNode);
2985
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
2986
- } else {
2987
- vnode.anchor = nextSibling(node);
2988
- hydrateAnchor(target, targetNode);
2989
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
2990
- hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3055
+ if (vnode.shapeFlag & 16) {
3056
+ if (disabled) {
3057
+ hydrateDisabledTeleport(node, vnode);
3058
+ hydrateAnchor(target, targetNode);
3059
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3060
+ } else {
3061
+ vnode.anchor = nextSibling(node);
3062
+ hydrateAnchor(target, targetNode);
3063
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3064
+ hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3065
+ }
2991
3066
  }
2992
3067
  updateCssVars(vnode, disabled);
2993
3068
  } else if (disabled) {
@@ -3065,58 +3140,26 @@ const BaseTransitionPropsValidators = {
3065
3140
  onAfterAppear: TransitionHookValidator,
3066
3141
  onAppearCancelled: TransitionHookValidator
3067
3142
  };
3068
- const recursiveGetSubtree = (instance) => {
3069
- const subTree = isVaporComponent(instance.type) ? instance.block : instance.subTree;
3070
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
3071
- };
3143
+ function isEmptyTransitionChild(vnode, instance) {
3144
+ if (vnode.type === Comment) return true;
3145
+ if (vnode.type === VaporSlot || isVaporComponent(vnode.type)) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
3146
+ return !!vnode.component && isEmptyTransitionChild(vnode.component.subTree, instance);
3147
+ }
3072
3148
  const BaseTransitionImpl = {
3073
3149
  name: `BaseTransition`,
3074
3150
  props: BaseTransitionPropsValidators,
3075
3151
  setup(props, { slots }) {
3076
3152
  const instance = getCurrentInstance();
3077
3153
  const state = useTransitionState();
3154
+ let resumeAfterLeave;
3078
3155
  return () => {
3079
- const children = slots.default && getTransitionRawChildren(slots.default(), true);
3080
- const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
3156
+ const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
3081
3157
  if (!child) return;
3082
3158
  const rawProps = /* @__PURE__ */ toRaw(props);
3083
3159
  const { mode } = rawProps;
3084
- if (state.isLeaving) return emptyPlaceholder(child);
3085
- const innerChild = getInnerChild$1(child);
3086
- if (!innerChild) return emptyPlaceholder(child);
3087
- let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
3088
- if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
3089
- let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3090
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3091
- let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
3092
- setTransitionHooks(oldInnerChild, leavingHooks);
3093
- if (mode === "out-in" && innerChild.type !== Comment) {
3094
- state.isLeaving = true;
3095
- leavingHooks.afterLeave = () => {
3096
- state.isLeaving = false;
3097
- if (!(instance.job.flags & 4)) instance.update();
3098
- delete leavingHooks.afterLeave;
3099
- oldInnerChild = void 0;
3100
- };
3101
- return emptyPlaceholder(child);
3102
- } else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3103
- const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
3104
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3105
- el[leaveCbKey] = () => {
3106
- earlyRemove();
3107
- el[leaveCbKey] = void 0;
3108
- delete enterHooks.delayedLeave;
3109
- oldInnerChild = void 0;
3110
- };
3111
- enterHooks.delayedLeave = () => {
3112
- delayedLeave();
3113
- delete enterHooks.delayedLeave;
3114
- oldInnerChild = void 0;
3115
- };
3116
- };
3117
- else oldInnerChild = void 0;
3118
- } else if (oldInnerChild) oldInnerChild = void 0;
3119
- return child;
3160
+ return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3161
+ if (!(instance.job.flags & 4)) instance.update();
3162
+ }) : NOOP);
3120
3163
  };
3121
3164
  }
3122
3165
  };
@@ -3144,7 +3187,7 @@ function getLeavingNodesForType(state, vnode) {
3144
3187
  function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3145
3188
  const key = String(vnode.key);
3146
3189
  const leavingVNodesCache = getLeavingNodesForType(state, vnode);
3147
- return baseResolveTransitionHooks({
3190
+ const hooks = baseResolveTransitionHooks({
3148
3191
  isLeaving: () => leavingVNodesCache[key] === vnode,
3149
3192
  setLeavingNodeCache: () => {
3150
3193
  leavingVNodesCache[key] = vnode;
@@ -3162,6 +3205,13 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3162
3205
  return hooks;
3163
3206
  }
3164
3207
  }, props, state, instance);
3208
+ if (vnode.type === VaporSlot) extend(hooks, {
3209
+ __vapor: true,
3210
+ props,
3211
+ state,
3212
+ instance
3213
+ });
3214
+ return hooks;
3165
3215
  }
3166
3216
  function baseResolveTransitionHooks(context, props, state, instance) {
3167
3217
  const { isLeaving, setLeavingNodeCache, unsetLeavingNodeCache, earlyRemove, cloneHooks } = context;
@@ -3181,8 +3231,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3181
3231
  persisted,
3182
3232
  beforeEnter(el) {
3183
3233
  let hook = onBeforeEnter;
3184
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3185
- else return;
3234
+ if (!state.isMounted) {
3235
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
3236
+ else return;
3237
+ }
3186
3238
  if (el[leaveCbKey]) el[leaveCbKey](true);
3187
3239
  earlyRemove();
3188
3240
  callHook(hook, [el]);
@@ -3192,11 +3244,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3192
3244
  let hook = onEnter;
3193
3245
  let afterHook = onAfterEnter;
3194
3246
  let cancelHook = onEnterCancelled;
3195
- if (!state.isMounted) if (appear) {
3196
- hook = onAppear || onEnter;
3197
- afterHook = onAfterAppear || onAfterEnter;
3198
- cancelHook = onAppearCancelled || onEnterCancelled;
3199
- } else return;
3247
+ if (!state.isMounted) {
3248
+ if (appear) {
3249
+ hook = onAppear || onEnter;
3250
+ afterHook = onAfterAppear || onAfterEnter;
3251
+ cancelHook = onAppearCancelled || onEnterCancelled;
3252
+ } else return;
3253
+ }
3200
3254
  let called = false;
3201
3255
  el[enterCbKey$1] = (cancelled) => {
3202
3256
  if (called) return;
@@ -3230,7 +3284,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3230
3284
  else done();
3231
3285
  },
3232
3286
  clone(node) {
3233
- return cloneHooks(node);
3287
+ return cloneHooks ? cloneHooks(node) : hooks;
3234
3288
  }
3235
3289
  };
3236
3290
  return hooks;
@@ -3254,16 +3308,91 @@ function getInnerChild$1(vnode) {
3254
3308
  if (shapeFlag & 32 && isFunction(children.default)) return children.default();
3255
3309
  }
3256
3310
  }
3311
+ function resolveTransitionChild(children, renderEmpty = false) {
3312
+ const branches = children && getTransitionRawChildren(children, true);
3313
+ return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
3314
+ }
3315
+ /**
3316
+ * @internal
3317
+ */
3318
+ function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
3319
+ if (state.isLeaving) return emptyPlaceholder(next);
3320
+ const nextInner = getInnerChild$1(next);
3321
+ if (!nextInner) return emptyPlaceholder(next);
3322
+ let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
3323
+ if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
3324
+ enterHooks = hooks;
3325
+ });
3326
+ if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
3327
+ if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
3328
+ const mode = props.mode;
3329
+ const previousInner = previous && getInnerChild$1(previous);
3330
+ if (previous && previousInner && !isSameVNodeType(previousInner, nextInner) && !isEmptyTransitionChild(previousInner, instance)) {
3331
+ const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
3332
+ 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);
3333
+ }
3334
+ return next;
3335
+ }
3336
+ function forwardDelayedLeave(hooks, source) {
3337
+ const delayedLeave = source && source.delayedLeave;
3338
+ if (!delayedLeave) return;
3339
+ hooks.delayedLeave = () => {
3340
+ if (source.delayedLeave === delayedLeave) delayedLeave();
3341
+ delete hooks.delayedLeave;
3342
+ };
3343
+ }
3344
+ function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
3345
+ return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
3346
+ }
3347
+ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
3348
+ if (props.mode === "out-in") {
3349
+ state.isLeaving = true;
3350
+ leavingHooks.afterLeave = () => {
3351
+ state.isLeaving = false;
3352
+ resumeAfterLeave();
3353
+ delete leavingHooks.afterLeave;
3354
+ };
3355
+ return true;
3356
+ } else if (props.mode === "in-out" && getEnterHooks) {
3357
+ let delayedLeavingVNode = leavingVNode;
3358
+ leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3359
+ const enterHooks = getEnterHooks();
3360
+ if (!enterHooks) {
3361
+ delayedLeave();
3362
+ return;
3363
+ }
3364
+ const vnode = delayedLeavingVNode;
3365
+ const leavingVNodesCache = getLeavingNodesForType(state, vnode);
3366
+ leavingVNodesCache[String(vnode.key)] = vnode;
3367
+ el[leaveCbKey] = () => {
3368
+ earlyRemove();
3369
+ el[leaveCbKey] = void 0;
3370
+ delete enterHooks.delayedLeave;
3371
+ delayedLeavingVNode = void 0;
3372
+ };
3373
+ enterHooks.delayedLeave = () => {
3374
+ delayedLeave();
3375
+ delete enterHooks.delayedLeave;
3376
+ delayedLeavingVNode = void 0;
3377
+ };
3378
+ };
3379
+ }
3380
+ return false;
3381
+ }
3257
3382
  function setTransitionHooks(vnode, hooks) {
3258
- if (vnode.shapeFlag & 6 && vnode.component) if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
3259
- else {
3383
+ if (vnode.shapeFlag & 6 && vnode.component) {
3260
3384
  vnode.transition = hooks;
3261
- setTransitionHooks(vnode.component.subTree, hooks);
3262
- }
3263
- else if (vnode.shapeFlag & 128) {
3264
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3265
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3385
+ if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
3386
+ else {
3387
+ const subTree = vnode.component.subTree;
3388
+ return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
3389
+ }
3390
+ } else if (vnode.shapeFlag & 128) {
3391
+ const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3392
+ const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3393
+ return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
3266
3394
  } else vnode.transition = hooks;
3395
+ return hooks;
3267
3396
  }
3268
3397
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
3269
3398
  let ret = [];
@@ -3281,9 +3410,9 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
3281
3410
  }
3282
3411
  //#endregion
3283
3412
  //#region packages/runtime-core/src/apiDefineComponent.ts
3284
- /* @__NO_SIDE_EFFECTS__ */
3413
+ /*@__NO_SIDE_EFFECTS__*/
3285
3414
  function defineComponent(options, extraOptions) {
3286
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
3415
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
3287
3416
  }
3288
3417
  //#endregion
3289
3418
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -3370,15 +3499,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3370
3499
  if (rawRef.f) {
3371
3500
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
3372
3501
  if (isUnmount) isArray(existing) && remove(existing, refValue);
3373
- else if (!isArray(existing)) if (_isString) {
3374
- refs[ref] = [refValue];
3375
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3376
- } else {
3377
- const newVal = [refValue];
3378
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3379
- if (rawRef.k) refs[rawRef.k] = newVal;
3380
- }
3381
- else if (!existing.includes(refValue)) existing.push(refValue);
3502
+ else if (!isArray(existing)) {
3503
+ if (_isString) {
3504
+ refs[ref] = [refValue];
3505
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3506
+ } else {
3507
+ const newVal = [refValue];
3508
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3509
+ if (rawRef.k) refs[rawRef.k] = newVal;
3510
+ }
3511
+ } else if (!existing.includes(refValue)) existing.push(refValue);
3382
3512
  } else if (_isString) {
3383
3513
  refs[ref] = value;
3384
3514
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -3428,7 +3558,18 @@ const logMismatchError = () => {
3428
3558
  hasLoggedMismatchError = true;
3429
3559
  };
3430
3560
  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
3431
- const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
3561
+ const isMathMLContainer = (container) => {
3562
+ if (!container.namespaceURI.includes("MathML")) return false;
3563
+ if (container.tagName !== "annotation-xml") return true;
3564
+ const encoding = container.getAttribute("encoding");
3565
+ return !encoding || !encoding.includes("html");
3566
+ };
3567
+ /**
3568
+ * Resolve the element namespace a container's children should be created in.
3569
+ * The live DOM is the source of truth, so this also covers containers that are
3570
+ * only known at runtime (interop boundaries, teleport targets).
3571
+ * @internal
3572
+ */
3432
3573
  const getContainerType = (container) => {
3433
3574
  if (container.nodeType !== 1) return void 0;
3434
3575
  if (isSVGContainer(container)) return "svg";
@@ -3451,7 +3592,7 @@ function createHydrationFunctions(rendererInternals) {
3451
3592
  };
3452
3593
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
3453
3594
  optimized = optimized || !!vnode.dynamicChildren;
3454
- const isFragmentStart = isComment(node) && node.data === "[";
3595
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
3455
3596
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
3456
3597
  const { type, ref, shapeFlag, patchFlag } = vnode;
3457
3598
  let domType = node.nodeType;
@@ -3463,11 +3604,12 @@ function createHydrationFunctions(rendererInternals) {
3463
3604
  let nextNode = null;
3464
3605
  switch (type) {
3465
3606
  case Text:
3466
- if (domType !== 3) if (vnode.children === "") {
3467
- insert(vnode.el = createText(""), parentNode(node), node);
3468
- nextNode = node;
3469
- } else nextNode = onMismatch();
3470
- else {
3607
+ if (domType !== 3) {
3608
+ if (vnode.children === "") {
3609
+ insert(vnode.el = createText(""), parentNode(node), node);
3610
+ nextNode = node;
3611
+ } else nextNode = onMismatch();
3612
+ } else {
3471
3613
  if (node.data !== vnode.children) {
3472
3614
  logMismatchError();
3473
3615
  node.data = vnode.children;
@@ -3503,45 +3645,35 @@ function createHydrationFunctions(rendererInternals) {
3503
3645
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3504
3646
  break;
3505
3647
  case VaporSlot:
3506
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
3648
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
3507
3649
  break;
3508
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
3509
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3510
- else if (shapeFlag & 6) {
3650
+ default: if (shapeFlag & 1) {
3651
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
3652
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3653
+ } else if (shapeFlag & 6) {
3511
3654
  vnode.slotScopeIds = slotScopeIds;
3512
3655
  const container = parentNode(node);
3513
3656
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
3514
3657
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
3515
3658
  else nextNode = nextSibling(node);
3516
- if (vnode.type.__vapor) {
3517
- const vnodeBeforeMountHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeBeforeMount;
3518
- getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
3519
- if (vnode.dirs) {
3520
- invokeDirectiveHook(vnode, null, parentComponent, "created");
3521
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
3522
- }
3523
- }, () => {
3524
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
3525
- });
3526
- if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
3527
- const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
3528
- if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
3529
- } else {
3659
+ if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
3660
+ else {
3530
3661
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
3531
3662
  const component = vnode.component;
3532
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
3663
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
3533
3664
  let subTree;
3534
3665
  if (isFragmentStart) {
3535
- subTree = createVNode(Fragment);
3666
+ subTree = createVNode(Static);
3536
3667
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
3537
- } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
3668
+ } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
3538
3669
  subTree.el = node;
3539
3670
  component.subTree = subTree;
3540
3671
  }
3541
3672
  }
3542
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
3543
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3544
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3673
+ } else if (shapeFlag & 64) {
3674
+ if (domType !== 8) nextNode = onMismatch();
3675
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3676
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3545
3677
  }
3546
3678
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
3547
3679
  return nextNode;
@@ -3586,7 +3718,10 @@ function createHydrationFunctions(rendererInternals) {
3586
3718
  if (forcePatch || hasDynamicProps || !optimized || patchFlag & 48) {
3587
3719
  const isCustomElement = el.tagName.includes("-");
3588
3720
  const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
3589
- for (const key in props) 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);
3721
+ for (const key in props) if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
3722
+ if (isUnchangedResourceProp(el, key, props[key])) continue;
3723
+ patchProp(el, key, null, props[key], namespace, parentComponent);
3724
+ }
3590
3725
  } else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
3591
3726
  else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
3592
3727
  }
@@ -3632,8 +3767,9 @@ function createHydrationFunctions(rendererInternals) {
3632
3767
  const { slotScopeIds: fragmentSlotScopeIds } = vnode;
3633
3768
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
3634
3769
  const container = parentNode(node);
3635
- const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
3636
- if (next && isComment(next) && next.data === "]") return nextSibling(vnode.anchor = next);
3770
+ const first = nextSibling(node);
3771
+ const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
3772
+ if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
3637
3773
  else {
3638
3774
  logMismatchError();
3639
3775
  insert(vnode.anchor = createComment(`]`), container, next);
@@ -3655,20 +3791,22 @@ function createHydrationFunctions(rendererInternals) {
3655
3791
  const container = parentNode(node);
3656
3792
  remove(node);
3657
3793
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
3658
- if (parentComponent) {
3794
+ if (parentComponent && parentComponent.vnode) {
3659
3795
  parentComponent.vnode.el = vnode.el;
3660
3796
  updateHOCHostEl(parentComponent, vnode.el);
3661
3797
  }
3662
3798
  return next;
3663
3799
  };
3664
- const locateClosingAnchor = (node, open = "[", close = "]") => {
3800
+ const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
3665
3801
  let match = 0;
3666
3802
  while (node) {
3667
3803
  node = nextSibling(node);
3668
3804
  if (node && isComment(node)) {
3669
3805
  if (node.data === open) match++;
3670
- if (node.data === close) if (match === 0) return nextSibling(node);
3671
- else match--;
3806
+ if (node.data === close) {
3807
+ if (match === 0) return nextSibling(node);
3808
+ else match--;
3809
+ }
3672
3810
  }
3673
3811
  }
3674
3812
  return node;
@@ -3678,7 +3816,7 @@ function createHydrationFunctions(rendererInternals) {
3678
3816
  if (parentNode) parentNode.replaceChild(newNode, oldNode);
3679
3817
  let parent = parentComponent;
3680
3818
  while (parent) {
3681
- if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
3819
+ if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
3682
3820
  parent = parent.parent;
3683
3821
  }
3684
3822
  };
@@ -3687,6 +3825,16 @@ function createHydrationFunctions(rendererInternals) {
3687
3825
  const isTemplateNode$1 = (node) => {
3688
3826
  return node.nodeType === 1 && node.tagName === "TEMPLATE";
3689
3827
  };
3828
+ const resourceProps = /*@__PURE__*/ new Set([
3829
+ "src",
3830
+ "srcset",
3831
+ "href",
3832
+ "poster"
3833
+ ]);
3834
+ function isUnchangedResourceProp(el, key, clientValue) {
3835
+ if (!resourceProps.has(key)) return false;
3836
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
3837
+ }
3690
3838
  const allowMismatchAttr = "data-allow-mismatch";
3691
3839
  const MismatchTypeString = {
3692
3840
  [0]: "text",
@@ -3791,16 +3939,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
3791
3939
  return teardown;
3792
3940
  };
3793
3941
  function forEachElement(node, cb) {
3794
- if (isComment(node) && node.data === "[") {
3942
+ if (isComment(node) && (node.data === "[" || node.data === "(")) {
3943
+ const open = node.data;
3944
+ const close = open === "[" ? "]" : ")";
3795
3945
  let depth = 1;
3796
3946
  let next = node.nextSibling;
3797
3947
  while (next) {
3798
3948
  if (next.nodeType === 1) {
3799
3949
  if (cb(next) === false) break;
3800
3950
  } else if (isComment(next)) {
3801
- if (next.data === "]") {
3951
+ if (next.data === close) {
3802
3952
  if (--depth === 0) break;
3803
- } else if (next.data === "[") depth++;
3953
+ } else if (next.data === open) depth++;
3804
3954
  }
3805
3955
  next = next.nextSibling;
3806
3956
  }
@@ -3809,14 +3959,14 @@ function forEachElement(node, cb) {
3809
3959
  //#endregion
3810
3960
  //#region packages/runtime-core/src/apiAsyncComponent.ts
3811
3961
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
3812
- /* @__NO_SIDE_EFFECTS__ */
3962
+ /*@__NO_SIDE_EFFECTS__*/
3813
3963
  function defineAsyncComponent(source) {
3814
3964
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
3815
3965
  return /* @__PURE__ */ defineComponent({
3816
3966
  name: "AsyncComponentWrapper",
3817
3967
  __asyncLoader: load,
3818
3968
  __asyncHydrate(el, instance, hydrate) {
3819
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
3969
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
3820
3970
  },
3821
3971
  get __asyncResolved() {
3822
3972
  return getResolvedComp();
@@ -3933,10 +4083,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
3933
4083
  * shared between core and vapor
3934
4084
  * @internal
3935
4085
  */
3936
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
4086
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
3937
4087
  const wasConnected = el.isConnected;
3938
4088
  let patched = false;
3939
- (instance.bu || (instance.bu = [])).push(() => patched = true);
4089
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
3940
4090
  const performHydrate = () => {
3941
4091
  if (patched) return;
3942
4092
  if (!el.parentNode || wasConnected && !el.isConnected) return;
@@ -4019,10 +4169,13 @@ const KeepAliveImpl = {
4019
4169
  });
4020
4170
  let pendingCacheKey = null;
4021
4171
  const cacheSubtree = () => {
4022
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4023
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4024
- }, void 0, keepAliveInstance.subTree.suspense);
4025
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4172
+ if (pendingCacheKey != null) {
4173
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4174
+ const vnode = getInnerChild(keepAliveInstance.subTree);
4175
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
4176
+ }, void 0, keepAliveInstance.subTree.suspense);
4177
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4178
+ }
4026
4179
  };
4027
4180
  onMounted(cacheSubtree);
4028
4181
  onUpdated(cacheSubtree);
@@ -4092,7 +4245,7 @@ const decorate$2 = (t) => {
4092
4245
  t.__isBuiltIn = true;
4093
4246
  return t;
4094
4247
  };
4095
- const KeepAlive = /* @__PURE__ */ decorate$2(KeepAliveImpl);
4248
+ const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
4096
4249
  function matches(pattern, name) {
4097
4250
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
4098
4251
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -4181,7 +4334,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
4181
4334
  try {
4182
4335
  return callWithAsyncErrorHandling(hook, target, type, args);
4183
4336
  } finally {
4184
- setCurrentInstance(...prev);
4337
+ restoreCurrentInstance(prev);
4185
4338
  setActiveSub(prevSub);
4186
4339
  }
4187
4340
  });
@@ -4302,16 +4455,17 @@ function compatH(type, propsOrChildren, children) {
4302
4455
  }
4303
4456
  const l = arguments.length;
4304
4457
  const is2ndArgArrayChildren = isArray(propsOrChildren);
4305
- if (l === 2 || is2ndArgArrayChildren) if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
4306
- if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
4307
- return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
4308
- } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
4309
- else {
4458
+ if (l === 2 || is2ndArgArrayChildren) {
4459
+ if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
4460
+ if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
4461
+ return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
4462
+ } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
4463
+ } else {
4310
4464
  if (isVNode(children)) children = [children];
4311
4465
  return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
4312
4466
  }
4313
4467
  }
4314
- const skipLegacyRootLevelProps = /* @__PURE__ */ makeMap("staticStyle,staticClass,directives,model,hook");
4468
+ const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
4315
4469
  function convertLegacyProps(legacyProps, type) {
4316
4470
  if (!legacyProps) return null;
4317
4471
  const converted = {};
@@ -4323,8 +4477,10 @@ function convertLegacyProps(legacyProps, type) {
4323
4477
  if (key === "nativeOn") handlerKey += `Native`;
4324
4478
  const existing = converted[handlerKey];
4325
4479
  const incoming = listeners[event];
4326
- if (existing !== incoming) if (existing) converted[handlerKey] = [].concat(existing, incoming);
4327
- else converted[handlerKey] = incoming;
4480
+ if (existing !== incoming) {
4481
+ if (existing) converted[handlerKey] = [].concat(existing, incoming);
4482
+ else converted[handlerKey] = incoming;
4483
+ }
4328
4484
  }
4329
4485
  } else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
4330
4486
  if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
@@ -4423,7 +4579,7 @@ function convertLegacyFunctionalComponent(comp) {
4423
4579
  const legacyFn = comp.render;
4424
4580
  const Func = (props, ctx) => {
4425
4581
  const instance = getCurrentInstance();
4426
- return legacyFn(compatH, {
4582
+ const legacyCtx = {
4427
4583
  props,
4428
4584
  children: instance.vnode.children || [],
4429
4585
  data: instance.vnode.props || {},
@@ -4443,7 +4599,8 @@ function convertLegacyFunctionalComponent(comp) {
4443
4599
  }
4444
4600
  return {};
4445
4601
  }
4446
- });
4602
+ };
4603
+ return legacyFn(compatH, legacyCtx);
4447
4604
  };
4448
4605
  Func.props = comp.props;
4449
4606
  Func.displayName = comp.name;
@@ -4475,16 +4632,17 @@ function renderList(source, renderItem, cache, index) {
4475
4632
  } else if (typeof source === "number") {
4476
4633
  ret = new Array(source);
4477
4634
  for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
4478
- } else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4479
- else {
4480
- const keys = Object.keys(source);
4481
- ret = new Array(keys.length);
4482
- for (let i = 0, l = keys.length; i < l; i++) {
4483
- const key = keys[i];
4484
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4635
+ } else if (isObject(source)) {
4636
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4637
+ else {
4638
+ const keys = Object.keys(source);
4639
+ ret = new Array(keys.length);
4640
+ for (let i = 0, l = keys.length; i < l; i++) {
4641
+ const key = keys[i];
4642
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4643
+ }
4485
4644
  }
4486
- }
4487
- else ret = [];
4645
+ } else ret = [];
4488
4646
  if (cache) cache[index] = ret;
4489
4647
  return ret;
4490
4648
  }
@@ -4509,18 +4667,45 @@ function createSlots(slots, dynamicSlots) {
4509
4667
  //#endregion
4510
4668
  //#region packages/runtime-core/src/helpers/renderSlot.ts
4511
4669
  /**
4670
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
4671
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
4672
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
4673
+ * "which one". Internal to vapor interop.
4674
+ */
4675
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
4676
+ /**
4677
+ * Invokes a VDOM slot fallback under the outlet owner that produced it, the
4678
+ * way `renderSlot` would have rendered it inline. Vapor interop invokes
4679
+ * fallbacks late, outside any render, so it passes the owner recorded on the
4680
+ * vapor slot vnode. Internal to vapor interop.
4681
+ */
4682
+ function invokeSlotFallback(fallback, owner) {
4683
+ if (!owner) return fallback();
4684
+ const prev = setCurrentRenderingInstance(owner);
4685
+ const prevStackSize = blockStack.length;
4686
+ try {
4687
+ return fallback();
4688
+ } finally {
4689
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
4690
+ setCurrentRenderingInstance(prev);
4691
+ }
4692
+ }
4693
+ /**
4512
4694
  * Compiler runtime helper for rendering `<slot/>`
4513
4695
  * @private
4514
4696
  */
4515
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
4697
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
4698
+ if (props == null) props = {};
4516
4699
  let slot = slots[name];
4517
- if (fallback) fallback.__vdom = true;
4518
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
4700
+ const vaporSlot = slot && slot[rawVaporSlotKey];
4519
4701
  if (vaporSlot) {
4520
4702
  const ret = (openBlock(), createBlock(VaporSlot, props));
4521
4703
  ret.vs = {
4522
4704
  slot: vaporSlot,
4523
- fallback
4705
+ outlets: fallback ? [{
4706
+ fallback,
4707
+ owner: currentRenderingInstance
4708
+ }] : void 0
4524
4709
  };
4525
4710
  if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
4526
4711
  return ret;
@@ -4537,9 +4722,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
4537
4722
  let rendered;
4538
4723
  try {
4539
4724
  const validSlotContent = slot && ensureValidVNode(slot(props));
4540
- ensureVaporSlotFallback(validSlotContent, fallback);
4725
+ let attached = false;
4726
+ if (fallback && validSlotContent && currentRenderingInstance) {
4727
+ const interop = currentRenderingInstance.appContext.vapor;
4728
+ if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
4729
+ }
4541
4730
  const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
4542
4731
  rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
4732
+ if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
4733
+ if (attached) rendered.vo = true;
4543
4734
  } catch (err) {
4544
4735
  for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
4545
4736
  throw err;
@@ -4557,10 +4748,6 @@ function ensureValidVNode(vnodes) {
4557
4748
  return true;
4558
4749
  }) ? vnodes : null;
4559
4750
  }
4560
- function ensureVaporSlotFallback(vnodes, fallback) {
4561
- let vaporSlot;
4562
- if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
4563
- }
4564
4751
  //#endregion
4565
4752
  //#region packages/runtime-core/src/helpers/toHandlers.ts
4566
4753
  /**
@@ -4615,12 +4802,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
4615
4802
  function mapKeyToName(slots) {
4616
4803
  for (let i = 0; i < slots.length; i++) {
4617
4804
  const fn = slots[i];
4618
- if (fn) if (isArray(fn)) mapKeyToName(fn);
4619
- else fn.name = fn.key || "default";
4805
+ if (fn) {
4806
+ if (isArray(fn)) mapKeyToName(fn);
4807
+ else fn.name = fn.key || "default";
4808
+ }
4620
4809
  }
4621
4810
  return slots;
4622
4811
  }
4623
- const staticCacheMap = /* @__PURE__ */ new WeakMap();
4812
+ const staticCacheMap = /*@__PURE__*/ new WeakMap();
4624
4813
  function legacyRenderStatic(instance, index) {
4625
4814
  let cache = staticCacheMap.get(instance);
4626
4815
  if (!cache) staticCacheMap.set(instance, cache = []);
@@ -4843,7 +5032,7 @@ const PublicInstanceProxyHandlers = {
4843
5032
  return Reflect.defineProperty(target, key, descriptor);
4844
5033
  }
4845
5034
  };
4846
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
5035
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
4847
5036
  get(target, key) {
4848
5037
  if (key === Symbol.unscopables) return;
4849
5038
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -4967,12 +5156,13 @@ function mergeDefaults(raw, defaults) {
4967
5156
  for (const key in defaults) {
4968
5157
  if (key.startsWith("__skip")) continue;
4969
5158
  let opt = props[key];
4970
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
4971
- type: opt,
4972
- default: defaults[key]
4973
- };
4974
- else opt.default = defaults[key];
4975
- else if (opt === null) opt = props[key] = { default: defaults[key] };
5159
+ if (opt) {
5160
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
5161
+ type: opt,
5162
+ default: defaults[key]
5163
+ };
5164
+ else opt.default = defaults[key];
5165
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
4976
5166
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
4977
5167
  }
4978
5168
  return props;
@@ -5021,36 +5211,31 @@ function createPropsRestProxy(props, excludedKeys) {
5021
5211
  function withAsyncContext(getAwaitable) {
5022
5212
  const ctx = getCurrentGenericInstance();
5023
5213
  const inSSRSetup = isInSSRComponentSetup;
5024
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
5025
5214
  let awaitable = getAwaitable();
5026
5215
  setCurrentInstance(null, void 0);
5027
5216
  if (inSSRSetup) setInSSRSetupState(false);
5028
5217
  const restore = () => {
5029
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
5218
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
5030
5219
  setCurrentInstance(ctx);
5031
5220
  if (inSSRSetup) setInSSRSetupState(true);
5032
- const reset = restoreAsyncContext && restoreAsyncContext();
5033
- return () => {
5034
- if (reset) reset();
5035
- if (resetStoppedScope) resetStoppedScope.reset();
5036
- };
5221
+ return stoppedScope;
5037
5222
  };
5038
5223
  const cleanup = () => {
5039
5224
  setCurrentInstance(null, void 0);
5040
5225
  if (inSSRSetup) setInSSRSetupState(false);
5041
5226
  };
5042
5227
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
5043
- const reset = restore();
5228
+ const stoppedScope = restore();
5044
5229
  Promise.resolve().then(() => Promise.resolve().then(() => {
5045
- if (reset) reset();
5230
+ if (stoppedScope) stoppedScope.reset();
5046
5231
  cleanup();
5047
5232
  }));
5048
5233
  throw e;
5049
5234
  });
5050
5235
  return [awaitable, () => {
5051
- const reset = restore();
5236
+ const stoppedScope = restore();
5052
5237
  Promise.resolve().then(() => {
5053
- if (reset) reset();
5238
+ if (stoppedScope) stoppedScope.reset();
5054
5239
  cleanup();
5055
5240
  });
5056
5241
  }];
@@ -5078,9 +5263,11 @@ function applyOptions(instance) {
5078
5263
  shouldCacheAccess = true;
5079
5264
  if (computedOptions) for (const key in computedOptions) {
5080
5265
  const opt = computedOptions[key];
5266
+ const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
5267
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP;
5081
5268
  const c = computed({
5082
- get: isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP,
5083
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP
5269
+ get,
5270
+ set
5084
5271
  });
5085
5272
  Object.defineProperty(ctx, key, {
5086
5273
  enumerable: true,
@@ -5139,9 +5326,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
5139
5326
  for (const key in injectOptions) {
5140
5327
  const opt = injectOptions[key];
5141
5328
  let injected;
5142
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5143
- else injected = inject(opt.from || key);
5144
- else injected = inject(opt);
5329
+ if (isObject(opt)) {
5330
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5331
+ else injected = inject(opt.from || key);
5332
+ } else injected = inject(opt);
5145
5333
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
5146
5334
  enumerable: true,
5147
5335
  configurable: true,
@@ -5160,7 +5348,8 @@ function createWatcher(raw, ctx, publicThis, key) {
5160
5348
  {
5161
5349
  const cur = getCurrentInstance();
5162
5350
  const instance = cur && getCurrentScope() === cur.scope ? cur : null;
5163
- if (isArray(getter()) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
5351
+ const newValue = getter();
5352
+ if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
5164
5353
  const baseGetter = getter;
5165
5354
  getter = () => {
5166
5355
  const val = baseGetter();
@@ -5172,10 +5361,12 @@ function createWatcher(raw, ctx, publicThis, key) {
5172
5361
  const handler = ctx[raw];
5173
5362
  if (isFunction(handler)) watch(getter, handler, options);
5174
5363
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
5175
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5176
- else {
5177
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5178
- if (isFunction(handler)) watch(getter, handler, extend(raw, options));
5364
+ else if (isObject(raw)) {
5365
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5366
+ else {
5367
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5368
+ if (isFunction(handler)) watch(getter, handler, extend(raw, options));
5369
+ }
5179
5370
  }
5180
5371
  }
5181
5372
  /**
@@ -5190,12 +5381,13 @@ function resolveMergedOptions(instance) {
5190
5381
  const cached = cache.get(base);
5191
5382
  let resolved;
5192
5383
  if (cached) resolved = cached;
5193
- else if (!globalMixins.length && !mixins && !extendsOptions) if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
5194
- resolved = extend({}, base);
5195
- resolved.parent = instance.parent && instance.parent.proxy;
5196
- resolved.propsData = instance.vnode.props;
5197
- } else resolved = base;
5198
- else {
5384
+ else if (!globalMixins.length && !mixins && !extendsOptions) {
5385
+ if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
5386
+ resolved = extend({}, base);
5387
+ resolved.parent = instance.parent && instance.parent.proxy;
5388
+ resolved.propsData = instance.vnode.props;
5389
+ } else resolved = base;
5390
+ } else {
5199
5391
  resolved = {};
5200
5392
  if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
5201
5393
  mergeOptions(resolved, base, optionMergeStrategies);
@@ -5267,7 +5459,7 @@ function mergeObjectOptions(to, from) {
5267
5459
  }
5268
5460
  function mergeEmitsOrPropsOptions(to, from) {
5269
5461
  if (to) {
5270
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
5462
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
5271
5463
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
5272
5464
  } else return from;
5273
5465
  }
@@ -5303,7 +5495,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5303
5495
  if (options.el) return vm.$mount(options.el);
5304
5496
  else return vm;
5305
5497
  }
5306
- Vue.version = `2.6.14-compat:3.6.0-rc.1`;
5498
+ Vue.version = `2.6.14-compat:3.6.0-rc.11`;
5307
5499
  Vue.config = singletonApp.config;
5308
5500
  Vue.use = (plugin, ...options) => {
5309
5501
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -5709,13 +5901,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
5709
5901
  const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
5710
5902
  const res = customRef((track, trigger) => {
5711
5903
  let localValue;
5904
+ let prevPropValue = EMPTY_OBJ;
5712
5905
  let prevSetValue = EMPTY_OBJ;
5713
5906
  let prevEmittedValue;
5714
5907
  watchSyncEffect(() => {
5715
5908
  const propValue = props[camelizedName];
5716
- if (hasChanged(localValue, propValue)) {
5717
- localValue = propValue;
5718
- trigger();
5909
+ if (hasChanged(prevPropValue, propValue)) {
5910
+ prevPropValue = propValue;
5911
+ if (hasChanged(localValue, propValue)) {
5912
+ localValue = propValue;
5913
+ trigger();
5914
+ }
5719
5915
  }
5720
5916
  });
5721
5917
  return {
@@ -5781,7 +5977,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
5781
5977
  const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
5782
5978
  if (modifiers) {
5783
5979
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
5784
- if (modifiers.number) args = rawArgs.map(looseToNumber);
5980
+ if (modifiers.number) args = args.map(looseToNumber);
5785
5981
  }
5786
5982
  let handlerName;
5787
5983
  let handler = getter(props, handlerName = toHandlerKey(event)) || getter(props, handlerName = toHandlerKey(camelize(event)));
@@ -5894,7 +6090,7 @@ function renderComponentRoot(instance) {
5894
6090
  root = cloneVNode(root, null, false, true);
5895
6091
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
5896
6092
  }
5897
- if (vnode.transition) setTransitionHooks(root, vnode.transition);
6093
+ if (vnode.transition) setTransitionHooks(isTeleport(root.type) ? getInnerChild$1(root) || root : root, vnode.transition);
5898
6094
  result = root;
5899
6095
  setCurrentRenderingInstance(prev);
5900
6096
  return result;
@@ -5904,15 +6100,18 @@ function filterSingleRoot(children, recurse = true) {
5904
6100
  for (let i = 0; i < children.length; i++) {
5905
6101
  const child = children[i];
5906
6102
  if (isVNode(child)) {
5907
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
5908
- else singleRoot = child;
6103
+ if (child.type !== Comment || child.children === "v-if") {
6104
+ if (singleRoot) return;
6105
+ else singleRoot = child;
6106
+ }
5909
6107
  } else return;
5910
6108
  }
5911
6109
  return singleRoot;
5912
6110
  }
6111
+ const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
5913
6112
  const getFunctionalFallthrough = (attrs) => {
5914
6113
  let res;
5915
- for (const key in attrs) if (key === "class" || key === "style" || isOn(key)) (res || (res = {}))[key] = attrs[key];
6114
+ for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
5916
6115
  return res;
5917
6116
  };
5918
6117
  const filterModelListeners = (attrs, props) => {
@@ -6036,16 +6235,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
6036
6235
  let key = propsToUpdate[i];
6037
6236
  if (isEmitListener(instance.emitsOptions, key)) continue;
6038
6237
  const value = rawProps[key];
6039
- if (options) if (hasOwn(attrs, key)) {
6040
- if (value !== attrs[key]) {
6041
- attrs[key] = value;
6042
- hasAttrsChanged = true;
6238
+ if (options) {
6239
+ if (hasOwn(attrs, key)) {
6240
+ if (value !== attrs[key]) {
6241
+ attrs[key] = value;
6242
+ hasAttrsChanged = true;
6243
+ }
6244
+ } else {
6245
+ const camelizedKey = camelize(key);
6246
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
6043
6247
  }
6044
6248
  } else {
6045
- const camelizedKey = camelize(key);
6046
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
6047
- }
6048
- else {
6049
6249
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
6050
6250
  else if (shouldSkipAttr(key, instance)) continue;
6051
6251
  if (value !== attrs[key]) {
@@ -6058,9 +6258,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
6058
6258
  } else {
6059
6259
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
6060
6260
  let kebabKey;
6061
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
6062
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6063
- } else delete props[key];
6261
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
6262
+ if (options) {
6263
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6264
+ } else delete props[key];
6265
+ }
6064
6266
  if (attrs !== rawCurrentProps) {
6065
6267
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
6066
6268
  delete attrs[key];
@@ -6080,9 +6282,10 @@ function setFullProps(instance, rawProps, props, attrs) {
6080
6282
  if (key === "inline-template") continue;
6081
6283
  const value = rawProps[key];
6082
6284
  let camelKey;
6083
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6084
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6085
- else if (!isEmitListener(instance.emitsOptions, key)) {
6285
+ if (options && hasOwn(options, camelKey = camelize(key))) {
6286
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6287
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6288
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
6086
6289
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
6087
6290
  else if (shouldSkipAttr(key, instance)) continue;
6088
6291
  if (!(key in attrs) || value !== attrs[key]) {
@@ -6131,7 +6334,7 @@ function baseResolveDefault(factory, instance, key) {
6131
6334
  const prev = setCurrentInstance(instance);
6132
6335
  const props = /* @__PURE__ */ toRaw(instance.props);
6133
6336
  value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
6134
- setCurrentInstance(...prev);
6337
+ restoreCurrentInstance(prev);
6135
6338
  return value;
6136
6339
  }
6137
6340
  const mixinPropsCache = /* @__PURE__ */ new WeakMap();
@@ -6246,9 +6449,10 @@ const updateSlots = (instance, children, optimized) => {
6246
6449
  let deletionComparisonTarget = EMPTY_OBJ;
6247
6450
  if (vnode.shapeFlag & 32) {
6248
6451
  const type = children._;
6249
- if (type) if (optimized && type === 1) needDeletionCheck = false;
6250
- else assignSlots(slots, children, optimized);
6251
- else {
6452
+ if (type) {
6453
+ if (optimized && type === 1) needDeletionCheck = false;
6454
+ else assignSlots(slots, children, optimized);
6455
+ } else {
6252
6456
  needDeletionCheck = !children.$stable;
6253
6457
  normalizeObjectSlots(children, slots, instance);
6254
6458
  }
@@ -6308,6 +6512,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6308
6512
  optimized = false;
6309
6513
  n2.dynamicChildren = null;
6310
6514
  }
6515
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
6516
+ if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
6517
+ n2.dynamicChildren.hasOnce = true;
6518
+ }
6311
6519
  const { type, ref, shapeFlag } = n2;
6312
6520
  switch (type) {
6313
6521
  case Text:
@@ -6323,7 +6531,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6323
6531
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6324
6532
  break;
6325
6533
  case VaporSlot:
6326
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
6534
+ getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
6327
6535
  break;
6328
6536
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6329
6537
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -6419,7 +6627,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6419
6627
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
6420
6628
  };
6421
6629
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
6422
- 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);
6630
+ for (let i = start; i < children.length; i++) {
6631
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
6632
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6633
+ }
6423
6634
  };
6424
6635
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6425
6636
  const el = n2.el = n1.el;
@@ -6430,6 +6641,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6430
6641
  let vnodeHook;
6431
6642
  parentComponent && toggleRecurse(parentComponent, false);
6432
6643
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6644
+ if (n2.ibu) n2.ibu();
6433
6645
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6434
6646
  parentComponent && toggleRecurse(parentComponent, true);
6435
6647
  if (dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -6461,8 +6673,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6461
6673
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
6462
6674
  }
6463
6675
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
6464
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
6676
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
6465
6677
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6678
+ n2.iu && n2.iu();
6466
6679
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6467
6680
  }, void 0, parentSuspense);
6468
6681
  };
@@ -6470,7 +6683,8 @@ function baseCreateRenderer(options, createHydrationFns) {
6470
6683
  for (let i = 0; i < newChildren.length; i++) {
6471
6684
  const oldVNode = oldChildren[i];
6472
6685
  const newVNode = newChildren[i];
6473
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6686
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
6687
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6474
6688
  }
6475
6689
  };
6476
6690
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -6503,41 +6717,15 @@ function baseCreateRenderer(options, createHydrationFns) {
6503
6717
  };
6504
6718
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6505
6719
  n2.slotScopeIds = slotScopeIds;
6506
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
6507
- else {
6508
- const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
6509
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
6510
- if (n2.dirs) {
6511
- invokeDirectiveHook(n2, null, parentComponent, "created");
6512
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
6513
- }
6514
- }, () => {
6515
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
6516
- });
6517
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
6518
- const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
6519
- if (vnodeMountedHook) {
6520
- const scopedVNode = n2;
6521
- queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
6522
- }
6523
- }
6524
- else {
6525
- const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
6526
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
6527
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6528
- }, () => {
6529
- const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
6530
- if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
6531
- });
6532
- const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
6533
- if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
6534
- n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6535
- vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
6536
- }, void 0, parentSuspense);
6537
- }
6538
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6539
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6540
- else updateComponent(n1, n2, optimized);
6720
+ if (n2.type.__vapor) {
6721
+ if (n1 == null) {
6722
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
6723
+ else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
6724
+ } else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
6725
+ } else if (n1 == null) {
6726
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6727
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6728
+ } else updateComponent(n1, n2, optimized);
6541
6729
  };
6542
6730
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
6543
6731
  const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
@@ -6569,14 +6757,16 @@ function baseCreateRenderer(options, createHydrationFns) {
6569
6757
  };
6570
6758
  const updateComponent = (n1, n2, optimized) => {
6571
6759
  const instance = n2.component = n1.component;
6572
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
6573
- updateComponentPreRender(instance, n2, optimized);
6574
- return;
6760
+ if (shouldUpdateComponent(n1, n2, optimized)) {
6761
+ if (instance.asyncDep && !instance.asyncResolved) {
6762
+ n2.el = n1.el;
6763
+ updateComponentPreRender(instance, n2, optimized);
6764
+ return;
6765
+ } else {
6766
+ instance.next = n2;
6767
+ instance.effect.run();
6768
+ }
6575
6769
  } else {
6576
- instance.next = n2;
6577
- instance.effect.run();
6578
- }
6579
- else {
6580
6770
  n2.el = n1.el;
6581
6771
  instance.vnode = n2;
6582
6772
  }
@@ -6667,6 +6857,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6667
6857
  } else next = vnode;
6668
6858
  if (bu) invokeArrayFns(bu);
6669
6859
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
6860
+ if (next.ibu) next.ibu();
6670
6861
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
6671
6862
  toggleRecurse(instance, true);
6672
6863
  const nextTree = renderComponentRoot(instance);
@@ -6676,7 +6867,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6676
6867
  next.el = nextTree.el;
6677
6868
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
6678
6869
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
6679
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
6870
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
6871
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
6872
+ next.iu && next.iu();
6873
+ }, void 0, parentSuspense);
6680
6874
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
6681
6875
  }
6682
6876
  }
@@ -6715,9 +6909,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6715
6909
  if (shapeFlag & 8) {
6716
6910
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
6717
6911
  if (c2 !== c1) hostSetElementText(container, c2);
6718
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6719
- else unmountChildren(c1, parentComponent, parentSuspense, true);
6720
- else {
6912
+ } else if (prevShapeFlag & 16) {
6913
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6914
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
6915
+ } else {
6721
6916
  if (prevShapeFlag & 8) hostSetElementText(container, "");
6722
6917
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6723
6918
  }
@@ -6813,15 +7008,17 @@ function baseCreateRenderer(options, createHydrationFns) {
6813
7008
  const anchorVNode = c2[nextIndex + 1];
6814
7009
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
6815
7010
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6816
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
6817
- else j--;
7011
+ else if (moved) {
7012
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
7013
+ else j--;
7014
+ }
6818
7015
  }
6819
7016
  }
6820
7017
  };
6821
7018
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
6822
7019
  const { el, type, transition, children, shapeFlag } = vnode;
6823
7020
  if (isVaporComponent(type) || type === VaporSlot) {
6824
- getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
7021
+ getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
6825
7022
  return;
6826
7023
  }
6827
7024
  if (shapeFlag & 6) {
@@ -6846,54 +7043,37 @@ function baseCreateRenderer(options, createHydrationFns) {
6846
7043
  moveStaticNode(vnode, container, anchor);
6847
7044
  return;
6848
7045
  }
6849
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
6850
- else {
6851
- const { leave, delayLeave, afterLeave } = transition;
6852
- const remove = () => {
7046
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
7047
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
7048
+ else performTransitionLeave(el, transition, () => {
6853
7049
  if (vnode.ctx.isUnmounted) hostRemove(el);
6854
7050
  else hostInsert(el, container, anchor);
6855
- };
6856
- const performLeave = () => {
6857
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
6858
- if (el._isLeaving) el[leaveCbKey](true);
6859
- if (transition.persisted && !wasLeaving) remove();
6860
- else leave(el, () => {
6861
- remove();
6862
- afterLeave && afterLeave();
6863
- });
6864
- };
6865
- if (delayLeave) delayLeave(el, remove, performLeave);
6866
- else performLeave();
6867
- }
6868
- else hostInsert(el, container, anchor);
7051
+ }, true, true);
7052
+ } else hostInsert(el, container, anchor);
6869
7053
  };
6870
7054
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
6871
7055
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
6872
- if (patchFlag === -2) optimized = false;
7056
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
6873
7057
  if (ref != null) {
6874
7058
  const prevSub = setActiveSub();
6875
7059
  setRef(ref, null, parentSuspense, vnode, true);
6876
7060
  setActiveSub(prevSub);
6877
7061
  }
6878
- if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
7062
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
6879
7063
  if (shapeFlag & 256) {
6880
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
7064
+ if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
6881
7065
  else parentComponent.ctx.deactivate(vnode);
6882
7066
  return;
6883
7067
  }
7068
+ if (shapeFlag & 6 && isVaporComponent(type)) {
7069
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7070
+ return;
7071
+ }
6884
7072
  const shouldInvokeDirs = shapeFlag & 1 && dirs;
6885
7073
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
6886
7074
  let vnodeHook;
6887
7075
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
6888
- if (shapeFlag & 6) if (isVaporComponent(type)) {
6889
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
6890
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
6891
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
6892
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
6893
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
6894
- }, void 0, parentSuspense);
6895
- return;
6896
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
7076
+ if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
6897
7077
  else {
6898
7078
  if (shapeFlag & 128) {
6899
7079
  vnode.suspense.unmount(parentSuspense, doRemove);
@@ -6904,7 +7084,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6904
7084
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
6905
7085
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
6906
7086
  if (type === VaporSlot) {
6907
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
7087
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
6908
7088
  return;
6909
7089
  }
6910
7090
  if (doRemove) remove(vnode);
@@ -6924,6 +7104,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6924
7104
  }
6925
7105
  if (type === Static) {
6926
7106
  removeStaticNode(vnode);
7107
+ if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
6927
7108
  return;
6928
7109
  }
6929
7110
  if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
@@ -6948,7 +7129,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6948
7129
  if (effect) {
6949
7130
  effect.stop();
6950
7131
  unmount(subTree, instance, parentSuspense, doRemove);
6951
- } else if (doRemove && subTree && instance.vnode.el) remove(subTree);
7132
+ } else if (instance.vnode.el && subTree) {
7133
+ subTree.transition = instance.vnode.transition;
7134
+ unmount(subTree, instance, parentSuspense, doRemove);
7135
+ }
6952
7136
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
6953
7137
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
6954
7138
  queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
@@ -7017,12 +7201,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
7017
7201
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
7018
7202
  }
7019
7203
  function toggleRecurse({ effect, job, vapor }, allowed) {
7020
- if (!vapor) if (allowed) {
7021
- effect.flags |= 128;
7022
- job.flags |= 2;
7023
- } else {
7024
- effect.flags &= -129;
7025
- job.flags &= -3;
7204
+ if (!vapor) {
7205
+ if (allowed) {
7206
+ effect.flags |= 128;
7207
+ job.flags |= 2;
7208
+ } else {
7209
+ effect.flags &= -129;
7210
+ job.flags &= -3;
7211
+ }
7026
7212
  }
7027
7213
  }
7028
7214
  function needTransition(parentSuspense, transition) {
@@ -7061,8 +7247,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
7061
7247
  }
7062
7248
  function locateNonHydratedAsyncRoot(instance) {
7063
7249
  const subComponent = instance.subTree && instance.subTree.component;
7064
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7065
- else return locateNonHydratedAsyncRoot(subComponent);
7250
+ if (subComponent) {
7251
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7252
+ else return locateNonHydratedAsyncRoot(subComponent);
7253
+ }
7066
7254
  }
7067
7255
  function invalidateMount(hooks) {
7068
7256
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
@@ -7081,13 +7269,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
7081
7269
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
7082
7270
  const performRemove = () => {
7083
7271
  remove();
7084
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
7272
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
7085
7273
  };
7086
7274
  if (force || isElement && transition && !transition.persisted) {
7087
7275
  const { leave, delayLeave } = transition;
7088
7276
  const performLeave = () => {
7277
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
7089
7278
  if (el._isLeaving && force) el[leaveCbKey](true);
7090
- leave(el, performRemove);
7279
+ if (force && transition.persisted && !wasLeaving) remove();
7280
+ else leave(el, performRemove);
7091
7281
  };
7092
7282
  if (delayLeave) delayLeave(el, performRemove, performLeave);
7093
7283
  else performLeave();
@@ -7103,7 +7293,7 @@ function isVaporComponent(type) {
7103
7293
  /**
7104
7294
  * shared between vdom and vapor
7105
7295
  */
7106
- function getInheritedScopeIds(vnode, parentComponent) {
7296
+ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
7107
7297
  const inheritedScopeIds = [];
7108
7298
  let currentParent = parentComponent;
7109
7299
  let currentVNode = vnode;
@@ -7118,6 +7308,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
7118
7308
  currentParent = currentParent.parent;
7119
7309
  } else break;
7120
7310
  }
7311
+ const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
7312
+ if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
7121
7313
  return inheritedScopeIds;
7122
7314
  }
7123
7315
  function resolveAsyncComponentPlaceholder(anchorVnode) {
@@ -7136,7 +7328,7 @@ const Suspense = {
7136
7328
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
7137
7329
  if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
7138
7330
  else {
7139
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
7331
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
7140
7332
  n2.suspense = n1.suspense;
7141
7333
  n2.suspense.vnode = n2;
7142
7334
  n2.el = n1.el;
@@ -7174,10 +7366,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7174
7366
  if (pendingBranch) {
7175
7367
  suspense.pendingBranch = newBranch;
7176
7368
  if (isSameVNodeType(pendingBranch, newBranch)) {
7177
- patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7369
+ suspense.deps++;
7370
+ patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7371
+ suspense.deps--;
7178
7372
  if (suspense.deps <= 0) suspense.resolve();
7179
7373
  else if (isInFallback) {
7180
- if (!isHydrating) {
7374
+ if (!isHydrating && !suspense.isFallbackMountPending) {
7181
7375
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7182
7376
  setActiveBranch(suspense, newFallback);
7183
7377
  }
@@ -7189,12 +7383,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7189
7383
  suspense.activeBranch = pendingBranch;
7190
7384
  } else unmount(pendingBranch, parentComponent, suspense);
7191
7385
  suspense.deps = 0;
7386
+ for (let i = 0; i < suspense.effects.length; i++) {
7387
+ const effect = suspense.effects[i];
7388
+ if (effect.flags & 8) queuePostFlushCb(effect);
7389
+ }
7192
7390
  suspense.effects.length = 0;
7193
7391
  suspense.hiddenContainer = createElement("div");
7194
7392
  if (isInFallback) {
7195
7393
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7196
7394
  if (suspense.deps <= 0) suspense.resolve();
7197
- else {
7395
+ else if (!suspense.isFallbackMountPending) {
7198
7396
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7199
7397
  setActiveBranch(suspense, newFallback);
7200
7398
  }
@@ -7287,7 +7485,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7287
7485
  let hasUnresolvedAncestor = false;
7288
7486
  while (parent) {
7289
7487
  if (parent.pendingBranch) {
7290
- parent.effects.push(...effects);
7488
+ for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
7291
7489
  hasUnresolvedAncestor = true;
7292
7490
  break;
7293
7491
  }
@@ -7297,6 +7495,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7297
7495
  suspense.effects = [];
7298
7496
  if (isSuspensible) {
7299
7497
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
7498
+ parentSuspenseId = void 0;
7300
7499
  parentSuspense.deps--;
7301
7500
  if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
7302
7501
  }
@@ -7311,8 +7510,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7311
7510
  const mountFallback = () => {
7312
7511
  suspense.isFallbackMountPending = false;
7313
7512
  if (!suspense.isInFallback) return;
7314
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7315
- setActiveBranch(suspense, fallbackVNode);
7513
+ const latestFallback = suspense.vnode.ssFallback;
7514
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7515
+ setActiveBranch(suspense, latestFallback);
7316
7516
  };
7317
7517
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
7318
7518
  if (delayEnter) {
@@ -7333,11 +7533,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7333
7533
  registerDep(instance, onResolve) {
7334
7534
  const isInPendingSuspense = !!suspense.pendingBranch;
7335
7535
  if (isInPendingSuspense) suspense.deps++;
7536
+ const hydratedEl = instance.vnode && instance.vnode.el;
7336
7537
  instance.asyncDep.catch((err) => {
7337
7538
  handleError(err, instance, 0);
7338
7539
  }).then((asyncSetupResult) => {
7339
7540
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
7340
7541
  setCurrentInstance(null, void 0);
7542
+ if (hydratedEl && !instance.scope.active) {
7543
+ if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
7544
+ return;
7545
+ }
7341
7546
  instance.asyncResolved = true;
7342
7547
  onResolve(asyncSetupResult);
7343
7548
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
@@ -7384,9 +7589,10 @@ function normalizeSuspenseSlot(s) {
7384
7589
  return s;
7385
7590
  }
7386
7591
  function queueEffectWithSuspense(fn, id, suspense) {
7387
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
7388
- else suspense.effects.push(fn);
7389
- else queuePostFlushCb(fn, id);
7592
+ if (suspense && suspense.pendingBranch) {
7593
+ if (isArray(fn)) suspense.effects.push(...fn);
7594
+ else suspense.effects.push(fn);
7595
+ } else queuePostFlushCb(fn, id);
7390
7596
  }
7391
7597
  function setActiveBranch(suspense, branch) {
7392
7598
  suspense.activeBranch = branch;
@@ -7589,8 +7795,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
7589
7795
  if (isVNode(type)) {
7590
7796
  const cloned = cloneVNode(type, props, true);
7591
7797
  if (children) normalizeChildren(cloned, children);
7592
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7593
- else currentBlock.push(cloned);
7798
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
7799
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7800
+ else currentBlock.push(cloned);
7801
+ }
7594
7802
  cloned.patchFlag = -2;
7595
7803
  return cloned;
7596
7804
  }
@@ -7647,7 +7855,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7647
7855
  ce: vnode.ce,
7648
7856
  vi: vnode.vi,
7649
7857
  vs: cloneVaporSlotMeta(vnode),
7650
- vb: vnode.vb
7858
+ vb: vnode.vb,
7859
+ ibu: vnode.ibu,
7860
+ iu: vnode.iu,
7861
+ cacheIndex: vnode.cacheIndex
7651
7862
  };
7652
7863
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
7653
7864
  defineLegacyVNodeProperties(cloned);
@@ -7658,8 +7869,7 @@ function cloneVaporSlotMeta(vnode) {
7658
7869
  if (!vaporSlot) return vaporSlot;
7659
7870
  const cloned = {
7660
7871
  slot: vaporSlot.slot,
7661
- fallback: vaporSlot.fallback,
7662
- outletFallback: vaporSlot.outletFallback
7872
+ outlets: vaporSlot.outlets
7663
7873
  };
7664
7874
  if (vnode.el) {
7665
7875
  cloned.state = vaporSlot.state;
@@ -7702,25 +7912,28 @@ function normalizeChildren(vnode, children) {
7702
7912
  const { shapeFlag } = vnode;
7703
7913
  if (children == null) children = null;
7704
7914
  else if (isArray(children)) type = 16;
7705
- else if (typeof children === "object") if (shapeFlag & 65) {
7706
- const slot = children.default;
7707
- if (slot) {
7708
- slot._c && (slot._d = false);
7709
- normalizeChildren(vnode, slot());
7710
- slot._c && (slot._d = true);
7711
- }
7712
- return;
7713
- } else {
7714
- type = 32;
7715
- const slotFlag = children._;
7716
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
7717
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
7718
- else {
7719
- children._ = 2;
7720
- vnode.patchFlag |= 1024;
7915
+ else if (typeof children === "object") {
7916
+ if (shapeFlag & 65) {
7917
+ const slot = children.default;
7918
+ if (slot) {
7919
+ slot._c && (slot._d = false);
7920
+ normalizeChildren(vnode, slot());
7921
+ slot._c && (slot._d = true);
7922
+ }
7923
+ return;
7924
+ } else {
7925
+ type = 32;
7926
+ const slotFlag = children._;
7927
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
7928
+ else if (slotFlag === 3 && currentRenderingInstance) {
7929
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
7930
+ else {
7931
+ children._ = 2;
7932
+ vnode.patchFlag |= 1024;
7933
+ }
7934
+ }
7721
7935
  }
7722
- }
7723
- else if (isFunction(children)) {
7936
+ } else if (isFunction(children)) {
7724
7937
  if (shapeFlag & 65) {
7725
7938
  normalizeChildren(vnode, { default: children });
7726
7939
  return;
@@ -7797,6 +8010,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
7797
8010
  simpleSetCurrentInstance(instance);
7798
8011
  }
7799
8012
  };
8013
+ /**
8014
+ * Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
8015
+ * `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
8016
+ * verbatim instead of re-triggering the `instance.scope` default.
8017
+ * @internal
8018
+ */
8019
+ const restoreCurrentInstance = (prev) => {
8020
+ setCurrentScope(prev[1]);
8021
+ simpleSetCurrentInstance(prev[0]);
8022
+ };
7800
8023
  const internalOptions = [
7801
8024
  "ce",
7802
8025
  "type",
@@ -7822,7 +8045,7 @@ const useInstanceOption = (key, silent = false) => {
7822
8045
  };
7823
8046
  //#endregion
7824
8047
  //#region packages/runtime-core/src/component.ts
7825
- const emptyAppContext = /* @__PURE__ */ createAppContext();
8048
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
7826
8049
  let uid = 0;
7827
8050
  function createComponentInstance(vnode, parent, suspense) {
7828
8051
  const type = vnode.type;
@@ -7925,7 +8148,7 @@ function setupStatefulComponent(instance, isSSR) {
7925
8148
  const setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
7926
8149
  const isAsyncSetup = isPromise(setupResult);
7927
8150
  setActiveSub(prevSub);
7928
- setCurrentInstance(...prev);
8151
+ restoreCurrentInstance(prev);
7929
8152
  if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
7930
8153
  if (isAsyncSetup) {
7931
8154
  const unsetCurrentInstance = () => {
@@ -7933,7 +8156,12 @@ function setupStatefulComponent(instance, isSSR) {
7933
8156
  };
7934
8157
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
7935
8158
  if (isSSR) return setupResult.then((resolvedResult) => {
7936
- handleSetupResult(instance, resolvedResult, isSSR);
8159
+ setInSSRSetupState(true);
8160
+ try {
8161
+ handleSetupResult(instance, resolvedResult, isSSR);
8162
+ } finally {
8163
+ setInSSRSetupState(false);
8164
+ }
7937
8165
  }).catch((e) => {
7938
8166
  handleError(e, instance, 0);
7939
8167
  });
@@ -7942,9 +8170,10 @@ function setupStatefulComponent(instance, isSSR) {
7942
8170
  } else finishComponentSetup(instance, isSSR);
7943
8171
  }
7944
8172
  function handleSetupResult(instance, setupResult, isSSR) {
7945
- if (isFunction(setupResult)) if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
7946
- else instance.render = setupResult;
7947
- else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
8173
+ if (isFunction(setupResult)) {
8174
+ if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
8175
+ else instance.render = setupResult;
8176
+ } else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
7948
8177
  finishComponentSetup(instance, isSSR);
7949
8178
  }
7950
8179
  let compile$1;
@@ -7988,7 +8217,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
7988
8217
  applyOptions(instance);
7989
8218
  } finally {
7990
8219
  setActiveSub(prevSub);
7991
- setCurrentInstance(...prevInstance);
8220
+ restoreCurrentInstance(prevInstance);
7992
8221
  }
7993
8222
  }
7994
8223
  }
@@ -8014,14 +8243,13 @@ function getComponentPublicInstance(instance) {
8014
8243
  if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
8015
8244
  get(target, key) {
8016
8245
  if (key in target) return target[key];
8017
- else {
8246
+ else if (!instance.vapor) {
8018
8247
  const publicPropertiesMap = getPublicPropertiesMap();
8019
8248
  if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
8020
8249
  }
8021
8250
  },
8022
8251
  has(target, key) {
8023
- const publicPropertiesMap = getPublicPropertiesMap();
8024
- return key in target || key in publicPropertiesMap;
8252
+ return key in target || !instance.vapor && key in getPublicPropertiesMap();
8025
8253
  }
8026
8254
  }));
8027
8255
  else return instance.proxy;
@@ -8043,11 +8271,12 @@ function h(type, propsOrChildren, children) {
8043
8271
  try {
8044
8272
  setBlockTracking(-1);
8045
8273
  const l = arguments.length;
8046
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8047
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8048
- return createVNode(type, propsOrChildren);
8049
- } else return createVNode(type, null, propsOrChildren);
8050
- else {
8274
+ if (l === 2) {
8275
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8276
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8277
+ return createVNode(type, propsOrChildren);
8278
+ } else return createVNode(type, null, propsOrChildren);
8279
+ } else {
8051
8280
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
8052
8281
  else if (l === 3 && isVNode(children)) children = [children];
8053
8282
  return createVNode(type, propsOrChildren, children);
@@ -8058,15 +8287,7 @@ function h(type, propsOrChildren, children) {
8058
8287
  }
8059
8288
  //#endregion
8060
8289
  //#region packages/runtime-core/src/customFormatter.ts
8061
- function initCustomFormatter() {
8062
- return;
8063
- function isKeyOfType(Comp, key, type) {
8064
- const opts = Comp[type];
8065
- if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) return true;
8066
- if (Comp.extends && isKeyOfType(Comp.extends, key, type)) return true;
8067
- if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) return true;
8068
- }
8069
- }
8290
+ function initCustomFormatter() {}
8070
8291
  //#endregion
8071
8292
  //#region packages/runtime-core/src/helpers/withMemo.ts
8072
8293
  function withMemo(memo, render, cache, index) {
@@ -8086,7 +8307,7 @@ function isMemoSame(cached, memo) {
8086
8307
  }
8087
8308
  //#endregion
8088
8309
  //#region packages/runtime-core/src/index.ts
8089
- const version = "3.6.0-rc.1";
8310
+ const version = "3.6.0-rc.11";
8090
8311
  const warn = NOOP;
8091
8312
  /**
8092
8313
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -8108,7 +8329,10 @@ const ssrUtils = {
8108
8329
  getComponentPublicInstance,
8109
8330
  ensureValidVNode,
8110
8331
  pushWarningContext,
8111
- popWarningContext
8332
+ popWarningContext,
8333
+ VaporSlot,
8334
+ rawVaporSlotKey,
8335
+ invokeSlotFallback
8112
8336
  };
8113
8337
  /**
8114
8338
  * @internal only exposed in compat builds
@@ -8130,13 +8354,13 @@ const DeprecationTypes = DeprecationTypes$1;
8130
8354
  let policy = void 0;
8131
8355
  const tt = typeof window !== "undefined" && window.trustedTypes;
8132
8356
  if (tt) try {
8133
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
8357
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
8134
8358
  } catch (e) {}
8135
8359
  const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
8136
8360
  const svgNS = "http://www.w3.org/2000/svg";
8137
8361
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
8138
8362
  const doc = typeof document !== "undefined" ? document : null;
8139
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
8363
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
8140
8364
  const nodeOps = {
8141
8365
  insert: (child, parent, anchor) => {
8142
8366
  parent.insertBefore(child, anchor || null);
@@ -8210,7 +8434,7 @@ const DOMTransitionPropsValidators = {
8210
8434
  leaveActiveClass: String,
8211
8435
  leaveToClass: String
8212
8436
  };
8213
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8437
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8214
8438
  /**
8215
8439
  * Wrap logic that attaches extra properties to Transition in a function
8216
8440
  * so that it can be annotated as pure
@@ -8225,7 +8449,7 @@ const decorate$1 = (t) => {
8225
8449
  * DOM Transition is a higher-order-component based on the platform-agnostic
8226
8450
  * base Transition component, with DOM-specific logic.
8227
8451
  */
8228
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8452
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8229
8453
  /**
8230
8454
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
8231
8455
  * with custom HOCs.
@@ -8463,14 +8687,15 @@ const vShow = {
8463
8687
  },
8464
8688
  updated(el, { value, oldValue }, { transition }) {
8465
8689
  if (!value === !oldValue) return;
8466
- if (transition) if (value) {
8467
- transition.beforeEnter(el);
8468
- setDisplay(el, true);
8469
- transition.enter(el);
8470
- } else transition.leave(el, () => {
8471
- setDisplay(el, false);
8472
- });
8473
- else setDisplay(el, value);
8690
+ if (transition) {
8691
+ if (value) {
8692
+ transition.beforeEnter(el);
8693
+ setDisplay(el, true);
8694
+ transition.enter(el);
8695
+ } else transition.leave(el, () => {
8696
+ setDisplay(el, false);
8697
+ });
8698
+ } else setDisplay(el, value);
8474
8699
  },
8475
8700
  beforeUnmount(el, { value }) {
8476
8701
  setDisplay(el, value);
@@ -8501,11 +8726,13 @@ function patchStyle(el, prev, next) {
8501
8726
  const isCssString = isString(next);
8502
8727
  let hasControlledDisplay = false;
8503
8728
  if (next && !isCssString) {
8504
- if (prev) if (!isString(prev)) {
8505
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
8506
- } else for (const prevStyle of prev.split(";")) {
8507
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
8508
- if (next[key] == null) setStyle(style, key, "");
8729
+ if (prev) {
8730
+ if (!isString(prev)) {
8731
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
8732
+ } else for (const prevStyle of prev.split(";")) {
8733
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
8734
+ if (next[key] == null) setStyle(style, key, "");
8735
+ }
8509
8736
  }
8510
8737
  for (const key in next) {
8511
8738
  if (key === "display") hasControlledDisplay = true;
@@ -8521,7 +8748,11 @@ function patchStyle(el, prev, next) {
8521
8748
  style.cssText = next;
8522
8749
  hasControlledDisplay = displayRE.test(next);
8523
8750
  }
8524
- } else if (prev) el.removeAttribute("style");
8751
+ } else if (prev) {
8752
+ const cssVarText = style[CSS_VAR_TEXT];
8753
+ if (cssVarText) style.cssText = cssVarText;
8754
+ else el.removeAttribute("style");
8755
+ }
8525
8756
  if (vShowOriginalDisplay in el) {
8526
8757
  el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
8527
8758
  if (el[vShowHidden]) style.display = "none";
@@ -8532,8 +8763,10 @@ function setStyle(style, name, rawVal) {
8532
8763
  if (isArray(rawVal)) rawVal.forEach((v) => setStyle(style, name, v));
8533
8764
  else {
8534
8765
  const val = rawVal == null ? "" : String(rawVal);
8535
- if (name.startsWith("--")) style.setProperty(name, val);
8536
- else {
8766
+ if (name.startsWith("--")) {
8767
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
8768
+ else style.setProperty(name, val);
8769
+ } else {
8537
8770
  const prefixed = autoPrefix(style, name);
8538
8771
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
8539
8772
  else style[prefixed] = val;
@@ -8570,15 +8803,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
8570
8803
  //#region packages/runtime-dom/src/modules/attrs.ts
8571
8804
  const xlinkNS = "http://www.w3.org/1999/xlink";
8572
8805
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
8573
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
8574
- else el.setAttributeNS(xlinkNS, key, value);
8575
- else {
8806
+ if (isSVG && key.startsWith("xlink:")) {
8807
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
8808
+ else el.setAttributeNS(xlinkNS, key, value);
8809
+ } else {
8576
8810
  if (compatCoerceAttr(el, key, value, instance)) return;
8577
8811
  if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
8578
8812
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
8579
8813
  }
8580
8814
  }
8581
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck");
8815
+ const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
8582
8816
  function compatCoerceAttr(el, key, value, instance = null) {
8583
8817
  if (isEnumeratedAttr(key)) {
8584
8818
  const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
@@ -8667,7 +8901,7 @@ function parseEventName(name) {
8667
8901
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
8668
8902
  }
8669
8903
  let cachedNow = 0;
8670
- const p = /* @__PURE__ */ Promise.resolve();
8904
+ const p = /*@__PURE__*/ Promise.resolve();
8671
8905
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
8672
8906
  function createInvoker(initialValue, instance) {
8673
8907
  const invoker = (e) => {
@@ -8730,7 +8964,7 @@ function shouldSetAsPropForVueCE(el, key) {
8730
8964
  //#endregion
8731
8965
  //#region packages/runtime-dom/src/apiCustomElement.ts
8732
8966
  const REMOVAL = {};
8733
- /* @__NO_SIDE_EFFECTS__ */
8967
+ /*@__NO_SIDE_EFFECTS__*/
8734
8968
  function defineCustomElement(options, extraOptions, _createApp) {
8735
8969
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
8736
8970
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -8779,12 +9013,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
8779
9013
  this._parent = parent;
8780
9014
  break;
8781
9015
  }
8782
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
8783
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
8784
- this._pendingResolve = void 0;
8785
- this._resolveDef();
8786
- });
8787
- else this._resolveDef();
9016
+ if (!this._instance) {
9017
+ if (this._resolved) this._mountComponent(this._def);
9018
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
9019
+ this._pendingResolve = void 0;
9020
+ if (this.isConnected) return this._resolveDef();
9021
+ });
9022
+ else this._resolveDef();
9023
+ }
8788
9024
  }
8789
9025
  disconnectedCallback() {
8790
9026
  this._connected = false;
@@ -8818,7 +9054,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
8818
9054
  * resolve inner component definition (handle possible async component)
8819
9055
  */
8820
9056
  _resolveDef() {
8821
- if (this._pendingResolve) return;
9057
+ if (this._pendingResolve) return this._pendingResolve;
8822
9058
  for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
8823
9059
  this._ob = new MutationObserver(this._processMutations.bind(this));
8824
9060
  this._ob.observe(this, { attributes: true });
@@ -8847,6 +9083,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
8847
9083
  this._def = def;
8848
9084
  resolve(def);
8849
9085
  });
9086
+ return this._pendingResolve;
8850
9087
  } else resolve(this._def);
8851
9088
  }
8852
9089
  _mountComponent(def) {
@@ -8976,13 +9213,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
8976
9213
  _renderSlots() {
8977
9214
  const outlets = this._getSlots();
8978
9215
  const scopeId = this._instance.type.__scopeId;
8979
- const slotReplacements = /* @__PURE__ */ new Map();
8980
9216
  for (let i = 0; i < outlets.length; i++) {
8981
9217
  const o = outlets[i];
8982
9218
  const slotName = o.getAttribute("name") || "default";
8983
9219
  const content = this._slots[slotName];
8984
9220
  const parent = o.parentNode;
8985
- const replacementNodes = [];
8986
9221
  if (content) for (const n of content) {
8987
9222
  if (scopeId && n.nodeType === 1) {
8988
9223
  const id = scopeId + "-s";
@@ -8992,20 +9227,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
8992
9227
  while (child = walker.nextNode()) child.setAttribute(id, "");
8993
9228
  }
8994
9229
  parent.insertBefore(n, o);
8995
- replacementNodes.push(n);
8996
- }
8997
- else while (o.firstChild) {
8998
- const child = o.firstChild;
8999
- parent.insertBefore(child, o);
9000
- replacementNodes.push(child);
9001
9230
  }
9231
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
9002
9232
  parent.removeChild(o);
9003
- slotReplacements.set(o, {
9004
- nodes: replacementNodes,
9005
- usedFallback: !content
9006
- });
9007
9233
  }
9008
- this._updateSlotNodes(slotReplacements);
9009
9234
  }
9010
9235
  /**
9011
9236
  * @internal
@@ -9044,7 +9269,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
9044
9269
  * @internal
9045
9270
  */
9046
9271
  _hasShadowRoot() {
9047
- return this._def.shadowRoot !== false;
9272
+ return this._root !== this;
9048
9273
  }
9049
9274
  /**
9050
9275
  * @internal
@@ -9077,10 +9302,6 @@ var VueElement = class extends VueElementBase {
9077
9302
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
9078
9303
  this._app = this._instance = null;
9079
9304
  }
9080
- /**
9081
- * Only called when shadowRoot is false
9082
- */
9083
- _updateSlotNodes(replacements) {}
9084
9305
  _createVNode() {
9085
9306
  const baseProps = {};
9086
9307
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -9136,7 +9357,7 @@ const decorate = (t) => {
9136
9357
  };
9137
9358
  const TransitionGroup = /* @__PURE__ */ decorate({
9138
9359
  name: "TransitionGroup",
9139
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
9360
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
9140
9361
  tag: String,
9141
9362
  moveClass: String
9142
9363
  }),
@@ -9267,13 +9488,22 @@ function onCompositionEnd(e) {
9267
9488
  }
9268
9489
  }
9269
9490
  const assignKey = Symbol("_assign");
9491
+ const initialValueKey = Symbol("_initialValue");
9270
9492
  const vModelText = {
9271
9493
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
9494
+ if (el.parentNode) {
9495
+ if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
9496
+ else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
9497
+ }
9272
9498
  el[assignKey] = getModelAssigner(vnode);
9273
9499
  vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
9274
9500
  },
9275
- mounted(el, { value }) {
9276
- el.value = value == null ? "" : value;
9501
+ mounted(el, { value, modifiers: { trim, number } }) {
9502
+ const newValue = value == null ? "" : value;
9503
+ const initialValue = el[initialValueKey];
9504
+ delete el[initialValueKey];
9505
+ if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
9506
+ else el.value = newValue;
9277
9507
  },
9278
9508
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
9279
9509
  el[assignKey] = getModelAssigner(vnode);
@@ -9408,37 +9638,58 @@ const vModelSelectInit = (el, value, number, set) => {
9408
9638
  el._modelValue = value;
9409
9639
  addEventListener(el, "change", () => {
9410
9640
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
9411
- (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
9412
- el._assigning = true;
9413
- nextTick(() => {
9414
- el._assigning = false;
9415
- });
9641
+ const multiple = el.multiple;
9642
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
9643
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
9644
+ try {
9645
+ (set || el[assignKey])(assignedValue);
9646
+ } finally {
9647
+ nextTick(() => {
9648
+ if (el._pendingValue === pending) el._pendingValue = void 0;
9649
+ });
9650
+ }
9416
9651
  });
9417
9652
  };
9653
+ function isSameSelectValue(value, assignedValue, multiple) {
9654
+ if (!multiple) return looseEqual(value, assignedValue);
9655
+ if (isArray(value)) return looseEqual(value, assignedValue);
9656
+ if (isSet(value)) {
9657
+ if (value.size !== assignedValue.length) return false;
9658
+ for (const item of assignedValue) if (!value.has(item)) return false;
9659
+ return true;
9660
+ }
9661
+ return false;
9662
+ }
9418
9663
  /**
9419
9664
  * @internal
9420
9665
  */
9421
9666
  const vModelSetSelected = (el, value) => {
9422
9667
  el._modelValue = value;
9423
- if (el._assigning) return;
9668
+ const pending = el._pendingValue;
9669
+ el._pendingValue = void 0;
9670
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
9671
+ setSelected(el, value);
9672
+ };
9673
+ function setSelected(el, value) {
9424
9674
  const isMultiple = el.multiple;
9425
9675
  const isArrayValue = isArray(value);
9426
9676
  if (isMultiple && !isArrayValue && !isSet(value)) return;
9427
9677
  for (let i = 0, l = el.options.length; i < l; i++) {
9428
9678
  const option = el.options[i];
9429
9679
  const optionValue = getValue(option);
9430
- if (isMultiple) if (isArrayValue) {
9431
- const optionType = typeof optionValue;
9432
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
9433
- else option.selected = looseIndexOf(value, optionValue) > -1;
9434
- } else option.selected = value.has(optionValue);
9435
- else if (looseEqual(getValue(option), value)) {
9680
+ if (isMultiple) {
9681
+ if (isArrayValue) {
9682
+ const optionType = typeof optionValue;
9683
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
9684
+ else option.selected = looseIndexOf(value, optionValue) > -1;
9685
+ } else option.selected = value.has(optionValue);
9686
+ } else if (looseEqual(getValue(option), value)) {
9436
9687
  if (el.selectedIndex !== i) el.selectedIndex = i;
9437
9688
  return;
9438
9689
  }
9439
9690
  }
9440
9691
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
9441
- };
9692
+ }
9442
9693
  /**
9443
9694
  * @internal retrieve raw value set via :value bindings
9444
9695
  */
@@ -9751,7 +10002,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
9751
10002
  withModifiers: () => withModifiers,
9752
10003
  withScopeId: () => withScopeId
9753
10004
  });
9754
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
10005
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
9755
10006
  let renderer;
9756
10007
  let enabledHydration = false;
9757
10008
  function ensureRenderer() {
@@ -10084,7 +10335,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
10084
10335
  //#endregion
10085
10336
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
10086
10337
  var _a;
10087
- const decodeMap = new Map([
10338
+ const decodeMap = /* @__PURE__ */ new Map([
10088
10339
  [0, 65533],
10089
10340
  [128, 8364],
10090
10341
  [130, 8218],
@@ -10152,7 +10403,7 @@ function decodeBase64(input) {
10152
10403
  }
10153
10404
  //#endregion
10154
10405
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
10155
- 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");
10406
+ 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");
10156
10407
  //#endregion
10157
10408
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
10158
10409
  /**
@@ -10546,7 +10797,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
10546
10797
  }
10547
10798
  return -1;
10548
10799
  }
10549
- const htmlDecoder = /* @__PURE__ */ getDecoder(htmlDecodeTree);
10800
+ const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
10550
10801
  /**
10551
10802
  * Decodes an HTML string.
10552
10803
  *
@@ -10738,13 +10989,14 @@ var Tokenizer = class {
10738
10989
  }
10739
10990
  }
10740
10991
  stateInterpolationOpen(c) {
10741
- if (c === this.delimiterOpen[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterOpen.length - 1) {
10742
- const start = this.index + 1 - this.delimiterOpen.length;
10743
- if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
10744
- this.state = 3;
10745
- this.sectionStart = start;
10746
- } else this.delimiterIndex++;
10747
- else if (this.inRCDATA) {
10992
+ if (c === this.delimiterOpen[this.delimiterIndex]) {
10993
+ if (this.delimiterIndex === this.delimiterOpen.length - 1) {
10994
+ const start = this.index + 1 - this.delimiterOpen.length;
10995
+ if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
10996
+ this.state = 3;
10997
+ this.sectionStart = start;
10998
+ } else this.delimiterIndex++;
10999
+ } else if (this.inRCDATA) {
10748
11000
  this.state = 32;
10749
11001
  this.stateInRCDATA(c);
10750
11002
  } else {
@@ -10760,13 +11012,14 @@ var Tokenizer = class {
10760
11012
  }
10761
11013
  }
10762
11014
  stateInterpolationClose(c) {
10763
- if (c === this.delimiterClose[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterClose.length - 1) {
10764
- this.cbs.oninterpolation(this.sectionStart, this.index + 1);
10765
- if (this.inRCDATA) this.state = 32;
10766
- else this.state = 1;
10767
- this.sectionStart = this.index + 1;
10768
- } else this.delimiterIndex++;
10769
- else {
11015
+ if (c === this.delimiterClose[this.delimiterIndex]) {
11016
+ if (this.delimiterIndex === this.delimiterClose.length - 1) {
11017
+ this.cbs.oninterpolation(this.sectionStart, this.index + 1);
11018
+ if (this.inRCDATA) this.state = 32;
11019
+ else this.state = 1;
11020
+ this.sectionStart = this.index + 1;
11021
+ } else this.delimiterIndex++;
11022
+ } else {
10770
11023
  this.state = 3;
10771
11024
  this.stateInterpolation(c);
10772
11025
  }
@@ -10882,9 +11135,10 @@ var Tokenizer = class {
10882
11135
  this.sectionStart = this.index;
10883
11136
  if (this.mode === 0) this.state = 6;
10884
11137
  else if (this.inSFCRoot) this.state = 34;
10885
- else if (!this.inXML) if (c === 116) this.state = 30;
10886
- else this.state = c === 115 ? 29 : 6;
10887
- else this.state = 6;
11138
+ else if (!this.inXML) {
11139
+ if (c === 116) this.state = 30;
11140
+ else this.state = c === 115 ? 29 : 6;
11141
+ } else this.state = 6;
10888
11142
  } else if (c === 47) this.state = 8;
10889
11143
  else {
10890
11144
  this.state = 1;
@@ -11251,9 +11505,7 @@ var Tokenizer = class {
11251
11505
  case 24:
11252
11506
  this.stateInProcessingInstruction(c);
11253
11507
  break;
11254
- case 33:
11255
- this.stateInEntity();
11256
- break;
11508
+ case 33: this.stateInEntity();
11257
11509
  }
11258
11510
  this.index++;
11259
11511
  }
@@ -11286,9 +11538,10 @@ var Tokenizer = class {
11286
11538
  handleTrailingData() {
11287
11539
  const endIndex = this.buffer.length;
11288
11540
  if (this.sectionStart >= endIndex) return;
11289
- if (this.state === 28) if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
11290
- else this.cbs.oncomment(this.sectionStart, endIndex);
11291
- 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);
11541
+ if (this.state === 28) {
11542
+ if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
11543
+ else this.cbs.oncomment(this.sectionStart, endIndex);
11544
+ } 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);
11292
11545
  }
11293
11546
  emitCodePoint(cp, consumed) {
11294
11547
  if (this.baseState !== 1 && this.baseState !== 32) {
@@ -11405,16 +11658,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
11405
11658
  const isRefed = isReferencedIdentifier(node, parent, parentStack);
11406
11659
  if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
11407
11660
  } else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
11408
- else if (isFunctionType(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11409
- else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
11410
- else if (node.type === "BlockStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11411
- else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
11412
- else if (node.type === "SwitchStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11413
- else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11414
- else if (node.type === "CatchClause" && node.param) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11415
- else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
11416
- else if (isForStatement(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11417
- else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11661
+ else if (isFunctionType(node)) {
11662
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11663
+ else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
11664
+ } else if (node.type === "BlockStatement") {
11665
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11666
+ else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
11667
+ } else if (node.type === "SwitchStatement") {
11668
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11669
+ else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11670
+ } else if (node.type === "CatchClause" && node.param) {
11671
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11672
+ else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
11673
+ } else if (isForStatement(node)) {
11674
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11675
+ else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11676
+ }
11418
11677
  },
11419
11678
  leave(node, parent) {
11420
11679
  parent && parentStack.pop();
@@ -11506,9 +11765,7 @@ function extractIdentifiers(param, nodes = []) {
11506
11765
  case "RestElement":
11507
11766
  extractIdentifiers(param.argument, nodes);
11508
11767
  break;
11509
- case "AssignmentPattern":
11510
- extractIdentifiers(param.left, nodes);
11511
- break;
11768
+ case "AssignmentPattern": extractIdentifiers(param.left, nodes);
11512
11769
  }
11513
11770
  return nodes;
11514
11771
  }
@@ -11700,7 +11957,7 @@ function isTemplateNode(node) {
11700
11957
  function isSlotOutlet(node) {
11701
11958
  return node.type === 1 && node.tagType === 2;
11702
11959
  }
11703
- const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
11960
+ const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
11704
11961
  function getUnnormalizedProps(props, callPath = []) {
11705
11962
  if (props && !isString(props) && props.type === 14) {
11706
11963
  const callee = props.callee;
@@ -11743,9 +12000,10 @@ function injectProp(node, prop, context) {
11743
12000
  propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
11744
12001
  if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
11745
12002
  }
11746
- if (node.type === 13) if (parentCall) parentCall.arguments[0] = propsWithInjection;
11747
- else node.props = propsWithInjection;
11748
- else if (parentCall) parentCall.arguments[0] = propsWithInjection;
12003
+ if (node.type === 13) {
12004
+ if (parentCall) parentCall.arguments[0] = propsWithInjection;
12005
+ else node.props = propsWithInjection;
12006
+ } else if (parentCall) parentCall.arguments[0] = propsWithInjection;
11749
12007
  else node.arguments[2] = propsWithInjection;
11750
12008
  }
11751
12009
  function injectSlotKey(node, prop) {
@@ -11985,26 +12243,28 @@ const tokenizer = new Tokenizer(stack, {
11985
12243
  onattribend(quote, end) {
11986
12244
  if (currentOpenTag && currentProp) {
11987
12245
  setLocEnd(currentProp.loc, end);
11988
- if (quote !== 0) if (currentProp.type === 6) {
11989
- if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
11990
- if (quote === 1 && !currentAttrValue) emitError(13, end);
11991
- currentProp.value = {
11992
- type: 2,
11993
- content: currentAttrValue,
11994
- loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
11995
- };
11996
- if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
11997
- } else {
11998
- let expParseMode = 0;
11999
- if (currentProp.name === "for") expParseMode = 3;
12000
- else if (currentProp.name === "slot") expParseMode = 1;
12001
- else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
12002
- currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
12003
- if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
12004
- let syncIndex = -1;
12005
- 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)) {
12006
- currentProp.name = "model";
12007
- currentProp.modifiers.splice(syncIndex, 1);
12246
+ if (quote !== 0) {
12247
+ if (currentProp.type === 6) {
12248
+ if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
12249
+ if (quote === 1 && !currentAttrValue) emitError(13, end);
12250
+ currentProp.value = {
12251
+ type: 2,
12252
+ content: currentAttrValue,
12253
+ loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
12254
+ };
12255
+ if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
12256
+ } else {
12257
+ let expParseMode = 0;
12258
+ if (currentProp.name === "for") expParseMode = 3;
12259
+ else if (currentProp.name === "slot") expParseMode = 1;
12260
+ else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
12261
+ currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
12262
+ if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
12263
+ let syncIndex = -1;
12264
+ 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)) {
12265
+ currentProp.name = "model";
12266
+ currentProp.modifiers.splice(syncIndex, 1);
12267
+ }
12008
12268
  }
12009
12269
  }
12010
12270
  if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
@@ -12047,10 +12307,7 @@ const tokenizer = new Tokenizer(stack, {
12047
12307
  case 18:
12048
12308
  case 19:
12049
12309
  case 20:
12050
- case 21:
12051
- emitError(9, end);
12052
- break;
12053
- default: break;
12310
+ case 21: emitError(9, end);
12054
12311
  }
12055
12312
  for (let index = 0; index < stack.length; index++) {
12056
12313
  onCloseTag(stack[index], end - 1);
@@ -12180,7 +12437,7 @@ function backTrack(index, c) {
12180
12437
  while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
12181
12438
  return i;
12182
12439
  }
12183
- const specialTemplateDir = new Set([
12440
+ const specialTemplateDir = /* @__PURE__ */ new Set([
12184
12441
  "if",
12185
12442
  "else",
12186
12443
  "else-if",
@@ -12216,16 +12473,18 @@ function condenseWhitespace(nodes) {
12216
12473
  let removedWhitespace = false;
12217
12474
  for (let i = 0; i < nodes.length; i++) {
12218
12475
  const node = nodes[i];
12219
- if (node.type === 2) if (!inPre) {
12220
- if (isAllWhitespace(node.content)) {
12221
- const prev = nodes[i - 1] && nodes[i - 1].type;
12222
- const next = nodes[i + 1] && nodes[i + 1].type;
12223
- if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
12224
- removedWhitespace = true;
12225
- nodes[i] = null;
12226
- } else node.content = " ";
12227
- } else if (shouldCondense) node.content = condense(node.content);
12228
- } else node.content = node.content.replace(windowsNewlineRE, "\n");
12476
+ if (node.type === 2) {
12477
+ if (!inPre) {
12478
+ if (isAllWhitespace(node.content)) {
12479
+ const prev = nodes[i - 1] && nodes[i - 1].type;
12480
+ const next = nodes[i + 1] && nodes[i + 1].type;
12481
+ if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
12482
+ removedWhitespace = true;
12483
+ nodes[i] = null;
12484
+ } else node.content = " ";
12485
+ } else if (shouldCondense) node.content = condense(node.content);
12486
+ } else node.content = node.content.replace(windowsNewlineRE, "\n");
12487
+ }
12229
12488
  }
12230
12489
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
12231
12490
  }
@@ -12502,7 +12761,7 @@ function getConstantType(node, context) {
12502
12761
  default: return 0;
12503
12762
  }
12504
12763
  }
12505
- const allowHoistedHelperSet = new Set([
12764
+ const allowHoistedHelperSet = /* @__PURE__ */ new Set([
12506
12765
  NORMALIZE_CLASS,
12507
12766
  NORMALIZE_STYLE,
12508
12767
  NORMALIZE_PROPS,
@@ -12546,7 +12805,7 @@ function getSelfName(filename) {
12546
12805
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
12547
12806
  return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
12548
12807
  }
12549
- 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 }) {
12808
+ 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 }) {
12550
12809
  const context = {
12551
12810
  filename,
12552
12811
  selfName: getSelfName(filename),
@@ -12568,7 +12827,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
12568
12827
  bindingMetadata,
12569
12828
  inline,
12570
12829
  isTS,
12571
- eventDelegation,
12572
12830
  onError,
12573
12831
  onWarn,
12574
12832
  compatConfig,
@@ -12674,7 +12932,7 @@ function transform(root, options) {
12674
12932
  traverseNode(root, context);
12675
12933
  if (options.hoistStatic) cacheStatic(root, context);
12676
12934
  if (!options.ssr) createRootCodegen(root, context);
12677
- root.helpers = new Set([...context.helpers.keys()]);
12935
+ root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
12678
12936
  root.components = [...context.components];
12679
12937
  root.directives = [...context.directives];
12680
12938
  root.imports = context.imports;
@@ -12717,8 +12975,10 @@ function traverseNode(node, context) {
12717
12975
  const exitFns = [];
12718
12976
  for (let i = 0; i < nodeTransforms.length; i++) {
12719
12977
  const onExit = nodeTransforms[i](node, context);
12720
- if (onExit) if (isArray(onExit)) exitFns.push(...onExit);
12721
- else exitFns.push(onExit);
12978
+ if (onExit) {
12979
+ if (isArray(onExit)) exitFns.push(...onExit);
12980
+ else exitFns.push(onExit);
12981
+ }
12722
12982
  if (!context.currentNode) return;
12723
12983
  else node = context.currentNode;
12724
12984
  }
@@ -12735,9 +12995,7 @@ function traverseNode(node, context) {
12735
12995
  case 10:
12736
12996
  case 11:
12737
12997
  case 1:
12738
- case 0:
12739
- traverseChildren(node, context);
12740
- break;
12998
+ case 0: traverseChildren(node, context);
12741
12999
  }
12742
13000
  context.currentNode = node;
12743
13001
  let i = exitFns.length;
@@ -12923,16 +13181,18 @@ function genFunctionPreamble(ast, context) {
12923
13181
  const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
12924
13182
  const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
12925
13183
  const helpers = Array.from(ast.helpers);
12926
- if (helpers.length > 0) if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
12927
- else {
12928
- push(`const _Vue = ${VueBinding}\n`, -1);
12929
- if (ast.hoists.length) push(`const { ${[
12930
- CREATE_VNODE,
12931
- CREATE_ELEMENT_VNODE,
12932
- CREATE_COMMENT,
12933
- CREATE_TEXT,
12934
- CREATE_STATIC
12935
- ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
13184
+ if (helpers.length > 0) {
13185
+ if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
13186
+ else {
13187
+ push(`const _Vue = ${VueBinding}\n`, -1);
13188
+ if (ast.hoists.length) push(`const { ${[
13189
+ CREATE_VNODE,
13190
+ CREATE_ELEMENT_VNODE,
13191
+ CREATE_COMMENT,
13192
+ CREATE_TEXT,
13193
+ CREATE_STATIC
13194
+ ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
13195
+ }
12936
13196
  }
12937
13197
  if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
12938
13198
  genHoists(ast.hoists, context);
@@ -13009,10 +13269,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
13009
13269
  if (isString(node)) push(node, -3);
13010
13270
  else if (isArray(node)) genNodeListAsArray(node, context);
13011
13271
  else genNode(node, context);
13012
- if (i < nodes.length - 1) if (multilines) {
13013
- comma && push(",");
13014
- newline();
13015
- } else comma && push(", ");
13272
+ if (i < nodes.length - 1) {
13273
+ if (multilines) {
13274
+ comma && push(",");
13275
+ newline();
13276
+ } else comma && push(", ");
13277
+ }
13016
13278
  }
13017
13279
  }
13018
13280
  function genNode(node, context) {
@@ -13084,12 +13346,7 @@ function genNode(node, context) {
13084
13346
  case 25:
13085
13347
  genSequenceExpression(node, context);
13086
13348
  break;
13087
- case 26:
13088
- genReturnStatement(node, context);
13089
- break;
13090
- /* v8 ignore start */
13091
- case 10: break;
13092
- default:
13349
+ case 26: genReturnStatement(node, context);
13093
13350
  }
13094
13351
  }
13095
13352
  function genText(node, context) {
@@ -13327,7 +13584,7 @@ function genReturnStatement({ returns }, context) {
13327
13584
  }
13328
13585
  //#endregion
13329
13586
  //#region packages/compiler-core/src/transforms/transformExpression.ts
13330
- const isLiteralWhitelisted = /* @__PURE__ */ makeMap("true,false,null,this");
13587
+ const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
13331
13588
  const transformExpression = (node, context) => {
13332
13589
  if (node.type === 5) node.content = processExpression(node.content, context);
13333
13590
  else if (node.type === 1) {
@@ -13360,20 +13617,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
13360
13617
  if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
13361
13618
  else if (type === "setup-ref") return `${raw}.value`;
13362
13619
  else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
13363
- else if (type === "setup-let") if (isAssignmentLVal) {
13364
- const { right: rVal, operator } = parent;
13365
- const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
13366
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
13367
- } else if (isUpdateArg) {
13368
- id.start = parent.start;
13369
- id.end = parent.end;
13370
- const { prefix: isPrefix, operator } = parent;
13371
- const prefix = isPrefix ? operator : ``;
13372
- const postfix = isPrefix ? `` : operator;
13373
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
13374
- } else if (isDestructureAssignment) return raw;
13375
- else return wrapWithUnref(raw);
13376
- else if (type === "props") return genPropsAccessExp(raw);
13620
+ else if (type === "setup-let") {
13621
+ if (isAssignmentLVal) {
13622
+ const { right: rVal, operator } = parent;
13623
+ const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
13624
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
13625
+ } else if (isUpdateArg) {
13626
+ id.start = parent.start;
13627
+ id.end = parent.end;
13628
+ const { prefix: isPrefix, operator } = parent;
13629
+ const prefix = isPrefix ? operator : ``;
13630
+ const postfix = isPrefix ? `` : operator;
13631
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
13632
+ } else if (isDestructureAssignment) return raw;
13633
+ else return wrapWithUnref(raw);
13634
+ } else if (type === "props") return genPropsAccessExp(raw);
13377
13635
  else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
13378
13636
  } else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
13379
13637
  else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
@@ -13390,8 +13648,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
13390
13648
  if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
13391
13649
  if (isConst(bindingMetadata[rawExp])) node.constType = 1;
13392
13650
  node.content = rewriteIdentifier(rawExp);
13393
- } else if (!isScopeVarReference) if (isLiteral) node.constType = 3;
13394
- else node.constType = 2;
13651
+ } else if (!isScopeVarReference) {
13652
+ if (isLiteral) node.constType = 3;
13653
+ else node.constType = 2;
13654
+ }
13395
13655
  return node;
13396
13656
  }
13397
13657
  if (!ast) {
@@ -13547,12 +13807,13 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
13547
13807
  const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
13548
13808
  const { children } = branch;
13549
13809
  const firstChild = children[0];
13550
- if (children.length !== 1 || firstChild.type !== 1) if (children.length === 1 && firstChild.type === 11) {
13551
- const vnodeCall = firstChild.codegenNode;
13552
- injectProp(vnodeCall, keyProperty, context);
13553
- return vnodeCall;
13554
- } else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
13555
- else {
13810
+ if (children.length !== 1 || firstChild.type !== 1) {
13811
+ if (children.length === 1 && firstChild.type === 11) {
13812
+ const vnodeCall = firstChild.codegenNode;
13813
+ injectProp(vnodeCall, keyProperty, context);
13814
+ return vnodeCall;
13815
+ } else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
13816
+ } else {
13556
13817
  const ret = firstChild.codegenNode;
13557
13818
  const vnodeCall = getMemoedVNodeCall(ret);
13558
13819
  if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
@@ -13573,9 +13834,10 @@ function isSameKey(a, b) {
13573
13834
  return true;
13574
13835
  }
13575
13836
  function getParentCondition(node) {
13576
- while (true) if (node.type === 19) if (node.alternate.type === 19) node = node.alternate;
13577
- else return node;
13578
- else if (node.type === 20) node = node.value;
13837
+ while (true) if (node.type === 19) {
13838
+ if (node.alternate.type === 19) node = node.alternate;
13839
+ else return node;
13840
+ } else if (node.type === 20) node = node.value;
13579
13841
  }
13580
13842
  //#endregion
13581
13843
  //#region packages/compiler-core/src/transforms/vFor.ts
@@ -13618,15 +13880,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
13618
13880
  else {
13619
13881
  childBlock = children[0].codegenNode;
13620
13882
  if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
13621
- if (childBlock.isBlock !== !isStableFragment) if (childBlock.isBlock) {
13622
- removeHelper(OPEN_BLOCK);
13623
- removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13624
- } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13625
- childBlock.isBlock = !isStableFragment;
13883
+ const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
13884
+ if (childBlock.isBlock !== shouldUseBlock) {
13885
+ if (childBlock.isBlock) {
13886
+ removeHelper(OPEN_BLOCK);
13887
+ removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13888
+ } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13889
+ }
13890
+ childBlock.isBlock = shouldUseBlock;
13626
13891
  if (childBlock.isBlock) {
13627
13892
  helper(OPEN_BLOCK);
13628
13893
  helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13629
- } else helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13894
+ } else {
13895
+ helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13896
+ if (childBlock.needsPatch) {
13897
+ var _childBlock$patchFlag;
13898
+ childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
13899
+ }
13900
+ }
13630
13901
  }
13631
13902
  if (memo) {
13632
13903
  const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
@@ -13832,8 +14103,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
13832
14103
  return createObjectProperty(`default`, fn);
13833
14104
  };
13834
14105
  if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
13835
- else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
13836
- else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
14106
+ else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
14107
+ if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
14108
+ else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
14109
+ }
13837
14110
  }
13838
14111
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
13839
14112
  let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ``, false))), loc);
@@ -13859,10 +14132,7 @@ function hasForwardedSlots(children) {
13859
14132
  if (hasForwardedSlots(child.branches)) return true;
13860
14133
  break;
13861
14134
  case 10:
13862
- case 11:
13863
- if (hasForwardedSlots(child.children)) return true;
13864
- break;
13865
- default: break;
14135
+ case 11: if (hasForwardedSlots(child.children)) return true;
13866
14136
  }
13867
14137
  }
13868
14138
  return false;
@@ -13884,12 +14154,16 @@ const transformElement = (node, context) => {
13884
14154
  let vnodeDynamicProps;
13885
14155
  let dynamicPropNames;
13886
14156
  let vnodeDirectives;
14157
+ let needsPatch = false;
14158
+ let isBlockRequired = false;
13887
14159
  let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
13888
14160
  if (props.length > 0) {
13889
14161
  const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
13890
14162
  vnodeProps = propsBuildResult.props;
13891
14163
  patchFlag = propsBuildResult.patchFlag;
13892
14164
  dynamicPropNames = propsBuildResult.dynamicPropNames;
14165
+ needsPatch = propsBuildResult.needsPatch;
14166
+ isBlockRequired = propsBuildResult.isBlockRequired;
13893
14167
  const directives = propsBuildResult.directives;
13894
14168
  vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
13895
14169
  if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
@@ -13913,7 +14187,10 @@ const transformElement = (node, context) => {
13913
14187
  } else vnodeChildren = node.children;
13914
14188
  }
13915
14189
  if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
13916
- node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
14190
+ const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
14191
+ needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
14192
+ if (needsPatch) vnodeCall.needsPatch = true;
14193
+ if (isBlockRequired) vnodeCall.isBlockRequired = true;
13917
14194
  };
13918
14195
  };
13919
14196
  function resolveComponentType(node, context, ssr = false) {
@@ -13998,6 +14275,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
13998
14275
  const runtimeDirectives = [];
13999
14276
  const hasChildren = children.length > 0;
14000
14277
  let shouldUseBlock = false;
14278
+ let isBlockRequired = false;
14001
14279
  let patchFlag = 0;
14002
14280
  let hasRef = false;
14003
14281
  let hasClassBinding = false;
@@ -14022,12 +14300,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14022
14300
  const isEventHandler = isOn(name);
14023
14301
  if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
14024
14302
  if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
14303
+ if (name === "ref") hasRef = true;
14025
14304
  if (isEventHandler && value.type === 14) value = value.arguments[0];
14026
14305
  if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
14027
- if (name === "ref") hasRef = true;
14028
- else if (name === "class") hasClassBinding = true;
14306
+ if (name === "class") hasClassBinding = true;
14029
14307
  else if (name === "style") hasStyleBinding = true;
14030
- else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
14308
+ else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
14031
14309
  if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
14032
14310
  } else hasDynamicKeys = true;
14033
14311
  };
@@ -14060,26 +14338,31 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14060
14338
  if (name === "once" || name === "memo") continue;
14061
14339
  if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
14062
14340
  if (isVOn && ssr) continue;
14063
- if (isVBind && isStaticArgOf(arg, "key") || isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")) shouldUseBlock = true;
14341
+ if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
14342
+ if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
14343
+ shouldUseBlock = true;
14344
+ isBlockRequired = true;
14345
+ }
14064
14346
  if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
14065
14347
  if (!arg && (isVBind || isVOn)) {
14066
14348
  hasDynamicKeys = true;
14067
- if (exp) if (isVBind) {
14068
- pushMergeArg();
14069
- if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
14070
- mergeArgs.unshift(exp);
14071
- continue;
14072
- }
14073
- pushRefVForMarker();
14074
- pushMergeArg();
14075
- mergeArgs.push(exp);
14076
- } else pushMergeArg({
14077
- type: 14,
14078
- loc,
14079
- callee: context.helper(TO_HANDLERS),
14080
- arguments: isComponent ? [exp] : [exp, `true`]
14081
- });
14082
- else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
14349
+ if (exp) {
14350
+ if (isVBind) {
14351
+ pushMergeArg();
14352
+ if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
14353
+ mergeArgs.unshift(exp);
14354
+ continue;
14355
+ }
14356
+ pushRefVForMarker();
14357
+ pushMergeArg();
14358
+ mergeArgs.push(exp);
14359
+ } else pushMergeArg({
14360
+ type: 14,
14361
+ loc,
14362
+ callee: context.helper(TO_HANDLERS),
14363
+ arguments: isComponent ? [exp] : [exp, `true`]
14364
+ });
14365
+ } else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
14083
14366
  continue;
14084
14367
  }
14085
14368
  if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
@@ -14095,7 +14378,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14095
14378
  }
14096
14379
  } else if (!isBuiltInDirective(name)) {
14097
14380
  runtimeDirectives.push(prop);
14098
- if (hasChildren) shouldUseBlock = true;
14381
+ if (hasChildren) {
14382
+ shouldUseBlock = true;
14383
+ isBlockRequired = true;
14384
+ }
14099
14385
  }
14100
14386
  }
14101
14387
  }
@@ -14112,7 +14398,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14112
14398
  if (dynamicPropNames.length) patchFlag |= 8;
14113
14399
  if (hasHydrationEventBinding) patchFlag |= 32;
14114
14400
  }
14115
- if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) patchFlag |= 512;
14401
+ const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
14402
+ if (!shouldUseBlock && needsPatch) patchFlag |= 512;
14116
14403
  if (!context.inSSR && propsExpression) switch (propsExpression.type) {
14117
14404
  case 15:
14118
14405
  let classKeyIndex = -1;
@@ -14133,16 +14420,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14133
14420
  } else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
14134
14421
  break;
14135
14422
  case 14: break;
14136
- default:
14137
- propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
14138
- break;
14423
+ default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
14139
14424
  }
14140
14425
  return {
14141
14426
  props: propsExpression,
14142
14427
  directives: runtimeDirectives,
14143
14428
  patchFlag,
14144
14429
  dynamicPropNames,
14145
- shouldUseBlock
14430
+ shouldUseBlock,
14431
+ needsPatch,
14432
+ isBlockRequired
14146
14433
  };
14147
14434
  }
14148
14435
  function dedupeProperties(properties) {
@@ -14243,10 +14530,12 @@ function processSlotOutlet(node, context) {
14243
14530
  for (let i = 0; i < node.props.length; i++) {
14244
14531
  const p = node.props[i];
14245
14532
  if (p.type === 6) {
14246
- if (p.value) if (p.name === "name") slotName = JSON.stringify(p.value.content);
14247
- else {
14248
- p.name = camelize(p.name);
14249
- nonNameProps.push(p);
14533
+ if (p.value) {
14534
+ if (p.name === "name") slotName = JSON.stringify(p.value.content);
14535
+ else {
14536
+ p.name = camelize(p.name);
14537
+ nonNameProps.push(p);
14538
+ }
14250
14539
  }
14251
14540
  } else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
14252
14541
  if (p.exp) slotName = p.exp;
@@ -14275,16 +14564,17 @@ const transformOn$1 = (dir, node, context, augmentor) => {
14275
14564
  const { loc, modifiers, arg } = dir;
14276
14565
  if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
14277
14566
  let eventName;
14278
- if (arg.type === 4) if (arg.isStatic) {
14279
- let rawName = arg.content;
14280
- if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
14281
- eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
14282
- } else eventName = createCompoundExpression([
14283
- `${context.helperString(TO_HANDLER_KEY)}(`,
14284
- arg,
14285
- `)`
14286
- ]);
14287
- else {
14567
+ if (arg.type === 4) {
14568
+ if (arg.isStatic) {
14569
+ let rawName = arg.content;
14570
+ if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
14571
+ eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
14572
+ } else eventName = createCompoundExpression([
14573
+ `${context.helperString(TO_HANDLER_KEY)}(`,
14574
+ arg,
14575
+ `)`
14576
+ ]);
14577
+ } else {
14288
14578
  eventName = arg;
14289
14579
  eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
14290
14580
  eventName.children.push(`)`);
@@ -14301,13 +14591,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
14301
14591
  exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
14302
14592
  isInlineStatement && context.removeIdentifiers(`$event`);
14303
14593
  shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
14304
- if (shouldCache && isMemberExp) if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
14305
- else exp.children = [
14306
- ...exp.children,
14307
- ` && `,
14308
- ...exp.children,
14309
- `(...args)`
14310
- ];
14594
+ if (shouldCache && isMemberExp) {
14595
+ if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
14596
+ else exp.children = [
14597
+ ...exp.children,
14598
+ ` && `,
14599
+ ...exp.children,
14600
+ `(...args)`
14601
+ ];
14602
+ }
14311
14603
  }
14312
14604
  if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
14313
14605
  `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
@@ -14335,11 +14627,14 @@ const transformBind = (dir, _node, context) => {
14335
14627
  arg.children.unshift(`(`);
14336
14628
  arg.children.push(`) || ""`);
14337
14629
  } else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
14338
- if (modifiers.some((mod) => mod.content === "camel")) if (arg.type === 4) if (arg.isStatic) arg.content = camelize(arg.content);
14339
- else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
14340
- else {
14341
- arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
14342
- arg.children.push(`)`);
14630
+ if (modifiers.some((mod) => mod.content === "camel")) {
14631
+ if (arg.type === 4) {
14632
+ if (arg.isStatic) arg.content = camelize(arg.content);
14633
+ else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
14634
+ } else {
14635
+ arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
14636
+ arg.children.push(`)`);
14637
+ }
14343
14638
  }
14344
14639
  if (!context.inSSR) {
14345
14640
  if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
@@ -14348,9 +14643,10 @@ const transformBind = (dir, _node, context) => {
14348
14643
  return { props: [createObjectProperty(arg, exp)] };
14349
14644
  };
14350
14645
  const injectPrefix = (arg, prefix) => {
14351
- if (arg.type === 4) if (arg.isStatic) arg.content = prefix + arg.content;
14352
- else arg.content = `\`${prefix}\${${arg.content}}\``;
14353
- else {
14646
+ if (arg.type === 4) {
14647
+ if (arg.isStatic) arg.content = prefix + arg.content;
14648
+ else arg.content = `\`${prefix}\${${arg.content}}\``;
14649
+ } else {
14354
14650
  arg.children.unshift(`'${prefix}' + (`);
14355
14651
  arg.children.push(`)`);
14356
14652
  }
@@ -14445,20 +14741,21 @@ const transformModel$1 = (dir, node, context) => {
14445
14741
  const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
14446
14742
  let assignmentExp;
14447
14743
  const eventArg = context.isTS ? `($event: any)` : `$event`;
14448
- if (maybeRef) if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
14449
- `${eventArg} => ((`,
14450
- createSimpleExpression(rawExp, false, exp.loc),
14451
- `).value = $event)`
14452
- ]);
14453
- else {
14454
- const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
14455
- assignmentExp = createCompoundExpression([
14456
- `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
14744
+ if (maybeRef) {
14745
+ if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
14746
+ `${eventArg} => ((`,
14457
14747
  createSimpleExpression(rawExp, false, exp.loc),
14458
- `).value = $event : ${altAssignment})`
14748
+ `).value = $event)`
14459
14749
  ]);
14460
- }
14461
- else assignmentExp = createCompoundExpression([
14750
+ else {
14751
+ const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
14752
+ assignmentExp = createCompoundExpression([
14753
+ `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
14754
+ createSimpleExpression(rawExp, false, exp.loc),
14755
+ `).value = $event : ${altAssignment})`
14756
+ ]);
14757
+ }
14758
+ } else assignmentExp = createCompoundExpression([
14462
14759
  `${eventArg} => ((`,
14463
14760
  exp,
14464
14761
  `) = $event)`
@@ -14517,11 +14814,12 @@ function parseFilter(node, context) {
14517
14814
  if (c === 96 && prev !== 92) inTemplateString = false;
14518
14815
  } else if (inRegex) {
14519
14816
  if (c === 47 && prev !== 92) inRegex = false;
14520
- } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) if (expression === void 0) {
14521
- lastFilterIndex = i + 1;
14522
- expression = exp.slice(0, i).trim();
14523
- } else pushFilter();
14524
- else {
14817
+ } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
14818
+ if (expression === void 0) {
14819
+ lastFilterIndex = i + 1;
14820
+ expression = exp.slice(0, i).trim();
14821
+ } else pushFilter();
14822
+ } else {
14525
14823
  switch (c) {
14526
14824
  case 34:
14527
14825
  inDouble = true;
@@ -14547,9 +14845,7 @@ function parseFilter(node, context) {
14547
14845
  case 123:
14548
14846
  curly++;
14549
14847
  break;
14550
- case 125:
14551
- curly--;
14552
- break;
14848
+ case 125: curly--;
14553
14849
  }
14554
14850
  if (c === 47) {
14555
14851
  let j = i - 1;
@@ -14808,8 +15104,6 @@ const transformModel = (dir, node, context) => {
14808
15104
  case "file":
14809
15105
  isInvalidType = true;
14810
15106
  context.onError(createDOMCompilerError(60, dir.loc));
14811
- break;
14812
- default: break;
14813
15107
  }
14814
15108
  } else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
14815
15109
  } else if (tag === "select") directiveToUse = V_MODEL_SELECT;
@@ -14820,27 +15114,37 @@ const transformModel = (dir, node, context) => {
14820
15114
  };
14821
15115
  //#endregion
14822
15116
  //#region packages/compiler-dom/src/transforms/vOn.ts
14823
- const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
14824
- const isNonKeyModifier = /* @__PURE__ */ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
14825
- const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
14826
- const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);
15117
+ const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
15118
+ const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
15119
+ const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
15120
+ const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
14827
15121
  const resolveModifiers = (key, modifiers, context, loc) => {
14828
15122
  const keyModifiers = [];
14829
15123
  const nonKeyModifiers = [];
14830
15124
  const eventOptionModifiers = [];
14831
15125
  for (let i = 0; i < modifiers.length; i++) {
14832
15126
  const modifier = modifiers[i].content;
15127
+ if (modifier === "delegate") {
15128
+ if (context) {
15129
+ const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
15130
+ error.loc = modifiers[i].loc;
15131
+ context.onWarn(error);
15132
+ }
15133
+ continue;
15134
+ }
14833
15135
  if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
14834
15136
  else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
14835
15137
  else {
14836
15138
  const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
14837
- if (maybeKeyModifier(modifier)) if (keyString) if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
14838
- else nonKeyModifiers.push(modifier);
14839
- else {
14840
- keyModifiers.push(modifier);
14841
- nonKeyModifiers.push(modifier);
14842
- }
14843
- else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
15139
+ if (maybeKeyModifier(modifier)) {
15140
+ if (keyString) {
15141
+ if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
15142
+ else nonKeyModifiers.push(modifier);
15143
+ } else {
15144
+ keyModifiers.push(modifier);
15145
+ nonKeyModifiers.push(modifier);
15146
+ }
15147
+ } else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
14844
15148
  else keyModifiers.push(modifier);
14845
15149
  }
14846
15150
  }
@@ -14978,7 +15282,7 @@ const dataAriaRE = /^(?:data|aria)-/;
14978
15282
  const isStringifiableAttr = (name, ns) => {
14979
15283
  return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
14980
15284
  };
14981
- const isNonStringifiable = /* @__PURE__ */ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
15285
+ const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
14982
15286
  /**
14983
15287
  * for a cached node, analyze it and return:
14984
15288
  * - false: bailed (contains non-stringifiable props or runtime constant)
@@ -15049,10 +15353,11 @@ function stringifyElement(node, context) {
15049
15353
  res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
15050
15354
  continue;
15051
15355
  }
15052
- if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
15356
+ if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
15053
15357
  let evaluated = evaluateConstant(exp);
15054
15358
  if (evaluated != null) {
15055
15359
  const arg = p.arg && p.arg.content;
15360
+ if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
15056
15361
  if (arg === "class") evaluated = normalizeClass(evaluated);
15057
15362
  else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
15058
15363
  res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
@@ -15112,8 +15417,10 @@ function compile(src, options = {}) {
15112
15417
  //#region packages/vue-compat/src/index.ts
15113
15418
  const compileCache = Object.create(null);
15114
15419
  function compileToFunction(template, options) {
15115
- if (!isString(template)) if (template.nodeType) template = template.innerHTML;
15116
- else return NOOP;
15420
+ if (!isString(template)) {
15421
+ if (template.nodeType) template = template.innerHTML;
15422
+ else return NOOP;
15423
+ }
15117
15424
  const key = genCacheKey(template, options);
15118
15425
  const cached = compileCache[key];
15119
15426
  if (cached) return cached;