@vue/compat 3.4.0-alpha.3 → 3.4.0-beta.1

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.
@@ -8,8 +8,8 @@ const EMPTY_ARR = !!(process.env.NODE_ENV !== "production") ? Object.freeze([])
8
8
  const NOOP = () => {
9
9
  };
10
10
  const NO = () => false;
11
- const onRE = /^on[^a-z]/;
12
- const isOn = (key) => onRE.test(key);
11
+ const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter
12
+ (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
13
13
  const isModelListener = (key) => key.startsWith("onUpdate:");
14
14
  const extend = Object.assign;
15
15
  const remove = (arr, el) => {
@@ -94,7 +94,7 @@ const getGlobalThis = () => {
94
94
  return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
95
95
  };
96
96
 
97
- const GLOBALS_ALLOWED = "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";
97
+ const GLOBALS_ALLOWED = "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";
98
98
  const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
99
99
 
100
100
  function normalizeStyle(value) {
@@ -127,6 +127,20 @@ function parseStringStyle(cssText) {
127
127
  });
128
128
  return ret;
129
129
  }
130
+ function stringifyStyle(styles) {
131
+ let ret = "";
132
+ if (!styles || isString(styles)) {
133
+ return ret;
134
+ }
135
+ for (const key in styles) {
136
+ const value = styles[key];
137
+ const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);
138
+ if (isString(value) || typeof value === "number") {
139
+ ret += `${normalizedKey}:${value};`;
140
+ }
141
+ }
142
+ return ret;
143
+ }
130
144
  function normalizeClass(value) {
131
145
  let res = "";
132
146
  if (isString(value)) {
@@ -162,14 +176,25 @@ function normalizeProps(props) {
162
176
 
163
177
  const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot";
164
178
  const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view";
179
+ const MATH_TAGS = "math,maction,annotation,annotation-xml,menclose,merror,mfenced,mfrac,mi,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,semantics,mspace,msqrt,mstyle,msub,msup,msubsup,mtable,mtd,mtext,mtr,munder,munderover";
165
180
  const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
166
181
  const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
182
+ const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
167
183
 
168
184
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
169
185
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
186
+ const isBooleanAttr = /* @__PURE__ */ makeMap(
187
+ specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
188
+ );
170
189
  function includeBooleanAttr(value) {
171
190
  return !!value || value === "";
172
191
  }
192
+ const isKnownHtmlAttr = /* @__PURE__ */ makeMap(
193
+ `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`
194
+ );
195
+ const isKnownSvgAttr = /* @__PURE__ */ makeMap(
196
+ `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`
197
+ );
173
198
 
174
199
  function looseCompareArrays(a, b) {
175
200
  if (a.length !== b.length)
@@ -231,20 +256,29 @@ const replacer = (_key, val) => {
231
256
  return replacer(_key, val.value);
232
257
  } else if (isMap(val)) {
233
258
  return {
234
- [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {
235
- entries[`${key} =>`] = val2;
236
- return entries;
237
- }, {})
259
+ [`Map(${val.size})`]: [...val.entries()].reduce(
260
+ (entries, [key, val2], i) => {
261
+ entries[stringifySymbol(key, i) + " =>"] = val2;
262
+ return entries;
263
+ },
264
+ {}
265
+ )
238
266
  };
239
267
  } else if (isSet(val)) {
240
268
  return {
241
- [`Set(${val.size})`]: [...val.values()]
269
+ [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))
242
270
  };
271
+ } else if (isSymbol(val)) {
272
+ return stringifySymbol(val);
243
273
  } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {
244
274
  return String(val);
245
275
  }
246
276
  return val;
247
277
  };
278
+ const stringifySymbol = (v, i = "") => {
279
+ var _a;
280
+ return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
281
+ };
248
282
 
249
283
  function warn$1(msg, ...args) {
250
284
  console.warn(`[Vue warn] ${msg}`, ...args);
@@ -693,8 +727,13 @@ class BaseReactiveHandler {
693
727
  return isReadonly2;
694
728
  } else if (key === "__v_isShallow") {
695
729
  return shallow;
696
- } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {
697
- return target;
730
+ } else if (key === "__v_raw") {
731
+ if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
732
+ // this means the reciever is a user proxy of the reactive proxy
733
+ Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
734
+ return target;
735
+ }
736
+ return;
698
737
  }
699
738
  const targetIsArray = isArray(target);
700
739
  if (!isReadonly2) {
@@ -730,17 +769,19 @@ class MutableReactiveHandler extends BaseReactiveHandler {
730
769
  }
731
770
  set(target, key, value, receiver) {
732
771
  let oldValue = target[key];
733
- if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
734
- return false;
735
- }
736
772
  if (!this._shallow) {
773
+ const isOldValueReadonly = isReadonly(oldValue);
737
774
  if (!isShallow(value) && !isReadonly(value)) {
738
775
  oldValue = toRaw(oldValue);
739
776
  value = toRaw(value);
740
777
  }
741
778
  if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
742
- oldValue.value = value;
743
- return true;
779
+ if (isOldValueReadonly) {
780
+ return false;
781
+ } else {
782
+ oldValue.value = value;
783
+ return true;
784
+ }
744
785
  }
745
786
  }
746
787
  const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);
@@ -1433,6 +1474,18 @@ function propertyToRef(source, key, defaultValue) {
1433
1474
  return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
1434
1475
  }
1435
1476
 
1477
+ const TrackOpTypes = {
1478
+ "GET": "get",
1479
+ "HAS": "has",
1480
+ "ITERATE": "iterate"
1481
+ };
1482
+ const TriggerOpTypes = {
1483
+ "SET": "set",
1484
+ "ADD": "add",
1485
+ "DELETE": "delete",
1486
+ "CLEAR": "clear"
1487
+ };
1488
+
1436
1489
  const stack = [];
1437
1490
  function pushWarningContext(vnode) {
1438
1491
  stack.push(vnode);
@@ -1551,6 +1604,38 @@ function assertNumber(val, type) {
1551
1604
  }
1552
1605
  }
1553
1606
 
1607
+ const ErrorCodes = {
1608
+ "SETUP_FUNCTION": 0,
1609
+ "0": "SETUP_FUNCTION",
1610
+ "RENDER_FUNCTION": 1,
1611
+ "1": "RENDER_FUNCTION",
1612
+ "WATCH_GETTER": 2,
1613
+ "2": "WATCH_GETTER",
1614
+ "WATCH_CALLBACK": 3,
1615
+ "3": "WATCH_CALLBACK",
1616
+ "WATCH_CLEANUP": 4,
1617
+ "4": "WATCH_CLEANUP",
1618
+ "NATIVE_EVENT_HANDLER": 5,
1619
+ "5": "NATIVE_EVENT_HANDLER",
1620
+ "COMPONENT_EVENT_HANDLER": 6,
1621
+ "6": "COMPONENT_EVENT_HANDLER",
1622
+ "VNODE_HOOK": 7,
1623
+ "7": "VNODE_HOOK",
1624
+ "DIRECTIVE_HOOK": 8,
1625
+ "8": "DIRECTIVE_HOOK",
1626
+ "TRANSITION_HOOK": 9,
1627
+ "9": "TRANSITION_HOOK",
1628
+ "APP_ERROR_HANDLER": 10,
1629
+ "10": "APP_ERROR_HANDLER",
1630
+ "APP_WARN_HANDLER": 11,
1631
+ "11": "APP_WARN_HANDLER",
1632
+ "FUNCTION_REF": 12,
1633
+ "12": "FUNCTION_REF",
1634
+ "ASYNC_COMPONENT_LOADER": 13,
1635
+ "13": "ASYNC_COMPONENT_LOADER",
1636
+ "SCHEDULER": 14,
1637
+ "14": "SCHEDULER"
1638
+ };
1554
1639
  const ErrorTypeStrings$1 = {
1555
1640
  ["sp"]: "serverPrefetch hook",
1556
1641
  ["bc"]: "beforeCreate hook",
@@ -1724,13 +1809,16 @@ function queuePostFlushCb(cb) {
1724
1809
  }
1725
1810
  queueFlush();
1726
1811
  }
1727
- function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) {
1812
+ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
1728
1813
  if (!!(process.env.NODE_ENV !== "production")) {
1729
1814
  seen = seen || /* @__PURE__ */ new Map();
1730
1815
  }
1731
1816
  for (; i < queue.length; i++) {
1732
1817
  const cb = queue[i];
1733
1818
  if (cb && cb.pre) {
1819
+ if (instance && cb.id !== instance.uid) {
1820
+ continue;
1821
+ }
1734
1822
  if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) {
1735
1823
  continue;
1736
1824
  }
@@ -2035,6 +2123,50 @@ function devtoolsComponentEmit(component, event, params) {
2035
2123
  );
2036
2124
  }
2037
2125
 
2126
+ const DeprecationTypes$1 = {
2127
+ "GLOBAL_MOUNT": "GLOBAL_MOUNT",
2128
+ "GLOBAL_MOUNT_CONTAINER": "GLOBAL_MOUNT_CONTAINER",
2129
+ "GLOBAL_EXTEND": "GLOBAL_EXTEND",
2130
+ "GLOBAL_PROTOTYPE": "GLOBAL_PROTOTYPE",
2131
+ "GLOBAL_SET": "GLOBAL_SET",
2132
+ "GLOBAL_DELETE": "GLOBAL_DELETE",
2133
+ "GLOBAL_OBSERVABLE": "GLOBAL_OBSERVABLE",
2134
+ "GLOBAL_PRIVATE_UTIL": "GLOBAL_PRIVATE_UTIL",
2135
+ "CONFIG_SILENT": "CONFIG_SILENT",
2136
+ "CONFIG_DEVTOOLS": "CONFIG_DEVTOOLS",
2137
+ "CONFIG_KEY_CODES": "CONFIG_KEY_CODES",
2138
+ "CONFIG_PRODUCTION_TIP": "CONFIG_PRODUCTION_TIP",
2139
+ "CONFIG_IGNORED_ELEMENTS": "CONFIG_IGNORED_ELEMENTS",
2140
+ "CONFIG_WHITESPACE": "CONFIG_WHITESPACE",
2141
+ "CONFIG_OPTION_MERGE_STRATS": "CONFIG_OPTION_MERGE_STRATS",
2142
+ "INSTANCE_SET": "INSTANCE_SET",
2143
+ "INSTANCE_DELETE": "INSTANCE_DELETE",
2144
+ "INSTANCE_DESTROY": "INSTANCE_DESTROY",
2145
+ "INSTANCE_EVENT_EMITTER": "INSTANCE_EVENT_EMITTER",
2146
+ "INSTANCE_EVENT_HOOKS": "INSTANCE_EVENT_HOOKS",
2147
+ "INSTANCE_CHILDREN": "INSTANCE_CHILDREN",
2148
+ "INSTANCE_LISTENERS": "INSTANCE_LISTENERS",
2149
+ "INSTANCE_SCOPED_SLOTS": "INSTANCE_SCOPED_SLOTS",
2150
+ "INSTANCE_ATTRS_CLASS_STYLE": "INSTANCE_ATTRS_CLASS_STYLE",
2151
+ "OPTIONS_DATA_FN": "OPTIONS_DATA_FN",
2152
+ "OPTIONS_DATA_MERGE": "OPTIONS_DATA_MERGE",
2153
+ "OPTIONS_BEFORE_DESTROY": "OPTIONS_BEFORE_DESTROY",
2154
+ "OPTIONS_DESTROYED": "OPTIONS_DESTROYED",
2155
+ "WATCH_ARRAY": "WATCH_ARRAY",
2156
+ "PROPS_DEFAULT_THIS": "PROPS_DEFAULT_THIS",
2157
+ "V_ON_KEYCODE_MODIFIER": "V_ON_KEYCODE_MODIFIER",
2158
+ "CUSTOM_DIR": "CUSTOM_DIR",
2159
+ "ATTR_FALSE_VALUE": "ATTR_FALSE_VALUE",
2160
+ "ATTR_ENUMERATED_COERCION": "ATTR_ENUMERATED_COERCION",
2161
+ "TRANSITION_CLASSES": "TRANSITION_CLASSES",
2162
+ "TRANSITION_GROUP_ROOT": "TRANSITION_GROUP_ROOT",
2163
+ "COMPONENT_ASYNC": "COMPONENT_ASYNC",
2164
+ "COMPONENT_FUNCTIONAL": "COMPONENT_FUNCTIONAL",
2165
+ "COMPONENT_V_MODEL": "COMPONENT_V_MODEL",
2166
+ "RENDER_FUNCTION": "RENDER_FUNCTION",
2167
+ "FILTERS": "FILTERS",
2168
+ "PRIVATE_APIS": "PRIVATE_APIS"
2169
+ };
2038
2170
  const deprecationData = {
2039
2171
  ["GLOBAL_MOUNT"]: {
2040
2172
  message: `The global app bootstrapping API has changed: vm.$mount() and the "el" option have been removed. Use createApp(RootComponent).mount() instead.`,
@@ -2966,9 +3098,17 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
2966
3098
  return false;
2967
3099
  }
2968
3100
  function updateHOCHostEl({ vnode, parent }, el) {
2969
- while (parent && parent.subTree === vnode) {
2970
- (vnode = parent.vnode).el = el;
2971
- parent = parent.parent;
3101
+ while (parent) {
3102
+ const root = parent.subTree;
3103
+ if (root.suspense && root.suspense.activeBranch === vnode) {
3104
+ root.el = vnode.el;
3105
+ }
3106
+ if (root === vnode) {
3107
+ (vnode = parent.vnode).el = el;
3108
+ parent = parent.parent;
3109
+ } else {
3110
+ break;
3111
+ }
2972
3112
  }
2973
3113
  }
2974
3114
 
@@ -3032,6 +3172,7 @@ function resolve(registry, name) {
3032
3172
  }
3033
3173
 
3034
3174
  const isSuspense = (type) => type.__isSuspense;
3175
+ let suspenseId = 0;
3035
3176
  const SuspenseImpl = {
3036
3177
  name: "Suspense",
3037
3178
  // In order to make Suspense tree-shakable, we need to avoid importing it
@@ -3039,7 +3180,7 @@ const SuspenseImpl = {
3039
3180
  // on a vnode's type and calls the `process` method, passing in renderer
3040
3181
  // internals.
3041
3182
  __isSuspense: true,
3042
- process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
3183
+ process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
3043
3184
  if (n1 == null) {
3044
3185
  mountSuspense(
3045
3186
  n2,
@@ -3047,7 +3188,7 @@ const SuspenseImpl = {
3047
3188
  anchor,
3048
3189
  parentComponent,
3049
3190
  parentSuspense,
3050
- isSVG,
3191
+ namespace,
3051
3192
  slotScopeIds,
3052
3193
  optimized,
3053
3194
  rendererInternals
@@ -3059,7 +3200,7 @@ const SuspenseImpl = {
3059
3200
  container,
3060
3201
  anchor,
3061
3202
  parentComponent,
3062
- isSVG,
3203
+ namespace,
3063
3204
  slotScopeIds,
3064
3205
  optimized,
3065
3206
  rendererInternals
@@ -3077,7 +3218,7 @@ function triggerEvent(vnode, name) {
3077
3218
  eventListener();
3078
3219
  }
3079
3220
  }
3080
- function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
3221
+ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
3081
3222
  const {
3082
3223
  p: patch,
3083
3224
  o: { createElement }
@@ -3090,7 +3231,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
3090
3231
  container,
3091
3232
  hiddenContainer,
3092
3233
  anchor,
3093
- isSVG,
3234
+ namespace,
3094
3235
  slotScopeIds,
3095
3236
  optimized,
3096
3237
  rendererInternals
@@ -3102,7 +3243,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
3102
3243
  null,
3103
3244
  parentComponent,
3104
3245
  suspense,
3105
- isSVG,
3246
+ namespace,
3106
3247
  slotScopeIds
3107
3248
  );
3108
3249
  if (suspense.deps > 0) {
@@ -3116,7 +3257,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
3116
3257
  parentComponent,
3117
3258
  null,
3118
3259
  // fallback tree will not have suspense context
3119
- isSVG,
3260
+ namespace,
3120
3261
  slotScopeIds
3121
3262
  );
3122
3263
  setActiveBranch(suspense, vnode.ssFallback);
@@ -3124,7 +3265,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
3124
3265
  suspense.resolve(false, true);
3125
3266
  }
3126
3267
  }
3127
- function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
3268
+ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
3128
3269
  const suspense = n2.suspense = n1.suspense;
3129
3270
  suspense.vnode = n2;
3130
3271
  n2.el = n1.el;
@@ -3141,29 +3282,31 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3141
3282
  null,
3142
3283
  parentComponent,
3143
3284
  suspense,
3144
- isSVG,
3285
+ namespace,
3145
3286
  slotScopeIds,
3146
3287
  optimized
3147
3288
  );
3148
3289
  if (suspense.deps <= 0) {
3149
3290
  suspense.resolve();
3150
3291
  } else if (isInFallback) {
3151
- patch(
3152
- activeBranch,
3153
- newFallback,
3154
- container,
3155
- anchor,
3156
- parentComponent,
3157
- null,
3158
- // fallback tree will not have suspense context
3159
- isSVG,
3160
- slotScopeIds,
3161
- optimized
3162
- );
3163
- setActiveBranch(suspense, newFallback);
3292
+ if (!isHydrating) {
3293
+ patch(
3294
+ activeBranch,
3295
+ newFallback,
3296
+ container,
3297
+ anchor,
3298
+ parentComponent,
3299
+ null,
3300
+ // fallback tree will not have suspense context
3301
+ namespace,
3302
+ slotScopeIds,
3303
+ optimized
3304
+ );
3305
+ setActiveBranch(suspense, newFallback);
3306
+ }
3164
3307
  }
3165
3308
  } else {
3166
- suspense.pendingId++;
3309
+ suspense.pendingId = suspenseId++;
3167
3310
  if (isHydrating) {
3168
3311
  suspense.isHydrating = false;
3169
3312
  suspense.activeBranch = pendingBranch;
@@ -3181,7 +3324,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3181
3324
  null,
3182
3325
  parentComponent,
3183
3326
  suspense,
3184
- isSVG,
3327
+ namespace,
3185
3328
  slotScopeIds,
3186
3329
  optimized
3187
3330
  );
@@ -3196,7 +3339,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3196
3339
  parentComponent,
3197
3340
  null,
3198
3341
  // fallback tree will not have suspense context
3199
- isSVG,
3342
+ namespace,
3200
3343
  slotScopeIds,
3201
3344
  optimized
3202
3345
  );
@@ -3210,7 +3353,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3210
3353
  anchor,
3211
3354
  parentComponent,
3212
3355
  suspense,
3213
- isSVG,
3356
+ namespace,
3214
3357
  slotScopeIds,
3215
3358
  optimized
3216
3359
  );
@@ -3223,7 +3366,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3223
3366
  null,
3224
3367
  parentComponent,
3225
3368
  suspense,
3226
- isSVG,
3369
+ namespace,
3227
3370
  slotScopeIds,
3228
3371
  optimized
3229
3372
  );
@@ -3241,7 +3384,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3241
3384
  anchor,
3242
3385
  parentComponent,
3243
3386
  suspense,
3244
- isSVG,
3387
+ namespace,
3245
3388
  slotScopeIds,
3246
3389
  optimized
3247
3390
  );
@@ -3249,7 +3392,11 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3249
3392
  } else {
3250
3393
  triggerEvent(n2, "onPending");
3251
3394
  suspense.pendingBranch = newBranch;
3252
- suspense.pendingId++;
3395
+ if (newBranch.shapeFlag & 512) {
3396
+ suspense.pendingId = newBranch.component.suspenseId;
3397
+ } else {
3398
+ suspense.pendingId = suspenseId++;
3399
+ }
3253
3400
  patch(
3254
3401
  null,
3255
3402
  newBranch,
@@ -3257,7 +3404,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3257
3404
  null,
3258
3405
  parentComponent,
3259
3406
  suspense,
3260
- isSVG,
3407
+ namespace,
3261
3408
  slotScopeIds,
3262
3409
  optimized
3263
3410
  );
@@ -3279,7 +3426,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
3279
3426
  }
