@vue/runtime-dom 3.6.0-rc.5 → 3.6.0-rc.7

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/runtime-dom v3.6.0-rc.5
2
+ * @vue/runtime-dom v3.6.0-rc.7
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -13,7 +13,7 @@ var VueRuntimeDOM = (function(exports) {
13
13
  * \/\*#\_\_PURE\_\_\*\/
14
14
  * So that they can be tree-shaken if necessary.
15
15
  */
16
- /* @__NO_SIDE_EFFECTS__ */
16
+ /*@__NO_SIDE_EFFECTS__*/
17
17
  function makeMap(str) {
18
18
  const map = Object.create(null);
19
19
  for (const key of str.split(",")) map[key] = 1;
@@ -57,9 +57,9 @@ var VueRuntimeDOM = (function(exports) {
57
57
  };
58
58
  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
59
59
  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
60
- const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
61
- const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
62
- const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
60
+ const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
61
+ const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
62
+ const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
63
63
  const cacheStringFunction = (fn) => {
64
64
  const cache = Object.create(null);
65
65
  return ((str) => {
@@ -133,7 +133,7 @@ var VueRuntimeDOM = (function(exports) {
133
133
  function canSetValueDirectly(tagName) {
134
134
  return tagName !== "PROGRESS" && !tagName.includes("-");
135
135
  }
136
- 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");
136
+ 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");
137
137
  //#endregion
138
138
  //#region packages/shared/src/normalizeProp.ts
139
139
  function normalizeStyle(value) {
@@ -201,17 +201,17 @@ var VueRuntimeDOM = (function(exports) {
201
201
  * Compiler only.
202
202
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
203
203
  */
204
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
204
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
205
205
  /**
206
206
  * Compiler only.
207
207
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
208
208
  */
209
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
209
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
210
210
  /**
211
211
  * Compiler only.
212
212
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
213
213
  */
214
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
214
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
215
215
  //#endregion
216
216
  //#region packages/shared/src/domAttrConfig.ts
217
217
  /**
@@ -226,11 +226,11 @@ var VueRuntimeDOM = (function(exports) {
226
226
  * - readonly -> readOnly
227
227
  */
228
228
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
229
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
229
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
230
230
  /**
231
231
  * The full list is needed during SSR to produce the correct initial markup.
232
232
  */
233
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
233
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
234
234
  /**
235
235
  * Boolean attributes should be included if the value is truthy or ''.
236
236
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -244,11 +244,11 @@ var VueRuntimeDOM = (function(exports) {
244
244
  * Don't also forget to allow `data-*` and `aria-*`!
245
245
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
246
246
  */
247
- 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");
247
+ 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");
248
248
  /**
249
249
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
250
250
  */
251
- 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");
251
+ 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");
252
252
  /**
253
253
  * Shared between server-renderer and runtime-core hydration logic
254
254
  */
@@ -280,6 +280,21 @@ var VueRuntimeDOM = (function(exports) {
280
280
  for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
281
281
  return equal;
282
282
  }
283
+ function looseCompareCollections(a, b) {
284
+ if (a.size !== b.size) return false;
285
+ const candidates = Array.from(b);
286
+ const matched = new Uint8Array(candidates.length);
287
+ for (const item of a) {
288
+ let index = -1;
289
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i])) {
290
+ index = i;
291
+ break;
292
+ }
293
+ if (index < 0) return false;
294
+ matched[index] = 1;
295
+ }
296
+ return true;
297
+ }
283
298
  function looseEqual(a, b) {
284
299
  if (a === b) return true;
285
300
  let aValidType = isDate(a);
@@ -295,6 +310,12 @@ var VueRuntimeDOM = (function(exports) {
295
310
  bValidType = isObject(b);
296
311
  if (aValidType || bValidType) {
297
312
  if (!aValidType || !bValidType) return false;
313
+ aValidType = isMap(a);
314
+ bValidType = isMap(b);
315
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b) : false;
316
+ aValidType = isSet(a);
317
+ bValidType = isSet(b);
318
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b) : false;
298
319
  if (Object.keys(a).length !== Object.keys(b).length) return false;
299
320
  for (const key in a) {
300
321
  const aHasKey = a.hasOwnProperty(key);
@@ -741,9 +762,7 @@ var VueRuntimeDOM = (function(exports) {
741
762
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
742
763
  }
743
764
  break;
744
- case "set":
745
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
746
- break;
765
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
747
766
  }
748
767
  }
749
768
  }
@@ -940,8 +959,8 @@ var VueRuntimeDOM = (function(exports) {
940
959
  }
941
960
  //#endregion
942
961
  //#region packages/reactivity/src/baseHandlers.ts
943
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
944
- const builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
962
+ const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
963
+ const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
945
964
  function hasOwnProperty(key) {
946
965
  if (!isSymbol(key)) key = String(key);
947
966
  const obj = /* @__PURE__ */ toRaw(this);
@@ -996,12 +1015,14 @@ var VueRuntimeDOM = (function(exports) {
996
1015
  oldValue = /* @__PURE__ */ toRaw(oldValue);
997
1016
  value = /* @__PURE__ */ toRaw(value);
998
1017
  }
999
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) {
1000
- warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1001
- return true;
1002
- } else {
1003
- oldValue.value = value;
1004
- return true;
1018
+ if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1019
+ if (isOldValueReadonly) {
1020
+ warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1021
+ return true;
1022
+ } else {
1023
+ oldValue.value = value;
1024
+ return true;
1025
+ }
1005
1026
  }
1006
1027
  }
1007
1028
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
@@ -1042,10 +1063,10 @@ var VueRuntimeDOM = (function(exports) {
1042
1063
  return true;
1043
1064
  }
1044
1065
  };
1045
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1046
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1047
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1048
- const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1066
+ const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
1067
+ const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
1068
+ const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
1069
+ const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
1049
1070
  //#endregion
1050
1071
  //#region packages/reactivity/src/collectionHandlers.ts
1051
1072
  const toShallow = (value) => value;
@@ -1196,10 +1217,10 @@ var VueRuntimeDOM = (function(exports) {
1196
1217
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1197
1218
  };
1198
1219
  }
1199
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1200
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1201
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1202
- const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1220
+ const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
1221
+ const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
1222
+ const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
1223
+ const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
1203
1224
  function checkIdentityKeys(target, has, key) {
1204
1225
  const rawKey = /* @__PURE__ */ toRaw(key);
1205
1226
  if (rawKey !== key && has.call(target, rawKey)) {
@@ -1224,7 +1245,7 @@ var VueRuntimeDOM = (function(exports) {
1224
1245
  default: return 0;
1225
1246
  }
1226
1247
  }
1227
- /* @__NO_SIDE_EFFECTS__ */
1248
+ /*@__NO_SIDE_EFFECTS__*/
1228
1249
  function reactive(target) {
1229
1250
  if (/* @__PURE__ */ isReadonly(target)) return target;
1230
1251
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1259,7 +1280,7 @@ var VueRuntimeDOM = (function(exports) {
1259
1280
  * @param target - The source object.
1260
1281
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1261
1282
  */
1262
- /* @__NO_SIDE_EFFECTS__ */
1283
+ /*@__NO_SIDE_EFFECTS__*/
1263
1284
  function shallowReactive(target) {
1264
1285
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1265
1286
  }
@@ -1292,7 +1313,7 @@ var VueRuntimeDOM = (function(exports) {
1292
1313
  * @param target - The source object.
1293
1314
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1294
1315
  */
1295
- /* @__NO_SIDE_EFFECTS__ */
1316
+ /*@__NO_SIDE_EFFECTS__*/
1296
1317
  function readonly(target) {
1297
1318
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1298
1319
  }
@@ -1326,7 +1347,7 @@ var VueRuntimeDOM = (function(exports) {
1326
1347
  * @param target - The source object.
1327
1348
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1328
1349
  */
1329
- /* @__NO_SIDE_EFFECTS__ */
1350
+ /*@__NO_SIDE_EFFECTS__*/
1330
1351
  function shallowReadonly(target) {
1331
1352
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1332
1353
  }
@@ -1363,7 +1384,7 @@ var VueRuntimeDOM = (function(exports) {
1363
1384
  * @param value - The value to check.
1364
1385
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1365
1386
  */
1366
- /* @__NO_SIDE_EFFECTS__ */
1387
+ /*@__NO_SIDE_EFFECTS__*/
1367
1388
  function isReactive(value) {
1368
1389
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1369
1390
  return !!(value && value["__v_isReactive"]);
@@ -1379,11 +1400,11 @@ var VueRuntimeDOM = (function(exports) {
1379
1400
  * @param value - The value to check.
1380
1401
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1381
1402
  */
1382
- /* @__NO_SIDE_EFFECTS__ */
1403
+ /*@__NO_SIDE_EFFECTS__*/
1383
1404
  function isReadonly(value) {
1384
1405
  return !!(value && value["__v_isReadonly"]);
1385
1406
  }
1386
- /* @__NO_SIDE_EFFECTS__ */
1407
+ /*@__NO_SIDE_EFFECTS__*/
1387
1408
  function isShallow(value) {
1388
1409
  return !!(value && value["__v_isShallow"]);
1389
1410
  }
@@ -1394,7 +1415,7 @@ var VueRuntimeDOM = (function(exports) {
1394
1415
  * @param value - The value to check.
1395
1416
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1396
1417
  */
1397
- /* @__NO_SIDE_EFFECTS__ */
1418
+ /*@__NO_SIDE_EFFECTS__*/
1398
1419
  function isProxy(value) {
1399
1420
  return value ? !!value["__v_raw"] : false;
1400
1421
  }
@@ -1421,7 +1442,7 @@ var VueRuntimeDOM = (function(exports) {
1421
1442
  * @param observed - The object for which the "raw" value is requested.
1422
1443
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1423
1444
  */
1424
- /* @__NO_SIDE_EFFECTS__ */
1445
+ /*@__NO_SIDE_EFFECTS__*/
1425
1446
  function toRaw(observed) {
1426
1447
  const raw = observed && observed["__v_raw"];
1427
1448
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1470,15 +1491,15 @@ var VueRuntimeDOM = (function(exports) {
1470
1491
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1471
1492
  //#endregion
1472
1493
  //#region packages/reactivity/src/ref.ts
1473
- /* @__NO_SIDE_EFFECTS__ */
1494
+ /*@__NO_SIDE_EFFECTS__*/
1474
1495
  function isRef(r) {
1475
1496
  return r ? r["__v_isRef"] === true : false;
1476
1497
  }
1477
- /* @__NO_SIDE_EFFECTS__ */
1498
+ /*@__NO_SIDE_EFFECTS__*/
1478
1499
  function ref(value) {
1479
1500
  return createRef(value, toReactive);
1480
1501
  }
1481
- /* @__NO_SIDE_EFFECTS__ */
1502
+ /*@__NO_SIDE_EFFECTS__*/
1482
1503
  function shallowRef(value) {
1483
1504
  return createRef(value);
1484
1505
  }
@@ -1681,7 +1702,7 @@ var VueRuntimeDOM = (function(exports) {
1681
1702
  * @param object - Reactive object to be made into an object of linked refs.
1682
1703
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1683
1704
  */
1684
- /* @__NO_SIDE_EFFECTS__ */
1705
+ /*@__NO_SIDE_EFFECTS__*/
1685
1706
  function toRefs(object) {
1686
1707
  const ret = isArray(object) ? new Array(object.length) : {};
1687
1708
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1732,7 +1753,7 @@ var VueRuntimeDOM = (function(exports) {
1732
1753
  return this._value = this._getter();
1733
1754
  }
1734
1755
  };
1735
- /* @__NO_SIDE_EFFECTS__ */
1756
+ /*@__NO_SIDE_EFFECTS__*/
1736
1757
  function toRef(source, key, defaultValue) {
1737
1758
  if (/* @__PURE__ */ isRef(source)) return source;
1738
1759
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1798,10 +1819,12 @@ var VueRuntimeDOM = (function(exports) {
1798
1819
  get dirty() {
1799
1820
  const flags = this.flags;
1800
1821
  if (flags & 16) return true;
1801
- if (flags & 32) if (checkDirty(this.deps, this)) {
1802
- this.flags = flags | 16;
1803
- return true;
1804
- } else this.flags = flags & -33;
1822
+ if (flags & 32) {
1823
+ if (checkDirty(this.deps, this)) {
1824
+ this.flags = flags | 16;
1825
+ return true;
1826
+ } else this.flags = flags & -33;
1827
+ }
1805
1828
  return false;
1806
1829
  }
1807
1830
  };
@@ -1980,10 +2003,12 @@ var VueRuntimeDOM = (function(exports) {
1980
2003
  get _dirty() {
1981
2004
  const flags = this.flags;
1982
2005
  if (flags & 16) return true;
1983
- if (flags & 32) if (checkDirty(this.deps, this)) {
1984
- this.flags = flags | 16;
1985
- return true;
1986
- } else this.flags = flags & -33;
2006
+ if (flags & 32) {
2007
+ if (checkDirty(this.deps, this)) {
2008
+ this.flags = flags | 16;
2009
+ return true;
2010
+ } else this.flags = flags & -33;
2011
+ }
1987
2012
  return false;
1988
2013
  }
1989
2014
  /**
@@ -2044,7 +2069,7 @@ var VueRuntimeDOM = (function(exports) {
2044
2069
  }
2045
2070
  };
2046
2071
  setupOnTrigger(ComputedRefImpl);
2047
- /* @__NO_SIDE_EFFECTS__ */
2072
+ /*@__NO_SIDE_EFFECTS__*/
2048
2073
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
2049
2074
  let getter;
2050
2075
  let setter;
@@ -2122,25 +2147,26 @@ var VueRuntimeDOM = (function(exports) {
2122
2147
  else if (isFunction(s)) return call ? call(s, 2) : s();
2123
2148
  else warnInvalidSource(s, onWarn);
2124
2149
  });
2125
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2126
- else getter = () => {
2127
- if (this.cleanupsLength) {
2128
- const prevSub = setActiveSub();
2150
+ } else if (isFunction(source)) {
2151
+ if (cb) getter = call ? () => call(source, 2) : source;
2152
+ else getter = () => {
2153
+ if (this.cleanupsLength) {
2154
+ const prevSub = setActiveSub();
2155
+ try {
2156
+ cleanup(this);
2157
+ } finally {
2158
+ setActiveSub(prevSub);
2159
+ }
2160
+ }
2161
+ const currentEffect = activeWatcher;
2162
+ activeWatcher = this;
2129
2163
  try {
2130
- cleanup(this);
2164
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2131
2165
  } finally {
2132
- setActiveSub(prevSub);
2166
+ activeWatcher = currentEffect;
2133
2167
  }
2134
- }
2135
- const currentEffect = activeWatcher;
2136
- activeWatcher = this;
2137
- try {
2138
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2139
- } finally {
2140
- activeWatcher = currentEffect;
2141
- }
2142
- };
2143
- else {
2168
+ };
2169
+ } else {
2144
2170
  getter = NOOP;
2145
2171
  warnInvalidSource(source, onWarn);
2146
2172
  }
@@ -2464,7 +2490,7 @@ var VueRuntimeDOM = (function(exports) {
2464
2490
  let jobsLength = 0;
2465
2491
  let flushIndex = 0;
2466
2492
  let postFlushIndex = 0;
2467
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2493
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2468
2494
  const RECURSION_LIMIT = 100;
2469
2495
  function nextTick(fn) {
2470
2496
  const p = currentFlushPromise || resolvedPromise;
@@ -2503,6 +2529,7 @@ var VueRuntimeDOM = (function(exports) {
2503
2529
  flushJobs();
2504
2530
  } catch (e) {
2505
2531
  currentFlushPromise = null;
2532
+ if (jobsLength || postJobs.length) queueFlush();
2506
2533
  throw e;
2507
2534
  }
2508
2535
  };
@@ -2510,9 +2537,10 @@ var VueRuntimeDOM = (function(exports) {
2510
2537
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2511
2538
  }
2512
2539
  function queuePostFlushCb(jobs, id = Infinity) {
2513
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2514
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2515
- else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2540
+ if (!isArray(jobs)) {
2541
+ if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2542
+ else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2543
+ } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2516
2544
  queueFlush();
2517
2545
  }
2518
2546
  function flushPreFlushCbs(instance, seen) {
@@ -2526,8 +2554,11 @@ var VueRuntimeDOM = (function(exports) {
2526
2554
  i--;
2527
2555
  jobsLength--;
2528
2556
  if (cb.flags & 2) cb.flags &= -2;
2529
- cb();
2530
- if (!(cb.flags & 2)) cb.flags &= -2;
2557
+ try {
2558
+ cb();
2559
+ } finally {
2560
+ if (!(cb.flags & 2)) cb.flags &= -2;
2561
+ }
2531
2562
  }
2532
2563
  }
2533
2564
  function flushPostFlushCbs(seen) {
@@ -2540,18 +2571,22 @@ var VueRuntimeDOM = (function(exports) {
2540
2571
  activePostJobs = postJobs;
2541
2572
  postJobs = [];
2542
2573
  seen = seen || /* @__PURE__ */ new Map();
2543
- while (postFlushIndex < activePostJobs.length) {
2544
- const cb = activePostJobs[postFlushIndex++];
2545
- if (checkRecursiveUpdates(seen, cb)) continue;
2546
- if (cb.flags & 2) cb.flags &= -2;
2547
- if (!(cb.flags & 4)) try {
2548
- cb();
2549
- } finally {
2550
- cb.flags &= -2;
2574
+ try {
2575
+ while (postFlushIndex < activePostJobs.length) {
2576
+ const cb = activePostJobs[postFlushIndex++];
2577
+ if (checkRecursiveUpdates(seen, cb)) continue;
2578
+ if (cb.flags & 2) cb.flags &= -2;
2579
+ if (!(cb.flags & 4)) try {
2580
+ cb();
2581
+ } finally {
2582
+ if (!(cb.flags & 2)) cb.flags &= -2;
2583
+ }
2551
2584
  }
2585
+ } finally {
2586
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2587
+ activePostJobs = null;
2588
+ postFlushIndex = 0;
2552
2589
  }
2553
- activePostJobs = null;
2554
- postFlushIndex = 0;
2555
2590
  }
2556
2591
  }
2557
2592
  let isFlushing = false;
@@ -2561,9 +2596,12 @@ var VueRuntimeDOM = (function(exports) {
2561
2596
  function flushOnAppMount(instance) {
2562
2597
  if (!isFlushing) {
2563
2598
  isFlushing = true;
2564
- flushPreFlushCbs(instance);
2565
- flushPostFlushCbs();
2566
- isFlushing = false;
2599
+ try {
2600
+ flushPreFlushCbs(instance);
2601
+ flushPostFlushCbs();
2602
+ } finally {
2603
+ isFlushing = false;
2604
+ }
2567
2605
  }
2568
2606
  }
2569
2607
  function flushJobs(seen) {
@@ -2593,8 +2631,8 @@ var VueRuntimeDOM = (function(exports) {
2593
2631
  jobsLength = 0;
2594
2632
  jobs.length = 0;
2595
2633
  flushPostFlushCbs(seen);
2596
- currentFlushPromise = null;
2597
2634
  if (jobsLength || postJobs.length) flushJobs(seen);
2635
+ else currentFlushPromise = null;
2598
2636
  }
2599
2637
  }
2600
2638
  function checkRecursiveUpdates(seen, fn) {
@@ -2625,6 +2663,19 @@ var VueRuntimeDOM = (function(exports) {
2625
2663
  rerender: tryWrap(rerender),
2626
2664
  reload: tryWrap(reload)
2627
2665
  };
2666
+ function runWithHmrUpdating(fn) {
2667
+ isHmrUpdating = true;
2668
+ let done = false;
2669
+ try {
2670
+ fn();
2671
+ done = true;
2672
+ } finally {
2673
+ if (done) nextTick(() => {
2674
+ isHmrUpdating = false;
2675
+ });
2676
+ else isHmrUpdating = false;
2677
+ }
2678
+ }
2628
2679
  const map = /* @__PURE__ */ new Map();
2629
2680
  function registerHMR(instance) {
2630
2681
  const id = instance.type.__hmrId;
@@ -2666,18 +2717,16 @@ var VueRuntimeDOM = (function(exports) {
2666
2717
  instance.render = newRender;
2667
2718
  normalizeClassComponent(instance.type).render = newRender;
2668
2719
  }
2669
- isHmrUpdating = true;
2670
- if (instance.vapor) {
2671
- if (!instance.isUnmounted) instance.hmrRerender();
2672
- } else {
2673
- const i = instance;
2674
- if (!(i.effect.flags & 1024)) {
2675
- i.renderCache = [];
2676
- i.effect.run();
2720
+ runWithHmrUpdating(() => {
2721
+ if (instance.vapor) {
2722
+ if (!instance.isUnmounted) instance.hmrRerender();
2723
+ } else {
2724
+ const i = instance;
2725
+ if (!(i.effect.flags & 1024)) {
2726
+ i.renderCache = [];
2727
+ i.effect.run();
2728
+ }
2677
2729
  }
2678
- }
2679
- nextTick(() => {
2680
- isHmrUpdating = false;
2681
2730
  });
2682
2731
  });
2683
2732
  }
@@ -2692,15 +2741,17 @@ var VueRuntimeDOM = (function(exports) {
2692
2741
  for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
2693
2742
  const dirtyInstances = new Set(instances);
2694
2743
  const rerenderedParents = /* @__PURE__ */ new Set();
2695
- for (const instance of instances) {
2696
- const parent = instance.parent;
2697
- if (parent) {
2698
- if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2699
- rerenderedParents.add(parent);
2700
- parent.hmrRerender();
2701
- }
2702
- } else instance.hmrReload(newComp);
2703
- }
2744
+ runWithHmrUpdating(() => {
2745
+ for (const instance of instances) {
2746
+ const parent = instance.parent;
2747
+ if (parent) {
2748
+ if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2749
+ rerenderedParents.add(parent);
2750
+ parent.hmrRerender();
2751
+ }
2752
+ } else instance.hmrReload(newComp);
2753
+ }
2754
+ });
2704
2755
  } else {
2705
2756
  const parentUpdates = /* @__PURE__ */ new Map();
2706
2757
  const dirtyInstanceSet = new Set(instances);
@@ -2734,21 +2785,22 @@ var VueRuntimeDOM = (function(exports) {
2734
2785
  }
2735
2786
  parentUpdates.forEach((updates, parent) => {
2736
2787
  queueJob(() => {
2737
- isHmrUpdating = true;
2738
- if (parent.vapor) parent.hmrRerender();
2739
- else {
2740
- const i = parent;
2741
- if (!(i.effect.flags & 1024)) {
2742
- i.renderCache = [];
2743
- i.effect.run();
2744
- }
2788
+ try {
2789
+ runWithHmrUpdating(() => {
2790
+ if (parent.vapor) parent.hmrRerender();
2791
+ else {
2792
+ const i = parent;
2793
+ if (!(i.effect.flags & 1024)) {
2794
+ i.renderCache = [];
2795
+ i.effect.run();
2796
+ }
2797
+ }
2798
+ });
2799
+ } finally {
2800
+ updates.forEach(([instance, dirtyInstances]) => {
2801
+ dirtyInstances.delete(instance);
2802
+ });
2745
2803
  }
2746
- nextTick(() => {
2747
- isHmrUpdating = false;
2748
- });
2749
- updates.forEach(([instance, dirtyInstances]) => {
2750
- dirtyInstances.delete(instance);
2751
- });
2752
2804
  });
2753
2805
  });
2754
2806
  }
@@ -2817,20 +2869,20 @@ var VueRuntimeDOM = (function(exports) {
2817
2869
  function devtoolsUnmountApp(app) {
2818
2870
  emit$1("app:unmount", app);
2819
2871
  }
2820
- const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added");
2821
- const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated");
2822
- const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook("component:removed");
2872
+ const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
2873
+ const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
2874
+ const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
2823
2875
  const devtoolsComponentRemoved = (component) => {
2824
2876
  if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
2825
2877
  };
2826
- /* @__NO_SIDE_EFFECTS__ */
2878
+ /*@__NO_SIDE_EFFECTS__*/
2827
2879
  function createDevtoolsComponentHook(hook) {
2828
2880
  return (component) => {
2829
2881
  emit$1(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
2830
2882
  };
2831
2883
  }
2832
- const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start");
2833
- const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end");
2884
+ const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
2885
+ const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
2834
2886
  function createDevtoolsPerformanceHook(hook) {
2835
2887
  return (component, type, time) => {
2836
2888
  emit$1(hook, component.appContext.app, component.uid, component, type, time);
@@ -3091,15 +3143,16 @@ var VueRuntimeDOM = (function(exports) {
3091
3143
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
3092
3144
  const resolveTarget = (props, select) => {
3093
3145
  const targetSelector = props && props.to;
3094
- if (isString(targetSelector)) if (!select) {
3095
- warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3096
- return null;
3146
+ if (isString(targetSelector)) {
3147
+ if (!select) {
3148
+ warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3149
+ return null;
3150
+ } else {
3151
+ const target = select(targetSelector);
3152
+ if (!target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
3153
+ return target;
3154
+ }
3097
3155
  } else {
3098
- const target = select(targetSelector);
3099
- if (!target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
3100
- return target;
3101
- }
3102
- else {
3103
3156
  if (!targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
3104
3157
  return targetSelector;
3105
3158
  }
@@ -3137,7 +3190,8 @@ var VueRuntimeDOM = (function(exports) {
3137
3190
  if (pendingMounts.get(vnode) !== mountJob) return;
3138
3191
  pendingMounts.delete(vnode);
3139
3192
  if (isTeleportDisabled(vnode.props)) {
3140
- mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
3193
+ const mountContainer = parentNode(vnode.el) || container;
3194
+ mount(vnode, mountContainer, vnode.anchor);
3141
3195
  updateCssVars(vnode, true);
3142
3196
  }
3143
3197
  mountToTarget(vnode);
@@ -3246,15 +3300,17 @@ var VueRuntimeDOM = (function(exports) {
3246
3300
  const disabled = isTeleportDisabled(vnode.props);
3247
3301
  if (target) {
3248
3302
  const targetNode = target._lpa || target.firstChild;
3249
- if (vnode.shapeFlag & 16) if (disabled) {
3250
- hydrateDisabledTeleport(node, vnode);
3251
- hydrateAnchor(target, targetNode);
3252
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3253
- } else {
3254
- vnode.anchor = nextSibling(node);
3255
- hydrateAnchor(target, targetNode);
3256
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3257
- hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3303
+ if (vnode.shapeFlag & 16) {
3304
+ if (disabled) {
3305
+ hydrateDisabledTeleport(node, vnode);
3306
+ hydrateAnchor(target, targetNode);
3307
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3308
+ } else {
3309
+ vnode.anchor = nextSibling(node);
3310
+ hydrateAnchor(target, targetNode);
3311
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3312
+ hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3313
+ }
3258
3314
  }
3259
3315
  updateCssVars(vnode, disabled);
3260
3316
  } else if (disabled) {
@@ -3420,8 +3476,10 @@ var VueRuntimeDOM = (function(exports) {
3420
3476
  persisted,
3421
3477
  beforeEnter(el) {
3422
3478
  let hook = onBeforeEnter;
3423
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3424
- else return;
3479
+ if (!state.isMounted) {
3480
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
3481
+ else return;
3482
+ }
3425
3483
  if (el[leaveCbKey]) el[leaveCbKey](true);
3426
3484
  earlyRemove();
3427
3485
  callHook(hook, [el]);
@@ -3431,11 +3489,13 @@ var VueRuntimeDOM = (function(exports) {
3431
3489
  let hook = onEnter;
3432
3490
  let afterHook = onAfterEnter;
3433
3491
  let cancelHook = onEnterCancelled;
3434
- if (!state.isMounted) if (appear) {
3435
- hook = onAppear || onEnter;
3436
- afterHook = onAfterAppear || onAfterEnter;
3437
- cancelHook = onAppearCancelled || onEnterCancelled;
3438
- } else return;
3492
+ if (!state.isMounted) {
3493
+ if (appear) {
3494
+ hook = onAppear || onEnter;
3495
+ afterHook = onAfterAppear || onAfterEnter;
3496
+ cancelHook = onAppearCancelled || onEnterCancelled;
3497
+ } else return;
3498
+ }
3439
3499
  let called = false;
3440
3500
  el[enterCbKey$1] = (cancelled) => {
3441
3501
  if (called) return;
@@ -3469,7 +3529,7 @@ var VueRuntimeDOM = (function(exports) {
3469
3529
  else done();
3470
3530
  },
3471
3531
  clone(node) {
3472
- return cloneHooks(node);
3532
+ return cloneHooks ? cloneHooks(node) : hooks;
3473
3533
  }
3474
3534
  };
3475
3535
  return hooks;
@@ -3601,9 +3661,9 @@ var VueRuntimeDOM = (function(exports) {
3601
3661
  }
3602
3662
  //#endregion
3603
3663
  //#region packages/runtime-core/src/apiDefineComponent.ts
3604
- /* @__NO_SIDE_EFFECTS__ */
3664
+ /*@__NO_SIDE_EFFECTS__*/
3605
3665
  function defineComponent(options, extraOptions) {
3606
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
3666
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
3607
3667
  }
3608
3668
  //#endregion
3609
3669
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -3700,15 +3760,16 @@ var VueRuntimeDOM = (function(exports) {
3700
3760
  if (rawRef.f) {
3701
3761
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
3702
3762
  if (isUnmount) isArray(existing) && remove(existing, refValue);
3703
- else if (!isArray(existing)) if (_isString) {
3704
- refs[ref] = [refValue];
3705
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3706
- } else {
3707
- const newVal = [refValue];
3708
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3709
- if (rawRef.k) refs[rawRef.k] = newVal;
3710
- }
3711
- else if (!existing.includes(refValue)) existing.push(refValue);
3763
+ else if (!isArray(existing)) {
3764
+ if (_isString) {
3765
+ refs[ref] = [refValue];
3766
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3767
+ } else {
3768
+ const newVal = [refValue];
3769
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3770
+ if (rawRef.k) refs[rawRef.k] = newVal;
3771
+ }
3772
+ } else if (!existing.includes(refValue)) existing.push(refValue);
3712
3773
  } else if (_isString) {
3713
3774
  refs[ref] = value;
3714
3775
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -3809,11 +3870,12 @@ var VueRuntimeDOM = (function(exports) {
3809
3870
  let nextNode = null;
3810
3871
  switch (type) {
3811
3872
  case Text:
3812
- if (domType !== 3) if (vnode.children === "") {
3813
- insert(vnode.el = createText(""), parentNode(node), node);
3814
- nextNode = node;
3815
- } else nextNode = onMismatch();
3816
- else {
3873
+ if (domType !== 3) {
3874
+ if (vnode.children === "") {
3875
+ insert(vnode.el = createText(""), parentNode(node), node);
3876
+ nextNode = node;
3877
+ } else nextNode = onMismatch();
3878
+ } else {
3817
3879
  if (node.data !== vnode.children) {
3818
3880
  warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
3819
3881
  logMismatchError();
@@ -3852,9 +3914,10 @@ var VueRuntimeDOM = (function(exports) {
3852
3914
  case VaporSlot:
3853
3915
  nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
3854
3916
  break;
3855
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
3856
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3857
- else if (shapeFlag & 6) {
3917
+ default: if (shapeFlag & 1) {
3918
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
3919
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3920
+ } else if (shapeFlag & 6) {
3858
3921
  vnode.slotScopeIds = slotScopeIds;
3859
3922
  const container = parentNode(node);
3860
3923
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
@@ -3876,19 +3939,20 @@ var VueRuntimeDOM = (function(exports) {
3876
3939
  } else {
3877
3940
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
3878
3941
  const component = vnode.component;
3879
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
3942
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep && !component.asyncResolved)) {
3880
3943
  let subTree;
3881
3944
  if (isFragmentStart) {
3882
- subTree = createVNode(Fragment);
3945
+ subTree = createVNode(Static);
3883
3946
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
3884
3947
  } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
3885
3948
  subTree.el = node;
3886
3949
  component.subTree = subTree;
3887
3950
  }
3888
3951
  }
3889
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
3890
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3891
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3952
+ } else if (shapeFlag & 64) {
3953
+ if (domType !== 8) nextNode = onMismatch();
3954
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3955
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3892
3956
  else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
3893
3957
  }
3894
3958
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
@@ -4029,8 +4093,10 @@ var VueRuntimeDOM = (function(exports) {
4029
4093
  node = nextSibling(node);
4030
4094
  if (node && isComment(node)) {
4031
4095
  if (node.data === open) match++;
4032
- if (node.data === close) if (match === 0) return nextSibling(node);
4033
- else match--;
4096
+ if (node.data === close) {
4097
+ if (match === 0) return nextSibling(node);
4098
+ else match--;
4099
+ }
4034
4100
  }
4035
4101
  }
4036
4102
  return node;
@@ -4052,7 +4118,7 @@ var VueRuntimeDOM = (function(exports) {
4052
4118
  /**
4053
4119
  * Dev only
4054
4120
  */
4055
- const resourceProps = /* @__PURE__ */ new Set([
4121
+ const resourceProps = /*@__PURE__*/ new Set([
4056
4122
  "src",
4057
4123
  "srcset",
4058
4124
  "href",
@@ -4294,14 +4360,14 @@ var VueRuntimeDOM = (function(exports) {
4294
4360
  //#endregion
4295
4361
  //#region packages/runtime-core/src/apiAsyncComponent.ts
4296
4362
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4297
- /* @__NO_SIDE_EFFECTS__ */
4363
+ /*@__NO_SIDE_EFFECTS__*/
4298
4364
  function defineAsyncComponent(source) {
4299
4365
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
4300
4366
  return /* @__PURE__ */ defineComponent({
4301
4367
  name: "AsyncComponentWrapper",
4302
4368
  __asyncLoader: load,
4303
4369
  __asyncHydrate(el, instance, hydrate) {
4304
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
4370
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
4305
4371
  },
4306
4372
  get __asyncResolved() {
4307
4373
  return getResolvedComp();
@@ -4420,10 +4486,10 @@ var VueRuntimeDOM = (function(exports) {
4420
4486
  * shared between core and vapor
4421
4487
  * @internal
4422
4488
  */
4423
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
4489
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4424
4490
  const wasConnected = el.isConnected;
4425
4491
  let patched = false;
4426
- (instance.bu || (instance.bu = [])).push(() => patched = true);
4492
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
4427
4493
  const performHydrate = () => {
4428
4494
  if (patched) {
4429
4495
  {
@@ -4509,10 +4575,13 @@ var VueRuntimeDOM = (function(exports) {
4509
4575
  });
4510
4576
  let pendingCacheKey = null;
4511
4577
  const cacheSubtree = () => {
4512
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4513
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4514
- }, void 0, keepAliveInstance.subTree.suspense);
4515
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4578
+ if (pendingCacheKey != null) {
4579
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4580
+ const vnode = getInnerChild(keepAliveInstance.subTree);
4581
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
4582
+ }, void 0, keepAliveInstance.subTree.suspense);
4583
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4584
+ }
4516
4585
  };
4517
4586
  onMounted(cacheSubtree);
4518
4587
  onUpdated(cacheSubtree);
@@ -4754,23 +4823,25 @@ var VueRuntimeDOM = (function(exports) {
4754
4823
  }
4755
4824
  ret = new Array(source.length);
4756
4825
  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]);
4757
- } else if (typeof source === "number") if (!Number.isInteger(source) || source < 0) {
4758
- warn$1(`The v-for range expects a positive integer value but got ${source}.`);
4759
- ret = [];
4760
- } else {
4761
- ret = new Array(source);
4762
- for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
4763
- }
4764
- else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4765
- else {
4766
- const keys = Object.keys(source);
4767
- ret = new Array(keys.length);
4768
- for (let i = 0, l = keys.length; i < l; i++) {
4769
- const key = keys[i];
4770
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4826
+ } else if (typeof source === "number") {
4827
+ if (!Number.isInteger(source) || source < 0) {
4828
+ warn$1(`The v-for range expects a positive integer value but got ${source}.`);
4829
+ ret = [];
4830
+ } else {
4831
+ ret = new Array(source);
4832
+ for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
4771
4833
  }
4772
- }
4773
- else ret = [];
4834
+ } else if (isObject(source)) {
4835
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4836
+ else {
4837
+ const keys = Object.keys(source);
4838
+ ret = new Array(keys.length);
4839
+ for (let i = 0, l = keys.length; i < l; i++) {
4840
+ const key = keys[i];
4841
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4842
+ }
4843
+ }
4844
+ } else ret = [];
4774
4845
  if (cache) cache[index] = ret;
4775
4846
  return ret;
4776
4847
  }
@@ -4795,14 +4866,27 @@ var VueRuntimeDOM = (function(exports) {
4795
4866
  //#endregion
4796
4867
  //#region packages/runtime-core/src/helpers/renderSlot.ts
4797
4868
  /**
4869
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
4870
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
4871
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
4872
+ * "which one". Internal to vapor interop.
4873
+ */
4874
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
4875
+ /**
4876
+ * Marks a compiler-generated slot fallback as VDOM-rendered so the vapor
4877
+ * interop fallback chain renders it through the VDOM renderer. Internal to
4878
+ * vapor interop.
4879
+ */
4880
+ const vdomSlotFallbackKey = Symbol(`vdomSlotFallback`);
4881
+ /**
4798
4882
  * Compiler runtime helper for rendering `<slot/>`
4799
4883
  * @private
4800
4884
  */
4801
4885
  function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
4802
4886
  if (props == null) props = {};
4803
4887
  let slot = slots[name];
4804
- if (fallback) fallback.__vdom = true;
4805
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
4888
+ if (fallback) fallback[vdomSlotFallbackKey] = true;
4889
+ const vaporSlot = slot && slot[rawVaporSlotKey];
4806
4890
  if (vaporSlot) {
4807
4891
  const ret = (openBlock(), createBlock(VaporSlot, props));
4808
4892
  ret.vs = {
@@ -4879,11 +4963,38 @@ var VueRuntimeDOM = (function(exports) {
4879
4963
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
4880
4964
  return getPublicInstance(i.parent);
4881
4965
  };
4966
+ const resolveDevRootEl = (vnode) => {
4967
+ let found = false;
4968
+ while (true) {
4969
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
4970
+ const root = filterSingleRoot(vnode.children);
4971
+ if (!root) return;
4972
+ vnode = root;
4973
+ found = true;
4974
+ continue;
4975
+ }
4976
+ const component = vnode.component;
4977
+ if (component && component.subTree) {
4978
+ vnode = component.subTree;
4979
+ continue;
4980
+ }
4981
+ const suspense = vnode.suspense;
4982
+ if (suspense && suspense.activeBranch) {
4983
+ vnode = suspense.activeBranch;
4984
+ continue;
4985
+ }
4986
+ return found ? vnode.el : void 0;
4987
+ }
4988
+ };
4989
+ const getDevRootFragmentEl = (i) => {
4990
+ const el = i.subTree && resolveDevRootEl(i.subTree);
4991
+ return el === void 0 ? i.vnode.el : el;
4992
+ };
4882
4993
  let publicPropertiesMap;
4883
4994
  const getPublicPropertiesMap = () => {
4884
4995
  if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
4885
4996
  $: (i) => i,
4886
- $el: (i) => i.vnode.el,
4997
+ $el: (i) => getDevRootFragmentEl(i),
4887
4998
  $data: (i) => i.data,
4888
4999
  $props: (i) => /* @__PURE__ */ shallowReadonly(i.props),
4889
5000
  $attrs: (i) => /* @__PURE__ */ shallowReadonly(i.attrs),
@@ -4989,7 +5100,7 @@ var VueRuntimeDOM = (function(exports) {
4989
5100
  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.");
4990
5101
  return Reflect.ownKeys(target);
4991
5102
  };
4992
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
5103
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
4993
5104
  get(target, key) {
4994
5105
  if (key === Symbol.unscopables) return;
4995
5106
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -5161,12 +5272,13 @@ var VueRuntimeDOM = (function(exports) {
5161
5272
  for (const key in defaults) {
5162
5273
  if (key.startsWith("__skip")) continue;
5163
5274
  let opt = props[key];
5164
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
5165
- type: opt,
5166
- default: defaults[key]
5167
- };
5168
- else opt.default = defaults[key];
5169
- else if (opt === null) opt = props[key] = { default: defaults[key] };
5275
+ if (opt) {
5276
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
5277
+ type: opt,
5278
+ default: defaults[key]
5279
+ };
5280
+ else opt.default = defaults[key];
5281
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
5170
5282
  else warn$1(`props default key "${key}" has no corresponding declaration.`);
5171
5283
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
5172
5284
  }
@@ -5309,11 +5421,12 @@ var VueRuntimeDOM = (function(exports) {
5309
5421
  const opt = computedOptions[key];
5310
5422
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
5311
5423
  if (get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
5424
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
5425
+ warn$1(`Write operation failed: computed property "${key}" is readonly.`);
5426
+ };
5312
5427
  const c = computed({
5313
5428
  get,
5314
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
5315
- warn$1(`Write operation failed: computed property "${key}" is readonly.`);
5316
- }
5429
+ set
5317
5430
  });
5318
5431
  Object.defineProperty(ctx, key, {
5319
5432
  enumerable: true,
@@ -5369,9 +5482,10 @@ var VueRuntimeDOM = (function(exports) {
5369
5482
  for (const key in injectOptions) {
5370
5483
  const opt = injectOptions[key];
5371
5484
  let injected;
5372
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5373
- else injected = inject(opt.from || key);
5374
- else injected = inject(opt);
5485
+ if (isObject(opt)) {
5486
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5487
+ else injected = inject(opt.from || key);
5488
+ } else injected = inject(opt);
5375
5489
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
5376
5490
  enumerable: true,
5377
5491
  configurable: true,
@@ -5392,13 +5506,14 @@ var VueRuntimeDOM = (function(exports) {
5392
5506
  if (isFunction(handler)) watch(getter, handler);
5393
5507
  else warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
5394
5508
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis));
5395
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5396
- else {
5397
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5398
- if (isFunction(handler)) watch(getter, handler, raw);
5399
- else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
5400
- }
5401
- else warn$1(`Invalid watch option: "${key}"`, raw);
5509
+ else if (isObject(raw)) {
5510
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5511
+ else {
5512
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5513
+ if (isFunction(handler)) watch(getter, handler, raw);
5514
+ else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
5515
+ }
5516
+ } else warn$1(`Invalid watch option: "${key}"`, raw);
5402
5517
  }
5403
5518
  /**
5404
5519
  * Resolve merged options and cache it on the component.
@@ -5484,7 +5599,7 @@ var VueRuntimeDOM = (function(exports) {
5484
5599
  }
5485
5600
  function mergeEmitsOrPropsOptions(to, from) {
5486
5601
  if (to) {
5487
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
5602
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
5488
5603
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
5489
5604
  } else return from;
5490
5605
  }
@@ -5603,8 +5718,10 @@ var VueRuntimeDOM = (function(exports) {
5603
5718
  } else warn$1(`Cannot unmount an app that is not mounted.`);
5604
5719
  },
5605
5720
  provide(key, value) {
5606
- if (key in context.provides) if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
5607
- else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
5721
+ if (key in context.provides) {
5722
+ if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
5723
+ else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
5724
+ }
5608
5725
  context.provides[key] = value;
5609
5726
  return app;
5610
5727
  },
@@ -5711,12 +5828,14 @@ var VueRuntimeDOM = (function(exports) {
5711
5828
  if (instance.isUnmounted) return;
5712
5829
  {
5713
5830
  const { emitsOptions, propsOptions } = instance;
5714
- if (emitsOptions) if (!(event in emitsOptions) && true) {
5715
- 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.`);
5716
- } else {
5717
- const validator = emitsOptions[event];
5718
- if (isFunction(validator)) {
5719
- if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
5831
+ if (emitsOptions) {
5832
+ if (!(event in emitsOptions) && true) {
5833
+ 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.`);
5834
+ } else {
5835
+ const validator = emitsOptions[event];
5836
+ if (isFunction(validator)) {
5837
+ if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
5838
+ }
5720
5839
  }
5721
5840
  }
5722
5841
  }
@@ -5725,7 +5844,7 @@ var VueRuntimeDOM = (function(exports) {
5725
5844
  const modifiers = isModelListener && getModelModifiers(props, event.slice(7), getter);
5726
5845
  if (modifiers) {
5727
5846
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
5728
- if (modifiers.number) args = rawArgs.map(looseToNumber);
5847
+ if (modifiers.number) args = args.map(looseToNumber);
5729
5848
  }
5730
5849
  devtoolsComponentEmit(instance, event, args);
5731
5850
  {
@@ -5905,10 +6024,12 @@ var VueRuntimeDOM = (function(exports) {
5905
6024
  for (let i = 0; i < children.length; i++) {
5906
6025
  const child = children[i];
5907
6026
  if (isVNode(child)) {
5908
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
5909
- else {
5910
- singleRoot = child;
5911
- if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
6027
+ if (child.type !== Comment || child.children === "v-if") {
6028
+ if (singleRoot) return;
6029
+ else {
6030
+ singleRoot = child;
6031
+ if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
6032
+ }
5912
6033
  }
5913
6034
  } else return;
5914
6035
  }
@@ -6029,16 +6150,17 @@ var VueRuntimeDOM = (function(exports) {
6029
6150
  let key = propsToUpdate[i];
6030
6151
  if (isEmitListener(instance.emitsOptions, key)) continue;
6031
6152
  const value = rawProps[key];
6032
- if (options) if (hasOwn(attrs, key)) {
6033
- if (value !== attrs[key]) {
6034
- attrs[key] = value;
6035
- hasAttrsChanged = true;
6153
+ if (options) {
6154
+ if (hasOwn(attrs, key)) {
6155
+ if (value !== attrs[key]) {
6156
+ attrs[key] = value;
6157
+ hasAttrsChanged = true;
6158
+ }
6159
+ } else {
6160
+ const camelizedKey = camelize(key);
6161
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
6036
6162
  }
6037
- } else {
6038
- const camelizedKey = camelize(key);
6039
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
6040
- }
6041
- else if (value !== attrs[key]) {
6163
+ } else if (value !== attrs[key]) {
6042
6164
  attrs[key] = value;
6043
6165
  hasAttrsChanged = true;
6044
6166
  }
@@ -6047,9 +6169,11 @@ var VueRuntimeDOM = (function(exports) {
6047
6169
  } else {
6048
6170
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
6049
6171
  let kebabKey;
6050
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
6051
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6052
- } else delete props[key];
6172
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
6173
+ if (options) {
6174
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6175
+ } else delete props[key];
6176
+ }
6053
6177
  if (attrs !== rawCurrentProps) {
6054
6178
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && true) {
6055
6179
  delete attrs[key];
@@ -6068,9 +6192,10 @@ var VueRuntimeDOM = (function(exports) {
6068
6192
  if (isReservedProp(key)) continue;
6069
6193
  const value = rawProps[key];
6070
6194
  let camelKey;
6071
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6072
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6073
- else if (!isEmitListener(instance.emitsOptions, key)) {
6195
+ if (options && hasOwn(options, camelKey = camelize(key))) {
6196
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6197
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6198
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
6074
6199
  if (!(key in attrs) || value !== attrs[key]) {
6075
6200
  attrs[key] = value;
6076
6201
  hasAttrsChanged = true;
@@ -6233,7 +6358,7 @@ var VueRuntimeDOM = (function(exports) {
6233
6358
  }
6234
6359
  if (validator && !validator(value, /* @__PURE__ */ shallowReadonly(resolvedProps))) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
6235
6360
  }
6236
- const isSimpleType = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
6361
+ const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
6237
6362
  /**
6238
6363
  * dev only
6239
6364
  */
@@ -6346,12 +6471,13 @@ var VueRuntimeDOM = (function(exports) {
6346
6471
  let deletionComparisonTarget = EMPTY_OBJ;
6347
6472
  if (vnode.shapeFlag & 32) {
6348
6473
  const type = children._;
6349
- if (type) if (isHmrUpdating) {
6350
- assignSlots(slots, children, optimized);
6351
- trigger(instance, "set", "$slots");
6352
- } else if (optimized && type === 1) needDeletionCheck = false;
6353
- else assignSlots(slots, children, optimized);
6354
- else {
6474
+ if (type) {
6475
+ if (isHmrUpdating) {
6476
+ assignSlots(slots, children, optimized);
6477
+ trigger(instance, "set", "$slots");
6478
+ } else if (optimized && type === 1) needDeletionCheck = false;
6479
+ else assignSlots(slots, children, optimized);
6480
+ } else {
6355
6481
  needDeletionCheck = !children.$stable;
6356
6482
  normalizeObjectSlots(children, slots, instance);
6357
6483
  }
@@ -6369,7 +6495,7 @@ var VueRuntimeDOM = (function(exports) {
6369
6495
  let supported;
6370
6496
  let perf;
6371
6497
  let cachedNow$1 = 0;
6372
- const p$1 = /* @__PURE__ */ Promise.resolve();
6498
+ const p$1 = /*@__PURE__*/ Promise.resolve();
6373
6499
  const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
6374
6500
  /**
6375
6501
  * @internal
@@ -6585,7 +6711,10 @@ var VueRuntimeDOM = (function(exports) {
6585
6711
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
6586
6712
  };
6587
6713
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
6588
- 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);
6714
+ for (let i = start; i < children.length; i++) {
6715
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
6716
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6717
+ }
6589
6718
  };
6590
6719
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6591
6720
  const el = n2.el = n1.el;
@@ -6597,6 +6726,7 @@ var VueRuntimeDOM = (function(exports) {
6597
6726
  let vnodeHook;
6598
6727
  parentComponent && toggleRecurse(parentComponent, false);
6599
6728
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6729
+ if (n2.ibu) n2.ibu();
6600
6730
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6601
6731
  parentComponent && toggleRecurse(parentComponent, true);
6602
6732
  if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -6630,8 +6760,9 @@ var VueRuntimeDOM = (function(exports) {
6630
6760
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
6631
6761
  }
6632
6762
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
6633
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
6763
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
6634
6764
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6765
+ n2.iu && n2.iu();
6635
6766
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6636
6767
  }, void 0, parentSuspense);
6637
6768
  };
@@ -6639,7 +6770,8 @@ var VueRuntimeDOM = (function(exports) {
6639
6770
  for (let i = 0; i < newChildren.length; i++) {
6640
6771
  const oldVNode = oldChildren[i];
6641
6772
  const newVNode = newChildren[i];
6642
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6773
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
6774
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6643
6775
  }
6644
6776
  };
6645
6777
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -6677,41 +6809,46 @@ var VueRuntimeDOM = (function(exports) {
6677
6809
  };
6678
6810
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6679
6811
  n2.slotScopeIds = slotScopeIds;
6680
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
6681
- else {
6682
- const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
6683
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
6684
- if (n2.dirs) {
6685
- invokeDirectiveHook(n2, null, parentComponent, "created");
6686
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
6812
+ if (n2.type.__vapor) {
6813
+ if (n1 == null) {
6814
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
6815
+ else {
6816
+ const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
6817
+ getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
6818
+ if (n2.dirs) {
6819
+ invokeDirectiveHook(n2, null, parentComponent, "created");
6820
+ invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
6821
+ }
6822
+ }, () => {
6823
+ if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
6824
+ });
6825
+ if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
6826
+ const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
6827
+ if (vnodeMountedHook) {
6828
+ const scopedVNode = n2;
6829
+ queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
6830
+ }
6687
6831
  }
6688
- }, () => {
6689
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
6690
- });
6691
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
6692
- const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
6693
- if (vnodeMountedHook) {
6694
- const scopedVNode = n2;
6695
- queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
6832
+ } else {
6833
+ const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
6834
+ getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
6835
+ if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6836
+ }, () => {
6837
+ const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
6838
+ if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
6839
+ if (n2.ibu) n2.ibu();
6840
+ });
6841
+ const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
6842
+ if (shouldUpdate && (vnodeUpdatedHook || n2.dirs || n2.iu)) queuePostRenderEffect(() => {
6843
+ n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6844
+ vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
6845
+ n2.iu && n2.iu();
6846
+ }, void 0, parentSuspense);
6696
6847
  }
6697
- }
6698
- else {
6699
- const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
6700
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
6701
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6702
- }, () => {
6703
- const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
6704
- if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
6705
- });
6706
- const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
6707
- if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
6708
- n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6709
- vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
6710
- }, void 0, parentSuspense);
6711
- }
6712
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6713
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6714
- else updateComponent(n1, n2, optimized);
6848
+ } else if (n1 == null) {
6849
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6850
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6851
+ } else updateComponent(n1, n2, optimized);
6715
6852
  };
6716
6853
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
6717
6854
  const instance = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);
@@ -6752,16 +6889,17 @@ var VueRuntimeDOM = (function(exports) {
6752
6889
  };
6753
6890
  const updateComponent = (n1, n2, optimized) => {
6754
6891
  const instance = n2.component = n1.component;
6755
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
6756
- pushWarningContext(n2);
6757
- updateComponentPreRender(instance, n2, optimized);
6758
- popWarningContext();
6759
- return;
6892
+ if (shouldUpdateComponent(n1, n2, optimized)) {
6893
+ if (instance.asyncDep && !instance.asyncResolved) {
6894
+ pushWarningContext(n2);
6895
+ updateComponentPreRender(instance, n2, optimized);
6896
+ popWarningContext();
6897
+ return;
6898
+ } else {
6899
+ instance.next = n2;
6900
+ instance.effect.run();
6901
+ }
6760
6902
  } else {
6761
- instance.next = n2;
6762
- instance.effect.run();
6763
- }
6764
- else {
6765
6903
  n2.el = n1.el;
6766
6904
  instance.vnode = n2;
6767
6905
  }
@@ -6859,6 +6997,7 @@ var VueRuntimeDOM = (function(exports) {
6859
6997
  } else next = vnode;
6860
6998
  if (bu) invokeArrayFns(bu);
6861
6999
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
7000
+ if (next.ibu) next.ibu();
6862
7001
  toggleRecurse(instance, true);
6863
7002
  startMeasure(instance, `render`);
6864
7003
  const nextTree = renderComponentRoot(instance);
@@ -6871,7 +7010,10 @@ var VueRuntimeDOM = (function(exports) {
6871
7010
  next.el = nextTree.el;
6872
7011
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
6873
7012
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
6874
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
7013
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
7014
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
7015
+ next.iu && next.iu();
7016
+ }, void 0, parentSuspense);
6875
7017
  devtoolsComponentUpdated(instance);
6876
7018
  popWarningContext();
6877
7019
  }
@@ -6911,9 +7053,10 @@ var VueRuntimeDOM = (function(exports) {
6911
7053
  if (shapeFlag & 8) {
6912
7054
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
6913
7055
  if (c2 !== c1) hostSetElementText(container, c2);
6914
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6915
- else unmountChildren(c1, parentComponent, parentSuspense, true);
6916
- else {
7056
+ } else if (prevShapeFlag & 16) {
7057
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7058
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
7059
+ } else {
6917
7060
  if (prevShapeFlag & 8) hostSetElementText(container, "");
6918
7061
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6919
7062
  }
@@ -7012,8 +7155,10 @@ var VueRuntimeDOM = (function(exports) {
7012
7155
  const anchorVNode = c2[nextIndex + 1];
7013
7156
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
7014
7157
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7015
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
7016
- else j--;
7158
+ else if (moved) {
7159
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
7160
+ else j--;
7161
+ }
7017
7162
  }
7018
7163
  }
7019
7164
  };
@@ -7045,26 +7190,13 @@ var VueRuntimeDOM = (function(exports) {
7045
7190
  moveStaticNode(vnode, container, anchor);
7046
7191
  return;
7047
7192
  }
7048
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
7049
- else {
7050
- const { leave, delayLeave, afterLeave } = transition;
7051
- const remove = () => {
7193
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
7194
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
7195
+ else performTransitionLeave(el, transition, () => {
7052
7196
  if (vnode.ctx.isUnmounted) hostRemove(el);
7053
7197
  else hostInsert(el, container, anchor);
7054
- };
7055
- const performLeave = () => {
7056
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
7057
- if (el._isLeaving) el[leaveCbKey](true);
7058
- if (transition.persisted && !wasLeaving) remove();
7059
- else leave(el, () => {
7060
- remove();
7061
- afterLeave && afterLeave();
7062
- });
7063
- };
7064
- if (delayLeave) delayLeave(el, remove, performLeave);
7065
- else performLeave();
7066
- }
7067
- else hostInsert(el, container, anchor);
7198
+ }, true, true);
7199
+ } else hostInsert(el, container, anchor);
7068
7200
  };
7069
7201
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
7070
7202
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
@@ -7084,16 +7216,17 @@ var VueRuntimeDOM = (function(exports) {
7084
7216
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
7085
7217
  let vnodeHook;
7086
7218
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
7087
- if (shapeFlag & 6) if (isVaporComponent(type)) {
7088
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
7089
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7090
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
7091
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
7092
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
7093
- }, void 0, parentSuspense);
7094
- return;
7095
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
7096
- else {
7219
+ if (shapeFlag & 6) {
7220
+ if (isVaporComponent(type)) {
7221
+ if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
7222
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7223
+ if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
7224
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
7225
+ vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
7226
+ }, void 0, parentSuspense);
7227
+ return;
7228
+ } else unmountComponent(vnode.component, parentSuspense, doRemove);
7229
+ } else {
7097
7230
  if (shapeFlag & 128) {
7098
7231
  vnode.suspense.unmount(parentSuspense, doRemove);
7099
7232
  return;
@@ -7225,12 +7358,14 @@ var VueRuntimeDOM = (function(exports) {
7225
7358
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
7226
7359
  }
7227
7360
  function toggleRecurse({ effect, job, vapor }, allowed) {
7228
- if (!vapor) if (allowed) {
7229
- effect.flags |= 128;
7230
- job.flags |= 2;
7231
- } else {
7232
- effect.flags &= -129;
7233
- job.flags &= -3;
7361
+ if (!vapor) {
7362
+ if (allowed) {
7363
+ effect.flags |= 128;
7364
+ job.flags |= 2;
7365
+ } else {
7366
+ effect.flags &= -129;
7367
+ job.flags &= -3;
7368
+ }
7234
7369
  }
7235
7370
  }
7236
7371
  function needTransition(parentSuspense, transition) {
@@ -7270,8 +7405,10 @@ var VueRuntimeDOM = (function(exports) {
7270
7405
  }
7271
7406
  function locateNonHydratedAsyncRoot(instance) {
7272
7407
  const subComponent = instance.subTree && instance.subTree.component;
7273
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7274
- else return locateNonHydratedAsyncRoot(subComponent);
7408
+ if (subComponent) {
7409
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7410
+ else return locateNonHydratedAsyncRoot(subComponent);
7411
+ }
7275
7412
  }
7276
7413
  function invalidateMount(hooks) {
7277
7414
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
@@ -7290,13 +7427,15 @@ var VueRuntimeDOM = (function(exports) {
7290
7427
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
7291
7428
  const performRemove = () => {
7292
7429
  remove();
7293
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
7430
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
7294
7431
  };
7295
7432
  if (force || isElement && transition && !transition.persisted) {
7296
7433
  const { leave, delayLeave } = transition;
7297
7434
  const performLeave = () => {
7435
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
7298
7436
  if (el._isLeaving && force) el[leaveCbKey](true);
7299
- leave(el, performRemove);
7437
+ if (force && transition.persisted && !wasLeaving) remove();
7438
+ else leave(el, performRemove);
7300
7439
  };
7301
7440
  if (delayLeave) delayLeave(el, performRemove, performLeave);
7302
7441
  else performLeave();
@@ -7392,7 +7531,7 @@ var VueRuntimeDOM = (function(exports) {
7392
7531
  patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7393
7532
  if (suspense.deps <= 0) suspense.resolve();
7394
7533
  else if (isInFallback) {
7395
- if (!isHydrating) {
7534
+ if (!isHydrating && !suspense.isFallbackMountPending) {
7396
7535
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7397
7536
  setActiveBranch(suspense, newFallback);
7398
7537
  }
@@ -7413,7 +7552,7 @@ var VueRuntimeDOM = (function(exports) {
7413
7552
  if (isInFallback) {
7414
7553
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7415
7554
  if (suspense.deps <= 0) suspense.resolve();
7416
- else {
7555
+ else if (!suspense.isFallbackMountPending) {
7417
7556
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7418
7557
  setActiveBranch(suspense, newFallback);
7419
7558
  }
@@ -7539,8 +7678,9 @@ var VueRuntimeDOM = (function(exports) {
7539
7678
  const mountFallback = () => {
7540
7679
  suspense.isFallbackMountPending = false;
7541
7680
  if (!suspense.isInFallback) return;
7542
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7543
- setActiveBranch(suspense, fallbackVNode);
7681
+ const latestFallback = suspense.vnode.ssFallback;
7682
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7683
+ setActiveBranch(suspense, latestFallback);
7544
7684
  };
7545
7685
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
7546
7686
  if (delayEnter) {
@@ -7616,9 +7756,10 @@ var VueRuntimeDOM = (function(exports) {
7616
7756
  return s;
7617
7757
  }
7618
7758
  function queueEffectWithSuspense(fn, id, suspense) {
7619
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
7620
- else suspense.effects.push(fn);
7621
- else queuePostFlushCb(fn, id);
7759
+ if (suspense && suspense.pendingBranch) {
7760
+ if (isArray(fn)) suspense.effects.push(...fn);
7761
+ else suspense.effects.push(fn);
7762
+ } else queuePostFlushCb(fn, id);
7622
7763
  }
7623
7764
  function setActiveBranch(suspense, branch) {
7624
7765
  suspense.activeBranch = branch;
@@ -7812,8 +7953,10 @@ var VueRuntimeDOM = (function(exports) {
7812
7953
  if (isVNode(type)) {
7813
7954
  const cloned = cloneVNode(type, props, true);
7814
7955
  if (children) normalizeChildren(cloned, children);
7815
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7816
- else currentBlock.push(cloned);
7956
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
7957
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7958
+ else currentBlock.push(cloned);
7959
+ }
7817
7960
  cloned.patchFlag = -2;
7818
7961
  return cloned;
7819
7962
  }
@@ -7873,7 +8016,9 @@ var VueRuntimeDOM = (function(exports) {
7873
8016
  ce: vnode.ce,
7874
8017
  vi: vnode.vi,
7875
8018
  vs: cloneVaporSlotMeta(vnode),
7876
- vb: vnode.vb
8019
+ vb: vnode.vb,
8020
+ ibu: vnode.ibu,
8021
+ iu: vnode.iu
7877
8022
  };
7878
8023
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
7879
8024
  return cloned;
@@ -7936,25 +8081,28 @@ var VueRuntimeDOM = (function(exports) {
7936
8081
  const { shapeFlag } = vnode;
7937
8082
  if (children == null) children = null;
7938
8083
  else if (isArray(children)) type = 16;
7939
- else if (typeof children === "object") if (shapeFlag & 65) {
7940
- const slot = children.default;
7941
- if (slot) {
7942
- slot._c && (slot._d = false);
7943
- normalizeChildren(vnode, slot());
7944
- slot._c && (slot._d = true);
7945
- }
7946
- return;
7947
- } else {
7948
- type = 32;
7949
- const slotFlag = children._;
7950
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
7951
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
7952
- else {
7953
- children._ = 2;
7954
- vnode.patchFlag |= 1024;
8084
+ else if (typeof children === "object") {
8085
+ if (shapeFlag & 65) {
8086
+ const slot = children.default;
8087
+ if (slot) {
8088
+ slot._c && (slot._d = false);
8089
+ normalizeChildren(vnode, slot());
8090
+ slot._c && (slot._d = true);
8091
+ }
8092
+ return;
8093
+ } else {
8094
+ type = 32;
8095
+ const slotFlag = children._;
8096
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
8097
+ else if (slotFlag === 3 && currentRenderingInstance) {
8098
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
8099
+ else {
8100
+ children._ = 2;
8101
+ vnode.patchFlag |= 1024;
8102
+ }
8103
+ }
7955
8104
  }
7956
- }
7957
- else if (isFunction(children)) {
8105
+ } else if (isFunction(children)) {
7958
8106
  if (shapeFlag & 65) {
7959
8107
  normalizeChildren(vnode, { default: children });
7960
8108
  return;
@@ -8063,7 +8211,7 @@ var VueRuntimeDOM = (function(exports) {
8063
8211
  };
8064
8212
  //#endregion
8065
8213
  //#region packages/runtime-core/src/component.ts
8066
- const emptyAppContext = /* @__PURE__ */ createAppContext();
8214
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
8067
8215
  let uid = 0;
8068
8216
  function createComponentInstance(vnode, parent, suspense) {
8069
8217
  const type = vnode.type;
@@ -8260,10 +8408,12 @@ var VueRuntimeDOM = (function(exports) {
8260
8408
  restoreCurrentInstance(prevInstance);
8261
8409
  }
8262
8410
  }
8263
- if (!Component.render && instance.render === NOOP && !isSSR) if (!compile && Component.template)
8411
+ if (!Component.render && instance.render === NOOP && !isSSR) {
8412
+ if (!compile && Component.template)
8264
8413
  /* v8 ignore start */
8265
- warn$1("Component provided template option but runtime compilation is not supported in this build of Vue. Use \"vue.global.js\" instead.");
8266
- else warn$1(`Component is missing template or render function: `, Component);
8414
+ warn$1("Component provided template option but runtime compilation is not supported in this build of Vue. Use \"vue.global.js\" instead.");
8415
+ else warn$1(`Component is missing template or render function: `, Component);
8416
+ }
8267
8417
  }
8268
8418
  const attrsProxyHandlers = {
8269
8419
  get(target, key) {
@@ -8371,11 +8521,12 @@ var VueRuntimeDOM = (function(exports) {
8371
8521
  try {
8372
8522
  setBlockTracking(-1);
8373
8523
  const l = arguments.length;
8374
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8375
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8376
- return createVNode(type, propsOrChildren);
8377
- } else return createVNode(type, null, propsOrChildren);
8378
- else {
8524
+ if (l === 2) {
8525
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8526
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8527
+ return createVNode(type, propsOrChildren);
8528
+ } else return createVNode(type, null, propsOrChildren);
8529
+ } else {
8379
8530
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
8380
8531
  else if (l === 3 && isVNode(children)) children = [children];
8381
8532
  return createVNode(type, propsOrChildren, children);
@@ -8567,7 +8718,7 @@ var VueRuntimeDOM = (function(exports) {
8567
8718
  }
8568
8719
  //#endregion
8569
8720
  //#region packages/runtime-core/src/index.ts
8570
- const version = "3.6.0-rc.5";
8721
+ const version = "3.6.0-rc.7";
8571
8722
  const warn = warn$1;
8572
8723
  /**
8573
8724
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -8595,7 +8746,7 @@ var VueRuntimeDOM = (function(exports) {
8595
8746
  let policy = void 0;
8596
8747
  const tt = typeof window !== "undefined" && window.trustedTypes;
8597
8748
  if (tt) try {
8598
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
8749
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
8599
8750
  } catch (e) {
8600
8751
  warn(`Error creating trusted types policy: ${e}`);
8601
8752
  }
@@ -8603,7 +8754,7 @@ var VueRuntimeDOM = (function(exports) {
8603
8754
  const svgNS = "http://www.w3.org/2000/svg";
8604
8755
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
8605
8756
  const doc = typeof document !== "undefined" ? document : null;
8606
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
8757
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
8607
8758
  const nodeOps = {
8608
8759
  insert: (child, parent, anchor) => {
8609
8760
  parent.insertBefore(child, anchor || null);
@@ -8677,7 +8828,7 @@ var VueRuntimeDOM = (function(exports) {
8677
8828
  leaveActiveClass: String,
8678
8829
  leaveToClass: String
8679
8830
  };
8680
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8831
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8681
8832
  /**
8682
8833
  * Wrap logic that attaches extra properties to Transition in a function
8683
8834
  * so that it can be annotated as pure
@@ -8691,7 +8842,7 @@ var VueRuntimeDOM = (function(exports) {
8691
8842
  * DOM Transition is a higher-order-component based on the platform-agnostic
8692
8843
  * base Transition component, with DOM-specific logic.
8693
8844
  */
8694
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8845
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8695
8846
  /**
8696
8847
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
8697
8848
  * with custom HOCs.
@@ -8913,14 +9064,15 @@ var VueRuntimeDOM = (function(exports) {
8913
9064
  },
8914
9065
  updated(el, { value, oldValue }, { transition }) {
8915
9066
  if (!value === !oldValue) return;
8916
- if (transition) if (value) {
8917
- transition.beforeEnter(el);
8918
- setDisplay(el, true);
8919
- transition.enter(el);
8920
- } else transition.leave(el, () => {
8921
- setDisplay(el, false);
8922
- });
8923
- else setDisplay(el, value);
9067
+ if (transition) {
9068
+ if (value) {
9069
+ transition.beforeEnter(el);
9070
+ setDisplay(el, true);
9071
+ transition.enter(el);
9072
+ } else transition.leave(el, () => {
9073
+ setDisplay(el, false);
9074
+ });
9075
+ } else setDisplay(el, value);
8924
9076
  },
8925
9077
  beforeUnmount(el, { value }) {
8926
9078
  setDisplay(el, value);
@@ -9022,11 +9174,13 @@ var VueRuntimeDOM = (function(exports) {
9022
9174
  const isCssString = isString(next);
9023
9175
  let hasControlledDisplay = false;
9024
9176
  if (next && !isCssString) {
9025
- if (prev) if (!isString(prev)) {
9026
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
9027
- } else for (const prevStyle of prev.split(";")) {
9028
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
9029
- if (next[key] == null) setStyle(style, key, "");
9177
+ if (prev) {
9178
+ if (!isString(prev)) {
9179
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
9180
+ } else for (const prevStyle of prev.split(";")) {
9181
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
9182
+ if (next[key] == null) setStyle(style, key, "");
9183
+ }
9030
9184
  }
9031
9185
  for (const key in next) {
9032
9186
  if (key === "display") hasControlledDisplay = true;
@@ -9055,8 +9209,10 @@ var VueRuntimeDOM = (function(exports) {
9055
9209
  else {
9056
9210
  const val = rawVal == null ? "" : String(rawVal);
9057
9211
  if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
9058
- if (name.startsWith("--")) style.setProperty(name, val);
9059
- else {
9212
+ if (name.startsWith("--")) {
9213
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
9214
+ else style.setProperty(name, val);
9215
+ } else {
9060
9216
  const prefixed = autoPrefix(style, name);
9061
9217
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
9062
9218
  else style[prefixed] = val;
@@ -9093,9 +9249,10 @@ var VueRuntimeDOM = (function(exports) {
9093
9249
  //#region packages/runtime-dom/src/modules/attrs.ts
9094
9250
  const xlinkNS = "http://www.w3.org/1999/xlink";
9095
9251
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
9096
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
9097
- else el.setAttributeNS(xlinkNS, key, value);
9098
- else if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
9252
+ if (isSVG && key.startsWith("xlink:")) {
9253
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
9254
+ else el.setAttributeNS(xlinkNS, key, value);
9255
+ } else if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
9099
9256
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
9100
9257
  }
9101
9258
  //#endregion
@@ -9168,7 +9325,7 @@ var VueRuntimeDOM = (function(exports) {
9168
9325
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
9169
9326
  }
9170
9327
  let cachedNow = 0;
9171
- const p = /* @__PURE__ */ Promise.resolve();
9328
+ const p = /*@__PURE__*/ Promise.resolve();
9172
9329
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
9173
9330
  function createInvoker(initialValue, instance) {
9174
9331
  const invoker = (e) => {
@@ -9236,7 +9393,7 @@ var VueRuntimeDOM = (function(exports) {
9236
9393
  //#endregion
9237
9394
  //#region packages/runtime-dom/src/apiCustomElement.ts
9238
9395
  const REMOVAL = {};
9239
- /* @__NO_SIDE_EFFECTS__ */
9396
+ /*@__NO_SIDE_EFFECTS__*/
9240
9397
  function defineCustomElement(options, extraOptions, _createApp) {
9241
9398
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
9242
9399
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -9285,12 +9442,14 @@ var VueRuntimeDOM = (function(exports) {
9285
9442
  this._parent = parent;
9286
9443
  break;
9287
9444
  }
9288
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
9289
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
9290
- this._pendingResolve = void 0;
9291
- if (this.isConnected) return this._resolveDef();
9292
- });
9293
- else this._resolveDef();
9445
+ if (!this._instance) {
9446
+ if (this._resolved) this._mountComponent(this._def);
9447
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
9448
+ this._pendingResolve = void 0;
9449
+ if (this.isConnected) return this._resolveDef();
9450
+ });
9451
+ else this._resolveDef();
9452
+ }
9294
9453
  }
9295
9454
  disconnectedCallback() {
9296
9455
  this._connected = false;
@@ -9506,13 +9665,11 @@ var VueRuntimeDOM = (function(exports) {
9506
9665
  _renderSlots() {
9507
9666
  const outlets = this._getSlots();
9508
9667
  const scopeId = this._instance.type.__scopeId;
9509
- const slotReplacements = /* @__PURE__ */ new Map();
9510
9668
  for (let i = 0; i < outlets.length; i++) {
9511
9669
  const o = outlets[i];
9512
9670
  const slotName = o.getAttribute("name") || "default";
9513
9671
  const content = this._slots[slotName];
9514
9672
  const parent = o.parentNode;
9515
- const replacementNodes = [];
9516
9673
  if (content) for (const n of content) {
9517
9674
  if (scopeId && n.nodeType === 1) {
9518
9675
  const id = scopeId + "-s";
@@ -9522,20 +9679,10 @@ var VueRuntimeDOM = (function(exports) {
9522
9679
  while (child = walker.nextNode()) child.setAttribute(id, "");
9523
9680
  }
9524
9681
  parent.insertBefore(n, o);
9525
- replacementNodes.push(n);
9526
- }
9527
- else while (o.firstChild) {
9528
- const child = o.firstChild;
9529
- parent.insertBefore(child, o);
9530
- replacementNodes.push(child);
9531
9682
  }
9683
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
9532
9684
  parent.removeChild(o);
9533
- slotReplacements.set(o, {
9534
- nodes: replacementNodes,
9535
- usedFallback: !content
9536
- });
9537
9685
  }
9538
- this._updateSlotNodes(slotReplacements);
9539
9686
  }
9540
9687
  /**
9541
9688
  * @internal
@@ -9574,7 +9721,7 @@ var VueRuntimeDOM = (function(exports) {
9574
9721
  * @internal
9575
9722
  */
9576
9723
  _hasShadowRoot() {
9577
- return this._def.shadowRoot !== false;
9724
+ return this._root !== this;
9578
9725
  }
9579
9726
  /**
9580
9727
  * @internal
@@ -9619,10 +9766,6 @@ var VueRuntimeDOM = (function(exports) {
9619
9766
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
9620
9767
  this._app = this._instance = null;
9621
9768
  }
9622
- /**
9623
- * Only called when shadowRoot is false
9624
- */
9625
- _updateSlotNodes(replacements) {}
9626
9769
  _createVNode() {
9627
9770
  const baseProps = {};
9628
9771
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -9672,7 +9815,7 @@ var VueRuntimeDOM = (function(exports) {
9672
9815
  };
9673
9816
  const TransitionGroup = /* @__PURE__ */ decorate({
9674
9817
  name: "TransitionGroup",
9675
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
9818
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
9676
9819
  tag: String,
9677
9820
  moveClass: String
9678
9821
  }),
@@ -9953,19 +10096,39 @@ var VueRuntimeDOM = (function(exports) {
9953
10096
  el._modelValue = value;
9954
10097
  addEventListener(el, "change", () => {
9955
10098
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
9956
- (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
9957
- el._assigning = true;
9958
- nextTick(() => {
9959
- el._assigning = false;
9960
- });
10099
+ const multiple = el.multiple;
10100
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
10101
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
10102
+ try {
10103
+ (set || el[assignKey])(assignedValue);
10104
+ } finally {
10105
+ nextTick(() => {
10106
+ if (el._pendingValue === pending) el._pendingValue = void 0;
10107
+ });
10108
+ }
9961
10109
  });
9962
10110
  };
10111
+ function isSameSelectValue(value, assignedValue, multiple) {
10112
+ if (!multiple) return looseEqual(value, assignedValue);
10113
+ if (isArray(value)) return looseEqual(value, assignedValue);
10114
+ if (isSet(value)) {
10115
+ if (value.size !== assignedValue.length) return false;
10116
+ for (const item of assignedValue) if (!value.has(item)) return false;
10117
+ return true;
10118
+ }
10119
+ return false;
10120
+ }
9963
10121
  /**
9964
10122
  * @internal
9965
10123
  */
9966
10124
  const vModelSetSelected = (el, value) => {
9967
10125
  el._modelValue = value;
9968
- if (el._assigning) return;
10126
+ const pending = el._pendingValue;
10127
+ el._pendingValue = void 0;
10128
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
10129
+ setSelected(el, value);
10130
+ };
10131
+ function setSelected(el, value) {
9969
10132
  const isMultiple = el.multiple;
9970
10133
  const isArrayValue = isArray(value);
9971
10134
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -9975,18 +10138,19 @@ var VueRuntimeDOM = (function(exports) {
9975
10138
  for (let i = 0, l = el.options.length; i < l; i++) {
9976
10139
  const option = el.options[i];
9977
10140
  const optionValue = getValue(option);
9978
- if (isMultiple) if (isArrayValue) {
9979
- const optionType = typeof optionValue;
9980
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
9981
- else option.selected = looseIndexOf(value, optionValue) > -1;
9982
- } else option.selected = value.has(optionValue);
9983
- else if (looseEqual(getValue(option), value)) {
10141
+ if (isMultiple) {
10142
+ if (isArrayValue) {
10143
+ const optionType = typeof optionValue;
10144
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
10145
+ else option.selected = looseIndexOf(value, optionValue) > -1;
10146
+ } else option.selected = value.has(optionValue);
10147
+ } else if (looseEqual(getValue(option), value)) {
9984
10148
  if (el.selectedIndex !== i) el.selectedIndex = i;
9985
10149
  return;
9986
10150
  }
9987
10151
  }
9988
10152
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
9989
- };
10153
+ }
9990
10154
  /**
9991
10155
  * @internal retrieve raw value set via :value bindings
9992
10156
  */
@@ -10088,7 +10252,7 @@ var VueRuntimeDOM = (function(exports) {
10088
10252
  };
10089
10253
  //#endregion
10090
10254
  //#region packages/runtime-dom/src/index.ts
10091
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
10255
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
10092
10256
  let renderer;
10093
10257
  let enabledHydration = false;
10094
10258
  function ensureRenderer() {