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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/shared v3.6.0-rc.1
2
+ * @vue/shared v3.6.0-rc.11
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -15,7 +15,7 @@ Object.defineProperties(exports, {
15
15
  * \/\*#\_\_PURE\_\_\*\/
16
16
  * So that they can be tree-shaken if necessary.
17
17
  */
18
- /* @__NO_SIDE_EFFECTS__ */
18
+ /*@__NO_SIDE_EFFECTS__*/
19
19
  function makeMap(str) {
20
20
  const map = Object.create(null);
21
21
  for (const key of str.split(",")) map[key] = 1;
@@ -63,9 +63,9 @@ const toRawType = (value) => {
63
63
  };
64
64
  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
65
65
  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
66
- const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
67
- const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
68
- const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
66
+ const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
67
+ const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
68
+ const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
69
69
  const cacheStringFunction = (fn) => {
70
70
  const cache = Object.create(null);
71
71
  return ((str) => {
@@ -238,6 +238,8 @@ const ShapeFlags = {
238
238
  "256": "COMPONENT_SHOULD_KEEP_ALIVE",
239
239
  "COMPONENT_KEPT_ALIVE": 512,
240
240
  "512": "COMPONENT_KEPT_ALIVE",
241
+ "SLOT_FALLBACK": 1024,
242
+ "1024": "SLOT_FALLBACK",
241
243
  "COMPONENT": 6,
242
244
  "6": "COMPONENT"
243
245
  };
@@ -259,7 +261,7 @@ const slotFlagsText = {
259
261
  [2]: "DYNAMIC",
260
262
  [3]: "FORWARDED"
261
263
  };
262
- 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");
264
+ 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");
263
265
  /** @deprecated use `isGloballyAllowed` instead */
264
266
  const isGloballyWhitelisted = isGloballyAllowed;
265
267
  //#endregion
@@ -315,10 +317,10 @@ function normalizeStyle(value) {
315
317
  }
316
318
  const listDelimiterRE = /;(?![^(]*\))/g;
317
319
  const propertyDelimiterRE = /:([^]+)/;
318
- const styleCommentRE = /\/\*[^]*?\*\//g;
320
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
319
321
  function parseStringStyle(cssText) {
320
322
  const ret = {};
321
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
323
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
322
324
  if (item) {
323
325
  const tmp = item.split(propertyDelimiterRE);
324
326
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -365,49 +367,49 @@ const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,col
365
367
  const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics";
366
368
  const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
367
369
  const FORMATTING_TAGS = "a,b,big,code,em,font,i,nobr,s,small,strike,strong,tt,u";
368
- const ALWAYS_CLOSE_TAGS = "title,style,script,noscript,template,object,table,button,textarea,select,iframe,fieldset";
370
+ const ALWAYS_CLOSE_TAGS = "title,style,script,noscript,template,object,table,button,textarea,select,iframe,fieldset,form,foreignObject,desc,mi,mo,mn,ms,mtext,annotation-xml";
369
371
  const INLINE_TAGS = "a,abbr,acronym,b,bdi,bdo,big,br,button,canvas,cite,code,data,datalist,del,dfn,em,embed,i,iframe,img,input,ins,kbd,label,map,mark,meter,noscript,object,output,picture,progress,q,ruby,s,samp,script,select,small,span,strong,sub,sup,svg,textarea,time,u,tt,var,video";
370
372
  const BLOCK_TAGS = "address,article,aside,blockquote,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,main,menu,nav,ol,p,pre,section,table,ul";
371
373
  /**
372
374
  * Compiler only.
373
375
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
374
376
  */
375
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
377
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
376
378
  /**
377
379
  * Compiler only.
378
380
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
379
381
  */
380
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
382
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
381
383
  /**
382
384
  * Compiler only.
383
385
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
384
386
  */
385
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
387
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
386
388
  /**
387
389
  * Compiler only.
388
390
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
389
391
  */
390
- const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
392
+ const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
391
393
  /**
392
394
  * Compiler only.
393
395
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
394
396
  */
395
- const isFormattingTag = /* @__PURE__ */ makeMap(FORMATTING_TAGS);
397
+ const isFormattingTag = /*@__PURE__*/ makeMap(FORMATTING_TAGS);
396
398
  /**
397
399
  * Compiler only.
398
400
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
399
401
  */
400
- const isAlwaysCloseTag = /* @__PURE__ */ makeMap(ALWAYS_CLOSE_TAGS);
402
+ const isAlwaysCloseTag = /*@__PURE__*/ makeMap(ALWAYS_CLOSE_TAGS);
401
403
  /**
402
404
  * Compiler only.
403
405
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
404
406
  */
405
- const isInlineTag = /* @__PURE__ */ makeMap(INLINE_TAGS);
407
+ const isInlineTag = /*@__PURE__*/ makeMap(INLINE_TAGS);
406
408
  /**
407
409
  * Compiler only.
408
410
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
409
411
  */
410
- const isBlockTag = /* @__PURE__ */ makeMap(BLOCK_TAGS);
412
+ const isBlockTag = /*@__PURE__*/ makeMap(BLOCK_TAGS);
411
413
  //#endregion
412
414
  //#region packages/shared/src/domAttrConfig.ts
413
415
  /**
@@ -422,11 +424,11 @@ const isBlockTag = /* @__PURE__ */ makeMap(BLOCK_TAGS);
422
424
  * - readonly -> readOnly
423
425
  */
424
426
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
425
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
427
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
426
428
  /**
427
429
  * The full list is needed during SSR to produce the correct initial markup.
428
430
  */
429
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
431
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
430
432
  /**
431
433
  * Boolean attributes should be included if the value is truthy or ''.
432
434
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -434,7 +436,7 @@ const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,auto
434
436
  function includeBooleanAttr(value) {
435
437
  return !!value || value === "";
436
438
  }
437
- const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
439
+ const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u000d\u0020]/;
438
440
  const attrValidationCache = {};
439
441
  function isSSRSafeAttrName(name) {
440
442
  if (attrValidationCache.hasOwnProperty(name)) return attrValidationCache[name];
@@ -454,15 +456,15 @@ const propsToAttrMap = {
454
456
  * Don't also forget to allow `data-*` and `aria-*`!
455
457
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
456
458
  */
457
- 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");
459
+ 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");
458
460
  /**
459
461
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
460
462
  */
461
- 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");
463
+ 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");
462
464
  /**
463
465
  * Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
464
466
  */
465
- const isKnownMathMLAttr = /* @__PURE__ */ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
467
+ const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
466
468
  /**
467
469
  * Shared between server-renderer and runtime-core hydration logic
468
470
  */
@@ -541,13 +543,54 @@ function getEscapedCssVarName(key, doubleEscape) {
541
543
  }
542
544
  //#endregion
543
545
  //#region packages/shared/src/looseEqual.ts
544
- function looseCompareArrays(a, b) {
546
+ function looseCompareArrays(a, b, seen) {
545
547
  if (a.length !== b.length) return false;
546
548
  let equal = true;
547
- for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
549
+ for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
548
550
  return equal;
549
551
  }
550
- function looseEqual(a, b) {
552
+ function looseCompareCollections(a, b, seen) {
553
+ if (a.size !== b.size) return false;
554
+ const candidates = Array.from(b);
555
+ const matched = new Uint8Array(candidates.length);
556
+ for (const item of a) {
557
+ let index = -1;
558
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
559
+ index = i;
560
+ break;
561
+ }
562
+ if (index < 0) return false;
563
+ matched[index] = 1;
564
+ }
565
+ return true;
566
+ }
567
+ function looseCompareObjects(a, b, seen) {
568
+ let aValidType = isMap(a);
569
+ let bValidType = isMap(b);
570
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
571
+ aValidType = isSet(a);
572
+ bValidType = isSet(b);
573
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
574
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
575
+ for (const key in a) {
576
+ const aHasKey = a.hasOwnProperty(key);
577
+ const bHasKey = b.hasOwnProperty(key);
578
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
579
+ }
580
+ return String(a) === String(b);
581
+ }
582
+ function looseCompareNested(a, b, seen, compare) {
583
+ if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
584
+ const [seenA, seenB] = seen;
585
+ if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
586
+ seenA.set(a, b);
587
+ seenB.set(b, a);
588
+ const equal = compare(a, b, seen);
589
+ seenA.delete(a);
590
+ seenB.delete(b);
591
+ return equal;
592
+ }
593
+ function looseEqual(a, b, seen) {
551
594
  if (a === b) return true;
552
595
  let aValidType = isDate(a);
553
596
  let bValidType = isDate(b);
@@ -557,17 +600,12 @@ function looseEqual(a, b) {
557
600
  if (aValidType || bValidType) return a === b;
558
601
  aValidType = isArray(a);
559
602
  bValidType = isArray(b);
560
- if (aValidType || bValidType) return aValidType && bValidType ? looseCompareArrays(a, b) : false;
603
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
561
604
  aValidType = isObject(a);
562
605
  bValidType = isObject(b);
563
606
  if (aValidType || bValidType) {
564
607
  if (!aValidType || !bValidType) return false;
565
- if (Object.keys(a).length !== Object.keys(b).length) return false;
566
- for (const key in a) {
567
- const aHasKey = a.hasOwnProperty(key);
568
- const bHasKey = b.hasOwnProperty(key);
569
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
570
- }
608
+ return looseCompareNested(a, b, seen, looseCompareObjects);
571
609
  }
572
610
  return String(a) === String(b);
573
611
  }
@@ -675,7 +713,9 @@ const VaporVForFlags = {
675
713
  "IS_FRAGMENT": 16,
676
714
  "16": "IS_FRAGMENT",
677
715
  "SLOT_ROOT": 32,
678
- "32": "SLOT_ROOT"
716
+ "32": "SLOT_ROOT",
717
+ "WRAPPED_ROWS": 64,
718
+ "64": "WRAPPED_ROWS"
679
719
  };
680
720
  const VaporBlockShape = {
681
721
  "EMPTY": 0,
@@ -733,10 +773,26 @@ const VaporSlotFlags = {
733
773
  "1": "NO_SLOTTED",
734
774
  "ONCE": 2,
735
775
  "2": "ONCE",
736
- "SLOT_ROOT": 4,
737
- "4": "SLOT_ROOT",
738
- "NON_STABLE": 8,
739
- "8": "NON_STABLE"
776
+ "FORWARDED": 4,
777
+ "4": "FORWARDED",
778
+ "SHARED_FALLBACK": 8,
779
+ "8": "SHARED_FALLBACK"
780
+ };
781
+ function isForwardedSlot(flags) {
782
+ return !!(flags & 12);
783
+ }
784
+ function slotInheritsFallback(flags) {
785
+ return isForwardedSlot(flags) && !(flags & 8);
786
+ }
787
+ function slotNotifiesBoundary(flags) {
788
+ return isForwardedSlot(flags) && !(flags & 2);
789
+ }
790
+ /**
791
+ * Per-slot-function metadata attached by the compiler as `fn._`.
792
+ */
793
+ const VaporSlotStability = {
794
+ "NON_STABLE": 1,
795
+ "1": "NON_STABLE"
740
796
  };
741
797
  const VaporDynamicComponentFlags = {
742
798
  "SINGLE_ROOT": 1,
@@ -744,7 +800,11 @@ const VaporDynamicComponentFlags = {
744
800
  "ONCE": 2,
745
801
  "2": "ONCE",
746
802
  "SLOT_ROOT": 4,
747
- "4": "SLOT_ROOT"
803
+ "4": "SLOT_ROOT",
804
+ "NS_SVG": 8,
805
+ "8": "NS_SVG",
806
+ "NS_MATHML": 16,
807
+ "16": "NS_MATHML"
748
808
  };
749
809
  //#endregion
750
810
  exports.EMPTY_ARR = EMPTY_ARR;
@@ -761,6 +821,7 @@ exports.VaporBlockShape = VaporBlockShape;
761
821
  exports.VaporDynamicComponentFlags = VaporDynamicComponentFlags;
762
822
  exports.VaporIfFlags = VaporIfFlags;
763
823
  exports.VaporSlotFlags = VaporSlotFlags;
824
+ exports.VaporSlotStability = VaporSlotStability;
764
825
  exports.VaporVForFlags = VaporVForFlags;
765
826
  exports.YES = YES;
766
827
  exports.camelize = camelize;
@@ -791,6 +852,7 @@ exports.isBuiltInDirective = isBuiltInDirective;
791
852
  exports.isBuiltInTag = isBuiltInTag;
792
853
  exports.isDate = isDate;
793
854
  exports.isFormattingTag = isFormattingTag;
855
+ exports.isForwardedSlot = isForwardedSlot;
794
856
  exports.isFunction = isFunction;
795
857
  exports.isGloballyAllowed = isGloballyAllowed;
796
858
  exports.isGloballyWhitelisted = isGloballyWhitelisted;
@@ -832,6 +894,8 @@ exports.propsToAttrMap = propsToAttrMap;
832
894
  exports.remove = remove;
833
895
  exports.shouldSetAsAttr = shouldSetAsAttr;
834
896
  exports.slotFlagsText = slotFlagsText;
897
+ exports.slotInheritsFallback = slotInheritsFallback;
898
+ exports.slotNotifiesBoundary = slotNotifiesBoundary;
835
899
  exports.stringifyStyle = stringifyStyle;
836
900
  exports.toDisplayString = toDisplayString;
837
901
  exports.toHandlerKey = toHandlerKey;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/shared v3.6.0-rc.1
2
+ * @vue/shared v3.6.0-rc.11
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -15,7 +15,7 @@ Object.defineProperties(exports, {
15
15
  * \/\*#\_\_PURE\_\_\*\/
16
16
  * So that they can be tree-shaken if necessary.
17
17
  */
18
- /* @__NO_SIDE_EFFECTS__ */
18
+ /*@__NO_SIDE_EFFECTS__*/
19
19
  function makeMap(str) {
20
20
  const map = Object.create(null);
21
21
  for (const key of str.split(",")) map[key] = 1;
@@ -63,9 +63,9 @@ const toRawType = (value) => {
63
63
  };
64
64
  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
65
65
  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
66
- const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
67
- const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
68
- const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
66
+ const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
67
+ const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
68
+ const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
69
69
  const cacheStringFunction = (fn) => {
70
70
  const cache = Object.create(null);
71
71
  return ((str) => {
@@ -238,6 +238,8 @@ const ShapeFlags = {
238
238
  "256": "COMPONENT_SHOULD_KEEP_ALIVE",
239
239
  "COMPONENT_KEPT_ALIVE": 512,
240
240
  "512": "COMPONENT_KEPT_ALIVE",
241
+ "SLOT_FALLBACK": 1024,
242
+ "1024": "SLOT_FALLBACK",
241
243
  "COMPONENT": 6,
242
244
  "6": "COMPONENT"
243
245
  };
@@ -259,7 +261,7 @@ const slotFlagsText = {
259
261
  [2]: "DYNAMIC",
260
262
  [3]: "FORWARDED"
261
263
  };
262
- 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");
264
+ 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");
263
265
  /** @deprecated use `isGloballyAllowed` instead */
264
266
  const isGloballyWhitelisted = isGloballyAllowed;
265
267
  //#endregion
@@ -315,10 +317,10 @@ function normalizeStyle(value) {
315
317
  }
316
318
  const listDelimiterRE = /;(?![^(]*\))/g;
317
319
  const propertyDelimiterRE = /:([^]+)/;
318
- const styleCommentRE = /\/\*[^]*?\*\//g;
320
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
319
321
  function parseStringStyle(cssText) {
320
322
  const ret = {};
321
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
323
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
322
324
  if (item) {
323
325
  const tmp = item.split(propertyDelimiterRE);
324
326
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -365,49 +367,49 @@ const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,col
365
367
  const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics";
366
368
  const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
367
369
  const FORMATTING_TAGS = "a,b,big,code,em,font,i,nobr,s,small,strike,strong,tt,u";
368
- const ALWAYS_CLOSE_TAGS = "title,style,script,noscript,template,object,table,button,textarea,select,iframe,fieldset";
370
+ const ALWAYS_CLOSE_TAGS = "title,style,script,noscript,template,object,table,button,textarea,select,iframe,fieldset,form,foreignObject,desc,mi,mo,mn,ms,mtext,annotation-xml";
369
371
  const INLINE_TAGS = "a,abbr,acronym,b,bdi,bdo,big,br,button,canvas,cite,code,data,datalist,del,dfn,em,embed,i,iframe,img,input,ins,kbd,label,map,mark,meter,noscript,object,output,picture,progress,q,ruby,s,samp,script,select,small,span,strong,sub,sup,svg,textarea,time,u,tt,var,video";
370
372
  const BLOCK_TAGS = "address,article,aside,blockquote,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,main,menu,nav,ol,p,pre,section,table,ul";
371
373
  /**
372
374
  * Compiler only.
373
375
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
374
376
  */
375
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
377
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
376
378
  /**
377
379
  * Compiler only.
378
380
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
379
381
  */
380
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
382
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
381
383
  /**
382
384
  * Compiler only.
383
385
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
384
386
  */
385
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
387
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
386
388
  /**
387
389
  * Compiler only.
388
390
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
389
391
  */
390
- const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
392
+ const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
391
393
  /**
392
394
  * Compiler only.
393
395
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
394
396
  */
395
- const isFormattingTag = /* @__PURE__ */ makeMap(FORMATTING_TAGS);
397
+ const isFormattingTag = /*@__PURE__*/ makeMap(FORMATTING_TAGS);
396
398
  /**
397
399
  * Compiler only.
398
400
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
399
401
  */
400
- const isAlwaysCloseTag = /* @__PURE__ */ makeMap(ALWAYS_CLOSE_TAGS);
402
+ const isAlwaysCloseTag = /*@__PURE__*/ makeMap(ALWAYS_CLOSE_TAGS);
401
403
  /**
402
404
  * Compiler only.
403
405
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
404
406
  */
405
- const isInlineTag = /* @__PURE__ */ makeMap(INLINE_TAGS);
407
+ const isInlineTag = /*@__PURE__*/ makeMap(INLINE_TAGS);
406
408
  /**
407
409
  * Compiler only.
408
410
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
409
411
  */
410
- const isBlockTag = /* @__PURE__ */ makeMap(BLOCK_TAGS);
412
+ const isBlockTag = /*@__PURE__*/ makeMap(BLOCK_TAGS);
411
413
  //#endregion
412
414
  //#region packages/shared/src/domAttrConfig.ts
413
415
  /**
@@ -422,11 +424,11 @@ const isBlockTag = /* @__PURE__ */ makeMap(BLOCK_TAGS);
422
424
  * - readonly -> readOnly
423
425
  */
424
426
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
425
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
427
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
426
428
  /**
427
429
  * The full list is needed during SSR to produce the correct initial markup.
428
430
  */
429
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
431
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
430
432
  /**
431
433
  * Boolean attributes should be included if the value is truthy or ''.
432
434
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -434,7 +436,7 @@ const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,auto
434
436
  function includeBooleanAttr(value) {
435
437
  return !!value || value === "";
436
438
  }
437
- const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
439
+ const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u000d\u0020]/;
438
440
  const attrValidationCache = {};
439
441
  function isSSRSafeAttrName(name) {
440
442
  if (attrValidationCache.hasOwnProperty(name)) return attrValidationCache[name];
@@ -454,15 +456,15 @@ const propsToAttrMap = {
454
456
  * Don't also forget to allow `data-*` and `aria-*`!
455
457
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
456
458
  */
457
- 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");
459
+ 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");
458
460
  /**
459
461
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
460
462
  */
461
- 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");
463
+ 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");
462
464
  /**
463
465
  * Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
464
466
  */
465
- const isKnownMathMLAttr = /* @__PURE__ */ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
467
+ const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
466
468
  /**
467
469
  * Shared between server-renderer and runtime-core hydration logic
468
470
  */
@@ -541,13 +543,54 @@ function getEscapedCssVarName(key, doubleEscape) {
541
543
  }
542
544
  //#endregion
543
545
  //#region packages/shared/src/looseEqual.ts
544
- function looseCompareArrays(a, b) {
546
+ function looseCompareArrays(a, b, seen) {
545
547
  if (a.length !== b.length) return false;
546
548
  let equal = true;
547
- for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
549
+ for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
548
550
  return equal;
549
551
  }
550
- function looseEqual(a, b) {
552
+ function looseCompareCollections(a, b, seen) {
553
+ if (a.size !== b.size) return false;
554
+ const candidates = Array.from(b);
555
+ const matched = new Uint8Array(candidates.length);
556
+ for (const item of a) {
557
+ let index = -1;
558
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
559
+ index = i;
560
+ break;
561
+ }
562
+ if (index < 0) return false;
563
+ matched[index] = 1;
564
+ }
565
+ return true;
566
+ }
567
+ function looseCompareObjects(a, b, seen) {
568
+ let aValidType = isMap(a);
569
+ let bValidType = isMap(b);
570
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
571
+ aValidType = isSet(a);
572
+ bValidType = isSet(b);
573
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
574
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
575
+ for (const key in a) {
576
+ const aHasKey = a.hasOwnProperty(key);
577
+ const bHasKey = b.hasOwnProperty(key);
578
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
579
+ }
580
+ return String(a) === String(b);
581
+ }
582
+ function looseCompareNested(a, b, seen, compare) {
583
+ if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
584
+ const [seenA, seenB] = seen;
585
+ if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
586
+ seenA.set(a, b);
587
+ seenB.set(b, a);
588
+ const equal = compare(a, b, seen);
589
+ seenA.delete(a);
590
+ seenB.delete(b);
591
+ return equal;
592
+ }
593
+ function looseEqual(a, b, seen) {
551
594
  if (a === b) return true;
552
595
  let aValidType = isDate(a);
553
596
  let bValidType = isDate(b);
@@ -557,17 +600,12 @@ function looseEqual(a, b) {
557
600
  if (aValidType || bValidType) return a === b;
558
601
  aValidType = isArray(a);
559
602
  bValidType = isArray(b);
560
- if (aValidType || bValidType) return aValidType && bValidType ? looseCompareArrays(a, b) : false;
603
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
561
604
  aValidType = isObject(a);
562
605
  bValidType = isObject(b);
563
606
  if (aValidType || bValidType) {
564
607
  if (!aValidType || !bValidType) return false;
565
- if (Object.keys(a).length !== Object.keys(b).length) return false;
566
- for (const key in a) {
567
- const aHasKey = a.hasOwnProperty(key);
568
- const bHasKey = b.hasOwnProperty(key);
569
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
570
- }
608
+ return looseCompareNested(a, b, seen, looseCompareObjects);
571
609
  }
572
610
  return String(a) === String(b);
573
611
  }
@@ -675,7 +713,9 @@ const VaporVForFlags = {
675
713
  "IS_FRAGMENT": 16,
676
714
  "16": "IS_FRAGMENT",
677
715
  "SLOT_ROOT": 32,
678
- "32": "SLOT_ROOT"
716
+ "32": "SLOT_ROOT",
717
+ "WRAPPED_ROWS": 64,
718
+ "64": "WRAPPED_ROWS"
679
719
  };
680
720
  const VaporBlockShape = {
681
721
  "EMPTY": 0,
@@ -733,10 +773,26 @@ const VaporSlotFlags = {
733
773
  "1": "NO_SLOTTED",
734
774
  "ONCE": 2,
735
775
  "2": "ONCE",
736
- "SLOT_ROOT": 4,
737
- "4": "SLOT_ROOT",
738
- "NON_STABLE": 8,
739
- "8": "NON_STABLE"
776
+ "FORWARDED": 4,
777
+ "4": "FORWARDED",
778
+ "SHARED_FALLBACK": 8,
779
+ "8": "SHARED_FALLBACK"
780
+ };
781
+ function isForwardedSlot(flags) {
782
+ return !!(flags & 12);
783
+ }
784
+ function slotInheritsFallback(flags) {
785
+ return isForwardedSlot(flags) && !(flags & 8);
786
+ }
787
+ function slotNotifiesBoundary(flags) {
788
+ return isForwardedSlot(flags) && !(flags & 2);
789
+ }
790
+ /**
791
+ * Per-slot-function metadata attached by the compiler as `fn._`.
792
+ */
793
+ const VaporSlotStability = {
794
+ "NON_STABLE": 1,
795
+ "1": "NON_STABLE"
740
796
  };
741
797
  const VaporDynamicComponentFlags = {
742
798
  "SINGLE_ROOT": 1,
@@ -744,7 +800,11 @@ const VaporDynamicComponentFlags = {
744
800
  "ONCE": 2,
745
801
  "2": "ONCE",
746
802
  "SLOT_ROOT": 4,
747
- "4": "SLOT_ROOT"
803
+ "4": "SLOT_ROOT",
804
+ "NS_SVG": 8,
805
+ "8": "NS_SVG",
806
+ "NS_MATHML": 16,
807
+ "16": "NS_MATHML"
748
808
  };
749
809
  //#endregion
750
810
  exports.EMPTY_ARR = EMPTY_ARR;
@@ -761,6 +821,7 @@ exports.VaporBlockShape = VaporBlockShape;
761
821
  exports.VaporDynamicComponentFlags = VaporDynamicComponentFlags;
762
822
  exports.VaporIfFlags = VaporIfFlags;
763
823
  exports.VaporSlotFlags = VaporSlotFlags;
824
+ exports.VaporSlotStability = VaporSlotStability;
764
825
  exports.VaporVForFlags = VaporVForFlags;
765
826
  exports.YES = YES;
766
827
  exports.camelize = camelize;
@@ -791,6 +852,7 @@ exports.isBuiltInDirective = isBuiltInDirective;
791
852
  exports.isBuiltInTag = isBuiltInTag;
792
853
  exports.isDate = isDate;
793
854
  exports.isFormattingTag = isFormattingTag;
855
+ exports.isForwardedSlot = isForwardedSlot;
794
856
  exports.isFunction = isFunction;
795
857
  exports.isGloballyAllowed = isGloballyAllowed;
796
858
  exports.isGloballyWhitelisted = isGloballyWhitelisted;
@@ -832,6 +894,8 @@ exports.propsToAttrMap = propsToAttrMap;
832
894
  exports.remove = remove;
833
895
  exports.shouldSetAsAttr = shouldSetAsAttr;
834
896
  exports.slotFlagsText = slotFlagsText;
897
+ exports.slotInheritsFallback = slotInheritsFallback;
898
+ exports.slotNotifiesBoundary = slotNotifiesBoundary;
835
899
  exports.stringifyStyle = stringifyStyle;
836
900
  exports.toDisplayString = toDisplayString;
837
901
  exports.toHandlerKey = toHandlerKey;