3280
3427
  }
3281
3428
  let hasWarned = false;
3282
- function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
3429
+ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
3283
3430
  if (!!(process.env.NODE_ENV !== "production") && true && !hasWarned) {
3284
3431
  hasWarned = true;
3285
3432
  console[console.info ? "info" : "log"](
@@ -3309,7 +3456,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
3309
3456
  vnode,
3310
3457
  parent: parentSuspense,
3311
3458
  parentComponent,
3312
- isSVG,
3459
+ namespace,
3313
3460
  container,
3314
3461
  hiddenContainer,
3315
3462
  anchor,
@@ -3318,7 +3465,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
3318
3465
  timeout: typeof timeout === "number" ? timeout : -1,
3319
3466
  activeBranch: null,
3320
3467
  pendingBranch: null,
3321
- isInFallback: true,
3468
+ isInFallback: !isHydrating,
3322
3469
  isHydrating,
3323
3470
  isUnmounted: false,
3324
3471
  effects: [],
@@ -3352,7 +3499,12 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
3352
3499
  if (delayEnter) {
3353
3500
  activeBranch.transition.afterLeave = () => {
3354
3501
  if (pendingId === suspense.pendingId) {
3355
- move(pendingBranch, container2, anchor2, 0);
3502
+ move(
3503
+ pendingBranch,
3504
+ container2,
3505
+ next(activeBranch),
3506
+ 0
3507
+ );
3356
3508
  queuePostFlushCb(effects);
3357
3509
  }
3358
3510
  };
@@ -3397,7 +3549,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
3397
3549
  if (!suspense.pendingBranch) {
3398
3550
  return;
3399
3551
  }
3400
- const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;
3552
+ const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;
3401
3553
  triggerEvent(vnode2, "onFallback");
3402
3554
  const anchor2 = next(activeBranch);
3403
3555
  const mountFallback = () => {
@@ -3412,7 +3564,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
3412
3564
  parentComponent2,
3413
3565
  null,
3414
3566
  // fallback tree will not have suspense context
3415
- isSVG2,
3567
+ namespace2,
3416
3568
  slotScopeIds,
3417
3569
  optimized
3418
3570
  );
@@ -3475,7 +3627,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
3475
3627
  // consider the comment placeholder case.
3476
3628
  hydratedEl ? null : next(instance.subTree),
3477
3629
  suspense,
3478
- isSVG,
3630
+ namespace,
3479
3631
  optimized
3480
3632
  );
3481
3633
  if (placeholder) {
@@ -3512,7 +3664,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
3512
3664
  };
3513
3665
  return suspense;
3514
3666
  }
3515
- function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {
3667
+ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {
3516
3668
  const suspense = vnode.suspense = createSuspenseBoundary(
3517
3669
  vnode,
3518
3670
  parentSuspense,
@@ -3520,7 +3672,7 @@ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, sl
3520
3672
  node.parentNode,
3521
3673
  document.createElement("div"),
3522
3674
  null,
3523
- isSVG,
3675
+ namespace,
3524
3676
  slotScopeIds,
3525
3677
  optimized,
3526
3678
  rendererInternals,
@@ -4491,7 +4643,7 @@ const KeepAliveImpl = {
4491
4643
  }
4492
4644
  } = sharedContext;
4493
4645
  const storageContainer = createElement("div");
4494
- sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {
4646
+ sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {
4495
4647
  const instance2 = vnode.component;
4496
4648
  move(vnode, container, anchor, 0, parentSuspense);
4497
4649
  patch(
@@ -4501,7 +4653,7 @@ const KeepAliveImpl = {
4501
4653
  anchor,
4502
4654
  instance2,
4503
4655
  parentSuspense,
4504
- isSVG,
4656
+ namespace,
4505
4657
  vnode.slotScopeIds,
4506
4658
  optimized
4507
4659
  );
@@ -5689,7 +5841,7 @@ function useSlots() {
5689
5841
  function useAttrs() {
5690
5842
  return getContext().attrs;
5691
5843
  }
5692
- function useModel(props, name, options) {
5844
+ function useModel(props, name) {
5693
5845
  const i = getCurrentInstance();
5694
5846
  if (!!(process.env.NODE_ENV !== "production") && !i) {
5695
5847
  warn(`useModel() called without active instance.`);
@@ -5699,29 +5851,24 @@ function useModel(props, name, options) {
5699
5851
  warn(`useModel() called with prop "${name}" which is not declared.`);
5700
5852
  return ref();
5701
5853
  }
5702
- if (options && options.local) {
5703
- const proxy = ref(props[name]);
5704
- watch(
5705
- () => props[name],
5706
- (v) => proxy.value = v
5707
- );
5708
- watch(proxy, (value) => {
5709
- if (value !== props[name]) {
5710
- i.emit(`update:${name}`, value);
5711
- }
5712
- });
5713
- return proxy;
5714
- } else {
5715
- return {
5716
- __v_isRef: true,
5717
- get value() {
5718
- return props[name];
5719
- },
5720
- set value(value) {
5721
- i.emit(`update:${name}`, value);
5854
+ let localValue;
5855
+ watchSyncEffect(() => {
5856
+ localValue = props[name];
5857
+ });
5858
+ return customRef((track, trigger) => ({
5859
+ get() {
5860
+ track();
5861
+ return localValue;
5862
+ },
5863
+ set(value) {
5864
+ const rawProps = i.vnode.props;
5865
+ if (!(rawProps && name in rawProps) && hasChanged(value, localValue)) {
5866
+ localValue = value;
5867
+ trigger();
5722
5868
  }
5723
- };
5724
- }
5869
+ i.emit(`update:${name}`, value);
5870
+ }
5871
+ }));
5725
5872
  }
5726
5873
  function getContext() {
5727
5874
  const i = getCurrentInstance();
@@ -6297,7 +6444,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6297
6444
  return vm;
6298
6445
  }
6299
6446
  }
6300
- Vue.version = `2.6.14-compat:${"3.4.0-alpha.3"}`;
6447
+ Vue.version = `2.6.14-compat:${"3.4.0-beta.1"}`;
6301
6448
  Vue.config = singletonApp.config;
6302
6449
  Vue.use = (p, ...options) => {
6303
6450
  if (p && isFunction(p.install)) {
@@ -6543,12 +6690,16 @@ function installCompatMount(app, context, render) {
6543
6690
  } else {
6544
6691
  container = selectorOrEl || document.createElement("div");
6545
6692
  }
6546
- const isSVG = container instanceof SVGElement;
6693
+ let namespace;
6694
+ if (container instanceof SVGElement)
6695
+ namespace = "svg";
6696
+ else if (typeof MathMLElement === "function" && container instanceof MathMLElement)
6697
+ namespace = "mathml";
6547
6698
  if (!!(process.env.NODE_ENV !== "production")) {
6548
6699
  context.reload = () => {
6549
6700
  const cloned = cloneVNode(vnode);
6550
6701
  cloned.component = null;
6551
- render(cloned, container, isSVG);
6702
+ render(cloned, container, namespace);
6552
6703
  };
6553
6704
  }
6554
6705
  if (hasNoRender && instance.render === emptyRender) {
@@ -6571,7 +6722,7 @@ function installCompatMount(app, context, render) {
6571
6722
  );
6572
6723
  }
6573
6724
  container.innerHTML = "";
6574
- render(vnode, container, isSVG);
6725
+ render(vnode, container, namespace);
6575
6726
  if (container instanceof Element) {
6576
6727
  container.removeAttribute("v-cloak");
6577
6728
  container.setAttribute("data-v-app", "");
@@ -6699,18 +6850,6 @@ function createAppAPI(render, hydrate) {
6699
6850
  rootProps = null;
6700
6851
  }
6701
6852
  const context = createAppContext();
6702
- if (!!(process.env.NODE_ENV !== "production")) {
6703
- Object.defineProperty(context.config, "unwrapInjectedRef", {
6704
- get() {
6705
- return true;
6706
- },
6707
- set() {
6708
- warn(
6709
- `app.config.unwrapInjectedRef has been deprecated. 3.3 now always unwraps injected refs in Options API.`
6710
- );
6711
- }
6712
- });
6713
- }
6714
6853
  const installedPlugins = /* @__PURE__ */ new WeakSet();
6715
6854
  let isMounted = false;
6716
6855
  const app = context.app = {
@@ -6787,7 +6926,7 @@ function createAppAPI(render, hydrate) {
6787
6926
  context.directives[name] = directive;
6788
6927
  return app;
6789
6928
  },
6790
- mount(rootContainer, isHydrate, isSVG) {
6929
+ mount(rootContainer, isHydrate, namespace) {
6791
6930
  if (!isMounted) {
6792
6931
  if (!!(process.env.NODE_ENV !== "production") && rootContainer.__vue_app__) {
6793
6932
  warn(
@@ -6797,15 +6936,24 @@ function createAppAPI(render, hydrate) {
6797
6936
  }
6798
6937
  const vnode = createVNode(rootComponent, rootProps);
6799
6938
  vnode.appContext = context;
6939
+ if (namespace === true) {
6940
+ namespace = "svg";
6941
+ } else if (namespace === false) {
6942
+ namespace = void 0;
6943
+ }
6800
6944
  if (!!(process.env.NODE_ENV !== "production")) {
6801
6945
  context.reload = () => {
6802
- render(cloneVNode(vnode), rootContainer, isSVG);
6946
+ render(
6947
+ cloneVNode(vnode),
6948
+ rootContainer,
6949
+ namespace
6950
+ );
6803
6951
  };
6804
6952
  }
6805
6953
  if (isHydrate && hydrate) {
6806
6954
  hydrate(vnode, rootContainer);
6807
6955
  } else {
6808
- render(vnode, rootContainer, isSVG);
6956
+ render(vnode, rootContainer, namespace);
6809
6957
  }
6810
6958
  isMounted = true;
6811
6959
  app._container = rootContainer;
@@ -7270,11 +7418,12 @@ function validateProps(rawProps, props, instance) {
7270
7418
  key,
7271
7419
  resolvedValues[key],
7272
7420
  opt,
7421
+ !!(process.env.NODE_ENV !== "production") ? shallowReadonly(resolvedValues) : resolvedValues,
7273
7422
  !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))
7274
7423
  );
7275
7424
  }
7276
7425
  }
7277
- function validateProp(name, value, prop, isAbsent) {
7426
+ function validateProp(name, value, prop, props, isAbsent) {
7278
7427
  const { type, required, validator, skipCheck } = prop;
7279
7428
  if (required && isAbsent) {
7280
7429
  warn('Missing required prop: "' + name + '"');
@@ -7297,7 +7446,7 @@ function validateProp(name, value, prop, isAbsent) {
7297
7446
  return;
7298
7447
  }
7299
7448
  }
7300
- if (validator && !validator(value)) {
7449
+ if (validator && !validator(value, props)) {
7301
7450
  warn('Invalid prop: custom validator check failed for prop "' + name + '".');
7302
7451
  }
7303
7452
  }
@@ -7555,7 +7704,15 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7555
7704
  }
7556
7705
 
7557
7706
  let hasMismatch = false;
7558
- const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== "foreignObject";
7707
+ const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
7708
+ const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
7709
+ const getContainerType = (container) => {
7710
+ if (isSVGContainer(container))
7711
+ return "svg";
7712
+ if (isMathMLContainer(container))
7713
+ return "mathml";
7714
+ return void 0;
7715
+ };
7559
7716
  const isComment = (node) => node.nodeType === 8 /* COMMENT */;
7560
7717
  function createHydrationFunctions(rendererInternals) {
7561
7718
  const {
@@ -7573,7 +7730,7 @@ function createHydrationFunctions(rendererInternals) {
7573
7730
  } = rendererInternals;
7574
7731
  const hydrate = (vnode, container) => {
7575
7732
  if (!container.hasChildNodes()) {
7576
- !!(process.env.NODE_ENV !== "production") && warn(
7733
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
7577
7734
  `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
7578
7735
  );
7579
7736
  patch(null, vnode, container);
@@ -7633,12 +7790,14 @@ function createHydrationFunctions(rendererInternals) {
7633
7790
  } else {
7634
7791
  if (node.data !== vnode.children) {
7635
7792
  hasMismatch = true;
7636
- !!(process.env.NODE_ENV !== "production") && warn(
7637
- `Hydration text mismatch:
7638
- - Server rendered: ${JSON.stringify(
7793
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
7794
+ `Hydration text mismatch in`,
7795
+ node.parentNode,
7796
+ `
7797
+ - rendered on server: ${JSON.stringify(
7639
7798
  node.data
7640
7799
  )}
7641
- - Client rendered: ${JSON.stringify(vnode.children)}`
7800
+ - expected on client: ${JSON.stringify(vnode.children)}`
7642
7801
  );
7643
7802
  node.data = vnode.children;
7644
7803
  }
@@ -7724,7 +7883,7 @@ function createHydrationFunctions(rendererInternals) {
7724
7883
  null,
7725
7884
  parentComponent,
7726
7885
  parentSuspense,
7727
- isSVGContainer(container),
7886
+ getContainerType(container),
7728
7887
  optimized
7729
7888
  );
7730
7889
  if (isAsyncWrapper(vnode)) {
@@ -7759,13 +7918,13 @@ function createHydrationFunctions(rendererInternals) {
7759
7918
  vnode,
7760
7919
  parentComponent,
7761
7920
  parentSuspense,
7762
- isSVGContainer(parentNode(node)),
7921
+ getContainerType(parentNode(node)),
7763
7922
  slotScopeIds,
7764
7923
  optimized,
7765
7924
  rendererInternals,
7766
7925
  hydrateNode
7767
7926
  );
7768
- } else if (!!(process.env.NODE_ENV !== "production")) {
7927
+ } else if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {
7769
7928
  warn("Invalid HostVNode type:", type, `(${typeof type})`);
7770
7929
  }
7771
7930
  }
@@ -7782,38 +7941,6 @@ function createHydrationFunctions(rendererInternals) {
7782
7941
  if (dirs) {
7783
7942
  invokeDirectiveHook(vnode, null, parentComponent, "created");
7784
7943
  }
7785
- if (props) {
7786
- if (forcePatch || !optimized || patchFlag & (16 | 32)) {
7787
- for (const key in props) {
7788
- if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
7789
- key[0] === ".") {
7790
- patchProp(
7791
- el,
7792
- key,
7793
- null,
7794
- props[key],
7795
- false,
7796
- void 0,
7797
- parentComponent
7798
- );
7799
- }
7800
- }
7801
- } else if (props.onClick) {
7802
- patchProp(
7803
- el,
7804
- "onClick",
7805
- null,
7806
- props.onClick,
7807
- false,
7808
- void 0,
7809
- parentComponent
7810
- );
7811
- }
7812
- }
7813
- let vnodeHooks;
7814
- if (vnodeHooks = props && props.onVnodeBeforeMount) {
7815
- invokeVNodeHook(vnodeHooks, parentComponent, vnode);
7816
- }
7817
7944
  let needCallTransitionHooks = false;
7818
7945
  if (isTemplateNode(el)) {
7819
7946
  needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
@@ -7824,16 +7951,6 @@ function createHydrationFunctions(rendererInternals) {
7824
7951
  replaceNode(content, el, parentComponent);
7825
7952
  vnode.el = el = content;
7826
7953
  }
7827
- if (dirs) {
7828
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
7829
- }
7830
- if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {
7831
- queueEffectWithSuspense(() => {
7832
- vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
7833
- needCallTransitionHooks && transition.enter(el);
7834
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
7835
- }, parentSuspense);
7836
- }
7837
7954
  if (shapeFlag & 16 && // skip if element has innerHTML / textContent
7838
7955
  !(props && (props.innerHTML || props.textContent))) {
7839
7956
  let next = hydrateChildren(
@@ -7848,9 +7965,12 @@ function createHydrationFunctions(rendererInternals) {
7848
7965
  let hasWarned = false;
7849
7966
  while (next) {
7850
7967
  hasMismatch = true;
7851
- if (!!(process.env.NODE_ENV !== "production") && !hasWarned) {
7968
+ if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
7852
7969
  warn(
7853
- `Hydration children mismatch in <${vnode.type}>: server rendered element contains more child nodes than client vdom.`
7970
+ `Hydration children mismatch on`,
7971
+ el,
7972
+ `
7973
+ Server rendered element contains more child nodes than client vdom.`
7854
7974
  );
7855
7975
  hasWarned = true;
7856
7976
  }
@@ -7861,14 +7981,61 @@ function createHydrationFunctions(rendererInternals) {
7861
7981
  } else if (shapeFlag & 8) {
7862
7982
  if (el.textContent !== vnode.children) {
7863
7983
  hasMismatch = true;
7864
- !!(process.env.NODE_ENV !== "production") && warn(
7865
- `Hydration text content mismatch in <${vnode.type}>:
7866
- - Server rendered: ${el.textContent}
7867
- - Client rendered: ${vnode.children}`
7984
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
7985
+ `Hydration text content mismatch on`,
7986
+ el,
7987
+ `
7988
+ - rendered on server: ${el.textContent}
7989
+ - expected on client: ${vnode.children}`
7868
7990
  );
7869
7991
  el.textContent = vnode.children;
7870
7992
  }
7871
7993
  }
7994
+ if (props) {
7995
+ if (!!(process.env.NODE_ENV !== "production") || forcePatch || !optimized || patchFlag & (16 | 32)) {
7996
+ for (const key in props) {
7997
+ if (!!(process.env.NODE_ENV !== "production") && propHasMismatch(el, key, props[key])) {
7998
+ hasMismatch = true;
7999
+ }
8000
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
8001
+ key[0] === ".") {
8002
+ patchProp(
8003
+ el,
8004
+ key,
8005
+ null,
8006
+ props[key],
8007
+ void 0,
8008
+ void 0,
8009
+ parentComponent
8010
+ );
8011
+ }
8012
+ }
8013
+ } else if (props.onClick) {
8014
+ patchProp(
8015
+ el,
8016
+ "onClick",
8017
+ null,
8018
+ props.onClick,
8019
+ void 0,
8020
+ void 0,
8021
+ parentComponent
8022
+ );
8023
+ }
8024
+ }
8025
+ let vnodeHooks;
8026
+ if (vnodeHooks = props && props.onVnodeBeforeMount) {
8027
+ invokeVNodeHook(vnodeHooks, parentComponent, vnode);
8028
+ }
8029
+ if (dirs) {
8030
+ invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
8031
+ }
8032
+ if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {
8033
+ queueEffectWithSuspense(() => {
8034
+ vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
8035
+ needCallTransitionHooks && transition.enter(el);
8036
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
8037
+ }, parentSuspense);
8038
+ }
7872
8039
  }
7873
8040
  return el.nextSibling;
7874
8041
  };
@@ -7892,9 +8059,12 @@ function createHydrationFunctions(rendererInternals) {
7892
8059
  continue;
7893
8060
  } else {
7894
8061
  hasMismatch = true;
7895
- if (!!(process.env.NODE_ENV !== "production") && !hasWarned) {
8062
+ if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
7896
8063
  warn(
7897
- `Hydration children mismatch in <${container.tagName.toLowerCase()}>: server rendered element contains fewer child nodes than client vdom.`
8064
+ `Hydration children mismatch on`,
8065
+ container,
8066
+ `
8067
+ Server rendered element contains fewer child nodes than client vdom.`
7898
8068
  );
7899
8069
  hasWarned = true;
7900
8070
  }
@@ -7905,7 +8075,7 @@ function createHydrationFunctions(rendererInternals) {
7905
8075
  null,
7906
8076
  parentComponent,
7907
8077
  parentSuspense,
7908
- isSVGContainer(container),
8078
+ getContainerType(container),
7909
8079
  slotScopeIds
7910
8080
  );
7911
8081
  }
@@ -7937,14 +8107,14 @@ function createHydrationFunctions(rendererInternals) {
7937
8107
  };
7938
8108
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
7939
8109
  hasMismatch = true;
7940
- !!(process.env.NODE_ENV !== "production") && warn(
8110
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
7941
8111
  `Hydration node mismatch:
7942
- - Client vnode:`,
7943
- vnode.type,
7944
- `
7945
- - Server rendered DOM:`,
8112
+ - rendered on server:`,
7946
8113
  node,
7947
- node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``
8114
+ node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``,
8115
+ `
8116
+ - expected on client:`,
8117
+ vnode.type
7948
8118
  );
7949
8119
  vnode.el = null;
7950
8120
  if (isFragment) {
@@ -7968,7 +8138,7 @@ function createHydrationFunctions(rendererInternals) {
7968
8138
  next,
7969
8139
  parentComponent,
7970
8140
  parentSuspense,
7971
- isSVGContainer(container),
8141
+ getContainerType(container),
7972
8142
  slotScopeIds
7973
8143
  );
7974
8144
  return next;
@@ -8009,6 +8179,46 @@ function createHydrationFunctions(rendererInternals) {
8009
8179
  };
8010
8180
  return [hydrate, hydrateNode];
8011
8181
  }
8182
+ function propHasMismatch(el, key, clientValue) {
8183
+ let mismatchType;
8184
+ let mismatchKey;
8185
+ let actual;
8186
+ let expected;
8187
+ if (key === "class") {
8188
+ actual = el.className;
8189
+ expected = normalizeClass(clientValue);
8190
+ if (actual !== expected) {
8191
+ mismatchType = mismatchKey = `class`;
8192
+ }
8193
+ } else if (key === "style") {
8194
+ actual = el.getAttribute("style");
8195
+ expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));
8196
+ if (actual !== expected) {
8197
+ mismatchType = mismatchKey = "style";
8198
+ }
8199
+ } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
8200
+ actual = el.hasAttribute(key) && el.getAttribute(key);
8201
+ expected = isBooleanAttr(key) ? includeBooleanAttr(clientValue) ? "" : false : clientValue == null ? false : String(clientValue);
8202
+ if (actual !== expected) {
8203
+ mismatchType = `attribute`;
8204
+ mismatchKey = key;
8205
+ }
8206
+ }
8207
+ if (mismatchType) {
8208
+ const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
8209
+ warn(
8210
+ `Hydration ${mismatchType} mismatch on`,
8211
+ el,
8212
+ `
8213
+ - rendered on server: ${format(actual)}
8214
+ - expected on client: ${format(expected)}
8215
+ Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
8216
+ You should fix the source of the mismatch.`
8217
+ );
8218
+ return true;
8219
+ }
8220
+ return false;
8221
+ }
8012
8222
 
8013
8223
  let supported;
8014
8224
  let perf;
@@ -8060,6 +8270,10 @@ function initFeatureFlags() {
8060
8270
  !!(process.env.NODE_ENV !== "production") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);
8061
8271
  getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;
8062
8272
  }
8273
+ if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== "boolean") {
8274
+ !!(process.env.NODE_ENV !== "production") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);
8275
+ getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;
8276
+ }
8063
8277
  if (!!(process.env.NODE_ENV !== "production") && needWarn.length) {
8064
8278
  const multi = needWarn.length > 1;
8065
8279
  console.warn(
@@ -8100,7 +8314,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8100
8314
  setScopeId: hostSetScopeId = NOOP,
8101
8315
  insertStaticContent: hostInsertStaticContent
8102
8316
  } = options;
8103
- const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== "production") && isHmrUpdating ? false : !!n2.dynamicChildren) => {
8317
+ const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== "production") && isHmrUpdating ? false : !!n2.dynamicChildren) => {
8104
8318
  if (n1 === n2) {
8105
8319
  return;
8106
8320
  }
@@ -8123,9 +8337,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8123
8337
  break;
8124
8338
  case Static:
8125
8339
  if (n1 == null) {
8126
- mountStaticNode(n2, container, anchor, isSVG);
8340
+ mountStaticNode(n2, container, anchor, namespace);
8127
8341
  } else if (!!(process.env.NODE_ENV !== "production")) {
8128
- patchStaticNode(n1, n2, container, isSVG);
8342
+ patchStaticNode(n1, n2, container, namespace);
8129
8343
  }
8130
8344
  break;
8131
8345
  case Fragment:
@@ -8136,7 +8350,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8136
8350
  anchor,
8137
8351
  parentComponent,
8138
8352
  parentSuspense,
8139
- isSVG,
8353
+ namespace,
8140
8354
  slotScopeIds,
8141
8355
  optimized
8142
8356
  );
@@ -8150,7 +8364,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8150
8364
  anchor,
8151
8365
  parentComponent,
8152
8366
  parentSuspense,
8153
- isSVG,
8367
+ namespace,
8154
8368
  slotScopeIds,
8155
8369
  optimized
8156
8370
  );
@@ -8162,7 +8376,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8162
8376
  anchor,
8163
8377
  parentComponent,
8164
8378
  parentSuspense,
8165
- isSVG,
8379
+ namespace,
8166
8380
  slotScopeIds,
8167
8381
  optimized
8168
8382
  );
@@ -8174,7 +8388,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8174
8388
  anchor,
8175
8389
  parentComponent,
8176
8390
  parentSuspense,
8177
- isSVG,
8391
+ namespace,
8178
8392
  slotScopeIds,
8179
8393
  optimized,
8180
8394
  internals
@@ -8187,7 +8401,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8187
8401
  anchor,
8188
8402
  parentComponent,
8189
8403
  parentSuspense,
8190
- isSVG,
8404
+ namespace,
8191
8405
  slotScopeIds,
8192
8406
  optimized,
8193
8407
  internals
@@ -8225,17 +8439,17 @@ function baseCreateRenderer(options, createHydrationFns) {
8225
8439
  n2.el = n1.el;
8226
8440
  }
8227
8441
  };
8228
- const mountStaticNode = (n2, container, anchor, isSVG) => {
8442
+ const mountStaticNode = (n2, container, anchor, namespace) => {
8229
8443
  [n2.el, n2.anchor] = hostInsertStaticContent(
8230
8444
  n2.children,
8231
8445
  container,
8232
8446
  anchor,
8233
- isSVG,
8447
+ namespace,
8234
8448
  n2.el,
8235
8449
  n2.anchor
8236
8450
  );
8237
8451
  };
8238
- const patchStaticNode = (n1, n2, container, isSVG) => {
8452
+ const patchStaticNode = (n1, n2, container, namespace) => {
8239
8453
  if (n2.children !== n1.children) {
8240
8454
  const anchor = hostNextSibling(n1.anchor);
8241
8455
  removeStaticNode(n1);
@@ -8243,7 +8457,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8243
8457
  n2.children,
8244
8458
  container,
8245
8459
  anchor,
8246
- isSVG
8460
+ namespace
8247
8461
  );
8248
8462
  } else {
8249
8463
  n2.el = n1.el;
@@ -8268,8 +8482,12 @@ function baseCreateRenderer(options, createHydrationFns) {
8268
8482
  }
8269
8483
  hostRemove(anchor);
8270
8484
  };
8271
- const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
8272
- isSVG = isSVG || n2.type === "svg";
8485
+ const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
8486
+ if (n2.type === "svg") {
8487
+ namespace = "svg";
8488
+ } else if (n2.type === "math") {
8489
+ namespace = "mathml";
8490
+ }
8273
8491
  if (n1 == null) {
8274
8492
  mountElement(
8275
8493
  n2,
@@ -8277,7 +8495,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8277
8495
  anchor,
8278
8496
  parentComponent,
8279
8497
  parentSuspense,
8280
- isSVG,
8498
+ namespace,
8281
8499
  slotScopeIds,
8282
8500
  optimized
8283
8501
  );
@@ -8287,19 +8505,19 @@ function baseCreateRenderer(options, createHydrationFns) {
8287
8505
  n2,
8288
8506
  parentComponent,
8289
8507
  parentSuspense,
8290
- isSVG,
8508
+ namespace,
8291
8509
  slotScopeIds,
8292
8510
  optimized
8293
8511
  );
8294
8512
  }
8295
8513
  };
8296
- const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
8514
+ const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
8297
8515
  let el;
8298
8516
  let vnodeHook;
8299
- const { type, props, shapeFlag, transition, dirs } = vnode;
8517
+ const { props, shapeFlag, transition, dirs } = vnode;
8300
8518
  el = vnode.el = hostCreateElement(
8301
8519
  vnode.type,
8302
- isSVG,
8520
+ namespace,
8303
8521
  props && props.is,
8304
8522
  props
8305
8523
  );
@@ -8312,7 +8530,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8312
8530
  null,
8313
8531
  parentComponent,
8314
8532
  parentSuspense,
8315
- isSVG && type !== "foreignObject",
8533
+ resolveChildrenNamespace(vnode, namespace),
8316
8534
  slotScopeIds,
8317
8535
  optimized
8318
8536
  );
@@ -8329,7 +8547,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8329
8547
  key,
8330
8548
  null,
8331
8549
  props[key],
8332
- isSVG,
8550
+ namespace,
8333
8551
  vnode.children,
8334
8552
  parentComponent,
8335
8553
  parentSuspense,
@@ -8338,7 +8556,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8338
8556
  }
8339
8557
  }
8340
8558
  if ("value" in props) {
8341
- hostPatchProp(el, "value", null, props.value);
8559
+ hostPatchProp(el, "value", null, props.value, namespace);
8342
8560
  }
8343
8561
  if (vnodeHook = props.onVnodeBeforeMount) {
8344
8562
  invokeVNodeHook(vnodeHook, parentComponent, vnode);
@@ -8396,7 +8614,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8396
8614
  }
8397
8615
  }
8398
8616
  };
8399
- const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {
8617
+ const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
8400
8618
  for (let i = start; i < children.length; i++) {
8401
8619
  const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
8402
8620
  patch(
@@ -8406,13 +8624,13 @@ function baseCreateRenderer(options, createHydrationFns) {
8406
8624
  anchor,
8407
8625
  parentComponent,
8408
8626
  parentSuspense,
8409
- isSVG,
8627
+ namespace,
8410
8628
  slotScopeIds,
8411
8629
  optimized
8412
8630
  );
8413
8631
  }
8414
8632
  };
8415
- const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
8633
+ const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
8416
8634
  const el = n2.el = n1.el;
8417
8635
  let { patchFlag, dynamicChildren, dirs } = n2;
8418
8636
  patchFlag |= n1.patchFlag & 16;
@@ -8432,7 +8650,6 @@ function baseCreateRenderer(options, createHydrationFns) {
8432
8650
  optimized = false;
8433
8651
  dynamicChildren = null;
8434
8652
  }
8435
- const areChildrenSVG = isSVG && n2.type !== "foreignObject";
8436
8653
  if (dynamicChildren) {
8437
8654
  patchBlockChildren(
8438
8655
  n1.dynamicChildren,
@@ -8440,7 +8657,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8440
8657
  el,
8441
8658
  parentComponent,
8442
8659
  parentSuspense,
8443
- areChildrenSVG,
8660
+ resolveChildrenNamespace(n2, namespace),
8444
8661
  slotScopeIds
8445
8662
  );
8446
8663
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -8454,7 +8671,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8454
8671
  null,
8455
8672
  parentComponent,
8456
8673
  parentSuspense,
8457
- areChildrenSVG,
8674
+ resolveChildrenNamespace(n2, namespace),
8458
8675
  slotScopeIds,
8459
8676
  false
8460
8677
  );
@@ -8468,16 +8685,16 @@ function baseCreateRenderer(options, createHydrationFns) {
8468
8685
  newProps,
8469
8686
  parentComponent,
8470
8687
  parentSuspense,
8471
- isSVG
8688
+ namespace
8472
8689
  );
8473
8690
  } else {
8474
8691
  if (patchFlag & 2) {
8475
8692
  if (oldProps.class !== newProps.class) {
8476
- hostPatchProp(el, "class", null, newProps.class, isSVG);
8693
+ hostPatchProp(el, "class", null, newProps.class, namespace);
8477
8694
  }
8478
8695
  }
8479
8696
  if (patchFlag & 4) {
8480
- hostPatchProp(el, "style", oldProps.style, newProps.style, isSVG);
8697
+ hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
8481
8698
  }
8482
8699
  if (patchFlag & 8) {
8483
8700
  const propsToUpdate = n2.dynamicProps;
@@ -8491,7 +8708,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8491
8708
  key,
8492
8709
  prev,
8493
8710
  next,
8494
- isSVG,
8711
+ namespace,
8495
8712
  n1.children,
8496
8713
  parentComponent,
8497
8714
  parentSuspense,
@@ -8514,7 +8731,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8514
8731
  newProps,
8515
8732
  parentComponent,
8516
8733
  parentSuspense,
8517
- isSVG
8734
+ namespace
8518
8735
  );
8519
8736
  }
8520
8737
  if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
@@ -8524,7 +8741,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8524
8741
  }, parentSuspense);
8525
8742
  }
8526
8743
  };
8527
- const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {
8744
+ const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
8528
8745
  for (let i = 0; i < newChildren.length; i++) {
8529
8746
  const oldVNode = oldChildren[i];
8530
8747
  const newVNode = newChildren[i];
@@ -8549,13 +8766,13 @@ function baseCreateRenderer(options, createHydrationFns) {
8549
8766
  null,
8550
8767
  parentComponent,
8551
8768
  parentSuspense,
8552
- isSVG,
8769
+ namespace,
8553
8770
  slotScopeIds,
8554
8771
  true
8555
8772
  );
8556
8773
  }
8557
8774
  };
8558
- const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {
8775
+ const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {
8559
8776
  if (oldProps !== newProps) {
8560
8777
  if (oldProps !== EMPTY_OBJ) {
8561
8778
  for (const key in oldProps) {
@@ -8565,7 +8782,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8565
8782
  key,
8566
8783
  oldProps[key],
8567
8784
  null,
8568
- isSVG,
8785
+ namespace,
8569
8786
  vnode.children,
8570
8787
  parentComponent,
8571
8788
  parentSuspense,
@@ -8585,7 +8802,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8585
8802
  key,
8586
8803
  prev,
8587
8804
  next,
8588
- isSVG,
8805
+ namespace,
8589
8806
  vnode.children,
8590
8807
  parentComponent,
8591
8808
  parentSuspense,
@@ -8594,11 +8811,11 @@ function baseCreateRenderer(options, createHydrationFns) {
8594
8811
  }
8595
8812
  }
8596
8813
  if ("value" in newProps) {
8597
- hostPatchProp(el, "value", oldProps.value, newProps.value);
8814
+ hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
8598
8815
  }
8599
8816
  }
8600
8817
  };
8601
- const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
8818
+ const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
8602
8819
  const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
8603
8820
  const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
8604
8821
  let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
@@ -8620,7 +8837,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8620
8837
  fragmentEndAnchor,
8621
8838
  parentComponent,
8622
8839
  parentSuspense,
8623
- isSVG,
8840
+ namespace,
8624
8841
  slotScopeIds,
8625
8842
  optimized
8626
8843
  );
@@ -8634,7 +8851,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8634
8851
  container,
8635
8852
  parentComponent,
8636
8853
  parentSuspense,
8637
- isSVG,
8854
+ namespace,
8638
8855
  slotScopeIds
8639
8856
  );
8640
8857
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -8661,14 +8878,14 @@ function baseCreateRenderer(options, createHydrationFns) {
8661
8878
  fragmentEndAnchor,
8662
8879
  parentComponent,
8663
8880
  parentSuspense,
8664
- isSVG,
8881
+ namespace,
8665
8882
  slotScopeIds,
8666
8883
  optimized
8667
8884
  );
8668
8885
  }
8669
8886
  }
