@vue/runtime-dom 3.6.0-rc.4 → 3.6.0-rc.6

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.4
2
+ * @vue/runtime-dom v3.6.0-rc.6
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -11,7 +11,7 @@
11
11
  * \/\*#\_\_PURE\_\_\*\/
12
12
  * So that they can be tree-shaken if necessary.
13
13
  */
14
- /* @__NO_SIDE_EFFECTS__ */
14
+ /*@__NO_SIDE_EFFECTS__*/
15
15
  function makeMap(str) {
16
16
  const map = Object.create(null);
17
17
  for (const key of str.split(",")) map[key] = 1;
@@ -55,9 +55,9 @@ const toRawType = (value) => {
55
55
  };
56
56
  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
57
57
  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
58
- const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
59
- const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
60
- const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
58
+ const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
59
+ const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
60
+ const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
61
61
  const cacheStringFunction = (fn) => {
62
62
  const cache = Object.create(null);
63
63
  return ((str) => {
@@ -131,7 +131,7 @@ const getGlobalThis = () => {
131
131
  function canSetValueDirectly(tagName) {
132
132
  return tagName !== "PROGRESS" && !tagName.includes("-");
133
133
  }
134
- 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");
134
+ 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");
135
135
  //#endregion
136
136
  //#region packages/shared/src/normalizeProp.ts
137
137
  function normalizeStyle(value) {
@@ -199,17 +199,17 @@ const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math
199
199
  * Compiler only.
200
200
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
201
201
  */
202
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
202
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
203
203
  /**
204
204
  * Compiler only.
205
205
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
206
206
  */
207
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
207
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
208
208
  /**
209
209
  * Compiler only.
210
210
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
211
211
  */
212
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
212
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
213
213
  //#endregion
214
214
  //#region packages/shared/src/domAttrConfig.ts
215
215
  /**
@@ -224,11 +224,11 @@ const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
224
224
  * - readonly -> readOnly
225
225
  */
226
226
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
227
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
227
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
228
228
  /**
229
229
  * The full list is needed during SSR to produce the correct initial markup.
230
230
  */
231
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
231
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
232
232
  /**
233
233
  * Boolean attributes should be included if the value is truthy or ''.
234
234
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -242,11 +242,11 @@ function includeBooleanAttr(value) {
242
242
  * Don't also forget to allow `data-*` and `aria-*`!
243
243
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
244
244
  */
245
- 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");
245
+ 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");
246
246
  /**
247
247
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
248
248
  */
249
- 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");
249
+ 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");
250
250
  /**
251
251
  * Shared between server-renderer and runtime-core hydration logic
252
252
  */
@@ -278,6 +278,21 @@ function looseCompareArrays(a, b) {
278
278
  for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
279
279
  return equal;
280
280
  }
281
+ function looseCompareCollections(a, b) {
282
+ if (a.size !== b.size) return false;
283
+ const candidates = Array.from(b);
284
+ const matched = new Uint8Array(candidates.length);
285
+ for (const item of a) {
286
+ let index = -1;
287
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i])) {
288
+ index = i;
289
+ break;
290
+ }
291
+ if (index < 0) return false;
292
+ matched[index] = 1;
293
+ }
294
+ return true;
295
+ }
281
296
  function looseEqual(a, b) {
282
297
  if (a === b) return true;
283
298
  let aValidType = isDate(a);
@@ -293,6 +308,12 @@ function looseEqual(a, b) {
293
308
  bValidType = isObject(b);
294
309
  if (aValidType || bValidType) {
295
310
  if (!aValidType || !bValidType) return false;
311
+ aValidType = isMap(a);
312
+ bValidType = isMap(b);
313
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b) : false;
314
+ aValidType = isSet(a);
315
+ bValidType = isSet(b);
316
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b) : false;
296
317
  if (Object.keys(a).length !== Object.keys(b).length) return false;
297
318
  for (const key in a) {
298
319
  const aHasKey = a.hasOwnProperty(key);
@@ -739,9 +760,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
739
760
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
740
761
  }
741
762
  break;
742
- case "set":
743
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
744
- break;
763
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
745
764
  }
746
765
  }
747
766
  }
@@ -938,8 +957,8 @@ function noTracking(self, method, args = []) {
938
957
  }
939
958
  //#endregion
940
959
  //#region packages/reactivity/src/baseHandlers.ts
941
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
942
- const builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
960
+ const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
961
+ const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
943
962
  function hasOwnProperty(key) {
944
963
  if (!isSymbol(key)) key = String(key);
945
964
  const obj = /* @__PURE__ */ toRaw(this);
@@ -994,12 +1013,14 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
994
1013
  oldValue = /* @__PURE__ */ toRaw(oldValue);
995
1014
  value = /* @__PURE__ */ toRaw(value);
996
1015
  }
997
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) {
998
- warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
999
- return true;
1000
- } else {
1001
- oldValue.value = value;
1002
- return true;
1016
+ if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1017
+ if (isOldValueReadonly) {
1018
+ warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1019
+ return true;
1020
+ } else {
1021
+ oldValue.value = value;
1022
+ return true;
1023
+ }
1003
1024
  }
1004
1025
  }
1005
1026
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
@@ -1040,10 +1061,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1040
1061
  return true;
1041
1062
  }
1042
1063
  };
1043
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1044
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1045
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1046
- const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1064
+ const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
1065
+ const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
1066
+ const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
1067
+ const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
1047
1068
  //#endregion
1048
1069
  //#region packages/reactivity/src/collectionHandlers.ts
1049
1070
  const toShallow = (value) => value;
@@ -1194,10 +1215,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
1194
1215
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1195
1216
  };
1196
1217
  }
