@vue/compat 3.6.0-beta.9 → 3.6.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-beta.9
2
+ * @vue/compat v3.6.0-rc.10
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -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,9 +465,18 @@ 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;
473
+ let runDepth = 0;
474
+ function incRunDepth() {
475
+ ++runDepth;
476
+ }
477
+ function decRunDepth() {
478
+ --runDepth;
479
+ }
435
480
  let globalVersion = 0;
436
481
  let notifyIndex = 0;
437
482
  let notifyBufferLength = 0;
@@ -505,8 +550,10 @@ function propagate(link) {
505
550
  const sub = link.sub;
506
551
  let flags = sub.flags;
507
552
  if (flags & 3) {
508
- if (!(flags & 60)) sub.flags = flags | 32;
509
- else if (!(flags & 12)) flags = 0;
553
+ if (!(flags & 60)) {
554
+ sub.flags = flags | 32;
555
+ if (runDepth) sub.flags |= 8;
556
+ } else if (!(flags & 12)) flags = 0;
510
557
  else if (!(flags & 4)) sub.flags = flags & -9 | 32;
511
558
  else if (!(flags & 48) && isValidLink(link, sub)) {
512
559
  sub.flags = flags | 40;
@@ -557,13 +604,23 @@ function endTracking(sub, prevSub) {
557
604
  sub.flags &= -5;
558
605
  }
559
606
  function flush() {
607
+ let hasError = false;
608
+ let error;
560
609
  while (notifyIndex < notifyBufferLength) {
561
610
  const effect = notifyBuffer[notifyIndex];
562
611
  notifyBuffer[notifyIndex++] = void 0;
563
- effect.notify();
612
+ try {
613
+ effect.notify();
614
+ } catch (err) {
615
+ if (!hasError) {
616
+ hasError = true;
617
+ error = err;
618
+ }
619
+ }
564
620
  }
565
621
  notifyIndex = 0;
566
622
  notifyBufferLength = 0;
623
+ if (hasError) throw error;
567
624
  }
568
625
  function checkDirty(link, sub) {
569
626
  let stack;
@@ -574,13 +631,13 @@ function checkDirty(link, sub) {
574
631
  let dirty = false;
575
632
  if (sub.flags & 16) dirty = true;
576
633
  else if ((depFlags & 17) === 17) {
634
+ const subs = dep.subs;
577
635
  if (dep.update()) {
578
- const subs = dep.subs;
579
636
  if (subs.nextSub !== void 0) shallowPropagate(subs);
580
637
  dirty = true;
581
638
  }
582
639
  } else if ((depFlags & 33) === 33) {
583
- if (link.nextSub !== void 0 || link.prevSub !== void 0) stack = {
640
+ stack = {
584
641
  value: link,
585
642
  prev: stack
586
643
  };
@@ -595,15 +652,12 @@ function checkDirty(link, sub) {
595
652
  }
596
653
  while (checkDepth) {
597
654
  --checkDepth;
598
- const firstSub = sub.subs;
599
- const hasMultipleSubs = firstSub.nextSub !== void 0;
600
- if (hasMultipleSubs) {
601
- link = stack.value;
602
- stack = stack.prev;
603
- } else link = firstSub;
655
+ link = stack.value;
656
+ stack = stack.prev;
604
657
  if (dirty) {
658
+ const subs = sub.subs;
605
659
  if (sub.update()) {
606
- if (hasMultipleSubs) shallowPropagate(firstSub);
660
+ if (subs.nextSub !== void 0) shallowPropagate(subs);
607
661
  sub = link.sub;
608
662
  continue;
609
663
  }
@@ -615,7 +669,7 @@ function checkDirty(link, sub) {
615
669
  }
616
670
  dirty = false;
617
671
  }
618
- return dirty;
672
+ return dirty && !!sub.flags;
619
673
  } while (true);
620
674
  }
621
675
  function shallowPropagate(link) {
@@ -650,7 +704,7 @@ var Dep = class {
650
704
  }
651
705
  set subs(value) {
652
706
  this._subs = value;
653
- if (value === void 0) this.map.delete(this.key);
707
+ if (value === void 0 && this.map) this.map.delete(this.key);
654
708
  }
655
709
  };
656
710
  const targetMap = /* @__PURE__ */ new WeakMap();
@@ -719,9 +773,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
719
773
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
720
774
  }
721
775
  break;
722
- case "set":
723
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
724
- break;
776
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
725
777
  }
726
778
  }
727
779
  }
@@ -736,13 +788,17 @@ function getDepFromReactive(object, key) {
736
788
  /**
737
789
  * Track array iteration and return:
738
790
  * - if input is reactive: a cloned raw array with reactive values
739
- * - 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
740
794
  */
741
795
  function reactiveReadArray(array) {
742
796
  const raw = /* @__PURE__ */ toRaw(array);
743
797
  if (raw === array) return raw;
744
798
  track(raw, "iterate", ARRAY_ITERATE_KEY);
745
- 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);
746
802
  }
747
803
  /**
748
804
  * Track array iteration and return raw array
@@ -918,8 +974,8 @@ function noTracking(self, method, args = []) {
918
974
  }
919
975
  //#endregion
920
976
  //#region packages/reactivity/src/baseHandlers.ts
921
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
922
- 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));
923
979
  function hasOwnProperty(key) {
924
980
  if (!isSymbol(key)) key = String(key);
925
981
  const obj = /* @__PURE__ */ toRaw(this);
@@ -974,15 +1030,17 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
974
1030
  oldValue = /* @__PURE__ */ toRaw(oldValue);
975
1031
  value = /* @__PURE__ */ toRaw(value);
976
1032
  }
977
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) return true;
978
- else {
979
- oldValue.value = value;
980
- 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
+ }
981
1039
  }
982
1040
  }
983
1041
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
984
1042
  const result = Reflect.set(target, key, value, /* @__PURE__ */ isRef(target) ? target : receiver);
985
- if (target === /* @__PURE__ */ toRaw(receiver)) {
1043
+ if (target === /* @__PURE__ */ toRaw(receiver) && result) {
986
1044
  if (!hadKey) trigger(target, "add", key, value);
987
1045
  else if (hasChanged(value, oldValue)) trigger(target, "set", key, value, oldValue);
988
1046
  }
@@ -1016,10 +1074,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1016
1074
  return true;
1017
1075
  }
1018
1076
  };
1019
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1020
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1021
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1022
- 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);
1023
1081
  //#endregion
1024
1082
  //#region packages/reactivity/src/collectionHandlers.ts
1025
1083
  const toShallow = (value) => value;
@@ -1166,10 +1224,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
1166
1224
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1167
1225
  };
1168
1226
  }
1169
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1170
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1171
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1172
- 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) };
1173
1231
  //#endregion
1174
1232
  //#region packages/reactivity/src/reactive.ts
1175
1233
  const reactiveMap = /* @__PURE__ */ new WeakMap();
@@ -1187,10 +1245,7 @@ function targetTypeMap(rawType) {
1187
1245
  default: return 0;
1188
1246
  }
1189
1247
  }