8670
8887
  };
8671
- const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
8888
+ const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
8672
8889
  n2.slotScopeIds = slotScopeIds;
8673
8890
  if (n1 == null) {
8674
8891
  if (n2.shapeFlag & 512) {
@@ -8676,7 +8893,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8676
8893
  n2,
8677
8894
  container,
8678
8895
  anchor,
8679
- isSVG,
8896
+ namespace,
8680
8897
  optimized
8681
8898
  );
8682
8899
  } else {
@@ -8686,7 +8903,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8686
8903
  anchor,
8687
8904
  parentComponent,
8688
8905
  parentSuspense,
8689
- isSVG,
8906
+ namespace,
8690
8907
  optimized
8691
8908
  );
8692
8909
  }
@@ -8694,7 +8911,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8694
8911
  updateComponent(n1, n2, optimized);
8695
8912
  }
8696
8913
  };
8697
- const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {
8914
+ const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
8698
8915
  const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
8699
8916
  const instance = compatMountInstance || (initialVNode.component = createComponentInstance(
8700
8917
  initialVNode,
@@ -8726,17 +8943,17 @@ function baseCreateRenderer(options, createHydrationFns) {
8726
8943
  const placeholder = instance.subTree = createVNode(Comment);
8727
8944
  processCommentNode(null, placeholder, container, anchor);
8728
8945
  }
8729
- return;
8946
+ } else {
8947
+ setupRenderEffect(
8948
+ instance,
8949
+ initialVNode,
8950
+ container,
8951
+ anchor,
8952
+ parentSuspense,
8953
+ namespace,
8954
+ optimized
8955
+ );
8730
8956
  }
8731
- setupRenderEffect(
8732
- instance,
8733
- initialVNode,
8734
- container,
8735
- anchor,
8736
- parentSuspense,
8737
- isSVG,
8738
- optimized
8739
- );
8740
8957
  if (!!(process.env.NODE_ENV !== "production")) {
8741
8958
  popWarningContext();
8742
8959
  endMeasure(instance, `mount`);
@@ -8765,7 +8982,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8765
8982
  instance.vnode = n2;
8766
8983
  }
8767
8984
  };
8768
- const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
8985
+ const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
8769
8986
  const componentUpdateFn = () => {
8770
8987
  if (!instance.isMounted) {
8771
8988
  let vnodeHook;
@@ -8835,7 +9052,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8835
9052
  anchor,
8836
9053
  instance,
8837
9054
  parentSuspense,
8838
- isSVG
9055
+ namespace
8839
9056
  );
8840
9057
  if (!!(process.env.NODE_ENV !== "production")) {
8841
9058
  endMeasure(instance, `patch`);
@@ -8874,6 +9091,21 @@ function baseCreateRenderer(options, createHydrationFns) {
8874
9091
  initialVNode = container = anchor = null;
8875
9092
  } else {
8876
9093
  let { next, bu, u, parent, vnode } = instance;
9094
+ {
9095
+ const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
9096
+ if (nonHydratedAsyncRoot) {
9097
+ if (next) {
9098
+ next.el = vnode.el;
9099
+ updateComponentPreRender(instance, next, optimized);
9100
+ }
9101
+ nonHydratedAsyncRoot.asyncDep.then(() => {
9102
+ if (!instance.isUnmounted) {
9103
+ componentUpdateFn();
9104
+ }
9105
+ });
9106
+ return;
9107
+ }
9108
+ }
8877
9109
  let originNext = next;
8878
9110
  let vnodeHook;
8879
9111
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -8917,7 +9149,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8917
9149
  getNextHostNode(prevTree),
8918
9150
  instance,
8919
9151
  parentSuspense,
8920
- isSVG
9152
+ namespace
8921
9153
  );
8922
9154
  if (!!(process.env.NODE_ENV !== "production")) {
8923
9155
  endMeasure(instance, `patch`);
@@ -8978,10 +9210,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8978
9210
  updateProps(instance, nextVNode.props, prevProps, optimized);
8979
9211
  updateSlots(instance, nextVNode.children, optimized);
8980
9212
  pauseTracking();
8981
- flushPreFlushCbs();
9213
+ flushPreFlushCbs(instance);
8982
9214
  resetTracking();
8983
9215
  };
8984
- const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {
9216
+ const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {
8985
9217
  const c1 = n1 && n1.children;
8986
9218
  const prevShapeFlag = n1 ? n1.shapeFlag : 0;
8987
9219
  const c2 = n2.children;
@@ -8995,7 +9227,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8995
9227
  anchor,
8996
9228
  parentComponent,
8997
9229
  parentSuspense,
8998
- isSVG,
9230
+ namespace,
8999
9231
  slotScopeIds,
9000
9232
  optimized
9001
9233
  );
@@ -9008,7 +9240,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9008
9240
  anchor,
9009
9241
  parentComponent,
9010
9242
  parentSuspense,
9011
- isSVG,
9243
+ namespace,
9012
9244
  slotScopeIds,
9013
9245
  optimized
9014
9246
  );
@@ -9032,7 +9264,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9032
9264
  anchor,
9033
9265
  parentComponent,
9034
9266
  parentSuspense,
9035
- isSVG,
9267
+ namespace,
9036
9268
  slotScopeIds,
9037
9269
  optimized
9038
9270
  );
@@ -9050,7 +9282,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9050
9282
  anchor,
9051
9283
  parentComponent,
9052
9284
  parentSuspense,
9053
- isSVG,
9285
+ namespace,
9054
9286
  slotScopeIds,
9055
9287
  optimized
9056
9288
  );
@@ -9058,7 +9290,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9058
9290
  }