1197
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1198
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1199
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1200
- const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1218
+ const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
1219
+ const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
1220
+ const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
1221
+ const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
1201
1222
  function checkIdentityKeys(target, has, key) {
1202
1223
  const rawKey = /* @__PURE__ */ toRaw(key);
1203
1224
  if (rawKey !== key && has.call(target, rawKey)) {
@@ -1222,7 +1243,7 @@ function targetTypeMap(rawType) {
1222
1243
  default: return 0;
1223
1244
  }
1224
1245
  }
1225
- /* @__NO_SIDE_EFFECTS__ */
1246
+ /*@__NO_SIDE_EFFECTS__*/
1226
1247
  function reactive(target) {
1227
1248
  if (/* @__PURE__ */ isReadonly(target)) return target;
1228
1249
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1257,7 +1278,7 @@ function reactive(target) {
1257
1278
  * @param target - The source object.
1258
1279
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1259
1280
  */
1260
- /* @__NO_SIDE_EFFECTS__ */
1281
+ /*@__NO_SIDE_EFFECTS__*/
1261
1282
  function shallowReactive(target) {
1262
1283
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1263
1284
  }
@@ -1290,7 +1311,7 @@ function shallowReactive(target) {
1290
1311
  * @param target - The source object.
1291
1312
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1292
1313
  */
1293
- /* @__NO_SIDE_EFFECTS__ */
1314
+ /*@__NO_SIDE_EFFECTS__*/
1294
1315
  function readonly(target) {
1295
1316
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1296
1317
  }
@@ -1324,7 +1345,7 @@ function readonly(target) {
1324
1345
  * @param target - The source object.
1325
1346
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1326
1347
  */
1327
- /* @__NO_SIDE_EFFECTS__ */
1348
+ /*@__NO_SIDE_EFFECTS__*/
1328
1349
  function shallowReadonly(target) {
1329
1350
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1330
1351
  }
@@ -1361,7 +1382,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1361
1382
  * @param value - The value to check.
1362
1383
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1363
1384
  */
1364
- /* @__NO_SIDE_EFFECTS__ */
1385
+ /*@__NO_SIDE_EFFECTS__*/
1365
1386
  function isReactive(value) {
1366
1387
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1367
1388
  return !!(value && value["__v_isReactive"]);
@@ -1377,11 +1398,11 @@ function isReactive(value) {
1377
1398
  * @param value - The value to check.
1378
1399
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1379
1400
  */
1380
- /* @__NO_SIDE_EFFECTS__ */
1401
+ /*@__NO_SIDE_EFFECTS__*/
1381
1402
  function isReadonly(value) {
1382
1403
  return !!(value && value["__v_isReadonly"]);
1383
1404
  }
1384
- /* @__NO_SIDE_EFFECTS__ */
1405
+ /*@__NO_SIDE_EFFECTS__*/
1385
1406
  function isShallow(value) {
1386
1407
  return !!(value && value["__v_isShallow"]);
1387
1408
  }
@@ -1392,7 +1413,7 @@ function isShallow(value) {
1392
1413
  * @param value - The value to check.
1393
1414
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1394
1415
  */
1395
- /* @__NO_SIDE_EFFECTS__ */
1416
+ /*@__NO_SIDE_EFFECTS__*/
1396
1417
  function isProxy(value) {
1397
1418
  return value ? !!value["__v_raw"] : false;
1398
1419
  }
@@ -1419,7 +1440,7 @@ function isProxy(value) {
1419
1440
  * @param observed - The object for which the "raw" value is requested.
1420
1441
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1421
1442
  */
1422
- /* @__NO_SIDE_EFFECTS__ */
1443
+ /*@__NO_SIDE_EFFECTS__*/
1423
1444
  function toRaw(observed) {
1424
1445
  const raw = observed && observed["__v_raw"];
1425
1446
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1468,15 +1489,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
1468
1489
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1469
1490
  //#endregion
1470
1491
  //#region packages/reactivity/src/ref.ts
1471
- /* @__NO_SIDE_EFFECTS__ */
1492
+ /*@__NO_SIDE_EFFECTS__*/
1472
1493
  function isRef(r) {
1473
1494
  return r ? r["__v_isRef"] === true : false;
1474
1495
  }
1475
- /* @__NO_SIDE_EFFECTS__ */
1496
+ /*@__NO_SIDE_EFFECTS__*/
1476
1497
  function ref(value) {
1477
1498
  return createRef(value, toReactive);
1478
1499
  }
1479
- /* @__NO_SIDE_EFFECTS__ */
1500
+ /*@__NO_SIDE_EFFECTS__*/
1480
1501
  function shallowRef(value) {
1481
1502
  return createRef(value);
1482
1503
  }
@@ -1679,7 +1700,7 @@ function customRef(factory) {
1679
1700
  * @param object - Reactive object to be made into an object of linked refs.
1680
1701
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1681
1702
  */
1682
- /* @__NO_SIDE_EFFECTS__ */
1703
+ /*@__NO_SIDE_EFFECTS__*/
1683
1704
  function toRefs(object) {
1684
1705
  const ret = isArray(object) ? new Array(object.length) : {};
1685
1706
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1730,7 +1751,7 @@ var GetterRefImpl = class {
1730
1751
  return this._value = this._getter();
1731
1752
  }
1732
1753
  };
1733
- /* @__NO_SIDE_EFFECTS__ */
1754
+ /*@__NO_SIDE_EFFECTS__*/
1734
1755
  function toRef(source, key, defaultValue) {
1735
1756
  if (/* @__PURE__ */ isRef(source)) return source;
1736
1757
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1796,10 +1817,12 @@ var ReactiveEffect = class {
1796
1817
  get dirty() {
1797
1818
  const flags = this.flags;
1798
1819
  if (flags & 16) return true;
1799
- if (flags & 32) if (checkDirty(this.deps, this)) {
1800
- this.flags = flags | 16;
1801
- return true;
1802
- } else this.flags = flags & -33;
1820
+ if (flags & 32) {
1821
+ if (checkDirty(this.deps, this)) {
1822
+ this.flags = flags | 16;
1823
+ return true;
1824
+ } else this.flags = flags & -33;
1825
+ }
1803
1826
  return false;
1804
1827
  }
1805
1828
  };
@@ -1978,10 +2001,12 @@ var ComputedRefImpl = class {
1978
2001
  get _dirty() {
1979
2002
  const flags = this.flags;
1980
2003
  if (flags & 16) return true;
1981
- if (flags & 32) if (checkDirty(this.deps, this)) {
1982
- this.flags = flags | 16;
1983
- return true;
1984
- } else this.flags = flags & -33;
2004
+ if (flags & 32) {
2005
+ if (checkDirty(this.deps, this)) {
2006
+ this.flags = flags | 16;
2007
+ return true;
2008
+ } else this.flags = flags & -33;
2009
+ }
1985
2010
  return false;
1986
2011
  }
1987
2012
  /**
@@ -2042,7 +2067,7 @@ var ComputedRefImpl = class {
2042
2067
  }
2043
2068
  };
2044
2069
  setupOnTrigger(ComputedRefImpl);
2045
- /* @__NO_SIDE_EFFECTS__ */
2070
+ /*@__NO_SIDE_EFFECTS__*/
2046
2071
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
2047
2072
  let getter;
2048
2073
  let setter;
@@ -2120,25 +2145,26 @@ var WatcherEffect = class extends ReactiveEffect {
2120
2145
  else if (isFunction(s)) return call ? call(s, 2) : s();
2121
2146
  else warnInvalidSource(s, onWarn);
2122
2147
  });
2123
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2124
- else getter = () => {
2125
- if (this.cleanupsLength) {
2126
- const prevSub = setActiveSub();
2148
+ } else if (isFunction(source)) {
2149
+ if (cb) getter = call ? () => call(source, 2) : source;
2150
+ else getter = () => {
2151
+ if (this.cleanupsLength) {
2152
+ const prevSub = setActiveSub();
2153
+ try {
2154
+ cleanup(this);
2155
+ } finally {
2156
+ setActiveSub(prevSub);
2157
+ }
2158
+ }
2159
+ const currentEffect = activeWatcher;
2160
+ activeWatcher = this;
2127
2161
  try {
2128
- cleanup(this);
2162
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2129
2163
  } finally {
2130
- setActiveSub(prevSub);
2164
+ activeWatcher = currentEffect;
2131
2165
  }
2132
- }
2133
- const currentEffect = activeWatcher;
2134
- activeWatcher = this;
2135
- try {
2136
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2137
- } finally {
2138
- activeWatcher = currentEffect;
2139
- }
2140
- };
2141
- else {
2166
+ };
2167
+ } else {
2142
2168
  getter = NOOP;
2143
2169
  warnInvalidSource(source, onWarn);
2144
2170
  }
@@ -2462,7 +2488,7 @@ let currentFlushPromise = null;
2462
2488
  let jobsLength = 0;
2463
2489
  let flushIndex = 0;
2464
2490
  let postFlushIndex = 0;
2465
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2491
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2466
2492
  const RECURSION_LIMIT = 100;
2467
2493
  function nextTick(fn) {
2468
2494
  const p = currentFlushPromise || resolvedPromise;
@@ -2501,6 +2527,7 @@ const doFlushJobs = () => {
2501
2527
  flushJobs();
2502
2528
  } catch (e) {
2503
2529
  currentFlushPromise = null;
2530
+ if (jobsLength || postJobs.length) queueFlush();
2504
2531
  throw e;
2505
2532
  }
2506
2533
  };
@@ -2508,9 +2535,10 @@ function queueFlush() {
2508
2535
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2509
2536
  }
2510
2537
  function queuePostFlushCb(jobs, id = Infinity) {
2511
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2512
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2513
- else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2538
+ if (!isArray(jobs)) {
2539
+ if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2540
+ else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2541
+ } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2514
2542
  queueFlush();
2515
2543
  }
2516
2544
  function flushPreFlushCbs(instance, seen) {
@@ -2524,8 +2552,11 @@ function flushPreFlushCbs(instance, seen) {
2524
2552
  i--;
2525
2553
  jobsLength--;
2526
2554
  if (cb.flags & 2) cb.flags &= -2;
2527
- cb();
2528
- if (!(cb.flags & 2)) cb.flags &= -2;
2555
+ try {
2556
+ cb();
2557
+ } finally {
2558
+ if (!(cb.flags & 2)) cb.flags &= -2;
2559
+ }
2529
2560
  }
2530
2561
  }
2531
2562
  function flushPostFlushCbs(seen) {
@@ -2538,18 +2569,22 @@ function flushPostFlushCbs(seen) {
2538
2569
  activePostJobs = postJobs;
2539
2570
  postJobs = [];
2540
2571
  seen = seen || /* @__PURE__ */ new Map();
2541
- while (postFlushIndex < activePostJobs.length) {
2542
- const cb = activePostJobs[postFlushIndex++];
2543
- if (checkRecursiveUpdates(seen, cb)) continue;
2544
- if (cb.flags & 2) cb.flags &= -2;
2545
- if (!(cb.flags & 4)) try {
2546
- cb();
2547
- } finally {
2548
- cb.flags &= -2;
2572
+ try {
2573
+ while (postFlushIndex < activePostJobs.length) {
2574
+ const cb = activePostJobs[postFlushIndex++];
2575
+ if (checkRecursiveUpdates(seen, cb)) continue;
2576
+ if (cb.flags & 2) cb.flags &= -2;
2577
+ if (!(cb.flags & 4)) try {
2578
+ cb();
2579
+ } finally {
2580
+ if (!(cb.flags & 2)) cb.flags &= -2;
2581
+ }
2549
2582
  }
2583
+ } finally {
2584
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2585
+ activePostJobs = null;
2586
+ postFlushIndex = 0;
2550
2587
  }
2551
- activePostJobs = null;
2552
- postFlushIndex = 0;
2553
2588
  }
2554
2589
  }
2555
2590
  let isFlushing = false;
@@ -2559,9 +2594,12 @@ let isFlushing = false;
2559
2594
  function flushOnAppMount(instance) {
2560
2595
  if (!isFlushing) {
2561
2596
  isFlushing = true;
2562
- flushPreFlushCbs(instance);
2563
- flushPostFlushCbs();
2564
- isFlushing = false;
2597
+ try {
2598
+ flushPreFlushCbs(instance);
2599
+ flushPostFlushCbs();
2600
+ } finally {
2601
+ isFlushing = false;
2602
+ }
2565
2603
  }
2566
2604
  }
2567
2605
  function flushJobs(seen) {
@@ -2591,8 +2629,8 @@ function flushJobs(seen) {
2591
2629
  jobsLength = 0;
2592
2630
  jobs.length = 0;
2593
2631
  flushPostFlushCbs(seen);
2594
- currentFlushPromise = null;
2595
2632
  if (jobsLength || postJobs.length) flushJobs(seen);
2633
+ else currentFlushPromise = null;
2596
2634
  }
2597
2635
  }
2598
2636
  function checkRecursiveUpdates(seen, fn) {
@@ -2623,6 +2661,19 @@ getGlobalThis().__VUE_HMR_RUNTIME__ = {
2623
2661
  rerender: tryWrap(rerender),
2624
2662
  reload: tryWrap(reload)
2625
2663
  };
2664
+ function runWithHmrUpdating(fn) {
2665
+ isHmrUpdating = true;
2666
+ let done = false;
2667
+ try {
2668
+ fn();
2669
+ done = true;
2670
+ } finally {
2671
+ if (done) nextTick(() => {
2672
+ isHmrUpdating = false;
2673
+ });
2674
+ else isHmrUpdating = false;
2675
+ }
2676
+ }
2626
2677
  const map = /* @__PURE__ */ new Map();
2627
2678
  function registerHMR(instance) {
2628
2679
  const id = instance.type.__hmrId;
@@ -2664,18 +2715,16 @@ function rerender(id, newRender) {
2664
2715
  instance.render = newRender;
2665
2716
  normalizeClassComponent(instance.type).render = newRender;
2666
2717
  }
2667
- isHmrUpdating = true;
2668
- if (instance.vapor) {
2669
- if (!instance.isUnmounted) instance.hmrRerender();
2670
- } else {
2671
- const i = instance;
2672
- if (!(i.effect.flags & 1024)) {
2673
- i.renderCache = [];
2674
- i.effect.run();
2718
+ runWithHmrUpdating(() => {
2719
+ if (instance.vapor) {
2720
+ if (!instance.isUnmounted) instance.hmrRerender();
2721
+ } else {
2722
+ const i = instance;
2723
+ if (!(i.effect.flags & 1024)) {
2724
+ i.renderCache = [];
2725
+ i.effect.run();
2726
+ }
2675
2727
  }
2676
- }
2677
- nextTick(() => {
2678
- isHmrUpdating = false;
2679
2728
  });
2680
2729
  });
2681
2730
  }
@@ -2690,15 +2739,17 @@ function reload(id, newComp) {
2690
2739
  for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
2691
2740
  const dirtyInstances = new Set(instances);
2692
2741
  const rerenderedParents = /* @__PURE__ */ new Set();
2693
- for (const instance of instances) {
2694
- const parent = instance.parent;
2695
- if (parent) {
2696
- if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2697
- rerenderedParents.add(parent);
2698
- parent.hmrRerender();
2699
- }
2700
- } else instance.hmrReload(newComp);
2701
- }
2742
+ runWithHmrUpdating(() => {
2743
+ for (const instance of instances) {
2744
+ const parent = instance.parent;
2745
+ if (parent) {
2746
+ if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2747
+ rerenderedParents.add(parent);
2748
+ parent.hmrRerender();
2749
+ }
2750
+ } else instance.hmrReload(newComp);
2751
+ }
2752
+ });
2702
2753
  } else {
2703
2754
  const parentUpdates = /* @__PURE__ */ new Map();
2704
2755
  const dirtyInstanceSet = new Set(instances);
@@ -2732,21 +2783,22 @@ function reload(id, newComp) {
2732
2783
  }
2733
2784
  parentUpdates.forEach((updates, parent) => {
2734
2785
  queueJob(() => {
2735
- isHmrUpdating = true;
2736
- if (parent.vapor) parent.hmrRerender();
2737
- else {
2738
- const i = parent;
2739
- if (!(i.effect.flags & 1024)) {
2740
- i.renderCache = [];
2741
- i.effect.run();
2742
- }
2786
+ try {
2787
+ runWithHmrUpdating(() => {
2788
+ if (parent.vapor) parent.hmrRerender();
2789
+ else {
2790
+ const i = parent;
2791
+ if (!(i.effect.flags & 1024)) {
2792
+ i.renderCache = [];
2793
+ i.effect.run();
2794
+ }
2795
+ }
2796
+ });
2797
+ } finally {
2798
+ updates.forEach(([instance, dirtyInstances]) => {
2799
+ dirtyInstances.delete(instance);
2800
+ });
2743
2801
  }
2744
- nextTick(() => {
2745
- isHmrUpdating = false;
2746
- });
2747
- updates.forEach(([instance, dirtyInstances]) => {
2748
- dirtyInstances.delete(instance);
2749
- });
2750
2802
  });
2751
2803
  });
2752
2804
  }
@@ -2815,20 +2867,20 @@ function devtoolsInitApp(app, version) {
2815
2867
  function devtoolsUnmountApp(app) {
2816
2868
  emit$1("app:unmount", app);
2817
2869
  }
2818
- const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added");
2819
- const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated");
2820
- const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook("component:removed");
2870
+ const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
2871
+ const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
2872
+ const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
2821
2873
  const devtoolsComponentRemoved = (component) => {
2822
2874
  if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
2823
2875
  };
2824
- /* @__NO_SIDE_EFFECTS__ */
2876
+ /*@__NO_SIDE_EFFECTS__*/
2825
2877
  function createDevtoolsComponentHook(hook) {
2826
2878
  return (component) => {
2827
2879
  emit$1(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
2828
2880
  };
2829
2881
  }
2830
- const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start");
2831
- const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end");
2882
+ const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
2883
+ const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
2832
2884
  function createDevtoolsPerformanceHook(hook) {
2833
2885
  return (component, type, time) => {
2834
2886
  emit$1(hook, component.appContext.app, component.uid, component, type, time);
@@ -3093,15 +3145,16 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
3093
3145
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
3094
3146
  const resolveTarget = (props, select) => {
3095
3147
  const targetSelector = props && props.to;
3096
- if (isString(targetSelector)) if (!select) {
3097
- warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3098
- return null;
3148
+ if (isString(targetSelector)) {
3149
+ if (!select) {
3150
+ warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3151
+ return null;
3152
+ } else {
3153
+ const target = select(targetSelector);
3154
+ 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.`);
3155
+ return target;
3156
+ }
3099
3157
  } else {
3100
- const target = select(targetSelector);
3101
- 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.`);
3102
- return target;
3103
- }
3104
- else {
3105
3158
  if (!targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
3106
3159
  return targetSelector;
3107
3160
  }
@@ -3139,7 +3192,8 @@ const TeleportImpl = {
3139
3192
  if (pendingMounts.get(vnode) !== mountJob) return;
3140
3193
  pendingMounts.delete(vnode);
3141
3194
  if (isTeleportDisabled(vnode.props)) {
3142
- mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
3195
+ const mountContainer = parentNode(vnode.el) || container;
3196
+ mount(vnode, mountContainer, vnode.anchor);
3143
3197
  updateCssVars(vnode, true);
3144
3198
  }
3145
3199
  mountToTarget(vnode);
@@ -3248,15 +3302,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3248
3302
  const disabled = isTeleportDisabled(vnode.props);
3249
3303
  if (target) {
3250
3304
  const targetNode = target._lpa || target.firstChild;
3251
- if (vnode.shapeFlag & 16) if (disabled) {
3252
- hydrateDisabledTeleport(node, vnode);
3253
- hydrateAnchor(target, targetNode);
3254
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3255
- } else {
3256
- vnode.anchor = nextSibling(node);
3257
- hydrateAnchor(target, targetNode);
3258
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3259
- hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3305
+ if (vnode.shapeFlag & 16) {
3306
+ if (disabled) {
3307
+ hydrateDisabledTeleport(node, vnode);
3308
+ hydrateAnchor(target, targetNode);
3309
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3310
+ } else {
3311
+ vnode.anchor = nextSibling(node);
3312
+ hydrateAnchor(target, targetNode);
3313
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3314
+ hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3315
+ }
3260
3316
  }
3261
3317
  updateCssVars(vnode, disabled);
3262
3318
  } else if (disabled) {
@@ -3422,8 +3478,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3422
3478
  persisted,
3423
3479
  beforeEnter(el) {
3424
3480
  let hook = onBeforeEnter;
3425
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3426
- else return;
3481
+ if (!state.isMounted) {
3482
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
3483
+ else return;
3484
+ }
3427
3485
  if (el[leaveCbKey]) el[leaveCbKey](true);
3428
3486
  earlyRemove();
3429
3487
  callHook(hook, [el]);
@@ -3433,11 +3491,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3433
3491
  let hook = onEnter;
3434
3492
  let afterHook = onAfterEnter;
3435
3493
  let cancelHook = onEnterCancelled;
3436
- if (!state.isMounted) if (appear) {
3437
- hook = onAppear || onEnter;
3438
- afterHook = onAfterAppear || onAfterEnter;
3439
- cancelHook = onAppearCancelled || onEnterCancelled;
3440
- } else return;
3494
+ if (!state.isMounted) {
3495
+ if (appear) {
3496
+ hook = onAppear || onEnter;
3497
+ afterHook = onAfterAppear || onAfterEnter;
3498
+ cancelHook = onAppearCancelled || onEnterCancelled;
3499
+ } else return;
3500
+ }
3441
3501
  let called = false;
3442
3502
  el[enterCbKey$1] = (cancelled) => {
3443
3503
  if (called) return;
@@ -3603,9 +3663,9 @@ function checkTransitionMode(mode) {
3603
3663
  }
3604
3664
  //#endregion
3605
3665
  //#region packages/runtime-core/src/apiDefineComponent.ts
3606
- /* @__NO_SIDE_EFFECTS__ */
3666
+ /*@__NO_SIDE_EFFECTS__*/
3607
3667
  function defineComponent(options, extraOptions) {
3608
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
3668
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
3609
3669
  }
3610
3670
  //#endregion
3611
3671
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -3702,15 +3762,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3702
3762
  if (rawRef.f) {
3703
3763
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
3704
3764
  if (isUnmount) isArray(existing) && remove(existing, refValue);
3705
- else if (!isArray(existing)) if (_isString) {
3706
- refs[ref] = [refValue];
3707
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3708
- } else {
3709
- const newVal = [refValue];
3710
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3711
- if (rawRef.k) refs[rawRef.k] = newVal;
3712
- }
3713
- else if (!existing.includes(refValue)) existing.push(refValue);
3765
+ else if (!isArray(existing)) {
3766
+ if (_isString) {
3767
+ refs[ref] = [refValue];
3768
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3769
+ } else {
3770
+ const newVal = [refValue];
3771
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3772
+ if (rawRef.k) refs[rawRef.k] = newVal;
3773
+ }
3774
+ } else if (!existing.includes(refValue)) existing.push(refValue);
3714
3775
  } else if (_isString) {
3715
3776
  refs[ref] = value;
3716
3777
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -3762,7 +3823,18 @@ const logMismatchError = () => {
3762
3823
  hasLoggedMismatchError = true;
3763
3824
  };
3764
3825
  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
3765
- const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
3826
+ const isMathMLContainer = (container) => {
3827
+ if (!container.namespaceURI.includes("MathML")) return false;
3828
+ if (container.tagName !== "annotation-xml") return true;
3829
+ const encoding = container.getAttribute("encoding");
3830
+ return !encoding || !encoding.includes("html");
3831
+ };
3832
+ /**
3833
+ * Resolve the element namespace a container's children should be created in.
3834
+ * The live DOM is the source of truth, so this also covers containers that are
3835
+ * only known at runtime (interop boundaries, teleport targets).
3836
+ * @internal
3837
+ */
3766
3838
  const getContainerType = (container) => {
3767
3839
  if (container.nodeType !== 1) return void 0;
3768
3840
  if (isSVGContainer(container)) return "svg";
@@ -3800,11 +3872,12 @@ function createHydrationFunctions(rendererInternals) {
3800
3872
  let nextNode = null;
3801
3873
  switch (type) {
3802
3874
  case Text:
3803
- if (domType !== 3) if (vnode.children === "") {
3804
- insert(vnode.el = createText(""), parentNode(node), node);
3805
- nextNode = node;
3806
- } else nextNode = onMismatch();
3807
- else {
3875
+ if (domType !== 3) {
3876
+ if (vnode.children === "") {
3877
+ insert(vnode.el = createText(""), parentNode(node), node);
3878
+ nextNode = node;
3879
+ } else nextNode = onMismatch();
3880
+ } else {
3808
3881
  if (node.data !== vnode.children) {
3809
3882
  warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
3810
3883
  logMismatchError();
@@ -3841,11 +3914,12 @@ function createHydrationFunctions(rendererInternals) {
3841
3914
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3842
3915
  break;
3843
3916
  case VaporSlot:
3844
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
3917
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
3845
3918
  break;
3846
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
3847
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3848
- else if (shapeFlag & 6) {
3919
+ default: if (shapeFlag & 1) {
3920
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
3921
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3922
+ } else if (shapeFlag & 6) {
3849
3923
  vnode.slotScopeIds = slotScopeIds;
3850
3924
  const container = parentNode(node);
3851
3925
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
@@ -3867,19 +3941,20 @@ function createHydrationFunctions(rendererInternals) {
3867
3941
  } else {
3868
3942
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
3869
3943
  const component = vnode.component;
3870
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
3944
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep && !component.asyncResolved)) {
3871
3945
  let subTree;
3872
3946
  if (isFragmentStart) {
3873
- subTree = createVNode(Fragment);
3947
+ subTree = createVNode(Static);
3874
3948
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
3875
3949
  } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
3876
3950
  subTree.el = node;
3877
3951
  component.subTree = subTree;
3878
3952
  }
3879
3953
  }
3880
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
3881
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3882
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3954
+ } else if (shapeFlag & 64) {
3955
+ if (domType !== 8) nextNode = onMismatch();
3956
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3957
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3883
3958
  else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
3884
3959
  }
3885
3960
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
@@ -4008,7 +4083,7 @@ function createHydrationFunctions(rendererInternals) {
4008
4083
  const container = parentNode(node);
4009
4084
  remove(node);
4010
4085
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4011
- if (parentComponent) {
4086
+ if (parentComponent && parentComponent.vnode) {
4012
4087
  parentComponent.vnode.el = vnode.el;
4013
4088
  updateHOCHostEl(parentComponent, vnode.el);
4014
4089
  }
@@ -4020,8 +4095,10 @@ function createHydrationFunctions(rendererInternals) {
4020
4095
  node = nextSibling(node);
4021
4096
  if (node && isComment(node)) {
4022
4097
  if (node.data === open) match++;
4023
- if (node.data === close) if (match === 0) return nextSibling(node);
4024
- else match--;
4098
+ if (node.data === close) {
4099
+ if (match === 0) return nextSibling(node);
4100
+ else match--;
4101
+ }
4025
4102
  }
4026
4103
  }
4027
4104
  return node;
@@ -4031,7 +4108,7 @@ function createHydrationFunctions(rendererInternals) {
4031
4108
  if (parentNode) parentNode.replaceChild(newNode, oldNode);
4032
4109
  let parent = parentComponent;
4033
4110
  while (parent) {
4034
- if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4111
+ if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4035
4112
  parent = parent.parent;
4036
4113
  }
4037
4114
  };
@@ -4043,7 +4120,7 @@ const isTemplateNode = (node) => {
4043
4120
  /**
4044
4121
  * Dev only
4045
4122
  */
4046
- const resourceProps = /* @__PURE__ */ new Set([
4123
+ const resourceProps = /*@__PURE__*/ new Set([
4047
4124
  "src",
4048
4125
  "srcset",
4049
4126
  "href",
@@ -4285,7 +4362,7 @@ function forEachElement(node, cb) {
4285
4362
  //#endregion
4286
4363
  //#region packages/runtime-core/src/apiAsyncComponent.ts
4287
4364
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4288
- /* @__NO_SIDE_EFFECTS__ */
4365
+ /*@__NO_SIDE_EFFECTS__*/
4289
4366
  function defineAsyncComponent(source) {
4290
4367
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
4291
4368
  return /* @__PURE__ */ defineComponent({
@@ -4500,10 +4577,13 @@ const KeepAlive = {
4500
4577
  });
4501
4578
  let pendingCacheKey = null;
4502
4579
  const cacheSubtree = () => {
4503
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4504
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4505
- }, void 0, keepAliveInstance.subTree.suspense);
4506
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4580
+ if (pendingCacheKey != null) {
4581
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4582
+ const vnode = getInnerChild(keepAliveInstance.subTree);
4583
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
4584
+ }, void 0, keepAliveInstance.subTree.suspense);
4585
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4586
+ }
4507
4587
  };
4508
4588
  onMounted(cacheSubtree);
4509
4589
  onUpdated(cacheSubtree);
@@ -4745,23 +4825,25 @@ function renderList(source, renderItem, cache, index) {
4745
4825
  }
4746
4826
  ret = new Array(source.length);
4747
4827
  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]);
4748
- } else if (typeof source === "number") if (!Number.isInteger(source) || source < 0) {
4749
- warn$1(`The v-for range expects a positive integer value but got ${source}.`);
4750
- ret = [];
4751
- } else {
4752
- ret = new Array(source);
4753
- for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
4754
- }
4755
- else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4756
- else {
4757
- const keys = Object.keys(source);
4758
- ret = new Array(keys.length);
4759
- for (let i = 0, l = keys.length; i < l; i++) {
4760
- const key = keys[i];
4761
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4828
+ } else if (typeof source === "number") {
4829
+ if (!Number.isInteger(source) || source < 0) {
4830
+ warn$1(`The v-for range expects a positive integer value but got ${source}.`);
4831
+ ret = [];
4832
+ } else {
4833
+ ret = new Array(source);
4834
+ for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
4762
4835
  }
4763
- }
4764
- else ret = [];
4836
+ } else if (isObject(source)) {
4837
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4838
+ else {
4839
+ const keys = Object.keys(source);
4840
+ ret = new Array(keys.length);
4841
+ for (let i = 0, l = keys.length; i < l; i++) {
4842
+ const key = keys[i];
4843
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4844
+ }
4845
+ }
4846
+ } else ret = [];
4765
4847
  if (cache) cache[index] = ret;
4766
4848
  return ret;
4767
4849
  }
@@ -4786,14 +4868,27 @@ function createSlots(slots, dynamicSlots) {
4786
4868
  //#endregion
4787
4869
  //#region packages/runtime-core/src/helpers/renderSlot.ts
4788
4870
  /**
4871
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
4872
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
4873
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
4874
+ * "which one". Internal to vapor interop.
4875
+ */
4876
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
4877
+ /**
4878
+ * Marks a compiler-generated slot fallback as VDOM-rendered so the vapor
4879
+ * interop fallback chain renders it through the VDOM renderer. Internal to
4880
+ * vapor interop.
4881
+ */
4882
+ const vdomSlotFallbackKey = Symbol(`vdomSlotFallback`);
4883
+ /**
4789
4884
  * Compiler runtime helper for rendering `<slot/>`
4790
4885
  * @private
4791
4886
  */
4792
4887
  function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
4793
4888
  if (props == null) props = {};
4794
4889
  let slot = slots[name];
4795
- if (fallback) fallback.__vdom = true;
4796
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
4890
+ if (fallback) fallback[vdomSlotFallbackKey] = true;
4891
+ const vaporSlot = slot && slot[rawVaporSlotKey];
4797
4892
  if (vaporSlot) {
4798
4893
  const ret = (openBlock(), createBlock(VaporSlot, props));
4799
4894
  ret.vs = {
@@ -4870,11 +4965,38 @@ const getPublicInstance = (i) => {
4870
4965
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
4871
4966
  return getPublicInstance(i.parent);
4872
4967
  };
4968
+ const resolveDevRootEl = (vnode) => {
4969
+ let found = false;
4970
+ while (true) {
4971
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
4972
+ const root = filterSingleRoot(vnode.children);
4973
+ if (!root) return;
4974
+ vnode = root;
4975
+ found = true;
4976
+ continue;
4977
+ }
4978
+ const component = vnode.component;
4979
+ if (component && component.subTree) {
4980
+ vnode = component.subTree;
4981
+ continue;
4982
+ }
4983
+ const suspense = vnode.suspense;
4984
+ if (suspense && suspense.activeBranch) {
4985
+ vnode = suspense.activeBranch;
4986
+ continue;
4987
+ }
4988
+ return found ? vnode.el : void 0;
4989
+ }
4990
+ };
4991
+ const getDevRootFragmentEl = (i) => {
4992
+ const el = i.subTree && resolveDevRootEl(i.subTree);
4993
+ return el === void 0 ? i.vnode.el : el;
4994
+ };
4873
4995
  let publicPropertiesMap;
4874
4996
  const getPublicPropertiesMap = () => {
4875
4997
  if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
4876
4998
  $: (i) => i,
4877
- $el: (i) => i.vnode.el,
4999
+ $el: (i) => getDevRootFragmentEl(i),
4878
5000
  $data: (i) => i.data,
4879
5001
  $props: (i) => /* @__PURE__ */ shallowReadonly(i.props),
4880
5002
  $attrs: (i) => /* @__PURE__ */ shallowReadonly(i.attrs),
@@ -4980,7 +5102,7 @@ PublicInstanceProxyHandlers.ownKeys = (target) => {
4980
5102
  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.");
4981
5103
  return Reflect.ownKeys(target);
4982
5104
  };
4983
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
5105
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
4984
5106
  get(target, key) {
4985
5107
  if (key === Symbol.unscopables) return;
4986
5108
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -5152,12 +5274,13 @@ function mergeDefaults(raw, defaults) {
5152
5274
  for (const key in defaults) {
5153
5275
  if (key.startsWith("__skip")) continue;
5154
5276
  let opt = props[key];
5155
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
5156
- type: opt,
5157
- default: defaults[key]
5158
- };
5159
- else opt.default = defaults[key];
5160
- else if (opt === null) opt = props[key] = { default: defaults[key] };
5277
+ if (opt) {
5278
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
5279
+ type: opt,
5280
+ default: defaults[key]
5281
+ };
5282
+ else opt.default = defaults[key];
5283
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
5161
5284
  else warn$1(`props default key "${key}" has no corresponding declaration.`);
5162
5285
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
5163
5286
  }
@@ -5300,11 +5423,12 @@ function applyOptions(instance) {
5300
5423
  const opt = computedOptions[key];
5301
5424
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
5302
5425
  if (get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
5426
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
5427
+ warn$1(`Write operation failed: computed property "${key}" is readonly.`);
5428
+ };
5303
5429
  const c = computed({
5304
5430
  get,
5305
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
5306
- warn$1(`Write operation failed: computed property "${key}" is readonly.`);
5307
- }
5431
+ set
5308
5432
  });
5309
5433
  Object.defineProperty(ctx, key, {
5310
5434
  enumerable: true,
@@ -5360,9 +5484,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
5360
5484
  for (const key in injectOptions) {
5361
5485
  const opt = injectOptions[key];
5362
5486
  let injected;
5363
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5364
- else injected = inject(opt.from || key);
5365
- else injected = inject(opt);
5487
+ if (isObject(opt)) {
5488
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5489
+ else injected = inject(opt.from || key);
5490
+ } else injected = inject(opt);
5366
5491
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
5367
5492
  enumerable: true,
5368
5493
  configurable: true,
@@ -5383,13 +5508,14 @@ function createWatcher(raw, ctx, publicThis, key) {
5383
5508
  if (isFunction(handler)) watch(getter, handler);
5384
5509
  else warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
5385
5510
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis));
5386
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5387
- else {
5388
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5389
- if (isFunction(handler)) watch(getter, handler, raw);
5390
- else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
5391
- }
5392
- else warn$1(`Invalid watch option: "${key}"`, raw);
5511
+ else if (isObject(raw)) {
5512
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5513
+ else {
5514
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5515
+ if (isFunction(handler)) watch(getter, handler, raw);
5516
+ else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
5517
+ }
5518
+ } else warn$1(`Invalid watch option: "${key}"`, raw);
5393
5519
  }
5394
5520
  /**
5395
5521
  * Resolve merged options and cache it on the component.
@@ -5475,7 +5601,7 @@ function mergeObjectOptions(to, from) {
5475
5601
  }
5476
5602
  function mergeEmitsOrPropsOptions(to, from) {
5477
5603
  if (to) {
5478
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
5604
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
5479
5605
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
5480
5606
  } else return from;
5481
5607
  }
@@ -5594,8 +5720,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
5594
5720
  } else warn$1(`Cannot unmount an app that is not mounted.`);
5595
5721
  },
5596
5722
  provide(key, value) {
5597
- 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.`);
5598
- else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
5723
+ if (key in context.provides) {
5724
+ if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
5725
+ else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
5726
+ }
5599
5727
  context.provides[key] = value;
5600
5728
  return app;
5601
5729
  },
@@ -5702,12 +5830,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
5702
5830
  if (instance.isUnmounted) return;
5703
5831
  {
5704
5832
  const { emitsOptions, propsOptions } = instance;
5705
- if (emitsOptions) if (!(event in emitsOptions) && true) {
5706
- 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.`);
5707
- } else {
5708
- const validator = emitsOptions[event];
5709
- if (isFunction(validator)) {
5710
- if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
5833
+ if (emitsOptions) {
5834
+ if (!(event in emitsOptions) && true) {
5835
+ 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.`);
5836
+ } else {
5837
+ const validator = emitsOptions[event];
5838
+ if (isFunction(validator)) {
5839
+ if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
5840
+ }
5711
5841
  }
5712
5842
  }
5713
5843
  }
@@ -5716,7 +5846,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
5716
5846
  const modifiers = isModelListener && getModelModifiers(props, event.slice(7), getter);
5717
5847
  if (modifiers) {
5718
5848
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
5719
- if (modifiers.number) args = rawArgs.map(looseToNumber);
5849
+ if (modifiers.number) args = args.map(looseToNumber);
5720
5850
  }
5721
5851
  devtoolsComponentEmit(instance, event, args);
5722
5852
  {
@@ -5896,10 +6026,12 @@ function filterSingleRoot(children, recurse = true) {
5896
6026
  for (let i = 0; i < children.length; i++) {
5897
6027
  const child = children[i];
5898
6028
  if (isVNode(child)) {
5899
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
5900
- else {
5901
- singleRoot = child;
5902
- if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
6029
+ if (child.type !== Comment || child.children === "v-if") {
6030
+ if (singleRoot) return;
6031
+ else {
6032
+ singleRoot = child;
6033
+ if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
6034
+ }
5903
6035
  }
5904
6036
  } else return;
5905
6037
  }
@@ -6020,16 +6152,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
6020
6152
  let key = propsToUpdate[i];
6021
6153
  if (isEmitListener(instance.emitsOptions, key)) continue;
6022
6154
  const value = rawProps[key];
6023
- if (options) if (hasOwn(attrs, key)) {
6024
- if (value !== attrs[key]) {
6025
- attrs[key] = value;
6026
- hasAttrsChanged = true;
6155
+ if (options) {
6156
+ if (hasOwn(attrs, key)) {
6157
+ if (value !== attrs[key]) {
6158
+ attrs[key] = value;
6159
+ hasAttrsChanged = true;
6160
+ }
6161
+ } else {
6162
+ const camelizedKey = camelize(key);
6163
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
6027
6164
  }
6028
- } else {
6029
- const camelizedKey = camelize(key);
6030
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
6031
- }
6032
- else if (value !== attrs[key]) {
6165
+ } else if (value !== attrs[key]) {
6033
6166
  attrs[key] = value;
6034
6167
  hasAttrsChanged = true;
6035
6168
  }
@@ -6038,9 +6171,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
6038
6171
  } else {
6039
6172
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
6040
6173
  let kebabKey;
6041
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
6042
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6043
- } else delete props[key];
6174
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
6175
+ if (options) {
6176
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6177
+ } else delete props[key];
6178
+ }
6044
6179
  if (attrs !== rawCurrentProps) {
6045
6180
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && true) {
6046
6181
  delete attrs[key];
@@ -6059,9 +6194,10 @@ function setFullProps(instance, rawProps, props, attrs) {
6059
6194
  if (isReservedProp(key)) continue;
6060
6195
  const value = rawProps[key];
6061
6196
  let camelKey;
6062
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6063
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6064
- else if (!isEmitListener(instance.emitsOptions, key)) {
6197
+ if (options && hasOwn(options, camelKey = camelize(key))) {
6198
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6199
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6200
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
6065
6201
  if (!(key in attrs) || value !== attrs[key]) {
6066
6202
  attrs[key] = value;
6067
6203
  hasAttrsChanged = true;
@@ -6224,7 +6360,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
6224
6360
  }
6225
6361
  if (validator && !validator(value, /* @__PURE__ */ shallowReadonly(resolvedProps))) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
6226
6362
  }
6227
- const isSimpleType = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
6363
+ const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
6228
6364
  /**
6229
6365
  * dev only
6230
6366
  */
@@ -6337,12 +6473,13 @@ const updateSlots = (instance, children, optimized) => {
6337
6473
  let deletionComparisonTarget = EMPTY_OBJ;
6338
6474
  if (vnode.shapeFlag & 32) {
6339
6475
  const type = children._;
6340
- if (type) if (isHmrUpdating) {
6341
- assignSlots(slots, children, optimized);
6342
- trigger(instance, "set", "$slots");
6343
- } else if (optimized && type === 1) needDeletionCheck = false;
6344
- else assignSlots(slots, children, optimized);
6345
- else {
6476
+ if (type) {
6477
+ if (isHmrUpdating) {
6478
+ assignSlots(slots, children, optimized);
6479
+ trigger(instance, "set", "$slots");
6480
+ } else if (optimized && type === 1) needDeletionCheck = false;
6481
+ else assignSlots(slots, children, optimized);
6482
+ } else {
6346
6483
  needDeletionCheck = !children.$stable;
6347
6484
  normalizeObjectSlots(children, slots, instance);
6348
6485
  }
@@ -6360,7 +6497,7 @@ const updateSlots = (instance, children, optimized) => {
6360
6497
  let supported;
6361
6498
  let perf;
6362
6499
  let cachedNow$1 = 0;
6363
- const p$1 = /* @__PURE__ */ Promise.resolve();
6500
+ const p$1 = /*@__PURE__*/ Promise.resolve();
6364
6501
  const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
6365
6502
  /**
6366
6503
  * @internal
@@ -6457,7 +6594,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6457
6594
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6458
6595
  break;
6459
6596
  case VaporSlot:
6460
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
6597
+ getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
6461
6598
  break;
6462
6599
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6463
6600
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -6576,7 +6713,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6576
6713
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
6577
6714
  };
6578
6715
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
6579
- 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);
6716
+ for (let i = start; i < children.length; i++) {
6717
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
6718
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6719
+ }
6580
6720
  };
6581
6721
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6582
6722
  const el = n2.el = n1.el;
@@ -6588,6 +6728,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6588
6728
  let vnodeHook;
6589
6729
  parentComponent && toggleRecurse(parentComponent, false);
6590
6730
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6731
+ if (n2.ibu) n2.ibu();
6591
6732
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6592
6733
  parentComponent && toggleRecurse(parentComponent, true);
6593
6734
  if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -6621,8 +6762,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6621
6762
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
6622
6763
  }
6623
6764
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
6624
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
6765
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
6625
6766
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6767
+ n2.iu && n2.iu();
6626
6768
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6627
6769
  }, void 0, parentSuspense);
6628
6770
  };
@@ -6630,7 +6772,8 @@ function baseCreateRenderer(options, createHydrationFns) {
6630
6772
  for (let i = 0; i < newChildren.length; i++) {
6631
6773
  const oldVNode = oldChildren[i];
6632
6774
  const newVNode = newChildren[i];
6633
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6775
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
6776
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6634
6777
  }
6635
6778
  };
6636
6779
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -6668,41 +6811,46 @@ function baseCreateRenderer(options, createHydrationFns) {
6668
6811
  };
6669
6812
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6670
6813
  n2.slotScopeIds = slotScopeIds;
6671
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
6672
- else {
6673
- const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
6674
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
6675
- if (n2.dirs) {
6676
- invokeDirectiveHook(n2, null, parentComponent, "created");
6677
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
6814
+ if (n2.type.__vapor) {
6815
+ if (n1 == null) {
6816
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
6817
+ else {
6818
+ const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
6819
+ getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
6820
+ if (n2.dirs) {
6821
+ invokeDirectiveHook(n2, null, parentComponent, "created");
6822
+ invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
6823
+ }
6824
+ }, () => {
6825
+ if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
6826
+ });
6827
+ if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
6828
+ const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
6829
+ if (vnodeMountedHook) {
6830
+ const scopedVNode = n2;
6831
+ queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
6832
+ }
6678
6833
  }
6679
- }, () => {
6680
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
6681
- });
6682
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
6683
- const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
6684
- if (vnodeMountedHook) {
6685
- const scopedVNode = n2;
6686
- queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
6834
+ } else {
6835
+ const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
6836
+ getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
6837
+ if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6838
+ }, () => {
6839
+ const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
6840
+ if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
6841
+ if (n2.ibu) n2.ibu();
6842
+ });
6843
+ const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
6844
+ if (shouldUpdate && (vnodeUpdatedHook || n2.dirs || n2.iu)) queuePostRenderEffect(() => {
6845
+ n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6846
+ vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
6847
+ n2.iu && n2.iu();
6848
+ }, void 0, parentSuspense);
6687
6849
  }
6688
- }
6689
- else {
6690
- const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
6691
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
6692
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6693
- }, () => {
6694
- const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
6695
- if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
6696
- });
6697
- const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
6698
- if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
6699
- n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6700
- vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
6701
- }, void 0, parentSuspense);
6702
- }
6703
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6704
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6705
- else updateComponent(n1, n2, optimized);
6850
+ } else if (n1 == null) {
6851
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6852
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6853
+ } else updateComponent(n1, n2, optimized);
6706
6854
  };
6707
6855
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
6708
6856
  const instance = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);
@@ -6743,16 +6891,17 @@ function baseCreateRenderer(options, createHydrationFns) {
6743
6891
  };
6744
6892
  const updateComponent = (n1, n2, optimized) => {
6745
6893
  const instance = n2.component = n1.component;
6746
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
6747
- pushWarningContext(n2);
6748
- updateComponentPreRender(instance, n2, optimized);
6749
- popWarningContext();
6750
- return;
6894
+ if (shouldUpdateComponent(n1, n2, optimized)) {
6895
+ if (instance.asyncDep && !instance.asyncResolved) {
6896
+ pushWarningContext(n2);
6897
+ updateComponentPreRender(instance, n2, optimized);
6898
+ popWarningContext();
6899
+ return;
6900
+ } else {
6901
+ instance.next = n2;
6902
+ instance.effect.run();
6903
+ }
6751
6904
  } else {
6752
- instance.next = n2;
6753
- instance.effect.run();
6754
- }
6755
- else {
6756
6905
  n2.el = n1.el;
6757
6906
  instance.vnode = n2;
6758
6907
  }
@@ -6850,6 +6999,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6850
6999
  } else next = vnode;
6851
7000
  if (bu) invokeArrayFns(bu);
6852
7001
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
7002
+ if (next.ibu) next.ibu();
6853
7003
  toggleRecurse(instance, true);
6854
7004
  startMeasure(instance, `render`);
6855
7005
  const nextTree = renderComponentRoot(instance);
@@ -6862,7 +7012,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6862
7012
  next.el = nextTree.el;
6863
7013
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
6864
7014
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
6865
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
7015
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
7016
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
7017
+ next.iu && next.iu();
7018
+ }, void 0, parentSuspense);
6866
7019
  devtoolsComponentUpdated(instance);
6867
7020
  popWarningContext();
6868
7021
  }
@@ -6902,9 +7055,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6902
7055
  if (shapeFlag & 8) {
6903
7056
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
6904
7057
  if (c2 !== c1) hostSetElementText(container, c2);
6905
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6906
- else unmountChildren(c1, parentComponent, parentSuspense, true);
6907
- else {
7058
+ } else if (prevShapeFlag & 16) {
7059
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7060
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
7061
+ } else {
6908
7062
  if (prevShapeFlag & 8) hostSetElementText(container, "");
6909
7063
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6910
7064
  }
@@ -7003,8 +7157,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7003
7157
  const anchorVNode = c2[nextIndex + 1];
7004
7158
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
7005
7159
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7006
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
7007
- else j--;
7160
+ else if (moved) {
7161
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
7162
+ else j--;
7163
+ }
7008
7164
  }
7009
7165
  }
7010
7166
  };
@@ -7036,26 +7192,27 @@ function baseCreateRenderer(options, createHydrationFns) {
7036
7192
  moveStaticNode(vnode, container, anchor);
7037
7193
  return;
7038
7194
  }
7039
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
7040
- else {
7041
- const { leave, delayLeave, afterLeave } = transition;
7042
- const remove = () => {
7043
- if (vnode.ctx.isUnmounted) hostRemove(el);
7044
- else hostInsert(el, container, anchor);
7045
- };
7046
- const performLeave = () => {
7047
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
7048
- if (el._isLeaving) el[leaveCbKey](true);
7049
- if (transition.persisted && !wasLeaving) remove();
7050
- else leave(el, () => {
7051
- remove();
7052
- afterLeave && afterLeave();
7053
- });
7054
- };
7055
- if (delayLeave) delayLeave(el, remove, performLeave);
7056
- else performLeave();
7057
- }
7058
- else hostInsert(el, container, anchor);
7195
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
7196
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
7197
+ else {
7198
+ const { leave, delayLeave, afterLeave } = transition;
7199
+ const remove = () => {
7200
+ if (vnode.ctx.isUnmounted) hostRemove(el);
7201
+ else hostInsert(el, container, anchor);
7202
+ };
7203
+ const performLeave = () => {
7204
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
7205
+ if (el._isLeaving) el[leaveCbKey](true);
7206
+ if (transition.persisted && !wasLeaving) remove();
7207
+ else leave(el, () => {
7208
+ remove();
7209
+ afterLeave && afterLeave();
7210
+ });
7211
+ };
7212
+ if (delayLeave) delayLeave(el, remove, performLeave);
7213
+ else performLeave();
7214
+ }
7215
+ } else hostInsert(el, container, anchor);
7059
7216
  };
7060
7217
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
7061
7218
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
@@ -7075,16 +7232,17 @@ function baseCreateRenderer(options, createHydrationFns) {
7075
7232
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
7076
7233
  let vnodeHook;
7077
7234
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
7078
- if (shapeFlag & 6) if (isVaporComponent(type)) {
7079
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
7080
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7081
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
7082
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
7083
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
7084
- }, void 0, parentSuspense);
7085
- return;
7086
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
7087
- else {
7235
+ if (shapeFlag & 6) {
7236
+ if (isVaporComponent(type)) {
7237
+ if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
7238
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7239
+ if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
7240
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
7241
+ vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
7242
+ }, void 0, parentSuspense);
7243
+ return;
7244
+ } else unmountComponent(vnode.component, parentSuspense, doRemove);
7245
+ } else {
7088
7246
  if (shapeFlag & 128) {
7089
7247
  vnode.suspense.unmount(parentSuspense, doRemove);
7090
7248
  return;
@@ -7216,12 +7374,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
7216
7374
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
7217
7375
  }
7218
7376
  function toggleRecurse({ effect, job, vapor }, allowed) {
7219
- if (!vapor) if (allowed) {
7220
- effect.flags |= 128;
7221
- job.flags |= 2;
7222
- } else {
7223
- effect.flags &= -129;
7224
- job.flags &= -3;
7377
+ if (!vapor) {
7378
+ if (allowed) {
7379
+ effect.flags |= 128;
7380
+ job.flags |= 2;
7381
+ } else {
7382
+ effect.flags &= -129;
7383
+ job.flags &= -3;
7384
+ }
7225
7385
  }
7226
7386
  }
7227
7387
  function needTransition(parentSuspense, transition) {
@@ -7261,8 +7421,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
7261
7421
  }
7262
7422
  function locateNonHydratedAsyncRoot(instance) {
7263
7423
  const subComponent = instance.subTree && instance.subTree.component;
7264
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7265
- else return locateNonHydratedAsyncRoot(subComponent);
7424
+ if (subComponent) {
7425
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7426
+ else return locateNonHydratedAsyncRoot(subComponent);
7427
+ }
7266
7428
  }
7267
7429
  function invalidateMount(hooks) {
7268
7430
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
@@ -7306,7 +7468,7 @@ function isVaporComponent(type) {
7306
7468
  /**
7307
7469
  * shared between vdom and vapor
7308
7470
  */
7309
- function getInheritedScopeIds(vnode, parentComponent) {
7471
+ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
7310
7472
  const inheritedScopeIds = [];
7311
7473
  let currentParent = parentComponent;
7312
7474
  let currentVNode = vnode;
@@ -7322,6 +7484,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
7322
7484
  currentParent = currentParent.parent;
7323
7485
  } else break;
7324
7486
  }
7487
+ const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
7488
+ if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
7325
7489
  return inheritedScopeIds;
7326
7490
  }
7327
7491
  function resolveAsyncComponentPlaceholder(anchorVnode) {
@@ -7381,7 +7545,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7381
7545
  patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7382
7546
  if (suspense.deps <= 0) suspense.resolve();
7383
7547
  else if (isInFallback) {
7384
- if (!isHydrating) {
7548
+ if (!isHydrating && !suspense.isFallbackMountPending) {
7385
7549
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7386
7550
  setActiveBranch(suspense, newFallback);
7387
7551
  }
@@ -7402,7 +7566,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7402
7566
  if (isInFallback) {
7403
7567
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7404
7568
  if (suspense.deps <= 0) suspense.resolve();
7405
- else {
7569
+ else if (!suspense.isFallbackMountPending) {
7406
7570
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7407
7571
  setActiveBranch(suspense, newFallback);
7408
7572
  }
@@ -7528,8 +7692,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7528
7692
  const mountFallback = () => {
7529
7693
  suspense.isFallbackMountPending = false;
7530
7694
  if (!suspense.isInFallback) return;
7531
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7532
- setActiveBranch(suspense, fallbackVNode);
7695
+ const latestFallback = suspense.vnode.ssFallback;
7696
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7697
+ setActiveBranch(suspense, latestFallback);
7533
7698
  };
7534
7699
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
7535
7700
  if (delayEnter) {
@@ -7605,9 +7770,10 @@ function normalizeSuspenseSlot(s) {
7605
7770
  return s;
7606
7771
  }
7607
7772
  function queueEffectWithSuspense(fn, id, suspense) {
7608
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
7609
- else suspense.effects.push(fn);
7610
- else queuePostFlushCb(fn, id);
7773
+ if (suspense && suspense.pendingBranch) {
7774
+ if (isArray(fn)) suspense.effects.push(...fn);
7775
+ else suspense.effects.push(fn);
7776
+ } else queuePostFlushCb(fn, id);
7611
7777
  }
7612
7778
  function setActiveBranch(suspense, branch) {
7613
7779
  suspense.activeBranch = branch;
@@ -7801,8 +7967,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
7801
7967
  if (isVNode(type)) {
7802
7968
  const cloned = cloneVNode(type, props, true);
7803
7969
  if (children) normalizeChildren(cloned, children);
7804
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7805
- else currentBlock.push(cloned);
7970
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
7971
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7972
+ else currentBlock.push(cloned);
7973
+ }
7806
7974
  cloned.patchFlag = -2;
7807
7975
  return cloned;
7808
7976
  }
@@ -7862,7 +8030,9 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7862
8030
  ce: vnode.ce,
7863
8031
  vi: vnode.vi,
7864
8032
  vs: cloneVaporSlotMeta(vnode),
7865
- vb: vnode.vb
8033
+ vb: vnode.vb,
8034
+ ibu: vnode.ibu,
8035
+ iu: vnode.iu
7866
8036
  };
7867
8037
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
7868
8038
  return cloned;
@@ -7925,25 +8095,28 @@ function normalizeChildren(vnode, children) {
7925
8095
  const { shapeFlag } = vnode;
7926
8096
  if (children == null) children = null;
7927
8097
  else if (isArray(children)) type = 16;
7928
- else if (typeof children === "object") if (shapeFlag & 65) {
7929
- const slot = children.default;
7930
- if (slot) {
7931
- slot._c && (slot._d = false);
7932
- normalizeChildren(vnode, slot());
7933
- slot._c && (slot._d = true);
7934
- }
7935
- return;
7936
- } else {
7937
- type = 32;
7938
- const slotFlag = children._;
7939
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
7940
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
7941
- else {
7942
- children._ = 2;
7943
- vnode.patchFlag |= 1024;
8098
+ else if (typeof children === "object") {
8099
+ if (shapeFlag & 65) {
8100
+ const slot = children.default;
8101
+ if (slot) {
8102
+ slot._c && (slot._d = false);
8103
+ normalizeChildren(vnode, slot());
8104
+ slot._c && (slot._d = true);
8105
+ }
8106
+ return;
8107
+ } else {
8108
+ type = 32;
8109
+ const slotFlag = children._;
8110
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
8111
+ else if (slotFlag === 3 && currentRenderingInstance) {
8112
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
8113
+ else {
8114
+ children._ = 2;
8115
+ vnode.patchFlag |= 1024;
8116
+ }
8117
+ }
7944
8118
  }
7945
- }
7946
- else if (isFunction(children)) {
8119
+ } else if (isFunction(children)) {
7947
8120
  if (shapeFlag & 65) {
7948
8121
  normalizeChildren(vnode, { default: children });
7949
8122
  return;
@@ -8052,7 +8225,7 @@ const useInstanceOption = (key, silent = false) => {
8052
8225
  };
8053
8226
  //#endregion
8054
8227
  //#region packages/runtime-core/src/component.ts
8055
- const emptyAppContext = /* @__PURE__ */ createAppContext();
8228
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
8056
8229
  let uid = 0;
8057
8230
  function createComponentInstance(vnode, parent, suspense) {
8058
8231
  const type = vnode.type;
@@ -8249,10 +8422,12 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
8249
8422
  restoreCurrentInstance(prevInstance);
8250
8423
  }
8251
8424
  }
8252
- if (!Component.render && instance.render === NOOP && !isSSR) if (!compile && Component.template)
8425
+ if (!Component.render && instance.render === NOOP && !isSSR) {
8426
+ if (!compile && Component.template)
8253
8427
  /* v8 ignore start */
8254
- warn$1("Component provided template option but runtime compilation is not supported in this build of Vue. Use \"vue.esm-browser.js\" instead.");
8255
- else warn$1(`Component is missing template or render function: `, Component);
8428
+ warn$1("Component provided template option but runtime compilation is not supported in this build of Vue. Use \"vue.esm-browser.js\" instead.");
8429
+ else warn$1(`Component is missing template or render function: `, Component);
8430
+ }
8256
8431
  }
8257
8432
  const attrsProxyHandlers = {
8258
8433
  get(target, key) {
@@ -8360,11 +8535,12 @@ function h(type, propsOrChildren, children) {
8360
8535
  try {
8361
8536
  setBlockTracking(-1);
8362
8537
  const l = arguments.length;
8363
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8364
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8365
- return createVNode(type, propsOrChildren);
8366
- } else return createVNode(type, null, propsOrChildren);
8367
- else {
8538
+ if (l === 2) {
8539
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8540
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8541
+ return createVNode(type, propsOrChildren);
8542
+ } else return createVNode(type, null, propsOrChildren);
8543
+ } else {
8368
8544
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
8369
8545
  else if (l === 3 && isVNode(children)) children = [children];
8370
8546
  return createVNode(type, propsOrChildren, children);
@@ -8556,7 +8732,7 @@ function isMemoSame(cached, memo) {
8556
8732
  }
8557
8733
  //#endregion
8558
8734
  //#region packages/runtime-core/src/index.ts
8559
- const version = "3.6.0-rc.4";
8735
+ const version = "3.6.0-rc.6";
8560
8736
  const warn = warn$1;
8561
8737
  /**
8562
8738
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -8584,7 +8760,7 @@ const DeprecationTypes = null;
8584
8760
  let policy = void 0;
8585
8761
  const tt = typeof window !== "undefined" && window.trustedTypes;
8586
8762
  if (tt) try {
8587
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
8763
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
8588
8764
  } catch (e) {
8589
8765
  warn(`Error creating trusted types policy: ${e}`);
8590
8766
  }
@@ -8592,7 +8768,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
8592
8768
  const svgNS = "http://www.w3.org/2000/svg";
8593
8769
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
8594
8770
  const doc = typeof document !== "undefined" ? document : null;
8595
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
8771
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
8596
8772
  const nodeOps = {
8597
8773
  insert: (child, parent, anchor) => {
8598
8774
  parent.insertBefore(child, anchor || null);
@@ -8666,7 +8842,7 @@ const DOMTransitionPropsValidators = {
8666
8842
  leaveActiveClass: String,
8667
8843
  leaveToClass: String
8668
8844
  };
8669
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8845
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8670
8846
  /**
8671
8847
  * Wrap logic that attaches extra properties to Transition in a function
8672
8848
  * so that it can be annotated as pure
@@ -8680,7 +8856,7 @@ const decorate$1 = (t) => {
8680
8856
  * DOM Transition is a higher-order-component based on the platform-agnostic
8681
8857
  * base Transition component, with DOM-specific logic.
8682
8858
  */
8683
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8859
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8684
8860
  /**
8685
8861
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
8686
8862
  * with custom HOCs.
@@ -8902,14 +9078,15 @@ const vShow = {
8902
9078
  },
8903
9079
  updated(el, { value, oldValue }, { transition }) {
8904
9080
  if (!value === !oldValue) return;
8905
- if (transition) if (value) {
8906
- transition.beforeEnter(el);
8907
- setDisplay(el, true);
8908
- transition.enter(el);
8909
- } else transition.leave(el, () => {
8910
- setDisplay(el, false);
8911
- });
8912
- else setDisplay(el, value);
9081
+ if (transition) {
9082
+ if (value) {
9083
+ transition.beforeEnter(el);
9084
+ setDisplay(el, true);
9085
+ transition.enter(el);
9086
+ } else transition.leave(el, () => {
9087
+ setDisplay(el, false);
9088
+ });
9089
+ } else setDisplay(el, value);
8913
9090
  },
8914
9091
  beforeUnmount(el, { value }) {
8915
9092
  setDisplay(el, value);
@@ -9011,11 +9188,13 @@ function patchStyle(el, prev, next) {
9011
9188
  const isCssString = isString(next);
9012
9189
  let hasControlledDisplay = false;
9013
9190
  if (next && !isCssString) {
9014
- if (prev) if (!isString(prev)) {
9015
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
9016
- } else for (const prevStyle of prev.split(";")) {
9017
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
9018
- if (next[key] == null) setStyle(style, key, "");
9191
+ if (prev) {
9192
+ if (!isString(prev)) {
9193
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
9194
+ } else for (const prevStyle of prev.split(";")) {
9195
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
9196
+ if (next[key] == null) setStyle(style, key, "");
9197
+ }
9019
9198
  }
9020
9199
  for (const key in next) {
9021
9200
  if (key === "display") hasControlledDisplay = true;
@@ -9044,8 +9223,10 @@ function setStyle(style, name, rawVal) {
9044
9223
  else {
9045
9224
  const val = rawVal == null ? "" : String(rawVal);
9046
9225
  if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
9047
- if (name.startsWith("--")) style.setProperty(name, val);
9048
- else {
9226
+ if (name.startsWith("--")) {
9227
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
9228
+ else style.setProperty(name, val);
9229
+ } else {
9049
9230
  const prefixed = autoPrefix(style, name);
9050
9231
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
9051
9232
  else style[prefixed] = val;
@@ -9082,9 +9263,10 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
9082
9263
  //#region packages/runtime-dom/src/modules/attrs.ts
9083
9264
  const xlinkNS = "http://www.w3.org/1999/xlink";
9084
9265
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
9085
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
9086
- else el.setAttributeNS(xlinkNS, key, value);
9087
- else if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
9266
+ if (isSVG && key.startsWith("xlink:")) {
9267
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
9268
+ else el.setAttributeNS(xlinkNS, key, value);
9269
+ } else if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
9088
9270
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
9089
9271
  }
9090
9272
  //#endregion
@@ -9157,7 +9339,7 @@ function parseEventName(name) {
9157
9339
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
9158
9340
  }
9159
9341
  let cachedNow = 0;
9160
- const p = /* @__PURE__ */ Promise.resolve();
9342
+ const p = /*@__PURE__*/ Promise.resolve();
9161
9343
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
9162
9344
  function createInvoker(initialValue, instance) {
9163
9345
  const invoker = (e) => {
@@ -9225,7 +9407,7 @@ function shouldSetAsPropForVueCE(el, key) {
9225
9407
  //#endregion
9226
9408
  //#region packages/runtime-dom/src/apiCustomElement.ts
9227
9409
  const REMOVAL = {};
9228
- /* @__NO_SIDE_EFFECTS__ */
9410
+ /*@__NO_SIDE_EFFECTS__*/
9229
9411
  function defineCustomElement(options, extraOptions, _createApp) {
9230
9412
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
9231
9413
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -9274,12 +9456,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
9274
9456
  this._parent = parent;
9275
9457
  break;
9276
9458
  }
9277
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
9278
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
9279
- this._pendingResolve = void 0;
9280
- if (this.isConnected) return this._resolveDef();
9281
- });
9282
- else this._resolveDef();
9459
+ if (!this._instance) {
9460
+ if (this._resolved) this._mountComponent(this._def);
9461
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
9462
+ this._pendingResolve = void 0;
9463
+ if (this.isConnected) return this._resolveDef();
9464
+ });
9465
+ else this._resolveDef();
9466
+ }
9283
9467
  }
9284
9468
  disconnectedCallback() {
9285
9469
  this._connected = false;
@@ -9677,7 +9861,7 @@ const decorate = (t) => {
9677
9861
  };
9678
9862
  const TransitionGroup = /* @__PURE__ */ decorate({
9679
9863
  name: "TransitionGroup",
9680
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
9864
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
9681
9865
  tag: String,
9682
9866
  moveClass: String
9683
9867
  }),
@@ -9958,19 +10142,39 @@ const vModelSelectInit = (el, value, number, set) => {
9958
10142
  el._modelValue = value;
9959
10143
  addEventListener(el, "change", () => {
9960
10144
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
9961
- (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
9962
- el._assigning = true;
9963
- nextTick(() => {
9964
- el._assigning = false;
9965
- });
10145
+ const multiple = el.multiple;
10146
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
10147
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
10148
+ try {
10149
+ (set || el[assignKey])(assignedValue);
10150
+ } finally {
10151
+ nextTick(() => {
10152
+ if (el._pendingValue === pending) el._pendingValue = void 0;
10153
+ });
10154
+ }
9966
10155
  });
9967
10156
  };
10157
+ function isSameSelectValue(value, assignedValue, multiple) {
10158
+ if (!multiple) return looseEqual(value, assignedValue);
10159
+ if (isArray(value)) return looseEqual(value, assignedValue);
10160
+ if (isSet(value)) {
10161
+ if (value.size !== assignedValue.length) return false;
10162
+ for (const item of assignedValue) if (!value.has(item)) return false;
10163
+ return true;
10164
+ }
10165
+ return false;
10166
+ }
9968
10167
  /**
9969
10168
  * @internal
9970
10169
  */
9971
10170
  const vModelSetSelected = (el, value) => {
9972
10171
  el._modelValue = value;
9973
- if (el._assigning) return;
10172
+ const pending = el._pendingValue;
10173
+ el._pendingValue = void 0;
10174
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
10175
+ setSelected(el, value);
10176
+ };
10177
+ function setSelected(el, value) {
9974
10178
  const isMultiple = el.multiple;
9975
10179
  const isArrayValue = isArray(value);
9976
10180
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -9980,18 +10184,19 @@ const vModelSetSelected = (el, value) => {
9980
10184
  for (let i = 0, l = el.options.length; i < l; i++) {
9981
10185
  const option = el.options[i];
9982
10186
  const optionValue = getValue(option);
9983
- if (isMultiple) if (isArrayValue) {
9984
- const optionType = typeof optionValue;
9985
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
9986
- else option.selected = looseIndexOf(value, optionValue) > -1;
9987
- } else option.selected = value.has(optionValue);
9988
- else if (looseEqual(getValue(option), value)) {
10187
+ if (isMultiple) {
10188
+ if (isArrayValue) {
10189
+ const optionType = typeof optionValue;
10190
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
10191
+ else option.selected = looseIndexOf(value, optionValue) > -1;
10192
+ } else option.selected = value.has(optionValue);
10193
+ } else if (looseEqual(getValue(option), value)) {
9989
10194
  if (el.selectedIndex !== i) el.selectedIndex = i;
9990
10195
  return;
9991
10196
  }
9992
10197
  }
9993
10198
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
9994
- };
10199
+ }
9995
10200
  /**
9996
10201
  * @internal retrieve raw value set via :value bindings
9997
10202
  */
@@ -10093,7 +10298,7 @@ const withKeys = (fn, modifiers) => {
10093
10298
  };
10094
10299
  //#endregion
10095
10300
  //#region packages/runtime-dom/src/index.ts
10096
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
10301
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
10097
10302
  let renderer;
10098
10303
  let enabledHydration = false;
10099
10304
  function ensureRenderer() {