1190
- function getTargetType(value) {
1191
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
1192
- }
1193
- /* @__NO_SIDE_EFFECTS__ */
1248
+ /*@__NO_SIDE_EFFECTS__*/
1194
1249
  function reactive(target) {
1195
1250
  if (/* @__PURE__ */ isReadonly(target)) return target;
1196
1251
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1225,7 +1280,7 @@ function reactive(target) {
1225
1280
  * @param target - The source object.
1226
1281
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1227
1282
  */
1228
- /* @__NO_SIDE_EFFECTS__ */
1283
+ /*@__NO_SIDE_EFFECTS__*/
1229
1284
  function shallowReactive(target) {
1230
1285
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1231
1286
  }
@@ -1258,7 +1313,7 @@ function shallowReactive(target) {
1258
1313
  * @param target - The source object.
1259
1314
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1260
1315
  */
1261
- /* @__NO_SIDE_EFFECTS__ */
1316
+ /*@__NO_SIDE_EFFECTS__*/
1262
1317
  function readonly(target) {
1263
1318
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1264
1319
  }
@@ -1292,17 +1347,18 @@ function readonly(target) {
1292
1347
  * @param target - The source object.
1293
1348
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1294
1349
  */
1295
- /* @__NO_SIDE_EFFECTS__ */
1350
+ /*@__NO_SIDE_EFFECTS__*/
1296
1351
  function shallowReadonly(target) {
1297
1352
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1298
1353
  }
1299
1354
  function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {
1300
1355
  if (!isObject(target)) return target;
1301
1356
  if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) return target;
1302
- const targetType = getTargetType(target);
1303
- if (targetType === 0) return target;
1357
+ if (target["__v_skip"] || !Object.isExtensible(target)) return target;
1304
1358
  const existingProxy = proxyMap.get(target);
1305
1359
  if (existingProxy) return existingProxy;
1360
+ const targetType = targetTypeMap(toRawType(target));
1361
+ if (targetType === 0) return target;
1306
1362
  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
1307
1363
  proxyMap.set(target, proxy);
1308
1364
  return proxy;
@@ -1325,7 +1381,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1325
1381
  * @param value - The value to check.
1326
1382
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1327
1383
  */
1328
- /* @__NO_SIDE_EFFECTS__ */
1384
+ /*@__NO_SIDE_EFFECTS__*/
1329
1385
  function isReactive(value) {
1330
1386
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1331
1387
  return !!(value && value["__v_isReactive"]);
@@ -1341,11 +1397,11 @@ function isReactive(value) {
1341
1397
  * @param value - The value to check.
1342
1398
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1343
1399
  */
1344
- /* @__NO_SIDE_EFFECTS__ */
1400
+ /*@__NO_SIDE_EFFECTS__*/
1345
1401
  function isReadonly(value) {
1346
1402
  return !!(value && value["__v_isReadonly"]);
1347
1403
  }
1348
- /* @__NO_SIDE_EFFECTS__ */
1404
+ /*@__NO_SIDE_EFFECTS__*/
1349
1405
  function isShallow(value) {
1350
1406
  return !!(value && value["__v_isShallow"]);
1351
1407
  }
@@ -1356,7 +1412,7 @@ function isShallow(value) {
1356
1412
  * @param value - The value to check.
1357
1413
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1358
1414
  */
1359
- /* @__NO_SIDE_EFFECTS__ */
1415
+ /*@__NO_SIDE_EFFECTS__*/
1360
1416
  function isProxy(value) {
1361
1417
  return value ? !!value["__v_raw"] : false;
1362
1418
  }
@@ -1383,7 +1439,7 @@ function isProxy(value) {
1383
1439
  * @param observed - The object for which the "raw" value is requested.
1384
1440
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1385
1441
  */
1386
- /* @__NO_SIDE_EFFECTS__ */
1442
+ /*@__NO_SIDE_EFFECTS__*/
1387
1443
  function toRaw(observed) {
1388
1444
  const raw = observed && observed["__v_raw"];
1389
1445
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1432,15 +1488,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
1432
1488
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1433
1489
  //#endregion
1434
1490
  //#region packages/reactivity/src/ref.ts
1435
- /* @__NO_SIDE_EFFECTS__ */
1491
+ /*@__NO_SIDE_EFFECTS__*/
1436
1492
  function isRef(r) {
1437
1493
  return r ? r["__v_isRef"] === true : false;
1438
1494
  }
1439
- /* @__NO_SIDE_EFFECTS__ */
1495
+ /*@__NO_SIDE_EFFECTS__*/
1440
1496
  function ref(value) {
1441
1497
  return createRef(value, toReactive);
1442
1498
  }
1443
- /* @__NO_SIDE_EFFECTS__ */
1499
+ /*@__NO_SIDE_EFFECTS__*/
1444
1500
  function shallowRef(value) {
1445
1501
  return createRef(value);
1446
1502
  }
@@ -1628,7 +1684,7 @@ function customRef(factory) {
1628
1684
  * @param object - Reactive object to be made into an object of linked refs.
1629
1685
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1630
1686
  */
1631
- /* @__NO_SIDE_EFFECTS__ */
1687
+ /*@__NO_SIDE_EFFECTS__*/
1632
1688
  function toRefs(object) {
1633
1689
  const ret = isArray(object) ? new Array(object.length) : {};
1634
1690
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1679,7 +1735,7 @@ var GetterRefImpl = class {
1679
1735
  return this._value = this._getter();
1680
1736
  }
1681
1737
  };
1682
- /* @__NO_SIDE_EFFECTS__ */
1738
+ /*@__NO_SIDE_EFFECTS__*/
1683
1739
  function toRef(source, key, defaultValue) {
1684
1740
  if (/* @__PURE__ */ isRef(source)) return source;
1685
1741
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1720,9 +1776,11 @@ var ReactiveEffect = class {
1720
1776
  if (!this.active) return this.fn();
1721
1777
  cleanup(this);
1722
1778
  const prevSub = startTracking(this);
1779
+ incRunDepth();
1723
1780
  try {
1724
1781
  return this.fn();
1725
1782
  } finally {
1783
+ decRunDepth();
1726
1784
  endTracking(this, prevSub);
1727
1785
  const flags = this.flags;
1728
1786
  if ((flags & 136) === 136) {
@@ -1743,10 +1801,12 @@ var ReactiveEffect = class {
1743
1801
  get dirty() {
1744
1802
  const flags = this.flags;
1745
1803
  if (flags & 16) return true;
1746
- if (flags & 32) if (checkDirty(this.deps, this)) {
1747
- this.flags = flags | 16;
1748
- return true;
1749
- } 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
+ }
1750
1810
  return false;
1751
1811
  }
1752
1812
  };
@@ -1923,10 +1983,12 @@ var ComputedRefImpl = class {
1923
1983
  get _dirty() {
1924
1984
  const flags = this.flags;
1925
1985
  if (flags & 16) return true;
1926
- if (flags & 32) if (checkDirty(this.deps, this)) {
1927
- this.flags = flags | 16;
1928
- return true;
1929
- } 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
+ }
1930
1992
  return false;
1931
1993
  }
1932
1994
  /**
@@ -1979,7 +2041,7 @@ var ComputedRefImpl = class {
1979
2041
  }
1980
2042
  }
1981
2043
  };
1982
- /* @__NO_SIDE_EFFECTS__ */
2044
+ /*@__NO_SIDE_EFFECTS__*/
1983
2045
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
1984
2046
  let getter;
1985
2047
  let setter;
@@ -2051,25 +2113,26 @@ var WatcherEffect = class extends ReactiveEffect {
2051
2113
  else if (/* @__PURE__ */ isReactive(s)) return reactiveGetter(s, deep);
2052
2114
  else if (isFunction(s)) return call ? call(s, 2) : s();
2053
2115
  });
2054
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2055
- else getter = () => {
2056
- if (this.cleanupsLength) {
2057
- 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;
2058
2129
  try {
2059
- cleanup(this);
2130
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2060
2131
  } finally {
2061
- setActiveSub(prevSub);
2132
+ activeWatcher = currentEffect;
2062
2133
  }
2063
- }
2064
- const currentEffect = activeWatcher;
2065
- activeWatcher = this;
2066
- try {
2067
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2068
- } finally {
2069
- activeWatcher = currentEffect;
2070
- }
2071
- };
2072
- else getter = NOOP;
2134
+ };
2135
+ } else getter = NOOP;
2073
2136
  if (cb && deep) {
2074
2137
  const baseGetter = getter;
2075
2138
  const depth = deep === true ? Infinity : deep;
@@ -2084,8 +2147,9 @@ var WatcherEffect = class extends ReactiveEffect {
2084
2147
  if (once && cb) {
2085
2148
  const _cb = cb;
2086
2149
  cb = (...args) => {
2087
- _cb(...args);
2150
+ const res = _cb(...args);
2088
2151
  this.stop();
2152
+ return res;
2089
2153
  };
2090
2154
  }
2091
2155
  this.cb = cb;
@@ -2097,7 +2161,7 @@ var WatcherEffect = class extends ReactiveEffect {
2097
2161
  if (!this.cb) return;
2098
2162
  const { immediate, deep, call } = this.options;
2099
2163
  if (initialRun && !immediate) return;
2100
- if (deep || this.forceTrigger || (this.isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2164
+ if (initialRun || deep || this.forceTrigger || (this.isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2101
2165
  cleanup(this);
2102
2166
  const currentWatcher = activeWatcher;
2103
2167
  activeWatcher = this;
@@ -2281,7 +2345,7 @@ let currentFlushPromise = null;
2281
2345
  let jobsLength = 0;
2282
2346
  let flushIndex = 0;
2283
2347
  let postFlushIndex = 0;
2284
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2348
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2285
2349
  function nextTick(fn) {
2286
2350
  const p = currentFlushPromise || resolvedPromise;
2287
2351
  return fn ? p.then(this ? fn.bind(this) : fn) : p;
@@ -2297,8 +2361,8 @@ function findInsertionIndex(order, queue, start, end) {
2297
2361
  /**
2298
2362
  * @internal for runtime-vapor only
2299
2363
  */
2300
- function queueJob(job, id, isPre = false) {
2301
- if (queueJobWorker(job, id === void 0 ? isPre ? -2 : Infinity : isPre ? id * 2 : id * 2 + 1, jobs, jobsLength, flushIndex)) {
2364
+ function queueJob(job, id, isPre = false, order = 0) {
2365
+ if (queueJobWorker(job, id === void 0 ? isPre ? -2 : Infinity : isPre ? id * 2 : order ? id * 2 + 1 + order / (order + 1) : id * 2 + 1, jobs, jobsLength, flushIndex)) {
2302
2366
  jobsLength++;
2303
2367
  queueFlush();
2304
2368
  }
@@ -2319,6 +2383,7 @@ const doFlushJobs = () => {
2319
2383
  flushJobs();
2320
2384
  } catch (e) {
2321
2385
  currentFlushPromise = null;
2386
+ if (jobsLength || postJobs.length) queueFlush();
2322
2387
  throw e;
2323
2388
  }
2324
2389
  };
@@ -2326,9 +2391,10 @@ function queueFlush() {
2326
2391
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2327
2392
  }
2328
2393
  function queuePostFlushCb(jobs, id = Infinity) {
2329
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2330
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2331
- 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);
2332
2398
  queueFlush();
2333
2399
  }
2334
2400
  function flushPreFlushCbs(instance, seen) {
@@ -2340,30 +2406,37 @@ function flushPreFlushCbs(instance, seen) {
2340
2406
  i--;
2341
2407
  jobsLength--;
2342
2408
  if (cb.flags & 2) cb.flags &= -2;
2343
- cb();
2344
- if (!(cb.flags & 2)) cb.flags &= -2;
2409
+ try {
2410
+ cb();
2411
+ } finally {
2412
+ if (!(cb.flags & 2)) cb.flags &= -2;
2413
+ }
2345
2414
  }
2346
2415
  }
2347
2416
  function flushPostFlushCbs(seen) {
2348
2417
  if (postJobs.length) {
2349
2418
  if (activePostJobs) {
2350
- activePostJobs.push(...postJobs);
2419
+ for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
2351
2420
  postJobs.length = 0;
2352
2421
  return;
2353
2422
  }
2354
2423
  activePostJobs = postJobs;
2355
2424
  postJobs = [];
2356
- while (postFlushIndex < activePostJobs.length) {
2357
- const cb = activePostJobs[postFlushIndex++];
2358
- if (cb.flags & 2) cb.flags &= -2;
2359
- if (!(cb.flags & 4)) try {
2360
- cb();
2361
- } finally {
2362
- 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
+ }
2363
2434
  }
2435
+ } finally {
2436
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2437
+ activePostJobs = null;
2438
+ postFlushIndex = 0;
2364
2439
  }
2365
- activePostJobs = null;
2366
- postFlushIndex = 0;
2367
2440
  }
2368
2441
  }
2369
2442
  let isFlushing = false;
@@ -2373,9 +2446,12 @@ let isFlushing = false;
2373
2446
  function flushOnAppMount(instance) {
2374
2447
  if (!isFlushing) {
2375
2448
  isFlushing = true;
2376
- flushPreFlushCbs(instance);
2377
- flushPostFlushCbs();
2378
- isFlushing = false;
2449
+ try {
2450
+ flushPreFlushCbs(instance);
2451
+ flushPostFlushCbs();
2452
+ } finally {
2453
+ isFlushing = false;
2454
+ }
2379
2455
  }
2380
2456
  }
2381
2457
  function flushJobs(seen) {
@@ -2401,9 +2477,10 @@ function flushJobs(seen) {
2401
2477
  }
2402
2478
  flushIndex = 0;
2403
2479
  jobsLength = 0;
2480
+ jobs.length = 0;
2404
2481
  flushPostFlushCbs(seen);
2405
- currentFlushPromise = null;
2406
2482
  if (jobsLength || postJobs.length) flushJobs(seen);
2483
+ else currentFlushPromise = null;
2407
2484
  }
2408
2485
  }
2409
2486
  //#endregion
@@ -2492,7 +2569,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
2492
2569
  }
2493
2570
  //#endregion
2494
2571
  //#region packages/runtime-core/src/compat/instanceEventEmitter.ts
2495
- const eventRegistryMap = /* @__PURE__ */ new WeakMap();
2572
+ const eventRegistryMap = /*@__PURE__*/ new WeakMap();
2496
2573
  function getRegistry(instance) {
2497
2574
  let events = eventRegistryMap.get(instance);
2498
2575
  if (!events) eventRegistryMap.set(instance, events = Object.create(null));
@@ -2598,10 +2675,12 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
2598
2675
  const renderFnWithContext = (...args) => {
2599
2676
  if (renderFnWithContext._d) setBlockTracking(-1);
2600
2677
  const prevInstance = setCurrentRenderingInstance(ctx);
2678
+ const prevStackSize = blockStack.length;
2601
2679
  let res;
2602
2680
  try {
2603
2681
  res = fn(...args);
2604
2682
  } finally {
2683
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
2605
2684
  setCurrentRenderingInstance(prevInstance);
2606
2685
  if (renderFnWithContext._d) setBlockTracking(1);
2607
2686
  }
@@ -2623,19 +2702,21 @@ const legacyDirectiveHookMap = {
2623
2702
  };
2624
2703
  function mapCompatDirectiveHook(name, dir, instance) {
2625
2704
  const mappedName = legacyDirectiveHookMap[name];
2626
- if (mappedName) if (isArray(mappedName)) {
2627
- const hook = [];
2628
- mappedName.forEach((mapped) => {
2629
- const mappedHook = dir[mapped];
2630
- if (mappedHook) {
2631
- softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
2632
- hook.push(mappedHook);
2633
- }
2634
- });
2635
- return hook.length ? hook : void 0;
2636
- } else {
2637
- if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
2638
- 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
+ }
2639
2720
  }
2640
2721
  }
2641
2722
  //#endregion
@@ -2805,7 +2886,7 @@ function instanceWatch(source, value, options) {
2805
2886
  }
2806
2887
  const prev = setCurrentInstance(this);
2807
2888
  const res = doWatch(getter, cb.bind(publicThis), options);
2808
- setCurrentInstance(...prev);
2889
+ restoreCurrentInstance(prev);
2809
2890
  return res;
2810
2891
  }
2811
2892
  function createPathGetter(ctx, path) {
@@ -2818,6 +2899,7 @@ function createPathGetter(ctx, path) {
2818
2899
  }
2819
2900
  //#endregion
2820
2901
  //#region packages/runtime-core/src/components/Teleport.ts
2902
+ const pendingMounts = /* @__PURE__ */ new WeakMap();
2821
2903
  const TeleportEndKey = Symbol("_vte");
2822
2904
  const isTeleport = (type) => type.__isTeleport;
2823
2905
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
@@ -2826,62 +2908,76 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
2826
2908
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
2827
2909
  const resolveTarget = (props, select) => {
2828
2910
  const targetSelector = props && props.to;
2829
- if (isString(targetSelector)) if (!select) return null;
2830
- else return select(targetSelector);
2831
- else return targetSelector;
2911
+ if (isString(targetSelector)) {
2912
+ if (!select) return null;
2913
+ else return select(targetSelector);
2914
+ } else return targetSelector;
2832
2915
  };
2833
2916
  const TeleportImpl = {
2834
2917
  name: "Teleport",
2835
2918
  __isTeleport: true,
2836
2919
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
2837
- const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;
2920
+ const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment, parentNode } } = internals;
2838
2921
  const disabled = isTeleportDisabled(n2.props);
2839
- let { shapeFlag, children, dynamicChildren } = n2;
2922
+ let { dynamicChildren } = n2;
2923
+ const mount = (vnode, container, anchor) => {
2924
+ if (vnode.shapeFlag & 16) mountChildren(vnode.children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
2925
+ };
2926
+ const mountToTarget = (vnode = n2) => {
2927
+ const disabled = isTeleportDisabled(vnode.props);
2928
+ const target = vnode.target = resolveTarget(vnode.props, querySelector);
2929
+ const targetAnchor = prepareAnchor(target, vnode, createText, insert);
2930
+ if (target) {
2931
+ if (namespace !== "svg" && isTargetSVG(target)) namespace = "svg";
2932
+ else if (namespace !== "mathml" && isTargetMathML(target)) namespace = "mathml";
2933
+ if (parentComponent && parentComponent.isCE) (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
2934
+ if (!disabled) {
2935
+ mount(vnode, target, targetAnchor);
2936
+ updateCssVars(vnode, false);
2937
+ }
2938
+ }
2939
+ };
2940
+ const queuePendingMount = (vnode) => {
2941
+ const mountJob = () => {
2942
+ if (pendingMounts.get(vnode) !== mountJob) return;
2943
+ pendingMounts.delete(vnode);
2944
+ if (isTeleportDisabled(vnode.props)) {
2945
+ const mountContainer = parentNode(vnode.el) || container;
2946
+ mount(vnode, mountContainer, vnode.anchor);
2947
+ updateCssVars(vnode, true);
2948
+ }
2949
+ mountToTarget(vnode);
2950
+ };
2951
+ pendingMounts.set(vnode, mountJob);
2952
+ queuePostRenderEffect(mountJob, void 0, parentSuspense);
2953
+ };
2840
2954
  if (n1 == null) {
2841
2955
  const placeholder = n2.el = createText("");
2842
2956
  const mainAnchor = n2.anchor = createText("");
2843
2957
  insert(placeholder, container, anchor);
2844
2958
  insert(mainAnchor, container, anchor);
2845
- const mount = (container, anchor) => {
2846
- if (shapeFlag & 16) mountChildren(children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
2847
- };
2848
- const mountToTarget = () => {
2849
- const target = n2.target = resolveTarget(n2.props, querySelector);
2850
- const targetAnchor = prepareAnchor(target, n2, createText, insert);
2851
- if (target) {
2852
- if (namespace !== "svg" && isTargetSVG(target)) namespace = "svg";
2853
- else if (namespace !== "mathml" && isTargetMathML(target)) namespace = "mathml";
2854
- if (parentComponent && parentComponent.isCE) (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
2855
- if (!disabled) {
2856
- mount(target, targetAnchor);
2857
- updateCssVars(n2, false);
2858
- }
2859
- }
2860
- };
2959
+ if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
2960
+ queuePendingMount(n2);
2961
+ return;
2962
+ }
2861
2963
  if (disabled) {
2862
- mount(container, mainAnchor);
2964
+ mount(n2, container, mainAnchor);
2863
2965
  updateCssVars(n2, true);
2864
2966
  }
2865
- if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
2866
- n2.el.__isMounted = false;
2867
- queuePostRenderEffect(() => {
2868
- if (n2.el.__isMounted !== false) return;
2869
- mountToTarget();
2870
- delete n2.el.__isMounted;
2871
- }, void 0, parentSuspense);
2872
- } else mountToTarget();
2967
+ mountToTarget();
2873
2968
  } else {
2874
2969
  n2.el = n1.el;
2875
- n2.targetStart = n1.targetStart;
2876
2970
  const mainAnchor = n2.anchor = n1.anchor;
2877
- const target = n2.target = n1.target;
2878
- const targetAnchor = n2.targetAnchor = n1.targetAnchor;
2879
- if (n1.el.__isMounted === false) {
2880
- queuePostRenderEffect(() => {
2881
- TeleportImpl.process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals);
2882
- }, void 0, parentSuspense);
2971
+ const pendingMount = pendingMounts.get(n1);
2972
+ if (pendingMount) {
2973
+ pendingMount.flags |= 4;
2974
+ pendingMounts.delete(n1);
2975
+ queuePendingMount(n2);
2883
2976
  return;
2884
2977
  }
2978
+ n2.targetStart = n1.targetStart;
2979
+ const target = n2.target = n1.target;
2980
+ const targetAnchor = n2.targetAnchor = n1.targetAnchor;
2885
2981
  const wasDisabled = isTeleportDisabled(n1.props);
2886
2982
  const currentContainer = wasDisabled ? container : target;
2887
2983
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
@@ -2895,23 +2991,30 @@ const TeleportImpl = {
2895
2991
  if (!wasDisabled) moveTeleport(n2, container, mainAnchor, internals, parentComponent, 1);
2896
2992
  else if (n2.props && n1.props && n2.props.to !== n1.props.to) n2.props.to = n1.props.to;
2897
2993
  } else if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
2898
- const nextTarget = n2.target = resolveTarget(n2.props, querySelector);
2899
- if (nextTarget) moveTeleport(n2, nextTarget, null, internals, parentComponent, 0);
2994
+ const nextTarget = resolveTarget(n2.props, querySelector);
2995
+ if (nextTarget) {
2996
+ n2.target = nextTarget;
2997
+ moveTeleport(n2, nextTarget, null, internals, parentComponent, 0);
2998
+ }
2900
2999
  } else if (wasDisabled) moveTeleport(n2, target, targetAnchor, internals, parentComponent, 1);
2901
3000
  updateCssVars(n2, disabled);
2902
3001
  }
2903
3002
  },
2904
3003
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
2905
- const { shapeFlag, children, anchor, targetStart, targetAnchor, props } = vnode;
3004
+ const { shapeFlag, children, anchor, targetStart, targetAnchor, target, props } = vnode;
3005
+ const disabled = isTeleportDisabled(props);
3006
+ const shouldRemove = doRemove || !disabled;
3007
+ const pendingMount = pendingMounts.get(vnode);
3008
+ if (pendingMount) {
3009
+ pendingMount.flags |= 4;
3010
+ pendingMounts.delete(vnode);
3011
+ }
2906
3012
  if (targetStart) hostRemove(targetStart);
2907
3013
  if (targetAnchor) hostRemove(targetAnchor);
2908
3014
  doRemove && hostRemove(anchor);
2909
- if (shapeFlag & 16) {
2910
- const shouldRemove = doRemove || !isTeleportDisabled(props);
2911
- for (let i = 0; i < children.length; i++) {
2912
- const child = children[i];
2913
- unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
2914
- }
3015
+ if (!pendingMount && (disabled || target) && shapeFlag & 16) for (let i = 0; i < children.length; i++) {
3016
+ const child = children[i];
3017
+ unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
2915
3018
  }
2916
3019
  },
2917
3020
  move: moveTeleport,
@@ -2922,7 +3025,7 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
2922
3025
  const { el, anchor, shapeFlag, children, props } = vnode;
2923
3026
  const isReorder = moveType === 2;
2924
3027
  if (isReorder) insert(el, container, parentAnchor);
2925
- if (!isReorder || isTeleportDisabled(props)) {
3028
+ if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {
2926
3029
  if (shapeFlag & 16) for (let i = 0; i < children.length; i++) move(children[i], container, parentAnchor, 2, parentComponent);
2927
3030
  }
2928
3031
  if (isReorder) insert(anchor, container, parentAnchor);
@@ -2949,15 +3052,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
2949
3052
  const disabled = isTeleportDisabled(vnode.props);
2950
3053
  if (target) {
2951
3054
  const targetNode = target._lpa || target.firstChild;
2952
- if (vnode.shapeFlag & 16) if (disabled) {
2953
- hydrateDisabledTeleport(node, vnode);
2954
- hydrateAnchor(target, targetNode);
2955
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
2956
- } else {
2957
- vnode.anchor = nextSibling(node);
2958
- hydrateAnchor(target, targetNode);
2959
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
2960
- 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
+ }
2961
3066
  }
2962
3067
  updateCssVars(vnode, disabled);
2963
3068
  } else if (disabled) {
@@ -3045,48 +3150,15 @@ const BaseTransitionImpl = {
3045
3150
  setup(props, { slots }) {
3046
3151
  const instance = getCurrentInstance();
3047
3152
  const state = useTransitionState();
3153
+ let resumeAfterLeave;
3048
3154
  return () => {
3049
- const children = slots.default && getTransitionRawChildren(slots.default(), true);
3050
- if (!children || !children.length) return;
3051
- const child = findNonCommentChild(children);
3155
+ const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
3156
+ if (!child) return;
3052
3157
  const rawProps = /* @__PURE__ */ toRaw(props);
3053
3158
  const { mode } = rawProps;
3054
- if (state.isLeaving) return emptyPlaceholder(child);
3055
- const innerChild = getInnerChild$1(child);
3056
- if (!innerChild) return emptyPlaceholder(child);
3057
- let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
3058
- if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
3059
- let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3060
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3061
- let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
3062
- setTransitionHooks(oldInnerChild, leavingHooks);
3063
- if (mode === "out-in" && innerChild.type !== Comment) {
3064
- state.isLeaving = true;
3065
- leavingHooks.afterLeave = () => {
3066
- state.isLeaving = false;
3067
- if (!(instance.job.flags & 4)) instance.update();
3068
- delete leavingHooks.afterLeave;
3069
- oldInnerChild = void 0;
3070
- };
3071
- return emptyPlaceholder(child);
3072
- } else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3073
- const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
3074
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3075
- el[leaveCbKey] = () => {
3076
- earlyRemove();
3077
- el[leaveCbKey] = void 0;
3078
- delete enterHooks.delayedLeave;
3079
- oldInnerChild = void 0;
3080
- };
3081
- enterHooks.delayedLeave = () => {
3082
- delayedLeave();
3083
- delete enterHooks.delayedLeave;
3084
- oldInnerChild = void 0;
3085
- };
3086
- };
3087
- else oldInnerChild = void 0;
3088
- } else if (oldInnerChild) oldInnerChild = void 0;
3089
- return child;
3159
+ return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3160
+ if (!(instance.job.flags & 4)) instance.update();
3161
+ }) : NOOP);
3090
3162
  };
3091
3163
  }
3092
3164
  };
@@ -3151,8 +3223,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3151
3223
  persisted,
3152
3224
  beforeEnter(el) {
3153
3225
  let hook = onBeforeEnter;
3154
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3155
- else return;
3226
+ if (!state.isMounted) {
3227
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
3228
+ else return;
3229
+ }
3156
3230
  if (el[leaveCbKey]) el[leaveCbKey](true);
3157
3231
  earlyRemove();
3158
3232
  callHook(hook, [el]);
@@ -3162,11 +3236,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3162
3236
  let hook = onEnter;
3163
3237
  let afterHook = onAfterEnter;
3164
3238
  let cancelHook = onEnterCancelled;
3165
- if (!state.isMounted) if (appear) {
3166
- hook = onAppear || onEnter;
3167
- afterHook = onAfterAppear || onAfterEnter;
3168
- cancelHook = onAppearCancelled || onEnterCancelled;
3169
- } else return;
3239
+ if (!state.isMounted) {
3240
+ if (appear) {
3241
+ hook = onAppear || onEnter;
3242
+ afterHook = onAfterAppear || onAfterEnter;
3243
+ cancelHook = onAppearCancelled || onEnterCancelled;
3244
+ } else return;
3245
+ }
3170
3246
  let called = false;
3171
3247
  el[enterCbKey$1] = (cancelled) => {
3172
3248
  if (called) return;
@@ -3200,7 +3276,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3200
3276
  else done();
3201
3277
  },
3202
3278
  clone(node) {
3203
- return cloneHooks(node);
3279
+ return cloneHooks ? cloneHooks(node) : hooks;
3204
3280
  }
3205
3281
  };
3206
3282
  return hooks;
@@ -3224,16 +3300,91 @@ function getInnerChild$1(vnode) {
3224
3300
  if (shapeFlag & 32 && isFunction(children.default)) return children.default();
3225
3301
  }
3226
3302
  }
3303
+ function resolveTransitionChild(children, renderEmpty = false) {
3304
+ const branches = children && getTransitionRawChildren(children, true);
3305
+ return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
3306
+ }
3307
+ /**
3308
+ * @internal
3309
+ */
3310
+ function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
3311
+ if (state.isLeaving) return emptyPlaceholder(next);
3312
+ const nextInner = getInnerChild$1(next);
3313
+ if (!nextInner) return emptyPlaceholder(next);
3314
+ let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
3315
+ if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
3316
+ enterHooks = hooks;
3317
+ });
3318
+ if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
3319
+ if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
3320
+ const mode = props.mode;
3321
+ const previousInner = previous && getInnerChild$1(previous);
3322
+ if (previous && previousInner && previousInner.type !== Comment && !isSameVNodeType(previousInner, nextInner) && (!previous.component || recursiveGetSubtree(previous.component).type !== Comment)) {
3323
+ const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
3324
+ 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);
3325
+ }
3326
+ return next;
3327
+ }
3328
+ function forwardDelayedLeave(hooks, source) {
3329
+ const delayedLeave = source && source.delayedLeave;
3330
+ if (!delayedLeave) return;
3331
+ hooks.delayedLeave = () => {
3332
+ if (source.delayedLeave === delayedLeave) delayedLeave();
3333
+ delete hooks.delayedLeave;
3334
+ };
3335
+ }
3336
+ function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
3337
+ return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
3338
+ }
3339
+ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
3340
+ if (props.mode === "out-in") {
3341
+ state.isLeaving = true;
3342
+ leavingHooks.afterLeave = () => {
3343
+ state.isLeaving = false;
3344
+ resumeAfterLeave();
3345
+ delete leavingHooks.afterLeave;
3346
+ };
3347
+ return true;
3348
+ } else if (props.mode === "in-out" && getEnterHooks) {
3349
+ let delayedLeavingVNode = leavingVNode;
3350
+ leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3351
+ const enterHooks = getEnterHooks();
3352
+ if (!enterHooks) {
3353
+ delayedLeave();
3354
+ return;
3355
+ }
3356
+ const vnode = delayedLeavingVNode;
3357
+ const leavingVNodesCache = getLeavingNodesForType(state, vnode);
3358
+ leavingVNodesCache[String(vnode.key)] = vnode;
3359
+ el[leaveCbKey] = () => {
3360
+ earlyRemove();
3361
+ el[leaveCbKey] = void 0;
3362
+ delete enterHooks.delayedLeave;
3363
+ delayedLeavingVNode = void 0;
3364
+ };
3365
+ enterHooks.delayedLeave = () => {
3366
+ delayedLeave();
3367
+ delete enterHooks.delayedLeave;
3368
+ delayedLeavingVNode = void 0;
3369
+ };
3370
+ };
3371
+ }
3372
+ return false;
3373
+ }
3227
3374
  function setTransitionHooks(vnode, hooks) {
3228
- if (vnode.shapeFlag & 6 && vnode.component) if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
3229
- else {
3375
+ if (vnode.shapeFlag & 6 && vnode.component) {
3230
3376
  vnode.transition = hooks;
3231
- setTransitionHooks(vnode.component.subTree, hooks);
3232
- }
3233
- else if (vnode.shapeFlag & 128) {
3234
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3235
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3377
+ if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
3378
+ else {
3379
+ const subTree = vnode.component.subTree;
3380
+ return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
3381
+ }
3382
+ } else if (vnode.shapeFlag & 128) {
3383
+ const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3384
+ const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3385
+ return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
3236
3386
  } else vnode.transition = hooks;
3387
+ return hooks;
3237
3388
  }
3238
3389
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
3239
3390
  let ret = [];
@@ -3251,9 +3402,9 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
3251
3402
  }
3252
3403
  //#endregion
3253
3404
  //#region packages/runtime-core/src/apiDefineComponent.ts
3254
- /* @__NO_SIDE_EFFECTS__ */
3405
+ /*@__NO_SIDE_EFFECTS__*/
3255
3406
  function defineComponent(options, extraOptions) {
3256
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
3407
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
3257
3408
  }
3258
3409
  //#endregion
3259
3410
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -3340,15 +3491,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3340
3491
  if (rawRef.f) {
3341
3492
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
3342
3493
  if (isUnmount) isArray(existing) && remove(existing, refValue);
3343
- else if (!isArray(existing)) if (_isString) {
3344
- refs[ref] = [refValue];
3345
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3346
- } else {
3347
- const newVal = [refValue];
3348
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3349
- if (rawRef.k) refs[rawRef.k] = newVal;
3350
- }
3351
- else if (!existing.includes(refValue)) existing.push(refValue);
3494
+ else if (!isArray(existing)) {
3495
+ if (_isString) {
3496
+ refs[ref] = [refValue];
3497
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3498
+ } else {
3499
+ const newVal = [refValue];
3500
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3501
+ if (rawRef.k) refs[rawRef.k] = newVal;
3502
+ }
3503
+ } else if (!existing.includes(refValue)) existing.push(refValue);
3352
3504
  } else if (_isString) {
3353
3505
  refs[ref] = value;
3354
3506
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -3398,7 +3550,18 @@ const logMismatchError = () => {
3398
3550
  hasLoggedMismatchError = true;
3399
3551
  };
3400
3552
  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
3401
- const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
3553
+ const isMathMLContainer = (container) => {
3554
+ if (!container.namespaceURI.includes("MathML")) return false;
3555
+ if (container.tagName !== "annotation-xml") return true;
3556
+ const encoding = container.getAttribute("encoding");
3557
+ return !encoding || !encoding.includes("html");
3558
+ };
3559
+ /**
3560
+ * Resolve the element namespace a container's children should be created in.
3561
+ * The live DOM is the source of truth, so this also covers containers that are
3562
+ * only known at runtime (interop boundaries, teleport targets).
3563
+ * @internal
3564
+ */
3402
3565
  const getContainerType = (container) => {
3403
3566
  if (container.nodeType !== 1) return void 0;
3404
3567
  if (isSVGContainer(container)) return "svg";
@@ -3421,7 +3584,7 @@ function createHydrationFunctions(rendererInternals) {
3421
3584
  };
3422
3585
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
3423
3586
  optimized = optimized || !!vnode.dynamicChildren;
3424
- const isFragmentStart = isComment(node) && node.data === "[";
3587
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
3425
3588
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
3426
3589
  const { type, ref, shapeFlag, patchFlag } = vnode;
3427
3590
  let domType = node.nodeType;
@@ -3433,11 +3596,12 @@ function createHydrationFunctions(rendererInternals) {
3433
3596
  let nextNode = null;
3434
3597
  switch (type) {
3435
3598
  case Text:
3436
- if (domType !== 3) if (vnode.children === "") {
3437
- insert(vnode.el = createText(""), parentNode(node), node);
3438
- nextNode = node;
3439
- } else nextNode = onMismatch();
3440
- else {
3599
+ if (domType !== 3) {
3600
+ if (vnode.children === "") {
3601
+ insert(vnode.el = createText(""), parentNode(node), node);
3602
+ nextNode = node;
3603
+ } else nextNode = onMismatch();
3604
+ } else {
3441
3605
  if (node.data !== vnode.children) {
3442
3606
  logMismatchError();
3443
3607
  node.data = vnode.children;
@@ -3473,39 +3637,45 @@ function createHydrationFunctions(rendererInternals) {
3473
3637
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3474
3638
  break;
3475
3639
  case VaporSlot:
3476
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node);
3640
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
3477
3641
  break;
3478
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
3479
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3480
- else if (shapeFlag & 6) {
3642
+ default: if (shapeFlag & 1) {
3643
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
3644
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3645
+ } else if (shapeFlag & 6) {
3481
3646
  vnode.slotScopeIds = slotScopeIds;
3482
3647
  const container = parentNode(node);
3483
3648
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
3484
3649
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
3485
3650
  else nextNode = nextSibling(node);
3486
- if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, null, parentComponent, parentSuspense);
3487
- else mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
3488
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
3489
- let subTree;
3490
- if (isFragmentStart) {
3491
- subTree = createVNode(Fragment);
3492
- subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
3493
- } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
3494
- subTree.el = node;
3495
- vnode.component.subTree = subTree;
3651
+ if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
3652
+ else {
3653
+ mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
3654
+ const component = vnode.component;
3655
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
3656
+ let subTree;
3657
+ if (isFragmentStart) {
3658
+ subTree = createVNode(Static);
3659
+ subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
3660
+ } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
3661
+ subTree.el = node;
3662
+ component.subTree = subTree;
3663
+ }
3496
3664
  }
3497
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
3498
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3499
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3665
+ } else if (shapeFlag & 64) {
3666
+ if (domType !== 8) nextNode = onMismatch();
3667
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3668
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3500
3669
  }
3501
3670
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
3502
3671
  return nextNode;
3503
3672
  };
3504
3673
  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
3505
3674
  optimized = optimized || !!vnode.dynamicChildren;
3506
- const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;
3675
+ const { type, dynamicProps, props, patchFlag, shapeFlag, dirs, transition } = vnode;
3507
3676
  const forcePatch = type === "input" || type === "option";
3508
- if (forcePatch || patchFlag !== -1) {
3677
+ const hasDynamicProps = !!dynamicProps;
3678
+ if (forcePatch || hasDynamicProps || patchFlag !== -1) {
3509
3679
  if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "created");
3510
3680
  let needCallTransitionHooks = false;
3511
3681
  if (isTemplateNode$1(el)) {
@@ -3521,8 +3691,8 @@ function createHydrationFunctions(rendererInternals) {
3521
3691
  }
3522
3692
  if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) {
3523
3693
  let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
3694
+ if (next && !isMismatchAllowed(el, 1)) logMismatchError();
3524
3695
  while (next) {
3525
- if (!isMismatchAllowed(el, 1)) logMismatchError();
3526
3696
  const cur = next;
3527
3697
  next = next.nextSibling;
3528
3698
  remove(cur);
@@ -3537,9 +3707,13 @@ function createHydrationFunctions(rendererInternals) {
3537
3707
  }
3538
3708
  }
3539
3709
  if (props) {
3540
- if (forcePatch || !optimized || patchFlag & 48) {
3710
+ if (forcePatch || hasDynamicProps || !optimized || patchFlag & 48) {
3541
3711
  const isCustomElement = el.tagName.includes("-");
3542
- for (const key in props) if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key)) patchProp(el, key, null, props[key], void 0, parentComponent);
3712
+ const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
3713
+ 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)) {
3714
+ if (isUnchangedResourceProp(el, key, props[key])) continue;
3715
+ patchProp(el, key, null, props[key], namespace, parentComponent);
3716
+ }
3543
3717
  } else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
3544
3718
  else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
3545
3719
  }
@@ -3558,6 +3732,7 @@ function createHydrationFunctions(rendererInternals) {
3558
3732
  optimized = optimized || !!parentVNode.dynamicChildren;
3559
3733
  const children = parentVNode.children;
3560
3734
  const l = children.length;
3735
+ let hasCheckedMismatch = false;
3561
3736
  for (let i = 0; i < l; i++) {
3562
3737
  const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
3563
3738
  const isText = vnode.type === Text;
@@ -3571,7 +3746,10 @@ function createHydrationFunctions(rendererInternals) {
3571
3746
  node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3572
3747
  } else if (isText && !vnode.children) insert(vnode.el = createText(""), container);
3573
3748
  else {
3574
- if (!isMismatchAllowed(container, 1)) logMismatchError();
3749
+ if (!hasCheckedMismatch) {
3750
+ hasCheckedMismatch = true;
3751
+ if (!isMismatchAllowed(container, 1)) logMismatchError();
3752
+ }
3575
3753
  patch(null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
3576
3754
  }
3577
3755
  }
@@ -3581,8 +3759,9 @@ function createHydrationFunctions(rendererInternals) {
3581
3759
  const { slotScopeIds: fragmentSlotScopeIds } = vnode;
3582
3760
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
3583
3761
  const container = parentNode(node);
3584
- const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
3585
- if (next && isComment(next) && next.data === "]") return nextSibling(vnode.anchor = next);
3762
+ const first = nextSibling(node);
3763
+ const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
3764
+ if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
3586
3765
  else {
3587
3766
  logMismatchError();
3588
3767
  insert(vnode.anchor = createComment(`]`), container, next);
@@ -3590,7 +3769,7 @@ function createHydrationFunctions(rendererInternals) {
3590
3769
  }
3591
3770
  };
3592
3771
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
3593
- if (!isMismatchAllowed(node.parentElement, 1)) logMismatchError();
3772
+ if (!isNodeMismatchAllowed(node, vnode)) logMismatchError();
3594
3773
  vnode.el = null;
3595
3774
  if (isFragment) {
3596
3775
  const end = locateClosingAnchor(node);
@@ -3604,20 +3783,22 @@ function createHydrationFunctions(rendererInternals) {
3604
3783
  const container = parentNode(node);
3605
3784
  remove(node);
3606
3785
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
3607
- if (parentComponent) {
3786
+ if (parentComponent && parentComponent.vnode) {
3608
3787
  parentComponent.vnode.el = vnode.el;
3609
3788
  updateHOCHostEl(parentComponent, vnode.el);
3610
3789
  }
3611
3790
  return next;
3612
3791
  };
3613
- const locateClosingAnchor = (node, open = "[", close = "]") => {
3792
+ const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
3614
3793
  let match = 0;
3615
3794
  while (node) {
3616
3795
  node = nextSibling(node);
3617
3796
  if (node && isComment(node)) {
3618
3797
  if (node.data === open) match++;
3619
- if (node.data === close) if (match === 0) return nextSibling(node);
3620
- else match--;
3798
+ if (node.data === close) {
3799
+ if (match === 0) return nextSibling(node);
3800
+ else match--;
3801
+ }
3621
3802
  }
3622
3803
  }
3623
3804
  return node;
@@ -3627,7 +3808,7 @@ function createHydrationFunctions(rendererInternals) {
3627
3808
  if (parentNode) parentNode.replaceChild(newNode, oldNode);
3628
3809
  let parent = parentComponent;
3629
3810
  while (parent) {
3630
- if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
3811
+ if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
3631
3812
  parent = parent.parent;
3632
3813
  }
3633
3814
  };
@@ -3636,6 +3817,16 @@ function createHydrationFunctions(rendererInternals) {
3636
3817
  const isTemplateNode$1 = (node) => {
3637
3818
  return node.nodeType === 1 && node.tagName === "TEMPLATE";
3638
3819
  };
3820
+ const resourceProps = /*@__PURE__*/ new Set([
3821
+ "src",
3822
+ "srcset",
3823
+ "href",
3824
+ "poster"
3825
+ ]);
3826
+ function isUnchangedResourceProp(el, key, clientValue) {
3827
+ if (!resourceProps.has(key)) return false;
3828
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
3829
+ }
3639
3830
  const allowMismatchAttr = "data-allow-mismatch";
3640
3831
  const MismatchTypeString = {
3641
3832
  [0]: "text",
@@ -3646,7 +3837,9 @@ const MismatchTypeString = {
3646
3837
  };
3647
3838
  function isMismatchAllowed(el, allowedType) {
3648
3839
  if (allowedType === 0 || allowedType === 1) while (el && !el.hasAttribute(allowMismatchAttr)) el = el.parentElement;
3649
- const allowedAttr = el && el.getAttribute(allowMismatchAttr);
3840
+ return isMismatchAllowedByAttr(el && el.getAttribute(allowMismatchAttr), allowedType);
3841
+ }
3842
+ function isMismatchAllowedByAttr(allowedAttr, allowedType) {
3650
3843
  if (allowedAttr == null) return false;
3651
3844
  else if (allowedAttr === "") return true;
3652
3845
  else {
@@ -3655,6 +3848,16 @@ function isMismatchAllowed(el, allowedType) {
3655
3848
  return list.includes(MismatchTypeString[allowedType]);
3656
3849
  }
3657
3850
  }
3851
+ function isNodeMismatchAllowed(node, vnode) {
3852
+ return isMismatchAllowed(node.parentElement, 1) || isMismatchAllowedByNode(node) || isMismatchAllowedByVNode(vnode);
3853
+ }
3854
+ function isMismatchAllowedByNode(node) {
3855
+ return node.nodeType === 1 && isMismatchAllowedByAttr(node.getAttribute(allowMismatchAttr), 1);
3856
+ }
3857
+ function isMismatchAllowedByVNode({ props }) {
3858
+ const allowedAttr = props && props[allowMismatchAttr];
3859
+ return typeof allowedAttr === "string" && isMismatchAllowedByAttr(allowedAttr, 1);
3860
+ }
3658
3861
  //#endregion
3659
3862
  //#region packages/runtime-core/src/hydrationStrategies.ts
3660
3863
  let requestIdleCallback;
@@ -3728,16 +3931,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
3728
3931
  return teardown;
3729
3932
  };
3730
3933
  function forEachElement(node, cb) {
3731
- if (isComment(node) && node.data === "[") {
3934
+ if (isComment(node) && (node.data === "[" || node.data === "(")) {
3935
+ const open = node.data;
3936
+ const close = open === "[" ? "]" : ")";
3732
3937
  let depth = 1;
3733
3938
  let next = node.nextSibling;
3734
3939
  while (next) {
3735
3940
  if (next.nodeType === 1) {
3736
3941
  if (cb(next) === false) break;
3737
3942
  } else if (isComment(next)) {
3738
- if (next.data === "]") {
3943
+ if (next.data === close) {
3739
3944
  if (--depth === 0) break;
3740
- } else if (next.data === "[") depth++;
3945
+ } else if (next.data === open) depth++;
3741
3946
  }
3742
3947
  next = next.nextSibling;
3743
3948
  }
@@ -3746,14 +3951,14 @@ function forEachElement(node, cb) {
3746
3951
  //#endregion
3747
3952
  //#region packages/runtime-core/src/apiAsyncComponent.ts
3748
3953
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
3749
- /* @__NO_SIDE_EFFECTS__ */
3954
+ /*@__NO_SIDE_EFFECTS__*/
3750
3955
  function defineAsyncComponent(source) {
3751
3956
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
3752
3957
  return /* @__PURE__ */ defineComponent({
3753
3958
  name: "AsyncComponentWrapper",
3754
3959
  __asyncLoader: load,
3755
3960
  __asyncHydrate(el, instance, hydrate) {
3756
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
3961
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
3757
3962
  },
3758
3963
  get __asyncResolved() {
3759
3964
  return getResolvedComp();
@@ -3773,11 +3978,16 @@ function defineAsyncComponent(source) {
3773
3978
  onError(err);
3774
3979
  return () => errorComponent ? createVNode(errorComponent, { error: err }) : null;
3775
3980
  });
3776
- const { loaded, error, delayed } = useAsyncComponentState(delay, timeout, onError);
3981
+ const { loaded, error, delayed } = useAsyncComponentState(delay, timeout, onError, instance);
3777
3982
  load().then(() => {
3983
+ if (instance.isUnmounted) return;
3778
3984
  loaded.value = true;
3779
3985
  if (instance.parent && instance.parent.vnode && isKeepAlive(instance.parent.vnode)) instance.parent.update();
3780
3986
  }).catch((err) => {
3987
+ if (instance.isUnmounted) {
3988
+ setPendingRequest(null);
3989
+ return;
3990
+ }
3781
3991
  onError(err);
3782
3992
  error.value = err;
3783
3993
  });
@@ -3833,14 +4043,22 @@ function createAsyncComponentContext(source) {
3833
4043
  setPendingRequest: (request) => pendingRequest = request
3834
4044
  };
3835
4045
  }
3836
- const useAsyncComponentState = (delay, timeout, onError) => {
4046
+ const useAsyncComponentState = (delay, timeout, onError, instance = currentInstance) => {
3837
4047
  const loaded = /* @__PURE__ */ ref(false);
3838
4048
  const error = /* @__PURE__ */ ref();
3839
4049
  const delayed = /* @__PURE__ */ ref(!!delay);
3840
- if (delay) setTimeout(() => {
4050
+ let timeoutTimer;
4051
+ let delayTimer;
4052
+ if (instance) onUnmounted(() => {
4053
+ if (timeoutTimer != null) clearTimeout(timeoutTimer);
4054
+ if (delayTimer != null) clearTimeout(delayTimer);
4055
+ }, instance);
4056
+ if (delay) delayTimer = setTimeout(() => {
4057
+ if (instance && instance.isUnmounted) return;
3841
4058
  delayed.value = false;
3842
4059
  }, delay);
3843
- if (timeout != null) setTimeout(() => {
4060
+ if (timeout != null) timeoutTimer = setTimeout(() => {
4061
+ if (instance && instance.isUnmounted) return;
3844
4062
  if (!loaded.value && !error.value) {
3845
4063
  const err = /* @__PURE__ */ new Error(`Async component timed out after ${timeout}ms.`);
3846
4064
  onError(err);
@@ -3857,11 +4075,13 @@ const useAsyncComponentState = (delay, timeout, onError) => {
3857
4075
  * shared between core and vapor
3858
4076
  * @internal
3859
4077
  */
3860
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
4078
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4079
+ const wasConnected = el.isConnected;
3861
4080
  let patched = false;
3862
- (instance.bu || (instance.bu = [])).push(() => patched = true);
4081
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
3863
4082
  const performHydrate = () => {
3864
4083
  if (patched) return;
4084
+ if (!el.parentNode || wasConnected && !el.isConnected) return;
3865
4085
  hydrate();
3866
4086
  };
3867
4087
  const doHydrate = hydrateStrategy ? () => {
@@ -3941,10 +4161,13 @@ const KeepAliveImpl = {
3941
4161
  });
3942
4162
  let pendingCacheKey = null;
3943
4163
  const cacheSubtree = () => {
3944
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
3945
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
3946
- }, void 0, keepAliveInstance.subTree.suspense);
3947
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4164
+ if (pendingCacheKey != null) {
4165
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4166
+ const vnode = getInnerChild(keepAliveInstance.subTree);
4167
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
4168
+ }, void 0, keepAliveInstance.subTree.suspense);
4169
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4170
+ }
3948
4171
  };
3949
4172
  onMounted(cacheSubtree);
3950
4173
  onUpdated(cacheSubtree);
@@ -4014,7 +4237,7 @@ const decorate$2 = (t) => {
4014
4237
  t.__isBuiltIn = true;
4015
4238
  return t;
4016
4239
  };
4017
- const KeepAlive = /* @__PURE__ */ decorate$2(KeepAliveImpl);
4240
+ const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
4018
4241
  function matches(pattern, name) {
4019
4242
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
4020
4243
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -4103,7 +4326,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
4103
4326
  try {
4104
4327
  return callWithAsyncErrorHandling(hook, target, type, args);
4105
4328
  } finally {
4106
- setCurrentInstance(...prev);
4329
+ restoreCurrentInstance(prev);
4107
4330
  setActiveSub(prevSub);
4108
4331
  }
4109
4332
  });
@@ -4224,16 +4447,17 @@ function compatH(type, propsOrChildren, children) {
4224
4447
  }
4225
4448
  const l = arguments.length;
4226
4449
  const is2ndArgArrayChildren = isArray(propsOrChildren);
4227
- if (l === 2 || is2ndArgArrayChildren) if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
4228
- if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
4229
- return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
4230
- } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
4231
- else {
4450
+ if (l === 2 || is2ndArgArrayChildren) {
4451
+ if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
4452
+ if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
4453
+ return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
4454
+ } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
4455
+ } else {
4232
4456
  if (isVNode(children)) children = [children];
4233
4457
  return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
4234
4458
  }
4235
4459
  }
4236
- const skipLegacyRootLevelProps = /* @__PURE__ */ makeMap("staticStyle,staticClass,directives,model,hook");
4460
+ const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
4237
4461
  function convertLegacyProps(legacyProps, type) {
4238
4462
  if (!legacyProps) return null;
4239
4463
  const converted = {};
@@ -4245,8 +4469,10 @@ function convertLegacyProps(legacyProps, type) {
4245
4469
  if (key === "nativeOn") handlerKey += `Native`;
4246
4470
  const existing = converted[handlerKey];
4247
4471
  const incoming = listeners[event];
4248
- if (existing !== incoming) if (existing) converted[handlerKey] = [].concat(existing, incoming);
4249
- else converted[handlerKey] = incoming;
4472
+ if (existing !== incoming) {
4473
+ if (existing) converted[handlerKey] = [].concat(existing, incoming);
4474
+ else converted[handlerKey] = incoming;
4475
+ }
4250
4476
  }
4251
4477
  } else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
4252
4478
  if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
@@ -4345,7 +4571,7 @@ function convertLegacyFunctionalComponent(comp) {
4345
4571
  const legacyFn = comp.render;
4346
4572
  const Func = (props, ctx) => {
4347
4573
  const instance = getCurrentInstance();
4348
- return legacyFn(compatH, {
4574
+ const legacyCtx = {
4349
4575
  props,
4350
4576
  children: instance.vnode.children || [],
4351
4577
  data: instance.vnode.props || {},
@@ -4365,7 +4591,8 @@ function convertLegacyFunctionalComponent(comp) {
4365
4591
  }
4366
4592
  return {};
4367
4593
  }
4368
- });
4594
+ };
4595
+ return legacyFn(compatH, legacyCtx);
4369
4596
  };
4370
4597
  Func.props = comp.props;
4371
4598
  Func.displayName = comp.name;
@@ -4397,16 +4624,17 @@ function renderList(source, renderItem, cache, index) {
4397
4624
  } else if (typeof source === "number") {
4398
4625
  ret = new Array(source);
4399
4626
  for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
4400
- } else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4401
- else {
4402
- const keys = Object.keys(source);
4403
- ret = new Array(keys.length);
4404
- for (let i = 0, l = keys.length; i < l; i++) {
4405
- const key = keys[i];
4406
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4627
+ } else if (isObject(source)) {
4628
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4629
+ else {
4630
+ const keys = Object.keys(source);
4631
+ ret = new Array(keys.length);
4632
+ for (let i = 0, l = keys.length; i < l; i++) {
4633
+ const key = keys[i];
4634
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4635
+ }
4407
4636
  }
4408
- }
4409
- else ret = [];
4637
+ } else ret = [];
4410
4638
  if (cache) cache[index] = ret;
4411
4639
  return ret;
4412
4640
  }
@@ -4431,33 +4659,77 @@ function createSlots(slots, dynamicSlots) {
4431
4659
  //#endregion
4432
4660
  //#region packages/runtime-core/src/helpers/renderSlot.ts
4433
4661
  /**
4662
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
4663
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
4664
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
4665
+ * "which one". Internal to vapor interop.
4666
+ */
4667
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
4668
+ /**
4669
+ * Invokes a VDOM slot fallback under the outlet owner that produced it, the
4670
+ * way `renderSlot` would have rendered it inline. Vapor interop invokes
4671
+ * fallbacks late, outside any render, so it passes the owner recorded on the
4672
+ * vapor slot vnode. Internal to vapor interop.
4673
+ */
4674
+ function invokeSlotFallback(fallback, owner) {
4675
+ if (!owner) return fallback();
4676
+ const prev = setCurrentRenderingInstance(owner);
4677
+ const prevStackSize = blockStack.length;
4678
+ try {
4679
+ return fallback();
4680
+ } finally {
4681
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
4682
+ setCurrentRenderingInstance(prev);
4683
+ }
4684
+ }
4685
+ /**
4434
4686
  * Compiler runtime helper for rendering `<slot/>`
4435
4687
  * @private
4436
4688
  */
4437
- function renderSlot(slots, name, props = {}, fallback, noSlotted) {
4689
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
4690
+ if (props == null) props = {};
4438
4691
  let slot = slots[name];
4439
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
4692
+ const vaporSlot = slot && slot[rawVaporSlotKey];
4440
4693
  if (vaporSlot) {
4441
4694
  const ret = (openBlock(), createBlock(VaporSlot, props));
4442
4695
  ret.vs = {
4443
4696
  slot: vaporSlot,
4444
- fallback
4697
+ outlets: fallback ? [{
4698
+ fallback,
4699
+ owner: currentRenderingInstance
4700
+ }] : void 0
4445
4701
  };
4702
+ if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
4446
4703
  return ret;
4447
4704
  }
4448
4705
  if (currentRenderingInstance && (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce)) {
4449
- const hasProps = Object.keys(props).length > 0;
4450
- if (name !== "default") props.name = name;
4451
- return openBlock(), createBlock(Fragment, null, [createVNode("slot", props, fallback && fallback())], hasProps ? -2 : 64);
4706
+ const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
4707
+ const hasProps = Object.keys(slotProps).length > 0;
4708
+ if (name !== "default") slotProps.name = name;
4709
+ return openBlock(), createBlock(Fragment, null, [createVNode("slot", slotProps, fallback && fallback())], hasProps ? -2 : 64);
4452
4710
  }
4453
4711
  if (slot && slot._c) slot._d = false;
4712
+ const prevStackSize = blockStack.length;
4454
4713
  openBlock();
4455
- const validSlotContent = slot && ensureValidVNode(slot(props));
4456
- ensureVaporSlotFallback(validSlotContent, fallback);
4457
- const slotKey = props.key || validSlotContent && validSlotContent.key;
4458
- const rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
4714
+ let rendered;
4715
+ try {
4716
+ const validSlotContent = slot && ensureValidVNode(slot(props));
4717
+ let attached = false;
4718
+ if (fallback && validSlotContent && currentRenderingInstance) {
4719
+ const interop = currentRenderingInstance.appContext.vapor;
4720
+ if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
4721
+ }
4722
+ const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
4723
+ rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
4724
+ if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
4725
+ if (attached) rendered.vo = true;
4726
+ } catch (err) {
4727
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
4728
+ throw err;
4729
+ } finally {
4730
+ if (slot && slot._c) slot._d = true;
4731
+ }
4459
4732
  if (!noSlotted && rendered.scopeId) rendered.slotScopeIds = [rendered.scopeId + "-s"];
4460
- if (slot && slot._c) slot._d = true;
4461
4733
  return rendered;
4462
4734
  }
4463
4735
  function ensureValidVNode(vnodes) {
@@ -4468,12 +4740,6 @@ function ensureValidVNode(vnodes) {
4468
4740
  return true;
4469
4741
  }) ? vnodes : null;
4470
4742
  }
4471
- function ensureVaporSlotFallback(vnodes, fallback) {
4472
- let vaporSlot;
4473
- if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) {
4474
- if (!vaporSlot.fallback && fallback) vaporSlot.fallback = fallback;
4475
- }
4476
- }
4477
4743
  //#endregion
4478
4744
  //#region packages/runtime-core/src/helpers/toHandlers.ts
4479
4745
  /**
@@ -4528,12 +4794,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
4528
4794
  function mapKeyToName(slots) {
4529
4795
  for (let i = 0; i < slots.length; i++) {
4530
4796
  const fn = slots[i];
4531
- if (fn) if (isArray(fn)) mapKeyToName(fn);
4532
- else fn.name = fn.key || "default";
4797
+ if (fn) {
4798
+ if (isArray(fn)) mapKeyToName(fn);
4799
+ else fn.name = fn.key || "default";
4800
+ }
4533
4801
  }
4534
4802
  return slots;
4535
4803
  }
4536
- const staticCacheMap = /* @__PURE__ */ new WeakMap();
4804
+ const staticCacheMap = /*@__PURE__*/ new WeakMap();
4537
4805
  function legacyRenderStatic(instance, index) {
4538
4806
  let cache = staticCacheMap.get(instance);
4539
4807
  if (!cache) staticCacheMap.set(instance, cache = []);
@@ -4756,7 +5024,7 @@ const PublicInstanceProxyHandlers = {
4756
5024
  return Reflect.defineProperty(target, key, descriptor);
4757
5025
  }
4758
5026
  };
4759
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
5027
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
4760
5028
  get(target, key) {
4761
5029
  if (key === Symbol.unscopables) return;
4762
5030
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -4880,12 +5148,13 @@ function mergeDefaults(raw, defaults) {
4880
5148
  for (const key in defaults) {
4881
5149
  if (key.startsWith("__skip")) continue;
4882
5150
  let opt = props[key];
4883
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
4884
- type: opt,
4885
- default: defaults[key]
4886
- };
4887
- else opt.default = defaults[key];
4888
- else if (opt === null) opt = props[key] = { default: defaults[key] };
5151
+ if (opt) {
5152
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
5153
+ type: opt,
5154
+ default: defaults[key]
5155
+ };
5156
+ else opt.default = defaults[key];
5157
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
4889
5158
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
4890
5159
  }
4891
5160
  return props;
@@ -4938,21 +5207,29 @@ function withAsyncContext(getAwaitable) {
4938
5207
  setCurrentInstance(null, void 0);
4939
5208
  if (inSSRSetup) setInSSRSetupState(false);
4940
5209
  const restore = () => {
5210
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
4941
5211
  setCurrentInstance(ctx);
4942
5212
  if (inSSRSetup) setInSSRSetupState(true);
5213
+ return stoppedScope;
4943
5214
  };
4944
5215
  const cleanup = () => {
4945
5216
  setCurrentInstance(null, void 0);
4946
5217
  if (inSSRSetup) setInSSRSetupState(false);
4947
5218
  };
4948
5219
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
4949
- restore();
4950
- Promise.resolve().then(() => Promise.resolve().then(cleanup));
5220
+ const stoppedScope = restore();
5221
+ Promise.resolve().then(() => Promise.resolve().then(() => {
5222
+ if (stoppedScope) stoppedScope.reset();
5223
+ cleanup();
5224
+ }));
4951
5225
  throw e;
4952
5226
  });
4953
5227
  return [awaitable, () => {
4954
- restore();
4955
- Promise.resolve().then(cleanup);
5228
+ const stoppedScope = restore();
5229
+ Promise.resolve().then(() => {
5230
+ if (stoppedScope) stoppedScope.reset();
5231
+ cleanup();
5232
+ });
4956
5233
  }];
4957
5234
  }
4958
5235
  //#endregion
@@ -4978,9 +5255,11 @@ function applyOptions(instance) {
4978
5255
  shouldCacheAccess = true;
4979
5256
  if (computedOptions) for (const key in computedOptions) {
4980
5257
  const opt = computedOptions[key];
5258
+ const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
5259
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP;
4981
5260
  const c = computed({
4982
- get: isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP,
4983
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP
5261
+ get,
5262
+ set
4984
5263
  });
4985
5264
  Object.defineProperty(ctx, key, {
4986
5265
  enumerable: true,
@@ -5039,9 +5318,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
5039
5318
  for (const key in injectOptions) {
5040
5319
  const opt = injectOptions[key];
5041
5320
  let injected;
5042
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5043
- else injected = inject(opt.from || key);
5044
- else injected = inject(opt);
5321
+ if (isObject(opt)) {
5322
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5323
+ else injected = inject(opt.from || key);
5324
+ } else injected = inject(opt);
5045
5325
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
5046
5326
  enumerable: true,
5047
5327
  configurable: true,
@@ -5060,7 +5340,8 @@ function createWatcher(raw, ctx, publicThis, key) {
5060
5340
  {
5061
5341
  const cur = getCurrentInstance();
5062
5342
  const instance = cur && getCurrentScope() === cur.scope ? cur : null;
5063
- if (isArray(getter()) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
5343
+ const newValue = getter();
5344
+ if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
5064
5345
  const baseGetter = getter;
5065
5346
  getter = () => {
5066
5347
  const val = baseGetter();
@@ -5072,10 +5353,12 @@ function createWatcher(raw, ctx, publicThis, key) {
5072
5353
  const handler = ctx[raw];
5073
5354
  if (isFunction(handler)) watch(getter, handler, options);
5074
5355
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
5075
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5076
- else {
5077
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5078
- if (isFunction(handler)) watch(getter, handler, extend(raw, options));
5356
+ else if (isObject(raw)) {
5357
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5358
+ else {
5359
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5360
+ if (isFunction(handler)) watch(getter, handler, extend(raw, options));
5361
+ }
5079
5362
  }
5080
5363
  }
5081
5364
  /**
@@ -5090,12 +5373,13 @@ function resolveMergedOptions(instance) {
5090
5373
  const cached = cache.get(base);
5091
5374
  let resolved;
5092
5375
  if (cached) resolved = cached;
5093
- else if (!globalMixins.length && !mixins && !extendsOptions) if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
5094
- resolved = extend({}, base);
5095
- resolved.parent = instance.parent && instance.parent.proxy;
5096
- resolved.propsData = instance.vnode.props;
5097
- } else resolved = base;
5098
- else {
5376
+ else if (!globalMixins.length && !mixins && !extendsOptions) {
5377
+ if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
5378
+ resolved = extend({}, base);
5379
+ resolved.parent = instance.parent && instance.parent.proxy;
5380
+ resolved.propsData = instance.vnode.props;
5381
+ } else resolved = base;
5382
+ } else {
5099
5383
  resolved = {};
5100
5384
  if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
5101
5385
  mergeOptions(resolved, base, optionMergeStrategies);
@@ -5167,7 +5451,7 @@ function mergeObjectOptions(to, from) {
5167
5451
  }
5168
5452
  function mergeEmitsOrPropsOptions(to, from) {
5169
5453
  if (to) {
5170
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
5454
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
5171
5455
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
5172
5456
  } else return from;
5173
5457
  }
@@ -5203,7 +5487,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5203
5487
  if (options.el) return vm.$mount(options.el);
5204
5488
  else return vm;
5205
5489
  }
5206
- Vue.version = `2.6.14-compat:3.6.0-beta.9`;
5490
+ Vue.version = `2.6.14-compat:3.6.0-rc.10`;
5207
5491
  Vue.config = singletonApp.config;
5208
5492
  Vue.use = (plugin, ...options) => {
5209
5493
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -5609,13 +5893,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
5609
5893
  const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
5610
5894
  const res = customRef((track, trigger) => {
5611
5895
  let localValue;
5896
+ let prevPropValue = EMPTY_OBJ;
5612
5897
  let prevSetValue = EMPTY_OBJ;
5613
5898
  let prevEmittedValue;
5614
5899
  watchSyncEffect(() => {
5615
5900
  const propValue = props[camelizedName];
5616
- if (hasChanged(localValue, propValue)) {
5617
- localValue = propValue;
5618
- trigger();
5901
+ if (hasChanged(prevPropValue, propValue)) {
5902
+ prevPropValue = propValue;
5903
+ if (hasChanged(localValue, propValue)) {
5904
+ localValue = propValue;
5905
+ trigger();
5906
+ }
5619
5907
  }
5620
5908
  });
5621
5909
  return {
@@ -5638,12 +5926,13 @@ function useModel(props, name, options = EMPTY_OBJ) {
5638
5926
  for (const key of rawPropKeys) if (key === name || key === camelizedName || key === hyphenatedName) parentPassedModelValue = true;
5639
5927
  else if (key === `onUpdate:${name}` || key === `onUpdate:${camelizedName}` || key === `onUpdate:${hyphenatedName}`) parentPassedModelUpdater = true;
5640
5928
  }
5641
- if (!parentPassedModelValue || !parentPassedModelUpdater) {
5929
+ const hasVModel = parentPassedModelValue && parentPassedModelUpdater;
5930
+ if (!hasVModel) {
5642
5931
  localValue = value;
5643
5932
  trigger();
5644
5933
  }
5645
5934
  i.emit(`update:${name}`, emittedValue);
5646
- if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) trigger();
5935
+ if (hasChanged(value, prevSetValue) && (hasChanged(value, emittedValue) && !hasChanged(emittedValue, prevEmittedValue) || hasVModel && prevSetValue !== EMPTY_OBJ && !hasChanged(emittedValue, localValue))) trigger();
5647
5936
  prevSetValue = value;
5648
5937
  prevEmittedValue = emittedValue;
5649
5938
  }
@@ -5680,7 +5969,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
5680
5969
  const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
5681
5970
  if (modifiers) {
5682
5971
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
5683
- if (modifiers.number) args = rawArgs.map(looseToNumber);
5972
+ if (modifiers.number) args = args.map(looseToNumber);
5684
5973
  }
5685
5974
  let handlerName;
5686
5975
  let handler = getter(props, handlerName = toHandlerKey(event)) || getter(props, handlerName = toHandlerKey(camelize(event)));
@@ -5740,7 +6029,8 @@ function normalizeEmitsOptions(comp, appContext, asMixin = false) {
5740
6029
  function isEmitListener(options, key) {
5741
6030
  if (!options || !isOn(key)) return false;
5742
6031
  if (key.startsWith(compatModelEventPrefix)) return true;
5743
- key = key.slice(2).replace(/Once$/, "");
6032
+ key = key.slice(2);
6033
+ key = key === "Once" ? key : key.replace(/Once$/, "");
5744
6034
  return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);
5745
6035
  }
5746
6036
  //#endregion
@@ -5792,7 +6082,7 @@ function renderComponentRoot(instance) {
5792
6082
  root = cloneVNode(root, null, false, true);
5793
6083
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
5794
6084
  }
5795
- if (vnode.transition) setTransitionHooks(root, vnode.transition);
6085
+ if (vnode.transition) setTransitionHooks(isTeleport(root.type) ? getInnerChild$1(root) || root : root, vnode.transition);
5796
6086
  result = root;
5797
6087
  setCurrentRenderingInstance(prev);
5798
6088
  return result;
@@ -5802,15 +6092,18 @@ function filterSingleRoot(children, recurse = true) {
5802
6092
  for (let i = 0; i < children.length; i++) {
5803
6093
  const child = children[i];
5804
6094
  if (isVNode(child)) {
5805
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
5806
- else singleRoot = child;
6095
+ if (child.type !== Comment || child.children === "v-if") {
6096
+ if (singleRoot) return;
6097
+ else singleRoot = child;
6098
+ }
5807
6099
  } else return;
5808
6100
  }
5809
6101
  return singleRoot;
5810
6102
  }
6103
+ const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
5811
6104
  const getFunctionalFallthrough = (attrs) => {
5812
6105
  let res;
5813
- for (const key in attrs) if (key === "class" || key === "style" || isOn(key)) (res || (res = {}))[key] = attrs[key];
6106
+ for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
5814
6107
  return res;
5815
6108
  };
5816
6109
  const filterModelListeners = (attrs, props) => {
@@ -5934,16 +6227,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
5934
6227
  let key = propsToUpdate[i];
5935
6228
  if (isEmitListener(instance.emitsOptions, key)) continue;
5936
6229
  const value = rawProps[key];
5937
- if (options) if (hasOwn(attrs, key)) {
5938
- if (value !== attrs[key]) {
5939
- attrs[key] = value;
5940
- hasAttrsChanged = true;
6230
+ if (options) {
6231
+ if (hasOwn(attrs, key)) {
6232
+ if (value !== attrs[key]) {
6233
+ attrs[key] = value;
6234
+ hasAttrsChanged = true;
6235
+ }
6236
+ } else {
6237
+ const camelizedKey = camelize(key);
6238
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
5941
6239
  }
5942
6240
  } else {
5943
- const camelizedKey = camelize(key);
5944
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
5945
- }
5946
- else {
5947
6241
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
5948
6242
  else if (shouldSkipAttr(key, instance)) continue;
5949
6243
  if (value !== attrs[key]) {
@@ -5956,9 +6250,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
5956
6250
  } else {
5957
6251
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
5958
6252
  let kebabKey;
5959
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
5960
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
5961
- } else delete props[key];
6253
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
6254
+ if (options) {
6255
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6256
+ } else delete props[key];
6257
+ }
5962
6258
  if (attrs !== rawCurrentProps) {
5963
6259
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
5964
6260
  delete attrs[key];
@@ -5978,9 +6274,10 @@ function setFullProps(instance, rawProps, props, attrs) {
5978
6274
  if (key === "inline-template") continue;
5979
6275
  const value = rawProps[key];
5980
6276
  let camelKey;
5981
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
5982
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
5983
- else if (!isEmitListener(instance.emitsOptions, key)) {
6277
+ if (options && hasOwn(options, camelKey = camelize(key))) {
6278
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6279
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6280
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
5984
6281
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
5985
6282
  else if (shouldSkipAttr(key, instance)) continue;
5986
6283
  if (!(key in attrs) || value !== attrs[key]) {
@@ -6029,7 +6326,7 @@ function baseResolveDefault(factory, instance, key) {
6029
6326
  const prev = setCurrentInstance(instance);
6030
6327
  const props = /* @__PURE__ */ toRaw(instance.props);
6031
6328
  value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
6032
- setCurrentInstance(...prev);
6329
+ restoreCurrentInstance(prev);
6033
6330
  return value;
6034
6331
  }
6035
6332
  const mixinPropsCache = /* @__PURE__ */ new WeakMap();
@@ -6144,9 +6441,10 @@ const updateSlots = (instance, children, optimized) => {
6144
6441
  let deletionComparisonTarget = EMPTY_OBJ;
6145
6442
  if (vnode.shapeFlag & 32) {
6146
6443
  const type = children._;
6147
- if (type) if (optimized && type === 1) needDeletionCheck = false;
6148
- else assignSlots(slots, children, optimized);
6149
- else {
6444
+ if (type) {
6445
+ if (optimized && type === 1) needDeletionCheck = false;
6446
+ else assignSlots(slots, children, optimized);
6447
+ } else {
6150
6448
  needDeletionCheck = !children.$stable;
6151
6449
  normalizeObjectSlots(children, slots, instance);
6152
6450
  }
@@ -6206,6 +6504,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6206
6504
  optimized = false;
6207
6505
  n2.dynamicChildren = null;
6208
6506
  }
6507
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
6508
+ if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
6509
+ n2.dynamicChildren.hasOnce = true;
6510
+ }
6209
6511
  const { type, ref, shapeFlag } = n2;
6210
6512
  switch (type) {
6211
6513
  case Text:
@@ -6221,7 +6523,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6221
6523
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6222
6524
  break;
6223
6525
  case VaporSlot:
6224
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
6526
+ getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
6225
6527
  break;
6226
6528
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6227
6529
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -6317,7 +6619,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6317
6619
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
6318
6620
  };
6319
6621
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
6320
- 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);
6622
+ for (let i = start; i < children.length; i++) {
6623
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
6624
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6625
+ }
6321
6626
  };
6322
6627
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6323
6628
  const el = n2.el = n1.el;
@@ -6328,8 +6633,14 @@ function baseCreateRenderer(options, createHydrationFns) {
6328
6633
  let vnodeHook;
6329
6634
  parentComponent && toggleRecurse(parentComponent, false);
6330
6635
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6636
+ if (n2.ibu) n2.ibu();
6331
6637
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6332
6638
  parentComponent && toggleRecurse(parentComponent, true);
6639
+ if (dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
6640
+ patchFlag = 0;
6641
+ optimized = false;
6642
+ dynamicChildren = null;
6643
+ }
6333
6644
  if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) hostSetElementText(el, "");
6334
6645
  if (dynamicChildren) patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds);
6335
6646
  else if (!optimized) patchChildren(n1, n2, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds, false);
@@ -6354,8 +6665,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6354
6665
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
6355
6666
  }
6356
6667
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
6357
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
6668
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
6358
6669
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6670
+ n2.iu && n2.iu();
6359
6671
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6360
6672
  }, void 0, parentSuspense);
6361
6673
  };
@@ -6363,7 +6675,8 @@ function baseCreateRenderer(options, createHydrationFns) {
6363
6675
  for (let i = 0; i < newChildren.length; i++) {
6364
6676
  const oldVNode = oldChildren[i];
6365
6677
  const newVNode = newChildren[i];
6366
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6678
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
6679
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6367
6680
  }
6368
6681
  };
6369
6682
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -6396,25 +6709,15 @@ function baseCreateRenderer(options, createHydrationFns) {
6396
6709
  };
6397
6710
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6398
6711
  n2.slotScopeIds = slotScopeIds;
6399
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
6400
- else {
6401
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
6402
- if (n2.dirs) {
6403
- invokeDirectiveHook(n2, null, parentComponent, "created");
6404
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
6405
- }
6406
- });
6407
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
6408
- }
6409
- else {
6410
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized), () => {
6411
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6412
- });
6413
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, n1, parentComponent, "updated"), void 0, parentSuspense);
6414
- }
6415
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6416
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6417
- else updateComponent(n1, n2, optimized);
6712
+ if (n2.type.__vapor) {
6713
+ if (n1 == null) {
6714
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
6715
+ else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
6716
+ } else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
6717
+ } else if (n1 == null) {
6718
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6719
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6720
+ } else updateComponent(n1, n2, optimized);
6418
6721
  };
6419
6722
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
6420
6723
  const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
@@ -6446,14 +6749,16 @@ function baseCreateRenderer(options, createHydrationFns) {
6446
6749
  };
6447
6750
  const updateComponent = (n1, n2, optimized) => {
6448
6751
  const instance = n2.component = n1.component;
6449
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
6450
- updateComponentPreRender(instance, n2, optimized);
6451
- return;
6752
+ if (shouldUpdateComponent(n1, n2, optimized)) {
6753
+ if (instance.asyncDep && !instance.asyncResolved) {
6754
+ n2.el = n1.el;
6755
+ updateComponentPreRender(instance, n2, optimized);
6756
+ return;
6757
+ } else {
6758
+ instance.next = n2;
6759
+ instance.effect.run();
6760
+ }
6452
6761
  } else {
6453
- instance.next = n2;
6454
- instance.effect.run();
6455
- }
6456
- else {
6457
6762
  n2.el = n1.el;
6458
6763
  instance.vnode = n2;
6459
6764
  }
@@ -6544,6 +6849,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6544
6849
  } else next = vnode;
6545
6850
  if (bu) invokeArrayFns(bu);
6546
6851
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
6852
+ if (next.ibu) next.ibu();
6547
6853
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
6548
6854
  toggleRecurse(instance, true);
6549
6855
  const nextTree = renderComponentRoot(instance);
@@ -6553,7 +6859,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6553
6859
  next.el = nextTree.el;
6554
6860
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
6555
6861
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
6556
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
6862
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
6863
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
6864
+ next.iu && next.iu();
6865
+ }, void 0, parentSuspense);
6557
6866
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
6558
6867
  }
6559
6868
  }
@@ -6592,9 +6901,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6592
6901
  if (shapeFlag & 8) {
6593
6902
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
6594
6903
  if (c2 !== c1) hostSetElementText(container, c2);
6595
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6596
- else unmountChildren(c1, parentComponent, parentSuspense, true);
6597
- else {
6904
+ } else if (prevShapeFlag & 16) {
6905
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6906
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
6907
+ } else {
6598
6908
  if (prevShapeFlag & 8) hostSetElementText(container, "");
6599
6909
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6600
6910
  }
@@ -6690,15 +7000,17 @@ function baseCreateRenderer(options, createHydrationFns) {
6690
7000
  const anchorVNode = c2[nextIndex + 1];
6691
7001
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
6692
7002
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6693
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
6694
- else j--;
7003
+ else if (moved) {
7004
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
7005
+ else j--;
7006
+ }
6695
7007
  }
6696
7008
  }
6697
7009
  };
6698
7010
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
6699
7011
  const { el, type, transition, children, shapeFlag } = vnode;
6700
7012
  if (isVaporComponent(type) || type === VaporSlot) {
6701
- getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
7013
+ getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
6702
7014
  return;
6703
7015
  }
6704
7016
  if (shapeFlag & 6) {
@@ -6723,49 +7035,37 @@ function baseCreateRenderer(options, createHydrationFns) {
6723
7035
  moveStaticNode(vnode, container, anchor);
6724
7036
  return;
6725
7037
  }
6726
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
6727
- else {
6728
- const { leave, delayLeave, afterLeave } = transition;
6729
- const remove = () => {
7038
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
7039
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
7040
+ else performTransitionLeave(el, transition, () => {
6730
7041
  if (vnode.ctx.isUnmounted) hostRemove(el);
6731
7042
  else hostInsert(el, container, anchor);
6732
- };
6733
- const performLeave = () => {
6734
- if (el._isLeaving) el[leaveCbKey](true);
6735
- leave(el, () => {
6736
- remove();
6737
- afterLeave && afterLeave();
6738
- });
6739
- };
6740
- if (delayLeave) delayLeave(el, remove, performLeave);
6741
- else performLeave();
6742
- }
6743
- else hostInsert(el, container, anchor);
7043
+ }, true, true);
7044
+ } else hostInsert(el, container, anchor);
6744
7045
  };
6745
7046
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
6746
7047
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
6747
- if (patchFlag === -2) optimized = false;
7048
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
6748
7049
  if (ref != null) {
6749
7050
  const prevSub = setActiveSub();
6750
7051
  setRef(ref, null, parentSuspense, vnode, true);
6751
7052
  setActiveSub(prevSub);
6752
7053
  }
6753
- if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
7054
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
6754
7055
  if (shapeFlag & 256) {
6755
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
7056
+ if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
6756
7057
  else parentComponent.ctx.deactivate(vnode);
6757
7058
  return;
6758
7059
  }
7060
+ if (shapeFlag & 6 && isVaporComponent(type)) {
7061
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7062
+ return;
7063
+ }
6759
7064
  const shouldInvokeDirs = shapeFlag & 1 && dirs;
6760
7065
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
6761
7066
  let vnodeHook;
6762
7067
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
6763
- if (shapeFlag & 6) if (isVaporComponent(type)) {
6764
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
6765
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
6766
- if (dirs) queuePostRenderEffect(() => invokeDirectiveHook(vnode, null, parentComponent, "unmounted"), void 0, parentSuspense);
6767
- return;
6768
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
7068
+ if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
6769
7069
  else {
6770
7070
  if (shapeFlag & 128) {
6771
7071
  vnode.suspense.unmount(parentSuspense, doRemove);
@@ -6776,7 +7076,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6776
7076
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
6777
7077
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
6778
7078
  if (type === VaporSlot) {
6779
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
7079
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
6780
7080
  return;
6781
7081
  }
6782
7082
  if (doRemove) remove(vnode);
@@ -6796,6 +7096,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6796
7096
  }
6797
7097
  if (type === Static) {
6798
7098
  removeStaticNode(vnode);
7099
+ if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
6799
7100
  return;
6800
7101
  }
6801
7102
  if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
@@ -6820,6 +7121,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6820
7121
  if (effect) {
6821
7122
  effect.stop();
6822
7123
  unmount(subTree, instance, parentSuspense, doRemove);
7124
+ } else if (instance.vnode.el && subTree) {
7125
+ subTree.transition = instance.vnode.transition;
7126
+ unmount(subTree, instance, parentSuspense, doRemove);
6823
7127
  }
6824
7128
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
6825
7129
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
@@ -6889,12 +7193,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
6889
7193
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
6890
7194
  }
6891
7195
  function toggleRecurse({ effect, job, vapor }, allowed) {
6892
- if (!vapor) if (allowed) {
6893
- effect.flags |= 128;
6894
- job.flags |= 2;
6895
- } else {
6896
- effect.flags &= -129;
6897
- job.flags &= -3;
7196
+ if (!vapor) {
7197
+ if (allowed) {
7198
+ effect.flags |= 128;
7199
+ job.flags |= 2;
7200
+ } else {
7201
+ effect.flags &= -129;
7202
+ job.flags &= -3;
7203
+ }
6898
7204
  }
6899
7205
  }
6900
7206
  function needTransition(parentSuspense, transition) {
@@ -6933,13 +7239,19 @@ function traverseStaticChildren(n1, n2, shallow = false) {
6933
7239
  }
6934
7240
  function locateNonHydratedAsyncRoot(instance) {
6935
7241
  const subComponent = instance.subTree && instance.subTree.component;
6936
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
6937
- else return locateNonHydratedAsyncRoot(subComponent);
7242
+ if (subComponent) {
7243
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7244
+ else return locateNonHydratedAsyncRoot(subComponent);
7245
+ }
6938
7246
  }
6939
7247
  function invalidateMount(hooks) {
6940
7248
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
6941
7249
  }
6942
7250
  function performTransitionEnter(el, transition, insert, parentSuspense, force = false) {
7251
+ if (force && transition.persisted && !el[leaveCbKey]) {
7252
+ insert();
7253
+ return;
7254
+ }
6943
7255
  if (force || needTransition(parentSuspense, transition)) {
6944
7256
  transition.beforeEnter(el);
6945
7257
  insert();
@@ -6949,13 +7261,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
6949
7261
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
6950
7262
  const performRemove = () => {
6951
7263
  remove();
6952
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
7264
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
6953
7265
  };
6954
7266
  if (force || isElement && transition && !transition.persisted) {
6955
7267
  const { leave, delayLeave } = transition;
6956
7268
  const performLeave = () => {
7269
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
6957
7270
  if (el._isLeaving && force) el[leaveCbKey](true);
6958
- leave(el, performRemove);
7271
+ if (force && transition.persisted && !wasLeaving) remove();
7272
+ else leave(el, performRemove);
6959
7273
  };
6960
7274
  if (delayLeave) delayLeave(el, performRemove, performLeave);
6961
7275
  else performLeave();
@@ -6971,7 +7285,7 @@ function isVaporComponent(type) {
6971
7285
  /**
6972
7286
  * shared between vdom and vapor
6973
7287
  */
6974
- function getInheritedScopeIds(vnode, parentComponent) {
7288
+ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
6975
7289
  const inheritedScopeIds = [];
6976
7290
  let currentParent = parentComponent;
6977
7291
  let currentVNode = vnode;
@@ -6986,6 +7300,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
6986
7300
  currentParent = currentParent.parent;
6987
7301
  } else break;
6988
7302
  }
7303
+ const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
7304
+ if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
6989
7305
  return inheritedScopeIds;
6990
7306
  }
6991
7307
  function resolveAsyncComponentPlaceholder(anchorVnode) {
@@ -7004,7 +7320,7 @@ const Suspense = {
7004
7320
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
7005
7321
  if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
7006
7322
  else {
7007
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
7323
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
7008
7324
  n2.suspense = n1.suspense;
7009
7325
  n2.suspense.vnode = n2;
7010
7326
  n2.el = n1.el;
@@ -7042,10 +7358,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7042
7358
  if (pendingBranch) {
7043
7359
  suspense.pendingBranch = newBranch;
7044
7360
  if (isSameVNodeType(pendingBranch, newBranch)) {
7045
- patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7361
+ suspense.deps++;
7362
+ patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7363
+ suspense.deps--;
7046
7364
  if (suspense.deps <= 0) suspense.resolve();
7047
7365
  else if (isInFallback) {
7048
- if (!isHydrating) {
7366
+ if (!isHydrating && !suspense.isFallbackMountPending) {
7049
7367
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7050
7368
  setActiveBranch(suspense, newFallback);
7051
7369
  }
@@ -7057,12 +7375,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7057
7375
  suspense.activeBranch = pendingBranch;
7058
7376
  } else unmount(pendingBranch, parentComponent, suspense);
7059
7377
  suspense.deps = 0;
7378
+ for (let i = 0; i < suspense.effects.length; i++) {
7379
+ const effect = suspense.effects[i];
7380
+ if (effect.flags & 8) queuePostFlushCb(effect);
7381
+ }
7060
7382
  suspense.effects.length = 0;
7061
7383
  suspense.hiddenContainer = createElement("div");
7062
7384
  if (isInFallback) {
7063
7385
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7064
7386
  if (suspense.deps <= 0) suspense.resolve();
7065
- else {
7387
+ else if (!suspense.isFallbackMountPending) {
7066
7388
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7067
7389
  setActiveBranch(suspense, newFallback);
7068
7390
  }
@@ -7129,15 +7451,19 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7129
7451
  if (suspense.isHydrating) suspense.isHydrating = false;
7130
7452
  else if (!resume) {
7131
7453
  delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
7454
+ let hasUpdatedAnchor = false;
7132
7455
  if (delayEnter) activeBranch.transition.afterLeave = () => {
7133
7456
  if (pendingId === suspense.pendingId) {
7134
- move(pendingBranch, container, anchor === initialAnchor ? next(activeBranch) : anchor, 0, parentComponent);
7457
+ move(pendingBranch, container, anchor === initialAnchor && !hasUpdatedAnchor ? next(activeBranch) : anchor, 0, parentComponent);
7135
7458
  queuePostFlushCb(effects);
7136
7459
  if (isInFallback && vnode.ssFallback) vnode.ssFallback.el = null;
7137
7460
  }
7138
7461
  };
7139
7462
  if (activeBranch && !suspense.isFallbackMountPending) {
7140
- if (parentNode(activeBranch.el) === container) anchor = next(activeBranch);
7463
+ if (parentNode(activeBranch.el) === container) {
7464
+ anchor = next(activeBranch);
7465
+ hasUpdatedAnchor = true;
7466
+ }
7141
7467
  unmount(activeBranch, parentComponent, suspense, true);
7142
7468
  if (!delayEnter && isInFallback && vnode.ssFallback) queuePostRenderEffect(() => vnode.ssFallback.el = null, void 0, suspense);
7143
7469
  }
@@ -7151,7 +7477,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7151
7477
  let hasUnresolvedAncestor = false;
7152
7478
  while (parent) {
7153
7479
  if (parent.pendingBranch) {
7154
- parent.effects.push(...effects);
7480
+ for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
7155
7481
  hasUnresolvedAncestor = true;
7156
7482
  break;
7157
7483
  }
@@ -7161,6 +7487,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7161
7487
  suspense.effects = [];
7162
7488
  if (isSuspensible) {
7163
7489
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
7490
+ parentSuspenseId = void 0;
7164
7491
  parentSuspense.deps--;
7165
7492
  if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
7166
7493
  }
@@ -7175,8 +7502,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7175
7502
  const mountFallback = () => {
7176
7503
  suspense.isFallbackMountPending = false;
7177
7504
  if (!suspense.isInFallback) return;
7178
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7179
- setActiveBranch(suspense, fallbackVNode);
7505
+ const latestFallback = suspense.vnode.ssFallback;
7506
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7507
+ setActiveBranch(suspense, latestFallback);
7180
7508
  };
7181
7509
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
7182
7510
  if (delayEnter) {
@@ -7197,10 +7525,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7197
7525
  registerDep(instance, onResolve) {
7198
7526
  const isInPendingSuspense = !!suspense.pendingBranch;
7199
7527
  if (isInPendingSuspense) suspense.deps++;
7528
+ const hydratedEl = instance.vnode && instance.vnode.el;
7200
7529
  instance.asyncDep.catch((err) => {
7201
7530
  handleError(err, instance, 0);
7202
7531
  }).then((asyncSetupResult) => {
7203
7532
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
7533
+ setCurrentInstance(null, void 0);
7534
+ if (hydratedEl && !instance.scope.active) {
7535
+ if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
7536
+ return;
7537
+ }
7204
7538
  instance.asyncResolved = true;
7205
7539
  onResolve(asyncSetupResult);
7206
7540
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
@@ -7247,9 +7581,10 @@ function normalizeSuspenseSlot(s) {
7247
7581
  return s;
7248
7582
  }
7249
7583
  function queueEffectWithSuspense(fn, id, suspense) {
7250
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
7251
- else suspense.effects.push(fn);
7252
- else queuePostFlushCb(fn, id);
7584
+ if (suspense && suspense.pendingBranch) {
7585
+ if (isArray(fn)) suspense.effects.push(...fn);
7586
+ else suspense.effects.push(fn);
7587
+ } else queuePostFlushCb(fn, id);
7253
7588
  }
7254
7589
  function setActiveBranch(suspense, branch) {
7255
7590
  suspense.activeBranch = branch;
@@ -7452,8 +7787,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
7452
7787
  if (isVNode(type)) {
7453
7788
  const cloned = cloneVNode(type, props, true);
7454
7789
  if (children) normalizeChildren(cloned, children);
7455
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7456
- else currentBlock.push(cloned);
7790
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
7791
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7792
+ else currentBlock.push(cloned);
7793
+ }
7457
7794
  cloned.patchFlag = -2;
7458
7795
  return cloned;
7459
7796
  }
@@ -7507,12 +7844,32 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7507
7844
  el: vnode.el,
7508
7845
  anchor: vnode.anchor,
7509
7846
  ctx: vnode.ctx,
7510
- ce: vnode.ce
7847
+ ce: vnode.ce,
7848
+ vi: vnode.vi,
7849
+ vs: cloneVaporSlotMeta(vnode),
7850
+ vb: vnode.vb,
7851
+ ibu: vnode.ibu,
7852
+ iu: vnode.iu,
7853
+ cacheIndex: vnode.cacheIndex
7511
7854
  };
7512
7855
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
7513
7856
  defineLegacyVNodeProperties(cloned);
7514
7857
  return cloned;
7515
7858
  }
7859
+ function cloneVaporSlotMeta(vnode) {
7860
+ const vaporSlot = vnode.vs;
7861
+ if (!vaporSlot) return vaporSlot;
7862
+ const cloned = {
7863
+ slot: vaporSlot.slot,
7864
+ outlets: vaporSlot.outlets
7865
+ };
7866
+ if (vnode.el) {
7867
+ cloned.state = vaporSlot.state;
7868
+ cloned.ref = vaporSlot.ref;
7869
+ cloned.scope = vaporSlot.scope;
7870
+ }
7871
+ return cloned;
7872
+ }
7516
7873
  /**
7517
7874
  * @private
7518
7875
  */
@@ -7547,25 +7904,32 @@ function normalizeChildren(vnode, children) {
7547
7904
  const { shapeFlag } = vnode;
7548
7905
  if (children == null) children = null;
7549
7906
  else if (isArray(children)) type = 16;
7550
- else if (typeof children === "object") if (shapeFlag & 65) {
7551
- const slot = children.default;
7552
- if (slot) {
7553
- slot._c && (slot._d = false);
7554
- normalizeChildren(vnode, slot());
7555
- slot._c && (slot._d = true);
7907
+ else if (typeof children === "object") {
7908
+ if (shapeFlag & 65) {
7909
+ const slot = children.default;
7910
+ if (slot) {
7911
+ slot._c && (slot._d = false);
7912
+ normalizeChildren(vnode, slot());
7913
+ slot._c && (slot._d = true);
7914
+ }
7915
+ return;
7916
+ } else {
7917
+ type = 32;
7918
+ const slotFlag = children._;
7919
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
7920
+ else if (slotFlag === 3 && currentRenderingInstance) {
7921
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
7922
+ else {
7923
+ children._ = 2;
7924
+ vnode.patchFlag |= 1024;
7925
+ }
7926
+ }
7556
7927
  }
7557
- return;
7558
- } else {
7559
- type = 32;
7560
- const slotFlag = children._;
7561
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
7562
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
7563
- else {
7564
- children._ = 2;
7565
- vnode.patchFlag |= 1024;
7928
+ } else if (isFunction(children)) {
7929
+ if (shapeFlag & 65) {
7930
+ normalizeChildren(vnode, { default: children });
7931
+ return;
7566
7932
  }
7567
- }
7568
- else if (isFunction(children)) {
7569
7933
  children = {
7570
7934
  default: children,
7571
7935
  _ctx: currentRenderingInstance
@@ -7638,6 +8002,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
7638
8002
  simpleSetCurrentInstance(instance);
7639
8003
  }
7640
8004
  };
8005
+ /**
8006
+ * Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
8007
+ * `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
8008
+ * verbatim instead of re-triggering the `instance.scope` default.
8009
+ * @internal
8010
+ */
8011
+ const restoreCurrentInstance = (prev) => {
8012
+ setCurrentScope(prev[1]);
8013
+ simpleSetCurrentInstance(prev[0]);
8014
+ };
7641
8015
  const internalOptions = [
7642
8016
  "ce",
7643
8017
  "type",
@@ -7663,7 +8037,7 @@ const useInstanceOption = (key, silent = false) => {
7663
8037
  };
7664
8038
  //#endregion
7665
8039
  //#region packages/runtime-core/src/component.ts
7666
- const emptyAppContext = /* @__PURE__ */ createAppContext();
8040
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
7667
8041
  let uid = 0;
7668
8042
  function createComponentInstance(vnode, parent, suspense) {
7669
8043
  const type = vnode.type;
@@ -7766,7 +8140,7 @@ function setupStatefulComponent(instance, isSSR) {
7766
8140
  const setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
7767
8141
  const isAsyncSetup = isPromise(setupResult);
7768
8142
  setActiveSub(prevSub);
7769
- setCurrentInstance(...prev);
8143
+ restoreCurrentInstance(prev);
7770
8144
  if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
7771
8145
  if (isAsyncSetup) {
7772
8146
  const unsetCurrentInstance = () => {
@@ -7774,7 +8148,12 @@ function setupStatefulComponent(instance, isSSR) {
7774
8148
  };
7775
8149
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
7776
8150
  if (isSSR) return setupResult.then((resolvedResult) => {
7777
- handleSetupResult(instance, resolvedResult, isSSR);
8151
+ setInSSRSetupState(true);
8152
+ try {
8153
+ handleSetupResult(instance, resolvedResult, isSSR);
8154
+ } finally {
8155
+ setInSSRSetupState(false);
8156
+ }
7778
8157
  }).catch((e) => {
7779
8158
  handleError(e, instance, 0);
7780
8159
  });
@@ -7783,9 +8162,10 @@ function setupStatefulComponent(instance, isSSR) {
7783
8162
  } else finishComponentSetup(instance, isSSR);
7784
8163
  }
7785
8164
  function handleSetupResult(instance, setupResult, isSSR) {
7786
- if (isFunction(setupResult)) if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
7787
- else instance.render = setupResult;
7788
- else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
8165
+ if (isFunction(setupResult)) {
8166
+ if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
8167
+ else instance.render = setupResult;
8168
+ } else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
7789
8169
  finishComponentSetup(instance, isSSR);
7790
8170
  }
7791
8171
  let compile$1;
@@ -7829,7 +8209,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
7829
8209
  applyOptions(instance);
7830
8210
  } finally {
7831
8211
  setActiveSub(prevSub);
7832
- setCurrentInstance(...prevInstance);
8212
+ restoreCurrentInstance(prevInstance);
7833
8213
  }
7834
8214
  }
7835
8215
  }
@@ -7855,14 +8235,13 @@ function getComponentPublicInstance(instance) {
7855
8235
  if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
7856
8236
  get(target, key) {
7857
8237
  if (key in target) return target[key];
7858
- else {
8238
+ else if (!instance.vapor) {
7859
8239
  const publicPropertiesMap = getPublicPropertiesMap();
7860
8240
  if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
7861
8241
  }
7862
8242
  },
7863
8243
  has(target, key) {
7864
- const publicPropertiesMap = getPublicPropertiesMap();
7865
- return key in target || key in publicPropertiesMap;
8244
+ return key in target || !instance.vapor && key in getPublicPropertiesMap();
7866
8245
  }
7867
8246
  }));
7868
8247
  else return instance.proxy;
@@ -7884,11 +8263,12 @@ function h(type, propsOrChildren, children) {
7884
8263
  try {
7885
8264
  setBlockTracking(-1);
7886
8265
  const l = arguments.length;
7887
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
7888
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
7889
- return createVNode(type, propsOrChildren);
7890
- } else return createVNode(type, null, propsOrChildren);
7891
- else {
8266
+ if (l === 2) {
8267
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8268
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8269
+ return createVNode(type, propsOrChildren);
8270
+ } else return createVNode(type, null, propsOrChildren);
8271
+ } else {
7892
8272
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
7893
8273
  else if (l === 3 && isVNode(children)) children = [children];
7894
8274
  return createVNode(type, propsOrChildren, children);
@@ -7899,15 +8279,7 @@ function h(type, propsOrChildren, children) {
7899
8279
  }
7900
8280
  //#endregion
7901
8281
  //#region packages/runtime-core/src/customFormatter.ts
7902
- function initCustomFormatter() {
7903
- return;
7904
- function isKeyOfType(Comp, key, type) {
7905
- const opts = Comp[type];
7906
- if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) return true;
7907
- if (Comp.extends && isKeyOfType(Comp.extends, key, type)) return true;
7908
- if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) return true;
7909
- }
7910
- }
8282
+ function initCustomFormatter() {}
7911
8283
  //#endregion
7912
8284
  //#region packages/runtime-core/src/helpers/withMemo.ts
7913
8285
  function withMemo(memo, render, cache, index) {
@@ -7927,7 +8299,7 @@ function isMemoSame(cached, memo) {
7927
8299
  }
7928
8300
  //#endregion
7929
8301
  //#region packages/runtime-core/src/index.ts
7930
- const version = "3.6.0-beta.9";
8302
+ const version = "3.6.0-rc.10";
7931
8303
  const warn = NOOP;
7932
8304
  /**
7933
8305
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -7949,7 +8321,10 @@ const ssrUtils = {
7949
8321
  getComponentPublicInstance,
7950
8322
  ensureValidVNode,
7951
8323
  pushWarningContext,
7952
- popWarningContext
8324
+ popWarningContext,
8325
+ VaporSlot,
8326
+ rawVaporSlotKey,
8327
+ invokeSlotFallback
7953
8328
  };
7954
8329
  /**
7955
8330
  * @internal only exposed in compat builds
@@ -7971,13 +8346,13 @@ const DeprecationTypes = DeprecationTypes$1;
7971
8346
  let policy = void 0;
7972
8347
  const tt = typeof window !== "undefined" && window.trustedTypes;
7973
8348
  if (tt) try {
7974
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
8349
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
7975
8350
  } catch (e) {}
7976
8351
  const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
7977
8352
  const svgNS = "http://www.w3.org/2000/svg";
7978
8353
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
7979
8354
  const doc = typeof document !== "undefined" ? document : null;
7980
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
8355
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
7981
8356
  const nodeOps = {
7982
8357
  insert: (child, parent, anchor) => {
7983
8358
  parent.insertBefore(child, anchor || null);
@@ -8051,7 +8426,7 @@ const DOMTransitionPropsValidators = {
8051
8426
  leaveActiveClass: String,
8052
8427
  leaveToClass: String
8053
8428
  };
8054
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8429
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8055
8430
  /**
8056
8431
  * Wrap logic that attaches extra properties to Transition in a function
8057
8432
  * so that it can be annotated as pure
@@ -8066,7 +8441,7 @@ const decorate$1 = (t) => {
8066
8441
  * DOM Transition is a higher-order-component based on the platform-agnostic
8067
8442
  * base Transition component, with DOM-specific logic.
8068
8443
  */
8069
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8444
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8070
8445
  /**
8071
8446
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
8072
8447
  * with custom HOCs.
@@ -8304,14 +8679,15 @@ const vShow = {
8304
8679
  },
8305
8680
  updated(el, { value, oldValue }, { transition }) {
8306
8681
  if (!value === !oldValue) return;
8307
- if (transition) if (value) {
8308
- transition.beforeEnter(el);
8309
- setDisplay(el, true);
8310
- transition.enter(el);
8311
- } else transition.leave(el, () => {
8312
- setDisplay(el, false);
8313
- });
8314
- else setDisplay(el, value);
8682
+ if (transition) {
8683
+ if (value) {
8684
+ transition.beforeEnter(el);
8685
+ setDisplay(el, true);
8686
+ transition.enter(el);
8687
+ } else transition.leave(el, () => {
8688
+ setDisplay(el, false);
8689
+ });
8690
+ } else setDisplay(el, value);
8315
8691
  },
8316
8692
  beforeUnmount(el, { value }) {
8317
8693
  setDisplay(el, value);
@@ -8342,15 +8718,20 @@ function patchStyle(el, prev, next) {
8342
8718
  const isCssString = isString(next);
8343
8719
  let hasControlledDisplay = false;
8344
8720
  if (next && !isCssString) {
8345
- if (prev) if (!isString(prev)) {
8346
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
8347
- } else for (const prevStyle of prev.split(";")) {
8348
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
8349
- if (next[key] == null) setStyle(style, key, "");
8721
+ if (prev) {
8722
+ if (!isString(prev)) {
8723
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
8724
+ } else for (const prevStyle of prev.split(";")) {
8725
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
8726
+ if (next[key] == null) setStyle(style, key, "");
8727
+ }
8350
8728
  }
8351
8729
  for (const key in next) {
8352
8730
  if (key === "display") hasControlledDisplay = true;
8353
- setStyle(style, key, next[key]);
8731
+ const value = next[key];
8732
+ if (value != null) {
8733
+ if (!shouldPreserveTextareaResizeStyle(el, key, !isString(prev) && prev ? prev[key] : void 0, value)) setStyle(style, key, value);
8734
+ } else setStyle(style, key, "");
8354
8735
  }
8355
8736
  } else if (isCssString) {
8356
8737
  if (prev !== next) {
@@ -8359,7 +8740,11 @@ function patchStyle(el, prev, next) {
8359
8740
  style.cssText = next;
8360
8741
  hasControlledDisplay = displayRE.test(next);
8361
8742
  }
8362
- } else if (prev) el.removeAttribute("style");
8743
+ } else if (prev) {
8744
+ const cssVarText = style[CSS_VAR_TEXT];
8745
+ if (cssVarText) style.cssText = cssVarText;
8746
+ else el.removeAttribute("style");
8747
+ }
8363
8748
  if (vShowOriginalDisplay in el) {
8364
8749
  el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
8365
8750
  if (el[vShowHidden]) style.display = "none";
@@ -8370,8 +8755,10 @@ function setStyle(style, name, rawVal) {
8370
8755
  if (isArray(rawVal)) rawVal.forEach((v) => setStyle(style, name, v));
8371
8756
  else {
8372
8757
  const val = rawVal == null ? "" : String(rawVal);
8373
- if (name.startsWith("--")) style.setProperty(name, val);
8374
- else {
8758
+ if (name.startsWith("--")) {
8759
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
8760
+ else style.setProperty(name, val);
8761
+ } else {
8375
8762
  const prefixed = autoPrefix(style, name);
8376
8763
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
8377
8764
  else style[prefixed] = val;
@@ -8396,19 +8783,28 @@ function autoPrefix(style, rawName) {
8396
8783
  }
8397
8784
  return rawName;
8398
8785
  }
8786
+ /**
8787
+ * Browsers update textarea width/height directly during native resize.
8788
+ * Only special-case this common textarea path for now; other resize scenarios
8789
+ * still follow normal vnode style patching.
8790
+ */
8791
+ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
8792
+ return el.tagName === "TEXTAREA" && (key === "width" || key === "height") && isString(next) && prev === next;
8793
+ }
8399
8794
  //#endregion
8400
8795
  //#region packages/runtime-dom/src/modules/attrs.ts
8401
8796
  const xlinkNS = "http://www.w3.org/1999/xlink";
8402
8797
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
8403
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
8404
- else el.setAttributeNS(xlinkNS, key, value);
8405
- else {
8798
+ if (isSVG && key.startsWith("xlink:")) {
8799
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
8800
+ else el.setAttributeNS(xlinkNS, key, value);
8801
+ } else {
8406
8802
  if (compatCoerceAttr(el, key, value, instance)) return;
8407
8803
  if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
8408
8804
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
8409
8805
  }
8410
8806
  }
8411
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck");
8807
+ const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
8412
8808
  function compatCoerceAttr(el, key, value, instance = null) {
8413
8809
  if (isEnumeratedAttr(key)) {
8414
8810
  const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
@@ -8476,7 +8872,7 @@ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
8476
8872
  const existingInvoker = invokers[rawName];
8477
8873
  if (nextValue && existingInvoker) existingInvoker.value = nextValue;
8478
8874
  else {
8479
- const [name, options] = parseName(rawName);
8875
+ const [name, options] = parseEventName(rawName);
8480
8876
  if (nextValue) addEventListener(el, name, invokers[rawName] = createInvoker(nextValue, instance), options);
8481
8877
  else if (existingInvoker) {
8482
8878
  removeEventListener(el, name, existingInvoker, options);
@@ -8484,42 +8880,45 @@ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
8484
8880
  }
8485
8881
  }
8486
8882
  }
8487
- const optionsModifierRE = /(?:Once|Passive|Capture)$/;
8488
- function parseName(name) {
8883
+ const optionsModifierRE = /(Once|Passive|Capture)$/;
8884
+ const optionsModifierEventRE = /^on:?(?:Once|Passive|Capture)$/;
8885
+ function parseEventName(name) {
8489
8886
  let options;
8490
- if (optionsModifierRE.test(name)) {
8491
- options = {};
8492
- let m;
8493
- while (m = name.match(optionsModifierRE)) {
8494
- name = name.slice(0, name.length - m[0].length);
8495
- options[m[0].toLowerCase()] = true;
8496
- }
8887
+ let m;
8888
+ while ((m = name.match(optionsModifierRE)) && !optionsModifierEventRE.test(name)) {
8889
+ if (!options) options = {};
8890
+ name = name.slice(0, name.length - m[1].length);
8891
+ options[m[1].toLowerCase()] = true;
8497
8892
  }
8498
8893
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
8499
8894
  }
8500
8895
  let cachedNow = 0;
8501
- const p = /* @__PURE__ */ Promise.resolve();
8896
+ const p = /*@__PURE__*/ Promise.resolve();
8502
8897
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
8503
8898
  function createInvoker(initialValue, instance) {
8504
8899
  const invoker = (e) => {
8505
8900
  if (!e._vts) e._vts = Date.now();
8506
8901
  else if (e._vts <= invoker.attached) return;
8507
- callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5, [e]);
8902
+ const value = invoker.value;
8903
+ if (isArray(value)) {
8904
+ const originalStop = e.stopImmediatePropagation;
8905
+ e.stopImmediatePropagation = () => {
8906
+ originalStop.call(e);
8907
+ e._stopped = true;
8908
+ };
8909
+ const handlers = value.slice();
8910
+ const args = [e];
8911
+ for (let i = 0; i < handlers.length; i++) {
8912
+ if (e._stopped) break;
8913
+ const handler = handlers[i];
8914
+ if (handler) callWithAsyncErrorHandling(handler, instance, 5, args);
8915
+ }
8916
+ } else callWithAsyncErrorHandling(value, instance, 5, [e]);
8508
8917
  };
8509
8918
  invoker.value = initialValue;
8510
8919
  invoker.attached = getNow();
8511
8920
  return invoker;
8512
8921
  }
8513
- function patchStopImmediatePropagation(e, value) {
8514
- if (isArray(value)) {
8515
- const originalStop = e.stopImmediatePropagation;
8516
- e.stopImmediatePropagation = () => {
8517
- originalStop.call(e);
8518
- e._stopped = true;
8519
- };
8520
- return value.map((fn) => (e) => !e._stopped && fn && fn(e));
8521
- } else return value;
8522
- }
8523
8922
  //#endregion
8524
8923
  //#region packages/runtime-dom/src/patchProp.ts
8525
8924
  const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
@@ -8557,7 +8956,7 @@ function shouldSetAsPropForVueCE(el, key) {
8557
8956
  //#endregion
8558
8957
  //#region packages/runtime-dom/src/apiCustomElement.ts
8559
8958
  const REMOVAL = {};
8560
- /* @__NO_SIDE_EFFECTS__ */
8959
+ /*@__NO_SIDE_EFFECTS__*/
8561
8960
  function defineCustomElement(options, extraOptions, _createApp) {
8562
8961
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
8563
8962
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -8606,12 +9005,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
8606
9005
  this._parent = parent;
8607
9006
  break;
8608
9007
  }
8609
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
8610
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
8611
- this._pendingResolve = void 0;
8612
- this._resolveDef();
8613
- });
8614
- else this._resolveDef();
9008
+ if (!this._instance) {
9009
+ if (this._resolved) this._mountComponent(this._def);
9010
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
9011
+ this._pendingResolve = void 0;
9012
+ if (this.isConnected) return this._resolveDef();
9013
+ });
9014
+ else this._resolveDef();
9015
+ }
8615
9016
  }
8616
9017
  disconnectedCallback() {
8617
9018
  this._connected = false;
@@ -8645,7 +9046,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
8645
9046
  * resolve inner component definition (handle possible async component)
8646
9047
  */
8647
9048
  _resolveDef() {
8648
- if (this._pendingResolve) return;
9049
+ if (this._pendingResolve) return this._pendingResolve;
8649
9050
  for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
8650
9051
  this._ob = new MutationObserver(this._processMutations.bind(this));
8651
9052
  this._ob.observe(this, { attributes: true });
@@ -8674,6 +9075,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
8674
9075
  this._def = def;
8675
9076
  resolve(def);
8676
9077
  });
9078
+ return this._pendingResolve;
8677
9079
  } else resolve(this._def);
8678
9080
  }
8679
9081
  _mountComponent(def) {
@@ -8803,13 +9205,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
8803
9205
  _renderSlots() {
8804
9206
  const outlets = this._getSlots();
8805
9207
  const scopeId = this._instance.type.__scopeId;
8806
- const slotReplacements = /* @__PURE__ */ new Map();
8807
9208
  for (let i = 0; i < outlets.length; i++) {
8808
9209
  const o = outlets[i];
8809
9210
  const slotName = o.getAttribute("name") || "default";
8810
9211
  const content = this._slots[slotName];
8811
9212
  const parent = o.parentNode;
8812
- const replacementNodes = [];
8813
9213
  if (content) for (const n of content) {
8814
9214
  if (scopeId && n.nodeType === 1) {
8815
9215
  const id = scopeId + "-s";
@@ -8819,17 +9219,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
8819
9219
  while (child = walker.nextNode()) child.setAttribute(id, "");
8820
9220
  }
8821
9221
  parent.insertBefore(n, o);
8822
- replacementNodes.push(n);
8823
- }
8824
- else while (o.firstChild) {
8825
- const child = o.firstChild;
8826
- parent.insertBefore(child, o);
8827
- replacementNodes.push(child);
8828
9222
  }
9223
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
8829
9224
  parent.removeChild(o);
8830
- slotReplacements.set(o, replacementNodes);
8831
9225
  }
8832
- this._updateSlotNodes(slotReplacements);
8833
9226
  }
8834
9227
  /**
8835
9228
  * @internal
@@ -8868,7 +9261,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
8868
9261
  * @internal
8869
9262
  */
8870
9263
  _hasShadowRoot() {
8871
- return this._def.shadowRoot !== false;
9264
+ return this._root !== this;
8872
9265
  }
8873
9266
  /**
8874
9267
  * @internal
@@ -8901,10 +9294,6 @@ var VueElement = class extends VueElementBase {
8901
9294
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
8902
9295
  this._app = this._instance = null;
8903
9296
  }
8904
- /**
8905
- * Only called when shadowRoot is false
8906
- */
8907
- _updateSlotNodes(replacements) {}
8908
9297
  _createVNode() {
8909
9298
  const baseProps = {};
8910
9299
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -8960,7 +9349,7 @@ const decorate = (t) => {
8960
9349
  };
8961
9350
  const TransitionGroup = /* @__PURE__ */ decorate({
8962
9351
  name: "TransitionGroup",
8963
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
9352
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
8964
9353
  tag: String,
8965
9354
  moveClass: String
8966
9355
  }),
@@ -8994,7 +9383,7 @@ const TransitionGroup = /* @__PURE__ */ decorate({
8994
9383
  prevChildren = [];
8995
9384
  if (children) for (let i = 0; i < children.length; i++) {
8996
9385
  const child = children[i];
8997
- if (child.el && child.el instanceof Element) {
9386
+ if (child.el && child.el instanceof Element && !child.el[vShowHidden]) {
8998
9387
  prevChildren.push(child);
8999
9388
  setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
9000
9389
  positionMap.set(child, getPosition(child.el));
@@ -9091,13 +9480,22 @@ function onCompositionEnd(e) {
9091
9480
  }
9092
9481
  }
9093
9482
  const assignKey = Symbol("_assign");
9483
+ const initialValueKey = Symbol("_initialValue");
9094
9484
  const vModelText = {
9095
9485
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
9486
+ if (el.parentNode) {
9487
+ if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
9488
+ else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
9489
+ }
9096
9490
  el[assignKey] = getModelAssigner(vnode);
9097
9491
  vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
9098
9492
  },
9099
- mounted(el, { value }) {
9100
- el.value = value == null ? "" : value;
9493
+ mounted(el, { value, modifiers: { trim, number } }) {
9494
+ const newValue = value == null ? "" : value;
9495
+ const initialValue = el[initialValueKey];
9496
+ delete el[initialValueKey];
9497
+ if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
9498
+ else el.value = newValue;
9101
9499
  },
9102
9500
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
9103
9501
  el[assignKey] = getModelAssigner(vnode);
@@ -9217,7 +9615,8 @@ const vModelSelect = {
9217
9615
  mounted(el, { value }) {
9218
9616
  vModelSetSelected(el, value);
9219
9617
  },
9220
- beforeUpdate(el, _binding, vnode) {
9618
+ beforeUpdate(el, { value }, vnode) {
9619
+ el._modelValue = value;
9221
9620
  el[assignKey] = getModelAssigner(vnode);
9222
9621
  },
9223
9622
  updated(el, { value }) {
@@ -9228,39 +9627,61 @@ const vModelSelect = {
9228
9627
  * @internal
9229
9628
  */
9230
9629
  const vModelSelectInit = (el, value, number, set) => {
9231
- const isSetModel = isSet(value);
9630
+ el._modelValue = value;
9232
9631
  addEventListener(el, "change", () => {
9233
9632
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
9234
- (set || el[assignKey])(el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]);
9235
- el._assigning = true;
9236
- nextTick(() => {
9237
- el._assigning = false;
9238
- });
9633
+ const multiple = el.multiple;
9634
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
9635
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
9636
+ try {
9637
+ (set || el[assignKey])(assignedValue);
9638
+ } finally {
9639
+ nextTick(() => {
9640
+ if (el._pendingValue === pending) el._pendingValue = void 0;
9641
+ });
9642
+ }
9239
9643
  });
9240
9644
  };
9645
+ function isSameSelectValue(value, assignedValue, multiple) {
9646
+ if (!multiple) return looseEqual(value, assignedValue);
9647
+ if (isArray(value)) return looseEqual(value, assignedValue);
9648
+ if (isSet(value)) {
9649
+ if (value.size !== assignedValue.length) return false;
9650
+ for (const item of assignedValue) if (!value.has(item)) return false;
9651
+ return true;
9652
+ }
9653
+ return false;
9654
+ }
9241
9655
  /**
9242
9656
  * @internal
9243
9657
  */
9244
9658
  const vModelSetSelected = (el, value) => {
9245
- if (el._assigning) return;
9659
+ el._modelValue = value;
9660
+ const pending = el._pendingValue;
9661
+ el._pendingValue = void 0;
9662
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
9663
+ setSelected(el, value);
9664
+ };
9665
+ function setSelected(el, value) {
9246
9666
  const isMultiple = el.multiple;
9247
9667
  const isArrayValue = isArray(value);
9248
9668
  if (isMultiple && !isArrayValue && !isSet(value)) return;
9249
9669
  for (let i = 0, l = el.options.length; i < l; i++) {
9250
9670
  const option = el.options[i];
9251
9671
  const optionValue = getValue(option);
9252
- if (isMultiple) if (isArrayValue) {
9253
- const optionType = typeof optionValue;
9254
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
9255
- else option.selected = looseIndexOf(value, optionValue) > -1;
9256
- } else option.selected = value.has(optionValue);
9257
- else if (looseEqual(getValue(option), value)) {
9672
+ if (isMultiple) {
9673
+ if (isArrayValue) {
9674
+ const optionType = typeof optionValue;
9675
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
9676
+ else option.selected = looseIndexOf(value, optionValue) > -1;
9677
+ } else option.selected = value.has(optionValue);
9678
+ } else if (looseEqual(getValue(option), value)) {
9258
9679
  if (el.selectedIndex !== i) el.selectedIndex = i;
9259
9680
  return;
9260
9681
  }
9261
9682
  }
9262
9683
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
9263
- };
9684
+ }
9264
9685
  /**
9265
9686
  * @internal retrieve raw value set via :value bindings
9266
9687
  */
@@ -9573,7 +9994,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
9573
9994
  withModifiers: () => withModifiers,
9574
9995
  withScopeId: () => withScopeId
9575
9996
  });
9576
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
9997
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
9577
9998
  let renderer;
9578
9999
  let enabledHydration = false;
9579
10000
  function ensureRenderer() {
@@ -9906,7 +10327,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
9906
10327
  //#endregion
9907
10328
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
9908
10329
  var _a;
9909
- const decodeMap = new Map([
10330
+ const decodeMap = /* @__PURE__ */ new Map([
9910
10331
  [0, 65533],
9911
10332
  [128, 8364],
9912
10333
  [130, 8218],
@@ -9974,7 +10395,7 @@ function decodeBase64(input) {
9974
10395
  }
9975
10396
  //#endregion
9976
10397
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
9977
- 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");
10398
+ const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/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");
9978
10399
  //#endregion
9979
10400
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
9980
10401
  /**
@@ -10368,7 +10789,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
10368
10789
  }
10369
10790
  return -1;
10370
10791
  }
10371
- const htmlDecoder = /* @__PURE__ */ getDecoder(htmlDecodeTree);
10792
+ const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
10372
10793
  /**
10373
10794
  * Decodes an HTML string.
10374
10795
  *
@@ -10560,13 +10981,14 @@ var Tokenizer = class {
10560
10981
  }
10561
10982
  }
10562
10983
  stateInterpolationOpen(c) {
10563
- if (c === this.delimiterOpen[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterOpen.length - 1) {
10564
- const start = this.index + 1 - this.delimiterOpen.length;
10565
- if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
10566
- this.state = 3;
10567
- this.sectionStart = start;
10568
- } else this.delimiterIndex++;
10569
- else if (this.inRCDATA) {
10984
+ if (c === this.delimiterOpen[this.delimiterIndex]) {
10985
+ if (this.delimiterIndex === this.delimiterOpen.length - 1) {
10986
+ const start = this.index + 1 - this.delimiterOpen.length;
10987
+ if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
10988
+ this.state = 3;
10989
+ this.sectionStart = start;
10990
+ } else this.delimiterIndex++;
10991
+ } else if (this.inRCDATA) {
10570
10992
  this.state = 32;
10571
10993
  this.stateInRCDATA(c);
10572
10994
  } else {
@@ -10582,13 +11004,14 @@ var Tokenizer = class {
10582
11004
  }
10583
11005
  }
10584
11006
  stateInterpolationClose(c) {
10585
- if (c === this.delimiterClose[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterClose.length - 1) {
10586
- this.cbs.oninterpolation(this.sectionStart, this.index + 1);
10587
- if (this.inRCDATA) this.state = 32;
10588
- else this.state = 1;
10589
- this.sectionStart = this.index + 1;
10590
- } else this.delimiterIndex++;
10591
- else {
11007
+ if (c === this.delimiterClose[this.delimiterIndex]) {
11008
+ if (this.delimiterIndex === this.delimiterClose.length - 1) {
11009
+ this.cbs.oninterpolation(this.sectionStart, this.index + 1);
11010
+ if (this.inRCDATA) this.state = 32;
11011
+ else this.state = 1;
11012
+ this.sectionStart = this.index + 1;
11013
+ } else this.delimiterIndex++;
11014
+ } else {
10592
11015
  this.state = 3;
10593
11016
  this.stateInterpolation(c);
10594
11017
  }
@@ -10704,9 +11127,10 @@ var Tokenizer = class {
10704
11127
  this.sectionStart = this.index;
10705
11128
  if (this.mode === 0) this.state = 6;
10706
11129
  else if (this.inSFCRoot) this.state = 34;
10707
- else if (!this.inXML) if (c === 116) this.state = 30;
10708
- else this.state = c === 115 ? 29 : 6;
10709
- else this.state = 6;
11130
+ else if (!this.inXML) {
11131
+ if (c === 116) this.state = 30;
11132
+ else this.state = c === 115 ? 29 : 6;
11133
+ } else this.state = 6;
10710
11134
  } else if (c === 47) this.state = 8;
10711
11135
  else {
10712
11136
  this.state = 1;
@@ -11073,9 +11497,7 @@ var Tokenizer = class {
11073
11497
  case 24:
11074
11498
  this.stateInProcessingInstruction(c);
11075
11499
  break;
11076
- case 33:
11077
- this.stateInEntity();
11078
- break;
11500
+ case 33: this.stateInEntity();
11079
11501
  }
11080
11502
  this.index++;
11081
11503
  }
@@ -11108,9 +11530,10 @@ var Tokenizer = class {
11108
11530
  handleTrailingData() {
11109
11531
  const endIndex = this.buffer.length;
11110
11532
  if (this.sectionStart >= endIndex) return;
11111
- if (this.state === 28) if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
11112
- else this.cbs.oncomment(this.sectionStart, endIndex);
11113
- 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);
11533
+ if (this.state === 28) {
11534
+ if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
11535
+ else this.cbs.oncomment(this.sectionStart, endIndex);
11536
+ } 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);
11114
11537
  }
11115
11538
  emitCodePoint(cp, consumed) {
11116
11539
  if (this.baseState !== 1 && this.baseState !== 32) {
@@ -11227,16 +11650,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
11227
11650
  const isRefed = isReferencedIdentifier(node, parent, parentStack);
11228
11651
  if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
11229
11652
  } else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
11230
- else if (isFunctionType(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11231
- else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
11232
- else if (node.type === "BlockStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11233
- else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
11234
- else if (node.type === "SwitchStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11235
- else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11236
- else if (node.type === "CatchClause" && node.param) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11237
- else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
11238
- else if (isForStatement(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11239
- else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11653
+ else if (isFunctionType(node)) {
11654
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11655
+ else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
11656
+ } else if (node.type === "BlockStatement") {
11657
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11658
+ else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
11659
+ } else if (node.type === "SwitchStatement") {
11660
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11661
+ else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11662
+ } else if (node.type === "CatchClause" && node.param) {
11663
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11664
+ else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
11665
+ } else if (isForStatement(node)) {
11666
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11667
+ else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11668
+ }
11240
11669
  },
11241
11670
  leave(node, parent) {
11242
11671
  parent && parentStack.pop();
@@ -11328,9 +11757,7 @@ function extractIdentifiers(param, nodes = []) {
11328
11757
  case "RestElement":
11329
11758
  extractIdentifiers(param.argument, nodes);
11330
11759
  break;
11331
- case "AssignmentPattern":
11332
- extractIdentifiers(param.left, nodes);
11333
- break;
11760
+ case "AssignmentPattern": extractIdentifiers(param.left, nodes);
11334
11761
  }
11335
11762
  return nodes;
11336
11763
  }
@@ -11522,7 +11949,7 @@ function isTemplateNode(node) {
11522
11949
  function isSlotOutlet(node) {
11523
11950
  return node.type === 1 && node.tagType === 2;
11524
11951
  }
11525
- const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
11952
+ const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
11526
11953
  function getUnnormalizedProps(props, callPath = []) {
11527
11954
  if (props && !isString(props) && props.type === 14) {
11528
11955
  const callee = props.callee;
@@ -11531,6 +11958,7 @@ function getUnnormalizedProps(props, callPath = []) {
11531
11958
  return [props, callPath];
11532
11959
  }
11533
11960
  function injectProp(node, prop, context) {
11961
+ if (node.type !== 13 && injectSlotKey(node, prop)) return;
11534
11962
  let propsWithInjection;
11535
11963
  /**
11536
11964
  * 1. mergeProps(...)
@@ -11564,11 +11992,26 @@ function injectProp(node, prop, context) {
11564
11992
  propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
11565
11993
  if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
11566
11994
  }
11567
- if (node.type === 13) if (parentCall) parentCall.arguments[0] = propsWithInjection;
11568
- else node.props = propsWithInjection;
11569
- else if (parentCall) parentCall.arguments[0] = propsWithInjection;
11995
+ if (node.type === 13) {
11996
+ if (parentCall) parentCall.arguments[0] = propsWithInjection;
11997
+ else node.props = propsWithInjection;
11998
+ } else if (parentCall) parentCall.arguments[0] = propsWithInjection;
11570
11999
  else node.arguments[2] = propsWithInjection;
11571
12000
  }
12001
+ function injectSlotKey(node, prop) {
12002
+ var _node$arguments, _node$arguments2, _node$arguments3;
12003
+ if (prop.key.type !== 4 || prop.key.content !== "key") return false;
12004
+ const props = node.arguments[2];
12005
+ if (props && !isString(props)) {
12006
+ const [unnormalizedProps] = getUnnormalizedProps(props);
12007
+ if (unnormalizedProps && !isString(unnormalizedProps) && unnormalizedProps.type === 15 && hasProp(prop, unnormalizedProps)) return true;
12008
+ }
12009
+ (_node$arguments = node.arguments)[2] || (_node$arguments[2] = "{}");
12010
+ (_node$arguments2 = node.arguments)[3] || (_node$arguments2[3] = "undefined");
12011
+ (_node$arguments3 = node.arguments)[4] || (_node$arguments3[4] = "undefined");
12012
+ node.arguments[5] = prop.value;
12013
+ return true;
12014
+ }
11572
12015
  function hasProp(prop, props) {
11573
12016
  let result = false;
11574
12017
  if (prop.key.type === 4) {
@@ -11792,26 +12235,28 @@ const tokenizer = new Tokenizer(stack, {
11792
12235
  onattribend(quote, end) {
11793
12236
  if (currentOpenTag && currentProp) {
11794
12237
  setLocEnd(currentProp.loc, end);
11795
- if (quote !== 0) if (currentProp.type === 6) {
11796
- if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
11797
- if (quote === 1 && !currentAttrValue) emitError(13, end);
11798
- currentProp.value = {
11799
- type: 2,
11800
- content: currentAttrValue,
11801
- loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
11802
- };
11803
- if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
11804
- } else {
11805
- let expParseMode = 0;
11806
- if (currentProp.name === "for") expParseMode = 3;
11807
- else if (currentProp.name === "slot") expParseMode = 1;
11808
- else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
11809
- currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
11810
- if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
11811
- let syncIndex = -1;
11812
- 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)) {
11813
- currentProp.name = "model";
11814
- currentProp.modifiers.splice(syncIndex, 1);
12238
+ if (quote !== 0) {
12239
+ if (currentProp.type === 6) {
12240
+ if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
12241
+ if (quote === 1 && !currentAttrValue) emitError(13, end);
12242
+ currentProp.value = {
12243
+ type: 2,
12244
+ content: currentAttrValue,
12245
+ loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
12246
+ };
12247
+ if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
12248
+ } else {
12249
+ let expParseMode = 0;
12250
+ if (currentProp.name === "for") expParseMode = 3;
12251
+ else if (currentProp.name === "slot") expParseMode = 1;
12252
+ else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
12253
+ currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
12254
+ if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
12255
+ let syncIndex = -1;
12256
+ 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)) {
12257
+ currentProp.name = "model";
12258
+ currentProp.modifiers.splice(syncIndex, 1);
12259
+ }
11815
12260
  }
11816
12261
  }
11817
12262
  if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
@@ -11854,10 +12299,7 @@ const tokenizer = new Tokenizer(stack, {
11854
12299
  case 18:
11855
12300
  case 19:
11856
12301
  case 20:
11857
- case 21:
11858
- emitError(9, end);
11859
- break;
11860
- default: break;
12302
+ case 21: emitError(9, end);
11861
12303
  }
11862
12304
  for (let index = 0; index < stack.length; index++) {
11863
12305
  onCloseTag(stack[index], end - 1);
@@ -11865,7 +12307,7 @@ const tokenizer = new Tokenizer(stack, {
11865
12307
  }
11866
12308
  },
11867
12309
  oncdata(start, end) {
11868
- if (stack[0].ns !== 0) onText(getSlice(start, end), start, end);
12310
+ if ((stack[0] ? stack[0].ns : currentOptions.ns) !== 0) onText(getSlice(start, end), start, end);
11869
12311
  else emitError(1, start - 9);
11870
12312
  },
11871
12313
  onprocessinginstruction(start) {
@@ -11987,7 +12429,7 @@ function backTrack(index, c) {
11987
12429
  while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
11988
12430
  return i;
11989
12431
  }
11990
- const specialTemplateDir = new Set([
12432
+ const specialTemplateDir = /* @__PURE__ */ new Set([
11991
12433
  "if",
11992
12434
  "else",
11993
12435
  "else-if",
@@ -12023,16 +12465,18 @@ function condenseWhitespace(nodes) {
12023
12465
  let removedWhitespace = false;
12024
12466
  for (let i = 0; i < nodes.length; i++) {
12025
12467
  const node = nodes[i];
12026
- if (node.type === 2) if (!inPre) {
12027
- if (isAllWhitespace(node.content)) {
12028
- const prev = nodes[i - 1] && nodes[i - 1].type;
12029
- const next = nodes[i + 1] && nodes[i + 1].type;
12030
- if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
12031
- removedWhitespace = true;
12032
- nodes[i] = null;
12033
- } else node.content = " ";
12034
- } else if (shouldCondense) node.content = condense(node.content);
12035
- } else node.content = node.content.replace(windowsNewlineRE, "\n");
12468
+ if (node.type === 2) {
12469
+ if (!inPre) {
12470
+ if (isAllWhitespace(node.content)) {
12471
+ const prev = nodes[i - 1] && nodes[i - 1].type;
12472
+ const next = nodes[i + 1] && nodes[i + 1].type;
12473
+ if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
12474
+ removedWhitespace = true;
12475
+ nodes[i] = null;
12476
+ } else node.content = " ";
12477
+ } else if (shouldCondense) node.content = condense(node.content);
12478
+ } else node.content = node.content.replace(windowsNewlineRE, "\n");
12479
+ }
12036
12480
  }
12037
12481
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
12038
12482
  }
@@ -12309,7 +12753,7 @@ function getConstantType(node, context) {
12309
12753
  default: return 0;
12310
12754
  }
12311
12755
  }
12312
- const allowHoistedHelperSet = new Set([
12756
+ const allowHoistedHelperSet = /* @__PURE__ */ new Set([
12313
12757
  NORMALIZE_CLASS,
12314
12758
  NORMALIZE_STYLE,
12315
12759
  NORMALIZE_PROPS,
@@ -12386,8 +12830,10 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
12386
12830
  imports: [],
12387
12831
  cached: [],
12388
12832
  constantCache: /* @__PURE__ */ new WeakMap(),
12833
+ vForMemoKeyedNodes: /* @__PURE__ */ new WeakSet(),
12389
12834
  temps: 0,
12390
12835
  identifiers: Object.create(null),
12836
+ identifierScopes: Object.create(null),
12391
12837
  scopes: {
12392
12838
  vFor: 0,
12393
12839
  vSlot: 0,
@@ -12432,16 +12878,20 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
12432
12878
  context.parent.children.splice(removalIndex, 1);
12433
12879
  },
12434
12880
  onNodeRemoved: NOOP,
12435
- addIdentifiers(exp) {
12436
- if (isString(exp)) addId(exp);
12437
- else if (exp.identifiers) exp.identifiers.forEach(addId);
12438
- else if (exp.type === 4) addId(exp.content);
12881
+ addIdentifiers(exp, type = "local") {
12882
+ if (isString(exp)) addId(exp, type);
12883
+ else if (exp.identifiers) exp.identifiers.forEach((id) => addId(id, type));
12884
+ else if (exp.type === 4) addId(exp.content, type);
12439
12885
  },
12440
12886
  removeIdentifiers(exp) {
12441
12887
  if (isString(exp)) removeId(exp);
12442
12888
  else if (exp.identifiers) exp.identifiers.forEach(removeId);
12443
12889
  else if (exp.type === 4) removeId(exp.content);
12444
12890
  },
12891
+ isSlotScopeIdentifier(name) {
12892
+ const scopes = context.identifierScopes[name];
12893
+ return scopes ? scopes[scopes.length - 1] === "slot" : false;
12894
+ },
12445
12895
  hoist(exp) {
12446
12896
  if (isString(exp)) exp = createSimpleExpression(exp);
12447
12897
  context.hoists.push(exp);
@@ -12456,13 +12906,16 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
12456
12906
  }
12457
12907
  };
12458
12908
  context.filters = /* @__PURE__ */ new Set();
12459
- function addId(id) {
12460
- const { identifiers } = context;
12909
+ function addId(id, type) {
12910
+ const { identifiers, identifierScopes } = context;
12461
12911
  if (identifiers[id] === void 0) identifiers[id] = 0;
12462
12912
  identifiers[id]++;
12913
+ (identifierScopes[id] || (identifierScopes[id] = [])).push(type);
12463
12914
  }
12464
12915
  function removeId(id) {
12465
12916
  context.identifiers[id]--;
12917
+ const scopes = context.identifierScopes[id];
12918
+ if (scopes) scopes.pop();
12466
12919
  }
12467
12920
  return context;
12468
12921
  }
@@ -12471,7 +12924,7 @@ function transform(root, options) {
12471
12924
  traverseNode(root, context);
12472
12925
  if (options.hoistStatic) cacheStatic(root, context);
12473
12926
  if (!options.ssr) createRootCodegen(root, context);
12474
- root.helpers = new Set([...context.helpers.keys()]);
12927
+ root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
12475
12928
  root.components = [...context.components];
12476
12929
  root.directives = [...context.directives];
12477
12930
  root.imports = context.imports;
@@ -12514,8 +12967,10 @@ function traverseNode(node, context) {
12514
12967
  const exitFns = [];
12515
12968
  for (let i = 0; i < nodeTransforms.length; i++) {
12516
12969
  const onExit = nodeTransforms[i](node, context);
12517
- if (onExit) if (isArray(onExit)) exitFns.push(...onExit);
12518
- else exitFns.push(onExit);
12970
+ if (onExit) {
12971
+ if (isArray(onExit)) exitFns.push(...onExit);
12972
+ else exitFns.push(onExit);
12973
+ }
12519
12974
  if (!context.currentNode) return;
12520
12975
  else node = context.currentNode;
12521
12976
  }
@@ -12532,9 +12987,7 @@ function traverseNode(node, context) {
12532
12987
  case 10:
12533
12988
  case 11:
12534
12989
  case 1:
12535
- case 0:
12536
- traverseChildren(node, context);
12537
- break;
12990
+ case 0: traverseChildren(node, context);
12538
12991
  }
12539
12992
  context.currentNode = node;
12540
12993
  let i = exitFns.length;
@@ -12720,16 +13173,18 @@ function genFunctionPreamble(ast, context) {
12720
13173
  const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
12721
13174
  const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
12722
13175
  const helpers = Array.from(ast.helpers);
12723
- if (helpers.length > 0) if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
12724
- else {
12725
- push(`const _Vue = ${VueBinding}\n`, -1);
12726
- if (ast.hoists.length) push(`const { ${[
12727
- CREATE_VNODE,
12728
- CREATE_ELEMENT_VNODE,
12729
- CREATE_COMMENT,
12730
- CREATE_TEXT,
12731
- CREATE_STATIC
12732
- ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
13176
+ if (helpers.length > 0) {
13177
+ if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
13178
+ else {
13179
+ push(`const _Vue = ${VueBinding}\n`, -1);
13180
+ if (ast.hoists.length) push(`const { ${[
13181
+ CREATE_VNODE,
13182
+ CREATE_ELEMENT_VNODE,
13183
+ CREATE_COMMENT,
13184
+ CREATE_TEXT,
13185
+ CREATE_STATIC
13186
+ ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
13187
+ }
12733
13188
  }
12734
13189
  if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
12735
13190
  genHoists(ast.hoists, context);
@@ -12806,10 +13261,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
12806
13261
  if (isString(node)) push(node, -3);
12807
13262
  else if (isArray(node)) genNodeListAsArray(node, context);
12808
13263
  else genNode(node, context);
12809
- if (i < nodes.length - 1) if (multilines) {
12810
- comma && push(",");
12811
- newline();
12812
- } else comma && push(", ");
13264
+ if (i < nodes.length - 1) {
13265
+ if (multilines) {
13266
+ comma && push(",");
13267
+ newline();
13268
+ } else comma && push(", ");
13269
+ }
12813
13270
  }
12814
13271
  }
12815
13272
  function genNode(node, context) {
@@ -12881,11 +13338,7 @@ function genNode(node, context) {
12881
13338
  case 25:
12882
13339
  genSequenceExpression(node, context);
12883
13340
  break;
12884
- case 26:
12885
- genReturnStatement(node, context);
12886
- break;
12887
- case 10: break;
12888
- default:
13341
+ case 26: genReturnStatement(node, context);
12889
13342
  }
12890
13343
  }
12891
13344
  function genText(node, context) {
@@ -13123,7 +13576,7 @@ function genReturnStatement({ returns }, context) {
13123
13576
  }
13124
13577
  //#endregion
13125
13578
  //#region packages/compiler-core/src/transforms/transformExpression.ts
13126
- const isLiteralWhitelisted = /* @__PURE__ */ makeMap("true,false,null,this");
13579
+ const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
13127
13580
  const transformExpression = (node, context) => {
13128
13581
  if (node.type === 5) node.content = processExpression(node.content, context);
13129
13582
  else if (node.type === 1) {
@@ -13133,7 +13586,7 @@ const transformExpression = (node, context) => {
13133
13586
  if (dir.type === 7 && dir.name !== "for") {
13134
13587
  const exp = dir.exp;
13135
13588
  const arg = dir.arg;
13136
- if (exp && exp.type === 4 && !(dir.name === "on" && arg) && !(memo && arg && arg.type === 4 && arg.content === "key")) dir.exp = processExpression(exp, context, dir.name === "slot");
13589
+ if (exp && exp.type === 4 && !(dir.name === "on" && arg) && !(memo && context.vForMemoKeyedNodes.has(node) && arg && arg.type === 4 && arg.content === "key")) dir.exp = processExpression(exp, context, dir.name === "slot");
13137
13590
  if (arg && arg.type === 4 && !arg.isStatic) dir.arg = processExpression(arg, context);
13138
13591
  }
13139
13592
  }
@@ -13156,20 +13609,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
13156
13609
  if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
13157
13610
  else if (type === "setup-ref") return `${raw}.value`;
13158
13611
  else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
13159
- else if (type === "setup-let") if (isAssignmentLVal) {
13160
- const { right: rVal, operator } = parent;
13161
- const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
13162
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
13163
- } else if (isUpdateArg) {
13164
- id.start = parent.start;
13165
- id.end = parent.end;
13166
- const { prefix: isPrefix, operator } = parent;
13167
- const prefix = isPrefix ? operator : ``;
13168
- const postfix = isPrefix ? `` : operator;
13169
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
13170
- } else if (isDestructureAssignment) return raw;
13171
- else return wrapWithUnref(raw);
13172
- else if (type === "props") return genPropsAccessExp(raw);
13612
+ else if (type === "setup-let") {
13613
+ if (isAssignmentLVal) {
13614
+ const { right: rVal, operator } = parent;
13615
+ const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
13616
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
13617
+ } else if (isUpdateArg) {
13618
+ id.start = parent.start;
13619
+ id.end = parent.end;
13620
+ const { prefix: isPrefix, operator } = parent;
13621
+ const prefix = isPrefix ? operator : ``;
13622
+ const postfix = isPrefix ? `` : operator;
13623
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
13624
+ } else if (isDestructureAssignment) return raw;
13625
+ else return wrapWithUnref(raw);
13626
+ } else if (type === "props") return genPropsAccessExp(raw);
13173
13627
  else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
13174
13628
  } else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
13175
13629
  else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
@@ -13186,8 +13640,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
13186
13640
  if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
13187
13641
  if (isConst(bindingMetadata[rawExp])) node.constType = 1;
13188
13642
  node.content = rewriteIdentifier(rawExp);
13189
- } else if (!isScopeVarReference) if (isLiteral) node.constType = 3;
13190
- else node.constType = 2;
13643
+ } else if (!isScopeVarReference) {
13644
+ if (isLiteral) node.constType = 3;
13645
+ else node.constType = 2;
13646
+ }
13191
13647
  return node;
13192
13648
  }
13193
13649
  if (!ast) {
@@ -13343,12 +13799,13 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
13343
13799
  const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
13344
13800
  const { children } = branch;
13345
13801
  const firstChild = children[0];
13346
- if (children.length !== 1 || firstChild.type !== 1) if (children.length === 1 && firstChild.type === 11) {
13347
- const vnodeCall = firstChild.codegenNode;
13348
- injectProp(vnodeCall, keyProperty, context);
13349
- return vnodeCall;
13350
- } else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
13351
- else {
13802
+ if (children.length !== 1 || firstChild.type !== 1) {
13803
+ if (children.length === 1 && firstChild.type === 11) {
13804
+ const vnodeCall = firstChild.codegenNode;
13805
+ injectProp(vnodeCall, keyProperty, context);
13806
+ return vnodeCall;
13807
+ } else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
13808
+ } else {
13352
13809
  const ret = firstChild.codegenNode;
13353
13810
  const vnodeCall = getMemoedVNodeCall(ret);
13354
13811
  if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
@@ -13369,9 +13826,10 @@ function isSameKey(a, b) {
13369
13826
  return true;
13370
13827
  }
13371
13828
  function getParentCondition(node) {
13372
- while (true) if (node.type === 19) if (node.alternate.type === 19) node = node.alternate;
13373
- else return node;
13374
- else if (node.type === 20) node = node.value;
13829
+ while (true) if (node.type === 19) {
13830
+ if (node.alternate.type === 19) node = node.alternate;
13831
+ else return node;
13832
+ } else if (node.type === 20) node = node.value;
13375
13833
  }
13376
13834
  //#endregion
13377
13835
  //#region packages/compiler-core/src/transforms/vFor.ts
@@ -13384,11 +13842,11 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
13384
13842
  const keyProp = findProp(node, `key`, false, true);
13385
13843
  const isDirKey = keyProp && keyProp.type === 7;
13386
13844
  let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
13387
- if (memo && keyExp && isDirKey) keyProp.exp = keyExp = processExpression(keyExp, context);
13388
- const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
13389
- if (isTemplate) {
13390
- if (memo) memo.exp = processExpression(memo.exp, context);
13391
- if (keyProperty && keyProp.type !== 6) keyProperty.value = processExpression(keyProperty.value, context);
13845
+ const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
13846
+ if (isTemplate && memo) memo.exp = processExpression(memo.exp, context);
13847
+ if ((isTemplate || memo) && keyProperty && isDirKey) {
13848
+ keyExp = keyProp.exp = keyProperty.value = processExpression(keyProperty.value, context);
13849
+ if (memo) context.vForMemoKeyedNodes.add(node);
13392
13850
  }
13393
13851
  const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
13394
13852
  const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
@@ -13414,15 +13872,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
13414
13872
  else {
13415
13873
  childBlock = children[0].codegenNode;
13416
13874
  if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
13417
- if (childBlock.isBlock !== !isStableFragment) if (childBlock.isBlock) {
13418
- removeHelper(OPEN_BLOCK);
13419
- removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13420
- } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13421
- childBlock.isBlock = !isStableFragment;
13875
+ const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
13876
+ if (childBlock.isBlock !== shouldUseBlock) {
13877
+ if (childBlock.isBlock) {
13878
+ removeHelper(OPEN_BLOCK);
13879
+ removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13880
+ } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13881
+ }
13882
+ childBlock.isBlock = shouldUseBlock;
13422
13883
  if (childBlock.isBlock) {
13423
13884
  helper(OPEN_BLOCK);
13424
13885
  helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13425
- } else helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13886
+ } else {
13887
+ helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13888
+ if (childBlock.needsPatch) {
13889
+ var _childBlock$patchFlag;
13890
+ childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
13891
+ }
13892
+ }
13426
13893
  }
13427
13894
  if (memo) {
13428
13895
  const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
@@ -13519,7 +13986,7 @@ const trackSlotScopes = (node, context) => {
13519
13986
  const vSlot = findDir(node, "slot");
13520
13987
  if (vSlot) {
13521
13988
  const slotProps = vSlot.exp;
13522
- if (context.prefixIdentifiers) slotProps && context.addIdentifiers(slotProps);
13989
+ if (context.prefixIdentifiers) slotProps && context.addIdentifiers(slotProps, "slot");
13523
13990
  context.scopes.vSlot++;
13524
13991
  return () => {
13525
13992
  if (context.prefixIdentifiers) slotProps && context.removeIdentifiers(slotProps);
@@ -13628,8 +14095,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
13628
14095
  return createObjectProperty(`default`, fn);
13629
14096
  };
13630
14097
  if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
13631
- else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
13632
- else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
14098
+ else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
14099
+ if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
14100
+ else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
14101
+ }
13633
14102
  }
13634
14103
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
13635
14104
  let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ``, false))), loc);
@@ -13655,10 +14124,7 @@ function hasForwardedSlots(children) {
13655
14124
  if (hasForwardedSlots(child.branches)) return true;
13656
14125
  break;
13657
14126
  case 10:
13658
- case 11:
13659
- if (hasForwardedSlots(child.children)) return true;
13660
- break;
13661
- default: break;
14127
+ case 11: if (hasForwardedSlots(child.children)) return true;
13662
14128
  }
13663
14129
  }
13664
14130
  return false;
@@ -13680,12 +14146,16 @@ const transformElement = (node, context) => {
13680
14146
  let vnodeDynamicProps;
13681
14147
  let dynamicPropNames;
13682
14148
  let vnodeDirectives;
14149
+ let needsPatch = false;
14150
+ let isBlockRequired = false;
13683
14151
  let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
13684
14152
  if (props.length > 0) {
13685
14153
  const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
13686
14154
  vnodeProps = propsBuildResult.props;
13687
14155
  patchFlag = propsBuildResult.patchFlag;
13688
14156
  dynamicPropNames = propsBuildResult.dynamicPropNames;
14157
+ needsPatch = propsBuildResult.needsPatch;
14158
+ isBlockRequired = propsBuildResult.isBlockRequired;
13689
14159
  const directives = propsBuildResult.directives;
13690
14160
  vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
13691
14161
  if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
@@ -13709,7 +14179,10 @@ const transformElement = (node, context) => {
13709
14179
  } else vnodeChildren = node.children;
13710
14180
  }
13711
14181
  if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
13712
- node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
14182
+ const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
14183
+ needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
14184
+ if (needsPatch) vnodeCall.needsPatch = true;
14185
+ if (isBlockRequired) vnodeCall.isBlockRequired = true;
13713
14186
  };
13714
14187
  };
13715
14188
  function resolveComponentType(node, context, ssr = false) {
@@ -13735,6 +14208,15 @@ function resolveComponentType(node, context, ssr = false) {
13735
14208
  if (!ssr) context.helper(builtIn);
13736
14209
  return builtIn;
13737
14210
  }
14211
+ {
14212
+ const fromScope = resolveSlotScopeReference(tag, context);
14213
+ if (fromScope) return fromScope;
14214
+ const dotIndex = tag.indexOf(".");
14215
+ if (dotIndex > 0) {
14216
+ const ns = resolveSlotScopeReference(tag.slice(0, dotIndex), context);
14217
+ if (ns) return ns + tag.slice(dotIndex);
14218
+ }
14219
+ }
13738
14220
  {
13739
14221
  const fromSetup = resolveSetupReference(tag, context);
13740
14222
  if (fromSetup) return fromSetup;
@@ -13753,6 +14235,14 @@ function resolveComponentType(node, context, ssr = false) {
13753
14235
  context.components.add(tag);
13754
14236
  return toValidAssetId(tag, `component`);
13755
14237
  }
14238
+ function resolveSlotScopeReference(name, context) {
14239
+ const camelName = camelize(name);
14240
+ const PascalName = capitalize(camelName);
14241
+ const isInSlotScope = (reference) => context.isSlotScopeIdentifier(reference);
14242
+ if (isInSlotScope(name)) return name;
14243
+ if (isInSlotScope(camelName)) return camelName;
14244
+ if (isInSlotScope(PascalName)) return PascalName;
14245
+ }
13756
14246
  function resolveSetupReference(name, context) {
13757
14247
  const bindings = context.bindingMetadata;
13758
14248
  if (!bindings || bindings.__isScriptSetup === false) return;
@@ -13777,6 +14267,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
13777
14267
  const runtimeDirectives = [];
13778
14268
  const hasChildren = children.length > 0;
13779
14269
  let shouldUseBlock = false;
14270
+ let isBlockRequired = false;
13780
14271
  let patchFlag = 0;
13781
14272
  let hasRef = false;
13782
14273
  let hasClassBinding = false;
@@ -13801,12 +14292,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
13801
14292
  const isEventHandler = isOn(name);
13802
14293
  if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
13803
14294
  if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
14295
+ if (name === "ref") hasRef = true;
13804
14296
  if (isEventHandler && value.type === 14) value = value.arguments[0];
13805
14297
  if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
13806
- if (name === "ref") hasRef = true;
13807
- else if (name === "class") hasClassBinding = true;
14298
+ if (name === "class") hasClassBinding = true;
13808
14299
  else if (name === "style") hasStyleBinding = true;
13809
- else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
14300
+ else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
13810
14301
  if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
13811
14302
  } else hasDynamicKeys = true;
13812
14303
  };
@@ -13839,26 +14330,31 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
13839
14330
  if (name === "once" || name === "memo") continue;
13840
14331
  if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
13841
14332
  if (isVOn && ssr) continue;
13842
- if (isVBind && isStaticArgOf(arg, "key") || isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")) shouldUseBlock = true;
14333
+ if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
14334
+ if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
14335
+ shouldUseBlock = true;
14336
+ isBlockRequired = true;
14337
+ }
13843
14338
  if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
13844
14339
  if (!arg && (isVBind || isVOn)) {
13845
14340
  hasDynamicKeys = true;
13846
- if (exp) if (isVBind) {
13847
- pushMergeArg();
13848
- if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
13849
- mergeArgs.unshift(exp);
13850
- continue;
13851
- }
13852
- pushRefVForMarker();
13853
- pushMergeArg();
13854
- mergeArgs.push(exp);
13855
- } else pushMergeArg({
13856
- type: 14,
13857
- loc,
13858
- callee: context.helper(TO_HANDLERS),
13859
- arguments: isComponent ? [exp] : [exp, `true`]
13860
- });
13861
- else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
14341
+ if (exp) {
14342
+ if (isVBind) {
14343
+ pushMergeArg();
14344
+ if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
14345
+ mergeArgs.unshift(exp);
14346
+ continue;
14347
+ }
14348
+ pushRefVForMarker();
14349
+ pushMergeArg();
14350
+ mergeArgs.push(exp);
14351
+ } else pushMergeArg({
14352
+ type: 14,
14353
+ loc,
14354
+ callee: context.helper(TO_HANDLERS),
14355
+ arguments: isComponent ? [exp] : [exp, `true`]
14356
+ });
14357
+ } else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
13862
14358
  continue;
13863
14359
  }
13864
14360
  if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
@@ -13874,7 +14370,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
13874
14370
  }
13875
14371
  } else if (!isBuiltInDirective(name)) {
13876
14372
  runtimeDirectives.push(prop);
13877
- if (hasChildren) shouldUseBlock = true;
14373
+ if (hasChildren) {
14374
+ shouldUseBlock = true;
14375
+ isBlockRequired = true;
14376
+ }
13878
14377
  }
13879
14378
  }
13880
14379
  }
@@ -13891,7 +14390,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
13891
14390
  if (dynamicPropNames.length) patchFlag |= 8;
13892
14391
  if (hasHydrationEventBinding) patchFlag |= 32;
13893
14392
  }
13894
- if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) patchFlag |= 512;
14393
+ const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
14394
+ if (!shouldUseBlock && needsPatch) patchFlag |= 512;
13895
14395
  if (!context.inSSR && propsExpression) switch (propsExpression.type) {
13896
14396
  case 15:
13897
14397
  let classKeyIndex = -1;
@@ -13912,16 +14412,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
13912
14412
  } else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
13913
14413
  break;
13914
14414
  case 14: break;
13915
- default:
13916
- propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
13917
- break;
14415
+ default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
13918
14416
  }
13919
14417
  return {
13920
14418
  props: propsExpression,
13921
14419
  directives: runtimeDirectives,
13922
14420
  patchFlag,
13923
14421
  dynamicPropNames,
13924
- shouldUseBlock
14422
+ shouldUseBlock,
14423
+ needsPatch,
14424
+ isBlockRequired
13925
14425
  };
13926
14426
  }
13927
14427
  function dedupeProperties(properties) {
@@ -14022,10 +14522,12 @@ function processSlotOutlet(node, context) {
14022
14522
  for (let i = 0; i < node.props.length; i++) {
14023
14523
  const p = node.props[i];
14024
14524
  if (p.type === 6) {
14025
- if (p.value) if (p.name === "name") slotName = JSON.stringify(p.value.content);
14026
- else {
14027
- p.name = camelize(p.name);
14028
- nonNameProps.push(p);
14525
+ if (p.value) {
14526
+ if (p.name === "name") slotName = JSON.stringify(p.value.content);
14527
+ else {
14528
+ p.name = camelize(p.name);
14529
+ nonNameProps.push(p);
14530
+ }
14029
14531
  }
14030
14532
  } else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
14031
14533
  if (p.exp) slotName = p.exp;
@@ -14054,16 +14556,17 @@ const transformOn$1 = (dir, node, context, augmentor) => {
14054
14556
  const { loc, modifiers, arg } = dir;
14055
14557
  if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
14056
14558
  let eventName;
14057
- if (arg.type === 4) if (arg.isStatic) {
14058
- let rawName = arg.content;
14059
- if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
14060
- eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
14061
- } else eventName = createCompoundExpression([
14062
- `${context.helperString(TO_HANDLER_KEY)}(`,
14063
- arg,
14064
- `)`
14065
- ]);
14066
- else {
14559
+ if (arg.type === 4) {
14560
+ if (arg.isStatic) {
14561
+ let rawName = arg.content;
14562
+ if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
14563
+ eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
14564
+ } else eventName = createCompoundExpression([
14565
+ `${context.helperString(TO_HANDLER_KEY)}(`,
14566
+ arg,
14567
+ `)`
14568
+ ]);
14569
+ } else {
14067
14570
  eventName = arg;
14068
14571
  eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
14069
14572
  eventName.children.push(`)`);
@@ -14080,13 +14583,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
14080
14583
  exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
14081
14584
  isInlineStatement && context.removeIdentifiers(`$event`);
14082
14585
  shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
14083
- if (shouldCache && isMemberExp) if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
14084
- else exp.children = [
14085
- ...exp.children,
14086
- ` && `,
14087
- ...exp.children,
14088
- `(...args)`
14089
- ];
14586
+ if (shouldCache && isMemberExp) {
14587
+ if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
14588
+ else exp.children = [
14589
+ ...exp.children,
14590
+ ` && `,
14591
+ ...exp.children,
14592
+ `(...args)`
14593
+ ];
14594
+ }
14090
14595
  }
14091
14596
  if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
14092
14597
  `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
@@ -14114,11 +14619,14 @@ const transformBind = (dir, _node, context) => {
14114
14619
  arg.children.unshift(`(`);
14115
14620
  arg.children.push(`) || ""`);
14116
14621
  } else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
14117
- if (modifiers.some((mod) => mod.content === "camel")) if (arg.type === 4) if (arg.isStatic) arg.content = camelize(arg.content);
14118
- else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
14119
- else {
14120
- arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
14121
- arg.children.push(`)`);
14622
+ if (modifiers.some((mod) => mod.content === "camel")) {
14623
+ if (arg.type === 4) {
14624
+ if (arg.isStatic) arg.content = camelize(arg.content);
14625
+ else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
14626
+ } else {
14627
+ arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
14628
+ arg.children.push(`)`);
14629
+ }
14122
14630
  }
14123
14631
  if (!context.inSSR) {
14124
14632
  if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
@@ -14127,9 +14635,10 @@ const transformBind = (dir, _node, context) => {
14127
14635
  return { props: [createObjectProperty(arg, exp)] };
14128
14636
  };
14129
14637
  const injectPrefix = (arg, prefix) => {
14130
- if (arg.type === 4) if (arg.isStatic) arg.content = prefix + arg.content;
14131
- else arg.content = `\`${prefix}\${${arg.content}}\``;
14132
- else {
14638
+ if (arg.type === 4) {
14639
+ if (arg.isStatic) arg.content = prefix + arg.content;
14640
+ else arg.content = `\`${prefix}\${${arg.content}}\``;
14641
+ } else {
14133
14642
  arg.children.unshift(`'${prefix}' + (`);
14134
14643
  arg.children.push(`)`);
14135
14644
  }
@@ -14224,20 +14733,21 @@ const transformModel$1 = (dir, node, context) => {
14224
14733
  const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
14225
14734
  let assignmentExp;
14226
14735
  const eventArg = context.isTS ? `($event: any)` : `$event`;
14227
- if (maybeRef) if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
14228
- `${eventArg} => ((`,
14229
- createSimpleExpression(rawExp, false, exp.loc),
14230
- `).value = $event)`
14231
- ]);
14232
- else {
14233
- const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
14234
- assignmentExp = createCompoundExpression([
14235
- `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
14736
+ if (maybeRef) {
14737
+ if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
14738
+ `${eventArg} => ((`,
14236
14739
  createSimpleExpression(rawExp, false, exp.loc),
14237
- `).value = $event : ${altAssignment})`
14740
+ `).value = $event)`
14238
14741
  ]);
14239
- }
14240
- else assignmentExp = createCompoundExpression([
14742
+ else {
14743
+ const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
14744
+ assignmentExp = createCompoundExpression([
14745
+ `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
14746
+ createSimpleExpression(rawExp, false, exp.loc),
14747
+ `).value = $event : ${altAssignment})`
14748
+ ]);
14749
+ }
14750
+ } else assignmentExp = createCompoundExpression([
14241
14751
  `${eventArg} => ((`,
14242
14752
  exp,
14243
14753
  `) = $event)`
@@ -14270,7 +14780,7 @@ function rewriteFilter(node, context) {
14270
14780
  const child = node.children[i];
14271
14781
  if (typeof child !== "object") continue;
14272
14782
  if (child.type === 4) parseFilter(child, context);
14273
- else if (child.type === 8) rewriteFilter(node, context);
14783
+ else if (child.type === 8) rewriteFilter(child, context);
14274
14784
  else if (child.type === 5) rewriteFilter(child.content, context);
14275
14785
  }
14276
14786
  }
@@ -14296,11 +14806,12 @@ function parseFilter(node, context) {
14296
14806
  if (c === 96 && prev !== 92) inTemplateString = false;
14297
14807
  } else if (inRegex) {
14298
14808
  if (c === 47 && prev !== 92) inRegex = false;
14299
- } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) if (expression === void 0) {
14300
- lastFilterIndex = i + 1;
14301
- expression = exp.slice(0, i).trim();
14302
- } else pushFilter();
14303
- else {
14809
+ } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
14810
+ if (expression === void 0) {
14811
+ lastFilterIndex = i + 1;
14812
+ expression = exp.slice(0, i).trim();
14813
+ } else pushFilter();
14814
+ } else {
14304
14815
  switch (c) {
14305
14816
  case 34:
14306
14817
  inDouble = true;
@@ -14326,9 +14837,7 @@ function parseFilter(node, context) {
14326
14837
  case 123:
14327
14838
  curly++;
14328
14839
  break;
14329
- case 125:
14330
- curly--;
14331
- break;
14840
+ case 125: curly--;
14332
14841
  }
14333
14842
  if (c === 47) {
14334
14843
  let j = i - 1;
@@ -14587,8 +15096,6 @@ const transformModel = (dir, node, context) => {
14587
15096
  case "file":
14588
15097
  isInvalidType = true;
14589
15098
  context.onError(createDOMCompilerError(60, dir.loc));
14590
- break;
14591
- default: break;
14592
15099
  }
14593
15100
  } else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
14594
15101
  } else if (tag === "select") directiveToUse = V_MODEL_SELECT;
@@ -14599,27 +15106,37 @@ const transformModel = (dir, node, context) => {
14599
15106
  };
14600
15107
  //#endregion
14601
15108
  //#region packages/compiler-dom/src/transforms/vOn.ts
14602
- const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
14603
- const isNonKeyModifier = /* @__PURE__ */ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
14604
- const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
14605
- const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);
15109
+ const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
15110
+ const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
15111
+ const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
15112
+ const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
14606
15113
  const resolveModifiers = (key, modifiers, context, loc) => {
14607
15114
  const keyModifiers = [];
14608
15115
  const nonKeyModifiers = [];
14609
15116
  const eventOptionModifiers = [];
14610
15117
  for (let i = 0; i < modifiers.length; i++) {
14611
15118
  const modifier = modifiers[i].content;
15119
+ if (modifier === "delegate") {
15120
+ if (context) {
15121
+ const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
15122
+ error.loc = modifiers[i].loc;
15123
+ context.onWarn(error);
15124
+ }
15125
+ continue;
15126
+ }
14612
15127
  if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
14613
15128
  else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
14614
15129
  else {
14615
15130
  const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
14616
- if (maybeKeyModifier(modifier)) if (keyString) if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
14617
- else nonKeyModifiers.push(modifier);
14618
- else {
14619
- keyModifiers.push(modifier);
14620
- nonKeyModifiers.push(modifier);
14621
- }
14622
- else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
15131
+ if (maybeKeyModifier(modifier)) {
15132
+ if (keyString) {
15133
+ if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
15134
+ else nonKeyModifiers.push(modifier);
15135
+ } else {
15136
+ keyModifiers.push(modifier);
15137
+ nonKeyModifiers.push(modifier);
15138
+ }
15139
+ } else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
14623
15140
  else keyModifiers.push(modifier);
14624
15141
  }
14625
15142
  }
@@ -14757,7 +15274,7 @@ const dataAriaRE = /^(?:data|aria)-/;
14757
15274
  const isStringifiableAttr = (name, ns) => {
14758
15275
  return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
14759
15276
  };
14760
- const isNonStringifiable = /* @__PURE__ */ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
15277
+ const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
14761
15278
  /**
14762
15279
  * for a cached node, analyze it and return:
14763
15280
  * - false: bailed (contains non-stringifiable props or runtime constant)
@@ -14828,10 +15345,11 @@ function stringifyElement(node, context) {
14828
15345
  res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
14829
15346
  continue;
14830
15347
  }
14831
- if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
15348
+ if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
14832
15349
  let evaluated = evaluateConstant(exp);
14833
15350
  if (evaluated != null) {
14834
15351
  const arg = p.arg && p.arg.content;
15352
+ if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
14835
15353
  if (arg === "class") evaluated = normalizeClass(evaluated);
14836
15354
  else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
14837
15355
  res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
@@ -14891,8 +15409,10 @@ function compile(src, options = {}) {
14891
15409
  //#region packages/vue-compat/src/index.ts
14892
15410
  const compileCache = Object.create(null);
14893
15411
  function compileToFunction(template, options) {
14894
- if (!isString(template)) if (template.nodeType) template = template.innerHTML;
14895
- else return NOOP;
15412
+ if (!isString(template)) {
15413
+ if (template.nodeType) template = template.innerHTML;
15414
+ else return NOOP;
15415
+ }
14896
15416
  const key = genCacheKey(template, options);
14897
15417
  const cached = compileCache[key];
14898
15418
  if (cached) return cached;