9059
9291
  }
9060
9292
  };
9061
- const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
9293
+ const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
9062
9294
  c1 = c1 || EMPTY_ARR;
9063
9295
  c2 = c2 || EMPTY_ARR;
9064
9296
  const oldLength = c1.length;
@@ -9074,7 +9306,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9074
9306
  null,
9075
9307
  parentComponent,
9076
9308
  parentSuspense,
9077
- isSVG,
9309
+ namespace,
9078
9310
  slotScopeIds,
9079
9311
  optimized
9080
9312
  );
@@ -9095,14 +9327,14 @@ function baseCreateRenderer(options, createHydrationFns) {
9095
9327
  anchor,
9096
9328
  parentComponent,
9097
9329
  parentSuspense,
9098
- isSVG,
9330
+ namespace,
9099
9331
  slotScopeIds,
9100
9332
  optimized,
9101
9333
  commonLength
9102
9334
  );
9103
9335
  }
9104
9336
  };
9105
- const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
9337
+ const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
9106
9338
  let i = 0;
9107
9339
  const l2 = c2.length;
9108
9340
  let e1 = c1.length - 1;
@@ -9118,7 +9350,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9118
9350
  null,
9119
9351
  parentComponent,
9120
9352
  parentSuspense,
9121
- isSVG,
9353
+ namespace,
9122
9354
  slotScopeIds,
