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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-rc.1
2
+ * @vue/compat v3.6.0-rc.11
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -23,7 +23,7 @@ var __exportAll = (all, no_symbols) => {
23
23
  * \/\*#\_\_PURE\_\_\*\/
24
24
  * So that they can be tree-shaken if necessary.
25
25
  */
26
- /* @__NO_SIDE_EFFECTS__ */
26
+ /*@__NO_SIDE_EFFECTS__*/
27
27
  function makeMap(str) {
28
28
  const map = Object.create(null);
29
29
  for (const key of str.split(",")) map[key] = 1;
@@ -67,9 +67,9 @@ const toRawType = (value) => {
67
67
  };
68
68
  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
69
69
  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
70
- const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
71
- const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
72
- const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
70
+ const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
71
+ const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
72
+ const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
73
73
  const cacheStringFunction = (fn) => {
74
74
  const cache = Object.create(null);
75
75
  return ((str) => {
@@ -177,7 +177,7 @@ const slotFlagsText = {
177
177
  [2]: "DYNAMIC",
178
178
  [3]: "FORWARDED"
179
179
  };
180
- const isGloballyAllowed = /* @__PURE__ */ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
180
+ const isGloballyAllowed = /*@__PURE__*/ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
181
181
  //#endregion
182
182
  //#region packages/shared/src/codeframe.ts
183
183
  const range = 2;
@@ -231,10 +231,10 @@ function normalizeStyle(value) {
231
231
  }
232
232
  const listDelimiterRE = /;(?![^(]*\))/g;
233
233
  const propertyDelimiterRE = /:([^]+)/;
234
- const styleCommentRE = /\/\*[^]*?\*\//g;
234
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
235
235
  function parseStringStyle(cssText) {
236
236
  const ret = {};
237
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
237
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
238
238
  if (item) {
239
239
  const tmp = item.split(propertyDelimiterRE);
240
240
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -284,22 +284,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
284
284
  * Compiler only.
285
285
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
286
286
  */
287
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
287
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
288
288
  /**
289
289
  * Compiler only.
290
290
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
291
291
  */
292
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
292
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
293
293
  /**
294
294
  * Compiler only.
295
295
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
296
296
  */
297
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
297
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
298
298
  /**
299
299
  * Compiler only.
300
300
  * Do NOT use in runtime code paths unless behind `!!(process.env.NODE_ENV !== 'production')` flag.
301
301
  */
302
- const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
302
+ const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
303
303
  //#endregion
304
304
  //#region packages/shared/src/domAttrConfig.ts
305
305
  /**
@@ -314,11 +314,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
314
314
  * - readonly -> readOnly
315
315
  */
316
316
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
317
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
317
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
318
318
  /**
319
319
  * The full list is needed during SSR to produce the correct initial markup.
320
320
  */
321
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
321
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
322
322
  /**
323
323
  * Boolean attributes should be included if the value is truthy or ''.
324
324
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -332,11 +332,11 @@ function includeBooleanAttr(value) {
332
332
  * Don't also forget to allow `data-*` and `aria-*`!
333
333
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
334
334
  */
335
- const isKnownHtmlAttr = /* @__PURE__ */ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
335
+ const isKnownHtmlAttr = /*@__PURE__*/ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
336
336
  /**
337
337
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
338
338
  */
339
- const isKnownSvgAttr = /* @__PURE__ */ makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");
339
+ const isKnownSvgAttr = /*@__PURE__*/ makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");
340
340
  /**
341
341
  * Shared between server-renderer and runtime-core hydration logic
342
342
  */
@@ -362,13 +362,54 @@ function getEscapedCssVarName(key, doubleEscape) {
362
362
  }
363
363
  //#endregion
364
364
  //#region packages/shared/src/looseEqual.ts
365
- function looseCompareArrays(a, b) {
365
+ function looseCompareArrays(a, b, seen) {
366
366
  if (a.length !== b.length) return false;
367
367
  let equal = true;
368
- for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
368
+ for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
369
369
  return equal;
370
370
  }
371
- function looseEqual(a, b) {
371
+ function looseCompareCollections(a, b, seen) {
372
+ if (a.size !== b.size) return false;
373
+ const candidates = Array.from(b);
374
+ const matched = new Uint8Array(candidates.length);
375
+ for (const item of a) {
376
+ let index = -1;
377
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
378
+ index = i;
379
+ break;
380
+ }
381
+ if (index < 0) return false;
382
+ matched[index] = 1;
383
+ }
384
+ return true;
385
+ }
386
+ function looseCompareObjects(a, b, seen) {
387
+ let aValidType = isMap(a);
388
+ let bValidType = isMap(b);
389
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
390
+ aValidType = isSet(a);
391
+ bValidType = isSet(b);
392
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
393
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
394
+ for (const key in a) {
395
+ const aHasKey = a.hasOwnProperty(key);
396
+ const bHasKey = b.hasOwnProperty(key);
397
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
398
+ }
399
+ return String(a) === String(b);
400
+ }
401
+ function looseCompareNested(a, b, seen, compare) {
402
+ if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
403
+ const [seenA, seenB] = seen;
404
+ if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
405
+ seenA.set(a, b);
406
+ seenB.set(b, a);
407
+ const equal = compare(a, b, seen);
408
+ seenA.delete(a);
409
+ seenB.delete(b);
410
+ return equal;
411
+ }
412
+ function looseEqual(a, b, seen) {
372
413
  if (a === b) return true;
373
414
  let aValidType = isDate(a);
374
415
  let bValidType = isDate(b);
@@ -378,17 +419,12 @@ function looseEqual(a, b) {
378
419
  if (aValidType || bValidType) return a === b;
379
420
  aValidType = isArray(a);
380
421
  bValidType = isArray(b);
381
- if (aValidType || bValidType) return aValidType && bValidType ? looseCompareArrays(a, b) : false;
422
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
382
423
  aValidType = isObject(a);
383
424
  bValidType = isObject(b);
384
425
  if (aValidType || bValidType) {
385
426
  if (!aValidType || !bValidType) return false;
386
- if (Object.keys(a).length !== Object.keys(b).length) return false;
387
- for (const key in a) {
388
- const aHasKey = a.hasOwnProperty(key);
389
- const bHasKey = b.hasOwnProperty(key);
390
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
391
- }
427
+ return looseCompareNested(a, b, seen, looseCompareObjects);
392
428
  }
393
429
  return String(a) === String(b);
394
430
  }
@@ -523,6 +559,8 @@ function setupFlagsHandler(target) {
523
559
  function warn$2(msg, ...args) {
524
560
  console.warn(`[Vue warn] ${msg}`, ...args);
525
561
  }
562
+ //#endregion
563
+ //#region packages/reactivity/src/system.ts
526
564
  const notifyBuffer = [];
527
565
  let batchDepth = 0;
528
566
  let activeSub = void 0;
@@ -661,13 +699,23 @@ function endTracking(sub, prevSub) {
661
699
  sub.flags &= -5;
662
700
  }
663
701
  function flush() {
702
+ let hasError = false;
703
+ let error;
664
704
  while (notifyIndex < notifyBufferLength) {
665
705
  const effect = notifyBuffer[notifyIndex];
666
706
  notifyBuffer[notifyIndex++] = void 0;
667
- effect.notify();
707
+ try {
708
+ effect.notify();
709
+ } catch (err) {
710
+ if (!hasError) {
711
+ hasError = true;
712
+ error = err;
713
+ }
714
+ }
668
715
  }
669
716
  notifyIndex = 0;
670
717
  notifyBufferLength = 0;
718
+ if (hasError) throw error;
671
719
  }
672
720
  function checkDirty(link, sub) {
673
721
  let stack;
@@ -751,7 +799,7 @@ var Dep = class {
751
799
  }
752
800
  set subs(value) {
753
801
  this._subs = value;
754
- if (value === void 0) this.map.delete(this.key);
802
+ if (value === void 0 && this.map) this.map.delete(this.key);
755
803
  }
756
804
  };
757
805
  const targetMap = /* @__PURE__ */ new WeakMap();
@@ -834,9 +882,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
834
882
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
835
883
  }
836
884
  break;
837
- case "set":
838
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
839
- break;
885
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
840
886
  }
841
887
  }
842
888
  }
@@ -851,13 +897,17 @@ function getDepFromReactive(object, key) {
851
897
  /**
852
898
  * Track array iteration and return:
853
899
  * - if input is reactive: a cloned raw array with reactive values
854
- * - if input is non-reactive or shallowReactive: the original raw array
900
+ * - if input is readonly: a cloned raw array with readonly values, preserving
901
+ * reactivity
902
+ * - if input is raw or shallow: the original raw array
855
903
  */
856
904
  function reactiveReadArray(array) {
857
905
  const raw = /* @__PURE__ */ toRaw(array);
858
906
  if (raw === array) return raw;
859
907
  track(raw, "iterate", ARRAY_ITERATE_KEY);
860
- return /* @__PURE__ */ isShallow(array) ? raw : raw.map(toReactive);
908
+ if (/* @__PURE__ */ isShallow(array)) return raw;
909
+ if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
910
+ return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
861
911
  }
862
912
  /**
863
913
  * Track array iteration and return raw array
@@ -1033,8 +1083,8 @@ function noTracking(self, method, args = []) {
1033
1083
  }
1034
1084
  //#endregion
1035
1085
  //#region packages/reactivity/src/baseHandlers.ts
1036
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
1037
- const builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1086
+ const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
1087
+ const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1038
1088
  function hasOwnProperty(key) {
1039
1089
  if (!isSymbol(key)) key = String(key);
1040
1090
  const obj = /* @__PURE__ */ toRaw(this);
@@ -1089,12 +1139,14 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
1089
1139
  oldValue = /* @__PURE__ */ toRaw(oldValue);
1090
1140
  value = /* @__PURE__ */ toRaw(value);
1091
1141
  }
1092
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) {
1093
- if (!!(process.env.NODE_ENV !== "production")) warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1094
- return true;
1095
- } else {
1096
- oldValue.value = value;
1097
- return true;
1142
+ if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1143
+ if (isOldValueReadonly) {
1144
+ if (!!(process.env.NODE_ENV !== "production")) warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1145
+ return true;
1146
+ } else {
1147
+ oldValue.value = value;
1148
+ return true;
1149
+ }
1098
1150
  }
1099
1151
  }
1100
1152
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
@@ -1135,10 +1187,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1135
1187
  return true;
1136
1188
  }
1137
1189
  };
1138
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1139
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1140
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1141
- const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1190
+ const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
1191
+ const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
1192
+ const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
1193
+ const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
1142
1194
  //#endregion
1143
1195
  //#region packages/reactivity/src/collectionHandlers.ts
1144
1196
  const toShallow = (value) => value;
@@ -1289,10 +1341,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
1289
1341
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1290
1342
  };
1291
1343
  }