9123
9355
  optimized
9124
9356
  );
@@ -9138,7 +9370,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9138
9370
  null,
9139
9371
  parentComponent,
9140
9372
  parentSuspense,
9141
- isSVG,
9373
+ namespace,
9142
9374
  slotScopeIds,
9143
9375
  optimized
9144
9376
  );
@@ -9160,7 +9392,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9160
9392
  anchor,
9161
9393
  parentComponent,
9162
9394
  parentSuspense,
9163
- isSVG,
9395
+ namespace,
9164
9396
  slotScopeIds,
9165
9397
  optimized
9166
9398
  );
@@ -9230,7 +9462,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9230
9462
  null,
9231
9463
  parentComponent,
9232
9464
  parentSuspense,
9233
- isSVG,
9465
+ namespace,
9234
9466
  slotScopeIds,
9235
9467
  optimized
9236
9468
  );
@@ -9251,7 +9483,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9251
9483
  anchor,
9252
9484
  parentComponent,
9253
9485
  parentSuspense,
9254
- isSVG,
9486
+ namespace,
9255
9487
  slotScopeIds,
9256
9488
  optimized
9257
9489
  );
@@ -9481,13 +9713,21 @@ function baseCreateRenderer(options, createHydrationFns) {
9481
9713
  }
9482
9714
  return hostNextSibling(vnode.anchor || vnode.el);
9483
9715
  };
9484
- const render = (vnode, container, isSVG) => {
9716
+ const render = (vnode, container, namespace) => {
9485
9717
  if (vnode == null) {
9486
9718
  if (container._vnode) {
9487
9719
  unmount(container._vnode, null, null, true);
9488
9720
  }
9489
9721
  } else {
9490
- patch(container._vnode || null, vnode, container, null, null, null, isSVG);
9722
+ patch(
9723
+ container._vnode || null,
9724
+ vnode,
9725
+ container,
9726
+ null,
9727
+ null,
9728
+ null,
9729
+ namespace
9730
+ );
9491
9731
  }
9492
9732
  flushPreFlushCbs();
9493
9733
  flushPostFlushCbs();
@@ -9518,6 +9758,9 @@ function baseCreateRenderer(options, createHydrationFns) {
9518
9758
  createApp: createAppAPI(render, hydrate)
9519
9759
  };
9520
9760
  }
9761
+ function resolveChildrenNamespace({ type, props }, currentNamespace) {
9762
+ return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
9763
+ }
9521
9764
  function toggleRecurse({ effect, update }, allowed) {
9522
9765
  effect.allowRecurse = update.allowRecurse = allowed;
9523
9766
  }
@@ -9588,10 +9831,21 @@ function getSequence(arr) {
9588
9831
  }
9589
9832
  return result;
9590
9833
  }