1292
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1293
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1294
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1295
- const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1344
+ const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
1345
+ const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
1346
+ const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
1347
+ const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
1296
1348
  function checkIdentityKeys(target, has, key) {
1297
1349
  const rawKey = /* @__PURE__ */ toRaw(key);
1298
1350
  if (rawKey !== key && has.call(target, rawKey)) {
@@ -1317,7 +1369,7 @@ function targetTypeMap(rawType) {
1317
1369
  default: return 0;
1318
1370
  }
1319
1371
  }
1320
- /* @__NO_SIDE_EFFECTS__ */
1372
+ /*@__NO_SIDE_EFFECTS__*/
1321
1373
  function reactive(target) {
1322
1374
  if (/* @__PURE__ */ isReadonly(target)) return target;
1323
1375
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1352,7 +1404,7 @@ function reactive(target) {
1352
1404
  * @param target - The source object.
1353
1405
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1354
1406
  */
1355
- /* @__NO_SIDE_EFFECTS__ */
1407
+ /*@__NO_SIDE_EFFECTS__*/
1356
1408
  function shallowReactive(target) {
1357
1409
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1358
1410
  }
@@ -1385,7 +1437,7 @@ function shallowReactive(target) {
1385
1437
  * @param target - The source object.
1386
1438
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1387
1439
  */
1388
- /* @__NO_SIDE_EFFECTS__ */
1440
+ /*@__NO_SIDE_EFFECTS__*/
1389
1441
  function readonly(target) {
1390
1442
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1391
1443
  }
@@ -1419,7 +1471,7 @@ function readonly(target) {
1419
1471
  * @param target - The source object.
1420
1472
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1421
1473
  */
1422
- /* @__NO_SIDE_EFFECTS__ */
1474
+ /*@__NO_SIDE_EFFECTS__*/
1423
1475
  function shallowReadonly(target) {
1424
1476
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1425
1477
  }
@@ -1456,7 +1508,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1456
1508
  * @param value - The value to check.
1457
1509
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1458
1510
  */
1459
- /* @__NO_SIDE_EFFECTS__ */
1511
+ /*@__NO_SIDE_EFFECTS__*/
1460
1512
  function isReactive(value) {
1461
1513
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1462
1514
  return !!(value && value["__v_isReactive"]);
@@ -1472,11 +1524,11 @@ function isReactive(value) {
1472
1524
  * @param value - The value to check.
1473
1525
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1474
1526
  */
1475
- /* @__NO_SIDE_EFFECTS__ */
1527
+ /*@__NO_SIDE_EFFECTS__*/
1476
1528
  function isReadonly(value) {
1477
1529
  return !!(value && value["__v_isReadonly"]);
1478
1530
  }
1479
- /* @__NO_SIDE_EFFECTS__ */
1531
+ /*@__NO_SIDE_EFFECTS__*/
1480
1532
  function isShallow(value) {
1481
1533
  return !!(value && value["__v_isShallow"]);
1482
1534
  }
@@ -1487,7 +1539,7 @@ function isShallow(value) {
1487
1539
  * @param value - The value to check.
1488
1540
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1489
1541
  */
1490
- /* @__NO_SIDE_EFFECTS__ */
1542
+ /*@__NO_SIDE_EFFECTS__*/
1491
1543
  function isProxy(value) {
1492
1544
  return value ? !!value["__v_raw"] : false;
1493
1545
  }
@@ -1514,7 +1566,7 @@ function isProxy(value) {
1514
1566
  * @param observed - The object for which the "raw" value is requested.
1515
1567
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1516
1568
  */
1517
- /* @__NO_SIDE_EFFECTS__ */
1569
+ /*@__NO_SIDE_EFFECTS__*/
1518
1570
  function toRaw(observed) {
1519
1571
  const raw = observed && observed["__v_raw"];
1520
1572
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1563,15 +1615,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
1563
1615
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1564
1616
  //#endregion
1565
1617
  //#region packages/reactivity/src/ref.ts
1566
- /* @__NO_SIDE_EFFECTS__ */
1618
+ /*@__NO_SIDE_EFFECTS__*/
1567
1619
  function isRef(r) {
1568
1620
  return r ? r["__v_isRef"] === true : false;
1569
1621
  }
1570
- /* @__NO_SIDE_EFFECTS__ */
1622
+ /*@__NO_SIDE_EFFECTS__*/
1571
1623
  function ref(value) {
1572
1624
  return createRef(value, toReactive);
1573
1625
  }
1574
- /* @__NO_SIDE_EFFECTS__ */
1626
+ /*@__NO_SIDE_EFFECTS__*/
1575
1627
  function shallowRef(value) {
1576
1628
  return createRef(value);
1577
1629
  }
@@ -1774,7 +1826,7 @@ function customRef(factory) {
1774
1826
  * @param object - Reactive object to be made into an object of linked refs.
1775
1827
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1776
1828
  */
1777
- /* @__NO_SIDE_EFFECTS__ */
1829
+ /*@__NO_SIDE_EFFECTS__*/
1778
1830
  function toRefs(object) {
1779
1831
  const ret = isArray(object) ? new Array(object.length) : {};
1780
1832
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1825,7 +1877,7 @@ var GetterRefImpl = class {
1825
1877
  return this._value = this._getter();
1826
1878
  }
1827
1879
  };
1828
- /* @__NO_SIDE_EFFECTS__ */
1880
+ /*@__NO_SIDE_EFFECTS__*/
1829
1881
  function toRef(source, key, defaultValue) {
1830
1882
  if (/* @__PURE__ */ isRef(source)) return source;
1831
1883
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1891,10 +1943,12 @@ var ReactiveEffect = class {
1891
1943
  get dirty() {
1892
1944
  const flags = this.flags;
1893
1945
  if (flags & 16) return true;
1894
- if (flags & 32) if (checkDirty(this.deps, this)) {
1895
- this.flags = flags | 16;
1896
- return true;
1897
- } else this.flags = flags & -33;
1946
+ if (flags & 32) {
1947
+ if (checkDirty(this.deps, this)) {
1948
+ this.flags = flags | 16;
1949
+ return true;
1950
+ } else this.flags = flags & -33;
1951
+ }
1898
1952
  return false;
1899
1953
  }
1900
1954
  };
@@ -2073,10 +2127,12 @@ var ComputedRefImpl = class {
2073
2127
  get _dirty() {
2074
2128
  const flags = this.flags;
2075
2129
  if (flags & 16) return true;
2076
- if (flags & 32) if (checkDirty(this.deps, this)) {
2077
- this.flags = flags | 16;
2078
- return true;
2079
- } else this.flags = flags & -33;
2130
+ if (flags & 32) {
2131
+ if (checkDirty(this.deps, this)) {
2132
+ this.flags = flags | 16;
2133
+ return true;
2134
+ } else this.flags = flags & -33;
2135
+ }
2080
2136
  return false;
2081
2137
  }
2082
2138
  /**
@@ -2137,7 +2193,7 @@ var ComputedRefImpl = class {
2137
2193
  }
2138
2194
  };
2139
2195
  if (!!(process.env.NODE_ENV !== "production")) setupOnTrigger(ComputedRefImpl);
2140
- /* @__NO_SIDE_EFFECTS__ */
2196
+ /*@__NO_SIDE_EFFECTS__*/
2141
2197
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
2142
2198
  let getter;
2143
2199
  let setter;
@@ -2215,25 +2271,26 @@ var WatcherEffect = class extends ReactiveEffect {
2215
2271
  else if (isFunction(s)) return call ? call(s, 2) : s();
2216
2272
  else process.env.NODE_ENV !== "production" && warnInvalidSource(s, onWarn);
2217
2273
  });
2218
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2219
- else getter = () => {
2220
- if (this.cleanupsLength) {
2221
- const prevSub = setActiveSub();
2274
+ } else if (isFunction(source)) {
2275
+ if (cb) getter = call ? () => call(source, 2) : source;
2276
+ else getter = () => {
2277
+ if (this.cleanupsLength) {
2278
+ const prevSub = setActiveSub();
2279
+ try {
2280
+ cleanup(this);
2281
+ } finally {
2282
+ setActiveSub(prevSub);
2283
+ }
2284
+ }
2285
+ const currentEffect = activeWatcher;
2286
+ activeWatcher = this;
2222
2287
  try {
2223
- cleanup(this);
2288
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2224
2289
  } finally {
2225
- setActiveSub(prevSub);
2290
+ activeWatcher = currentEffect;
2226
2291
  }
2227
- }
2228
- const currentEffect = activeWatcher;
2229
- activeWatcher = this;
2230
- try {
2231
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2232
- } finally {
2233
- activeWatcher = currentEffect;
2234
- }
2235
- };
2236
- else {
2292
+ };
2293
+ } else {
2237
2294
  getter = NOOP;
2238
2295
  process.env.NODE_ENV !== "production" && warnInvalidSource(source, onWarn);
2239
2296
  }
@@ -2560,7 +2617,9 @@ const SchedulerJobFlags = {
2560
2617
  "ALLOW_RECURSE": 2,
2561
2618
  "2": "ALLOW_RECURSE",
2562
2619
  "DISPOSED": 4,
2563
- "4": "DISPOSED"
2620
+ "4": "DISPOSED",
2621
+ "REQUEUE_ON_SUSPENSE_DISCARD": 8,
2622
+ "8": "REQUEUE_ON_SUSPENSE_DISCARD"
2564
2623
  };
2565
2624
  const jobs = [];
2566
2625
  let postJobs = [];
@@ -2569,7 +2628,7 @@ let currentFlushPromise = null;
2569
2628
  let jobsLength = 0;
2570
2629
  let flushIndex = 0;
2571
2630
  let postFlushIndex = 0;
2572
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2631
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2573
2632
  const RECURSION_LIMIT = 100;
2574
2633
  function nextTick(fn) {
2575
2634
  const p = currentFlushPromise || resolvedPromise;
@@ -2608,6 +2667,7 @@ const doFlushJobs = () => {
2608
2667
  flushJobs();
2609
2668
  } catch (e) {
2610
2669
  currentFlushPromise = null;
2670
+ if (jobsLength || postJobs.length) queueFlush();
2611
2671
  throw e;
2612
2672
  }
2613
2673
  };
@@ -2615,9 +2675,10 @@ function queueFlush() {
2615
2675
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2616
2676
  }
2617
2677
  function queuePostFlushCb(jobs, id = Infinity) {
2618
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2619
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2620
- else for (const job of jobs) queueJobWorker(job, id, postJobs, postJobs.length, 0);
2678
+ if (!isArray(jobs)) {
2679
+ if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2680
+ else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2681
+ } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2621
2682
  queueFlush();
2622
2683
  }
2623
2684
  function flushPreFlushCbs(instance, seen) {
@@ -2631,32 +2692,39 @@ function flushPreFlushCbs(instance, seen) {
2631
2692
  i--;
2632
2693
  jobsLength--;
2633
2694
  if (cb.flags & 2) cb.flags &= -2;
2634
- cb();
2635
- if (!(cb.flags & 2)) cb.flags &= -2;
2695
+ try {
2696
+ cb();
2697
+ } finally {
2698
+ if (!(cb.flags & 2)) cb.flags &= -2;
2699
+ }
2636
2700
  }
2637
2701
  }
2638
2702
  function flushPostFlushCbs(seen) {
2639
2703
  if (postJobs.length) {
2640
2704
  if (activePostJobs) {
2641
- activePostJobs.push(...postJobs);
2705
+ for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
2642
2706
  postJobs.length = 0;
2643
2707
  return;
2644
2708
  }
2645
2709
  activePostJobs = postJobs;
2646
2710
  postJobs = [];
2647
2711
  if (!!(process.env.NODE_ENV !== "production")) seen = seen || /* @__PURE__ */ new Map();
2648
- while (postFlushIndex < activePostJobs.length) {
2649
- const cb = activePostJobs[postFlushIndex++];
2650
- if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) continue;
2651
- if (cb.flags & 2) cb.flags &= -2;
2652
- if (!(cb.flags & 4)) try {
2653
- cb();
2654
- } finally {
2655
- cb.flags &= -2;
2712
+ try {
2713
+ while (postFlushIndex < activePostJobs.length) {
2714
+ const cb = activePostJobs[postFlushIndex++];
2715
+ if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) continue;
2716
+ if (cb.flags & 2) cb.flags &= -2;
2717
+ if (!(cb.flags & 4)) try {
2718
+ cb();
2719
+ } finally {
2720
+ if (!(cb.flags & 2)) cb.flags &= -2;
2721
+ }
2656
2722
  }
2723
+ } finally {
2724
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2725
+ activePostJobs = null;
2726
+ postFlushIndex = 0;
2657
2727
  }
2658
- activePostJobs = null;
2659
- postFlushIndex = 0;
2660
2728
  }
2661
2729
  }
2662
2730
  let isFlushing = false;
@@ -2666,9 +2734,12 @@ let isFlushing = false;
2666
2734
  function flushOnAppMount(instance) {
2667
2735
  if (!isFlushing) {
2668
2736
  isFlushing = true;
2669
- flushPreFlushCbs(instance);
2670
- flushPostFlushCbs();
2671
- isFlushing = false;
2737
+ try {
2738
+ flushPreFlushCbs(instance);
2739
+ flushPostFlushCbs();
2740
+ } finally {
2741
+ isFlushing = false;
2742
+ }
2672
2743
  }
2673
2744
  }
2674
2745
  function flushJobs(seen) {
@@ -2698,8 +2769,8 @@ function flushJobs(seen) {
2698
2769
  jobsLength = 0;
2699
2770
  jobs.length = 0;
2700
2771
  flushPostFlushCbs(seen);
2701
- currentFlushPromise = null;
2702
2772
  if (jobsLength || postJobs.length) flushJobs(seen);
2773
+ else currentFlushPromise = null;
2703
2774
  }
2704
2775
  }
2705
2776
  function checkRecursiveUpdates(seen, fn) {
@@ -2730,6 +2801,19 @@ if (!!(process.env.NODE_ENV !== "production")) getGlobalThis().__VUE_HMR_RUNTIME
2730
2801
  rerender: tryWrap(rerender),
2731
2802
  reload: tryWrap(reload)
2732
2803
  };
2804
+ function runWithHmrUpdating(fn) {
2805
+ isHmrUpdating = true;
2806
+ let done = false;
2807
+ try {
2808
+ fn();
2809
+ done = true;
2810
+ } finally {
2811
+ if (done) nextTick(() => {
2812
+ isHmrUpdating = false;
2813
+ });
2814
+ else isHmrUpdating = false;
2815
+ }
2816
+ }
2733
2817
  const map = /* @__PURE__ */ new Map();
2734
2818
  function registerHMR(instance) {
2735
2819
  const id = instance.type.__hmrId;
@@ -2771,18 +2855,16 @@ function rerender(id, newRender) {
2771
2855
  instance.render = newRender;
2772
2856
  normalizeClassComponent(instance.type).render = newRender;
2773
2857
  }
2774
- isHmrUpdating = true;
2775
- if (instance.vapor) {
2776
- if (!instance.isUnmounted) instance.hmrRerender();
2777
- } else {
2778
- const i = instance;
2779
- if (!(i.effect.flags & 1024)) {
2780
- i.renderCache = [];
2781
- i.effect.run();
2858
+ runWithHmrUpdating(() => {
2859
+ if (instance.vapor) {
2860
+ if (!instance.isUnmounted) instance.hmrRerender();
2861
+ } else {
2862
+ const i = instance;
2863
+ if (!(i.effect.flags & 1024)) {
2864
+ i.renderCache = [];
2865
+ i.effect.run();
2866
+ }
2782
2867
  }
2783
- }
2784
- nextTick(() => {
2785
- isHmrUpdating = false;
2786
2868
  });
2787
2869
  });
2788
2870
  }
@@ -2797,17 +2879,19 @@ function reload(id, newComp) {
2797
2879
  for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
2798
2880
  const dirtyInstances = new Set(instances);
2799
2881
  const rerenderedParents = /* @__PURE__ */ new Set();
2800
- for (const instance of instances) {
2801
- const parent = instance.parent;
2802
- if (parent) {
2803
- if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2804
- rerenderedParents.add(parent);
2805
- parent.hmrRerender();
2806
- }
2807
- } else instance.hmrReload(newComp);
2808
- }
2882
+ runWithHmrUpdating(() => {
2883
+ for (const instance of instances) {
2884
+ const parent = instance.parent;
2885
+ if (parent) {
2886
+ if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2887
+ rerenderedParents.add(parent);
2888
+ parent.hmrRerender();
2889
+ }
2890
+ } else instance.hmrReload(newComp);
2891
+ }
2892
+ });
2809
2893
  } else {
2810
- const parentUpdates = /* @__PURE__ */ new Map();
2894
+ const parents = /* @__PURE__ */ new Set();
2811
2895
  const dirtyInstanceSet = new Set(instances);
2812
2896
  for (const instance of instances) {
2813
2897
  const oldComp = normalizeClassComponent(instance.type);
@@ -2826,33 +2910,23 @@ function reload(id, newComp) {
2826
2910
  instance.ceReload(newComp.styles);
2827
2911
  dirtyInstances.delete(instance);
2828
2912
  } else if (instance.parent) {
2829
- const parent = instance.parent;
2830
- if (!hasDirtyAncestor(instance, dirtyInstanceSet)) {
2831
- let updates = parentUpdates.get(parent);
2832
- if (!updates) parentUpdates.set(parent, updates = []);
2833
- updates.push([instance, dirtyInstances]);
2834
- }
2913
+ if (!hasDirtyAncestor(instance, dirtyInstanceSet)) parents.add(instance.parent);
2835
2914
  } else if (instance.appContext.reload) instance.appContext.reload();
2836
2915
  else if (typeof window !== "undefined") window.location.reload();
2837
2916
  else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
2838
2917
  if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2839
2918
  }
2840
- parentUpdates.forEach((updates, parent) => {
2919
+ parents.forEach((parent) => {
2841
2920
  queueJob(() => {
2842
- isHmrUpdating = true;
2843
- if (parent.vapor) parent.hmrRerender();
2844
- else {
2845
- const i = parent;
2846
- if (!(i.effect.flags & 1024)) {
2847
- i.renderCache = [];
2848
- i.effect.run();
2921
+ runWithHmrUpdating(() => {
2922
+ if (parent.vapor) parent.hmrRerender();
2923
+ else {
2924
+ const i = parent;
2925
+ if (!(i.effect.flags & 1024)) {
2926
+ i.renderCache = [];
2927
+ i.effect.run();
2928
+ }
2849
2929
  }
2850
- }
2851
- nextTick(() => {
2852
- isHmrUpdating = false;
2853
- });
2854
- updates.forEach(([instance, dirtyInstances]) => {
2855
- dirtyInstances.delete(instance);
2856
2930
  });
2857
2931
  });
2858
2932
  });
@@ -2922,20 +2996,20 @@ function devtoolsInitApp(app, version) {
2922
2996
  function devtoolsUnmountApp(app) {
2923
2997
  emit$2("app:unmount", app);
2924
2998
  }
2925
- const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added");
2926
- const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated");
2927
- const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook("component:removed");
2999
+ const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
3000
+ const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
3001
+ const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
2928
3002
  const devtoolsComponentRemoved = (component) => {
2929
3003
  if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
2930
3004
  };
2931
- /* @__NO_SIDE_EFFECTS__ */
3005
+ /*@__NO_SIDE_EFFECTS__*/
2932
3006
  function createDevtoolsComponentHook(hook) {
2933
3007
  return (component) => {
2934
3008
  emit$2(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
2935
3009
  };
2936
3010
  }
2937
- const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start");
2938
- const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end");
3011
+ const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
3012
+ const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
2939
3013
  function createDevtoolsPerformanceHook(hook) {
2940
3014
  return (component, type, time) => {
2941
3015
  emit$2(hook, component.appContext.app, component.uid, component, type, time);
@@ -3165,7 +3239,7 @@ function configureCompat$1(config) {
3165
3239
  if (!!(process.env.NODE_ENV !== "production")) validateCompatConfig(config);
3166
3240
  extend(globalCompatConfig, config);
3167
3241
  }
3168
- const seenConfigObjects = /* @__PURE__ */ new WeakSet();
3242
+ const seenConfigObjects = /*@__PURE__*/ new WeakSet();
3169
3243
  const warnedInvalidKeys = {};
3170
3244
  function validateCompatConfig(config, instance) {
3171
3245
  if (seenConfigObjects.has(config)) return;
@@ -3217,7 +3291,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
3217
3291
  }
3218
3292
  //#endregion
3219
3293
  //#region packages/runtime-core/src/compat/instanceEventEmitter.ts
3220
- const eventRegistryMap = /* @__PURE__ */ new WeakMap();
3294
+ const eventRegistryMap = /*@__PURE__*/ new WeakMap();
3221
3295
  function getRegistry(instance) {
3222
3296
  let events = eventRegistryMap.get(instance);
3223
3297
  if (!events) eventRegistryMap.set(instance, events = Object.create(null));
@@ -3351,19 +3425,21 @@ const legacyDirectiveHookMap = {
3351
3425
  };
3352
3426
  function mapCompatDirectiveHook(name, dir, instance) {
3353
3427
  const mappedName = legacyDirectiveHookMap[name];
3354
- if (mappedName) if (isArray(mappedName)) {
3355
- const hook = [];
3356
- mappedName.forEach((mapped) => {
3357
- const mappedHook = dir[mapped];
3358
- if (mappedHook) {
3359
- softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
3360
- hook.push(mappedHook);
3361
- }
3362
- });
3363
- return hook.length ? hook : void 0;
3364
- } else {
3365
- if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
3366
- return dir[mappedName];
3428
+ if (mappedName) {
3429
+ if (isArray(mappedName)) {
3430
+ const hook = [];
3431
+ mappedName.forEach((mapped) => {
3432
+ const mappedHook = dir[mapped];
3433
+ if (mappedHook) {
3434
+ softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
3435
+ hook.push(mappedHook);
3436
+ }
3437
+ });
3438
+ return hook.length ? hook : void 0;
3439
+ } else {
3440
+ if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
3441
+ return dir[mappedName];
3442
+ }
3367
3443
  }
3368
3444
  }
3369
3445
  //#endregion
@@ -3550,7 +3626,7 @@ function instanceWatch(source, value, options) {
3550
3626
  }
3551
3627
  const prev = setCurrentInstance(this);
3552
3628
  const res = doWatch(getter, cb.bind(publicThis), options);
3553
- setCurrentInstance(...prev);
3629
+ restoreCurrentInstance(prev);
3554
3630
  return res;
3555
3631
  }
3556
3632
  function createPathGetter(ctx, path) {
@@ -3572,15 +3648,16 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
3572
3648
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
3573
3649
  const resolveTarget = (props, select) => {
3574
3650
  const targetSelector = props && props.to;
3575
- if (isString(targetSelector)) if (!select) {
3576
- process.env.NODE_ENV !== "production" && warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3577
- return null;
3651
+ if (isString(targetSelector)) {
3652
+ if (!select) {
3653
+ process.env.NODE_ENV !== "production" && warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3654
+ return null;
3655
+ } else {
3656
+ const target = select(targetSelector);
3657
+ if (!!(process.env.NODE_ENV !== "production") && !target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
3658
+ return target;
3659
+ }
3578
3660
  } else {
3579
- const target = select(targetSelector);
3580
- if (!!(process.env.NODE_ENV !== "production") && !target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
3581
- return target;
3582
- }
3583
- else {
3584
3661
  if (!!(process.env.NODE_ENV !== "production") && !targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
3585
3662
  return targetSelector;
3586
3663
  }
@@ -3618,7 +3695,8 @@ const TeleportImpl = {
3618
3695
  if (pendingMounts.get(vnode) !== mountJob) return;
3619
3696
  pendingMounts.delete(vnode);
3620
3697
  if (isTeleportDisabled(vnode.props)) {
3621
- mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
3698
+ const mountContainer = parentNode(vnode.el) || container;
3699
+ mount(vnode, mountContainer, vnode.anchor);
3622
3700
  updateCssVars(vnode, true);
3623
3701
  }
3624
3702
  mountToTarget(vnode);
@@ -3727,15 +3805,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3727
3805
  const disabled = isTeleportDisabled(vnode.props);
3728
3806
  if (target) {
3729
3807
  const targetNode = target._lpa || target.firstChild;
3730
- if (vnode.shapeFlag & 16) if (disabled) {
3731
- hydrateDisabledTeleport(node, vnode);
3732
- hydrateAnchor(target, targetNode);
3733
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3734
- } else {
3735
- vnode.anchor = nextSibling(node);
3736
- hydrateAnchor(target, targetNode);
3737
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3738
- hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3808
+ if (vnode.shapeFlag & 16) {
3809
+ if (disabled) {
3810
+ hydrateDisabledTeleport(node, vnode);
3811
+ hydrateAnchor(target, targetNode);
3812
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3813
+ } else {
3814
+ vnode.anchor = nextSibling(node);
3815
+ hydrateAnchor(target, targetNode);
3816
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3817
+ hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3818
+ }
3739
3819
  }
3740
3820
  updateCssVars(vnode, disabled);
3741
3821
  } else if (disabled) {
@@ -3813,59 +3893,27 @@ const BaseTransitionPropsValidators = {
3813
3893
  onAfterAppear: TransitionHookValidator,
3814
3894
  onAppearCancelled: TransitionHookValidator
3815
3895
  };
3816
- const recursiveGetSubtree = (instance) => {
3817
- const subTree = isVaporComponent(instance.type) ? instance.block : instance.subTree;
3818
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
3819
- };
3896
+ function isEmptyTransitionChild(vnode, instance) {
3897
+ if (vnode.type === Comment) return true;
3898
+ if (vnode.type === VaporSlot || isVaporComponent(vnode.type)) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
3899
+ return !!vnode.component && isEmptyTransitionChild(vnode.component.subTree, instance);
3900
+ }
3820
3901
  const BaseTransitionImpl = {
3821
3902
  name: `BaseTransition`,
3822
3903
  props: BaseTransitionPropsValidators,
3823
3904
  setup(props, { slots }) {
3824
3905
  const instance = getCurrentInstance();
3825
3906
  const state = useTransitionState();
3907
+ let resumeAfterLeave;
3826
3908
  return () => {
3827
- const children = slots.default && getTransitionRawChildren(slots.default(), true);
3828
- const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
3909
+ const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
3829
3910
  if (!child) return;
3830
3911
  const rawProps = /* @__PURE__ */ toRaw(props);
3831
3912
  const { mode } = rawProps;
3832
3913
  checkTransitionMode(mode);
3833
- if (state.isLeaving) return emptyPlaceholder(child);
3834
- const innerChild = getInnerChild$1(child);
3835
- if (!innerChild) return emptyPlaceholder(child);
3836
- let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
3837
- if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
3838
- let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3839
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3840
- let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
3841
- setTransitionHooks(oldInnerChild, leavingHooks);
3842
- if (mode === "out-in" && innerChild.type !== Comment) {
3843
- state.isLeaving = true;
3844
- leavingHooks.afterLeave = () => {
3845
- state.isLeaving = false;
3846
- if (!(instance.job.flags & 4)) instance.update();
3847
- delete leavingHooks.afterLeave;
3848
- oldInnerChild = void 0;
3849
- };
3850
- return emptyPlaceholder(child);
3851
- } else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3852
- const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
3853
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3854
- el[leaveCbKey] = () => {
3855
- earlyRemove();
3856
- el[leaveCbKey] = void 0;
3857
- delete enterHooks.delayedLeave;
3858
- oldInnerChild = void 0;
3859
- };
3860
- enterHooks.delayedLeave = () => {
3861
- delayedLeave();
3862
- delete enterHooks.delayedLeave;
3863
- oldInnerChild = void 0;
3864
- };
3865
- };
3866
- else oldInnerChild = void 0;
3867
- } else if (oldInnerChild) oldInnerChild = void 0;
3868
- return child;
3914
+ return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3915
+ if (!(instance.job.flags & 4)) instance.update();
3916
+ }) : NOOP);
3869
3917
  };
3870
3918
  }
3871
3919
  };
@@ -3899,7 +3947,7 @@ function getLeavingNodesForType(state, vnode) {
3899
3947
  function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3900
3948
  const key = String(vnode.key);
3901
3949
  const leavingVNodesCache = getLeavingNodesForType(state, vnode);
3902
- return baseResolveTransitionHooks({
3950
+ const hooks = baseResolveTransitionHooks({
3903
3951
  isLeaving: () => leavingVNodesCache[key] === vnode,
3904
3952
  setLeavingNodeCache: () => {
3905
3953
  leavingVNodesCache[key] = vnode;
@@ -3917,6 +3965,13 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3917
3965
  return hooks;
3918
3966
  }
3919
3967
  }, props, state, instance);
3968
+ if (vnode.type === VaporSlot) extend(hooks, {
3969
+ __vapor: true,
3970
+ props,
3971
+ state,
3972
+ instance
3973
+ });
3974
+ return hooks;
3920
3975
  }
3921
3976
  function baseResolveTransitionHooks(context, props, state, instance) {
3922
3977
  const { isLeaving, setLeavingNodeCache, unsetLeavingNodeCache, earlyRemove, cloneHooks } = context;
@@ -3936,8 +3991,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3936
3991
  persisted,
3937
3992
  beforeEnter(el) {
3938
3993
  let hook = onBeforeEnter;
3939
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3940
- else return;
3994
+ if (!state.isMounted) {
3995
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
3996
+ else return;
3997
+ }
3941
3998
  if (el[leaveCbKey]) el[leaveCbKey](true);
3942
3999
  earlyRemove();
3943
4000
  callHook(hook, [el]);
@@ -3947,11 +4004,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3947
4004
  let hook = onEnter;
3948
4005
  let afterHook = onAfterEnter;
3949
4006
  let cancelHook = onEnterCancelled;
3950
- if (!state.isMounted) if (appear) {
3951
- hook = onAppear || onEnter;
3952
- afterHook = onAfterAppear || onAfterEnter;
3953
- cancelHook = onAppearCancelled || onEnterCancelled;
3954
- } else return;
4007
+ if (!state.isMounted) {
4008
+ if (appear) {
4009
+ hook = onAppear || onEnter;
4010
+ afterHook = onAfterAppear || onAfterEnter;
4011
+ cancelHook = onAppearCancelled || onEnterCancelled;
4012
+ } else return;
4013
+ }
3955
4014
  let called = false;
3956
4015
  el[enterCbKey$1] = (cancelled) => {
3957
4016
  if (called) return;
@@ -3985,7 +4044,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3985
4044
  else done();
3986
4045
  },
3987
4046
  clone(node) {
3988
- return cloneHooks(node);
4047
+ return cloneHooks ? cloneHooks(node) : hooks;
3989
4048
  }
3990
4049
  };
3991
4050
  return hooks;
@@ -4009,16 +4068,102 @@ function getInnerChild$1(vnode) {
4009
4068
  if (shapeFlag & 32 && isFunction(children.default)) return children.default();
4010
4069
  }
4011
4070
  }
4071
+ function resolveTransitionChild(children, renderEmpty = false) {
4072
+ const branches = children && getTransitionRawChildren(children, true);
4073
+ return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
4074
+ }
4075
+ /**
4076
+ * @internal
4077
+ */
4078
+ function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
4079
+ if (state.isLeaving) return emptyPlaceholder(next);
4080
+ const nextInner = getInnerChild$1(next);
4081
+ if (!nextInner) return emptyPlaceholder(next);
4082
+ let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
4083
+ if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
4084
+ enterHooks = hooks;
4085
+ });
4086
+ if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
4087
+ if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
4088
+ const mode = props.mode;
4089
+ const previousInner = previous && getInnerChild$1(previous);
4090
+ if (previous && previousInner && !isSameVNodeType(previousInner, nextInner) && !isEmptyTransitionChild(previousInner, instance)) {
4091
+ const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
4092
+ 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);
4093
+ }
4094
+ return next;
4095
+ }
4096
+ function forwardDelayedLeave(hooks, source) {
4097
+ const delayedLeave = source && source.delayedLeave;
4098
+ if (!delayedLeave) return;
4099
+ hooks.delayedLeave = () => {
4100
+ if (source.delayedLeave === delayedLeave) delayedLeave();
4101
+ delete hooks.delayedLeave;
4102
+ };
4103
+ }
4104
+ /**
4105
+ * Prepares an outgoing VNode when the incoming branch belongs to another
4106
+ * renderer. Returns true when out-in must defer the incoming branch.
4107
+ *
4108
+ * @internal
4109
+ */
4110
+ function prepareTransitionLeave(previous, enterHooks, props, state, instance, resumeAfterLeave) {
4111
+ const previousInner = getInnerChild$1(previous);
4112
+ if (!previousInner || isEmptyTransitionChild(previousInner, instance)) return false;
4113
+ return applyTransitionModeSwitch(previousInner, prepareLeavingTransitionHooks(previousInner, props, state, instance), enterHooks ? () => enterHooks : void 0, props, state, resumeAfterLeave);
4114
+ }
4115
+ function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
4116
+ return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
4117
+ }
4118
+ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
4119
+ if (props.mode === "out-in") {
4120
+ state.isLeaving = true;
4121
+ leavingHooks.afterLeave = () => {
4122
+ state.isLeaving = false;
4123
+ resumeAfterLeave();
4124
+ delete leavingHooks.afterLeave;
4125
+ };
4126
+ return true;
4127
+ } else if (props.mode === "in-out" && getEnterHooks) {
4128
+ let delayedLeavingVNode = leavingVNode;
4129
+ leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
4130
+ const enterHooks = getEnterHooks();
4131
+ if (!enterHooks) {
4132
+ delayedLeave();
4133
+ return;
4134
+ }
4135
+ const vnode = delayedLeavingVNode;
4136
+ const leavingVNodesCache = getLeavingNodesForType(state, vnode);
4137
+ leavingVNodesCache[String(vnode.key)] = vnode;
4138
+ el[leaveCbKey] = () => {
4139
+ earlyRemove();
4140
+ el[leaveCbKey] = void 0;
4141
+ delete enterHooks.delayedLeave;
4142
+ delayedLeavingVNode = void 0;
4143
+ };
4144
+ enterHooks.delayedLeave = () => {
4145
+ delayedLeave();
4146
+ delete enterHooks.delayedLeave;
4147
+ delayedLeavingVNode = void 0;
4148
+ };
4149
+ };
4150
+ }
4151
+ return false;
4152
+ }
4012
4153
  function setTransitionHooks(vnode, hooks) {
4013
- if (vnode.shapeFlag & 6 && vnode.component) if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4014
- else {
4154
+ if (vnode.shapeFlag & 6 && vnode.component) {
4015
4155
  vnode.transition = hooks;
4016
- setTransitionHooks(vnode.component.subTree, hooks);
4017
- }
4018
- else if (vnode.shapeFlag & 128) {
4019
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4020
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4156
+ if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4157
+ else {
4158
+ const subTree = vnode.component.subTree;
4159
+ return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
4160
+ }
4161
+ } else if (vnode.shapeFlag & 128) {
4162
+ const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4163
+ const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4164
+ return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
4021
4165
  } else vnode.transition = hooks;
4166
+ return hooks;
4022
4167
  }
4023
4168
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
4024
4169
  let ret = [];
@@ -4042,9 +4187,9 @@ function checkTransitionMode(mode) {
4042
4187
  }
4043
4188
  //#endregion
4044
4189
  //#region packages/runtime-core/src/apiDefineComponent.ts
4045
- /* @__NO_SIDE_EFFECTS__ */
4190
+ /*@__NO_SIDE_EFFECTS__*/
4046
4191
  function defineComponent(options, extraOptions) {
4047
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
4192
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
4048
4193
  }
4049
4194
  //#endregion
4050
4195
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -4141,15 +4286,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4141
4286
  if (rawRef.f) {
4142
4287
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
4143
4288
  if (isUnmount) isArray(existing) && remove(existing, refValue);
4144
- else if (!isArray(existing)) if (_isString) {
4145
- refs[ref] = [refValue];
4146
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4147
- } else {
4148
- const newVal = [refValue];
4149
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4150
- if (rawRef.k) refs[rawRef.k] = newVal;
4151
- }
4152
- else if (!existing.includes(refValue)) existing.push(refValue);
4289
+ else if (!isArray(existing)) {
4290
+ if (_isString) {
4291
+ refs[ref] = [refValue];
4292
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4293
+ } else {
4294
+ const newVal = [refValue];
4295
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4296
+ if (rawRef.k) refs[rawRef.k] = newVal;
4297
+ }
4298
+ } else if (!existing.includes(refValue)) existing.push(refValue);
4153
4299
  } else if (_isString) {
4154
4300
  refs[ref] = value;
4155
4301
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -4210,7 +4356,18 @@ const logMismatchError = () => {
4210
4356
  hasLoggedMismatchError = true;
4211
4357
  };
4212
4358
  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
4213
- const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
4359
+ const isMathMLContainer = (container) => {
4360
+ if (!container.namespaceURI.includes("MathML")) return false;
4361
+ if (container.tagName !== "annotation-xml") return true;
4362
+ const encoding = container.getAttribute("encoding");
4363
+ return !encoding || !encoding.includes("html");
4364
+ };
4365
+ /**
4366
+ * Resolve the element namespace a container's children should be created in.
4367
+ * The live DOM is the source of truth, so this also covers containers that are
4368
+ * only known at runtime (interop boundaries, teleport targets).
4369
+ * @internal
4370
+ */
4214
4371
  const getContainerType = (container) => {
4215
4372
  if (container.nodeType !== 1) return void 0;
4216
4373
  if (isSVGContainer(container)) return "svg";
@@ -4236,7 +4393,7 @@ function createHydrationFunctions(rendererInternals) {
4236
4393
  };
4237
4394
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
4238
4395
  optimized = optimized || !!vnode.dynamicChildren;
4239
- const isFragmentStart = isComment(node) && node.data === "[";
4396
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
4240
4397
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
4241
4398
  const { type, ref, shapeFlag, patchFlag } = vnode;
4242
4399
  let domType = node.nodeType;
@@ -4252,11 +4409,12 @@ function createHydrationFunctions(rendererInternals) {
4252
4409
  let nextNode = null;
4253
4410
  switch (type) {
4254
4411
  case Text:
4255
- if (domType !== 3) if (vnode.children === "") {
4256
- insert(vnode.el = createText(""), parentNode(node), node);
4257
- nextNode = node;
4258
- } else nextNode = onMismatch();
4259
- else {
4412
+ if (domType !== 3) {
4413
+ if (vnode.children === "") {
4414
+ insert(vnode.el = createText(""), parentNode(node), node);
4415
+ nextNode = node;
4416
+ } else nextNode = onMismatch();
4417
+ } else {
4260
4418
  if (node.data !== vnode.children) {
4261
4419
  (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
4262
4420
  logMismatchError();
@@ -4293,45 +4451,35 @@ function createHydrationFunctions(rendererInternals) {
4293
4451
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4294
4452
  break;
4295
4453
  case VaporSlot:
4296
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
4454
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
4297
4455
  break;
4298
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
4299
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4300
- else if (shapeFlag & 6) {
4456
+ default: if (shapeFlag & 1) {
4457
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
4458
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4459
+ } else if (shapeFlag & 6) {
4301
4460
  vnode.slotScopeIds = slotScopeIds;
4302
4461
  const container = parentNode(node);
4303
4462
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
4304
4463
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
4305
4464
  else nextNode = nextSibling(node);
4306
- if (vnode.type.__vapor) {
4307
- const vnodeBeforeMountHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeBeforeMount;
4308
- getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
4309
- if (vnode.dirs) {
4310
- invokeDirectiveHook(vnode, null, parentComponent, "created");
4311
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4312
- }
4313
- }, () => {
4314
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
4315
- });
4316
- if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
4317
- const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
4318
- if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
4319
- } else {
4465
+ if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
4466
+ else {
4320
4467
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
4321
4468
  const component = vnode.component;
4322
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
4469
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
4323
4470
  let subTree;
4324
4471
  if (isFragmentStart) {
4325
- subTree = createVNode(Fragment);
4472
+ subTree = createVNode(Static);
4326
4473
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4327
- } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4474
+ } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
4328
4475
  subTree.el = node;
4329
4476
  component.subTree = subTree;
4330
4477
  }
4331
4478
  }
4332
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
4333
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
4334
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
4479
+ } else if (shapeFlag & 64) {
4480
+ if (domType !== 8) nextNode = onMismatch();
4481
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
4482
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
4335
4483
  else if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
4336
4484
  }
4337
4485
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
@@ -4385,7 +4533,10 @@ function createHydrationFunctions(rendererInternals) {
4385
4533
  const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
4386
4534
  for (const key in props) {
4387
4535
  if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
4388
- if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) patchProp(el, key, null, props[key], namespace, parentComponent);
4536
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
4537
+ if (isUnchangedResourceProp(el, key, props[key])) continue;
4538
+ patchProp(el, key, null, props[key], namespace, parentComponent);
4539
+ }
4389
4540
  }
4390
4541
  } else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
4391
4542
  else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
@@ -4435,8 +4586,9 @@ function createHydrationFunctions(rendererInternals) {
4435
4586
  const { slotScopeIds: fragmentSlotScopeIds } = vnode;
4436
4587
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
4437
4588
  const container = parentNode(node);
4438
- const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4439
- if (next && isComment(next) && next.data === "]") return nextSibling(vnode.anchor = next);
4589
+ const first = nextSibling(node);
4590
+ const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4591
+ if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
4440
4592
  else {
4441
4593
  logMismatchError();
4442
4594
  insert(vnode.anchor = createComment(`]`), container, next);
@@ -4445,7 +4597,7 @@ function createHydrationFunctions(rendererInternals) {
4445
4597
  };
4446
4598
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
4447
4599
  if (!isNodeMismatchAllowed(node, vnode)) {
4448
- (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
4600
+ (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && (node.data === "[" || node.data === "(") ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
4449
4601
  logMismatchError();
4450
4602
  }
4451
4603
  vnode.el = null;
@@ -4461,20 +4613,22 @@ function createHydrationFunctions(rendererInternals) {
4461
4613
  const container = parentNode(node);
4462
4614
  remove(node);
4463
4615
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4464
- if (parentComponent) {
4616
+ if (parentComponent && parentComponent.vnode) {
4465
4617
  parentComponent.vnode.el = vnode.el;
4466
4618
  updateHOCHostEl(parentComponent, vnode.el);
4467
4619
  }
4468
4620
  return next;
4469
4621
  };
4470
- const locateClosingAnchor = (node, open = "[", close = "]") => {
4622
+ const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
4471
4623
  let match = 0;
4472
4624
  while (node) {
4473
4625
  node = nextSibling(node);
4474
4626
  if (node && isComment(node)) {
4475
4627
  if (node.data === open) match++;
4476
- if (node.data === close) if (match === 0) return nextSibling(node);
4477
- else match--;
4628
+ if (node.data === close) {
4629
+ if (match === 0) return nextSibling(node);
4630
+ else match--;
4631
+ }
4478
4632
  }
4479
4633
  }
4480
4634
  return node;
@@ -4484,7 +4638,7 @@ function createHydrationFunctions(rendererInternals) {
4484
4638
  if (parentNode) parentNode.replaceChild(newNode, oldNode);
4485
4639
  let parent = parentComponent;
4486
4640
  while (parent) {
4487
- if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4641
+ if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4488
4642
  parent = parent.parent;
4489
4643
  }
4490
4644
  };
@@ -4493,6 +4647,16 @@ function createHydrationFunctions(rendererInternals) {
4493
4647
  const isTemplateNode = (node) => {
4494
4648
  return node.nodeType === 1 && node.tagName === "TEMPLATE";
4495
4649
  };
4650
+ const resourceProps = /*@__PURE__*/ new Set([
4651
+ "src",
4652
+ "srcset",
4653
+ "href",
4654
+ "poster"
4655
+ ]);
4656
+ function isUnchangedResourceProp(el, key, clientValue) {
4657
+ if (!resourceProps.has(key)) return false;
4658
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
4659
+ }
4496
4660
  /**
4497
4661
  * Dev only
4498
4662
  */
@@ -4536,7 +4700,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
4536
4700
  function getAttributeMismatch(el, key, clientValue) {
4537
4701
  let actual;
4538
4702
  let expected;
4539
- if (isBooleanAttr(key)) {
4703
+ if (key === "hidden") {
4704
+ actual = normalizeHiddenValue(el.getAttribute(key));
4705
+ expected = normalizeHiddenValue(clientValue);
4706
+ } else if (isBooleanAttr(key)) {
4540
4707
  actual = el.hasAttribute(key);
4541
4708
  expected = includeBooleanAttr(clientValue);
4542
4709
  } else if (clientValue == null) {
@@ -4564,6 +4731,11 @@ function warnPropMismatch(el, mismatchKey, mismatchType, actual, expected) {
4564
4731
  }
4565
4732
  return false;
4566
4733
  }
4734
+ function normalizeHiddenValue(value) {
4735
+ if (!isRenderableAttrValue(value)) return false;
4736
+ if (isString(value)) return value.toLowerCase() === "until-found" ? "until-found" : "";
4737
+ return includeBooleanAttr(value) ? "" : false;
4738
+ }
4567
4739
  function toClassSet(str) {
4568
4740
  return new Set(str.trim().split(/\s+/));
4569
4741
  }
@@ -4714,16 +4886,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
4714
4886
  return teardown;
4715
4887
  };
4716
4888
  function forEachElement(node, cb) {
4717
- if (isComment(node) && node.data === "[") {
4889
+ if (isComment(node) && (node.data === "[" || node.data === "(")) {
4890
+ const open = node.data;
4891
+ const close = open === "[" ? "]" : ")";
4718
4892
  let depth = 1;
4719
4893
  let next = node.nextSibling;
4720
4894
  while (next) {
4721
4895
  if (next.nodeType === 1) {
4722
4896
  if (cb(next) === false) break;
4723
4897
  } else if (isComment(next)) {
4724
- if (next.data === "]") {
4898
+ if (next.data === close) {
4725
4899
  if (--depth === 0) break;
4726
- } else if (next.data === "[") depth++;
4900
+ } else if (next.data === open) depth++;
4727
4901
  }
4728
4902
  next = next.nextSibling;
4729
4903
  }
@@ -4732,14 +4906,14 @@ function forEachElement(node, cb) {
4732
4906
  //#endregion
4733
4907
  //#region packages/runtime-core/src/apiAsyncComponent.ts
4734
4908
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4735
- /* @__NO_SIDE_EFFECTS__ */
4909
+ /*@__NO_SIDE_EFFECTS__*/
4736
4910
  function defineAsyncComponent(source) {
4737
4911
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
4738
4912
  return /* @__PURE__ */ defineComponent({
4739
4913
  name: "AsyncComponentWrapper",
4740
4914
  __asyncLoader: load,
4741
4915
  __asyncHydrate(el, instance, hydrate) {
4742
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
4916
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
4743
4917
  },
4744
4918
  get __asyncResolved() {
4745
4919
  return getResolvedComp();
@@ -4858,10 +5032,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
4858
5032
  * shared between core and vapor
4859
5033
  * @internal
4860
5034
  */
4861
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
5035
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4862
5036
  const wasConnected = el.isConnected;
4863
5037
  let patched = false;
4864
- (instance.bu || (instance.bu = [])).push(() => patched = true);
5038
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
4865
5039
  const performHydrate = () => {
4866
5040
  if (patched) {
4867
5041
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -4951,10 +5125,13 @@ const KeepAliveImpl = {
4951
5125
  });
4952
5126
  let pendingCacheKey = null;
4953
5127
  const cacheSubtree = () => {
4954
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4955
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4956
- }, void 0, keepAliveInstance.subTree.suspense);
4957
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5128
+ if (pendingCacheKey != null) {
5129
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
5130
+ const vnode = getInnerChild(keepAliveInstance.subTree);
5131
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
5132
+ }, void 0, keepAliveInstance.subTree.suspense);
5133
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5134
+ }
4958
5135
  };
4959
5136
  onMounted(cacheSubtree);
4960
5137
  onUpdated(cacheSubtree);
@@ -5025,7 +5202,7 @@ const decorate$2 = (t) => {
5025
5202
  t.__isBuiltIn = true;
5026
5203
  return t;
5027
5204
  };
5028
- const KeepAlive = /* @__PURE__ */ decorate$2(KeepAliveImpl);
5205
+ const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
5029
5206
  function matches(pattern, name) {
5030
5207
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
5031
5208
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -5116,7 +5293,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
5116
5293
  try {
5117
5294
  return callWithAsyncErrorHandling(hook, target, type, args);
5118
5295
  } finally {
5119
- setCurrentInstance(...prev);
5296
+ restoreCurrentInstance(prev);
5120
5297
  setActiveSub(prevSub);
5121
5298
  }
5122
5299
  });
@@ -5241,16 +5418,17 @@ function compatH(type, propsOrChildren, children) {
5241
5418
  }
5242
5419
  const l = arguments.length;
5243
5420
  const is2ndArgArrayChildren = isArray(propsOrChildren);
5244
- if (l === 2 || is2ndArgArrayChildren) if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
5245
- if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
5246
- return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
5247
- } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
5248
- else {
5421
+ if (l === 2 || is2ndArgArrayChildren) {
5422
+ if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
5423
+ if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
5424
+ return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
5425
+ } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
5426
+ } else {
5249
5427
  if (isVNode(children)) children = [children];
5250
5428
  return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
5251
5429
  }
5252
5430
  }
5253
- const skipLegacyRootLevelProps = /* @__PURE__ */ makeMap("staticStyle,staticClass,directives,model,hook");
5431
+ const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
5254
5432
  function convertLegacyProps(legacyProps, type) {
5255
5433
  if (!legacyProps) return null;
5256
5434
  const converted = {};
@@ -5262,8 +5440,10 @@ function convertLegacyProps(legacyProps, type) {
5262
5440
  if (key === "nativeOn") handlerKey += `Native`;
5263
5441
  const existing = converted[handlerKey];
5264
5442
  const incoming = listeners[event];
5265
- if (existing !== incoming) if (existing) converted[handlerKey] = [].concat(existing, incoming);
5266
- else converted[handlerKey] = incoming;
5443
+ if (existing !== incoming) {
5444
+ if (existing) converted[handlerKey] = [].concat(existing, incoming);
5445
+ else converted[handlerKey] = incoming;
5446
+ }
5267
5447
  }
5268
5448
  } else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
5269
5449
  if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
@@ -5362,7 +5542,7 @@ function convertLegacyFunctionalComponent(comp) {
5362
5542
  const legacyFn = comp.render;
5363
5543
  const Func = (props, ctx) => {
5364
5544
  const instance = getCurrentInstance();
5365
- return legacyFn(compatH, {
5545
+ const legacyCtx = {
5366
5546
  props,
5367
5547
  children: instance.vnode.children || [],
5368
5548
  data: instance.vnode.props || {},
@@ -5382,7 +5562,8 @@ function convertLegacyFunctionalComponent(comp) {
5382
5562
  }
5383
5563
  return {};
5384
5564
  }
5385
- });
5565
+ };
5566
+ return legacyFn(compatH, legacyCtx);
5386
5567
  };
5387
5568
  Func.props = comp.props;
5388
5569
  Func.displayName = comp.name;
@@ -5411,23 +5592,25 @@ function renderList(source, renderItem, cache, index) {
5411
5592
  }
5412
5593
  ret = new Array(source.length);
5413
5594
  for (let i = 0, l = source.length; i < l; i++) ret[i] = renderItem(needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], i, void 0, cached && cached[i]);
5414
- } else if (typeof source === "number") if (!!(process.env.NODE_ENV !== "production") && (!Number.isInteger(source) || source < 0)) {
5415
- warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5416
- ret = [];
5417
- } else {
5418
- ret = new Array(source);
5419
- for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
5420
- }
5421
- else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
5422
- else {
5423
- const keys = Object.keys(source);
5424
- ret = new Array(keys.length);
5425
- for (let i = 0, l = keys.length; i < l; i++) {
5426
- const key = keys[i];
5427
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
5595
+ } else if (typeof source === "number") {
5596
+ if (!!(process.env.NODE_ENV !== "production") && (!Number.isInteger(source) || source < 0)) {
5597
+ warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5598
+ ret = [];
5599
+ } else {
5600
+ ret = new Array(source);
5601
+ for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
5428
5602
  }
5429
- }
5430
- else ret = [];
5603
+ } else if (isObject(source)) {
5604
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
5605
+ else {
5606
+ const keys = Object.keys(source);
5607
+ ret = new Array(keys.length);
5608
+ for (let i = 0, l = keys.length; i < l; i++) {
5609
+ const key = keys[i];
5610
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
5611
+ }
5612
+ }
5613
+ } else ret = [];
5431
5614
  if (cache) cache[index] = ret;
5432
5615
  return ret;
5433
5616
  }
@@ -5452,18 +5635,45 @@ function createSlots(slots, dynamicSlots) {
5452
5635
  //#endregion
5453
5636
  //#region packages/runtime-core/src/helpers/renderSlot.ts
5454
5637
  /**
5638
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
5639
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
5640
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
5641
+ * "which one". Internal to vapor interop.
5642
+ */
5643
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
5644
+ /**
5645
+ * Invokes a VDOM slot fallback under the outlet owner that produced it, the
5646
+ * way `renderSlot` would have rendered it inline. Vapor interop invokes
5647
+ * fallbacks late, outside any render, so it passes the owner recorded on the
5648
+ * vapor slot vnode. Internal to vapor interop.
5649
+ */
5650
+ function invokeSlotFallback(fallback, owner) {
5651
+ if (!owner) return fallback();
5652
+ const prev = setCurrentRenderingInstance(owner);
5653
+ const prevStackSize = blockStack.length;
5654
+ try {
5655
+ return fallback();
5656
+ } finally {
5657
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5658
+ setCurrentRenderingInstance(prev);
5659
+ }
5660
+ }
5661
+ /**
5455
5662
  * Compiler runtime helper for rendering `<slot/>`
5456
5663
  * @private
5457
5664
  */
5458
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5665
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5666
+ if (props == null) props = {};
5459
5667
  let slot = slots[name];
5460
- if (fallback) fallback.__vdom = true;
5461
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
5668
+ const vaporSlot = slot && slot[rawVaporSlotKey];
5462
5669
  if (vaporSlot) {
5463
5670
  const ret = (openBlock(), createBlock(VaporSlot, props));
5464
5671
  ret.vs = {
5465
5672
  slot: vaporSlot,
5466
- fallback
5673
+ outlets: fallback ? [{
5674
+ fallback,
5675
+ owner: currentRenderingInstance
5676
+ }] : void 0
5467
5677
  };
5468
5678
  if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
5469
5679
  return ret;
@@ -5484,9 +5694,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5484
5694
  let rendered;
5485
5695
  try {
5486
5696
  const validSlotContent = slot && ensureValidVNode(slot(props));
5487
- ensureVaporSlotFallback(validSlotContent, fallback);
5697
+ let attached = false;
5698
+ if (fallback && validSlotContent && currentRenderingInstance) {
5699
+ const interop = currentRenderingInstance.appContext.vapor;
5700
+ if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
5701
+ }
5488
5702
  const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
5489
5703
  rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
5704
+ if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
5705
+ if (attached) rendered.vo = true;
5490
5706
  } catch (err) {
5491
5707
  for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5492
5708
  throw err;
@@ -5504,10 +5720,6 @@ function ensureValidVNode(vnodes) {
5504
5720
  return true;
5505
5721
  }) ? vnodes : null;
5506
5722
  }
5507
- function ensureVaporSlotFallback(vnodes, fallback) {
5508
- let vaporSlot;
5509
- if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
5510
- }
5511
5723
  //#endregion
5512
5724
  //#region packages/runtime-core/src/helpers/toHandlers.ts
5513
5725
  /**
@@ -5566,12 +5778,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
5566
5778
  function mapKeyToName(slots) {
5567
5779
  for (let i = 0; i < slots.length; i++) {
5568
5780
  const fn = slots[i];
5569
- if (fn) if (isArray(fn)) mapKeyToName(fn);
5570
- else fn.name = fn.key || "default";
5781
+ if (fn) {
5782
+ if (isArray(fn)) mapKeyToName(fn);
5783
+ else fn.name = fn.key || "default";
5784
+ }
5571
5785
  }
5572
5786
  return slots;
5573
5787
  }
5574
- const staticCacheMap = /* @__PURE__ */ new WeakMap();
5788
+ const staticCacheMap = /*@__PURE__*/ new WeakMap();
5575
5789
  function legacyRenderStatic(instance, index) {
5576
5790
  let cache = staticCacheMap.get(instance);
5577
5791
  if (!cache) staticCacheMap.set(instance, cache = []);
@@ -5704,11 +5918,38 @@ const getPublicInstance = (i) => {
5704
5918
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
5705
5919
  return getPublicInstance(i.parent);
5706
5920
  };
5921
+ const resolveDevRootEl = (vnode) => {
5922
+ let found = false;
5923
+ while (true) {
5924
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
5925
+ const root = filterSingleRoot(vnode.children);
5926
+ if (!root) return;
5927
+ vnode = root;
5928
+ found = true;
5929
+ continue;
5930
+ }
5931
+ const component = vnode.component;
5932
+ if (component && component.subTree) {
5933
+ vnode = component.subTree;
5934
+ continue;
5935
+ }
5936
+ const suspense = vnode.suspense;
5937
+ if (suspense && suspense.activeBranch) {
5938
+ vnode = suspense.activeBranch;
5939
+ continue;
5940
+ }
5941
+ return found ? vnode.el : void 0;
5942
+ }
5943
+ };
5944
+ const getDevRootFragmentEl = (i) => {
5945
+ const el = i.subTree && resolveDevRootEl(i.subTree);
5946
+ return el === void 0 ? i.vnode.el : el;
5947
+ };
5707
5948
  let publicPropertiesMap;
5708
5949
  const getPublicPropertiesMap = () => {
5709
5950
  if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
5710
5951
  $: (i) => i,
5711
- $el: (i) => i.vnode.el,
5952
+ $el: (i) => !!(process.env.NODE_ENV !== "production") ? getDevRootFragmentEl(i) : i.vnode.el,
5712
5953
  $data: (i) => i.data,
5713
5954
  $props: (i) => !!(process.env.NODE_ENV !== "production") ? /* @__PURE__ */ shallowReadonly(i.props) : i.props,
5714
5955
  $attrs: (i) => !!(process.env.NODE_ENV !== "production") ? /* @__PURE__ */ shallowReadonly(i.attrs) : i.attrs,
@@ -5821,7 +6062,7 @@ if (!!(process.env.NODE_ENV !== "production") && true) PublicInstanceProxyHandle
5821
6062
  warn$1("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.");
5822
6063
  return Reflect.ownKeys(target);
5823
6064
  };
5824
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
6065
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
5825
6066
  get(target, key) {
5826
6067
  if (key === Symbol.unscopables) return;
5827
6068
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -6006,12 +6247,13 @@ function mergeDefaults(raw, defaults) {
6006
6247
  for (const key in defaults) {
6007
6248
  if (key.startsWith("__skip")) continue;
6008
6249
  let opt = props[key];
6009
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
6010
- type: opt,
6011
- default: defaults[key]
6012
- };
6013
- else opt.default = defaults[key];
6014
- else if (opt === null) opt = props[key] = { default: defaults[key] };
6250
+ if (opt) {
6251
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
6252
+ type: opt,
6253
+ default: defaults[key]
6254
+ };
6255
+ else opt.default = defaults[key];
6256
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
6015
6257
  else if (!!(process.env.NODE_ENV !== "production")) warn$1(`props default key "${key}" has no corresponding declaration.`);
6016
6258
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
6017
6259
  }
@@ -6061,37 +6303,32 @@ function createPropsRestProxy(props, excludedKeys) {
6061
6303
  function withAsyncContext(getAwaitable) {
6062
6304
  const ctx = getCurrentGenericInstance();
6063
6305
  const inSSRSetup = isInSSRComponentSetup;
6064
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
6065
6306
  if (!!(process.env.NODE_ENV !== "production") && !ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
6066
6307
  let awaitable = getAwaitable();
6067
6308
  setCurrentInstance(null, void 0);
6068
6309
  if (inSSRSetup) setInSSRSetupState(false);
6069
6310
  const restore = () => {
6070
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6311
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6071
6312
  setCurrentInstance(ctx);
6072
6313
  if (inSSRSetup) setInSSRSetupState(true);
6073
- const reset = restoreAsyncContext && restoreAsyncContext();
6074
- return () => {
6075
- if (reset) reset();
6076
- if (resetStoppedScope) resetStoppedScope.reset();
6077
- };
6314
+ return stoppedScope;
6078
6315
  };
6079
6316
  const cleanup = () => {
6080
6317
  setCurrentInstance(null, void 0);
6081
6318
  if (inSSRSetup) setInSSRSetupState(false);
6082
6319
  };
6083
6320
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
6084
- const reset = restore();
6321
+ const stoppedScope = restore();
6085
6322
  Promise.resolve().then(() => Promise.resolve().then(() => {
6086
- if (reset) reset();
6323
+ if (stoppedScope) stoppedScope.reset();
6087
6324
  cleanup();
6088
6325
  }));
6089
6326
  throw e;
6090
6327
  });
6091
6328
  return [awaitable, () => {
6092
- const reset = restore();
6329
+ const stoppedScope = restore();
6093
6330
  Promise.resolve().then(() => {
6094
- if (reset) reset();
6331
+ if (stoppedScope) stoppedScope.reset();
6095
6332
  cleanup();
6096
6333
  });
6097
6334
  }];
@@ -6155,11 +6392,12 @@ function applyOptions(instance) {
6155
6392
  const opt = computedOptions[key];
6156
6393
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
6157
6394
  if (!!(process.env.NODE_ENV !== "production") && get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
6395
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== "production") ? () => {
6396
+ warn$1(`Write operation failed: computed property "${key}" is readonly.`);
6397
+ } : NOOP;
6158
6398
  const c = computed({
6159
6399
  get,
6160
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== "production") ? () => {
6161
- warn$1(`Write operation failed: computed property "${key}" is readonly.`);
6162
- } : NOOP
6400
+ set
6163
6401
  });
6164
6402
  Object.defineProperty(ctx, key, {
6165
6403
  enumerable: true,
@@ -6219,9 +6457,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
6219
6457
  for (const key in injectOptions) {
6220
6458
  const opt = injectOptions[key];
6221
6459
  let injected;
6222
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
6223
- else injected = inject(opt.from || key);
6224
- else injected = inject(opt);
6460
+ if (isObject(opt)) {
6461
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
6462
+ else injected = inject(opt.from || key);
6463
+ } else injected = inject(opt);
6225
6464
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
6226
6465
  enumerable: true,
6227
6466
  configurable: true,
@@ -6241,7 +6480,8 @@ function createWatcher(raw, ctx, publicThis, key) {
6241
6480
  {
6242
6481
  const cur = getCurrentInstance();
6243
6482
  const instance = cur && getCurrentScope() === cur.scope ? cur : null;
6244
- if (isArray(getter()) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
6483
+ const newValue = getter();
6484
+ if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
6245
6485
  const baseGetter = getter;
6246
6486
  getter = () => {
6247
6487
  const val = baseGetter();
@@ -6254,13 +6494,14 @@ function createWatcher(raw, ctx, publicThis, key) {
6254
6494
  if (isFunction(handler)) watch(getter, handler, options);
6255
6495
  else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
6256
6496
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
6257
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
6258
- else {
6259
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
6260
- if (isFunction(handler)) watch(getter, handler, extend(raw, options));
6261
- else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6262
- }
6263
- else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch option: "${key}"`, raw);
6497
+ else if (isObject(raw)) {
6498
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
6499
+ else {
6500
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
6501
+ if (isFunction(handler)) watch(getter, handler, extend(raw, options));
6502
+ else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6503
+ }
6504
+ } else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Invalid watch option: "${key}"`, raw);
6264
6505
  }
6265
6506
  /**
6266
6507
  * Resolve merged options and cache it on the component.
@@ -6274,12 +6515,13 @@ function resolveMergedOptions(instance) {
6274
6515
  const cached = cache.get(base);
6275
6516
  let resolved;
6276
6517
  if (cached) resolved = cached;
6277
- else if (!globalMixins.length && !mixins && !extendsOptions) if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
6278
- resolved = extend({}, base);
6279
- resolved.parent = instance.parent && instance.parent.proxy;
6280
- resolved.propsData = instance.vnode.props;
6281
- } else resolved = base;
6282
- else {
6518
+ else if (!globalMixins.length && !mixins && !extendsOptions) {
6519
+ if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
6520
+ resolved = extend({}, base);
6521
+ resolved.parent = instance.parent && instance.parent.proxy;
6522
+ resolved.propsData = instance.vnode.props;
6523
+ } else resolved = base;
6524
+ } else {
6283
6525
  resolved = {};
6284
6526
  if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
6285
6527
  mergeOptions(resolved, base, optionMergeStrategies);
@@ -6352,7 +6594,7 @@ function mergeObjectOptions(to, from) {
6352
6594
  }
6353
6595
  function mergeEmitsOrPropsOptions(to, from) {
6354
6596
  if (to) {
6355
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
6597
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
6356
6598
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
6357
6599
  } else return from;
6358
6600
  }
@@ -6413,7 +6655,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6413
6655
  if (options.el) return vm.$mount(options.el);
6414
6656
  else return vm;
6415
6657
  }
6416
- Vue.version = `2.6.14-compat:3.6.0-rc.1`;
6658
+ Vue.version = `2.6.14-compat:3.6.0-rc.11`;
6417
6659
  Vue.config = singletonApp.config;
6418
6660
  Vue.use = (plugin, ...options) => {
6419
6661
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -6809,8 +7051,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
6809
7051
  } else if (!!(process.env.NODE_ENV !== "production")) warn$1(`Cannot unmount an app that is not mounted.`);
6810
7052
  },
6811
7053
  provide(key, value) {
6812
- if (!!(process.env.NODE_ENV !== "production") && key in context.provides) if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
6813
- else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
7054
+ if (!!(process.env.NODE_ENV !== "production") && key in context.provides) {
7055
+ if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
7056
+ else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
7057
+ }
6814
7058
  context.provides[key] = value;
6815
7059
  return app;
6816
7060
  },
@@ -6892,13 +7136,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
6892
7136
  const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
6893
7137
  const res = customRef((track, trigger) => {
6894
7138
  let localValue;
7139
+ let prevPropValue = EMPTY_OBJ;
6895
7140
  let prevSetValue = EMPTY_OBJ;
6896
7141
  let prevEmittedValue;
6897
7142
  watchSyncEffect(() => {
6898
7143
  const propValue = props[camelizedName];
6899
- if (hasChanged(localValue, propValue)) {
6900
- localValue = propValue;
6901
- trigger();
7144
+ if (hasChanged(prevPropValue, propValue)) {
7145
+ prevPropValue = propValue;
7146
+ if (hasChanged(localValue, propValue)) {
7147
+ localValue = propValue;
7148
+ trigger();
7149
+ }
6902
7150
  }
6903
7151
  });
6904
7152
  return {
@@ -6960,12 +7208,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
6960
7208
  if (instance.isUnmounted) return;
6961
7209
  if (!!(process.env.NODE_ENV !== "production")) {
6962
7210
  const { emitsOptions, propsOptions } = instance;
6963
- if (emitsOptions) if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
6964
- if (!propsOptions || !propsOptions[0] || !(toHandlerKey(camelize(event)) in propsOptions[0])) warn$1(`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`);
6965
- } else {
6966
- const validator = emitsOptions[event];
6967
- if (isFunction(validator)) {
6968
- if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
7211
+ if (emitsOptions) {
7212
+ if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
7213
+ if (!propsOptions || !propsOptions[0] || !(toHandlerKey(camelize(event)) in propsOptions[0])) warn$1(`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`);
7214
+ } else {
7215
+ const validator = emitsOptions[event];
7216
+ if (isFunction(validator)) {
7217
+ if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
7218
+ }
6969
7219
  }
6970
7220
  }
6971
7221
  }
@@ -6975,7 +7225,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
6975
7225
  const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
6976
7226
  if (modifiers) {
6977
7227
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
6978
- if (modifiers.number) args = rawArgs.map(looseToNumber);
7228
+ if (modifiers.number) args = args.map(looseToNumber);
6979
7229
  }
6980
7230
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentEmit(instance, event, args);
6981
7231
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -7121,8 +7371,9 @@ function renderComponentRoot(instance) {
7121
7371
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
7122
7372
  }
7123
7373
  if (vnode.transition) {
7124
- if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
7125
- setTransitionHooks(root, vnode.transition);
7374
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
7375
+ if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(child)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
7376
+ setTransitionHooks(child, vnode.transition);
7126
7377
  }
7127
7378
  if (!!(process.env.NODE_ENV !== "production") && setRoot) setRoot(root);
7128
7379
  else result = root;
@@ -7173,18 +7424,21 @@ function filterSingleRoot(children, recurse = true) {
7173
7424
  for (let i = 0; i < children.length; i++) {
7174
7425
  const child = children[i];
7175
7426
  if (isVNode(child)) {
7176
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
7177
- else {
7178
- singleRoot = child;
7179
- if (!!(process.env.NODE_ENV !== "production") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
7427
+ if (child.type !== Comment || child.children === "v-if") {
7428
+ if (singleRoot) return;
7429
+ else {
7430
+ singleRoot = child;
7431
+ if (!!(process.env.NODE_ENV !== "production") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
7432
+ }
7180
7433
  }
7181
7434
  } else return;
7182
7435
  }
7183
7436
  return singleRoot;
7184
7437
  }
7438
+ const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
7185
7439
  const getFunctionalFallthrough = (attrs) => {
7186
7440
  let res;
7187
- for (const key in attrs) if (key === "class" || key === "style" || isOn(key)) (res || (res = {}))[key] = attrs[key];
7441
+ for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
7188
7442
  return res;
7189
7443
  };
7190
7444
  const filterModelListeners = (attrs, props) => {
@@ -7320,16 +7574,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7320
7574
  let key = propsToUpdate[i];
7321
7575
  if (isEmitListener(instance.emitsOptions, key)) continue;
7322
7576
  const value = rawProps[key];
7323
- if (options) if (hasOwn(attrs, key)) {
7324
- if (value !== attrs[key]) {
7325
- attrs[key] = value;
7326
- hasAttrsChanged = true;
7577
+ if (options) {
7578
+ if (hasOwn(attrs, key)) {
7579
+ if (value !== attrs[key]) {
7580
+ attrs[key] = value;
7581
+ hasAttrsChanged = true;
7582
+ }
7583
+ } else {
7584
+ const camelizedKey = camelize(key);
7585
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
7327
7586
  }
7328
7587
  } else {
7329
- const camelizedKey = camelize(key);
7330
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
7331
- }
7332
- else {
7333
7588
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
7334
7589
  else if (shouldSkipAttr(key, instance)) continue;
7335
7590
  if (value !== attrs[key]) {
@@ -7342,9 +7597,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7342
7597
  } else {
7343
7598
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
7344
7599
  let kebabKey;
7345
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
7346
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
7347
- } else delete props[key];
7600
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
7601
+ if (options) {
7602
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
7603
+ } else delete props[key];
7604
+ }
7348
7605
  if (attrs !== rawCurrentProps) {
7349
7606
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
7350
7607
  delete attrs[key];
@@ -7365,9 +7622,10 @@ function setFullProps(instance, rawProps, props, attrs) {
7365
7622
  if (key === "inline-template") continue;
7366
7623
  const value = rawProps[key];
7367
7624
  let camelKey;
7368
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
7369
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
7370
- else if (!isEmitListener(instance.emitsOptions, key)) {
7625
+ if (options && hasOwn(options, camelKey = camelize(key))) {
7626
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
7627
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
7628
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
7371
7629
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
7372
7630
  else if (shouldSkipAttr(key, instance)) continue;
7373
7631
  if (!(key in attrs) || value !== attrs[key]) {
@@ -7416,7 +7674,7 @@ function baseResolveDefault(factory, instance, key) {
7416
7674
  const prev = setCurrentInstance(instance);
7417
7675
  const props = /* @__PURE__ */ toRaw(instance.props);
7418
7676
  value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
7419
- setCurrentInstance(...prev);
7677
+ restoreCurrentInstance(prev);
7420
7678
  return value;
7421
7679
  }
7422
7680
  const mixinPropsCache = /* @__PURE__ */ new WeakMap();
@@ -7533,7 +7791,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
7533
7791
  }
7534
7792
  if (validator && !validator(value, !!(process.env.NODE_ENV !== "production") ? /* @__PURE__ */ shallowReadonly(resolvedProps) : resolvedProps)) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
7535
7793
  }
7536
- const isSimpleType = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
7794
+ const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
7537
7795
  /**
7538
7796
  * dev only
7539
7797
  */
@@ -7646,12 +7904,13 @@ const updateSlots = (instance, children, optimized) => {
7646
7904
  let deletionComparisonTarget = EMPTY_OBJ;
7647
7905
  if (vnode.shapeFlag & 32) {
7648
7906
  const type = children._;
7649
- if (type) if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) {
7650
- assignSlots(slots, children, optimized);
7651
- trigger(instance, "set", "$slots");
7652
- } else if (optimized && type === 1) needDeletionCheck = false;
7653
- else assignSlots(slots, children, optimized);
7654
- else {
7907
+ if (type) {
7908
+ if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) {
7909
+ assignSlots(slots, children, optimized);
7910
+ trigger(instance, "set", "$slots");
7911
+ } else if (optimized && type === 1) needDeletionCheck = false;
7912
+ else assignSlots(slots, children, optimized);
7913
+ } else {
7655
7914
  needDeletionCheck = !children.$stable;
7656
7915
  normalizeObjectSlots(children, slots, instance);
7657
7916
  }
@@ -7669,7 +7928,7 @@ const updateSlots = (instance, children, optimized) => {
7669
7928
  let supported;
7670
7929
  let perf;
7671
7930
  let cachedNow$1 = 0;
7672
- const p$1 = /* @__PURE__ */ Promise.resolve();
7931
+ const p$1 = /*@__PURE__*/ Promise.resolve();
7673
7932
  const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
7674
7933
  /**
7675
7934
  * @internal
@@ -7780,6 +8039,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7780
8039
  optimized = false;
7781
8040
  n2.dynamicChildren = null;
7782
8041
  }
8042
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
8043
+ if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
8044
+ n2.dynamicChildren.hasOnce = true;
8045
+ }
7783
8046
  const { type, ref, shapeFlag } = n2;
7784
8047
  switch (type) {
7785
8048
  case Text:
@@ -7796,7 +8059,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7796
8059
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7797
8060
  break;
7798
8061
  case VaporSlot:
7799
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
8062
+ getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
7800
8063
  break;
7801
8064
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7802
8065
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -7917,7 +8180,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7917
8180
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
7918
8181
  };
7919
8182
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
7920
- for (let i = start; i < children.length; i++) patch(null, children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]), container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8183
+ for (let i = start; i < children.length; i++) {
8184
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
8185
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8186
+ }
7921
8187
  };
7922
8188
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
7923
8189
  const el = n2.el = n1.el;
@@ -7929,6 +8195,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7929
8195
  let vnodeHook;
7930
8196
  parentComponent && toggleRecurse(parentComponent, false);
7931
8197
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8198
+ if (n2.ibu) n2.ibu();
7932
8199
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
7933
8200
  parentComponent && toggleRecurse(parentComponent, true);
7934
8201
  if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -7962,8 +8229,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7962
8229
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
7963
8230
  }
7964
8231
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
7965
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
8232
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
7966
8233
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8234
+ n2.iu && n2.iu();
7967
8235
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
7968
8236
  }, void 0, parentSuspense);
7969
8237
  };
@@ -7971,7 +8239,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7971
8239
  for (let i = 0; i < newChildren.length; i++) {
7972
8240
  const oldVNode = oldChildren[i];
7973
8241
  const newVNode = newChildren[i];
7974
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
8242
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
8243
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
7975
8244
  }
7976
8245
  };
7977
8246
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -8010,41 +8279,15 @@ function baseCreateRenderer(options, createHydrationFns) {
8010
8279
  };
8011
8280
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
8012
8281
  n2.slotScopeIds = slotScopeIds;
8013
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
8014
- else {
8015
- const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
8016
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
8017
- if (n2.dirs) {
8018
- invokeDirectiveHook(n2, null, parentComponent, "created");
8019
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
8020
- }
8021
- }, () => {
8022
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
8023
- });
8024
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
8025
- const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
8026
- if (vnodeMountedHook) {
8027
- const scopedVNode = n2;
8028
- queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
8029
- }
8030
- }
8031
- else {
8032
- const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
8033
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
8034
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
8035
- }, () => {
8036
- const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
8037
- if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
8038
- });
8039
- const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
8040
- if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
8041
- n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
8042
- vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
8043
- }, void 0, parentSuspense);
8044
- }
8045
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
8046
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
8047
- else updateComponent(n1, n2, optimized);
8282
+ if (n2.type.__vapor) {
8283
+ if (n1 == null) {
8284
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
8285
+ else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
8286
+ } else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
8287
+ } else if (n1 == null) {
8288
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
8289
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
8290
+ } else updateComponent(n1, n2, optimized);
8048
8291
  };
8049
8292
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
8050
8293
  const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
@@ -8092,16 +8335,18 @@ function baseCreateRenderer(options, createHydrationFns) {
8092
8335
  };
8093
8336
  const updateComponent = (n1, n2, optimized) => {
8094
8337
  const instance = n2.component = n1.component;
8095
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
8096
- if (!!(process.env.NODE_ENV !== "production")) pushWarningContext(n2);
8097
- updateComponentPreRender(instance, n2, optimized);
8098
- if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
8099
- return;
8338
+ if (shouldUpdateComponent(n1, n2, optimized)) {
8339
+ if (instance.asyncDep && !instance.asyncResolved) {
8340
+ if (!!(process.env.NODE_ENV !== "production")) pushWarningContext(n2);
8341
+ n2.el = n1.el;
8342
+ updateComponentPreRender(instance, n2, optimized);
8343
+ if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
8344
+ return;
8345
+ } else {
8346
+ instance.next = n2;
8347
+ instance.effect.run();
8348
+ }
8100
8349
  } else {
8101
- instance.next = n2;
8102
- instance.effect.run();
8103
- }
8104
- else {
8105
8350
  n2.el = n1.el;
8106
8351
  instance.vnode = n2;
8107
8352
  }
@@ -8206,6 +8451,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8206
8451
  } else next = vnode;
8207
8452
  if (bu) invokeArrayFns(bu);
8208
8453
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
8454
+ if (next.ibu) next.ibu();
8209
8455
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
8210
8456
  toggleRecurse(instance, true);
8211
8457
  if (!!(process.env.NODE_ENV !== "production")) startMeasure(instance, `render`);
@@ -8219,7 +8465,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8219
8465
  next.el = nextTree.el;
8220
8466
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
8221
8467
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
8222
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
8468
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
8469
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
8470
+ next.iu && next.iu();
8471
+ }, void 0, parentSuspense);
8223
8472
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
8224
8473
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentUpdated(instance);
8225
8474
  if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
@@ -8260,9 +8509,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8260
8509
  if (shapeFlag & 8) {
8261
8510
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
8262
8511
  if (c2 !== c1) hostSetElementText(container, c2);
8263
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8264
- else unmountChildren(c1, parentComponent, parentSuspense, true);
8265
- else {
8512
+ } else if (prevShapeFlag & 16) {
8513
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8514
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
8515
+ } else {
8266
8516
  if (prevShapeFlag & 8) hostSetElementText(container, "");
8267
8517
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8268
8518
  }
@@ -8361,15 +8611,17 @@ function baseCreateRenderer(options, createHydrationFns) {
8361
8611
  const anchorVNode = c2[nextIndex + 1];
8362
8612
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
8363
8613
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8364
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
8365
- else j--;
8614
+ else if (moved) {
8615
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
8616
+ else j--;
8617
+ }
8366
8618
  }
8367
8619
  }
8368
8620
  };
8369
8621
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
8370
8622
  const { el, type, transition, children, shapeFlag } = vnode;
8371
8623
  if (isVaporComponent(type) || type === VaporSlot) {
8372
- getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
8624
+ getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
8373
8625
  return;
8374
8626
  }
8375
8627
  if (shapeFlag & 6) {
@@ -8394,54 +8646,37 @@ function baseCreateRenderer(options, createHydrationFns) {
8394
8646
  moveStaticNode(vnode, container, anchor);
8395
8647
  return;
8396
8648
  }
8397
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8398
- else {
8399
- const { leave, delayLeave, afterLeave } = transition;
8400
- const remove = () => {
8649
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
8650
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8651
+ else performTransitionLeave(el, transition, () => {
8401
8652
  if (vnode.ctx.isUnmounted) hostRemove(el);
8402
8653
  else hostInsert(el, container, anchor);
8403
- };
8404
- const performLeave = () => {
8405
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8406
- if (el._isLeaving) el[leaveCbKey](true);
8407
- if (transition.persisted && !wasLeaving) remove();
8408
- else leave(el, () => {
8409
- remove();
8410
- afterLeave && afterLeave();
8411
- });
8412
- };
8413
- if (delayLeave) delayLeave(el, remove, performLeave);
8414
- else performLeave();
8415
- }
8416
- else hostInsert(el, container, anchor);
8654
+ }, true, true);
8655
+ } else hostInsert(el, container, anchor);
8417
8656
  };
8418
8657
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
8419
8658
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
8420
- if (patchFlag === -2) optimized = false;
8659
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
8421
8660
  if (ref != null) {
8422
8661
  const prevSub = setActiveSub();
8423
8662
  setRef(ref, null, parentSuspense, vnode, true);
8424
8663
  setActiveSub(prevSub);
8425
8664
  }
8426
- if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
8665
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
8427
8666
  if (shapeFlag & 256) {
8428
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
8667
+ if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
8429
8668
  else parentComponent.ctx.deactivate(vnode);
8430
8669
  return;
8431
8670
  }
8671
+ if (shapeFlag & 6 && isVaporComponent(type)) {
8672
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8673
+ return;
8674
+ }
8432
8675
  const shouldInvokeDirs = shapeFlag & 1 && dirs;
8433
8676
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
8434
8677
  let vnodeHook;
8435
8678
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
8436
- if (shapeFlag & 6) if (isVaporComponent(type)) {
8437
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
8438
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8439
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
8440
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
8441
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
8442
- }, void 0, parentSuspense);
8443
- return;
8444
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
8679
+ if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
8445
8680
  else {
8446
8681
  if (shapeFlag & 128) {
8447
8682
  vnode.suspense.unmount(parentSuspense, doRemove);
@@ -8452,7 +8687,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8452
8687
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
8453
8688
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
8454
8689
  if (type === VaporSlot) {
8455
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8690
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8456
8691
  return;
8457
8692
  }
8458
8693
  if (doRemove) remove(vnode);
@@ -8476,6 +8711,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8476
8711
  }
8477
8712
  if (type === Static) {
8478
8713
  removeStaticNode(vnode);
8714
+ if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8479
8715
  return;
8480
8716
  }
8481
8717
  if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
@@ -8501,7 +8737,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8501
8737
  if (effect) {
8502
8738
  effect.stop();
8503
8739
  unmount(subTree, instance, parentSuspense, doRemove);
8504
- } else if (doRemove && subTree && instance.vnode.el) remove(subTree);
8740
+ } else if (instance.vnode.el && subTree) {
8741
+ subTree.transition = instance.vnode.transition;
8742
+ unmount(subTree, instance, parentSuspense, doRemove);
8743
+ }
8505
8744
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
8506
8745
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
8507
8746
  queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
@@ -8576,12 +8815,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
8576
8815
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
8577
8816
  }
8578
8817
  function toggleRecurse({ effect, job, vapor }, allowed) {
8579
- if (!vapor) if (allowed) {
8580
- effect.flags |= 128;
8581
- job.flags |= 2;
8582
- } else {
8583
- effect.flags &= -129;
8584
- job.flags &= -3;
8818
+ if (!vapor) {
8819
+ if (allowed) {
8820
+ effect.flags |= 128;
8821
+ job.flags |= 2;
8822
+ } else {
8823
+ effect.flags &= -129;
8824
+ job.flags &= -3;
8825
+ }
8585
8826
  }
8586
8827
  }
8587
8828
  function needTransition(parentSuspense, transition) {
@@ -8621,8 +8862,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
8621
8862
  }
8622
8863
  function locateNonHydratedAsyncRoot(instance) {
8623
8864
  const subComponent = instance.subTree && instance.subTree.component;
8624
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
8625
- else return locateNonHydratedAsyncRoot(subComponent);
8865
+ if (subComponent) {
8866
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
8867
+ else return locateNonHydratedAsyncRoot(subComponent);
8868
+ }
8626
8869
  }
8627
8870
  function invalidateMount(hooks) {
8628
8871
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
@@ -8641,13 +8884,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
8641
8884
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
8642
8885
  const performRemove = () => {
8643
8886
  remove();
8644
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8887
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
8645
8888
  };
8646
8889
  if (force || isElement && transition && !transition.persisted) {
8647
8890
  const { leave, delayLeave } = transition;
8648
8891
  const performLeave = () => {
8892
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8649
8893
  if (el._isLeaving && force) el[leaveCbKey](true);
8650
- leave(el, performRemove);
8894
+ if (force && transition.persisted && !wasLeaving) remove();
8895
+ else leave(el, performRemove);
8651
8896
  };
8652
8897
  if (delayLeave) delayLeave(el, performRemove, performLeave);
8653
8898
  else performLeave();
@@ -8666,7 +8911,7 @@ function isVaporComponent(type) {
8666
8911
  /**
8667
8912
  * shared between vdom and vapor
8668
8913
  */
8669
- function getInheritedScopeIds(vnode, parentComponent) {
8914
+ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
8670
8915
  const inheritedScopeIds = [];
8671
8916
  let currentParent = parentComponent;
8672
8917
  let currentVNode = vnode;
@@ -8682,6 +8927,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
8682
8927
  currentParent = currentParent.parent;
8683
8928
  } else break;
8684
8929
  }
8930
+ const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
8931
+ if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
8685
8932
  return inheritedScopeIds;
8686
8933
  }
8687
8934
  function resolveAsyncComponentPlaceholder(anchorVnode) {
@@ -8700,7 +8947,7 @@ const Suspense = {
8700
8947
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
8701
8948
  if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
8702
8949
  else {
8703
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
8950
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
8704
8951
  n2.suspense = n1.suspense;
8705
8952
  n2.suspense.vnode = n2;
8706
8953
  n2.el = n1.el;
@@ -8738,10 +8985,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
8738
8985
  if (pendingBranch) {
8739
8986
  suspense.pendingBranch = newBranch;
8740
8987
  if (isSameVNodeType(pendingBranch, newBranch)) {
8741
- patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8988
+ suspense.deps++;
8989
+ patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8990
+ suspense.deps--;
8742
8991
  if (suspense.deps <= 0) suspense.resolve();
8743
8992
  else if (isInFallback) {
8744
- if (!isHydrating) {
8993
+ if (!isHydrating && !suspense.isFallbackMountPending) {
8745
8994
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8746
8995
  setActiveBranch(suspense, newFallback);
8747
8996
  }
@@ -8753,12 +9002,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
8753
9002
  suspense.activeBranch = pendingBranch;
8754
9003
  } else unmount(pendingBranch, parentComponent, suspense);
8755
9004
  suspense.deps = 0;
9005
+ for (let i = 0; i < suspense.effects.length; i++) {
9006
+ const effect = suspense.effects[i];
9007
+ if (effect.flags & 8) queuePostFlushCb(effect);
9008
+ }
8756
9009
  suspense.effects.length = 0;
8757
9010
  suspense.hiddenContainer = createElement("div");
8758
9011
  if (isInFallback) {
8759
9012
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8760
9013
  if (suspense.deps <= 0) suspense.resolve();
8761
- else {
9014
+ else if (!suspense.isFallbackMountPending) {
8762
9015
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8763
9016
  setActiveBranch(suspense, newFallback);
8764
9017
  }
@@ -8862,7 +9115,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8862
9115
  let hasUnresolvedAncestor = false;
8863
9116
  while (parent) {
8864
9117
  if (parent.pendingBranch) {
8865
- parent.effects.push(...effects);
9118
+ for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
8866
9119
  hasUnresolvedAncestor = true;
8867
9120
  break;
8868
9121
  }
@@ -8872,6 +9125,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8872
9125
  suspense.effects = [];
8873
9126
  if (isSuspensible) {
8874
9127
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
9128
+ parentSuspenseId = void 0;
8875
9129
  parentSuspense.deps--;
8876
9130
  if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
8877
9131
  }
@@ -8886,8 +9140,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8886
9140
  const mountFallback = () => {
8887
9141
  suspense.isFallbackMountPending = false;
8888
9142
  if (!suspense.isInFallback) return;
8889
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8890
- setActiveBranch(suspense, fallbackVNode);
9143
+ const latestFallback = suspense.vnode.ssFallback;
9144
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
9145
+ setActiveBranch(suspense, latestFallback);
8891
9146
  };
8892
9147
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
8893
9148
  if (delayEnter) {
@@ -8908,11 +9163,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8908
9163
  registerDep(instance, onResolve) {
8909
9164
  const isInPendingSuspense = !!suspense.pendingBranch;
8910
9165
  if (isInPendingSuspense) suspense.deps++;
9166
+ const hydratedEl = instance.vnode && instance.vnode.el;
8911
9167
  instance.asyncDep.catch((err) => {
8912
9168
  handleError(err, instance, 0);
8913
9169
  }).then((asyncSetupResult) => {
8914
9170
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
8915
9171
  setCurrentInstance(null, void 0);
9172
+ if (hydratedEl && !instance.scope.active) {
9173
+ if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
9174
+ return;
9175
+ }
8916
9176
  instance.asyncResolved = true;
8917
9177
  onResolve(asyncSetupResult);
8918
9178
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
@@ -8963,9 +9223,10 @@ function normalizeSuspenseSlot(s) {
8963
9223
  return s;
8964
9224
  }
8965
9225
  function queueEffectWithSuspense(fn, id, suspense) {
8966
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
8967
- else suspense.effects.push(fn);
8968
- else queuePostFlushCb(fn, id);
9226
+ if (suspense && suspense.pendingBranch) {
9227
+ if (isArray(fn)) suspense.effects.push(...fn);
9228
+ else suspense.effects.push(fn);
9229
+ } else queuePostFlushCb(fn, id);
8969
9230
  }
8970
9231
  function setActiveBranch(suspense, branch) {
8971
9232
  suspense.activeBranch = branch;
@@ -9172,11 +9433,26 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
9172
9433
  if (shapeFlag & 128) type.normalize(vnode);
9173
9434
  } else if (children) vnode.shapeFlag |= isString(children) ? 8 : 16;
9174
9435
  if (!!(process.env.NODE_ENV !== "production") && vnode.key !== vnode.key) warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
9436
+ if (!!(process.env.NODE_ENV !== "production") && props && vnode.shapeFlag & 1) {
9437
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
9438
+ if (overwritingProp && hasContentChildren(vnode.children)) warn$1(`The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`);
9439
+ }
9175
9440
  if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) currentBlock.push(vnode);
9176
9441
  convertLegacyVModelProps(vnode);
9177
9442
  defineLegacyVNodeProperties(vnode);
9178
9443
  return vnode;
9179
9444
  }
9445
+ /**
9446
+ * dev only
9447
+ * Whether children would actually render something. Empty text and empty
9448
+ * arrays are ignored, mirroring the compiler's `node.children.length` check
9449
+ * for `v-html` / `v-text`.
9450
+ */
9451
+ function hasContentChildren(children) {
9452
+ if (isString(children)) return children !== "";
9453
+ if (isArray(children)) return children.length > 0;
9454
+ return false;
9455
+ }
9180
9456
  const createVNode = !!(process.env.NODE_ENV !== "production") ? createVNodeWithArgsTransform : _createVNode;
9181
9457
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
9182
9458
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -9186,8 +9462,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
9186
9462
  if (isVNode(type)) {
9187
9463
  const cloned = cloneVNode(type, props, true);
9188
9464
  if (children) normalizeChildren(cloned, children);
9189
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
9190
- else currentBlock.push(cloned);
9465
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
9466
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
9467
+ else currentBlock.push(cloned);
9468
+ }
9191
9469
  cloned.patchFlag = -2;
9192
9470
  return cloned;
9193
9471
  }
@@ -9248,7 +9526,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
9248
9526
  ce: vnode.ce,
9249
9527
  vi: vnode.vi,
9250
9528
  vs: cloneVaporSlotMeta(vnode),
9251
- vb: vnode.vb
9529
+ vb: vnode.vb,
9530
+ ibu: vnode.ibu,
9531
+ iu: vnode.iu,
9532
+ cacheIndex: vnode.cacheIndex
9252
9533
  };
9253
9534
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
9254
9535
  defineLegacyVNodeProperties(cloned);
@@ -9259,8 +9540,7 @@ function cloneVaporSlotMeta(vnode) {
9259
9540
  if (!vaporSlot) return vaporSlot;
9260
9541
  const cloned = {
9261
9542
  slot: vaporSlot.slot,
9262
- fallback: vaporSlot.fallback,
9263
- outletFallback: vaporSlot.outletFallback
9543
+ outlets: vaporSlot.outlets
9264
9544
  };
9265
9545
  if (vnode.el) {
9266
9546
  cloned.state = vaporSlot.state;
@@ -9312,25 +9592,28 @@ function normalizeChildren(vnode, children) {
9312
9592
  const { shapeFlag } = vnode;
9313
9593
  if (children == null) children = null;
9314
9594
  else if (isArray(children)) type = 16;
9315
- else if (typeof children === "object") if (shapeFlag & 65) {
9316
- const slot = children.default;
9317
- if (slot) {
9318
- slot._c && (slot._d = false);
9319
- normalizeChildren(vnode, slot());
9320
- slot._c && (slot._d = true);
9321
- }
9322
- return;
9323
- } else {
9324
- type = 32;
9325
- const slotFlag = children._;
9326
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
9327
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
9328
- else {
9329
- children._ = 2;
9330
- vnode.patchFlag |= 1024;
9595
+ else if (typeof children === "object") {
9596
+ if (shapeFlag & 65) {
9597
+ const slot = children.default;
9598
+ if (slot) {
9599
+ slot._c && (slot._d = false);
9600
+ normalizeChildren(vnode, slot());
9601
+ slot._c && (slot._d = true);
9602
+ }
9603
+ return;
9604
+ } else {
9605
+ type = 32;
9606
+ const slotFlag = children._;
9607
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
9608
+ else if (slotFlag === 3 && currentRenderingInstance) {
9609
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
9610
+ else {
9611
+ children._ = 2;
9612
+ vnode.patchFlag |= 1024;
9613
+ }
9614
+ }
9331
9615
  }
9332
- }
9333
- else if (isFunction(children)) {
9616
+ } else if (isFunction(children)) {
9334
9617
  if (shapeFlag & 65) {
9335
9618
  normalizeChildren(vnode, { default: children });
9336
9619
  return;
@@ -9407,6 +9690,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
9407
9690
  simpleSetCurrentInstance(instance);
9408
9691
  }
9409
9692
  };
9693
+ /**
9694
+ * Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
9695
+ * `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
9696
+ * verbatim instead of re-triggering the `instance.scope` default.
9697
+ * @internal
9698
+ */
9699
+ const restoreCurrentInstance = (prev) => {
9700
+ setCurrentScope(prev[1]);
9701
+ simpleSetCurrentInstance(prev[0]);
9702
+ };
9410
9703
  const internalOptions = [
9411
9704
  "ce",
9412
9705
  "type",
@@ -9438,7 +9731,7 @@ const useInstanceOption = (key, silent = false) => {
9438
9731
  };
9439
9732
  //#endregion
9440
9733
  //#region packages/runtime-core/src/component.ts
9441
- const emptyAppContext = /* @__PURE__ */ createAppContext();
9734
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
9442
9735
  let uid = 0;
9443
9736
  /**
9444
9737
  * @internal for vapor
@@ -9567,7 +9860,7 @@ function setupStatefulComponent(instance, isSSR) {
9567
9860
  const setupResult = callWithErrorHandling(setup, instance, 0, [!!(process.env.NODE_ENV !== "production") ? /* @__PURE__ */ shallowReadonly(instance.props) : instance.props, setupContext]);
9568
9861
  const isAsyncSetup = isPromise(setupResult);
9569
9862
  setActiveSub(prevSub);
9570
- setCurrentInstance(...prev);
9863
+ restoreCurrentInstance(prev);
9571
9864
  if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
9572
9865
  if (isAsyncSetup) {
9573
9866
  const unsetCurrentInstance = () => {
@@ -9575,7 +9868,12 @@ function setupStatefulComponent(instance, isSSR) {
9575
9868
  };
9576
9869
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
9577
9870
  if (isSSR) return setupResult.then((resolvedResult) => {
9578
- handleSetupResult(instance, resolvedResult, isSSR);
9871
+ setInSSRSetupState(true);
9872
+ try {
9873
+ handleSetupResult(instance, resolvedResult, isSSR);
9874
+ } finally {
9875
+ setInSSRSetupState(false);
9876
+ }
9579
9877
  }).catch((e) => {
9580
9878
  handleError(e, instance, 0);
9581
9879
  });
@@ -9587,9 +9885,10 @@ function setupStatefulComponent(instance, isSSR) {
9587
9885
  } else finishComponentSetup(instance, isSSR);
9588
9886
  }
9589
9887
  function handleSetupResult(instance, setupResult, isSSR) {
9590
- if (isFunction(setupResult)) if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
9591
- else instance.render = setupResult;
9592
- else if (isObject(setupResult)) {
9888
+ if (isFunction(setupResult)) {
9889
+ if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
9890
+ else instance.render = setupResult;
9891
+ } else if (isObject(setupResult)) {
9593
9892
  if (!!(process.env.NODE_ENV !== "production") && isVNode(setupResult)) warn$1("setup() should not return VNodes directly - return a render function instead.");
9594
9893
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) instance.devtoolsRawSetupState = setupResult;
9595
9894
  instance.setupState = proxyRefs(setupResult);
@@ -9641,13 +9940,15 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
9641
9940
  applyOptions(instance);
9642
9941
  } finally {
9643
9942
  setActiveSub(prevSub);
9644
- setCurrentInstance(...prevInstance);
9943
+ restoreCurrentInstance(prevInstance);
9645
9944
  }
9646
9945
  }
9647
- if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) if (!compile$1 && Component.template)
9946
+ if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) {
9947
+ if (!compile$1 && Component.template)
9648
9948
  /* v8 ignore start */
9649
- warn$1("Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".");
9650
- else warn$1(`Component is missing template or render function: `, Component);
9949
+ warn$1("Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".");
9950
+ else warn$1(`Component is missing template or render function: `, Component);
9951
+ }
9651
9952
  }
9652
9953
  const attrsProxyHandlers = !!(process.env.NODE_ENV !== "production") ? {
9653
9954
  get(target, key) {
@@ -9720,14 +10021,13 @@ function getComponentPublicInstance(instance) {
9720
10021
  if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
9721
10022
  get(target, key) {
9722
10023
  if (key in target) return target[key];
9723
- else {
10024
+ else if (!instance.vapor) {
9724
10025
  const publicPropertiesMap = getPublicPropertiesMap();
9725
10026
  if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
9726
10027
  }
9727
10028
  },
9728
10029
  has(target, key) {
9729
- const publicPropertiesMap = getPublicPropertiesMap();
9730
- return key in target || key in publicPropertiesMap;
10030
+ return key in target || !instance.vapor && key in getPublicPropertiesMap();
9731
10031
  }
9732
10032
  }));
9733
10033
  else return instance.proxy;
@@ -9765,11 +10065,12 @@ function h(type, propsOrChildren, children) {
9765
10065
  try {
9766
10066
  setBlockTracking(-1);
9767
10067
  const l = arguments.length;
9768
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
9769
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
9770
- return createVNode(type, propsOrChildren);
9771
- } else return createVNode(type, null, propsOrChildren);
9772
- else {
10068
+ if (l === 2) {
10069
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
10070
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
10071
+ return createVNode(type, propsOrChildren);
10072
+ } else return createVNode(type, null, propsOrChildren);
10073
+ } else {
9773
10074
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
9774
10075
  else if (l === 3 && isVNode(children)) children = [children];
9775
10076
  return createVNode(type, propsOrChildren, children);
@@ -9961,7 +10262,7 @@ function isMemoSame(cached, memo) {
9961
10262
  }
9962
10263
  //#endregion
9963
10264
  //#region packages/runtime-core/src/index.ts
9964
- const version = "3.6.0-rc.1";
10265
+ const version = "3.6.0-rc.11";
9965
10266
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
9966
10267
  /**
9967
10268
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -9984,7 +10285,10 @@ const ssrUtils = {
9984
10285
  getComponentPublicInstance,
9985
10286
  ensureValidVNode,
9986
10287
  pushWarningContext,
9987
- popWarningContext
10288
+ popWarningContext,
10289
+ VaporSlot,
10290
+ rawVaporSlotKey,
10291
+ invokeSlotFallback
9988
10292
  };
9989
10293
  /**
9990
10294
  * @internal only exposed in compat builds
@@ -10006,7 +10310,7 @@ const DeprecationTypes = DeprecationTypes$1;
10006
10310
  let policy = void 0;
10007
10311
  const tt = typeof window !== "undefined" && window.trustedTypes;
10008
10312
  if (tt) try {
10009
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
10313
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
10010
10314
  } catch (e) {
10011
10315
  process.env.NODE_ENV !== "production" && warn(`Error creating trusted types policy: ${e}`);
10012
10316
  }
@@ -10014,7 +10318,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
10014
10318
  const svgNS = "http://www.w3.org/2000/svg";
10015
10319
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
10016
10320
  const doc = typeof document !== "undefined" ? document : null;
10017
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
10321
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
10018
10322
  const nodeOps = {
10019
10323
  insert: (child, parent, anchor) => {
10020
10324
  parent.insertBefore(child, anchor || null);
@@ -10088,7 +10392,7 @@ const DOMTransitionPropsValidators = {
10088
10392
  leaveActiveClass: String,
10089
10393
  leaveToClass: String
10090
10394
  };
10091
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
10395
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
10092
10396
  /**
10093
10397
  * Wrap logic that attaches extra properties to Transition in a function
10094
10398
  * so that it can be annotated as pure
@@ -10103,7 +10407,7 @@ const decorate$1 = (t) => {
10103
10407
  * DOM Transition is a higher-order-component based on the platform-agnostic
10104
10408
  * base Transition component, with DOM-specific logic.
10105
10409
  */
10106
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
10410
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
10107
10411
  /**
10108
10412
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
10109
10413
  * with custom HOCs.
@@ -10343,14 +10647,15 @@ const vShow = {
10343
10647
  },
10344
10648
  updated(el, { value, oldValue }, { transition }) {
10345
10649
  if (!value === !oldValue) return;
10346
- if (transition) if (value) {
10347
- transition.beforeEnter(el);
10348
- setDisplay(el, true);
10349
- transition.enter(el);
10350
- } else transition.leave(el, () => {
10351
- setDisplay(el, false);
10352
- });
10353
- else setDisplay(el, value);
10650
+ if (transition) {
10651
+ if (value) {
10652
+ transition.beforeEnter(el);
10653
+ setDisplay(el, true);
10654
+ transition.enter(el);
10655
+ } else transition.leave(el, () => {
10656
+ setDisplay(el, false);
10657
+ });
10658
+ } else setDisplay(el, value);
10354
10659
  },
10355
10660
  beforeUnmount(el, { value }) {
10356
10661
  setDisplay(el, value);
@@ -10374,50 +10679,20 @@ const CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== "production") ? "CSS_VAR
10374
10679
  */
10375
10680
  function useCssVars(getter) {
10376
10681
  const instance = getCurrentInstance();
10377
- const getVars = () => getter(instance.proxy);
10378
- const setVars = (vars) => {
10379
- if (instance.ce) setVarsOnNode(instance.ce, vars);
10380
- else setVarsOnVNode(instance.subTree, vars);
10381
- };
10382
- baseUseCssVars(instance, () => instance.subTree.el.parentNode, getVars, setVars);
10383
- }
10384
- function setVarsOnVNode(vnode, vars) {
10385
- if (vnode.shapeFlag & 128) {
10386
- const suspense = vnode.suspense;
10387
- vnode = suspense.activeBranch;
10388
- if (suspense.pendingBranch && !suspense.isHydrating) suspense.effects.push(() => {
10389
- setVarsOnVNode(suspense.activeBranch, vars);
10390
- });
10391
- }
10392
- while (vnode.component) vnode = vnode.component.subTree;
10393
- if (vnode.shapeFlag & 1 && vnode.el) setVarsOnNode(vnode.el, vars);
10394
- else if (vnode.type === Fragment) vnode.children.forEach((c) => setVarsOnVNode(c, vars));
10395
- else if (vnode.type === Static) {
10396
- let { el, anchor } = vnode;
10397
- while (el) {
10398
- setVarsOnNode(el, vars);
10399
- if (el === anchor) break;
10400
- el = el.nextSibling;
10401
- }
10402
- }
10403
- }
10404
- /**
10405
- * @internal
10406
- * shared between vdom and vapor
10407
- */
10408
- function baseUseCssVars(instance, getParentNode, getVars, setVars) {
10409
10682
  /* v8 ignore start */
10410
10683
  if (!instance) {
10411
10684
  process.env.NODE_ENV !== "production" && warn(`useCssVars is called without current active component instance.`);
10412
10685
  return;
10413
10686
  }
10414
10687
  /* v8 ignore stop */
10688
+ const getVars = () => getter(instance.proxy);
10415
10689
  if (!!(process.env.NODE_ENV !== "production")) instance.getCssVars = getVars;
10416
10690
  const updateTeleports = instance.ut = (vars = getVars()) => {
10417
10691
  Array.from(document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)).forEach((node) => setVarsOnNode(node, vars));
10418
10692
  };
10419
10693
  const applyCssVars = (vars = getVars()) => {
10420
- setVars(vars);
10694
+ if (instance.ce) setVarsOnNode(instance.ce, vars);
10695
+ else setVarsOnVNode(instance.subTree, vars);
10421
10696
  updateTeleports(vars);
10422
10697
  };
10423
10698
  onBeforeUpdate(() => {
@@ -10430,10 +10705,38 @@ function baseUseCssVars(instance, getParentNode, getVars, setVars) {
10430
10705
  applyCssVars(vars);
10431
10706
  }, NOOP, { flush: "post" });
10432
10707
  const ob = new MutationObserver(() => applyCssVars());
10433
- ob.observe(getParentNode(), { childList: true });
10708
+ ob.observe(instance.subTree.el.parentNode, { childList: true });
10434
10709
  onUnmounted(() => ob.disconnect());
10435
10710
  });
10436
10711
  }
10712
+ function setVarsOnVNode(vnode, vars) {
10713
+ if (vnode.shapeFlag & 128) {
10714
+ const suspense = vnode.suspense;
10715
+ vnode = suspense.activeBranch;
10716
+ if (suspense.pendingBranch && !suspense.isHydrating) suspense.effects.push(() => {
10717
+ setVarsOnVNode(suspense.activeBranch, vars);
10718
+ });
10719
+ }
10720
+ while (vnode.component) {
10721
+ const component = vnode.component;
10722
+ if (component.vapor) {
10723
+ component.appContext.vapor.applyCssVars(vnode, vars);
10724
+ return;
10725
+ }
10726
+ vnode = vnode.component.subTree;
10727
+ }
10728
+ if (vnode.shapeFlag & 1 && vnode.el) setVarsOnNode(vnode.el, vars);
10729
+ else if (vnode.vb) vnode.ctx.appContext.vapor.applyCssVars(vnode, vars);
10730
+ else if (vnode.type === Fragment) vnode.children.forEach((c) => setVarsOnVNode(c, vars));
10731
+ else if (vnode.type === Static) {
10732
+ let { el, anchor } = vnode;
10733
+ while (el) {
10734
+ setVarsOnNode(el, vars);
10735
+ if (el === anchor) break;
10736
+ el = el.nextSibling;
10737
+ }
10738
+ }
10739
+ }
10437
10740
  /**
10438
10741
  * @internal
10439
10742
  * shared between vdom and vapor
@@ -10458,11 +10761,13 @@ function patchStyle(el, prev, next) {
10458
10761
  const isCssString = isString(next);
10459
10762
  let hasControlledDisplay = false;
10460
10763
  if (next && !isCssString) {
10461
- if (prev) if (!isString(prev)) {
10462
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
10463
- } else for (const prevStyle of prev.split(";")) {
10464
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10465
- if (next[key] == null) setStyle(style, key, "");
10764
+ if (prev) {
10765
+ if (!isString(prev)) {
10766
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
10767
+ } else for (const prevStyle of prev.split(";")) {
10768
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10769
+ if (next[key] == null) setStyle(style, key, "");
10770
+ }
10466
10771
  }
10467
10772
  for (const key in next) {
10468
10773
  if (key === "display") hasControlledDisplay = true;
@@ -10478,7 +10783,11 @@ function patchStyle(el, prev, next) {
10478
10783
  style.cssText = next;
10479
10784
  hasControlledDisplay = displayRE.test(next);
10480
10785
  }
10481
- } else if (prev) el.removeAttribute("style");
10786
+ } else if (prev) {
10787
+ const cssVarText = style[CSS_VAR_TEXT];
10788
+ if (cssVarText) style.cssText = cssVarText;
10789
+ else el.removeAttribute("style");
10790
+ }
10482
10791
  if (vShowOriginalDisplay in el) {
10483
10792
  el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
10484
10793
  if (el[vShowHidden]) style.display = "none";
@@ -10493,8 +10802,10 @@ function setStyle(style, name, rawVal) {
10493
10802
  if (!!(process.env.NODE_ENV !== "production")) {
10494
10803
  if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
10495
10804
  }
10496
- if (name.startsWith("--")) style.setProperty(name, val);
10497
- else {
10805
+ if (name.startsWith("--")) {
10806
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
10807
+ else style.setProperty(name, val);
10808
+ } else {
10498
10809
  const prefixed = autoPrefix(style, name);
10499
10810
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
10500
10811
  else style[prefixed] = val;
@@ -10531,15 +10842,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
10531
10842
  //#region packages/runtime-dom/src/modules/attrs.ts
10532
10843
  const xlinkNS = "http://www.w3.org/1999/xlink";
10533
10844
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
10534
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10535
- else el.setAttributeNS(xlinkNS, key, value);
10536
- else {
10845
+ if (isSVG && key.startsWith("xlink:")) {
10846
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10847
+ else el.setAttributeNS(xlinkNS, key, value);
10848
+ } else {
10537
10849
  if (compatCoerceAttr(el, key, value, instance)) return;
10538
10850
  if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
10539
10851
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
10540
10852
  }
10541
10853
  }
10542
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck");
10854
+ const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
10543
10855
  function compatCoerceAttr(el, key, value, instance = null) {
10544
10856
  if (isEnumeratedAttr(key)) {
10545
10857
  const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
@@ -10631,7 +10943,7 @@ function parseEventName(name) {
10631
10943
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
10632
10944
  }
10633
10945
  let cachedNow = 0;
10634
- const p = /* @__PURE__ */ Promise.resolve();
10946
+ const p = /*@__PURE__*/ Promise.resolve();
10635
10947
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
10636
10948
  function createInvoker(initialValue, instance) {
10637
10949
  const invoker = (e) => {
@@ -10699,7 +11011,7 @@ function shouldSetAsPropForVueCE(el, key) {
10699
11011
  //#endregion
10700
11012
  //#region packages/runtime-dom/src/apiCustomElement.ts
10701
11013
  const REMOVAL = {};
10702
- /* @__NO_SIDE_EFFECTS__ */
11014
+ /*@__NO_SIDE_EFFECTS__*/
10703
11015
  function defineCustomElement(options, extraOptions, _createApp) {
10704
11016
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
10705
11017
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -10748,12 +11060,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
10748
11060
  this._parent = parent;
10749
11061
  break;
10750
11062
  }
10751
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
10752
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
10753
- this._pendingResolve = void 0;
10754
- this._resolveDef();
10755
- });
10756
- else this._resolveDef();
11063
+ if (!this._instance) {
11064
+ if (this._resolved) this._mountComponent(this._def);
11065
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
11066
+ this._pendingResolve = void 0;
11067
+ if (this.isConnected) return this._resolveDef();
11068
+ });
11069
+ else this._resolveDef();
11070
+ }
10757
11071
  }
10758
11072
  disconnectedCallback() {
10759
11073
  this._connected = false;
@@ -10787,7 +11101,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10787
11101
  * resolve inner component definition (handle possible async component)
10788
11102
  */
10789
11103
  _resolveDef() {
10790
- if (this._pendingResolve) return;
11104
+ if (this._pendingResolve) return this._pendingResolve;
10791
11105
  for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
10792
11106
  this._ob = new MutationObserver(this._processMutations.bind(this));
10793
11107
  this._ob.observe(this, { attributes: true });
@@ -10817,6 +11131,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10817
11131
  this._def = def;
10818
11132
  resolve(def);
10819
11133
  });
11134
+ return this._pendingResolve;
10820
11135
  } else resolve(this._def);
10821
11136
  }
10822
11137
  _mountComponent(def) {
@@ -10855,14 +11170,17 @@ var VueElementBase = class VueElementBase extends BaseClass {
10855
11170
  const { props } = def;
10856
11171
  const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
10857
11172
  for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
10858
- for (const key of declaredPropKeys.map(camelize)) Object.defineProperty(this, key, {
10859
- get() {
10860
- return this._getProp(key);
10861
- },
10862
- set(val) {
10863
- this._setProp(key, val, true, !this._patching);
10864
- }
10865
- });
11173
+ for (const key of declaredPropKeys.map(camelize)) {
11174
+ if (!!(process.env.NODE_ENV !== "production") && key in Object.getPrototypeOf(this)) warn(`Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`);
11175
+ Object.defineProperty(this, key, {
11176
+ get() {
11177
+ return this._getProp(key);
11178
+ },
11179
+ set(val) {
11180
+ this._setProp(key, val, true, !this._patching);
11181
+ }
11182
+ });
11183
+ }
10866
11184
  }
10867
11185
  _setAttr(key) {
10868
11186
  if (key.startsWith("data-v-")) return;
@@ -10923,14 +11241,16 @@ var VueElementBase = class VueElementBase extends BaseClass {
10923
11241
  if (!parentComp) this._styleAnchors.set(this._def, s);
10924
11242
  if (owner) this._styleAnchors.set(owner, s);
10925
11243
  }
10926
- if (!!(process.env.NODE_ENV !== "production")) if (owner) {
10927
- if (owner.__hmrId) {
10928
- if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();
10929
- let entry = this._childStyles.get(owner.__hmrId);
10930
- if (!entry) this._childStyles.set(owner.__hmrId, entry = []);
10931
- entry.push(s);
10932
- }
10933
- } else (this._styles || (this._styles = [])).push(s);
11244
+ if (!!(process.env.NODE_ENV !== "production")) {
11245
+ if (owner) {
11246
+ if (owner.__hmrId) {
11247
+ if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();
11248
+ let entry = this._childStyles.get(owner.__hmrId);
11249
+ if (!entry) this._childStyles.set(owner.__hmrId, entry = []);
11250
+ entry.push(s);
11251
+ }
11252
+ } else (this._styles || (this._styles = [])).push(s);
11253
+ }
10934
11254
  }
10935
11255
  }
10936
11256
  _getStyleAnchor(comp) {
@@ -10965,13 +11285,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
10965
11285
  _renderSlots() {
10966
11286
  const outlets = this._getSlots();
10967
11287
  const scopeId = this._instance.type.__scopeId;
10968
- const slotReplacements = /* @__PURE__ */ new Map();
10969
11288
  for (let i = 0; i < outlets.length; i++) {
10970
11289
  const o = outlets[i];
10971
11290
  const slotName = o.getAttribute("name") || "default";
10972
11291
  const content = this._slots[slotName];
10973
11292
  const parent = o.parentNode;
10974
- const replacementNodes = [];
10975
11293
  if (content) for (const n of content) {
10976
11294
  if (scopeId && n.nodeType === 1) {
10977
11295
  const id = scopeId + "-s";
@@ -10981,20 +11299,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
10981
11299
  while (child = walker.nextNode()) child.setAttribute(id, "");
10982
11300
  }
10983
11301
  parent.insertBefore(n, o);
10984
- replacementNodes.push(n);
10985
- }
10986
- else while (o.firstChild) {
10987
- const child = o.firstChild;
10988
- parent.insertBefore(child, o);
10989
- replacementNodes.push(child);
10990
11302
  }
11303
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
10991
11304
  parent.removeChild(o);
10992
- slotReplacements.set(o, {
10993
- nodes: replacementNodes,
10994
- usedFallback: !content
10995
- });
10996
11305
  }
10997
- this._updateSlotNodes(slotReplacements);
10998
11306
  }
10999
11307
  /**
11000
11308
  * @internal
@@ -11033,7 +11341,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
11033
11341
  * @internal
11034
11342
  */
11035
11343
  _hasShadowRoot() {
11036
- return this._def.shadowRoot !== false;
11344
+ return this._root !== this;
11037
11345
  }
11038
11346
  /**
11039
11347
  * @internal
@@ -11080,10 +11388,6 @@ var VueElement = class extends VueElementBase {
11080
11388
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
11081
11389
  this._app = this._instance = null;
11082
11390
  }
11083
- /**
11084
- * Only called when shadowRoot is false
11085
- */
11086
- _updateSlotNodes(replacements) {}
11087
11391
  _createVNode() {
11088
11392
  const baseProps = {};
11089
11393
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -11099,8 +11403,10 @@ function useHost(caller) {
11099
11403
  const { hasInstance, value } = useInstanceOption("ce", true);
11100
11404
  const el = value;
11101
11405
  if (el) return el;
11102
- else if (!!(process.env.NODE_ENV !== "production")) if (!hasInstance) warn(`${caller || "useHost"} called without an active component instance.`);
11103
- else warn(`${caller || "useHost"} can only be used in components defined via defineCustomElement.`);
11406
+ else if (!!(process.env.NODE_ENV !== "production")) {
11407
+ if (!hasInstance) warn(`${caller || "useHost"} called without an active component instance.`);
11408
+ else warn(`${caller || "useHost"} can only be used in components defined via defineCustomElement.`);
11409
+ }
11104
11410
  return null;
11105
11411
  }
11106
11412
  /**
@@ -11150,7 +11456,7 @@ const decorate = (t) => {
11150
11456
  };
11151
11457
  const TransitionGroup = /* @__PURE__ */ decorate({
11152
11458
  name: "TransitionGroup",
11153
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
11459
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
11154
11460
  tag: String,
11155
11461
  moveClass: String
11156
11462
  }),
@@ -11282,13 +11588,22 @@ function onCompositionEnd(e) {
11282
11588
  }
11283
11589
  }
11284
11590
  const assignKey = Symbol("_assign");
11591
+ const initialValueKey = Symbol("_initialValue");
11285
11592
  const vModelText = {
11286
11593
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
11594
+ if (el.parentNode) {
11595
+ if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
11596
+ else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
11597
+ }
11287
11598
  el[assignKey] = getModelAssigner(vnode);
11288
11599
  vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
11289
11600
  },
11290
- mounted(el, { value }) {
11291
- el.value = value == null ? "" : value;
11601
+ mounted(el, { value, modifiers: { trim, number } }) {
11602
+ const newValue = value == null ? "" : value;
11603
+ const initialValue = el[initialValueKey];
11604
+ delete el[initialValueKey];
11605
+ if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
11606
+ else el.value = newValue;
11292
11607
  },
11293
11608
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
11294
11609
  el[assignKey] = getModelAssigner(vnode);
@@ -11423,19 +11738,39 @@ const vModelSelectInit = (el, value, number, set) => {
11423
11738
  el._modelValue = value;
11424
11739
  addEventListener(el, "change", () => {
11425
11740
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
11426
- (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
11427
- el._assigning = true;
11428
- nextTick(() => {
11429
- el._assigning = false;
11430
- });
11741
+ const multiple = el.multiple;
11742
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
11743
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
11744
+ try {
11745
+ (set || el[assignKey])(assignedValue);
11746
+ } finally {
11747
+ nextTick(() => {
11748
+ if (el._pendingValue === pending) el._pendingValue = void 0;
11749
+ });
11750
+ }
11431
11751
  });
11432
11752
  };
11753
+ function isSameSelectValue(value, assignedValue, multiple) {
11754
+ if (!multiple) return looseEqual(value, assignedValue);
11755
+ if (isArray(value)) return looseEqual(value, assignedValue);
11756
+ if (isSet(value)) {
11757
+ if (value.size !== assignedValue.length) return false;
11758
+ for (const item of assignedValue) if (!value.has(item)) return false;
11759
+ return true;
11760
+ }
11761
+ return false;
11762
+ }
11433
11763
  /**
11434
11764
  * @internal
11435
11765
  */
11436
11766
  const vModelSetSelected = (el, value) => {
11437
11767
  el._modelValue = value;
11438
- if (el._assigning) return;
11768
+ const pending = el._pendingValue;
11769
+ el._pendingValue = void 0;
11770
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
11771
+ setSelected(el, value);
11772
+ };
11773
+ function setSelected(el, value) {
11439
11774
  const isMultiple = el.multiple;
11440
11775
  const isArrayValue = isArray(value);
11441
11776
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -11445,18 +11780,19 @@ const vModelSetSelected = (el, value) => {
11445
11780
  for (let i = 0, l = el.options.length; i < l; i++) {
11446
11781
  const option = el.options[i];
11447
11782
  const optionValue = getValue(option);
11448
- if (isMultiple) if (isArrayValue) {
11449
- const optionType = typeof optionValue;
11450
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
11451
- else option.selected = looseIndexOf(value, optionValue) > -1;
11452
- } else option.selected = value.has(optionValue);
11453
- else if (looseEqual(getValue(option), value)) {
11783
+ if (isMultiple) {
11784
+ if (isArrayValue) {
11785
+ const optionType = typeof optionValue;
11786
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
11787
+ else option.selected = looseIndexOf(value, optionValue) > -1;
11788
+ } else option.selected = value.has(optionValue);
11789
+ } else if (looseEqual(getValue(option), value)) {
11454
11790
  if (el.selectedIndex !== i) el.selectedIndex = i;
11455
11791
  return;
11456
11792
  }
11457
11793
  }
11458
11794
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
11459
- };
11795
+ }
11460
11796
  /**
11461
11797
  * @internal retrieve raw value set via :value bindings
11462
11798
  */
@@ -11626,7 +11962,6 @@ var src_exports = /* @__PURE__ */ __exportAll({
11626
11962
  baseEmit: () => baseEmit,
11627
11963
  baseNormalizePropsOptions: () => baseNormalizePropsOptions,
11628
11964
  baseResolveTransitionHooks: () => baseResolveTransitionHooks,
11629
- baseUseCssVars: () => baseUseCssVars,
11630
11965
  callPendingCbs: () => callPendingCbs,
11631
11966
  callWithAsyncErrorHandling: () => callWithAsyncErrorHandling,
11632
11967
  callWithErrorHandling: () => callWithErrorHandling,
@@ -11656,6 +11991,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11656
11991
  currentInstance: () => currentInstance,
11657
11992
  customRef: () => customRef,
11658
11993
  deactivate: () => deactivate,
11994
+ defaultPropGetter: () => defaultPropGetter,
11659
11995
  defineAsyncComponent: () => defineAsyncComponent,
11660
11996
  defineComponent: () => defineComponent,
11661
11997
  defineCustomElement: () => defineCustomElement,
@@ -11674,12 +12010,14 @@ var src_exports = /* @__PURE__ */ __exportAll({
11674
12010
  ensureHydrationRenderer: () => ensureHydrationRenderer,
11675
12011
  ensureRenderer: () => ensureRenderer,
11676
12012
  ensureValidVNode: () => ensureValidVNode,
11677
- ensureVaporSlotFallback: () => ensureVaporSlotFallback,
11678
12013
  expose: () => expose,
12014
+ filterModelListeners: () => filterModelListeners,
12015
+ filterSingleRoot: () => filterSingleRoot,
11679
12016
  flushOnAppMount: () => flushOnAppMount,
11680
12017
  forceReflow: () => forceReflow,
11681
12018
  getAttributeMismatch: () => getAttributeMismatch,
11682
12019
  getComponentName: () => getComponentName,
12020
+ getContainerType: () => getContainerType,
11683
12021
  getCurrentInstance: () => getCurrentInstance,
11684
12022
  getCurrentScope: () => getCurrentScope,
11685
12023
  getCurrentWatcher: () => getCurrentWatcher,
@@ -11703,9 +12041,13 @@ var src_exports = /* @__PURE__ */ __exportAll({
11703
12041
  inject: () => inject,
11704
12042
  invalidateMount: () => invalidateMount,
11705
12043
  invokeDirectiveHook: () => invokeDirectiveHook,
12044
+ invokeSlotFallback: () => invokeSlotFallback,
12045
+ invokeVNodeHook: () => invokeVNodeHook,
11706
12046
  isAsyncWrapper: () => isAsyncWrapper,
11707
12047
  isEmitListener: () => isEmitListener,
12048
+ isFunctionalFallthroughKey: () => isFunctionalFallthroughKey,
11708
12049
  isHydrating: () => isHydrating,
12050
+ isHydratingEnabled: () => isHydratingEnabled,
11709
12051
  isKeepAlive: () => isKeepAlive,
11710
12052
  isMapEqual: () => isMapEqual,
11711
12053
  isMemoSame: () => isMemoSame,
@@ -11721,6 +12063,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11721
12063
  isTeleportDisabled: () => isTeleportDisabled,
11722
12064
  isTemplateNode: () => isTemplateNode,
11723
12065
  isTemplateRefKey: () => isTemplateRefKey,
12066
+ isUnchangedResourceProp: () => isUnchangedResourceProp,
11724
12067
  isVNode: () => isVNode,
11725
12068
  isValidHtmlOrSvgAttribute: () => isValidHtmlOrSvgAttribute,
11726
12069
  knownTemplateRefs: () => knownTemplateRefs,
@@ -11757,6 +12100,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11757
12100
  onWatcherCleanup: () => onWatcherCleanup,
11758
12101
  openBlock: () => openBlock,
11759
12102
  parseEventName: () => parseEventName,
12103
+ patchClass: () => patchClass,
11760
12104
  patchProp: () => patchProp,
11761
12105
  patchStyle: () => patchStyle,
11762
12106
  performAsyncHydrate: () => performAsyncHydrate,
@@ -11764,12 +12108,16 @@ var src_exports = /* @__PURE__ */ __exportAll({
11764
12108
  performTransitionLeave: () => performTransitionLeave,
11765
12109
  popScopeId: () => popScopeId,
11766
12110
  popWarningContext: () => popWarningContext,
12111
+ prepareTransitionLeave: () => prepareTransitionLeave,
12112
+ prepareTransitionSwitch: () => prepareTransitionSwitch,
11767
12113
  provide: () => provide,
11768
12114
  proxyRefs: () => proxyRefs,
11769
12115
  pushScopeId: () => pushScopeId,
11770
12116
  pushWarningContext: () => pushWarningContext,
11771
12117
  queueJob: () => queueJob,
11772
12118
  queuePostFlushCb: () => queuePostFlushCb,
12119
+ queuePostRenderEffect: () => queuePostRenderEffect,
12120
+ rawVaporSlotKey: () => rawVaporSlotKey,
11773
12121
  reactive: () => reactive,
11774
12122
  readonly: () => readonly,
11775
12123
  ref: () => ref,
@@ -11780,13 +12128,16 @@ var src_exports = /* @__PURE__ */ __exportAll({
11780
12128
  renderSlot: () => renderSlot,
11781
12129
  resetShapeFlag: () => resetShapeFlag,
11782
12130
  resolveComponent: () => resolveComponent,
12131
+ resolveCssVars: () => resolveCssVars,
11783
12132
  resolveDirective: () => resolveDirective,
11784
12133
  resolveDynamicComponent: () => resolveDynamicComponent,
11785
12134
  resolveFilter: () => resolveFilter,
11786
12135
  resolvePropValue: () => resolvePropValue,
11787
12136
  resolveTeleportTarget: () => resolveTarget,
12137
+ resolveTransitionChild: () => resolveTransitionChild,
11788
12138
  resolveTransitionHooks: () => resolveTransitionHooks,
11789
12139
  resolveTransitionProps: () => resolveTransitionProps,
12140
+ restoreCurrentInstance: () => restoreCurrentInstance,
11790
12141
  setBlockTracking: () => setBlockTracking,
11791
12142
  setCurrentInstance: () => setCurrentInstance,
11792
12143
  setCurrentRenderingInstance: () => setCurrentRenderingInstance,
@@ -11869,7 +12220,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11869
12220
  withScopeId: () => withScopeId,
11870
12221
  xlinkNS: () => xlinkNS
11871
12222
  });
11872
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
12223
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
11873
12224
  let renderer;
11874
12225
  let enabledHydration = false;
11875
12226
  function ensureRenderer() {
@@ -12430,13 +12781,14 @@ var Tokenizer = class {
12430
12781
  }
12431
12782
  }
12432
12783
  stateInterpolationOpen(c) {
12433
- if (c === this.delimiterOpen[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterOpen.length - 1) {
12434
- const start = this.index + 1 - this.delimiterOpen.length;
12435
- if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
12436
- this.state = 3;
12437
- this.sectionStart = start;
12438
- } else this.delimiterIndex++;
12439
- else if (this.inRCDATA) {
12784
+ if (c === this.delimiterOpen[this.delimiterIndex]) {
12785
+ if (this.delimiterIndex === this.delimiterOpen.length - 1) {
12786
+ const start = this.index + 1 - this.delimiterOpen.length;
12787
+ if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
12788
+ this.state = 3;
12789
+ this.sectionStart = start;
12790
+ } else this.delimiterIndex++;
12791
+ } else if (this.inRCDATA) {
12440
12792
  this.state = 32;
12441
12793
  this.stateInRCDATA(c);
12442
12794
  } else {
@@ -12452,13 +12804,14 @@ var Tokenizer = class {
12452
12804
  }
12453
12805
  }
12454
12806
  stateInterpolationClose(c) {
12455
- if (c === this.delimiterClose[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterClose.length - 1) {
12456
- this.cbs.oninterpolation(this.sectionStart, this.index + 1);
12457
- if (this.inRCDATA) this.state = 32;
12458
- else this.state = 1;
12459
- this.sectionStart = this.index + 1;
12460
- } else this.delimiterIndex++;
12461
- else {
12807
+ if (c === this.delimiterClose[this.delimiterIndex]) {
12808
+ if (this.delimiterIndex === this.delimiterClose.length - 1) {
12809
+ this.cbs.oninterpolation(this.sectionStart, this.index + 1);
12810
+ if (this.inRCDATA) this.state = 32;
12811
+ else this.state = 1;
12812
+ this.sectionStart = this.index + 1;
12813
+ } else this.delimiterIndex++;
12814
+ } else {
12462
12815
  this.state = 3;
12463
12816
  this.stateInterpolation(c);
12464
12817
  }
@@ -12573,9 +12926,10 @@ var Tokenizer = class {
12573
12926
  this.sectionStart = this.index;
12574
12927
  if (this.mode === 0) this.state = 6;
12575
12928
  else if (this.inSFCRoot) this.state = 34;
12576
- else if (!this.inXML) if (c === 116) this.state = 30;
12577
- else this.state = c === 115 ? 29 : 6;
12578
- else this.state = 6;
12929
+ else if (!this.inXML) {
12930
+ if (c === 116) this.state = 30;
12931
+ else this.state = c === 115 ? 29 : 6;
12932
+ } else this.state = 6;
12579
12933
  } else if (c === 47) this.state = 8;
12580
12934
  else {
12581
12935
  this.state = 1;
@@ -12928,9 +13282,7 @@ var Tokenizer = class {
12928
13282
  case 24:
12929
13283
  this.stateInProcessingInstruction(c);
12930
13284
  break;
12931
- case 33:
12932
- this.stateInEntity();
12933
- break;
13285
+ case 33: this.stateInEntity();
12934
13286
  }
12935
13287
  this.index++;
12936
13288
  }
@@ -12959,9 +13311,10 @@ var Tokenizer = class {
12959
13311
  handleTrailingData() {
12960
13312
  const endIndex = this.buffer.length;
12961
13313
  if (this.sectionStart >= endIndex) return;
12962
- if (this.state === 28) if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
12963
- else this.cbs.oncomment(this.sectionStart, endIndex);
12964
- else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
13314
+ if (this.state === 28) {
13315
+ if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
13316
+ else this.cbs.oncomment(this.sectionStart, endIndex);
13317
+ } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
12965
13318
  }
12966
13319
  emitCodePoint(cp, consumed) {}
12967
13320
  };
@@ -13163,12 +13516,10 @@ const isMemberExpressionBrowser = (exp) => {
13163
13516
  if (!--currentOpenParensCount) state = stateStack.pop();
13164
13517
  }
13165
13518
  break;
13166
- case 3:
13167
- if (char === currentStringType) {
13168
- state = stateStack.pop();
13169
- currentStringType = null;
13170
- }
13171
- break;
13519
+ case 3: if (char === currentStringType) {
13520
+ state = stateStack.pop();
13521
+ currentStringType = null;
13522
+ }
13172
13523
  }
13173
13524
  }
13174
13525
  return !currentOpenBracketCount && !currentOpenParensCount;
@@ -13218,7 +13569,7 @@ function isTemplateNode$1(node) {
13218
13569
  function isSlotOutlet(node) {
13219
13570
  return node.type === 1 && node.tagType === 2;
13220
13571
  }
13221
- const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
13572
+ const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
13222
13573
  function getUnnormalizedProps(props, callPath = []) {
13223
13574
  if (props && !isString(props) && props.type === 14) {
13224
13575
  const callee = props.callee;
@@ -13261,9 +13612,10 @@ function injectProp(node, prop, context) {
13261
13612
  propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
13262
13613
  if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
13263
13614
  }
13264
- if (node.type === 13) if (parentCall) parentCall.arguments[0] = propsWithInjection;
13265
- else node.props = propsWithInjection;
13266
- else if (parentCall) parentCall.arguments[0] = propsWithInjection;
13615
+ if (node.type === 13) {
13616
+ if (parentCall) parentCall.arguments[0] = propsWithInjection;
13617
+ else node.props = propsWithInjection;
13618
+ } else if (parentCall) parentCall.arguments[0] = propsWithInjection;
13267
13619
  else node.arguments[2] = propsWithInjection;
13268
13620
  }
13269
13621
  function injectSlotKey(node, prop) {
@@ -13538,10 +13890,7 @@ const tokenizer = new Tokenizer(stack, {
13538
13890
  case 18:
13539
13891
  case 19:
13540
13892
  case 20:
13541
- case 21:
13542
- emitError(9, end);
13543
- break;
13544
- default: break;
13893
+ case 21: emitError(9, end);
13545
13894
  }
13546
13895
  for (let index = 0; index < stack.length; index++) {
13547
13896
  onCloseTag(stack[index], end - 1);
@@ -13691,7 +14040,7 @@ function backTrack(index, c) {
13691
14040
  while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
13692
14041
  return i;
13693
14042
  }
13694
- const specialTemplateDir = new Set([
14043
+ const specialTemplateDir = /* @__PURE__ */ new Set([
13695
14044
  "if",
13696
14045
  "else",
13697
14046
  "else-if",
@@ -13727,16 +14076,18 @@ function condenseWhitespace(nodes) {
13727
14076
  let removedWhitespace = false;
13728
14077
  for (let i = 0; i < nodes.length; i++) {
13729
14078
  const node = nodes[i];
13730
- if (node.type === 2) if (!inPre) {
13731
- if (isAllWhitespace(node.content)) {
13732
- const prev = nodes[i - 1] && nodes[i - 1].type;
13733
- const next = nodes[i + 1] && nodes[i + 1].type;
13734
- if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
13735
- removedWhitespace = true;
13736
- nodes[i] = null;
13737
- } else node.content = " ";
13738
- } else if (shouldCondense) node.content = condense(node.content);
13739
- } else node.content = node.content.replace(windowsNewlineRE, "\n");
14079
+ if (node.type === 2) {
14080
+ if (!inPre) {
14081
+ if (isAllWhitespace(node.content)) {
14082
+ const prev = nodes[i - 1] && nodes[i - 1].type;
14083
+ const next = nodes[i + 1] && nodes[i + 1].type;
14084
+ if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
14085
+ removedWhitespace = true;
14086
+ nodes[i] = null;
14087
+ } else node.content = " ";
14088
+ } else if (shouldCondense) node.content = condense(node.content);
14089
+ } else node.content = node.content.replace(windowsNewlineRE, "\n");
14090
+ }
13740
14091
  }
13741
14092
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
13742
14093
  }
@@ -14001,7 +14352,7 @@ function getConstantType(node, context) {
14001
14352
  return 0;
14002
14353
  }
14003
14354
  }
14004
- const allowHoistedHelperSet = new Set([
14355
+ const allowHoistedHelperSet = /* @__PURE__ */ new Set([
14005
14356
  NORMALIZE_CLASS,
14006
14357
  NORMALIZE_STYLE,
14007
14358
  NORMALIZE_PROPS,
@@ -14045,7 +14396,7 @@ function getSelfName(filename) {
14045
14396
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
14046
14397
  return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
14047
14398
  }
14048
- function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, eventDelegation = true, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
14399
+ function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
14049
14400
  const context = {
14050
14401
  filename,
14051
14402
  selfName: getSelfName(filename),
@@ -14067,7 +14418,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
14067
14418
  bindingMetadata,
14068
14419
  inline,
14069
14420
  isTS,
14070
- eventDelegation,
14071
14421
  onError,
14072
14422
  onWarn,
14073
14423
  compatConfig,
@@ -14163,7 +14513,7 @@ function transform(root, options) {
14163
14513
  traverseNode(root, context);
14164
14514
  if (options.hoistStatic) cacheStatic(root, context);
14165
14515
  if (!options.ssr) createRootCodegen(root, context);
14166
- root.helpers = new Set([...context.helpers.keys()]);
14516
+ root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
14167
14517
  root.components = [...context.components];
14168
14518
  root.directives = [...context.directives];
14169
14519
  root.imports = context.imports;
@@ -14210,8 +14560,10 @@ function traverseNode(node, context) {
14210
14560
  const exitFns = [];
14211
14561
  for (let i = 0; i < nodeTransforms.length; i++) {
14212
14562
  const onExit = nodeTransforms[i](node, context);
14213
- if (onExit) if (isArray(onExit)) exitFns.push(...onExit);
14214
- else exitFns.push(onExit);
14563
+ if (onExit) {
14564
+ if (isArray(onExit)) exitFns.push(...onExit);
14565
+ else exitFns.push(onExit);
14566
+ }
14215
14567
  if (!context.currentNode) return;
14216
14568
  else node = context.currentNode;
14217
14569
  }
@@ -14228,9 +14580,7 @@ function traverseNode(node, context) {
14228
14580
  case 10:
14229
14581
  case 11:
14230
14582
  case 1:
14231
- case 0:
14232
- traverseChildren(node, context);
14233
- break;
14583
+ case 0: traverseChildren(node, context);
14234
14584
  }
14235
14585
  context.currentNode = node;
14236
14586
  let i = exitFns.length;
@@ -14426,10 +14776,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
14426
14776
  if (isString(node)) push(node, -3);
14427
14777
  else if (isArray(node)) genNodeListAsArray(node, context);
14428
14778
  else genNode(node, context);
14429
- if (i < nodes.length - 1) if (multilines) {
14430
- comma && push(",");
14431
- newline();
14432
- } else comma && push(", ");
14779
+ if (i < nodes.length - 1) {
14780
+ if (multilines) {
14781
+ comma && push(",");
14782
+ newline();
14783
+ } else comma && push(", ");
14784
+ }
14433
14785
  }
14434
14786
  }
14435
14787
  function genNode(node, context) {
@@ -14542,9 +14894,12 @@ function genVNodeCall(node, context) {
14542
14894
  const { push, helper, pure } = context;
14543
14895
  const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent } = node;
14544
14896
  let patchFlagString;
14545
- if (patchFlag) if (!!(process.env.NODE_ENV !== "production")) if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
14546
- else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
14547
- else patchFlagString = String(patchFlag);
14897
+ if (patchFlag) {
14898
+ if (!!(process.env.NODE_ENV !== "production")) {
14899
+ if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
14900
+ else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
14901
+ } else patchFlagString = String(patchFlag);
14902
+ }
14548
14903
  if (directives) push(helper(WITH_DIRECTIVES) + `(`);
14549
14904
  if (isBlock) push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
14550
14905
  if (pure) push(PURE_ANNOTATION);
@@ -14813,16 +15168,17 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
14813
15168
  const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
14814
15169
  const { children } = branch;
14815
15170
  const firstChild = children[0];
14816
- if (children.length !== 1 || firstChild.type !== 1) if (children.length === 1 && firstChild.type === 11) {
14817
- const vnodeCall = firstChild.codegenNode;
14818
- injectProp(vnodeCall, keyProperty, context);
14819
- return vnodeCall;
15171
+ if (children.length !== 1 || firstChild.type !== 1) {
15172
+ if (children.length === 1 && firstChild.type === 11) {
15173
+ const vnodeCall = firstChild.codegenNode;
15174
+ injectProp(vnodeCall, keyProperty, context);
15175
+ return vnodeCall;
15176
+ } else {
15177
+ let patchFlag = 64;
15178
+ if (!!(process.env.NODE_ENV !== "production") && !branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
15179
+ return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
15180
+ }
14820
15181
  } else {
14821
- let patchFlag = 64;
14822
- if (!!(process.env.NODE_ENV !== "production") && !branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
14823
- return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
14824
- }
14825
- else {
14826
15182
  const ret = firstChild.codegenNode;
14827
15183
  const vnodeCall = getMemoedVNodeCall(ret);
14828
15184
  if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
@@ -14843,9 +15199,10 @@ function isSameKey(a, b) {
14843
15199
  return true;
14844
15200
  }
14845
15201
  function getParentCondition(node) {
14846
- while (true) if (node.type === 19) if (node.alternate.type === 19) node = node.alternate;
14847
- else return node;
14848
- else if (node.type === 20) node = node.value;
15202
+ while (true) if (node.type === 19) {
15203
+ if (node.alternate.type === 19) node = node.alternate;
15204
+ else return node;
15205
+ } else if (node.type === 20) node = node.value;
14849
15206
  }
14850
15207
  //#endregion
14851
15208
  //#region packages/compiler-core/src/transforms/vFor.ts
@@ -14883,15 +15240,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
14883
15240
  else {
14884
15241
  childBlock = children[0].codegenNode;
14885
15242
  if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
14886
- if (childBlock.isBlock !== !isStableFragment) if (childBlock.isBlock) {
14887
- removeHelper(OPEN_BLOCK);
14888
- removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
14889
- } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
14890
- childBlock.isBlock = !isStableFragment;
15243
+ const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
15244
+ if (childBlock.isBlock !== shouldUseBlock) {
15245
+ if (childBlock.isBlock) {
15246
+ removeHelper(OPEN_BLOCK);
15247
+ removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
15248
+ } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15249
+ }
15250
+ childBlock.isBlock = shouldUseBlock;
14891
15251
  if (childBlock.isBlock) {
14892
15252
  helper(OPEN_BLOCK);
14893
15253
  helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
14894
- } else helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15254
+ } else {
15255
+ helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15256
+ if (childBlock.needsPatch) {
15257
+ var _childBlock$patchFlag;
15258
+ childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
15259
+ }
15260
+ }
14895
15261
  }
14896
15262
  if (memo) {
14897
15263
  const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
@@ -15065,8 +15431,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
15065
15431
  return createObjectProperty(`default`, fn);
15066
15432
  };
15067
15433
  if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
15068
- else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
15069
- else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
15434
+ else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
15435
+ if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
15436
+ else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
15437
+ }
15070
15438
  }
15071
15439
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
15072
15440
  let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + (!!(process.env.NODE_ENV !== "production") ? ` /* ${slotFlagsText[slotFlag]} */` : ``), false))), loc);
@@ -15092,10 +15460,7 @@ function hasForwardedSlots(children) {
15092
15460
  if (hasForwardedSlots(child.branches)) return true;
15093
15461
  break;
15094
15462
  case 10:
15095
- case 11:
15096
- if (hasForwardedSlots(child.children)) return true;
15097
- break;
15098
- default: break;
15463
+ case 11: if (hasForwardedSlots(child.children)) return true;
15099
15464
  }
15100
15465
  }
15101
15466
  return false;
@@ -15117,12 +15482,16 @@ const transformElement = (node, context) => {
15117
15482
  let vnodeDynamicProps;
15118
15483
  let dynamicPropNames;
15119
15484
  let vnodeDirectives;
15485
+ let needsPatch = false;
15486
+ let isBlockRequired = false;
15120
15487
  let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
15121
15488
  if (props.length > 0) {
15122
15489
  const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
15123
15490
  vnodeProps = propsBuildResult.props;
15124
15491
  patchFlag = propsBuildResult.patchFlag;
15125
15492
  dynamicPropNames = propsBuildResult.dynamicPropNames;
15493
+ needsPatch = propsBuildResult.needsPatch;
15494
+ isBlockRequired = propsBuildResult.isBlockRequired;
15126
15495
  const directives = propsBuildResult.directives;
15127
15496
  vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
15128
15497
  if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
@@ -15151,7 +15520,10 @@ const transformElement = (node, context) => {
15151
15520
  } else vnodeChildren = node.children;
15152
15521
  }
15153
15522
  if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
15154
- node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
15523
+ const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
15524
+ needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
15525
+ if (needsPatch) vnodeCall.needsPatch = true;
15526
+ if (isBlockRequired) vnodeCall.isBlockRequired = true;
15155
15527
  };
15156
15528
  };
15157
15529
  function resolveComponentType(node, context, ssr = false) {
@@ -15185,6 +15557,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15185
15557
  const runtimeDirectives = [];
15186
15558
  const hasChildren = children.length > 0;
15187
15559
  let shouldUseBlock = false;
15560
+ let isBlockRequired = false;
15188
15561
  let patchFlag = 0;
15189
15562
  let hasRef = false;
15190
15563
  let hasClassBinding = false;
@@ -15209,12 +15582,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15209
15582
  const isEventHandler = isOn(name);
15210
15583
  if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
15211
15584
  if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
15585
+ if (name === "ref") hasRef = true;
15212
15586
  if (isEventHandler && value.type === 14) value = value.arguments[0];
15213
15587
  if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
15214
- if (name === "ref") hasRef = true;
15215
- else if (name === "class") hasClassBinding = true;
15588
+ if (name === "class") hasClassBinding = true;
15216
15589
  else if (name === "style") hasStyleBinding = true;
15217
- else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
15590
+ else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
15218
15591
  if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
15219
15592
  } else hasDynamicKeys = true;
15220
15593
  };
@@ -15240,35 +15613,40 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15240
15613
  if (name === "once" || name === "memo") continue;
15241
15614
  if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
15242
15615
  if (isVOn && ssr) continue;
15243
- if (isVBind && isStaticArgOf(arg, "key") || isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")) shouldUseBlock = true;
15616
+ if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
15617
+ if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
15618
+ shouldUseBlock = true;
15619
+ isBlockRequired = true;
15620
+ }
15244
15621
  if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
15245
15622
  if (!arg && (isVBind || isVOn)) {
15246
15623
  hasDynamicKeys = true;
15247
- if (exp) if (isVBind) {
15248
- pushMergeArg();
15249
- if (!!(process.env.NODE_ENV !== "production")) {
15250
- if (mergeArgs.some((arg) => {
15251
- if (arg.type === 15) return arg.properties.some(({ key }) => {
15252
- if (key.type !== 4 || !key.isStatic) return true;
15253
- return key.content !== "class" && key.content !== "style" && !isOn(key.content);
15254
- });
15255
- else return true;
15256
- })) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
15257
- }
15258
- if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
15259
- mergeArgs.unshift(exp);
15260
- continue;
15261
- }
15262
- pushRefVForMarker();
15263
- pushMergeArg();
15264
- mergeArgs.push(exp);
15265
- } else pushMergeArg({
15266
- type: 14,
15267
- loc,
15268
- callee: context.helper(TO_HANDLERS),
15269
- arguments: isComponent ? [exp] : [exp, `true`]
15270
- });
15271
- else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
15624
+ if (exp) {
15625
+ if (isVBind) {
15626
+ pushMergeArg();
15627
+ if (!!(process.env.NODE_ENV !== "production")) {
15628
+ if (mergeArgs.some((arg) => {
15629
+ if (arg.type === 15) return arg.properties.some(({ key }) => {
15630
+ if (key.type !== 4 || !key.isStatic) return true;
15631
+ return key.content !== "class" && key.content !== "style" && !isOn(key.content);
15632
+ });
15633
+ else return true;
15634
+ })) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
15635
+ }
15636
+ if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
15637
+ mergeArgs.unshift(exp);
15638
+ continue;
15639
+ }
15640
+ pushRefVForMarker();
15641
+ pushMergeArg();
15642
+ mergeArgs.push(exp);
15643
+ } else pushMergeArg({
15644
+ type: 14,
15645
+ loc,
15646
+ callee: context.helper(TO_HANDLERS),
15647
+ arguments: isComponent ? [exp] : [exp, `true`]
15648
+ });
15649
+ } else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
15272
15650
  continue;
15273
15651
  }
15274
15652
  if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
@@ -15284,7 +15662,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15284
15662
  }
15285
15663
  } else if (!isBuiltInDirective(name)) {
15286
15664
  runtimeDirectives.push(prop);
15287
- if (hasChildren) shouldUseBlock = true;
15665
+ if (hasChildren) {
15666
+ shouldUseBlock = true;
15667
+ isBlockRequired = true;
15668
+ }
15288
15669
  }
15289
15670
  }
15290
15671
  }
@@ -15301,7 +15682,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15301
15682
  if (dynamicPropNames.length) patchFlag |= 8;
15302
15683
  if (hasHydrationEventBinding) patchFlag |= 32;
15303
15684
  }
15304
- if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) patchFlag |= 512;
15685
+ const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
15686
+ if (!shouldUseBlock && needsPatch) patchFlag |= 512;
15305
15687
  if (!context.inSSR && propsExpression) switch (propsExpression.type) {
15306
15688
  case 15:
15307
15689
  let classKeyIndex = -1;
@@ -15322,16 +15704,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15322
15704
  } else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
15323
15705
  break;
15324
15706
  case 14: break;
15325
- default:
15326
- propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
15327
- break;
15707
+ default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
15328
15708
  }
15329
15709
  return {
15330
15710
  props: propsExpression,
15331
15711
  directives: runtimeDirectives,
15332
15712
  patchFlag,
15333
15713
  dynamicPropNames,
15334
- shouldUseBlock
15714
+ shouldUseBlock,
15715
+ needsPatch,
15716
+ isBlockRequired
15335
15717
  };
15336
15718
  }
15337
15719
  function dedupeProperties(properties) {
@@ -15428,10 +15810,12 @@ function processSlotOutlet(node, context) {
15428
15810
  for (let i = 0; i < node.props.length; i++) {
15429
15811
  const p = node.props[i];
15430
15812
  if (p.type === 6) {
15431
- if (p.value) if (p.name === "name") slotName = JSON.stringify(p.value.content);
15432
- else {
15433
- p.name = camelize(p.name);
15434
- nonNameProps.push(p);
15813
+ if (p.value) {
15814
+ if (p.name === "name") slotName = JSON.stringify(p.value.content);
15815
+ else {
15816
+ p.name = camelize(p.name);
15817
+ nonNameProps.push(p);
15818
+ }
15435
15819
  }
15436
15820
  } else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
15437
15821
  if (p.exp) slotName = p.exp;
@@ -15457,17 +15841,18 @@ const transformOn$1 = (dir, node, context, augmentor) => {
15457
15841
  const { loc, modifiers, arg } = dir;
15458
15842
  if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
15459
15843
  let eventName;
15460
- if (arg.type === 4) if (arg.isStatic) {
15461
- let rawName = arg.content;
15462
- if (!!(process.env.NODE_ENV !== "production") && rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
15463
- if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
15464
- eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
15465
- } else eventName = createCompoundExpression([
15466
- `${context.helperString(TO_HANDLER_KEY)}(`,
15467
- arg,
15468
- `)`
15469
- ]);
15470
- else {
15844
+ if (arg.type === 4) {
15845
+ if (arg.isStatic) {
15846
+ let rawName = arg.content;
15847
+ if (!!(process.env.NODE_ENV !== "production") && rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
15848
+ if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
15849
+ eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
15850
+ } else eventName = createCompoundExpression([
15851
+ `${context.helperString(TO_HANDLER_KEY)}(`,
15852
+ arg,
15853
+ `)`
15854
+ ]);
15855
+ } else {
15471
15856
  eventName = arg;
15472
15857
  eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
15473
15858
  eventName.children.push(`)`);
@@ -15503,11 +15888,14 @@ const transformBind = (dir, _node, context) => {
15503
15888
  arg.children.unshift(`(`);
15504
15889
  arg.children.push(`) || ""`);
15505
15890
  } else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
15506
- if (modifiers.some((mod) => mod.content === "camel")) if (arg.type === 4) if (arg.isStatic) arg.content = camelize(arg.content);
15507
- else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
15508
- else {
15509
- arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
15510
- arg.children.push(`)`);
15891
+ if (modifiers.some((mod) => mod.content === "camel")) {
15892
+ if (arg.type === 4) {
15893
+ if (arg.isStatic) arg.content = camelize(arg.content);
15894
+ else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
15895
+ } else {
15896
+ arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
15897
+ arg.children.push(`)`);
15898
+ }
15511
15899
  }
15512
15900
  if (!context.inSSR) {
15513
15901
  if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
@@ -15516,9 +15904,10 @@ const transformBind = (dir, _node, context) => {
15516
15904
  return { props: [createObjectProperty(arg, exp)] };
15517
15905
  };
15518
15906
  const injectPrefix = (arg, prefix) => {
15519
- if (arg.type === 4) if (arg.isStatic) arg.content = prefix + arg.content;
15520
- else arg.content = `\`${prefix}\${${arg.content}}\``;
15521
- else {
15907
+ if (arg.type === 4) {
15908
+ if (arg.isStatic) arg.content = prefix + arg.content;
15909
+ else arg.content = `\`${prefix}\${${arg.content}}\``;
15910
+ } else {
15522
15911
  arg.children.unshift(`'${prefix}' + (`);
15523
15912
  arg.children.push(`)`);
15524
15913
  }
@@ -15665,11 +16054,12 @@ function parseFilter(node, context) {
15665
16054
  if (c === 96 && prev !== 92) inTemplateString = false;
15666
16055
  } else if (inRegex) {
15667
16056
  if (c === 47 && prev !== 92) inRegex = false;
15668
- } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) if (expression === void 0) {
15669
- lastFilterIndex = i + 1;
15670
- expression = exp.slice(0, i).trim();
15671
- } else pushFilter();
15672
- else {
16057
+ } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
16058
+ if (expression === void 0) {
16059
+ lastFilterIndex = i + 1;
16060
+ expression = exp.slice(0, i).trim();
16061
+ } else pushFilter();
16062
+ } else {
15673
16063
  switch (c) {
15674
16064
  case 34:
15675
16065
  inDouble = true;
@@ -15695,9 +16085,7 @@ function parseFilter(node, context) {
15695
16085
  case 123:
15696
16086
  curly++;
15697
16087
  break;
15698
- case 125:
15699
- curly--;
15700
- break;
16088
+ case 125: curly--;
15701
16089
  }
15702
16090
  if (c === 47) {
15703
16091
  let j = i - 1;
@@ -15973,9 +16361,7 @@ const transformModel = (dir, node, context) => {
15973
16361
  isInvalidType = true;
15974
16362
  context.onError(createDOMCompilerError(60, dir.loc));
15975
16363
  break;
15976
- default:
15977
- process.env.NODE_ENV !== "production" && checkDuplicatedValue();
15978
- break;
16364
+ default: process.env.NODE_ENV !== "production" && checkDuplicatedValue();
15979
16365
  }
15980
16366
  } else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
15981
16367
  else process.env.NODE_ENV !== "production" && checkDuplicatedValue();
@@ -15988,27 +16374,37 @@ const transformModel = (dir, node, context) => {
15988
16374
  };
15989
16375
  //#endregion
15990
16376
  //#region packages/compiler-dom/src/transforms/vOn.ts
15991
- const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
15992
- const isNonKeyModifier = /* @__PURE__ */ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
15993
- const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
15994
- const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);
16377
+ const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
16378
+ const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
16379
+ const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
16380
+ const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
15995
16381
  const resolveModifiers = (key, modifiers, context, loc) => {
15996
16382
  const keyModifiers = [];
15997
16383
  const nonKeyModifiers = [];
15998
16384
  const eventOptionModifiers = [];
15999
16385
  for (let i = 0; i < modifiers.length; i++) {
16000
16386
  const modifier = modifiers[i].content;
16387
+ if (modifier === "delegate") {
16388
+ if (context) {
16389
+ const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
16390
+ error.loc = modifiers[i].loc;
16391
+ context.onWarn(error);
16392
+ }
16393
+ continue;
16394
+ }
16001
16395
  if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
16002
16396
  else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
16003
16397
  else {
16004
16398
  const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
16005
- if (maybeKeyModifier(modifier)) if (keyString) if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
16006
- else nonKeyModifiers.push(modifier);
16007
- else {
16008
- keyModifiers.push(modifier);
16009
- nonKeyModifiers.push(modifier);
16010
- }
16011
- else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
16399
+ if (maybeKeyModifier(modifier)) {
16400
+ if (keyString) {
16401
+ if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
16402
+ else nonKeyModifiers.push(modifier);
16403
+ } else {
16404
+ keyModifiers.push(modifier);
16405
+ nonKeyModifiers.push(modifier);
16406
+ }
16407
+ } else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
16012
16408
  else keyModifiers.push(modifier);
16013
16409
  }
16014
16410
  }
@@ -16123,7 +16519,7 @@ function isValidHTMLNesting(parent, child) {
16123
16519
  }
16124
16520
  return true;
16125
16521
  }
16126
- const headings = new Set([
16522
+ const headings = /* @__PURE__ */ new Set([
16127
16523
  "h1",
16128
16524
  "h2",
16129
16525
  "h3",
@@ -16135,7 +16531,7 @@ const emptySet = /* @__PURE__ */ new Set([]);
16135
16531
  /**
16136
16532
  * maps element to set of elements that can be it's children, no other */
16137
16533
  const onlyValidChildren = {
16138
- head: new Set([
16534
+ head: /* @__PURE__ */ new Set([
16139
16535
  "base",
16140
16536
  "basefront",
16141
16537
  "bgsound",
@@ -16148,24 +16544,24 @@ const onlyValidChildren = {
16148
16544
  "script",
16149
16545
  "template"
16150
16546
  ]),
16151
- optgroup: new Set(["option"]),
16152
- select: new Set([
16547
+ optgroup: /* @__PURE__ */ new Set(["option"]),
16548
+ select: /* @__PURE__ */ new Set([
16153
16549
  "optgroup",
16154
16550
  "option",
16155
16551
  "hr"
16156
16552
  ]),
16157
- table: new Set([
16553
+ table: /* @__PURE__ */ new Set([
16158
16554
  "caption",
16159
16555
  "colgroup",
16160
16556
  "tbody",
16161
16557
  "tfoot",
16162
16558
  "thead"
16163
16559
  ]),
16164
- tr: new Set(["td", "th"]),
16165
- colgroup: new Set(["col"]),
16166
- tbody: new Set(["tr"]),
16167
- thead: new Set(["tr"]),
16168
- tfoot: new Set(["tr"]),
16560
+ tr: /* @__PURE__ */ new Set(["td", "th"]),
16561
+ colgroup: /* @__PURE__ */ new Set(["col"]),
16562
+ tbody: /* @__PURE__ */ new Set(["tr"]),
16563
+ thead: /* @__PURE__ */ new Set(["tr"]),
16564
+ tfoot: /* @__PURE__ */ new Set(["tr"]),
16169
16565
  script: emptySet,
16170
16566
  iframe: emptySet,
16171
16567
  option: emptySet,
@@ -16176,30 +16572,30 @@ const onlyValidChildren = {
16176
16572
  /** maps elements to set of elements which can be it's parent, no other */
16177
16573
  const onlyValidParents = {
16178
16574
  html: emptySet,
16179
- body: new Set(["html"]),
16180
- head: new Set(["html"]),
16181
- td: new Set(["tr"]),
16182
- colgroup: new Set(["table"]),
16183
- caption: new Set(["table"]),
16184
- tbody: new Set(["table"]),
16185
- tfoot: new Set(["table"]),
16186
- col: new Set(["colgroup"]),
16187
- th: new Set(["tr"]),
16188
- thead: new Set(["table"]),
16189
- tr: new Set([
16575
+ body: /* @__PURE__ */ new Set(["html"]),
16576
+ head: /* @__PURE__ */ new Set(["html"]),
16577
+ td: /* @__PURE__ */ new Set(["tr"]),
16578
+ colgroup: /* @__PURE__ */ new Set(["table"]),
16579
+ caption: /* @__PURE__ */ new Set(["table"]),
16580
+ tbody: /* @__PURE__ */ new Set(["table"]),
16581
+ tfoot: /* @__PURE__ */ new Set(["table"]),
16582
+ col: /* @__PURE__ */ new Set(["colgroup"]),
16583
+ th: /* @__PURE__ */ new Set(["tr"]),
16584
+ thead: /* @__PURE__ */ new Set(["table"]),
16585
+ tr: /* @__PURE__ */ new Set([
16190
16586
  "tbody",
16191
16587
  "thead",
16192
16588
  "tfoot"
16193
16589
  ]),
16194
- dd: new Set(["dl", "div"]),
16195
- dt: new Set(["dl", "div"]),
16196
- figcaption: new Set(["figure"]),
16197
- summary: new Set(["details"]),
16198
- area: new Set(["map"])
16590
+ dd: /* @__PURE__ */ new Set(["dl", "div"]),
16591
+ dt: /* @__PURE__ */ new Set(["dl", "div"]),
16592
+ figcaption: /* @__PURE__ */ new Set(["figure"]),
16593
+ summary: /* @__PURE__ */ new Set(["details"]),
16594
+ area: /* @__PURE__ */ new Set(["map"])
16199
16595
  };
16200
16596
  /** maps element to set of elements that can not be it's children, others can */
16201
16597
  const knownInvalidChildren = {
16202
- p: new Set([
16598
+ p: /* @__PURE__ */ new Set([
16203
16599
  "address",
16204
16600
  "article",
16205
16601
  "aside",
@@ -16234,7 +16630,7 @@ const knownInvalidChildren = {
16234
16630
  "table",
16235
16631
  "ul"
16236
16632
  ]),
16237
- svg: new Set([
16633
+ svg: /* @__PURE__ */ new Set([
16238
16634
  "b",
16239
16635
  "blockquote",
16240
16636
  "br",
@@ -16275,12 +16671,12 @@ const knownInvalidChildren = {
16275
16671
  };
16276
16672
  /** maps element to set of elements that can not be it's parent, others can */
16277
16673
  const knownInvalidParents = {
16278
- a: new Set(["a"]),
16279
- button: new Set(["button"]),
16280
- dd: new Set(["dd", "dt"]),
16281
- dt: new Set(["dd", "dt"]),
16282
- form: new Set(["form"]),
16283
- li: new Set(["li"]),
16674
+ a: /* @__PURE__ */ new Set(["a"]),
16675
+ button: /* @__PURE__ */ new Set(["button"]),
16676
+ dd: /* @__PURE__ */ new Set(["dd", "dt"]),
16677
+ dt: /* @__PURE__ */ new Set(["dd", "dt"]),
16678
+ form: /* @__PURE__ */ new Set(["form"]),
16679
+ li: /* @__PURE__ */ new Set(["li"]),
16284
16680
  h1: headings,
16285
16681
  h2: headings,
16286
16682
  h3: headings,
@@ -16323,10 +16719,12 @@ function compile(src, options = {}) {
16323
16719
  //#region packages/vue-compat/src/index.ts
16324
16720
  const compileCache = Object.create(null);
16325
16721
  function compileToFunction(template, options) {
16326
- if (!isString(template)) if (template.nodeType) template = template.innerHTML;
16327
- else {
16328
- process.env.NODE_ENV !== "production" && warn(`invalid template option: `, template);
16329
- return NOOP;
16722
+ if (!isString(template)) {
16723
+ if (template.nodeType) template = template.innerHTML;
16724
+ else {
16725
+ process.env.NODE_ENV !== "production" && warn(`invalid template option: `, template);
16726
+ return NOOP;
16727
+ }
16330
16728
  }
16331
16729
  const key = genCacheKey(template, options);
16332
16730
  const cached = compileCache[key];
@@ -16360,4 +16758,4 @@ Vue.compile = compileToFunction;
16360
16758
  var esm_index_default = Vue;
16361
16759
  const configureCompat = Vue.configureCompat;
16362
16760
  //#endregion
16363
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, SchedulerJobFlags, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TransitionPropsValidators, TriggerOpTypes, VaporSlot, VueElement, VueElementBase, activate, assertNumber, baseApplyTranslation, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, baseUseCssVars, callPendingCbs, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, configureCompat, createApp, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, esm_index_default as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, ensureVaporSlotFallback, expose, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, isAsyncWrapper, isEmitListener, isHydrating, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isVNode, isValidHtmlOrSvgAttribute, knownTemplateRefs, leaveCbKey, logMismatchError, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, nodeOps, normalizeClass, normalizeContainer, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, parseEventName, patchProp, patchStyle, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, resolveTransitionProps, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVarsOnNode, shallowReactive, shallowReadonly, shallowRef, shouldSetAsProp, shouldSetAsPropForVueCE, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, svgNS, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, unsafeToTrustedHTML, useAsyncComponentState, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelCheckboxInit, vModelCheckboxUpdate, vModelDynamic, getValue as vModelGetValue, vModelRadio, vModelSelect, vModelSelectInit, vModelSetSelected, vModelText, vModelTextInit, vModelTextUpdate, vShow, vShowHidden, vShowOriginalDisplay, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId, xlinkNS };
16761
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MismatchTypes, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, SchedulerJobFlags, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TransitionPropsValidators, TriggerOpTypes, VaporSlot, VueElement, VueElementBase, activate, assertNumber, baseApplyTranslation, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, callPendingCbs, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, configureCompat, createApp, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, esm_index_default as default, defaultPropGetter, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, expose, filterModelListeners, filterSingleRoot, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getContainerType, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, invokeSlotFallback, invokeVNodeHook, isAsyncWrapper, isEmitListener, isFunctionalFallthroughKey, isHydrating, isHydratingEnabled, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isUnchangedResourceProp, isVNode, isValidHtmlOrSvgAttribute, knownTemplateRefs, leaveCbKey, logMismatchError, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, nodeOps, normalizeClass, normalizeContainer, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, parseEventName, patchClass, patchProp, patchStyle, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, prepareTransitionLeave, prepareTransitionSwitch, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, queuePostRenderEffect, rawVaporSlotKey, reactive, readonly, ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveCssVars, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionChild, resolveTransitionHooks, resolveTransitionProps, restoreCurrentInstance, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVarsOnNode, shallowReactive, shallowReadonly, shallowRef, shouldSetAsProp, shouldSetAsPropForVueCE, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, svgNS, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, unsafeToTrustedHTML, useAsyncComponentState, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelCheckboxInit, vModelCheckboxUpdate, vModelDynamic, getValue as vModelGetValue, vModelRadio, vModelSelect, vModelSelectInit, vModelSetSelected, vModelText, vModelTextInit, vModelTextUpdate, vShow, vShowHidden, vShowOriginalDisplay, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId, xlinkNS };