9834
+ function locateNonHydratedAsyncRoot(instance) {
9835
+ const subComponent = instance.subTree.component;
9836
+ if (subComponent) {
9837
+ if (subComponent.asyncDep && !subComponent.asyncResolved) {
9838
+ return subComponent;
9839
+ } else {
9840
+ return locateNonHydratedAsyncRoot(subComponent);
9841
+ }
9842
+ }
9843
+ }
9591
9844
 
9592
9845
  const isTeleport = (type) => type.__isTeleport;
9593
9846
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
9594
9847
  const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement;
9848
+ const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
9595
9849
  const resolveTarget = (props, select) => {
9596
9850
  const targetSelector = props && props.to;
9597
9851
  if (isString(targetSelector)) {
@@ -9619,7 +9873,7 @@ const resolveTarget = (props, select) => {
9619
9873
  const TeleportImpl = {
9620
9874
  name: "Teleport",
9621
9875
  __isTeleport: true,
9622
- process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {
9876
+ process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
9623
9877
  const {
9624
9878
  mc: mountChildren,
9625
9879
  pc: patchChildren,
@@ -9641,7 +9895,11 @@ const TeleportImpl = {
9641
9895
  const targetAnchor = n2.targetAnchor = createText("");
9642
9896
  if (target) {
9643
9897
  insert(targetAnchor, target);
9644
- isSVG = isSVG || isTargetSVG(target);
9898
+ if (namespace === "svg" || isTargetSVG(target)) {
9899
+ namespace = "svg";
9900
+ } else if (namespace === "mathml" || isTargetMathML(target)) {
9901
+ namespace = "mathml";
9902
+ }
9645
9903
  } else if (!!(process.env.NODE_ENV !== "production") && !disabled) {
9646
9904
  warn("Invalid Teleport target on mount:", target, `(${typeof target})`);
9647
9905
  }
@@ -9653,7 +9911,7 @@ const TeleportImpl = {
9653
9911
  anchor2,
9654
9912
  parentComponent,
9655
9913
  parentSuspense,
9656
- isSVG,
9914
+ namespace,
9657
9915
  slotScopeIds,
9658
9916
  optimized
9659
9917
  );
@@ -9672,7 +9930,11 @@ const TeleportImpl = {
9672
9930
  const wasDisabled = isTeleportDisabled(n1.props);
9673
9931
  const currentContainer = wasDisabled ? container : target;
9674
9932
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
9675
- isSVG = isSVG || isTargetSVG(target);
9933
+ if (namespace === "svg" || isTargetSVG(target)) {
9934
+ namespace = "svg";
9935
+ } else if (namespace === "mathml" || isTargetMathML(target)) {
9936
+ namespace = "mathml";
9937
+ }
9676
9938
  if (dynamicChildren) {
9677
9939
  patchBlockChildren(
9678
9940
  n1.dynamicChildren,
@@ -9680,7 +9942,7 @@ const TeleportImpl = {
9680
9942
  currentContainer,
9681
9943
  parentComponent,
9682
9944
  parentSuspense,
9683
- isSVG,
9945
+ namespace,
9684
9946
  slotScopeIds
9685
9947
  );
9686
9948
  traverseStaticChildren(n1, n2, true);
@@ -9692,7 +9954,7 @@ const TeleportImpl = {
9692
9954
  currentAnchor,
9693
9955
  parentComponent,
9694
9956
  parentSuspense,
9695
- isSVG,
9957
+ namespace,
9696
9958
  slotScopeIds,
9697
9959
  false
9698
9960
  );
@@ -10378,20 +10640,29 @@ function createComponentInstance(vnode, parent, suspense) {
10378
10640
  let currentInstance = null;
10379
10641
  const getCurrentInstance = () => currentInstance || currentRenderingInstance;
10380
10642
  let internalSetCurrentInstance;
10381
- let globalCurrentInstanceSetters;
10382
- let settersKey = "__VUE_INSTANCE_SETTERS__";
10643
+ let setInSSRSetupState;
10383
10644
  {
10384
- if (!(globalCurrentInstanceSetters = getGlobalThis()[settersKey])) {
10385
- globalCurrentInstanceSetters = getGlobalThis()[settersKey] = [];
10386
- }
10387
- globalCurrentInstanceSetters.push((i) => currentInstance = i);
10388
- internalSetCurrentInstance = (instance) => {
10389
- if (globalCurrentInstanceSetters.length > 1) {
10390
- globalCurrentInstanceSetters.forEach((s) => s(instance));
10391
- } else {
10392
- globalCurrentInstanceSetters[0](instance);
10393
- }
10645
+ const g = getGlobalThis();
10646
+ const registerGlobalSetter = (key, setter) => {
10647
+ let setters;
10648
+ if (!(setters = g[key]))
10649
+ setters = g[key] = [];
10650
+ setters.push(setter);
10651
+ return (v) => {
10652
+ if (setters.length > 1)
10653
+ setters.forEach((set) => set(v));
10654
+ else
10655
+ setters[0](v);
10656
+ };
10394
10657
  };
10658
+ internalSetCurrentInstance = registerGlobalSetter(
10659
+ `__VUE_INSTANCE_SETTERS__`,
10660
+ (v) => currentInstance = v
10661
+ );
10662
+ setInSSRSetupState = registerGlobalSetter(
10663
+ `__VUE_SSR_SETTERS__`,
10664
+ (v) => isInSSRComponentSetup = v
10665
+ );
10395
10666
  }
10396
10667
  const setCurrentInstance = (instance) => {
10397
10668
  internalSetCurrentInstance(instance);
@@ -10415,13 +10686,13 @@ function isStatefulComponent(instance) {
10415
10686
  }
10416
10687
  let isInSSRComponentSetup = false;
10417
10688
  function setupComponent(instance, isSSR = false) {
10418
- isInSSRComponentSetup = isSSR;
10689
+ isSSR && setInSSRSetupState(isSSR);
10419
10690
  const { props, children } = instance.vnode;
10420
10691
  const isStateful = isStatefulComponent(instance);
10421
10692
  initProps(instance, props, isStateful, isSSR);
10422
10693
  initSlots(instance, children);
10423
10694
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
10424
- isInSSRComponentSetup = false;
10695
+ isSSR && setInSSRSetupState(false);
10425
10696
  return setupResult;
10426
10697
  }
10427
10698
  function setupStatefulComponent(instance, isSSR) {
@@ -10765,9 +11036,9 @@ function initCustomFormatter() {
10765
11036
  return;
10766
11037
  }
10767
11038
  const vueStyle = { style: "color:#3ba776" };
10768
- const numberStyle = { style: "color:#0b1bc9" };
10769
- const stringStyle = { style: "color:#b62e24" };
10770
- const keywordStyle = { style: "color:#9d288c" };
11039
+ const numberStyle = { style: "color:#1677ff" };
11040
+ const stringStyle = { style: "color:#f5222d" };
11041
+ const keywordStyle = { style: "color:#eb2f96" };
10771
11042
  const formatter = {
10772
11043
  header(obj) {
10773
11044
  if (!isObject(obj)) {
@@ -10961,7 +11232,7 @@ function isMemoSame(cached, memo) {
10961
11232
  return true;
10962
11233
  }
10963
11234
 
10964
- const version = "3.4.0-alpha.3";
11235
+ const version = "3.4.0-beta.1";
10965
11236
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10966
11237
  const _ssrUtils = {
10967
11238
  createComponentInstance,
@@ -10981,8 +11252,10 @@ const _compatUtils = {
10981
11252
  softAssertCompatEnabled
10982
11253
  };
10983
11254
  const compatUtils = _compatUtils ;
11255
+ const DeprecationTypes = DeprecationTypes$1 ;
10984
11256
 
10985
11257
  const svgNS = "http://www.w3.org/2000/svg";
11258
+ const mathmlNS = "http://www.w3.org/1998/Math/MathML";
10986
11259
  const doc = typeof document !== "undefined" ? document : null;
10987
11260
  const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
10988
11261
  const nodeOps = {
@@ -10995,8 +11268,8 @@ const nodeOps = {
10995
11268
  parent.removeChild(child);
10996
11269
  }
10997
11270
  },
10998
- createElement: (tag, isSVG, is, props) => {
10999
- const el = isSVG ? doc.createElementNS(svgNS, tag) : doc.createElement(tag, is ? { is } : void 0);
11271
+ createElement: (tag, namespace, is, props) => {
11272
+ const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : doc.createElement(tag, is ? { is } : void 0);
11000
11273
  if (tag === "select" && props && props.multiple != null) {
11001
11274
  el.setAttribute("multiple", props.multiple);
11002
11275
  }
@@ -11020,7 +11293,7 @@ const nodeOps = {
11020
11293
  // Reason: innerHTML.
11021
11294
  // Static content here can only come from compiled templates.
11022
11295
  // As long as the user only uses trusted templates, this is safe.
11023
- insertStaticContent(content, parent, anchor, isSVG, start, end) {
11296
+ insertStaticContent(content, parent, anchor, namespace, start, end) {
11024
11297
  const before = anchor ? anchor.previousSibling : parent.lastChild;
11025
11298
  if (start && (start === end || start.nextSibling)) {
11026
11299
  while (true) {
@@ -11029,9 +11302,9 @@ const nodeOps = {
11029
11302
  break;
11030
11303
  }
11031
11304
  } else {
11032
- templateContainer.innerHTML = isSVG ? `<svg>${content}</svg>` : content;
11305
+ templateContainer.innerHTML = namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content;
11033
11306
  const template = templateContainer.content;
11034
- if (isSVG) {
11307
+ if (namespace === "svg" || namespace === "mathml") {
11035
11308
  const wrapper = template.firstChild;
11036
11309
  while (wrapper.firstChild) {
11037
11310
  template.appendChild(wrapper.firstChild);
@@ -11676,8 +11949,10 @@ function patchStopImmediatePropagation(e, value) {
11676
11949
  }
11677
11950
  }
11678
11951
 
11679
- const nativeOnRE = /^on[a-z]/;
11680
- const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11952
+ const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter
11953
+ key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;
11954
+ const patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11955
+ const isSVG = namespace === "svg";
11681
11956
  if (key === "class") {
11682
11957
  patchClass(el, nextValue, isSVG);
11683
11958
  } else if (key === "style") {
@@ -11710,7 +11985,7 @@ function shouldSetAsProp(el, key, value, isSVG) {
11710
11985
  if (key === "innerHTML" || key === "textContent") {
11711
11986
  return true;
11712
11987
  }
11713
- if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11988
+ if (key in el && isNativeOn(key) && isFunction(value)) {
11714
11989
  return true;
11715
11990
  }
11716
11991
  return false;
@@ -11727,7 +12002,13 @@ function shouldSetAsProp(el, key, value, isSVG) {
11727
12002
  if (key === "type" && el.tagName === "TEXTAREA") {
11728
12003
  return false;
11729
12004
  }
11730
- if (nativeOnRE.test(key) && isString(value)) {
12005
+ if (key === "width" || key === "height") {
12006
+ const tag = el.tagName;
12007
+ if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") {
12008
+ return false;
12009
+ }
12010
+ }
12011
+ if (isNativeOn(key) && isString(value)) {
11731
12012
  return false;
11732
12013
  }
11733
12014
  return key in el;
@@ -12451,14 +12732,14 @@ const modifierGuards = {
12451
12732
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
12452
12733
  };
12453
12734
  const withModifiers = (fn, modifiers) => {
12454
- return (event, ...args) => {
12735
+ return fn._withMods || (fn._withMods = (event, ...args) => {
12455
12736
  for (let i = 0; i < modifiers.length; i++) {
12456
12737
  const guard = modifierGuards[modifiers[i]];
12457
12738
  if (guard && guard(event, modifiers))
12458
12739
  return;
12459
12740
  }
12460
12741
  return fn(event, ...args);
12461
- };
12742
+ });
12462
12743
  };
12463
12744
  const keyNames = {
12464
12745
  esc: "escape",
@@ -12486,7 +12767,7 @@ const withKeys = (fn, modifiers) => {
12486
12767
  );
12487
12768
  }
12488
12769
  }
12489
- return (event) => {
12770
+ return fn._withKeys || (fn._withKeys = (event) => {
12490
12771
  if (!("key" in event)) {
12491
12772
  return;
12492
12773
  }
@@ -12514,7 +12795,7 @@ const withKeys = (fn, modifiers) => {
12514
12795
  }
12515
12796
  }
12516
12797
  }
12517
- };
12798
+ });
12518
12799
  };
12519
12800
 
12520
12801
  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
@@ -12562,7 +12843,7 @@ const createApp = (...args) => {
12562
12843
  }
12563
12844
  }
12564
12845
  container.innerHTML = "";
12565
- const proxy = mount(container, false, container instanceof SVGElement);
12846
+ const proxy = mount(container, false, resolveRootNamespace(container));
12566
12847
  if (container instanceof Element) {
12567
12848
  container.removeAttribute("v-cloak");
12568
12849
  container.setAttribute("data-v-app", "");
@@ -12581,14 +12862,22 @@ const createSSRApp = (...args) => {
12581
12862
  app.mount = (containerOrSelector) => {
12582
12863
  const container = normalizeContainer(containerOrSelector);
12583
12864
  if (container) {
12584
- return mount(container, true, container instanceof SVGElement);
12865
+ return mount(container, true, resolveRootNamespace(container));
12585
12866
  }
12586
12867
  };
12587
12868
  return app;
12588
12869
  };
12870
+ function resolveRootNamespace(container) {
12871
+ if (container instanceof SVGElement) {
12872
+ return "svg";
12873
+ }
12874
+ if (typeof MathMLElement === "function" && container instanceof MathMLElement) {
12875
+ return "mathml";
12876
+ }
12877
+ }
12589
12878
  function injectNativeTagCheck(app) {
12590
12879
  Object.defineProperty(app.config, "isNativeTag", {
12591
- value: (tag) => isHTMLTag(tag) || isSVGTag(tag),
12880
+ value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),
12592
12881
  writable: false
12593
12882
  });
12594
12883
  }
@@ -12652,7 +12941,9 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
12652
12941
  BaseTransition: BaseTransition,
12653
12942
  BaseTransitionPropsValidators: BaseTransitionPropsValidators,
12654
12943
  Comment: Comment,
12944
+ DeprecationTypes: DeprecationTypes,
12655
12945
  EffectScope: EffectScope,
12946
+ ErrorCodes: ErrorCodes,
12656
12947
  ErrorTypeStrings: ErrorTypeStrings,
12657
12948
  Fragment: Fragment,
12658
12949
  KeepAlive: KeepAlive,
@@ -12661,8 +12952,10 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
12661
12952
  Suspense: Suspense,
12662
12953
  Teleport: Teleport,
12663
12954
  Text: Text,
12955
+ TrackOpTypes: TrackOpTypes,
12664
12956
  Transition: Transition,
12665
12957
  TransitionGroup: TransitionGroup,
12958
+ TriggerOpTypes: TriggerOpTypes,
12666
12959
  VueElement: VueElement,
12667
12960
  assertNumber: assertNumber,
12668
12961
  callWithAsyncErrorHandling: callWithAsyncErrorHandling,
@@ -12844,4 +13137,4 @@ var Vue$1 = Vue;
12844
13137
 
12845
13138
  const { configureCompat } = Vue$1;
12846
13139
 
12847
- export { BaseTransition, BaseTransitionPropsValidators, Comment, EffectScope, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, Transition, TransitionGroup, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue$1 as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
13140
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue$1 as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };