From 14e22728d1c03eb4cc770c8c93cfe9296b1a9441 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期一, 06 一月 2025 13:39:57 +0800 Subject: [PATCH] 下载到本地 --- customer_list/ch/ai_html/lib/vue-3.3.4.js | 15363 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ customer_list/ch/ai_html/views/extension/index.css | 9 customer_list/ch/ai_html/views/extension/index.html | 240 customer_list/ch/ai_html/lib/unocss-attributify.global.js | 11 4 files changed, 15,525 insertions(+), 98 deletions(-) diff --git a/customer_list/ch/ai_html/lib/unocss-attributify.global.js b/customer_list/ch/ai_html/lib/unocss-attributify.global.js new file mode 100644 index 0000000..2f6ff52 --- /dev/null +++ b/customer_list/ch/ai_html/lib/unocss-attributify.global.js @@ -0,0 +1,11 @@ +"use strict";(()=>{var nl=Object.defineProperty;var ol=(e,t)=>{for(var r in t)nl(e,r,{get:t[r],enumerable:!0})};var Fe="default",lt="preflights",il="shortcuts",sl="imports",In={[sl]:-200,[lt]:-100,[il]:-10,[Fe]:0};var ct=/[\\:]?[\s'"`;{}]+/g;function al(e){return e.split(ct)}var ut={name:"@unocss/core/extractor-split",order:0,extract({code:e}){return al(e)}};function O(e=[]){return Array.isArray(e)?e:[e]}function X(e){return Array.from(new Set(e))}function Br(e,t){return e.reduce((r,n)=>(r.findIndex(i=>t(n,i))===-1&&r.push(n),r),[])}function P(e){return typeof e=="string"}var _e=class extends Set{_map;constructor(t){super(t),this._map??=new Map}add(t){return this._map??=new Map,this._map.set(t,(this._map.get(t)??0)+1),super.add(t)}delete(t){return this._map.delete(t),super.delete(t)}clear(){this._map.clear(),super.clear()}getCount(t){return this._map.get(t)??0}setCount(t,r){return this._map.set(t,r),super.add(t)}};function ft(e){return e instanceof _e}function fe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function se(e){let t=e.length,r=-1,n,o="",i=e.charCodeAt(0);for(;++r<t;){if(n=e.charCodeAt(r),n===0){o+="\uFFFD";continue}if(n===37){o+="\\%";continue}if(n===44){o+="\\,";continue}if(n>=1&&n<=31||n===127||r===0&&n>=48&&n<=57||r===1&&n>=48&&n<=57&&i===45){o+=`\\${n.toString(16)} `;continue}if(r===0&&t===1&&n===45){o+=`\\${e.charAt(r)}`;continue}if(n>=128||n===45||n===95||n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122){o+=e.charAt(r);continue}o+=`\\${e.charAt(r)}`}return o}var pt=se;var ll=/^\[(.+?)~?="(.*)"\]$/;var cl=/[\w\u00A0-\uFFFF%-?]/;function Kn(e){return e.match(ll)}function Le(e=""){return cl.test(e)}function Gn(e){return typeof e=="function"?{match:e}:e}function Nr(e){return e.length===3}function dt(e){return e!=null}function Hn(){}var mt=class{_map=new Map;get(t,r){let n=this._map.get(t);if(n)return n.get(r)}getFallback(t,r,n){let o=this._map.get(t);return o||(o=new Map,this._map.set(t,o)),o.has(r)||o.set(r,n),o.get(r)}set(t,r,n){let o=this._map.get(t);return o||(o=new Map,this._map.set(t,o)),o.set(r,n),this}has(t,r){return this._map.get(t)?.has(r)}delete(t,r){return this._map.get(t)?.delete(r)||!1}deleteTop(t){return this._map.delete(t)}map(t){return Array.from(this._map.entries()).flatMap(([r,n])=>Array.from(n.entries()).map(([o,i])=>t(i,r,o)))}},ht=class extends Map{getFallback(t,r){let n=this.get(t);return n===void 0?(this.set(t,r),r):n}map(t){let r=[];return this.forEach((n,o)=>{r.push(t(n,o))}),r}flatMap(t){let r=[];return this.forEach((n,o)=>{r.push(...t(n,o))}),r}};function $e(e){return P(e)?e:(Array.isArray(e)?e:Object.entries(e)).filter(t=>t[1]!=null)}function qn(e){return Array.isArray(e)?e.find(t=>!Array.isArray(t)||Array.isArray(t[0]))?e.map(t=>$e(t)):[e]:[$e(e)]}function ul(e){return e.filter(([t,r],n)=>{if(t.startsWith("$$"))return!1;for(let o=n-1;o>=0;o--)if(e[o][0]===t&&e[o][1]===r)return!1;return!0})}function Se(e){return e==null?"":ul(e).map(([t,r])=>r!=null&&typeof r!="function"?`${t}:${r};`:void 0).filter(Boolean).join("")}function gt(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Dr(e,t,r=!1){let n=e,o=t;if(Array.isArray(o))return r&&Array.isArray(o)?[...n,...o]:[...o];let i={...n};return gt(n)&>(o)&&Object.keys(o).forEach(s=>{gt(n[s])&>(o[s])||Array.isArray(n[s])&&Array.isArray(o[s])?i[s]=Dr(n[s],o[s],r):Object.assign(i,{[s]:o[s]})}),i}function Ue(e){let t,r,n;if(Array.isArray(e)){for(r=Array.from({length:t=e.length});t--;)r[t]=(n=e[t])&&typeof n=="object"?Ue(n):n;return r}if(Object.prototype.toString.call(e)==="[object Object]"){r={};for(t in e)t==="__proto__"?Object.defineProperty(r,t,{value:Ue(e[t]),configurable:!0,enumerable:!0,writable:!0}):r[t]=(n=e[t])&&typeof n=="object"?Ue(n):n;return r}return e}function Yn(e){return P(e[0])}function Xn(e){return P(e[0])}var bt={};function fl(e=["-",":"]){let t=e.join("|");return bt[t]||(bt[t]=new RegExp(`((?:[!@<~\\w+:_-]|\\[&?>?:?\\S*\\])+?)(${t})\\(((?:[~!<>\\w\\s:/\\\\,%#.$?-]|\\[.*?\\])+?)\\)(?!\\s*?=>)`,"gm")),bt[t].lastIndex=0,bt[t]}function pl(e,t=["-",":"],r=5){let n=fl(t),o,i=e.toString(),s=new Set,l=new Map;do o=!1,i=i.replace(n,(u,f,p,m,d)=>{if(!t.includes(p))return u;o=!0,s.add(f+p);let h=d+f.length+p.length+1,g={length:u.length,items:[]};l.set(d,g);for(let w of[...m.matchAll(/\S+/g)]){let j=h+w.index,y=l.get(j)?.items;y?l.delete(j):y=[{offset:j,length:w[0].length,className:w[0]}];for(let $ of y)$.className=$.className==="~"?f:$.className.replace(/^(!?)(.*)/,`$1${f}${p}$2`),g.items.push($)}return"$".repeat(u.length)}),r-=1;while(o&&r);let a;if(typeof e=="string"){a="";let u=0;for(let[f,p]of l)a+=e.slice(u,f),a+=p.items.map(m=>m.className).join(" "),u=f+p.length;a+=e.slice(u)}else{a=e;for(let[u,f]of l)a.overwrite(u,u+f.length,f.items.map(p=>p.className).join(" "))}return{prefixes:Array.from(s),hasChanged:o,groupsByOffset:l,get expanded(){return a.toString()}}}function Zn(e,t=["-",":"],r=5){let n=pl(e,t,r);return typeof e=="string"?n.expanded:e}var Jn=new Set;function Qn(e){Jn.has(e)||(console.warn("[unocss]",e),Jn.add(e))}function ro(e){return O(e).flatMap(t=>Array.isArray(t)?[t]:Object.entries(t))}var eo="_uno_resolved";async function dl(e){let t=typeof e=="function"?await e():await e;if(eo in t)return t;t={...t},Object.defineProperty(t,eo,{value:!0,enumerable:!1});let r=t.shortcuts?ro(t.shortcuts):void 0;if(t.shortcuts=r,t.prefix||t.layer){let n=o=>{o[2]||(o[2]={});let i=o[2];i.prefix==null&&t.prefix&&(i.prefix=O(t.prefix)),i.layer==null&&t.layer&&(i.layer=t.layer)};r?.forEach(n),t.rules?.forEach(n)}return t}async function no(e){let t=await dl(e);if(!t.presets)return[t];let r=(await Promise.all((t.presets||[]).flatMap(O).flatMap(no))).flat();return[t,...r]}function ml(e){if(e.length===0)return{};let t=[],r=[],n=!1,o=[],i=[],s=[];for(let a of e){if(a.pipeline===!1){n=!0;break}else a.pipeline?.include&&t.push(a.pipeline.include),a.pipeline?.exclude&&r.push(a.pipeline.exclude);a.filesystem&&o.push(a.filesystem),a.inline&&i.push(a.inline),a.plain&&s.push(a.plain)}let l={pipeline:n?!1:{include:X(to(...t)),exclude:X(to(...r))}};return o.length&&(l.filesystem=X(o.flat())),i.length&&(l.inline=X(i.flat())),s.length&&(l.plain=X(s.flat())),l}async function Ir(e={},t={}){let r=Object.assign({},t,e),n=Br((await Promise.all((r.presets||[]).flatMap(O).flatMap(no))).flat(),(x,b)=>x.name===b.name),o=[...n.filter(x=>x.enforce==="pre"),...n.filter(x=>!x.enforce),...n.filter(x=>x.enforce==="post")],i=[...o,r],s=[...i].reverse(),l=Object.assign({},In,...i.map(x=>x.layers));function a(x){return X(i.flatMap(b=>O(b[x]||[])))}let u=a("extractors"),f=s.find(x=>x.extractorDefault!==void 0)?.extractorDefault;f===void 0&&(f=ut),f&&!u.includes(f)&&u.unshift(f),u.sort((x,b)=>(x.order||0)-(b.order||0));let p=a("rules"),m={},d=p.length,h=p.filter(x=>Yn(x)?(O(x[2]?.prefix||"").forEach(k=>{m[k+x[0]]=x}),!1):!0).reverse(),g=hl(i.map(x=>x.theme)),w=a("extendTheme");for(let x of w)g=x(g)||g;let j={templates:X(i.flatMap(x=>O(x.autocomplete?.templates))),extractors:i.flatMap(x=>O(x.autocomplete?.extractors)).sort((x,b)=>(x.order||0)-(b.order||0)),shorthands:gl(i.map(x=>x.autocomplete?.shorthands||{}))},y=a("separators");y.length||(y=[":","-"]);let $=a("content"),L=ml($),E={mergeSelectors:!0,warn:!0,sortLayers:x=>x,...r,blocklist:a("blocklist"),presets:o,envMode:r.envMode||"build",shortcutsLayer:r.shortcutsLayer||"shortcuts",layers:l,theme:g,rules:p,rulesSize:d,rulesDynamic:h,rulesStaticMap:m,preprocess:a("preprocess"),postprocess:a("postprocess"),preflights:a("preflights"),autocomplete:j,variants:a("variants").map(Gn).sort((x,b)=>(x.order||0)-(b.order||0)),shortcuts:ro(a("shortcuts")).reverse(),extractors:u,safelist:a("safelist"),separators:y,details:r.details??r.envMode==="dev",content:L,transformers:Br(a("transformers"),(x,b)=>x.name===b.name)};for(let x of i)x?.configResolved?.(E);return E}function hl(e){return e.map(t=>t?Ue(t):{}).reduce((t,r)=>Dr(t,r),{})}function gl(e){return e.reduce((t,r)=>{let n={};for(let o in r){let i=r[o];Array.isArray(i)?n[o]=`(${i.join("|")})`:n[o]=i}return{...t,...n}},{})}function to(...e){return e.flatMap(bl)}function bl(e){return Array.isArray(e)?e:e?[e]:[]}var oo="0.65.3";function io(){return{events:{},emit(e,...t){(this.events[e]||[]).forEach(r=>r(...t))},on(e,t){return(this.events[e]=this.events[e]||[]).push(t),()=>this.events[e]=(this.events[e]||[]).filter(r=>r!==t)}}}var pe={shortcutsNoMerge:"$$symbol-shortcut-no-merge",variants:"$$symbol-variants",parent:"$$symbol-parent",selector:"$$symbol-selector",layer:"$$symbol-layer",sort:"$$symbol-sort"},Kr=class e{constructor(t={},r={}){this.userConfig=t;this.defaults=r}version=oo;events=io();config=void 0;cache=new Map;blocked=new Set;parentOrders=new Map;activatedRules=new Set;static async create(t={},r={}){let n=new e(t,r);return n.config=await Ir(n.userConfig,n.defaults),n.events.emit("config",n.config),n}async setConfig(t,r){t&&(r&&(this.defaults=r),this.userConfig=t,this.blocked.clear(),this.parentOrders.clear(),this.activatedRules.clear(),this.cache.clear(),this.config=await Ir(t,this.defaults),this.events.emit("config",this.config))}async applyExtractors(t,r,n=new Set){let o={original:t,code:t,id:r,extracted:n,envMode:this.config.envMode};for(let i of this.config.extractors){let s=await i.extract?.(o);if(s)if(ft(s)&&ft(n))for(let l of s)n.setCount(l,n.getCount(l)+s.getCount(l));else for(let l of s)n.add(l)}return n}makeContext(t,r){let n={rawSelector:t,currentSelector:r[1],theme:this.config.theme,generator:this,symbols:pe,variantHandlers:r[2],constructCSS:(...o)=>this.constructCustomCSS(n,...o),variantMatch:r};return n}async parseToken(t,r){if(this.blocked.has(t))return;let n=`${t}${r?` ${r}`:""}`;if(this.cache.has(n))return this.cache.get(n);let o=t;for(let a of this.config.preprocess)o=a(t);if(this.isBlocked(o)){this.blocked.add(t),this.cache.set(n,null);return}let i=await this.matchVariants(t,o);if(i.every(a=>!a||this.isBlocked(a[1]))){this.blocked.add(t),this.cache.set(n,null);return}let s=async a=>{let u=this.makeContext(t,[r||a[0],a[1],a[2],a[3]]);this.config.details&&(u.variants=[...a[3]]);let f=await this.expandShortcut(u.currentSelector,u);return f?await this.stringifyShortcuts(u.variantMatch,u,f[0],f[1]):(await this.parseUtil(u.variantMatch,u))?.map(m=>this.stringifyUtil(m,u)).filter(dt)},l=(await Promise.all(i.map(a=>s(a)))).flat().filter(a=>!!a);if(l?.length)return this.cache.set(n,l),l;this.cache.set(n,null)}async generate(t,r={}){let{id:n,scope:o,preflights:i=!0,safelist:s=!0,minify:l=!1,extendedInfo:a=!1}=r,u=P(t)?await this.applyExtractors(t,n,a?new _e:new Set):Array.isArray(t)?new Set(t):t;if(s){let b={generator:this,theme:this.config.theme};this.config.safelist.flatMap(k=>typeof k=="function"?k(b):k).forEach(k=>{u.has(k)||u.add(k)})}let f=l?"":` +`,p=new Set([Fe]),m=a?new Map:new Set,d=new Map,h={},g=Array.from(u).map(async b=>{if(m.has(b))return;let k=await this.parseToken(b);if(k!=null){m instanceof Map?m.set(b,{data:k,count:ft(u)?u.getCount(b):-1}):m.add(b);for(let R of k){let H=R[3]||"",q=R[4]?.layer;d.has(H)||d.set(H,[]),d.get(H).push(R),q&&p.add(q)}}});await Promise.all(g),await(async()=>{if(!i)return;let b={generator:this,theme:this.config.theme},k=new Set([]);this.config.preflights.forEach(({layer:R=lt})=>{p.add(R),k.add(R)}),h=Object.fromEntries(await Promise.all(Array.from(k).map(async R=>{let q=(await Promise.all(this.config.preflights.filter(ee=>(ee.layer||lt)===R).map(async ee=>await ee.getCSS(b)))).filter(Boolean).join(f);return[R,q]})))})();let w=this.config.sortLayers(Array.from(p).sort((b,k)=>(this.config.layers[b]??0)-(this.config.layers[k]??0)||b.localeCompare(k))),j={},y=this.config.outputToCssLayers,$=b=>{let k=b;return typeof y=="object"&&(k=y.cssLayerName?.(b)),k===null?null:k??b},L=(b=Fe)=>{if(j[b])return j[b];let k=Array.from(d).sort((q,ee)=>(this.parentOrders.get(q[0])??0)-(this.parentOrders.get(ee[0])??0)||q[0]?.localeCompare(ee[0]||"")||0).map(([q,ee])=>{let C=ee.length,A=ee.filter(z=>(z[4]?.layer||Fe)===b).sort((z,D)=>z[0]-D[0]||(z[4]?.sort||0)-(D[4]?.sort||0)||z[5]?.currentSelector?.localeCompare(D[5]?.currentSelector??"")||z[1]?.localeCompare(D[1]||"")||z[2]?.localeCompare(D[2]||"")||0).map(([,z,D,,at,,Ur])=>[[[(z&&vl(z,o))??"",at?.sort??0]],D,!!(Ur??at?.noMerge)]);if(!A.length)return;let F=A.reverse().map(([z,D,at],Ur)=>{if(!at&&this.config.mergeSelectors)for(let ue=Ur+1;ue<C;ue++){let re=A[ue];if(re&&!re[2]&&(z&&re[0]||z==null&&re[0]==null)&&re[1]===D)return z&&re[0]&&re[0].push(...z),null}let Wr=z?X(z.sort((ue,re)=>ue[1]-re[1]||ue[0]?.localeCompare(re[0]||"")||0).map(ue=>ue[0]).filter(Boolean)):[];return Wr.length?`${Wr.join(`,${f}`)}{${D}}`:D}).filter(Boolean).reverse().join(f);if(!q)return F;let U=q.split(" $$ ");return`${U.join("{")}{${f}${F}${f}${"}".repeat(U.length)}`}).filter(Boolean).join(f);i&&(k=[h[b],k].filter(Boolean).join(f));let R;y&&k&&(R=$(b),R!==null&&(k=`@layer ${R}{${f}${k}${f}}`));let H=l?"":`/* layer: ${b}${R&&R!==b?`, alias: ${R}`:""} */${f}`;return j[b]=k?H+k:""},E=(b=w,k)=>{let R=b.filter(H=>!k?.includes(H));return[y&&R.length>0?`@layer ${R.map($).filter(dt).join(", ")};`:void 0,...R.map(H=>L(H)||"")].filter(Boolean).join(f)};return{get css(){return E()},layers:w,matched:m,getLayers:E,getLayer:L,setLayer:async(b,k)=>{let R=await k(L(b));return j[b]=R,R}}}async matchVariants(t,r){let n={rawSelector:t,theme:this.config.theme,generator:this},o=async i=>{let s=!0,[,,l,a]=i;for(;s;){s=!1;let u=i[1];for(let f of this.config.variants){if(!f.multiPass&&a.has(f))continue;let p=await f.match(u,n);if(p){if(P(p)){if(p===u)continue;p={matcher:p}}if(Array.isArray(p)){if(!p.length)continue;if(p.length===1)p=p[0];else{if(f.multiPass)throw new Error("multiPass can not be used together with array return variants");let m=p.map(d=>{let h=d.matcher??u,g=[d,...l],w=new Set(a);return w.add(f),[i[0],h,g,w]});return(await Promise.all(m.map(d=>o(d)))).flat()}}i[1]=p.matcher??u,l.unshift(p),a.add(f),s=!0;break}}if(!s)break;if(l.length>500)throw new Error(`Too many variants applied to "${t}"`)}return[i]};return await o([t,r||t,[],new Set])}applyVariants(t,r=t[4],n=t[1]){let i=r.slice().sort((u,f)=>(u.order||0)-(f.order||0)).reduceRight((u,f)=>p=>{let m=f.body?.(p.entries)||p.entries,d=Array.isArray(f.parent)?f.parent:[f.parent,void 0];return(f.handle??kl)({...p,entries:m,selector:f.selector?.(p.selector,m)||p.selector,parent:d[0]||p.parent,parentOrder:d[1]||p.parentOrder,layer:f.layer||p.layer,sort:f.sort||p.sort},u)},u=>u)({prefix:"",selector:wl(n),pseudo:"",entries:t[2]}),{parent:s,parentOrder:l}=i;s!=null&&l!=null&&this.parentOrders.set(s,l);let a={selector:[i.prefix,i.selector,i.pseudo].join(""),entries:i.entries,parent:s,layer:i.layer,sort:i.sort,noMerge:i.noMerge};for(let u of this.config.postprocess)u(a);return a}constructCustomCSS(t,r,n){let o=$e(r);if(P(o))return o;let{selector:i,entries:s,parent:l}=this.applyVariants([0,n||t.rawSelector,o,void 0,t.variantHandlers]),a=`${i}{${Se(s)}}`;return l?`${l}{${a}}`:a}async parseUtil(t,r,n=!1,o){let i=P(t)?await this.matchVariants(t):[t],s=async([a,u,f])=>{this.config.details&&(r.rules=r.rules??[]);let p=this.config.rulesStaticMap[u];if(p&&p[1]&&(n||!p[2]?.internal)){r.generator.activatedRules.add(p),this.config.details&&r.rules.push(p);let d=this.config.rules.indexOf(p),h=$e(p[1]),g=p[2];return P(h)?[[d,h,g]]:[[d,a,h,g,f]]}r.variantHandlers=f;let{rulesDynamic:m}=this.config;for(let d of m){let[h,g,w]=d;if(w?.internal&&!n)continue;let j=u;if(w?.prefix){let E=O(w.prefix);if(o){let x=O(o);if(!E.some(b=>x.includes(b)))continue}else{let x=E.find(b=>u.startsWith(b));if(x==null)continue;j=u.slice(x.length)}}let y=j.match(h);if(!y)continue;let $=await g(y,r);if(!$)continue;if(r.generator.activatedRules.add(d),this.config.details&&r.rules.push(d),typeof $!="string")if(Symbol.asyncIterator in $){let E=[];for await(let x of $)x&&E.push(x);$=E}else Symbol.iterator in $&&!Array.isArray($)&&($=Array.from($).filter(dt));let L=qn($).filter(E=>E.length);if(L.length){let E=this.config.rules.indexOf(d);return L.map(x=>{if(P(x))return[E,x,w];let b=f,k=w;for(let R of x)R[0]===pe.variants?b=[...O(R[1]),...b]:R[0]===pe.parent?b=[{parent:R[1]},...b]:R[0]===pe.selector?b=[{selector:R[1]},...b]:R[0]===pe.layer?b=[{layer:R[1]},...b]:R[0]===pe.sort&&(k={...k,sort:R[1]});return[E,a,x,k,b]})}}},l=(await Promise.all(i.map(a=>s(a)))).flat().filter(a=>!!a);if(l.length)return l}stringifyUtil(t,r){if(!t)return;if(Nr(t))return[t[0],void 0,t[1],void 0,t[2],this.config.details?r:void 0,void 0];let{selector:n,entries:o,parent:i,layer:s,sort:l,noMerge:a}=this.applyVariants(t),u=Se(o);if(!u)return;let{layer:f,sort:p,...m}=t[3]??{},d={...m,layer:s??f,sort:l??p};return[t[0],n,u,i,d,this.config.details?r:void 0,a]}async expandShortcut(t,r,n=5){if(n===0)return;let o=this.config.details?u=>{r.shortcuts=r.shortcuts??[],r.shortcuts.push(u)}:Hn,i,s,l,a;for(let u of this.config.shortcuts){let f=t;if(u[2]?.prefix){let m=O(u[2].prefix).find(d=>t.startsWith(d));if(m==null)continue;f=t.slice(m.length)}if(Xn(u)){if(u[0]===f){i=i||u[2],s=u[1],o(u);break}}else{let p=f.match(u[0]);if(p&&(s=u[1](p,r)),s){i=i||u[2],o(u);break}}}if(s&&(l=X(O(s).filter(P).map(u=>Zn(u.trim()).split(/\s+/g)).flat()),a=O(s).filter(u=>!P(u)).map(u=>({handles:[],value:u}))),!s){let u=P(t)?await this.matchVariants(t):[t];for(let f of u){let[p,m,d]=f;if(p!==m){let h=await this.expandShortcut(m,r,n-1);h&&(l=h[0].filter(P).map(g=>p.replace(m,g)),a=h[0].filter(g=>!P(g)).map(g=>({handles:[...g.handles,...d],value:g.value})))}}}if(!(!l?.length&&!a?.length))return[[await Promise.all(O(l).map(async u=>(await this.expandShortcut(u,r,n-1))?.[0]||[u])),a].flat(2).filter(u=>!!u),i]}async stringifyShortcuts(t,r,n,o={layer:this.config.shortcutsLayer}){let i=new ht,s=(await Promise.all(X(n).map(async f=>{let p=P(f)?await this.parseUtil(f,r,!0,o.prefix):[[Number.POSITIVE_INFINITY,"{inline}",$e(f.value),void 0,f.handles]];return!p&&this.config.warn&&Qn(`unmatched utility "${f}" in shortcut "${t[1]}"`),p||[]}))).flat(1).filter(Boolean).sort((f,p)=>f[0]-p[0]),[l,,a]=t,u=[];for(let f of s){if(Nr(f)){u.push([f[0],void 0,f[1],void 0,f[2],r,void 0]);continue}let{selector:p,entries:m,parent:d,sort:h,noMerge:g,layer:w}=this.applyVariants(f,[...f[4],...a],l);i.getFallback(w??o.layer,new mt).getFallback(p,d,[[],f[0]])[0].push([m,!!(g??f[3]?.noMerge),h??0])}return u.concat(i.flatMap((f,p)=>f.map(([m,d],h,g)=>{let w=(y,$,L)=>{let E=Math.max(...L.map(b=>b[1])),x=L.map(b=>b[0]);return(y?[x.flat(1)]:x).map(b=>{let k=Se(b);if(k)return[d,h,k,g,{...o,noMerge:$,sort:E,layer:p},r,void 0]})};return[[m.filter(([,y])=>y).map(([y,,$])=>[y,$]),!0],[m.filter(([,y])=>!y).map(([y,,$])=>[y,$]),!1]].map(([y,$])=>[...w(!1,$,y.filter(([L])=>L.some(E=>E[0]===pe.shortcutsNoMerge))),...w(!0,$,y.filter(([L])=>L.every(E=>E[0]!==pe.shortcutsNoMerge)))])}).flat(2).filter(Boolean)))}isBlocked(t){return!t||this.config.blocklist.map(r=>Array.isArray(r)?r[0]:r).some(r=>typeof r=="function"?r(t):P(r)?r===t:r.test(t))}getBlocked(t){let r=this.config.blocklist.find(n=>{let o=Array.isArray(n)?n[0]:n;return typeof o=="function"?o(t):P(o)?o===t:o.test(t)});return r?Array.isArray(r)?r:[r,void 0]:void 0}};async function ao(e,t){return await Kr.create(e,t)}var lo=/\s\$\$\s+/g;function yl(e){return lo.test(e)}function vl(e,t){return yl(e)?e.replace(lo,t?` ${t} `:" "):t?`${t} ${e}`:e}var so=/^\[(.+?)(~?=)"(.*)"\]$/;function wl(e){return so.test(e)?e.replace(so,(t,r,n,o)=>`[${pt(r)}${n}"${pt(o)}"]`):`.${pt(e)}`}function kl(e,t){return t(e)}var Gr=/^(?!.*\[[^:]+:.+\]$)((?:.+:)?!?)(.*)$/;function co(e={}){let t=e.prefix??"un-",r=e.prefixedOnly??!1,n=e.trueToNonValued??!1,o;return{name:"attributify",match(i,{generator:s}){let l=Kn(i);if(!l)return;let a=l[1];if(a.startsWith(t))a=a.slice(t.length);else if(r)return;let u=l[2],[,f="",p=u]=u.match(Gr)||[];if(p==="~"||n&&p==="true"||!p)return`${f}${a}`;if(o==null){let m=s?.config?.separators?.join("|");m?o=new RegExp(`^(.*\\](?:${m}))(\\[[^\\]]+?\\])$`):o=!1}if(o){let[,m,d]=u.match(o)||[];if(d)return`${m}${f}${a}-${d}`}if(f&&p.match(/^[\d.]+$/)){let m=f.split(/([^:]*:)/g).filter(Boolean),d=m.pop()+p,h=m.join("");return[{matcher:`${f}${a}-${p}`},{matcher:`${h}${a}-${d}`}]}return`${f}${a}-${p}`}}}var $l=/(<\w[\w:.$-]*\s)((?:'[^>']*'|"[^>"]*"|`[^>`]*`|\{[^>}]*\}|[^>]*?)*)/g,Sl=/(\?|(?!\d|-{2}|-\d)[\w\u00A0-\uFFFF-:%]+)(?:=("[^"]*|'[^']*))?/g,uo=/[\s'"`;>]+/;function fo(e){return{name:"attributify",extract:({content:t,cursor:r})=>{let n=t.matchAll($l),o,i=0;for(let y of n){let[,$,L]=y,E=y.index+$.length;if(r>E&&r<=E+L.length){i=E,o=L;break}}if(!o)return null;let s=o.matchAll(Sl),l=0,a,u;for(let y of s){let[$,L,E]=y,x=i+y.index;if(r>x&&r<=x+$.length){l=x,a=L,u=E?.slice(1);break}}if(!a||a==="class"||a==="className"||a===":class")return null;let f=!!e?.prefix&&a.startsWith(e.prefix);if(e?.prefixedOnly&&!f)return null;let p=f?a.slice(e.prefix.length):a;if(u===void 0)return{extracted:p,resolveReplacement(y){let $=f?e.prefix.length:0;return{start:l+$,end:l+a.length,replacement:y}}};let m=l+a.length+2,d=uo.exec(u),h=0,g;for(;d;){let[y]=d;if(r>m+h&&r<=m+h+d.index){g=u.slice(h,h+d.index);break}h+=d.index+y.length,d=uo.exec(u.slice(h))}g===void 0&&(g=u.slice(h));let[,w="",j]=g.match(Gr)||[];return{extracted:`${w}${p}-${j}`,transformSuggestions(y){return y.filter($=>$.startsWith(`${w}${p}-`)).map($=>w+$.slice(w.length+p.length+1))},resolveReplacement(y){return{start:h+m,end:h+m+g.length,replacement:w+y.slice(w.length+p.length+1)}}}}}}var Cl=["v-bind:",":"],po=/[\s'"`;]+/g,Hr=/<[^>\s]*\s((?:'[^']*'|"[^"]*"|`[^`]*`|\{[^}]*\}|=>|[^>]*?)*)/g,Rl=/(\?|(?!\d|-{2}|-\d)[\w\u00A0-\uFFFF:!%.~<-]+)=?(?:"([^"]*)"|'([^']*)'|\{([^}]*)\})?/g,qr=["placeholder","fill","opacity","stroke-opacity"];function mo(e){let t=e?.ignoreAttributes??qr,r=e?.nonValuedAttribute??!0,n=e?.trueToNonValued??!1;return{name:"@unocss/preset-attributify/extractor",extract({code:o}){return Array.from(o.matchAll(Hr)).flatMap(i=>Array.from((i[1]||"").matchAll(Rl))).flatMap(([,i,...s])=>{let l=s.filter(Boolean).join("");if(t.includes(i))return[];for(let a of Cl)if(i.startsWith(a)){i=i.slice(a.length);break}if(!l){if(Le(i)&&r!==!1){let a=[`[${i}=""]`];return n&&a.push(`[${i}="true"]`),a}return[]}return["class","className"].includes(i)?l.split(po).filter(Le):Hr.test(l)?(Hr.lastIndex=0,this.extract({code:l})):e?.prefixedOnly&&e.prefix&&!i.startsWith(e.prefix)?[]:l.split(po).filter(a=>!!a&&a!==":").map(a=>`[${i}~="${a}"]`)})}}}var El=(e={})=>{e.strict=e.strict??!1,e.prefix=e.prefix??"un-",e.prefixedOnly=e.prefixedOnly??!1,e.nonValuedAttribute=e.nonValuedAttribute??!0,e.ignoreAttributes=e.ignoreAttributes??qr;let t=[co(e)],r=[mo(e)],n=[fo(e)];return{name:"@unocss/preset-attributify",enforce:"post",variants:t,extractors:r,options:e,autocomplete:{extractors:n},extractorDefault:e.strict?!1:void 0}},ho=El;function Tl(e){let t,r,n=2166136261;for(t=0,r=e.length;t<r;t++)n^=e.charCodeAt(t),n+=(n<<1)+(n<<4)+(n<<7)+(n<<8)+(n<<24);return`00000${(n>>>0).toString(36)}`.slice(-6)}function go(e,t,r,n){for(let o of Array.from(e.matchAll(r)))if(o!=null){let i=o[0],s=`${n}${Tl(i)}`;t.set(s,i),e=e.replace(i,s)}return e}function bo(e,t){for(let[r,n]of t.entries())e=e.replaceAll(r,n);return e}var jl=/\/\/#\s*sourceMappingURL=.*\n?/g;function xo(e){return e.includes("sourceMappingURL=")?e.replace(jl,""):e}var zl=/(?:[\w&:[\]-]|\[\S{1,64}=\S{1,64}\]){1,64}\[\\?['"]?\S{1,64}?['"]\]\]?[\w:-]{0,64}/g,Al=/\[(\\\W|[\w-]){1,64}:[^\s:]{0,64}?("\S{1,64}?"|'\S{1,64}?'|`\S{1,64}?`|[^\s:]{1,64}?)[^\s:]{0,64}?\)?\]/g,Ol=/^\[(?:\\\W|[\w-]){1,64}:['"]?\S{1,64}?['"]?\]$/;function Vl(e){let t=[];for(let o of e.matchAll(Al))o.index!==0&&!/^[\s'"`]/.test(e[o.index-1]??"")||t.push(o[0]);for(let o of e.matchAll(zl))t.push(o[0]);let r=new Map,n="@unocss-skip-arbitrary-brackets";return e=go(e,r,/-\[(?!&.+?;)[^\]]*\]/g,n),e&&e.split(ct).forEach(o=>{o.includes(n)&&(o=bo(o,r)),Le(o)&&!Ol.test(o)&&t.push(o)}),t}function yo(){return{name:"@unocss/extractor-arbitrary-variants",order:0,extract({code:e}){return Vl(xo(e))}}}function vo(e){if(e.preflight)return[{layer:"preflights",getCSS({theme:t,generator:r}){if(t.preflightBase){let n=Object.entries(t.preflightBase);if(e.preflight==="on-demand"){let o=new Set(Array.from(r.activatedRules).map(i=>i[2]?.custom?.preflightKeys).filter(Boolean).flat());n=n.filter(([i])=>o.has(i))}if(n.length>0){let o=Se(n);return e.variablePrefix!=="un-"&&(o=o.replace(/--un-/g,`--${e.variablePrefix}`)),O(t.preflightRoot??["*,::before,::after","::backdrop"]).map(s=>`${s}{${o}}`).join("")}}}}]}function Ce(e,t,r){if(e==="")return;let n=e.length,o=0,i=!1,s=0;for(let l=0;l<n;l++)switch(e[l]){case t:i||(i=!0,s=l),o++;break;case r:if(--o,o<0)return;if(o===0)return[e.slice(s,l+1),e.slice(l+1),e.slice(0,s)];break}}function de(e,t,r,n){if(e===""||(P(n)&&(n=[n]),n.length===0))return;let o=e.length,i=0;for(let s=0;s<o;s++)switch(e[s]){case t:i++;break;case r:if(--i<0)return;break;default:for(let l of n){let a=l.length;if(a&&l===e.slice(s,s+a)&&i===0)return s===0||s===o-a?void 0:[e.slice(0,s),e.slice(s+a)]}}return[e,""]}function xe(e,t,r){r=r??10;let n=[],o=0;for(;e!=="";){if(++o>r)return;let i=de(e,"(",")",t);if(!i)return;let[s,l]=i;n.push(s),e=l}if(n.length>0)return n}var Yr=["hsl","hsla","hwb","lab","lch","oklab","oklch","rgb","rgba"],wo=["%alpha","<alpha-value>"],Pl=new RegExp(wo.map(e=>fe(e)).join("|"));function Y(e=""){let t=Ml(e);if(t==null||t===!1)return;let{type:r,components:n,alpha:o}=t,i=r.toLowerCase();if(n.length!==0&&!(Yr.includes(i)&&![1,3].includes(n.length)))return{type:i,components:n.map(s=>typeof s=="string"?s.trim():s),alpha:typeof o=="string"?o.trim():o}}function ae(e){let t=e.alpha??1;return typeof t=="string"&&wo.includes(t)?1:t}function M(e,t){if(typeof e=="string")return e.replace(Pl,`${t??1}`);let{components:r}=e,{alpha:n,type:o}=e;return n=t??n,o=o.toLowerCase(),["hsla","rgba"].includes(o)?`${o}(${r.join(", ")}${n==null?"":`, ${n}`})`:(n=n==null?"":` / ${n}`,Yr.includes(o)?`${o}(${r.join(" ")}${n})`:`color(${o} ${r.join(" ")}${n})`)}function Ml(e){if(!e)return;let t=Fl(e);if(t!=null||(t=_l(e),t!=null)||(t=Ll(e),t!=null)||(t=Wl(e),t!=null)||(t=Bl(e),t!=null))return t}function Fl(e){let[,t]=e.match(/^#([\da-f]+)$/i)||[];if(t)switch(t.length){case 3:case 4:let r=Array.from(t,o=>Number.parseInt(o,16)).map(o=>o<<4|o);return{type:"rgb",components:r.slice(0,3),alpha:t.length===3?void 0:Math.round(r[3]/255*100)/100};case 6:case 8:let n=Number.parseInt(t,16);return{type:"rgb",components:t.length===6?[n>>16&255,n>>8&255,n&255]:[n>>24&255,n>>16&255,n>>8&255],alpha:t.length===6?void 0:Math.round((n&255)/255*100)/100}}}function _l(e){let t={rebeccapurple:[102,51,153,1]}[e];if(t!=null)return{type:"rgb",components:t.slice(0,3),alpha:t[3]}}function Ll(e){let t=e.match(/^(rgb|rgba|hsl|hsla)\((.+)\)$/i);if(!t)return;let[,r,n]=t,o=xe(n,",",5);if(o){if([3,4].includes(o.length))return{type:r,components:o.slice(0,3),alpha:o[3]};if(o.length!==1)return!1}}var Ul=new RegExp(`^(${Yr.join("|")})\\((.+)\\)$`,"i");function Wl(e){let t=e.match(Ul);if(!t)return;let[,r,n]=t,o=ko(`${r} ${n}`);if(o){let{alpha:i,components:[s,...l]}=o;return{type:s,components:l,alpha:i}}}function Bl(e){let t=e.match(/^color\((.+)\)$/);if(!t)return;let r=ko(t[1]);if(r){let{alpha:n,components:[o,...i]}=r;return{type:o,components:i,alpha:n}}}function ko(e){let t=xe(e," ");if(!t)return;let r=t.length;if(t[r-2]==="/")return{components:t.slice(0,r-2),alpha:t[r-1]};if(t[r-2]!=null&&(t[r-2].endsWith("/")||t[r-1].startsWith("/"))){let i=t.splice(r-2);t.push(i.join(" ")),--r}let n=xe(t[r-1],"/",2);if(!n)return;if(n.length===1||n[n.length-1]==="")return{components:t};let o=n.pop();return t[r-1]=n.join("/"),{components:t,alpha:o}}function xt(e){let t=function(n){let o=this.__options?.sequence||[];this.__options.sequence=[];for(let i of o){let s=e[i](n);if(s!=null)return s}};function r(n,o){return n.__options||(n.__options={sequence:[]}),n.__options.sequence.push(o),n}for(let n of Object.keys(e))Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get(){return r(this,n)}});return t}var $o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ro=new Uint8Array(64),Nl=new Uint8Array(128);for(let e=0;e<$o.length;e++){let t=$o.charCodeAt(e);Ro[e]=t,Nl[t]=e}function We(e,t,r){let n=t-r;n=n<0?-n<<1|1:n<<1;do{let o=n&31;n>>>=5,n>0&&(o|=32),e.write(Ro[o])}while(n>0);return t}var So=1024*16,Co=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(e){return Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString()}}:{decode(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t}},Xr=class{constructor(){this.pos=0,this.out="",this.buffer=new Uint8Array(So)}write(t){let{buffer:r}=this;r[this.pos++]=t,this.pos===So&&(this.out+=Co.decode(r),this.pos=0)}flush(){let{buffer:t,out:r,pos:n}=this;return n>0?r+Co.decode(t.subarray(0,n)):r}};function Eo(e){let t=new Xr,r=0,n=0,o=0,i=0;for(let s=0;s<e.length;s++){let l=e[s];if(s>0&&t.write(59),l.length===0)continue;let a=0;for(let u=0;u<l.length;u++){let f=l[u];u>0&&t.write(44),a=We(t,f[0],a),f.length!==1&&(r=We(t,f[1],r),n=We(t,f[2],n),o=We(t,f[3],o),f.length!==4&&(i=We(t,f[4],i)))}}return t.flush()}var yt=class e{constructor(t){this.bits=t instanceof e?t.bits.slice():[]}add(t){this.bits[t>>5]|=1<<(t&31)}has(t){return!!(this.bits[t>>5]&1<<(t&31))}},vt=class e{constructor(t,r,n){this.start=t,this.end=r,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(t){this.outro+=t}appendRight(t){this.intro=this.intro+t}clone(){let t=new e(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t}contains(t){return this.start<t&&t<this.end}eachNext(t){let r=this;for(;r;)t(r),r=r.next}eachPrevious(t){let r=this;for(;r;)t(r),r=r.previous}edit(t,r,n){return this.content=t,n||(this.intro="",this.outro=""),this.storeName=r,this.edited=!0,this}prependLeft(t){this.outro=t+this.outro}prependRight(t){this.intro=t+this.intro}reset(){this.intro="",this.outro="",this.edited&&(this.content=this.original,this.storeName=!1,this.edited=!1)}split(t){let r=t-this.start,n=this.original.slice(0,r),o=this.original.slice(r);this.original=n;let i=new e(t,this.end,o);return i.outro=this.outro,this.outro="",this.end=t,this.edited?(i.edit("",!1),this.content=""):this.content=n,i.next=this.next,i.next&&(i.next.previous=i),i.previous=this,this.next=i,i}toString(){return this.intro+this.content+this.outro}trimEnd(t){if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;let r=this.content.replace(t,"");if(r.length)return r!==this.content&&(this.split(this.start+r.length).edit("",void 0,!0),this.edited&&this.edit(r,this.storeName,!0)),!0;if(this.edit("",void 0,!0),this.intro=this.intro.replace(t,""),this.intro.length)return!0}trimStart(t){if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;let r=this.content.replace(t,"");if(r.length){if(r!==this.content){let n=this.split(this.end-r.length);this.edited&&n.edit(r,this.storeName,!0),this.edit("",void 0,!0)}return!0}else if(this.edit("",void 0,!0),this.outro=this.outro.replace(t,""),this.outro.length)return!0}};function Dl(){return typeof globalThis<"u"&&typeof globalThis.btoa=="function"?e=>globalThis.btoa(unescape(encodeURIComponent(e))):typeof Buffer=="function"?e=>Buffer.from(e,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}var Il=Dl(),Zr=class{constructor(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=Eo(t.mappings),typeof t.x_google_ignoreList<"u"&&(this.x_google_ignoreList=t.x_google_ignoreList),typeof t.debugId<"u"&&(this.debugId=t.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+Il(this.toString())}};function Kl(e){let t=e.split(` +`),r=t.filter(i=>/^\t+/.test(i)),n=t.filter(i=>/^ {2,}/.test(i));if(r.length===0&&n.length===0)return null;if(r.length>=n.length)return" ";let o=n.reduce((i,s)=>{let l=/^ +/.exec(s)[0].length;return Math.min(l,i)},1/0);return new Array(o+1).join(" ")}function Gl(e,t){let r=e.split(/[/\\]/),n=t.split(/[/\\]/);for(r.pop();r[0]===n[0];)r.shift(),n.shift();if(r.length){let o=r.length;for(;o--;)r[o]=".."}return r.concat(n).join("/")}var Hl=Object.prototype.toString;function ql(e){return Hl.call(e)==="[object Object]"}function To(e){let t=e.split(` +`),r=[];for(let n=0,o=0;n<t.length;n++)r.push(o),o+=t[n].length+1;return function(o){let i=0,s=r.length;for(;i<s;){let u=i+s>>1;o<r[u]?s=u:i=u+1}let l=i-1,a=o-r[l];return{line:l,column:a}}}var Yl=/\w/,Jr=class{constructor(t){this.hires=t,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null}addEdit(t,r,n,o){if(r.length){let i=r.length-1,s=r.indexOf(` +`,0),l=-1;for(;s>=0&&i>s;){let u=[this.generatedCodeColumn,t,n.line,n.column];o>=0&&u.push(o),this.rawSegments.push(u),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,l=s,s=r.indexOf(` +`,s+1)}let a=[this.generatedCodeColumn,t,n.line,n.column];o>=0&&a.push(o),this.rawSegments.push(a),this.advance(r.slice(l+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(r));this.pending=null}addUneditedChunk(t,r,n,o,i){let s=r.start,l=!0,a=!1;for(;s<r.end;){if(n[s]===` +`)o.line+=1,o.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,l=!0,a=!1;else{if(this.hires||l||i.has(s)){let u=[this.generatedCodeColumn,t,o.line,o.column];this.hires==="boundary"?Yl.test(n[s])?a||(this.rawSegments.push(u),a=!0):(this.rawSegments.push(u),a=!1):this.rawSegments.push(u)}o.column+=1,this.generatedCodeColumn+=1,l=!1}s+=1}this.pending=null}advance(t){if(!t)return;let r=t.split(` +`);if(r.length>1){for(let n=0;n<r.length-1;n++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=r[r.length-1].length}},Be=` +`,Re={insertLeft:!1,insertRight:!1,storeName:!1},wt=class e{constructor(t,r={}){let n=new vt(0,t.length,t);Object.defineProperties(this,{original:{writable:!0,value:t},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:n},lastChunk:{writable:!0,value:n},lastSearchedChunk:{writable:!0,value:n},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:r.filename},indentExclusionRanges:{writable:!0,value:r.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new yt},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:r.ignoreList},offset:{writable:!0,value:r.offset||0}}),this.byStart[0]=n,this.byEnd[t.length]=n}addSourcemapLocation(t){this.sourcemapLocations.add(t)}append(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.outro+=t,this}appendLeft(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byEnd[t];return n?n.appendLeft(r):this.intro+=r,this}appendRight(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byStart[t];return n?n.appendRight(r):this.outro+=r,this}clone(){let t=new e(this.original,{filename:this.filename,offset:this.offset}),r=this.firstChunk,n=t.firstChunk=t.lastSearchedChunk=r.clone();for(;r;){t.byStart[n.start]=n,t.byEnd[n.end]=n;let o=r.next,i=o&&o.clone();i&&(n.next=i,i.previous=n,n=i),r=o}return t.lastChunk=n,this.indentExclusionRanges&&(t.indentExclusionRanges=this.indentExclusionRanges.slice()),t.sourcemapLocations=new yt(this.sourcemapLocations),t.intro=this.intro,t.outro=this.outro,t}generateDecodedMap(t){t=t||{};let r=0,n=Object.keys(this.storedNames),o=new Jr(t.hires),i=To(this.original);return this.intro&&o.advance(this.intro),this.firstChunk.eachNext(s=>{let l=i(s.start);s.intro.length&&o.advance(s.intro),s.edited?o.addEdit(r,s.content,l,s.storeName?n.indexOf(s.original):-1):o.addUneditedChunk(r,s,this.original,l,this.sourcemapLocations),s.outro.length&&o.advance(s.outro)}),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:[t.source?Gl(t.file||"",t.source):t.file||""],sourcesContent:t.includeContent?[this.original]:void 0,names:n,mappings:o.raw,x_google_ignoreList:this.ignoreList?[r]:void 0}}generateMap(t){return new Zr(this.generateDecodedMap(t))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=Kl(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(t,r){let n=/^[^\r\n]/gm;if(ql(t)&&(r=t,t=void 0),t===void 0&&(this._ensureindentStr(),t=this.indentStr||" "),t==="")return this;r=r||{};let o={};r.exclude&&(typeof r.exclude[0]=="number"?[r.exclude]:r.exclude).forEach(f=>{for(let p=f[0];p<f[1];p+=1)o[p]=!0});let i=r.indentStart!==!1,s=u=>i?`${t}${u}`:(i=!0,u);this.intro=this.intro.replace(n,s);let l=0,a=this.firstChunk;for(;a;){let u=a.end;if(a.edited)o[l]||(a.content=a.content.replace(n,s),a.content.length&&(i=a.content[a.content.length-1]===` +`));else for(l=a.start;l<u;){if(!o[l]){let f=this.original[l];f===` +`?i=!0:f!=="\r"&&i&&(i=!1,l===a.start||(this._splitChunk(a,l),a=a.next),a.prependRight(t))}l+=1}l=a.end,a=a.next}return this.outro=this.outro.replace(n,s),this}insert(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")}insertLeft(t,r){return Re.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),Re.insertLeft=!0),this.appendLeft(t,r)}insertRight(t,r){return Re.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),Re.insertRight=!0),this.prependRight(t,r)}move(t,r,n){if(t=t+this.offset,r=r+this.offset,n=n+this.offset,n>=t&&n<=r)throw new Error("Cannot move a selection inside itself");this._split(t),this._split(r),this._split(n);let o=this.byStart[t],i=this.byEnd[r],s=o.previous,l=i.next,a=this.byStart[n];if(!a&&i===this.lastChunk)return this;let u=a?a.previous:this.lastChunk;return s&&(s.next=l),l&&(l.previous=s),u&&(u.next=o),a&&(a.previous=i),o.previous||(this.firstChunk=i.next),i.next||(this.lastChunk=o.previous,this.lastChunk.next=null),o.previous=u,i.next=a||null,u||(this.firstChunk=o),a||(this.lastChunk=i),this}overwrite(t,r,n,o){return o=o||{},this.update(t,r,n,{...o,overwrite:!o.contentOnly})}update(t,r,n,o){if(t=t+this.offset,r=r+this.offset,typeof n!="string")throw new TypeError("replacement content must be a string");if(this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(r>this.original.length)throw new Error("end is out of bounds");if(t===r)throw new Error("Cannot overwrite a zero-length range \u2013 use appendLeft or prependRight instead");this._split(t),this._split(r),o===!0&&(Re.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),Re.storeName=!0),o={storeName:!0});let i=o!==void 0?o.storeName:!1,s=o!==void 0?o.overwrite:!1;if(i){let u=this.original.slice(t,r);Object.defineProperty(this.storedNames,u,{writable:!0,value:!0,enumerable:!0})}let l=this.byStart[t],a=this.byEnd[r];if(l){let u=l;for(;u!==a;){if(u.next!==this.byStart[u.end])throw new Error("Cannot overwrite across a split point");u=u.next,u.edit("",!1)}l.edit(n,i,!s)}else{let u=new vt(t,r,"").edit(n,i);a.next=u,u.previous=a}return this}prepend(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.intro=t+this.intro,this}prependLeft(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byEnd[t];return n?n.prependLeft(r):this.intro=r+this.intro,this}prependRight(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byStart[t];return n?n.prependRight(r):this.outro=r+this.outro,this}remove(t,r){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(t===r)return this;if(t<0||r>this.original.length)throw new Error("Character is out of bounds");if(t>r)throw new Error("end must be greater than start");this._split(t),this._split(r);let n=this.byStart[t];for(;n;)n.intro="",n.outro="",n.edit(""),n=r>n.end?this.byStart[n.end]:null;return this}reset(t,r){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(t===r)return this;if(t<0||r>this.original.length)throw new Error("Character is out of bounds");if(t>r)throw new Error("end must be greater than start");this._split(t),this._split(r);let n=this.byStart[t];for(;n;)n.reset(),n=r>n.end?this.byStart[n.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let t=this.lastChunk;do{if(t.outro.length)return t.outro[t.outro.length-1];if(t.content.length)return t.content[t.content.length-1];if(t.intro.length)return t.intro[t.intro.length-1]}while(t=t.previous);return this.intro.length?this.intro[this.intro.length-1]:""}lastLine(){let t=this.outro.lastIndexOf(Be);if(t!==-1)return this.outro.substr(t+1);let r=this.outro,n=this.lastChunk;do{if(n.outro.length>0){if(t=n.outro.lastIndexOf(Be),t!==-1)return n.outro.substr(t+1)+r;r=n.outro+r}if(n.content.length>0){if(t=n.content.lastIndexOf(Be),t!==-1)return n.content.substr(t+1)+r;r=n.content+r}if(n.intro.length>0){if(t=n.intro.lastIndexOf(Be),t!==-1)return n.intro.substr(t+1)+r;r=n.intro+r}}while(n=n.previous);return t=this.intro.lastIndexOf(Be),t!==-1?this.intro.substr(t+1)+r:this.intro+r}slice(t=0,r=this.original.length-this.offset){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}let n="",o=this.firstChunk;for(;o&&(o.start>t||o.end<=t);){if(o.start<r&&o.end>=r)return n;o=o.next}if(o&&o.edited&&o.start!==t)throw new Error(`Cannot use replaced character ${t} as slice start anchor.`);let i=o;for(;o;){o.intro&&(i!==o||o.start===t)&&(n+=o.intro);let s=o.start<r&&o.end>=r;if(s&&o.edited&&o.end!==r)throw new Error(`Cannot use replaced character ${r} as slice end anchor.`);let l=i===o?t-o.start:0,a=s?o.content.length+r-o.end:o.content.length;if(n+=o.content.slice(l,a),o.outro&&(!s||o.end===r)&&(n+=o.outro),s)break;o=o.next}return n}snip(t,r){let n=this.clone();return n.remove(0,t),n.remove(r,n.original.length),n}_split(t){if(this.byStart[t]||this.byEnd[t])return;let r=this.lastSearchedChunk,n=t>r.end;for(;r;){if(r.contains(t))return this._splitChunk(r,t);r=n?this.byStart[r.end]:this.byEnd[r.start]}}_splitChunk(t,r){if(t.edited&&t.content.length){let o=To(this.original)(r);throw new Error(`Cannot split a chunk that has already been edited (${o.line}:${o.column} \u2013 "${t.original}")`)}let n=t.split(r);return this.byEnd[r]=t,this.byStart[r]=n,this.byEnd[n.end]=n,t===this.lastChunk&&(this.lastChunk=n),this.lastSearchedChunk=t,!0}toString(){let t=this.intro,r=this.firstChunk;for(;r;)t+=r.toString(),r=r.next;return t+this.outro}isEmpty(){let t=this.firstChunk;do if(t.intro.length&&t.intro.trim()||t.content.length&&t.content.trim()||t.outro.length&&t.outro.trim())return!1;while(t=t.next);return!0}length(){let t=this.firstChunk,r=0;do r+=t.intro.length+t.content.length+t.outro.length;while(t=t.next);return r}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimEndAborted(t){let r=new RegExp((t||"\\s")+"+$");if(this.outro=this.outro.replace(r,""),this.outro.length)return!0;let n=this.lastChunk;do{let o=n.end,i=n.trimEnd(r);if(n.end!==o&&(this.lastChunk===n&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),i)return!0;n=n.previous}while(n);return!1}trimEnd(t){return this.trimEndAborted(t),this}trimStartAborted(t){let r=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(r,""),this.intro.length)return!0;let n=this.firstChunk;do{let o=n.end,i=n.trimStart(r);if(n.end!==o&&(n===this.lastChunk&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),i)return!0;n=n.next}while(n);return!1}trimStart(t){return this.trimStartAborted(t),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(t,r){function n(i,s){return typeof r=="string"?r.replace(/\$(\$|&|\d+)/g,(l,a)=>a==="$"?"$":a==="&"?i[0]:+a<i.length?i[+a]:`$${a}`):r(...i,i.index,s,i.groups)}function o(i,s){let l,a=[];for(;l=i.exec(s);)a.push(l);return a}if(t.global)o(t,this.original).forEach(s=>{if(s.index!=null){let l=n(s,this.original);l!==s[0]&&this.overwrite(s.index,s.index+s[0].length,l)}});else{let i=this.original.match(t);if(i&&i.index!=null){let s=n(i,this.original);s!==i[0]&&this.overwrite(i.index,i.index+i[0].length,s)}}return this}_replaceString(t,r){let{original:n}=this,o=n.indexOf(t);return o!==-1&&this.overwrite(o,o+t.length,r),this}replace(t,r){return typeof t=="string"?this._replaceString(t,r):this._replaceRegexp(t,r)}_replaceAllString(t,r){let{original:n}=this,o=t.length;for(let i=n.indexOf(t);i!==-1;i=n.indexOf(t,i+o))n.slice(i,i+o)!==r&&this.overwrite(i,i+o,r);return this}replaceAll(t,r){if(typeof t=="string")return this._replaceAllString(t,r);if(!t.global)throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");return this._replaceRegexp(t,r)}};var Xl=/theme\(\s*(['"])?(.*?)\1?\s*\)/g;function jo(e){return e.includes("theme(")&&e.includes(")")}function zo(e,t,r=!0){let n=Array.from(e.toString().matchAll(Xl));if(!n.length)return e;let o=new wt(e);for(let i of n){let s=i[2];if(!s)throw new Error("theme() expect exact one argument, but got 0");let l=Zl(s,t,r);l&&o.overwrite(i.index,i.index+i[0].length,l)}return o.toString()}function Zl(e,t,r=!0){let[n,o]=e.split("/"),s=n.trim().split(".").reduce((l,a)=>l?.[a],t);if(typeof s=="object"&&(s=s.DEFAULT),typeof s=="string"){if(o){let l=Y(s);l&&(s=M(l,o))}return s}else if(r)throw new Error(`theme of "${e}" did not found`)}function K(e,t){let r;return{name:e,match(n,o){r||(r=new RegExp(`^${fe(e)}(?:${o.generator.config.separators.join("|")})`));let i=n.match(r);if(i)return{matcher:n.slice(i[0].length),handle:(s,l)=>l({...s,...t(s)})}},autocomplete:`${e}:`}}function G(e,t){let r;return{name:e,match(n,o){r||(r=new RegExp(`^${fe(e)}(?:${o.generator.config.separators.join("|")})`));let i=n.match(r);if(i)return{matcher:n.slice(i[0].length),handle:(s,l)=>l({...s,parent:`${s.parent?`${s.parent} $$ `:""}${t}`})}},autocomplete:`${e}:`}}function me(e,t,r){if(t.startsWith(`${e}[`)){let[n,o]=Ce(t.slice(e.length),"[","]")??[];if(n&&o){for(let i of r)if(o.startsWith(i))return[n,o.slice(i.length),i];return[n,o,""]}}}function I(e,t,r){if(t.startsWith(e)){let n=me(e,t,r);if(n){let[o="",i=n[1]]=I("/",n[1],r)??[];return[n[0],i,o]}for(let o of r.filter(i=>i!=="/")){let i=t.indexOf(o,e.length);if(i!==-1){let s=t.indexOf("/",e.length),l=s===-1||i<=s;return[t.slice(e.length,l?i:s),t.slice(i+o.length),l?"":t.slice(s+1,i)]}}}}var on={};ol(on,{auto:()=>ec,bracket:()=>sc,bracketOfColor:()=>ac,bracketOfLength:()=>lc,bracketOfPosition:()=>cc,cssvar:()=>uc,degree:()=>pc,fraction:()=>ic,global:()=>dc,number:()=>nc,numberWithUnit:()=>Ql,percent:()=>oc,position:()=>hc,properties:()=>mc,px:()=>rc,rem:()=>tc,time:()=>fc});var N={l:["-left"],r:["-right"],t:["-top"],b:["-bottom"],s:["-inline-start"],e:["-inline-end"],x:["-left","-right"],y:["-top","-bottom"],"":[""],bs:["-block-start"],be:["-block-end"],is:["-inline-start"],ie:["-inline-end"],block:["-block-start","-block-end"],inline:["-inline-start","-inline-end"]},Qr={...N,s:["-inset-inline-start"],start:["-inset-inline-start"],e:["-inset-inline-end"],end:["-inset-inline-end"],bs:["-inset-block-start"],be:["-inset-block-end"],is:["-inset-inline-start"],ie:["-inset-inline-end"],block:["-inset-block-start","-inset-block-end"],inline:["-inset-inline-start","-inset-inline-end"]},en={l:["-top-left","-bottom-left"],r:["-top-right","-bottom-right"],t:["-top-left","-top-right"],b:["-bottom-left","-bottom-right"],tl:["-top-left"],lt:["-top-left"],tr:["-top-right"],rt:["-top-right"],bl:["-bottom-left"],lb:["-bottom-left"],br:["-bottom-right"],rb:["-bottom-right"],"":[""],bs:["-start-start","-start-end"],be:["-end-start","-end-end"],s:["-end-start","-start-start"],is:["-end-start","-start-start"],e:["-start-end","-end-end"],ie:["-start-end","-end-end"],ss:["-start-start"],"bs-is":["-start-start"],"is-bs":["-start-start"],se:["-start-end"],"bs-ie":["-start-end"],"ie-bs":["-start-end"],es:["-end-start"],"be-is":["-end-start"],"is-be":["-end-start"],ee:["-end-end"],"be-ie":["-end-end"],"ie-be":["-end-end"]},Oo={x:["-x"],y:["-y"],z:["-z"],"":["-x","-y"]},Vo=["x","y","z"],Ao=["top","top center","top left","top right","bottom","bottom center","bottom left","bottom right","left","left center","left top","left bottom","right","right center","right top","right bottom","center","center top","center bottom","center left","center right","center center"],B=Object.assign({},...Ao.map(e=>({[e.replace(/ /,"-")]:e})),...Ao.map(e=>({[e.replace(/\b(\w)\w+/g,"$1").replace(/ /,"")]:e}))),S=["inherit","initial","revert","revert-layer","unset"],Ne=/^(calc|clamp|min|max)\s*\((.+)\)(.*)/,kt=/^(var)\s*\((.+)\)(.*)/;var Ee=/^(-?\d*(?:\.\d+)?)(px|pt|pc|%|r?(?:em|ex|lh|cap|ch|ic)|(?:[sld]?v|cq)(?:[whib]|min|max)|in|cm|mm|rpx)?$/i,tn=/^(-?\d*(?:\.\d+)?)$/,rn=/^(px|[sld]?v[wh])$/i,nn={px:1,vw:100,vh:100,svw:100,svh:100,dvw:100,dvh:100,lvh:100,lvw:100},$t=/^\[(color|image|length|size|position|quoted|string):/i,Po=/,(?![^()]*\))/g;var Jl=["color","border-color","background-color","outline-color","text-decoration-color","flex-grow","flex","flex-shrink","caret-color","font","gap","opacity","visibility","z-index","font-weight","zoom","text-shadow","transform","box-shadow","border","background-position","left","right","top","bottom","object-position","max-height","min-height","max-width","min-width","height","width","border-width","margin","padding","outline-width","outline-offset","font-size","line-height","text-indent","vertical-align","border-spacing","letter-spacing","word-spacing","stroke","filter","backdrop-filter","fill","mask","mask-size","mask-border","clip-path","clip","border-radius"];function Z(e){return+e.toFixed(10)}function Ql(e){let t=e.match(Ee);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(n&&!Number.isNaN(o))return`${Z(o)}${n}`}function ec(e){if(e==="auto"||e==="a")return"auto"}function tc(e){if(!e)return;if(rn.test(e))return`${nn[e]}${e}`;let t=e.match(Ee);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(!Number.isNaN(o))return o===0?"0":n?`${Z(o)}${n}`:`${Z(o/4)}rem`}function rc(e){if(rn.test(e))return`${nn[e]}${e}`;let t=e.match(Ee);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(!Number.isNaN(o))return n?`${Z(o)}${n}`:`${Z(o)}px`}function nc(e){if(!tn.test(e))return;let t=Number.parseFloat(e);if(!Number.isNaN(t))return Z(t)}function oc(e){if(e.endsWith("%")&&(e=e.slice(0,-1)),!tn.test(e))return;let t=Number.parseFloat(e);if(!Number.isNaN(t))return`${Z(t/100)}`}function ic(e){if(!e)return;if(e==="full")return"100%";let[t,r]=e.split("/"),n=Number.parseFloat(t)/Number.parseFloat(r);if(!Number.isNaN(n))return n===0?"0":`${Z(n*100)}%`}function St(e,t){if(e&&e.startsWith("[")&&e.endsWith("]")){let r,n,o=e.match($t);if(o?(t||(n=o[1]),r=e.slice(o[0].length,-1)):r=e.slice(1,-1),!r||r==='=""')return;r.startsWith("--")&&(r=`var(${r})`);let i=0;for(let s of r)if(s==="[")i+=1;else if(s==="]"&&(i-=1,i<0))return;if(i)return;switch(n){case"string":return r.replace(/(^|[^\\])_/g,"$1 ").replace(/\\_/g,"_");case"quoted":return r.replace(/(^|[^\\])_/g,"$1 ").replace(/\\_/g,"_").replace(/(["\\])/g,"\\$1").replace(/^(.+)$/,'"$1"')}return r.replace(/(url\(.*?\))/g,s=>s.replace(/_/g,"\\_")).replace(/(^|[^\\])_/g,"$1 ").replace(/\\_/g,"_").replace(/(?:calc|clamp|max|min)\((.*)/g,s=>{let l=[];return s.replace(/var\((--.+?)[,)]/g,(a,u)=>(l.push(u),a.replace(u,"--un-calc"))).replace(/(-?\d*\.?\d(?!-\d.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g,"$1 $2 ").replace(/--un-calc/g,()=>l.shift())})}}function sc(e){return St(e)}function ac(e){return St(e,"color")}function lc(e){return St(e,"length")}function cc(e){return St(e,"position")}function uc(e){if(/^\$[^\s'"`;{}]/.test(e)){let[t,r]=e.slice(1).split(",");return`var(--${se(t)}${r?`, ${r}`:""})`}}function fc(e){let t=e.match(/^(-?[0-9.]+)(s|ms)?$/i);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(!Number.isNaN(o))return o===0&&!n?"0s":n?`${Z(o)}${n}`:`${Z(o)}ms`}function pc(e){let t=e.match(/^(-?[0-9.]+)(deg|rad|grad|turn)?$/i);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(!Number.isNaN(o))return o===0?"0":n?`${Z(o)}${n}`:`${Z(o)}deg`}function dc(e){if(S.includes(e))return e}function mc(e){if(e.split(",").every(t=>Jl.includes(t)))return e}function hc(e){if(["top","left","right","bottom","center"].includes(e))return e}var gc=xt(on),c=gc;var Mo={mid:"middle",base:"baseline",btm:"bottom",baseline:"baseline",top:"top",start:"top",middle:"middle",bottom:"bottom",end:"bottom","text-top":"text-top","text-bottom":"text-bottom",sub:"sub",super:"super",...Object.fromEntries(S.map(e=>[e,e]))},Ct=[[/^(?:vertical|align|v)-([-\w]+%?)$/,([,e])=>({"vertical-align":Mo[e]??c.numberWithUnit(e)}),{autocomplete:[`(vertical|align|v)-(${Object.keys(Mo).join("|")})`,"(vertical|align|v)-<percentage>"]}]],Fo=["center","left","right","justify","start","end"],Rt=[...Fo.map(e=>[`text-${e}`,{"text-align":e}]),...[...S,...Fo].map(e=>[`text-align-${e}`,{"text-align":e}])];var Wo="$$mini-no-negative";function _(e){return([t,r,n],{theme:o})=>{let i=o.spacing?.[n||"DEFAULT"]??c.bracket.cssvar.global.auto.fraction.rem(n);if(i!=null)return N[r].map(s=>[`${e}${s}`,i]);if(n?.startsWith("-")){let s=o.spacing?.[n.slice(1)];if(s!=null)return N[r].map(l=>[`${e}${l}`,`calc(${s} * -1)`])}}}function _o(e,t,r="colors"){let n=e[r],o=-1;for(let i of t){if(o+=1,n&&typeof n!="string"){let s=t.slice(o).join("-").replace(/(-[a-z])/g,l=>l.slice(1).toUpperCase());if(n[s])return n[s];if(n[i]){n=n[i];continue}}return}return n}function Lo(e,t,r){return _o(e,t,r)||_o(e,t,"colors")}function an(e,t){let[r,n]=de(e,"[","]",["/",":"])??[];if(r!=null){let o=(r.match($t)??[])[1];if(o==null||o===t)return[r,n]}}function Te(e,t,r){let n=an(e,"color");if(!n)return;let[o,i]=n,s=o.replace(/([a-z])(\d)/g,"$1-$2").split(/-/g),[l]=s;if(!l)return;let a,u=c.bracketOfColor(o),f=u||o;if(c.numberWithUnit(f))return;if(/^#[\da-f]+$/i.test(f)?a=f:/^hex-[\da-fA-F]+$/.test(f)?a=`#${f.slice(4)}`:o.startsWith("$")&&(a=c.cssvar(o)),a=a||u,!a){let m=Lo(t,[o],r);typeof m=="string"&&(a=m)}let p="DEFAULT";if(!a){let m=s,d,[h]=s.slice(-1);/^\d+$/.test(h)&&(p=d=h,m=s.slice(0,-1));let g=Lo(t,m,r);typeof g=="object"?a=g[d??p]:typeof g=="string"&&!d&&(a=g)}return{opacity:i,name:l,no:p,color:a,cssColor:Y(a),alpha:c.bracket.cssvar.percent(i??"")}}function V(e,t,r,n){return([,o],{theme:i,generator:s})=>{let l=Te(o,i,r);if(!l)return;let{alpha:a,color:u,cssColor:f}=l,m=s.config.envMode==="dev"&&u?` /* ${u} */`:"",d={};if(f)if(a!=null)d[e]=M(f,a)+m;else{let h=`--un-${t}-opacity`,g=M(f,`var(${h})`);g.includes(h)&&(d[h]=ae(f)),d[e]=g+m}else if(u)if(a!=null)d[e]=M(u,a)+m;else{let h=`--un-${t}-opacity`,g=M(u,`var(${h})`);g.includes(h)&&(d[h]=1),d[e]=g+m}if(n?.(d)!==!1)return d}}function je(e,t){let r=[];e=O(e);for(let n=0;n<e.length;n++){let o=xe(e[n]," ",6);if(!o||o.length<3)return e;let i=!1,s=o.indexOf("inset");s!==-1&&(o.splice(s,1),i=!0);let l="",a=o.at(-1);if(Y(o.at(0))){let u=Y(o.shift());u&&(l=`, ${M(u)}`)}else if(Y(a)){let u=Y(o.pop());u&&(l=`, ${M(u)}`)}else a&&kt.test(a)&&(l=`, ${o.pop()}`);r.push(`${i?"inset ":""}${o.join(" ")} var(${t}${l})`)}return r}function ze(e,t,r){return e!=null&&!!Te(e,t,r)?.color}var Uo=/[a-z]+/gi,sn=new WeakMap;function ye({theme:e,generator:t},r="breakpoints"){let n=t?.userConfig?.theme?.[r]||e[r];if(!n)return;if(sn.has(e))return sn.get(e);let o=Object.entries(n).sort((i,s)=>Number.parseInt(i[1].replace(Uo,""))-Number.parseInt(s[1].replace(Uo,""))).map(([i,s])=>({point:i,size:s}));return sn.set(e,o),o}function v(e,t){return S.map(r=>[`${e}-${r}`,{[t??e]:r}])}function J(e){return e!=null&&Ne.test(e)}function Bo(e){return e[0]==="["&&e.slice(-1)==="]"&&(e=e.slice(1,-1)),Ne.test(e)||Ee.test(e)}function Et(e,t,r){let n=t.split(Po);return e||!e&&n.length===1?Oo[e].map(o=>[`--un-${r}${o}`,t]):n.map((o,i)=>[`--un-${r}-${Vo[i]}`,o])}var Tt=[[/^outline-(?:width-|size-)?(.+)$/,No,{autocomplete:"outline-(width|size)-<num>"}],[/^outline-(?:color-)?(.+)$/,bc,{autocomplete:"outline-$colors"}],[/^outline-offset-(.+)$/,([,e],{theme:t})=>({"outline-offset":t.lineWidth?.[e]??c.bracket.cssvar.global.px(e)}),{autocomplete:"outline-(offset)-<num>"}],["outline",{"outline-style":"solid"}],...["auto","dashed","dotted","double","hidden","solid","groove","ridge","inset","outset",...S].map(e=>[`outline-${e}`,{"outline-style":e}]),["outline-none",{outline:"2px solid transparent","outline-offset":"2px"}]];function No([,e],{theme:t}){return{"outline-width":t.lineWidth?.[e]??c.bracket.cssvar.global.px(e)}}function bc(e,t){return J(c.bracket(e[1]))?No(e,t):V("outline-color","outline-color","borderColor")(e,t)}var jt=[["appearance-auto",{"-webkit-appearance":"auto",appearance:"auto"}],["appearance-none",{"-webkit-appearance":"none",appearance:"none"}]];function xc(e){return c.properties.auto.global(e)??{contents:"contents",scroll:"scroll-position"}[e]}var zt=[[/^will-change-(.+)/,([,e])=>({"will-change":xc(e)})]];var ve=["solid","dashed","dotted","double","hidden","none","groove","ridge","inset","outset",...S],At=[[/^(?:border|b)()(?:-(.+))?$/,te,{autocomplete:"(border|b)-<directions>"}],[/^(?:border|b)-([xy])(?:-(.+))?$/,te],[/^(?:border|b)-([rltbse])(?:-(.+))?$/,te],[/^(?:border|b)-(block|inline)(?:-(.+))?$/,te],[/^(?:border|b)-([bi][se])(?:-(.+))?$/,te],[/^(?:border|b)-()(?:width|size)-(.+)$/,te,{autocomplete:["(border|b)-<num>","(border|b)-<directions>-<num>"]}],[/^(?:border|b)-([xy])-(?:width|size)-(.+)$/,te],[/^(?:border|b)-([rltbse])-(?:width|size)-(.+)$/,te],[/^(?:border|b)-(block|inline)-(?:width|size)-(.+)$/,te],[/^(?:border|b)-([bi][se])-(?:width|size)-(.+)$/,te],[/^(?:border|b)-()(?:color-)?(.+)$/,De,{autocomplete:["(border|b)-$colors","(border|b)-<directions>-$colors"]}],[/^(?:border|b)-([xy])-(?:color-)?(.+)$/,De],[/^(?:border|b)-([rltbse])-(?:color-)?(.+)$/,De],[/^(?:border|b)-(block|inline)-(?:color-)?(.+)$/,De],[/^(?:border|b)-([bi][se])-(?:color-)?(.+)$/,De],[/^(?:border|b)-()op(?:acity)?-?(.+)$/,Ie,{autocomplete:"(border|b)-(op|opacity)-<percent>"}],[/^(?:border|b)-([xy])-op(?:acity)?-?(.+)$/,Ie],[/^(?:border|b)-([rltbse])-op(?:acity)?-?(.+)$/,Ie],[/^(?:border|b)-(block|inline)-op(?:acity)?-?(.+)$/,Ie],[/^(?:border|b)-([bi][se])-op(?:acity)?-?(.+)$/,Ie],[/^(?:border-|b-)?(?:rounded|rd)()(?:-(.+))?$/,Ke,{autocomplete:["(border|b)-(rounded|rd)","(border|b)-(rounded|rd)-$borderRadius","(rounded|rd)","(rounded|rd)-$borderRadius"]}],[/^(?:border-|b-)?(?:rounded|rd)-([rltbse])(?:-(.+))?$/,Ke],[/^(?:border-|b-)?(?:rounded|rd)-([rltb]{2})(?:-(.+))?$/,Ke],[/^(?:border-|b-)?(?:rounded|rd)-([bise][se])(?:-(.+))?$/,Ke],[/^(?:border-|b-)?(?:rounded|rd)-([bi][se]-[bi][se])(?:-(.+))?$/,Ke],[/^(?:border|b)-(?:style-)?()(.+)$/,Ge,{autocomplete:["(border|b)-style",`(border|b)-(${ve.join("|")})`,"(border|b)-<directions>-style",`(border|b)-<directions>-(${ve.join("|")})`,`(border|b)-<directions>-style-(${ve.join("|")})`,`(border|b)-style-(${ve.join("|")})`]}],[/^(?:border|b)-([xy])-(?:style-)?(.+)$/,Ge],[/^(?:border|b)-([rltbse])-(?:style-)?(.+)$/,Ge],[/^(?:border|b)-(block|inline)-(?:style-)?(.+)$/,Ge],[/^(?:border|b)-([bi][se])-(?:style-)?(.+)$/,Ge]];function Do(e,t,r){if(t!=null)return{[`border${r}-color`]:M(e,t)};if(r===""){let n={},o="--un-border-opacity",i=M(e,`var(${o})`);return i.includes(o)&&(n[o]=typeof e=="string"?1:ae(e)),n["border-color"]=i,n}else{let n={},o="--un-border-opacity",i=`--un-border${r}-opacity`,s=M(e,`var(${i})`);return s.includes(i)&&(n[o]=typeof e=="string"?1:ae(e),n[i]=`var(${o})`),n[`border${r}-color`]=s,n}}function yc(e){return([,t],r)=>{let n=Te(t,r,"borderColor");if(!n)return;let{alpha:o,color:i,cssColor:s}=n;if(s)return Do(s,o,e);if(i)return Do(i,o,e)}}function te([,e="",t],{theme:r}){let n=r.lineWidth?.[t||"DEFAULT"]??c.bracket.cssvar.global.px(t||"1");if(e in N&&n!=null)return N[e].map(o=>[`border${o}-width`,n])}function De([,e="",t],r){if(e in N){if(J(c.bracket(t)))return te(["",e,t],r);if(ze(t,r.theme,"borderColor"))return Object.assign({},...N[e].map(n=>yc(n)(["",t],r.theme)))}}function Ie([,e="",t]){let r=c.bracket.percent.cssvar(t);if(e in N&&r!=null)return N[e].map(n=>[`--un-border${n}-opacity`,r])}function Ke([,e="",t],{theme:r}){let n=r.borderRadius?.[t||"DEFAULT"]||c.bracket.cssvar.global.fraction.rem(t||"1");if(e in en&&n!=null)return en[e].map(o=>[`border${o}-radius`,n])}function Ge([,e="",t]){if(ve.includes(t)&&e in N)return N[e].map(r=>[`border${r}-style`,t])}var Ot=[[/^op(?:acity)?-?(.+)$/,([,e])=>({opacity:c.bracket.percent.cssvar(e)})]],vc=/^\[url\(.+\)\]$/,wc=/^\[(?:length|size):.+\]$/,kc=/^\[position:.+\]$/,$c=/^\[(?:linear|conic|radial)-gradient\(.+\)\]$/,Sc=/^\[image:.+\]$/,Vt=[[/^bg-(.+)$/,(...e)=>{let t=e[0][1];if(vc.test(t))return{"--un-url":c.bracket(t),"background-image":"var(--un-url)"};if(wc.test(t)&&c.bracketOfLength(t)!=null)return{"background-size":c.bracketOfLength(t).split(" ").map(r=>c.fraction.auto.px.cssvar(r)??r).join(" ")};if((Bo(t)||kc.test(t))&&c.bracketOfPosition(t)!=null)return{"background-position":c.bracketOfPosition(t).split(" ").map(r=>c.position.fraction.auto.px.cssvar(r)??r).join(" ")};if($c.test(t)||Sc.test(t)){let r=c.bracket(t);if(r)return{"background-image":(r.startsWith("http")?`url(${r})`:c.cssvar(r))??r}}return V("background-color","bg","backgroundColor")(...e)},{autocomplete:"bg-$colors"}],[/^bg-op(?:acity)?-?(.+)$/,([,e])=>({"--un-bg-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"bg-(op|opacity)-<percent>"}]],Pt=[[/^color-scheme-(\w+)$/,([,e])=>({"color-scheme":e})]];var Mt=[[/^@container(?:\/(\w+))?(?:-(normal))?$/,([,e,t])=>({"container-type":t??"inline-size","container-name":e})]];var Io=["solid","double","dotted","dashed","wavy",...S],Ft=[[/^(?:decoration-)?(underline|overline|line-through)$/,([,e])=>({"text-decoration-line":e}),{autocomplete:"decoration-(underline|overline|line-through)"}],[/^(?:underline|decoration)-(?:size-)?(.+)$/,Ko,{autocomplete:"(underline|decoration)-<num>"}],[/^(?:underline|decoration)-(auto|from-font)$/,([,e])=>({"text-decoration-thickness":e}),{autocomplete:"(underline|decoration)-(auto|from-font)"}],[/^(?:underline|decoration)-(.+)$/,Cc,{autocomplete:"(underline|decoration)-$colors"}],[/^(?:underline|decoration)-op(?:acity)?-?(.+)$/,([,e])=>({"--un-line-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"(underline|decoration)-(op|opacity)-<percent>"}],[/^(?:underline|decoration)-offset-(.+)$/,([,e],{theme:t})=>({"text-underline-offset":t.lineWidth?.[e]??c.auto.bracket.cssvar.global.px(e)}),{autocomplete:"(underline|decoration)-(offset)-<num>"}],...Io.map(e=>[`underline-${e}`,{"text-decoration-style":e}]),...Io.map(e=>[`decoration-${e}`,{"text-decoration-style":e}]),["no-underline",{"text-decoration":"none"}],["decoration-none",{"text-decoration":"none"}]];function Ko([,e],{theme:t}){return{"text-decoration-thickness":t.lineWidth?.[e]??c.bracket.cssvar.global.px(e)}}function Cc(e,t){if(J(c.bracket(e[1])))return Ko(e,t);let r=V("text-decoration-color","line","borderColor")(e,t);if(r)return{"-webkit-text-decoration-color":r["text-decoration-color"],...r}}var _t=[["flex",{display:"flex"}],["inline-flex",{display:"inline-flex"}],["flex-inline",{display:"inline-flex"}],[/^flex-(.*)$/,([,e])=>({flex:c.bracket(e)!=null?c.bracket(e).split(" ").map(t=>c.cssvar.fraction(t)??t).join(" "):c.cssvar.fraction(e)})],["flex-1",{flex:"1 1 0%"}],["flex-auto",{flex:"1 1 auto"}],["flex-initial",{flex:"0 1 auto"}],["flex-none",{flex:"none"}],[/^(?:flex-)?shrink(?:-(.*))?$/,([,e=""])=>({"flex-shrink":c.bracket.cssvar.number(e)??1}),{autocomplete:["flex-shrink-<num>","shrink-<num>"]}],[/^(?:flex-)?grow(?:-(.*))?$/,([,e=""])=>({"flex-grow":c.bracket.cssvar.number(e)??1}),{autocomplete:["flex-grow-<num>","grow-<num>"]}],[/^(?:flex-)?basis-(.+)$/,([,e],{theme:t})=>({"flex-basis":t.spacing?.[e]??c.bracket.cssvar.auto.fraction.rem(e)}),{autocomplete:["flex-basis-$spacing","basis-$spacing"]}],["flex-row",{"flex-direction":"row"}],["flex-row-reverse",{"flex-direction":"row-reverse"}],["flex-col",{"flex-direction":"column"}],["flex-col-reverse",{"flex-direction":"column-reverse"}],["flex-wrap",{"flex-wrap":"wrap"}],["flex-wrap-reverse",{"flex-wrap":"wrap-reverse"}],["flex-nowrap",{"flex-wrap":"nowrap"}]];var Rc={"":"",x:"column-",y:"row-",col:"column-",row:"row-"};function ln([,e="",t],{theme:r}){let n=r.spacing?.[t]??c.bracket.cssvar.global.rem(t);if(n!=null)return{[`${Rc[e]}gap`]:n}}var Lt=[[/^(?:flex-|grid-)?gap-?()(.+)$/,ln,{autocomplete:["gap-$spacing","gap-<num>"]}],[/^(?:flex-|grid-)?gap-([xy])-?(.+)$/,ln,{autocomplete:["gap-(x|y)-$spacing","gap-(x|y)-<num>"]}],[/^(?:flex-|grid-)?gap-(col|row)-?(.+)$/,ln,{autocomplete:["gap-(col|row)-$spacing","gap-(col|row)-<num>"]}]];function ne(e){return e.replace("col","column")}function cn(e){return e[0]==="r"?"Row":"Column"}function Ec(e,t,r){let n=t[`gridAuto${cn(e)}`]?.[r];if(n!=null)return n;switch(r){case"min":return"min-content";case"max":return"max-content";case"fr":return"minmax(0,1fr)"}return c.bracket.cssvar.auto.rem(r)}var Ut=[["grid",{display:"grid"}],["inline-grid",{display:"inline-grid"}],[/^(?:grid-)?(row|col)-(.+)$/,([,e,t],{theme:r})=>({[`grid-${ne(e)}`]:r[`grid${cn(e)}`]?.[t]??c.bracket.cssvar.auto(t)})],[/^(?:grid-)?(row|col)-span-(.+)$/,([,e,t])=>{if(t==="full")return{[`grid-${ne(e)}`]:"1/-1"};let r=c.bracket.number(t);if(r!=null)return{[`grid-${ne(e)}`]:`span ${r}/span ${r}`}},{autocomplete:"(grid-row|grid-col|row|col)-span-<num>"}],[/^(?:grid-)?(row|col)-start-(.+)$/,([,e,t])=>({[`grid-${ne(e)}-start`]:c.bracket.cssvar(t)??t})],[/^(?:grid-)?(row|col)-end-(.+)$/,([,e,t])=>({[`grid-${ne(e)}-end`]:c.bracket.cssvar(t)??t}),{autocomplete:"(grid-row|grid-col|row|col)-(start|end)-<num>"}],[/^(?:grid-)?auto-(rows|cols)-(.+)$/,([,e,t],{theme:r})=>({[`grid-auto-${ne(e)}`]:Ec(e,r,t)}),{autocomplete:"(grid-auto|auto)-(rows|cols)-<num>"}],[/^(?:grid-auto-flow|auto-flow|grid-flow)-(.+)$/,([,e])=>({"grid-auto-flow":c.bracket.cssvar(e)})],[/^(?:grid-auto-flow|auto-flow|grid-flow)-(row|col|dense|row-dense|col-dense)$/,([,e])=>({"grid-auto-flow":ne(e).replace("-"," ")}),{autocomplete:["(grid-auto-flow|auto-flow|grid-flow)-(row|col|dense|row-dense|col-dense)"]}],[/^(?:grid-)?(rows|cols)-(.+)$/,([,e,t],{theme:r})=>({[`grid-template-${ne(e)}`]:r[`gridTemplate${cn(e)}`]?.[t]??c.bracket.cssvar(t)})],[/^(?:grid-)?(rows|cols)-minmax-([\w.-]+)$/,([,e,t])=>({[`grid-template-${ne(e)}`]:`repeat(auto-fill,minmax(${t},1fr))`})],[/^(?:grid-)?(rows|cols)-(\d+)$/,([,e,t])=>({[`grid-template-${ne(e)}`]:`repeat(${t},minmax(0,1fr))`}),{autocomplete:"(grid-rows|grid-cols|rows|cols)-<num>"}],[/^grid-area(s)?-(.+)$/,([,e,t])=>e!=null?{"grid-template-areas":c.cssvar(t)??t.split("-").map(r=>`"${c.bracket(r)}"`).join(" ")}:{"grid-area":c.bracket.cssvar(t)}],["grid-rows-none",{"grid-template-rows":"none"}],["grid-cols-none",{"grid-template-columns":"none"}],["grid-rows-subgrid",{"grid-template-rows":"subgrid"}],["grid-cols-subgrid",{"grid-template-columns":"subgrid"}]];var Wt=["auto","hidden","clip","visible","scroll","overlay",...S],Bt=[[/^(?:overflow|of)-(.+)$/,([,e])=>Wt.includes(e)?{overflow:e}:void 0,{autocomplete:[`(overflow|of)-(${Wt.join("|")})`,`(overflow|of)-(x|y)-(${Wt.join("|")})`]}],[/^(?:overflow|of)-([xy])-(.+)$/,([,e,t])=>Wt.includes(t)?{[`overflow-${e}`]:t}:void 0]];var Nt=[[/^(?:position-|pos-)?(relative|absolute|fixed|sticky)$/,([,e])=>({position:e}),{autocomplete:["(position|pos)-<position>","(position|pos)-<globalKeyword>","<position>"]}],[/^(?:position-|pos-)([-\w]+)$/,([,e])=>S.includes(e)?{position:e}:void 0],[/^(?:position-|pos-)?(static)$/,([,e])=>({position:e})]],qe=[["justify-start",{"justify-content":"flex-start"}],["justify-end",{"justify-content":"flex-end"}],["justify-center",{"justify-content":"center"}],["justify-between",{"justify-content":"space-between"}],["justify-around",{"justify-content":"space-around"}],["justify-evenly",{"justify-content":"space-evenly"}],["justify-stretch",{"justify-content":"stretch"}],["justify-left",{"justify-content":"left"}],["justify-right",{"justify-content":"right"}],...v("justify","justify-content"),["justify-items-start",{"justify-items":"start"}],["justify-items-end",{"justify-items":"end"}],["justify-items-center",{"justify-items":"center"}],["justify-items-stretch",{"justify-items":"stretch"}],...v("justify-items"),["justify-self-auto",{"justify-self":"auto"}],["justify-self-start",{"justify-self":"start"}],["justify-self-end",{"justify-self":"end"}],["justify-self-center",{"justify-self":"center"}],["justify-self-stretch",{"justify-self":"stretch"}],...v("justify-self")],Dt=[[/^order-(.+)$/,([,e])=>({order:c.bracket.cssvar.number(e)})],["order-first",{order:"-9999"}],["order-last",{order:"9999"}],["order-none",{order:"0"}]],Ye=[["content-center",{"align-content":"center"}],["content-start",{"align-content":"flex-start"}],["content-end",{"align-content":"flex-end"}],["content-between",{"align-content":"space-between"}],["content-around",{"align-content":"space-around"}],["content-evenly",{"align-content":"space-evenly"}],...v("content","align-content"),["items-start",{"align-items":"flex-start"}],["items-end",{"align-items":"flex-end"}],["items-center",{"align-items":"center"}],["items-baseline",{"align-items":"baseline"}],["items-stretch",{"align-items":"stretch"}],...v("items","align-items"),["self-auto",{"align-self":"auto"}],["self-start",{"align-self":"flex-start"}],["self-end",{"align-self":"flex-end"}],["self-center",{"align-self":"center"}],["self-stretch",{"align-self":"stretch"}],["self-baseline",{"align-self":"baseline"}],...v("self","align-self")],Xe=[["place-content-center",{"place-content":"center"}],["place-content-start",{"place-content":"start"}],["place-content-end",{"place-content":"end"}],["place-content-between",{"place-content":"space-between"}],["place-content-around",{"place-content":"space-around"}],["place-content-evenly",{"place-content":"space-evenly"}],["place-content-stretch",{"place-content":"stretch"}],...v("place-content"),["place-items-start",{"place-items":"start"}],["place-items-end",{"place-items":"end"}],["place-items-center",{"place-items":"center"}],["place-items-stretch",{"place-items":"stretch"}],...v("place-items"),["place-self-auto",{"place-self":"auto"}],["place-self-start",{"place-self":"start"}],["place-self-end",{"place-self":"end"}],["place-self-center",{"place-self":"center"}],["place-self-stretch",{"place-self":"stretch"}],...v("place-self")],It=[...qe,...Ye,...Xe].flatMap(([e,t])=>[[`flex-${e}`,t],[`grid-${e}`,t]]);function un(e,{theme:t}){return t.spacing?.[e]??c.bracket.cssvar.global.auto.fraction.rem(e)}function He([,e,t],r){let n=un(t,r);if(n!=null&&e in Qr)return Qr[e].map(o=>[o.slice(1),n])}var Kt=[[/^(?:position-|pos-)?inset-(.+)$/,([,e],t)=>({inset:un(e,t)}),{autocomplete:["(position|pos)-inset-<directions>-$spacing","(position|pos)-inset-(block|inline)-$spacing","(position|pos)-inset-(bs|be|is|ie)-$spacing","(position|pos)-(top|left|right|bottom)-$spacing"]}],[/^(?:position-|pos-)?(start|end)-(.+)$/,He],[/^(?:position-|pos-)?inset-([xy])-(.+)$/,He],[/^(?:position-|pos-)?inset-([rltbse])-(.+)$/,He],[/^(?:position-|pos-)?inset-(block|inline)-(.+)$/,He],[/^(?:position-|pos-)?inset-([bi][se])-(.+)$/,He],[/^(?:position-|pos-)?(top|left|right|bottom)-(.+)$/,([,e,t],r)=>({[e]:un(t,r)})]],Gt=[["float-left",{float:"left"}],["float-right",{float:"right"}],["float-start",{float:"inline-start"}],["float-end",{float:"inline-end"}],["float-none",{float:"none"}],...v("float"),["clear-left",{clear:"left"}],["clear-right",{clear:"right"}],["clear-both",{clear:"both"}],["clear-start",{clear:"inline-start"}],["clear-end",{clear:"inline-end"}],["clear-none",{clear:"none"}],...v("clear")],Ht=[[/^(?:position-|pos-)?z([\d.]+)$/,([,e])=>({"z-index":c.number(e)})],[/^(?:position-|pos-)?z-(.+)$/,([,e],{theme:t})=>({"z-index":t.zIndex?.[e]??c.bracket.cssvar.global.auto.number(e)}),{autocomplete:"z-<num>"}]],qt=[["box-border",{"box-sizing":"border-box"}],["box-content",{"box-sizing":"content-box"}],...v("box","box-sizing")];var Yt=[[/^(where|\?)$/,(e,{constructCSS:t,generator:r})=>{if(r.userConfig.envMode==="dev")return`@keyframes __un_qm{0%{box-shadow:inset 4px 4px #ff1e90, inset -4px -4px #ff1e90}100%{box-shadow:inset 8px 8px #3399ff, inset -8px -8px #3399ff}} ${t({animation:"__un_qm 0.5s ease-in-out alternate infinite"})}`}]];var Tc=["auto","default","none","context-menu","help","pointer","progress","wait","cell","crosshair","text","vertical-text","alias","copy","move","no-drop","not-allowed","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out"],jc=["none","strict","content","size","inline-size","layout","style","paint"],T=" ",Xt=[["inline",{display:"inline"}],["block",{display:"block"}],["inline-block",{display:"inline-block"}],["contents",{display:"contents"}],["flow-root",{display:"flow-root"}],["list-item",{display:"list-item"}],["hidden",{display:"none"}],[/^display-(.+)$/,([,e])=>({display:c.bracket.cssvar.global(e)})]],Zt=[["visible",{visibility:"visible"}],["invisible",{visibility:"hidden"}],["backface-visible",{"backface-visibility":"visible"}],["backface-hidden",{"backface-visibility":"hidden"}],...v("backface","backface-visibility")],Jt=[[/^cursor-(.+)$/,([,e])=>({cursor:c.bracket.cssvar.global(e)})],...Tc.map(e=>[`cursor-${e}`,{cursor:e}])],Qt=[[/^contain-(.*)$/,([,e])=>c.bracket(e)!=null?{contain:c.bracket(e).split(" ").map(t=>c.cssvar.fraction(t)??t).join(" ")}:jc.includes(e)?{contain:e}:void 0]],er=[["pointer-events-auto",{"pointer-events":"auto"}],["pointer-events-none",{"pointer-events":"none"}],...v("pointer-events")],tr=[["resize-x",{resize:"horizontal"}],["resize-y",{resize:"vertical"}],["resize",{resize:"both"}],["resize-none",{resize:"none"}],...v("resize")],rr=[["select-auto",{"-webkit-user-select":"auto","user-select":"auto"}],["select-all",{"-webkit-user-select":"all","user-select":"all"}],["select-text",{"-webkit-user-select":"text","user-select":"text"}],["select-none",{"-webkit-user-select":"none","user-select":"none"}],...v("select","user-select")],nr=[[/^(?:whitespace-|ws-)([-\w]+)$/,([,e])=>["normal","nowrap","pre","pre-line","pre-wrap","break-spaces",...S].includes(e)?{"white-space":e}:void 0,{autocomplete:"(whitespace|ws)-(normal|nowrap|pre|pre-line|pre-wrap|break-spaces)"}]],or=[[/^intrinsic-size-(.+)$/,([,e])=>({"contain-intrinsic-size":c.bracket.cssvar.global.fraction.rem(e)}),{autocomplete:"intrinsic-size-<num>"}],["content-visibility-visible",{"content-visibility":"visible"}],["content-visibility-hidden",{"content-visibility":"hidden"}],["content-visibility-auto",{"content-visibility":"auto"}],...v("content-visibility")],ir=[[/^content-(.+)$/,([,e])=>({content:c.bracket.cssvar(e)})],["content-empty",{content:'""'}],["content-none",{content:"none"}]],sr=[["break-normal",{"overflow-wrap":"normal","word-break":"normal"}],["break-words",{"overflow-wrap":"break-word"}],["break-all",{"word-break":"break-all"}],["break-keep",{"word-break":"keep-all"}],["break-anywhere",{"overflow-wrap":"anywhere"}]],ar=[["text-wrap",{"text-wrap":"wrap"}],["text-nowrap",{"text-wrap":"nowrap"}],["text-balance",{"text-wrap":"balance"}],["text-pretty",{"text-wrap":"pretty"}]],lr=[["truncate",{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}],["text-truncate",{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}],["text-ellipsis",{"text-overflow":"ellipsis"}],["text-clip",{"text-overflow":"clip"}]],cr=[["case-upper",{"text-transform":"uppercase"}],["case-lower",{"text-transform":"lowercase"}],["case-capital",{"text-transform":"capitalize"}],["case-normal",{"text-transform":"none"}],...v("case","text-transform")],ur=[["italic",{"font-style":"italic"}],["not-italic",{"font-style":"normal"}],["font-italic",{"font-style":"italic"}],["font-not-italic",{"font-style":"normal"}],["oblique",{"font-style":"oblique"}],["not-oblique",{"font-style":"normal"}],["font-oblique",{"font-style":"oblique"}],["font-not-oblique",{"font-style":"normal"}]],fr=[["antialiased",{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"}],["subpixel-antialiased",{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}]];var Ze={"--un-ring-inset":T,"--un-ring-offset-width":"0px","--un-ring-offset-color":"#fff","--un-ring-width":"0px","--un-ring-color":"rgb(147 197 253 / 0.5)","--un-shadow":"0 0 rgb(0 0 0 / 0)"},zc=Object.keys(Ze),pr=[[/^ring(?:-(.+))?$/,([,e],{theme:t})=>{let r=t.ringWidth?.[e||"DEFAULT"]??c.px(e||"1");if(r)return{"--un-ring-width":r,"--un-ring-offset-shadow":"var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color)","--un-ring-shadow":"var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color)","box-shadow":"var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)"}},{custom:{preflightKeys:zc},autocomplete:"ring-$ringWidth"}],[/^ring-(?:width-|size-)(.+)$/,Go,{autocomplete:"ring-(width|size)-$lineWidth"}],["ring-offset",{"--un-ring-offset-width":"1px"}],[/^ring-offset-(?:width-|size-)?(.+)$/,([,e],{theme:t})=>({"--un-ring-offset-width":t.lineWidth?.[e]??c.bracket.cssvar.px(e)}),{autocomplete:"ring-offset-(width|size)-$lineWidth"}],[/^ring-(.+)$/,Ac,{autocomplete:"ring-$colors"}],[/^ring-op(?:acity)?-?(.+)$/,([,e])=>({"--un-ring-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"ring-(op|opacity)-<percent>"}],[/^ring-offset-(.+)$/,V("--un-ring-offset-color","ring-offset","borderColor"),{autocomplete:"ring-offset-$colors"}],[/^ring-offset-op(?:acity)?-?(.+)$/,([,e])=>({"--un-ring-offset-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"ring-offset-(op|opacity)-<percent>"}],["ring-inset",{"--un-ring-inset":"inset"}]];function Go([,e],{theme:t}){return{"--un-ring-width":t.ringWidth?.[e]??c.bracket.cssvar.px(e)}}function Ac(e,t){return J(c.bracket(e[1]))?Go(e,t):V("--un-ring-color","ring","borderColor")(e,t)}var Je={"--un-ring-offset-shadow":"0 0 rgb(0 0 0 / 0)","--un-ring-shadow":"0 0 rgb(0 0 0 / 0)","--un-shadow-inset":T,"--un-shadow":"0 0 rgb(0 0 0 / 0)"},Oc=Object.keys(Je),dr=[[/^shadow(?:-(.+))?$/,(e,t)=>{let[,r]=e,{theme:n}=t,o=n.boxShadow?.[r||"DEFAULT"],i=r?c.bracket.cssvar(r):void 0;return(o!=null||i!=null)&&!ze(i,n,"shadowColor")?{"--un-shadow":je(o||i,"--un-shadow-color").join(","),"box-shadow":"var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)"}:V("--un-shadow-color","shadow","shadowColor")(e,t)},{custom:{preflightKeys:Oc},autocomplete:["shadow-$colors","shadow-$boxShadow"]}],[/^shadow-op(?:acity)?-?(.+)$/,([,e])=>({"--un-shadow-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"shadow-(op|opacity)-<percent>"}],["shadow-inset",{"--un-shadow-inset":"inset"}]];var Vc={h:"height",w:"width",inline:"inline-size",block:"block-size"};function we(e,t){return`${e||""}${Vc[t]}`}function mr(e,t,r,n){let o=we(e,t).replace(/-(\w)/g,(s,l)=>l.toUpperCase()),i=r[o]?.[n];if(i!=null)return i;switch(n){case"fit":case"max":case"min":return`${n}-content`}return c.bracket.cssvar.global.auto.fraction.rem(n)}var hr=[[/^size-(min-|max-)?(.+)$/,([,e,t],{theme:r})=>({[we(e,"w")]:mr(e,"w",r,t),[we(e,"h")]:mr(e,"h",r,t)})],[/^(?:size-)?(min-|max-)?([wh])-?(.+)$/,([,e,t,r],{theme:n})=>({[we(e,t)]:mr(e,t,n,r)})],[/^(?:size-)?(min-|max-)?(block|inline)-(.+)$/,([,e,t,r],{theme:n})=>({[we(e,t)]:mr(e,t,n,r)}),{autocomplete:["(w|h)-$width|height|maxWidth|maxHeight|minWidth|minHeight|inlineSize|blockSize|maxInlineSize|maxBlockSize|minInlineSize|minBlockSize","(block|inline)-$width|height|maxWidth|maxHeight|minWidth|minHeight|inlineSize|blockSize|maxInlineSize|maxBlockSize|minInlineSize|minBlockSize","(max|min)-(w|h|block|inline)","(max|min)-(w|h|block|inline)-$width|height|maxWidth|maxHeight|minWidth|minHeight|inlineSize|blockSize|maxInlineSize|maxBlockSize|minInlineSize|minBlockSize","(w|h)-full","(max|min)-(w|h)-full"]}],[/^(?:size-)?(min-|max-)?(h)-screen-(.+)$/,([,e,t,r],n)=>({[we(e,t)]:Ho(n,r,"verticalBreakpoints")})],[/^(?:size-)?(min-|max-)?(w)-screen-(.+)$/,([,e,t,r],n)=>({[we(e,t)]:Ho(n,r)}),{autocomplete:["(w|h)-screen","(min|max)-(w|h)-screen","h-screen-$verticalBreakpoints","(min|max)-h-screen-$verticalBreakpoints","w-screen-$breakpoints","(min|max)-w-screen-$breakpoints"]}]];function Ho(e,t,r="breakpoints"){let n=ye(e,r);if(n)return n.find(o=>o.point===t)?.size}function Pc(e){if(/^\d+\/\d+$/.test(e))return e;switch(e){case"square":return"1/1";case"video":return"16/9"}return c.bracket.cssvar.global.auto.number(e)}var gr=[[/^(?:size-)?aspect-(?:ratio-)?(.+)$/,([,e])=>({"aspect-ratio":Pc(e)}),{autocomplete:["aspect-(square|video|ratio)","aspect-ratio-(square|video)"]}]];var br=[[/^pa?()-?(.+)$/,_("padding"),{autocomplete:["(m|p)<num>","(m|p)-<num>"]}],[/^p-?xy()()$/,_("padding"),{autocomplete:"(m|p)-(xy)"}],[/^p-?([xy])(?:-?(.+))?$/,_("padding")],[/^p-?([rltbse])(?:-?(.+))?$/,_("padding"),{autocomplete:"(m|p)<directions>-<num>"}],[/^p-(block|inline)(?:-(.+))?$/,_("padding"),{autocomplete:"(m|p)-(block|inline)-<num>"}],[/^p-?([bi][se])(?:-?(.+))?$/,_("padding"),{autocomplete:"(m|p)-(bs|be|is|ie)-<num>"}]],xr=[[/^ma?()-?(.+)$/,_("margin")],[/^m-?xy()()$/,_("margin")],[/^m-?([xy])(?:-?(.+))?$/,_("margin")],[/^m-?([rltbse])(?:-?(.+))?$/,_("margin")],[/^m-(block|inline)(?:-(.+))?$/,_("margin")],[/^m-?([bi][se])(?:-?(.+))?$/,_("margin")]];var yr=[[/^fill-(.+)$/,V("fill","fill","backgroundColor"),{autocomplete:"fill-$colors"}],[/^fill-op(?:acity)?-?(.+)$/,([,e])=>({"--un-fill-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"fill-(op|opacity)-<percent>"}],["fill-none",{fill:"none"}],[/^stroke-(?:width-|size-)?(.+)$/,qo,{autocomplete:["stroke-width-$lineWidth","stroke-size-$lineWidth"]}],[/^stroke-dash-(.+)$/,([,e])=>({"stroke-dasharray":c.bracket.cssvar.number(e)}),{autocomplete:"stroke-dash-<num>"}],[/^stroke-offset-(.+)$/,([,e],{theme:t})=>({"stroke-dashoffset":t.lineWidth?.[e]??c.bracket.cssvar.px.numberWithUnit(e)}),{autocomplete:"stroke-offset-$lineWidth"}],[/^stroke-(.+)$/,Mc,{autocomplete:"stroke-$colors"}],[/^stroke-op(?:acity)?-?(.+)$/,([,e])=>({"--un-stroke-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"stroke-(op|opacity)-<percent>"}],["stroke-cap-square",{"stroke-linecap":"square"}],["stroke-cap-round",{"stroke-linecap":"round"}],["stroke-cap-auto",{"stroke-linecap":"butt"}],["stroke-join-arcs",{"stroke-linejoin":"arcs"}],["stroke-join-bevel",{"stroke-linejoin":"bevel"}],["stroke-join-clip",{"stroke-linejoin":"miter-clip"}],["stroke-join-round",{"stroke-linejoin":"round"}],["stroke-join-auto",{"stroke-linejoin":"miter"}],["stroke-none",{stroke:"none"}]];function qo([,e],{theme:t}){return{"stroke-width":t.lineWidth?.[e]??c.bracket.cssvar.fraction.px.number(e)}}function Mc(e,t){return J(c.bracket(e[1]))?qo(e,t):V("stroke","stroke","borderColor")(e,t)}var vr=["translate","rotate","scale"],Fc=["translateX(var(--un-translate-x))","translateY(var(--un-translate-y))","rotate(var(--un-rotate))","rotateZ(var(--un-rotate-z))","skewX(var(--un-skew-x))","skewY(var(--un-skew-y))","scaleX(var(--un-scale-x))","scaleY(var(--un-scale-y))"].join(" "),Ae=["translateX(var(--un-translate-x))","translateY(var(--un-translate-y))","translateZ(var(--un-translate-z))","rotate(var(--un-rotate))","rotateX(var(--un-rotate-x))","rotateY(var(--un-rotate-y))","rotateZ(var(--un-rotate-z))","skewX(var(--un-skew-x))","skewY(var(--un-skew-y))","scaleX(var(--un-scale-x))","scaleY(var(--un-scale-y))","scaleZ(var(--un-scale-z))"].join(" "),_c=["translate3d(var(--un-translate-x), var(--un-translate-y), var(--un-translate-z))","rotate(var(--un-rotate))","rotateX(var(--un-rotate-x))","rotateY(var(--un-rotate-y))","rotateZ(var(--un-rotate-z))","skewX(var(--un-skew-x))","skewY(var(--un-skew-y))","scaleX(var(--un-scale-x))","scaleY(var(--un-scale-y))","scaleZ(var(--un-scale-z))"].join(" "),Qe={"--un-rotate":0,"--un-rotate-x":0,"--un-rotate-y":0,"--un-rotate-z":0,"--un-scale-x":1,"--un-scale-y":1,"--un-scale-z":1,"--un-skew-x":0,"--un-skew-y":0,"--un-translate-x":0,"--un-translate-y":0,"--un-translate-z":0},oe=Object.keys(Qe),wr=[[/^(?:transform-)?origin-(.+)$/,([,e])=>({"transform-origin":B[e]??c.bracket.cssvar(e)}),{autocomplete:[`transform-origin-(${Object.keys(B).join("|")})`,`origin-(${Object.keys(B).join("|")})`]}],[/^(?:transform-)?perspect(?:ive)?-(.+)$/,([,e])=>{let t=c.bracket.cssvar.px.numberWithUnit(e);if(t!=null)return{"-webkit-perspective":t,perspective:t}}],[/^(?:transform-)?perspect(?:ive)?-origin-(.+)$/,([,e])=>{let t=c.bracket.cssvar(e)??(e.length>=3?B[e]:void 0);if(t!=null)return{"-webkit-perspective-origin":t,"perspective-origin":t}}],[/^(?:transform-)?translate-()(.+)$/,Yo,{custom:{preflightKeys:oe}}],[/^(?:transform-)?translate-([xyz])-(.+)$/,Yo,{custom:{preflightKeys:oe}}],[/^(?:transform-)?rotate-()(.+)$/,Zo,{custom:{preflightKeys:oe}}],[/^(?:transform-)?rotate-([xyz])-(.+)$/,Zo,{custom:{preflightKeys:oe}}],[/^(?:transform-)?skew-()(.+)$/,Jo,{custom:{preflightKeys:oe}}],[/^(?:transform-)?skew-([xy])-(.+)$/,Jo,{custom:{preflightKeys:oe},autocomplete:["transform-skew-(x|y)-<percent>","skew-(x|y)-<percent>"]}],[/^(?:transform-)?scale-()(.+)$/,Xo,{custom:{preflightKeys:oe}}],[/^(?:transform-)?scale-([xyz])-(.+)$/,Xo,{custom:{preflightKeys:oe},autocomplete:[`transform-(${vr.join("|")})-<percent>`,`transform-(${vr.join("|")})-(x|y|z)-<percent>`,`(${vr.join("|")})-<percent>`,`(${vr.join("|")})-(x|y|z)-<percent>`]}],[/^(?:transform-)?preserve-3d$/,()=>({"transform-style":"preserve-3d"})],[/^(?:transform-)?preserve-flat$/,()=>({"transform-style":"flat"})],["transform",{transform:Ae},{custom:{preflightKeys:oe}}],["transform-cpu",{transform:Fc},{custom:{preflightKeys:["--un-translate-x","--un-translate-y","--un-rotate","--un-rotate-z","--un-skew-x","--un-skew-y","--un-scale-x","--un-scale-y"]}}],["transform-gpu",{transform:_c},{custom:{preflightKeys:oe}}],["transform-none",{transform:"none"}],...v("transform")];function Yo([,e,t],{theme:r}){let n=r.spacing?.[t]??c.bracket.cssvar.fraction.rem(t);if(n!=null)return[...Et(e,n,"translate"),["transform",Ae]]}function Xo([,e,t]){let r=c.bracket.cssvar.fraction.percent(t);if(r!=null)return[...Et(e,r,"scale"),["transform",Ae]]}function Zo([,e="",t]){let r=c.bracket.cssvar.degree(t);if(r!=null)return e?{"--un-rotate":0,[`--un-rotate-${e}`]:r,transform:Ae}:{"--un-rotate-x":0,"--un-rotate-y":0,"--un-rotate-z":0,"--un-rotate":r,transform:Ae}}function Jo([,e,t]){let r=c.bracket.cssvar.degree(t);if(r!=null)return[...Et(e,r,"skew"),["transform",Ae]]}function Qo(e,t){let r;if(c.cssvar(e)!=null)r=c.cssvar(e);else{e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1));let n=e.split(",").map(o=>t.transitionProperty?.[o]??c.properties(o));n.every(Boolean)&&(r=n.join(","))}return r}var kr=[[/^transition(?:-(\D+?))?(?:-(\d+))?$/,([,e,t],{theme:r})=>{if(!e&&!t)return{"transition-property":r.transitionProperty?.DEFAULT,"transition-timing-function":r.easing?.DEFAULT,"transition-duration":r.duration?.DEFAULT??c.time("150")};if(e!=null){let n=Qo(e,r),o=r.duration?.[t||"DEFAULT"]??c.time(t||"150");if(n)return{"transition-property":n,"transition-timing-function":r.easing?.DEFAULT,"transition-duration":o}}else if(t!=null)return{"transition-property":r.transitionProperty?.DEFAULT,"transition-timing-function":r.easing?.DEFAULT,"transition-duration":r.duration?.[t]??c.time(t)}},{autocomplete:"transition-$transitionProperty-$duration"}],[/^(?:transition-)?duration-(.+)$/,([,e],{theme:t})=>({"transition-duration":t.duration?.[e||"DEFAULT"]??c.bracket.cssvar.time(e)}),{autocomplete:["transition-duration-$duration","duration-$duration"]}],[/^(?:transition-)?delay-(.+)$/,([,e],{theme:t})=>({"transition-delay":t.duration?.[e||"DEFAULT"]??c.bracket.cssvar.time(e)}),{autocomplete:["transition-delay-$duration","delay-$duration"]}],[/^(?:transition-)?ease(?:-(.+))?$/,([,e],{theme:t})=>({"transition-timing-function":t.easing?.[e||"DEFAULT"]??c.bracket.cssvar(e)}),{autocomplete:["transition-ease-(linear|in|out|in-out|DEFAULT)","ease-(linear|in|out|in-out|DEFAULT)"]}],[/^(?:transition-)?property-(.+)$/,([,e],{theme:t})=>{let r=c.global(e)||Qo(e,t);if(r)return{"transition-property":r}},{autocomplete:[`transition-property-(${[...S].join("|")})`,"transition-property-$transitionProperty","property-$transitionProperty"]}],["transition-none",{transition:"none"}],...v("transition"),["transition-discrete",{"transition-behavior":"allow-discrete"}],["transition-normal",{"transition-behavior":"normal"}]];var $r=[[/^text-(.+)$/,Uc,{autocomplete:"text-$fontSize"}],[/^(?:text|font)-size-(.+)$/,ei,{autocomplete:"text-size-$fontSize"}],[/^text-(?:color-)?(.+)$/,Lc,{autocomplete:"text-$colors"}],[/^(?:color|c)-(.+)$/,V("color","text","textColor"),{autocomplete:"(color|c)-$colors"}],[/^(?:text|color|c)-(.+)$/,([,e])=>S.includes(e)?{color:e}:void 0,{autocomplete:`(text|color|c)-(${S.join("|")})`}],[/^(?:text|color|c)-op(?:acity)?-?(.+)$/,([,e])=>({"--un-text-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"(text|color|c)-(op|opacity)-<percent>"}],[/^(?:font|fw)-?([^-]+)$/,([,e],{theme:t})=>({"font-weight":t.fontWeight?.[e]||c.bracket.global.number(e)}),{autocomplete:["(font|fw)-(100|200|300|400|500|600|700|800|900)","(font|fw)-$fontWeight"]}],[/^(?:font-)?(?:leading|lh|line-height)-(.+)$/,([,e],{theme:t})=>({"line-height":fn(e,t,"lineHeight")}),{autocomplete:"(leading|lh|line-height)-$lineHeight"}],["font-synthesis-weight",{"font-synthesis":"weight"}],["font-synthesis-style",{"font-synthesis":"style"}],["font-synthesis-small-caps",{"font-synthesis":"small-caps"}],["font-synthesis-none",{"font-synthesis":"none"}],[/^font-synthesis-(.+)$/,([,e])=>({"font-synthesis":c.bracket.cssvar.global(e)})],[/^(?:font-)?tracking-(.+)$/,([,e],{theme:t})=>({"letter-spacing":t.letterSpacing?.[e]||c.bracket.cssvar.global.rem(e)}),{autocomplete:"tracking-$letterSpacing"}],[/^(?:font-)?word-spacing-(.+)$/,([,e],{theme:t})=>({"word-spacing":t.wordSpacing?.[e]||c.bracket.cssvar.global.rem(e)}),{autocomplete:"word-spacing-$wordSpacing"}],["font-stretch-normal",{"font-stretch":"normal"}],["font-stretch-ultra-condensed",{"font-stretch":"ultra-condensed"}],["font-stretch-extra-condensed",{"font-stretch":"extra-condensed"}],["font-stretch-condensed",{"font-stretch":"condensed"}],["font-stretch-semi-condensed",{"font-stretch":"semi-condensed"}],["font-stretch-semi-expanded",{"font-stretch":"semi-expanded"}],["font-stretch-expanded",{"font-stretch":"expanded"}],["font-stretch-extra-expanded",{"font-stretch":"extra-expanded"}],["font-stretch-ultra-expanded",{"font-stretch":"ultra-expanded"}],[/^font-stretch-(.+)$/,([,e])=>({"font-stretch":c.bracket.cssvar.fraction.global(e)}),{autocomplete:"font-stretch-<percentage>"}],[/^font-(.+)$/,([,e],{theme:t})=>({"font-family":t.fontFamily?.[e]||c.bracket.cssvar.global(e)}),{autocomplete:"font-$fontFamily"}]],Sr=[[/^tab(?:-(.+))?$/,([,e])=>{let t=c.bracket.cssvar.global.number(e||"4");if(t!=null)return{"-moz-tab-size":t,"-o-tab-size":t,"tab-size":t}}]],Cr=[[/^indent(?:-(.+))?$/,([,e],{theme:t})=>({"text-indent":t.textIndent?.[e||"DEFAULT"]||c.bracket.cssvar.global.fraction.rem(e)}),{autocomplete:"indent-$textIndent"}]],Rr=[[/^text-stroke(?:-(.+))?$/,([,e],{theme:t})=>({"-webkit-text-stroke-width":t.textStrokeWidth?.[e||"DEFAULT"]||c.bracket.cssvar.px(e)}),{autocomplete:"text-stroke-$textStrokeWidth"}],[/^text-stroke-(.+)$/,V("-webkit-text-stroke-color","text-stroke","borderColor"),{autocomplete:"text-stroke-$colors"}],[/^text-stroke-op(?:acity)?-?(.+)$/,([,e])=>({"--un-text-stroke-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"text-stroke-(op|opacity)-<percent>"}]],Er=[[/^text-shadow(?:-(.+))?$/,([,e],{theme:t})=>{let r=t.textShadow?.[e||"DEFAULT"];return r!=null?{"--un-text-shadow":je(r,"--un-text-shadow-color").join(","),"text-shadow":"var(--un-text-shadow)"}:{"text-shadow":c.bracket.cssvar.global(e)}},{autocomplete:"text-shadow-$textShadow"}],[/^text-shadow-color-(.+)$/,V("--un-text-shadow-color","text-shadow","shadowColor"),{autocomplete:"text-shadow-color-$colors"}],[/^text-shadow-color-op(?:acity)?-?(.+)$/,([,e])=>({"--un-text-shadow-opacity":c.bracket.percent.cssvar(e)}),{autocomplete:"text-shadow-color-(op|opacity)-<percent>"}]];function fn(e,t,r){return t[r]?.[e]||c.bracket.cssvar.global.rem(e)}function ei([,e],{theme:t}){let n=O(t.fontSize?.[e])?.[0]??c.bracket.cssvar.global.rem(e);if(n!=null)return{"font-size":n}}function Lc(e,t){return J(c.bracket(e[1]))?ei(e,t):V("color","text","textColor")(e,t)}function Uc([,e="base"],{theme:t}){let r=an(e,"length");if(!r)return;let[n,o]=r,i=O(t.fontSize?.[n]),s=o?fn(o,t,"lineHeight"):void 0;if(i?.[0]){let[a,u,f]=i;return typeof u=="object"?{"font-size":a,...u}:{"font-size":a,"line-height":s??u??"1","letter-spacing":f?fn(f,t,"letterSpacing"):void 0}}let l=c.bracketOfLength.rem(n);return s&&l?{"font-size":l,"line-height":s}:{"font-size":c.bracketOfLength.rem(e)}}var Wc={backface:"backface-visibility",break:"word-break",case:"text-transform",content:"align-content",fw:"font-weight",items:"align-items",justify:"justify-content",select:"user-select",self:"align-self",vertical:"vertical-align",visible:"visibility",whitespace:"white-space",ws:"white-space"},Tr=[[/^(.+?)-(\$.+)$/,([,e,t])=>{let r=Wc[e];if(r)return{[r]:c.cssvar(t)}}]],jr=[[/^\[(.*)\]$/,([e,t])=>{if(!t.includes(":"))return;let[r,...n]=t.split(":"),o=n.join(":");if(!Nc(t)&&/^[a-z-]+$/.test(r)&&Bc(o)){let i=c.bracket(`[${o}]`);if(i)return{[r]:i}}}]];function Bc(e){let t=0;function r(n){for(;t<e.length;)if(t+=1,e[t]===n)return!0;return!1}for(t=0;t<e.length;t++){let n=e[t];if("\"`'".includes(n)){if(!r(n))return!1}else if(n==="("){if(!r(")"))return!1}else if("[]{}:".includes(n))return!1}return!0}function Nc(e){if(!e.includes("://"))return!1;try{return new URL(e).host!==""}catch{return!1}}var ti=[Tr,jr,Qt,er,Zt,Nt,Kt,Ht,Dt,Ut,Gt,xr,qt,Xt,gr,hr,_t,wr,Jt,rr,tr,jt,Xe,Ye,qe,Lt,It,Bt,lr,nr,sr,At,Vt,Pt,yr,br,Rt,Cr,ar,Ct,$r,cr,ur,Ft,fr,Sr,Rr,Er,Ot,dr,Tt,pr,kr,zt,or,ir,Mt,Yt].flat(1);var ri={position:["relative","absolute","fixed","sticky","static"],globalKeyword:S};var pn={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},light:{50:"#fdfdfd",100:"#fcfcfc",200:"#fafafa",300:"#f8f9fa",400:"#f6f6f6",500:"#f2f2f2",600:"#f1f3f5",700:"#e9ecef",800:"#dee2e6",900:"#dde1e3",950:"#d8dcdf"},dark:{50:"#4a4a4a",100:"#3c3c3c",200:"#323232",300:"#2d2d2d",400:"#222222",500:"#1f1f1f",600:"#1c1c1e",700:"#1b1b1b",800:"#181818",900:"#0f0f0f",950:"#080808"},get lightblue(){return this.sky},get lightBlue(){return this.sky},get warmgray(){return this.stone},get warmGray(){return this.stone},get truegray(){return this.neutral},get trueGray(){return this.neutral},get coolgray(){return this.gray},get coolGray(){return this.gray},get bluegray(){return this.slate},get blueGray(){return this.slate}};Object.values(pn).forEach(e=>{typeof e!="string"&&e!==void 0&&(e.DEFAULT=e.DEFAULT||e[400],Object.keys(e).forEach(t=>{let r=+t/100;r===Math.round(r)&&(e[r]=e[t])}))});var ni={DEFAULT:"8px",0:"0",sm:"4px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},oi={DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],sm:"0 1px 1px rgb(0 0 0 / 0.05)",md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 rgb(0 0 0 / 0)"};var ii={sans:["ui-sans-serif","system-ui","-apple-system","BlinkMacSystemFont",'"Segoe UI"',"Roboto",'"Helvetica Neue"',"Arial",'"Noto Sans"',"sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'].join(","),serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"].join(","),mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"].join(",")},si={xs:["0.75rem","1rem"],sm:["0.875rem","1.25rem"],base:["1rem","1.5rem"],lg:["1.125rem","1.75rem"],xl:["1.25rem","1.75rem"],"2xl":["1.5rem","2rem"],"3xl":["1.875rem","2.25rem"],"4xl":["2.25rem","2.5rem"],"5xl":["3rem","1"],"6xl":["3.75rem","1"],"7xl":["4.5rem","1"],"8xl":["6rem","1"],"9xl":["8rem","1"]},ai={DEFAULT:"1.5rem",xs:"0.5rem",sm:"1rem",md:"1.5rem",lg:"2rem",xl:"2.5rem","2xl":"3rem","3xl":"4rem"},li={DEFAULT:"1.5rem",none:"0",sm:"thin",md:"medium",lg:"thick"},ci={DEFAULT:["0 0 1px rgb(0 0 0 / 0.2)","0 0 1px rgb(1 0 5 / 0.1)"],none:"0 0 rgb(0 0 0 / 0)",sm:"1px 1px 3px rgb(36 37 47 / 0.25)",md:["0 1px 2px rgb(30 29 39 / 0.19)","1px 2px 4px rgb(54 64 147 / 0.18)"],lg:["3px 3px 6px rgb(0 0 0 / 0.26)","0 0 5px rgb(15 3 86 / 0.22)"],xl:["1px 1px 3px rgb(0 0 0 / 0.29)","2px 4px 7px rgb(73 64 125 / 0.35)"]},ui={none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2"},dn={tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},fi={thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},pi=dn;var mn={sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},di={...mn},mi={DEFAULT:"1px",none:"0"},hi={DEFAULT:"1rem",none:"0",xs:"0.75rem",sm:"0.875rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem","7xl":"4.5rem","8xl":"6rem","9xl":"8rem"},gi={DEFAULT:"150ms",none:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},bi={DEFAULT:"0.25rem",none:"0",sm:"0.125rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},xi={DEFAULT:["var(--un-shadow-inset) 0 1px 3px 0 rgb(0 0 0 / 0.1)","var(--un-shadow-inset) 0 1px 2px -1px rgb(0 0 0 / 0.1)"],none:"0 0 rgb(0 0 0 / 0)",sm:"var(--un-shadow-inset) 0 1px 2px 0 rgb(0 0 0 / 0.05)",md:["var(--un-shadow-inset) 0 4px 6px -1px rgb(0 0 0 / 0.1)","var(--un-shadow-inset) 0 2px 4px -2px rgb(0 0 0 / 0.1)"],lg:["var(--un-shadow-inset) 0 10px 15px -3px rgb(0 0 0 / 0.1)","var(--un-shadow-inset) 0 4px 6px -4px rgb(0 0 0 / 0.1)"],xl:["var(--un-shadow-inset) 0 20px 25px -5px rgb(0 0 0 / 0.1)","var(--un-shadow-inset) 0 8px 10px -6px rgb(0 0 0 / 0.1)"],"2xl":"var(--un-shadow-inset) 0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},yi={DEFAULT:"3px",none:"0"},vi={auto:"auto"},wi={mouse:"(hover) and (pointer: fine)"};var ki={...Qe,...Je,...Ze};var et={xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",prose:"65ch"},hn={auto:"auto",...et,screen:"100vw"},tt={none:"none",...et,screen:"100vw"},gn={auto:"auto",...et,screen:"100vh"},rt={none:"none",...et,screen:"100vh"},$i={...et};var Si={DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},Ci={none:"none",all:"all",colors:["color","background-color","border-color","text-decoration-color","fill","stroke"].join(","),opacity:"opacity",shadow:"box-shadow",transform:"transform",get DEFAULT(){return[this.colors,"opacity","box-shadow","transform","filter","backdrop-filter"].join(",")}};var Ri={width:hn,height:gn,maxWidth:tt,maxHeight:rt,minWidth:tt,minHeight:rt,inlineSize:hn,blockSize:gn,maxInlineSize:tt,maxBlockSize:rt,minInlineSize:tt,minBlockSize:rt,colors:pn,fontFamily:ii,fontSize:si,fontWeight:fi,breakpoints:mn,verticalBreakpoints:di,borderRadius:bi,lineHeight:ui,letterSpacing:dn,wordSpacing:pi,boxShadow:xi,textIndent:ai,textShadow:ci,textStrokeWidth:li,blur:ni,dropShadow:oi,easing:Si,transitionProperty:Ci,lineWidth:mi,spacing:hi,duration:gi,ringWidth:yi,preflightBase:ki,containers:$i,zIndex:vi,media:wi};var Ei={name:"aria",match(e,t){let r=I("aria-",e,t.generator.config.separators);if(r){let[n,o]=r,i=c.bracket(n)??t.theme.aria?.[n]??"";if(i)return{matcher:o,selector:s=>`${s}[aria-${i}]`}}}};function zr(e){return{name:`${e}-aria`,match(t,r){let n=I(`${e}-aria-`,t,r.generator.config.separators);if(n){let[o,i]=n,s=c.bracket(o)??r.theme.aria?.[o]??"";if(s)return{matcher:`${e}-[[aria-${s}]]:${i}`}}}}}var Ti=[zr("group"),zr("peer"),zr("parent"),zr("previous")];function ji(e){let t=e.match(/^-?\d+\.?\d*/)?.[0]||"",r=e.slice(t.length);if(r==="px"){let n=Number.parseFloat(t)-.1;return Number.isNaN(n)?e:`${n}${r}`}return`calc(${e} - 0.1px)`}var zi=/(max|min)-\[([^\]]*)\]:/;function Ai(){let e={};return{name:"breakpoints",match(t,r){if(zi.test(t)){let o=t.match(zi);return{matcher:t.replace(o[0],""),handle:(s,l)=>l({...s,parent:`${s.parent?`${s.parent} $$ `:""}@media (${o[1]}-width: ${o[2]})`})}}let n=(ye(r)??[]).map(({point:o,size:i},s)=>[o,i,s]);for(let[o,i,s]of n){e[o]||(e[o]=new RegExp(`^((?:([al]t-|[<~]|max-))?${o}(?:${r.generator.config.separators.join("|")}))`));let l=t.match(e[o]);if(!l)continue;let[,a]=l,u=t.slice(a.length);if(u==="container")continue;let f=a.startsWith("lt-")||a.startsWith("<")||a.startsWith("max-"),p=a.startsWith("at-")||a.startsWith("~"),m=3e3;return f?(m-=s+1,{matcher:u,handle:(d,h)=>h({...d,parent:`${d.parent?`${d.parent} $$ `:""}@media (max-width: ${ji(i)})`,parentOrder:m})}):(m+=s+1,p&&s<n.length-1?{matcher:u,handle:(d,h)=>h({...d,parent:`${d.parent?`${d.parent} $$ `:""}@media (min-width: ${i}) and (max-width: ${ji(n[s+1][1])})`,parentOrder:m})}:{matcher:u,handle:(d,h)=>h({...d,parent:`${d.parent?`${d.parent} $$ `:""}@media (min-width: ${i})`,parentOrder:m})})}},multiPass:!0,autocomplete:"(at-|lt-|max-|)$breakpoints:"}}var Oi=[K("*",e=>({selector:`${e.selector} > *`}))];function nt(e,t){return{name:`combinator:${e}`,match(r,n){if(!r.startsWith(e))return;let o=n.generator.config.separators,i=me(`${e}-`,r,o);if(!i){for(let l of o)if(r.startsWith(`${e}${l}`)){i=["",r.slice(e.length+l.length)];break}if(!i)return}let s=c.bracket(i[0])??"";return s===""&&(s="*"),{matcher:i[1],selector:l=>`${l}${t}${s}`}},multiPass:!0}}var Vi=[nt("all"," "),nt("children",">"),nt("next","+"),nt("sibling","+"),nt("siblings","~")];var Pi={name:"@",match(e,t){if(e.startsWith("@container"))return;let r=I("@",e,t.generator.config.separators);if(r){let[n,o,i]=r,s=c.bracket(n),l;if(s?l=c.numberWithUnit(s):l=t.theme.containers?.[n]??"",l){let a=1e3+Object.keys(t.theme.containers??{}).indexOf(n);return i&&(a+=1e3),{matcher:o,handle:(u,f)=>f({...u,parent:`${u.parent?`${u.parent} $$ `:""}@container${i?` ${i} `:" "}(min-width: ${l})`,parentOrder:a})}}}},multiPass:!0};function Mi(e={}){if(e?.dark==="class"||typeof e.dark=="object"){let{dark:t=".dark",light:r=".light"}=typeof e.dark=="string"?{}:e.dark;return[K("dark",n=>({prefix:`${t} $$ ${n.prefix}`})),K("light",n=>({prefix:`${r} $$ ${n.prefix}`}))]}return[G("dark","@media (prefers-color-scheme: dark)"),G("light","@media (prefers-color-scheme: light)")]}var Fi={name:"data",match(e,t){let r=I("data-",e,t.generator.config.separators);if(r){let[n,o]=r,i=c.bracket(n)??t.theme.data?.[n]??"";if(i)return{matcher:o,selector:s=>`${s}[data-${i}]`}}}};function Ar(e){return{name:`${e}-data`,match(t,r){let n=I(`${e}-data-`,t,r.generator.config.separators);if(n){let[o,i,s]=n,l=c.bracket(o)??r.theme.data?.[o]??"";if(l)return{matcher:`${e}-[[data-${l}]]${s?`/${s}`:""}:${i}`}}}}}var _i=[Ar("group"),Ar("peer"),Ar("parent"),Ar("previous")];var Li=[K("rtl",e=>({prefix:`[dir="rtl"] $$ ${e.prefix}`})),K("ltr",e=>({prefix:`[dir="ltr"] $$ ${e.prefix}`}))];function Ui(){let e;return{name:"important",match(t,r){e||(e=new RegExp(`^(important(?:${r.generator.config.separators.join("|")})|!)`));let n,o=t.match(e);if(o?n=t.slice(o[0].length):t.endsWith("!")&&(n=t.slice(0,-1)),n)return{matcher:n,body:i=>(i.forEach(s=>{s[1]!=null&&(s[1]+=" !important")}),i)}}}}var Wi=G("print","@media print"),Bi={name:"media",match(e,t){let r=I("media-",e,t.generator.config.separators);if(r){let[n,o]=r,i=c.bracket(n)??"";if(i===""&&(i=t.theme.media?.[n]??""),i)return{matcher:o,handle:(s,l)=>l({...s,parent:`${s.parent?`${s.parent} $$ `:""}@media ${i}`})}}},multiPass:!0};var Ni={name:"selector",match(e,t){let r=me("selector-",e,t.generator.config.separators);if(r){let[n,o]=r,i=c.bracket(n);if(i)return{matcher:o,selector:()=>i}}}},Di={name:"layer",match(e,t){let r=I("layer-",e,t.generator.config.separators);if(r){let[n,o]=r,i=c.bracket(n)??n;if(i)return{matcher:o,handle:(s,l)=>l({...s,parent:`${s.parent?`${s.parent} $$ `:""}@layer ${i}`})}}}},Ii={name:"uno-layer",match(e,t){let r=I("uno-layer-",e,t.generator.config.separators);if(r){let[n,o]=r,i=c.bracket(n)??n;if(i)return{matcher:o,layer:i}}}},Ki={name:"scope",match(e,t){let r=me("scope-",e,t.generator.config.separators);if(r){let[n,o]=r,i=c.bracket(n);if(i)return{matcher:o,selector:s=>`${i} $$ ${s}`}}}},Gi={name:"variables",match(e,t){if(!e.startsWith("["))return;let[r,n]=Ce(e,"[","]")??[];if(!(r&&n))return;let o;for(let l of t.generator.config.separators)if(n.startsWith(l)){o=n.slice(l.length);break}if(o==null)return;let i=c.bracket(r)??"",s=i.startsWith("@");if(s||i.includes("&"))return{matcher:o,handle(l,a){let u=s?{parent:`${l.parent?`${l.parent} $$ `:""}${i}`}:{selector:i.replace(/&/g,l.selector)};return a({...l,...u})}}},multiPass:!0},Hi={name:"theme-variables",match(e,t){if(jo(e))return{matcher:e,handle(r,n){return n({...r,entries:JSON.parse(zo(JSON.stringify(r.entries),t.theme))})}}}};var qi=/^-?[0-9.]+(?:[a-z]+|%)?$/,Yi=/-?[0-9.]+(?:[a-z]+|%)?/,Dc=[/\b(opacity|color|flex|backdrop-filter|^filter|transform)\b/];function Ic(e){let t=e.match(Ne)||e.match(kt);if(t){let[r,n]=de(`(${t[2]})${t[3]}`,"(",")"," ")??[];if(r)return`calc(${t[1]}${r} * -1)${n?` ${n}`:""}`}}var Kc=/\b(hue-rotate)\s*(\(.*)/;function Gc(e){let t=e.match(Kc);if(t){let[r,n]=de(t[2],"(",")"," ")??[];if(r){let o=qi.test(r.slice(1,-1))?r.replace(Yi,i=>i.startsWith("-")?i.slice(1):`-${i}`):`(calc(${r} * -1))`;return`${t[1]}${o}${n?` ${n}`:""}`}}}var Xi={name:"negative",match(e){if(e.startsWith("-"))return{matcher:e.slice(1),body:t=>{if(t.find(n=>n[0]===Wo))return;let r=!1;return t.forEach(n=>{let o=n[1]?.toString();if(!o||o==="0"||Dc.some(l=>l.test(n[0])))return;let i=Ic(o);if(i){n[1]=i,r=!0;return}let s=Gc(o);if(s){n[1]=s,r=!0;return}qi.test(o)&&(n[1]=o.replace(Yi,l=>l.startsWith("-")?l.slice(1):`-${l}`),r=!0)}),r?t:[]}}}};var Oe=Object.fromEntries([["first-letter","::first-letter"],["first-line","::first-line"],"any-link","link","visited","target",["open","[open]"],"default","checked","indeterminate","placeholder-shown","autofill","optional","required","valid","invalid","user-valid","user-invalid","in-range","out-of-range","read-only","read-write","empty","focus-within","hover","focus","focus-visible","active","enabled","disabled","popover-open","root","empty",["even-of-type",":nth-of-type(even)"],["even",":nth-child(even)"],["odd-of-type",":nth-of-type(odd)"],["odd",":nth-child(odd)"],"first-of-type",["first",":first-child"],"last-of-type",["last",":last-child"],"only-child","only-of-type",["backdrop-element","::backdrop"],["placeholder","::placeholder"],["before","::before"],["after","::after"],["file","::file-selector-button"]].map(e=>Array.isArray(e)?e:[e,`:${e}`])),es=Object.keys(Oe),Ve=Object.fromEntries([["backdrop","::backdrop"]].map(e=>Array.isArray(e)?e:[e,`:${e}`])),ts=Object.keys(Ve),Hc=["not","is","where","has"],rs=Object.fromEntries([["selection",["::selection"," *::selection"]],["marker",["::marker"," *::marker"]]]),bn=Object.entries(Oe).filter(([,e])=>!e.startsWith("::")).map(([e])=>e).sort((e,t)=>t.length-e.length).join("|"),xn=Object.entries(Ve).filter(([,e])=>!e.startsWith("::")).map(([e])=>e).sort((e,t)=>t.length-e.length).join("|"),ke=Hc.join("|"),Zi=Object.keys(rs).sort((e,t)=>t.length-e.length).join("|");function qc(e,t,r){let n=new RegExp(`^(${fe(t)}:)(\\S+)${fe(r)}\\1`),o,i,s,l,a=p=>{let m=me(`${e}-`,p,[]);if(!m)return;let[d,h]=m,g=c.bracket(d);if(g==null)return;let w=h.split(o,1)?.[0]??"",j=`${t}${se(w)}`;return[w,p.slice(p.length-(h.length-w.length-1)),g.includes("&")?g.replace(/&/g,j):`${j}${g}`]},u=p=>{let m=p.match(i)||p.match(s);if(!m)return;let[d,h,g]=m,w=m[3]??"",j=Oe[g]||Ve[g]||`:${g}`;return h&&(j=`:${h}(${j})`),[w,p.slice(d.length),`${t}${se(w)}${j}`,g]},f=p=>{let m=p.match(l);if(!m)return;let[d,h,g]=m,w=m[3]??"",j=`:${h}(${g})`;return[w,p.slice(d.length),`${t}${se(w)}${j}`]};return{name:`pseudo:${e}`,match(p,m){if(o&&i&&s||(o=new RegExp(`(?:${m.generator.config.separators.join("|")})`),i=new RegExp(`^${e}-(?:(?:(${ke})-)?(${bn}))(?:(/\\w+))?(?:${m.generator.config.separators.join("|")})`),s=new RegExp(`^${e}-(?:(?:(${ke})-)?(${xn}))(?:(/\\w+))?(?:${m.generator.config.separators.filter(y=>y!=="-").join("|")})`),l=new RegExp(`^${e}-(?:(${ke})-)?\\[(.+)\\](?:(/\\w+))?(?:${m.generator.config.separators.filter(y=>y!=="-").join("|")})`)),!p.startsWith(e))return;let d=a(p)||u(p)||f(p);if(!d)return;let[h,g,w,j=""]=d;return{matcher:g,handle:(y,$)=>$({...y,prefix:`${w}${r}${y.prefix}`.replace(n,"$1$2:"),sort:es.indexOf(j)??ts.indexOf(j)})}},multiPass:!0}}var Yc=["::-webkit-resizer","::-webkit-scrollbar","::-webkit-scrollbar-button","::-webkit-scrollbar-corner","::-webkit-scrollbar-thumb","::-webkit-scrollbar-track","::-webkit-scrollbar-track-piece","::file-selector-button"],Ji=Object.entries(Oe).map(([e])=>e).sort((e,t)=>t.length-e.length).join("|"),Qi=Object.entries(Ve).map(([e])=>e).sort((e,t)=>t.length-e.length).join("|");function ns(){let e,t,r;return[{name:"pseudo",match(n,o){e&&t||(e=new RegExp(`^(${Ji})(?:${o.generator.config.separators.join("|")})`),t=new RegExp(`^(${Qi})(?:${o.generator.config.separators.filter(s=>s!=="-").join("|")})`));let i=n.match(e)||n.match(t);if(i){let s=Oe[i[1]]||Ve[i[1]]||`:${i[1]}`,l=es.indexOf(i[1]);return l===-1&&(l=ts.indexOf(i[1])),l===-1&&(l=void 0),{matcher:n.slice(i[0].length),handle:(a,u)=>{let f=s.includes("::")&&!Yc.includes(s)?{pseudo:`${a.pseudo}${s}`}:{selector:`${a.selector}${s}`};return u({...a,...f,sort:l,noMerge:!0})}}}},multiPass:!0,autocomplete:`(${Ji}|${Qi}):`},{name:"pseudo:multi",match(n,o){r||(r=new RegExp(`^(${Zi})(?:${o.generator.config.separators.join("|")})`));let i=n.match(r);if(i)return rs[i[1]].map(l=>({matcher:n.slice(i[0].length),handle:(a,u)=>u({...a,pseudo:`${a.pseudo}${l}`})}))},multiPass:!1,autocomplete:`(${Zi}):`}]}function os(){let e,t,r;return{match(n,o){e&&t||(e=new RegExp(`^(${ke})-(${bn})(?:${o.generator.config.separators.join("|")})`),t=new RegExp(`^(${ke})-(${xn})(?:${o.generator.config.separators.filter(s=>s!=="-").join("|")})`),r=new RegExp(`^(${ke})-(\\[.+\\])(?:${o.generator.config.separators.filter(s=>s!=="-").join("|")})`));let i=n.match(e)||n.match(t)||n.match(r);if(i){let s=i[1],a=Ce(i[2],"[","]")?c.bracket(i[2]):Oe[i[2]]||Ve[i[2]]||`:${i[2]}`;return{matcher:n.slice(i[0].length),selector:u=>`${u}:${s}(${a})`}}},multiPass:!0,autocomplete:`(${ke})-(${bn}|${xn}):`}}function is(e={}){let t=!!e?.attributifyPseudo,r=e?.prefix??"";r=(Array.isArray(r)?r:[r]).filter(Boolean)[0]??"";let n=(o,i)=>qc(o,t?`[${r}${o}=""]`:`.${r}${o}`,i);return[n("group"," "),n("peer","~"),n("parent",">"),n("previous","+"),n("group-aria"," "),n("peer-aria","~"),n("parent-aria",">"),n("previous-aria","+")]}var Xc=/(part-\[(.+)\]:)(.+)/,ss={match(e){let t=e.match(Xc);if(t){let r=`part(${t[2]})`;return{matcher:e.slice(t[1].length),selector:n=>`${n}::${r}`}}},multiPass:!0};var as={name:"starting",match(e){if(e.startsWith("starting:"))return{matcher:e.slice(9),handle:(t,r)=>r({...t,parent:"@starting-style"})}}};var ls={name:"supports",match(e,t){let r=I("supports-",e,t.generator.config.separators);if(r){let[n,o]=r,i=c.bracket(n)??"";if(i===""&&(i=t.theme.supports?.[n]??""),i)return{matcher:o,handle:(s,l)=>l({...s,parent:`${s.parent?`${s.parent} $$ `:""}@supports ${i}`})}}},multiPass:!0};function Or(e){return[Ei,Fi,Di,Ni,Ii,Xi,as,Ui(),ls,Wi,Bi,Ai(),...Vi,...ns(),os(),...is(e),ss,...Mi(e),...Li,Ki,...Oi,Pi,Gi,..._i,...Ti,Hi]}var yn=(e={})=>(e.dark=e.dark??"class",e.attributifyPseudo=e.attributifyPseudo??!1,e.preflight=e.preflight??!0,e.variablePrefix=e.variablePrefix??"un-",{name:"@unocss/preset-mini",theme:Ri,rules:ti,variants:Or(e),options:e,prefix:e.prefix,postprocess:Zc(e.variablePrefix),preflights:vo(e),extractorDefault:e.arbitraryVariants===!1?void 0:yo(),autocomplete:{shorthands:ri}}),cs=yn;function Zc(e){if(e!=="un-")return t=>{t.entries.forEach(r=>{r[0]=r[0].replace(/^--un-/,`--${e}`),typeof r[1]=="string"&&(r[1]=r[1].replace(/var\(--un-/g,`var(--${e}`))})}}function us(e){if(e==null||e===!1)return[];let t=r=>r.startsWith(":is(")&&r.endsWith(")")?r:r.includes("::")?r.replace(/(.*?)((?:\s\*)?::.*)/,":is($1)$2"):`:is(${r})`;return[e===!0?r=>{r.entries.forEach(n=>{n[1]!=null&&!String(n[1]).endsWith("!important")&&(n[1]+=" !important")})}:r=>{r.selector.startsWith(e)||(r.selector=`${e} ${t(r.selector)}`)}]}function fs(e){return[...O(cs(e).postprocess),...us(e.important)]}var ps=[[/^(?:animate-)?keyframes-(.+)$/,([,e],{theme:t})=>{let r=t.animation?.keyframes?.[e];if(r)return[`@keyframes ${e}${r}`,{animation:e}]},{autocomplete:["animate-keyframes-$animation.keyframes","keyframes-$animation.keyframes"]}],[/^animate-(.+)$/,([,e],{theme:t})=>{let r=t.animation?.keyframes?.[e];if(r){let n=t.animation?.durations?.[e]??"1s",o=t.animation?.timingFns?.[e]??"linear",i=t.animation?.counts?.[e]??1,s=t.animation?.properties?.[e];return[`@keyframes ${e}${r}`,{animation:`${e} ${n} ${o} ${i}`,...s}]}return{animation:c.bracket.cssvar(e)}},{autocomplete:"animate-$animation.keyframes"}],[/^animate-name-(.+)/,([,e])=>({"animation-name":c.bracket.cssvar(e)??e})],[/^animate-duration-(.+)$/,([,e],{theme:t})=>({"animation-duration":t.duration?.[e||"DEFAULT"]??c.bracket.cssvar.time(e)}),{autocomplete:["animate-duration","animate-duration-$duration"]}],[/^animate-delay-(.+)$/,([,e],{theme:t})=>({"animation-delay":t.duration?.[e||"DEFAULT"]??c.bracket.cssvar.time(e)}),{autocomplete:["animate-delay","animate-delay-$duration"]}],[/^animate-ease(?:-(.+))?$/,([,e],{theme:t})=>({"animation-timing-function":t.easing?.[e||"DEFAULT"]??c.bracket.cssvar(e)}),{autocomplete:["animate-ease","animate-ease-$easing"]}],[/^animate-(fill-mode-|fill-|mode-)?(.+)$/,([,e,t])=>["none","forwards","backwards","both",e?S:[]].includes(t)?{"animation-fill-mode":t}:void 0,{autocomplete:["animate-(fill|mode|fill-mode)","animate-(fill|mode|fill-mode)-(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)","animate-(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)"]}],[/^animate-(direction-)?(.+)$/,([,e,t])=>["normal","reverse","alternate","alternate-reverse",e?S:[]].includes(t)?{"animation-direction":t}:void 0,{autocomplete:["animate-direction","animate-direction-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)","animate-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)"]}],[/^animate-(?:iteration-count-|iteration-|count-)(.+)$/,([,e])=>({"animation-iteration-count":c.bracket.cssvar(e)??e.replace(/-/g,",")}),{autocomplete:["animate-(iteration|count|iteration-count)","animate-(iteration|count|iteration-count)-<num>"]}],[/^animate-(play-state-|play-|state-)?(.+)$/,([,e,t])=>["paused","running",e?S:[]].includes(t)?{"animation-play-state":t}:void 0,{autocomplete:["animate-(play|state|play-state)","animate-(play|state|play-state)-(paused|running|inherit|initial|revert|revert-layer|unset)","animate-(paused|running|inherit|initial|revert|revert-layer|unset)"]}],["animate-none",{animation:"none"}],...v("animate","animation")];function ds(e){return e?M(e,0):"rgb(255 255 255 / 0)"}function Jc(e,t,r,n){return t?n!=null?M(t,n):M(t,`var(--un-${e}-opacity, ${ae(t)})`):M(r,n)}function vn(){return([,e,t],{theme:r})=>{let n=Te(t,r,"backgroundColor");if(!n)return;let{alpha:o,color:i,cssColor:s}=n;if(!i)return;let l=Jc(e,s,i,o);switch(e){case"from":return{"--un-gradient-from-position":"0%","--un-gradient-from":`${l} var(--un-gradient-from-position)`,"--un-gradient-to-position":"100%","--un-gradient-to":`${ds(s)} var(--un-gradient-to-position)`,"--un-gradient-stops":"var(--un-gradient-from), var(--un-gradient-to)"};case"via":return{"--un-gradient-via-position":"50%","--un-gradient-to":ds(s),"--un-gradient-stops":`var(--un-gradient-from), ${l} var(--un-gradient-via-position), var(--un-gradient-to)`};case"to":return{"--un-gradient-to-position":"100%","--un-gradient-to":`${l} var(--un-gradient-to-position)`}}}}function Qc(){return([,e,t])=>({[`--un-gradient-${e}-position`]:`${Number(c.bracket.cssvar.percent(t))*100}%`})}var ms=[[/^bg-gradient-(.+)$/,([,e])=>({"--un-gradient":c.bracket(e)}),{autocomplete:["bg-gradient","bg-gradient-(from|to|via)","bg-gradient-(from|to|via)-$colors","bg-gradient-(from|to|via)-(op|opacity)","bg-gradient-(from|to|via)-(op|opacity)-<percent>"]}],[/^(?:bg-gradient-)?stops-(\[.+\])$/,([,e])=>({"--un-gradient-stops":c.bracket(e)})],[/^(?:bg-gradient-)?(from)-(.+)$/,vn()],[/^(?:bg-gradient-)?(via)-(.+)$/,vn()],[/^(?:bg-gradient-)?(to)-(.+)$/,vn()],[/^(?:bg-gradient-)?(from|via|to)-op(?:acity)?-?(.+)$/,([,e,t])=>({[`--un-${e}-opacity`]:c.bracket.percent(t)})],[/^(from|via|to)-([\d.]+)%$/,Qc()],[/^bg-gradient-((?:repeating-)?(?:linear|radial|conic))$/,([,e])=>({"background-image":`${e}-gradient(var(--un-gradient, var(--un-gradient-stops, rgb(255 255 255 / 0))))`}),{autocomplete:["bg-gradient-repeating","bg-gradient-(linear|radial|conic)","bg-gradient-repeating-(linear|radial|conic)"]}],[/^bg-gradient-to-([rltb]{1,2})$/,([,e])=>{if(e in B)return{"--un-gradient-shape":`to ${B[e]} in oklch`,"--un-gradient":"var(--un-gradient-shape), var(--un-gradient-stops)","background-image":"linear-gradient(var(--un-gradient))"}},{autocomplete:`bg-gradient-to-(${Object.keys(B).filter(e=>e.length<=2&&Array.from(e).every(t=>"rltb".includes(t))).join("|")})`}],[/^(?:bg-gradient-)?shape-(.+)$/,([,e])=>{let t=e in B?`to ${B[e]}`:c.bracket(e);if(t!=null)return{"--un-gradient-shape":`${t} in oklch`,"--un-gradient":"var(--un-gradient-shape), var(--un-gradient-stops)"}},{autocomplete:["bg-gradient-shape",`bg-gradient-shape-(${Object.keys(B).join("|")})`,`shape-(${Object.keys(B).join("|")})`]}],["bg-none",{"background-image":"none"}],["box-decoration-slice",{"box-decoration-break":"slice"}],["box-decoration-clone",{"box-decoration-break":"clone"}],...v("box-decoration","box-decoration-break"),["bg-auto",{"background-size":"auto"}],["bg-cover",{"background-size":"cover"}],["bg-contain",{"background-size":"contain"}],["bg-fixed",{"background-attachment":"fixed"}],["bg-local",{"background-attachment":"local"}],["bg-scroll",{"background-attachment":"scroll"}],["bg-clip-border",{"-webkit-background-clip":"border-box","background-clip":"border-box"}],["bg-clip-content",{"-webkit-background-clip":"content-box","background-clip":"content-box"}],["bg-clip-padding",{"-webkit-background-clip":"padding-box","background-clip":"padding-box"}],["bg-clip-text",{"-webkit-background-clip":"text","background-clip":"text"}],...S.map(e=>[`bg-clip-${e}`,{"-webkit-background-clip":e,"background-clip":e}]),[/^bg-([-\w]{3,})$/,([,e])=>({"background-position":B[e]})],["bg-repeat",{"background-repeat":"repeat"}],["bg-no-repeat",{"background-repeat":"no-repeat"}],["bg-repeat-x",{"background-repeat":"repeat-x"}],["bg-repeat-y",{"background-repeat":"repeat-y"}],["bg-repeat-round",{"background-repeat":"round"}],["bg-repeat-space",{"background-repeat":"space"}],...v("bg-repeat","background-repeat"),["bg-origin-border",{"background-origin":"border-box"}],["bg-origin-padding",{"background-origin":"padding-box"}],["bg-origin-content",{"background-origin":"content-box"}],...v("bg-origin","background-origin")];var wn={disc:"disc",circle:"circle",square:"square",decimal:"decimal","zero-decimal":"decimal-leading-zero",greek:"lower-greek",roman:"lower-roman","upper-roman":"upper-roman",alpha:"lower-alpha","upper-alpha":"upper-alpha",latin:"lower-latin","upper-latin":"upper-latin"},hs=[[/^list-(.+?)(?:-(outside|inside))?$/,([,e,t])=>{let r=wn[e];if(r)return t?{"list-style-position":t,"list-style-type":r}:{"list-style-type":r}},{autocomplete:[`list-(${Object.keys(wn).join("|")})`,`list-(${Object.keys(wn).join("|")})-(outside|inside)`]}],["list-outside",{"list-style-position":"outside"}],["list-inside",{"list-style-position":"inside"}],["list-none",{"list-style-type":"none"}],[/^list-image-(.+)$/,([,e])=>{if(/^\[url\(.+\)\]$/.test(e))return{"list-style-image":c.bracket(e)}}],["list-image-none",{"list-style-image":"none"}],...v("list","list-style-type")],gs=[[/^accent-(.+)$/,V("accent-color","accent","accentColor"),{autocomplete:"accent-$colors"}],[/^accent-op(?:acity)?-?(.+)$/,([,e])=>({"--un-accent-opacity":c.bracket.percent(e)}),{autocomplete:["accent-(op|opacity)","accent-(op|opacity)-<percent>"]}]],bs=[[/^caret-(.+)$/,V("caret-color","caret","textColor"),{autocomplete:"caret-$colors"}],[/^caret-op(?:acity)?-?(.+)$/,([,e])=>({"--un-caret-opacity":c.bracket.percent(e)}),{autocomplete:["caret-(op|opacity)","caret-(op|opacity)-<percent>"]}]],xs=[["image-render-auto",{"image-rendering":"auto"}],["image-render-edge",{"image-rendering":"crisp-edges"}],["image-render-pixel",[["-ms-interpolation-mode","nearest-neighbor"],["image-rendering","-webkit-optimize-contrast"],["image-rendering","-moz-crisp-edges"],["image-rendering","-o-pixelated"],["image-rendering","pixelated"]]]],ys=[["overscroll-auto",{"overscroll-behavior":"auto"}],["overscroll-contain",{"overscroll-behavior":"contain"}],["overscroll-none",{"overscroll-behavior":"none"}],...v("overscroll","overscroll-behavior"),["overscroll-x-auto",{"overscroll-behavior-x":"auto"}],["overscroll-x-contain",{"overscroll-behavior-x":"contain"}],["overscroll-x-none",{"overscroll-behavior-x":"none"}],...v("overscroll-x","overscroll-behavior-x"),["overscroll-y-auto",{"overscroll-behavior-y":"auto"}],["overscroll-y-contain",{"overscroll-behavior-y":"contain"}],["overscroll-y-none",{"overscroll-behavior-y":"none"}],...v("overscroll-y","overscroll-behavior-y")],vs=[["scroll-auto",{"scroll-behavior":"auto"}],["scroll-smooth",{"scroll-behavior":"smooth"}],...v("scroll","scroll-behavior")];var ws=[[/^columns-(.+)$/,([,e])=>({columns:c.bracket.global.number.auto.numberWithUnit(e)}),{autocomplete:"columns-<num>"}],["break-before-auto",{"break-before":"auto"}],["break-before-avoid",{"break-before":"avoid"}],["break-before-all",{"break-before":"all"}],["break-before-avoid-page",{"break-before":"avoid-page"}],["break-before-page",{"break-before":"page"}],["break-before-left",{"break-before":"left"}],["break-before-right",{"break-before":"right"}],["break-before-column",{"break-before":"column"}],...v("break-before"),["break-inside-auto",{"break-inside":"auto"}],["break-inside-avoid",{"break-inside":"avoid"}],["break-inside-avoid-page",{"break-inside":"avoid-page"}],["break-inside-avoid-column",{"break-inside":"avoid-column"}],...v("break-inside"),["break-after-auto",{"break-after":"auto"}],["break-after-avoid",{"break-after":"avoid"}],["break-after-all",{"break-after":"all"}],["break-after-avoid-page",{"break-after":"avoid-page"}],["break-after-page",{"break-after":"page"}],["break-after-left",{"break-after":"left"}],["break-after-right",{"break-after":"right"}],["break-after-column",{"break-after":"column"}],...v("break-after")];var eu=/@media \(min-width: (.+)\)/,ks=[[/^__container$/,(e,t)=>{let{theme:r,variantHandlers:n}=t,o=r.container?.padding,i;P(o)?i=o:i=o?.DEFAULT;let s=r.container?.maxWidth,l;for(let u of n){let f=u.handle?.({},p=>p)?.parent;if(P(f)){let p=f.match(eu)?.[1];if(p){let d=(ye(t)??[]).find(h=>h.size===p)?.point;s?d&&(l=s?.[d]):l=p,d&&!P(o)&&(i=o?.[d]??i)}}}let a={"max-width":l};return n.length||(a.width="100%"),r.container?.center&&(a["margin-left"]="auto",a["margin-right"]="auto"),o&&(a["padding-left"]=i,a["padding-right"]=i),a},{internal:!0}]],$s=[[/^(?:(\w+)[:-])?container$/,([,e],t)=>{let r=(ye(t)??[]).map(o=>o.point);if(e){if(!r.includes(e))return;r=r.slice(r.indexOf(e))}let n=r.map(o=>`${o}:__container`);return e||n.unshift("__container"),n}]];var Ss=[[/^divide-?([xy])$/,Vr,{autocomplete:["divide-(x|y|block|inline)","divide-(x|y|block|inline)-reverse","divide-(x|y|block|inline)-$lineWidth"]}],[/^divide-?([xy])-?(.+)$/,Vr],[/^divide-?([xy])-reverse$/,([,e])=>({[`--un-divide-${e}-reverse`]:1})],[/^divide-(block|inline)$/,Vr],[/^divide-(block|inline)-(.+)$/,Vr],[/^divide-(block|inline)-reverse$/,([,e])=>({[`--un-divide-${e}-reverse`]:1})],[/^divide-(.+)$/,V("border-color","divide","borderColor"),{autocomplete:"divide-$colors"}],[/^divide-op(?:acity)?-?(.+)$/,([,e])=>({"--un-divide-opacity":c.bracket.percent(e)}),{autocomplete:["divide-(op|opacity)","divide-(op|opacity)-<percent>"]}],...ve.map(e=>[`divide-${e}`,{"border-style":e}])];function Vr([,e,t],{theme:r}){let n=r.lineWidth?.[t||"DEFAULT"]??c.bracket.cssvar.px(t||"1");if(n!=null){n==="0"&&(n="0px");let o=N[e].map(i=>{let s=`border${i}-width`,l=i.endsWith("right")||i.endsWith("bottom")?`calc(${n} * var(--un-divide-${e}-reverse))`:`calc(${n} * calc(1 - var(--un-divide-${e}-reverse)))`;return[s,l]});if(o)return[[`--un-divide-${e}-reverse`,0],...o]}}var $n={"--un-blur":T,"--un-brightness":T,"--un-contrast":T,"--un-drop-shadow":T,"--un-grayscale":T,"--un-hue-rotate":T,"--un-invert":T,"--un-saturate":T,"--un-sepia":T},Rs=Object.keys($n),Cs={preflightKeys:Rs},Pr="var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)",Sn={"--un-backdrop-blur":T,"--un-backdrop-brightness":T,"--un-backdrop-contrast":T,"--un-backdrop-grayscale":T,"--un-backdrop-hue-rotate":T,"--un-backdrop-invert":T,"--un-backdrop-opacity":T,"--un-backdrop-saturate":T,"--un-backdrop-sepia":T},Es=Object.keys(Sn),tu={preflightKeys:Es},Mr="var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)",le={preflightKeys:[...Rs,...Es]};function kn(e){let t=c.bracket.cssvar(e||"");if(t!=null||(t=e?c.percent(e):"1",t!=null&&Number.parseFloat(t)<=1))return t}function ce(e,t){return([,r,n],{theme:o})=>{let i=t(n,o)??(n==="none"?"0":"");if(i!=="")return r?{[`--un-${r}${e}`]:`${e}(${i})`,"-webkit-backdrop-filter":Mr,"backdrop-filter":Mr}:{[`--un-${e}`]:`${e}(${i})`,filter:Pr}}}function ru([,e],{theme:t}){let r=t.dropShadow?.[e||"DEFAULT"];if(r!=null)return{"--un-drop-shadow":`drop-shadow(${je(r,"--un-drop-shadow-color").join(") drop-shadow(")})`,filter:Pr};if(r=c.bracket.cssvar(e),r!=null)return{"--un-drop-shadow":`drop-shadow(${r})`,filter:Pr}}var Ts=[[/^(?:(backdrop-)|filter-)?blur(?:-(.+))?$/,ce("blur",(e,t)=>t.blur?.[e||"DEFAULT"]||c.bracket.cssvar.px(e)),{custom:le,autocomplete:["(backdrop|filter)-blur-$blur","blur-$blur","filter-blur"]}],[/^(?:(backdrop-)|filter-)?brightness-(.+)$/,ce("brightness",e=>c.bracket.cssvar.percent(e)),{custom:le,autocomplete:["(backdrop|filter)-brightness-<percent>","brightness-<percent>"]}],[/^(?:(backdrop-)|filter-)?contrast-(.+)$/,ce("contrast",e=>c.bracket.cssvar.percent(e)),{custom:le,autocomplete:["(backdrop|filter)-contrast-<percent>","contrast-<percent>"]}],[/^(?:filter-)?drop-shadow(?:-(.+))?$/,ru,{custom:Cs,autocomplete:["filter-drop","filter-drop-shadow","filter-drop-shadow-color","drop-shadow","drop-shadow-color","filter-drop-shadow-$dropShadow","drop-shadow-$dropShadow","filter-drop-shadow-color-$colors","drop-shadow-color-$colors","filter-drop-shadow-color-(op|opacity)","drop-shadow-color-(op|opacity)","filter-drop-shadow-color-(op|opacity)-<percent>","drop-shadow-color-(op|opacity)-<percent>"]}],[/^(?:filter-)?drop-shadow-color-(.+)$/,V("--un-drop-shadow-color","drop-shadow","shadowColor")],[/^(?:filter-)?drop-shadow-color-op(?:acity)?-?(.+)$/,([,e])=>({"--un-drop-shadow-opacity":c.bracket.percent(e)})],[/^(?:(backdrop-)|filter-)?grayscale(?:-(.+))?$/,ce("grayscale",kn),{custom:le,autocomplete:["(backdrop|filter)-grayscale","(backdrop|filter)-grayscale-<percent>","grayscale-<percent>"]}],[/^(?:(backdrop-)|filter-)?hue-rotate-(.+)$/,ce("hue-rotate",e=>c.bracket.cssvar.degree(e)),{custom:le}],[/^(?:(backdrop-)|filter-)?invert(?:-(.+))?$/,ce("invert",kn),{custom:le,autocomplete:["(backdrop|filter)-invert","(backdrop|filter)-invert-<percent>","invert-<percent>"]}],[/^(backdrop-)op(?:acity)?-(.+)$/,ce("opacity",e=>c.bracket.cssvar.percent(e)),{custom:le,autocomplete:["backdrop-(op|opacity)","backdrop-(op|opacity)-<percent>"]}],[/^(?:(backdrop-)|filter-)?saturate-(.+)$/,ce("saturate",e=>c.bracket.cssvar.percent(e)),{custom:le,autocomplete:["(backdrop|filter)-saturate","(backdrop|filter)-saturate-<percent>","saturate-<percent>"]}],[/^(?:(backdrop-)|filter-)?sepia(?:-(.+))?$/,ce("sepia",kn),{custom:le,autocomplete:["(backdrop|filter)-sepia","(backdrop|filter)-sepia-<percent>","sepia-<percent>"]}],["filter",{filter:Pr},{custom:Cs}],["backdrop-filter",{"-webkit-backdrop-filter":Mr,"backdrop-filter":Mr},{custom:tu}],["filter-none",{filter:"none"}],["backdrop-filter-none",{"-webkit-backdrop-filter":"none","backdrop-filter":"none"}],...S.map(e=>[`filter-${e}`,{filter:e}]),...S.map(e=>[`backdrop-filter-${e}`,{"-webkit-backdrop-filter":e,"backdrop-filter":e}])];var js=[[/^line-clamp-(\d+)$/,([,e])=>({overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":e,"line-clamp":e}),{autocomplete:["line-clamp","line-clamp-<num>"]}],...["none",...S].map(e=>[`line-clamp-${e}`,{overflow:"visible",display:"block","-webkit-box-orient":"horizontal","-webkit-line-clamp":e,"line-clamp":e}])];var zs=[[/^\$ placeholder-(.+)$/,V("color","placeholder","accentColor"),{autocomplete:"placeholder-$colors"}],[/^\$ placeholder-op(?:acity)?-?(.+)$/,([,e])=>({"--un-placeholder-opacity":c.bracket.percent(e)}),{autocomplete:["placeholder-(op|opacity)","placeholder-(op|opacity)-<percent>"]}]];var Cn={"--un-scroll-snap-strictness":"proximity"},As={preflightKeys:Object.keys(Cn)},Os=[[/^snap-(x|y)$/,([,e])=>({"scroll-snap-type":`${e} var(--un-scroll-snap-strictness)`}),{custom:As,autocomplete:"snap-(x|y|both)"}],[/^snap-both$/,()=>({"scroll-snap-type":"both var(--un-scroll-snap-strictness)"}),{custom:As}],["snap-mandatory",{"--un-scroll-snap-strictness":"mandatory"}],["snap-proximity",{"--un-scroll-snap-strictness":"proximity"}],["snap-none",{"scroll-snap-type":"none"}],["snap-start",{"scroll-snap-align":"start"}],["snap-end",{"scroll-snap-align":"end"}],["snap-center",{"scroll-snap-align":"center"}],["snap-align-none",{"scroll-snap-align":"none"}],["snap-normal",{"scroll-snap-stop":"normal"}],["snap-always",{"scroll-snap-stop":"always"}],[/^scroll-ma?()-?(.+)$/,_("scroll-margin"),{autocomplete:["scroll-(m|p|ma|pa|block|inline)","scroll-(m|p|ma|pa|block|inline)-$spacing","scroll-(m|p|ma|pa|block|inline)-(x|y|r|l|t|b|bs|be|is|ie)","scroll-(m|p|ma|pa|block|inline)-(x|y|r|l|t|b|bs|be|is|ie)-$spacing"]}],[/^scroll-m-?([xy])-?(.+)$/,_("scroll-margin")],[/^scroll-m-?([rltb])-?(.+)$/,_("scroll-margin")],[/^scroll-m-(block|inline)-(.+)$/,_("scroll-margin")],[/^scroll-m-?([bi][se])-?(.+)$/,_("scroll-margin")],[/^scroll-pa?()-?(.+)$/,_("scroll-padding")],[/^scroll-p-?([xy])-?(.+)$/,_("scroll-padding")],[/^scroll-p-?([rltb])-?(.+)$/,_("scroll-padding")],[/^scroll-p-(block|inline)-(.+)$/,_("scroll-padding")],[/^scroll-p-?([bi][se])-?(.+)$/,_("scroll-padding")]];var Ps=[[/^space-([xy])-(.+)$/,Vs,{autocomplete:["space-(x|y|block|inline)","space-(x|y|block|inline)-reverse","space-(x|y|block|inline)-$spacing"]}],[/^space-([xy])-reverse$/,([,e])=>({[`--un-space-${e}-reverse`]:1})],[/^space-(block|inline)-(.+)$/,Vs],[/^space-(block|inline)-reverse$/,([,e])=>({[`--un-space-${e}-reverse`]:1})]];function Vs([,e,t],{theme:r}){let n=r.spacing?.[t||"DEFAULT"]??c.bracket.cssvar.auto.fraction.rem(t||"1");if(n!=null){n==="0"&&(n="0px");let o=N[e].map(i=>{let s=`margin${i}`,l=i.endsWith("right")||i.endsWith("bottom")?`calc(${n} * var(--un-space-${e}-reverse))`:`calc(${n} * calc(1 - var(--un-space-${e}-reverse)))`;return[s,l]});if(o)return[[`--un-space-${e}-reverse`,0],...o]}}var Ms=[["uppercase",{"text-transform":"uppercase"}],["lowercase",{"text-transform":"lowercase"}],["capitalize",{"text-transform":"capitalize"}],["normal-case",{"text-transform":"none"}]],Fs=[...["manual","auto","none",...S].map(e=>[`hyphens-${e}`,{"-webkit-hyphens":e,"-ms-hyphens":e,hyphens:e}])],_s=[["write-vertical-right",{"writing-mode":"vertical-rl"}],["write-vertical-left",{"writing-mode":"vertical-lr"}],["write-normal",{"writing-mode":"horizontal-tb"}],...v("write","writing-mode")],Ls=[["write-orient-mixed",{"text-orientation":"mixed"}],["write-orient-sideways",{"text-orientation":"sideways"}],["write-orient-upright",{"text-orientation":"upright"}],...v("write-orient","text-orientation")],Us=[["sr-only",{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0,0,0,0)","white-space":"nowrap","border-width":0}],["not-sr-only",{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto","white-space":"normal"}]],Ws=[["isolate",{isolation:"isolate"}],["isolate-auto",{isolation:"auto"}],["isolation-auto",{isolation:"auto"}]],Bs=[["object-cover",{"object-fit":"cover"}],["object-contain",{"object-fit":"contain"}],["object-fill",{"object-fit":"fill"}],["object-scale-down",{"object-fit":"scale-down"}],["object-none",{"object-fit":"none"}],[/^object-(.+)$/,([,e])=>{if(B[e])return{"object-position":B[e]};if(c.bracketOfPosition(e)!=null)return{"object-position":c.bracketOfPosition(e).split(" ").map(t=>c.position.fraction.auto.px.cssvar(t)??t).join(" ")}},{autocomplete:`object-(${Object.keys(B).join("|")})`}]],Ns=[["bg-blend-multiply",{"background-blend-mode":"multiply"}],["bg-blend-screen",{"background-blend-mode":"screen"}],["bg-blend-overlay",{"background-blend-mode":"overlay"}],["bg-blend-darken",{"background-blend-mode":"darken"}],["bg-blend-lighten",{"background-blend-mode":"lighten"}],["bg-blend-color-dodge",{"background-blend-mode":"color-dodge"}],["bg-blend-color-burn",{"background-blend-mode":"color-burn"}],["bg-blend-hard-light",{"background-blend-mode":"hard-light"}],["bg-blend-soft-light",{"background-blend-mode":"soft-light"}],["bg-blend-difference",{"background-blend-mode":"difference"}],["bg-blend-exclusion",{"background-blend-mode":"exclusion"}],["bg-blend-hue",{"background-blend-mode":"hue"}],["bg-blend-saturation",{"background-blend-mode":"saturation"}],["bg-blend-color",{"background-blend-mode":"color"}],["bg-blend-luminosity",{"background-blend-mode":"luminosity"}],["bg-blend-normal",{"background-blend-mode":"normal"}],...v("bg-blend","background-blend")],Ds=[["mix-blend-multiply",{"mix-blend-mode":"multiply"}],["mix-blend-screen",{"mix-blend-mode":"screen"}],["mix-blend-overlay",{"mix-blend-mode":"overlay"}],["mix-blend-darken",{"mix-blend-mode":"darken"}],["mix-blend-lighten",{"mix-blend-mode":"lighten"}],["mix-blend-color-dodge",{"mix-blend-mode":"color-dodge"}],["mix-blend-color-burn",{"mix-blend-mode":"color-burn"}],["mix-blend-hard-light",{"mix-blend-mode":"hard-light"}],["mix-blend-soft-light",{"mix-blend-mode":"soft-light"}],["mix-blend-difference",{"mix-blend-mode":"difference"}],["mix-blend-exclusion",{"mix-blend-mode":"exclusion"}],["mix-blend-hue",{"mix-blend-mode":"hue"}],["mix-blend-saturation",{"mix-blend-mode":"saturation"}],["mix-blend-color",{"mix-blend-mode":"color"}],["mix-blend-luminosity",{"mix-blend-mode":"luminosity"}],["mix-blend-plus-lighter",{"mix-blend-mode":"plus-lighter"}],["mix-blend-normal",{"mix-blend-mode":"normal"}],...v("mix-blend")],Is=[["min-h-dvh",{"min-height":"100dvh"}],["min-h-svh",{"min-height":"100svh"}],["min-h-lvh",{"min-height":"100lvh"}],["h-dvh",{height:"100dvh"}],["h-svh",{height:"100svh"}],["h-lvh",{height:"100lvh"}],["max-h-dvh",{"max-height":"100dvh"}],["max-h-svh",{"max-height":"100svh"}],["max-h-lvh",{"max-height":"100lvh"}]];var Rn={"--un-border-spacing-x":0,"--un-border-spacing-y":0},Ks={preflightKeys:Object.keys(Rn)},Gs="var(--un-border-spacing-x) var(--un-border-spacing-y)",Hs=[["inline-table",{display:"inline-table"}],["table",{display:"table"}],["table-caption",{display:"table-caption"}],["table-cell",{display:"table-cell"}],["table-column",{display:"table-column"}],["table-column-group",{display:"table-column-group"}],["table-footer-group",{display:"table-footer-group"}],["table-header-group",{display:"table-header-group"}],["table-row",{display:"table-row"}],["table-row-group",{display:"table-row-group"}],["border-collapse",{"border-collapse":"collapse"}],["border-separate",{"border-collapse":"separate"}],[/^border-spacing-(.+)$/,([,e],{theme:t})=>{let r=t.spacing?.[e]??c.bracket.cssvar.global.auto.fraction.rem(e);if(r!=null)return{"--un-border-spacing-x":r,"--un-border-spacing-y":r,"border-spacing":Gs}},{custom:Ks,autocomplete:["border-spacing","border-spacing-$spacing"]}],[/^border-spacing-([xy])-(.+)$/,([,e,t],{theme:r})=>{let n=r.spacing?.[t]??c.bracket.cssvar.global.auto.fraction.rem(t);if(n!=null)return{[`--un-border-spacing-${e}`]:n,"border-spacing":Gs}},{custom:Ks,autocomplete:["border-spacing-(x|y)","border-spacing-(x|y)-$spacing"]}],["caption-top",{"caption-side":"top"}],["caption-bottom",{"caption-side":"bottom"}],["table-auto",{"table-layout":"auto"}],["table-fixed",{"table-layout":"fixed"}],["table-empty-cells-visible",{"empty-cells":"show"}],["table-empty-cells-hidden",{"empty-cells":"hide"}]];var jn={"--un-pan-x":T,"--un-pan-y":T,"--un-pinch-zoom":T},En={preflightKeys:Object.keys(jn)},Tn="var(--un-pan-x) var(--un-pan-y) var(--un-pinch-zoom)",qs=[[/^touch-pan-(x|left|right)$/,([,e])=>({"--un-pan-x":`pan-${e}`,"touch-action":Tn}),{custom:En,autocomplete:["touch-pan","touch-pan-(x|left|right|y|up|down)"]}],[/^touch-pan-(y|up|down)$/,([,e])=>({"--un-pan-y":`pan-${e}`,"touch-action":Tn}),{custom:En}],["touch-pinch-zoom",{"--un-pinch-zoom":"pinch-zoom","touch-action":Tn},{custom:En}],["touch-auto",{"touch-action":"auto"}],["touch-manipulation",{"touch-action":"manipulation"}],["touch-none",{"touch-action":"none"}],...v("touch","touch-action")];var zn={"--un-ordinal":T,"--un-slashed-zero":T,"--un-numeric-figure":T,"--un-numeric-spacing":T,"--un-numeric-fraction":T},he={preflightKeys:Object.keys(zn)};function ge(e){return{...e,"font-variant-numeric":"var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)"}}var Ys=[[/^ordinal$/,()=>ge({"--un-ordinal":"ordinal"}),{custom:he,autocomplete:"ordinal"}],[/^slashed-zero$/,()=>ge({"--un-slashed-zero":"slashed-zero"}),{custom:he,autocomplete:"slashed-zero"}],[/^lining-nums$/,()=>ge({"--un-numeric-figure":"lining-nums"}),{custom:he,autocomplete:"lining-nums"}],[/^oldstyle-nums$/,()=>ge({"--un-numeric-figure":"oldstyle-nums"}),{custom:he,autocomplete:"oldstyle-nums"}],[/^proportional-nums$/,()=>ge({"--un-numeric-spacing":"proportional-nums"}),{custom:he,autocomplete:"proportional-nums"}],[/^tabular-nums$/,()=>ge({"--un-numeric-spacing":"tabular-nums"}),{custom:he,autocomplete:"tabular-nums"}],[/^diagonal-fractions$/,()=>ge({"--un-numeric-fraction":"diagonal-fractions"}),{custom:he,autocomplete:"diagonal-fractions"}],[/^stacked-fractions$/,()=>ge({"--un-numeric-fraction":"stacked-fractions"}),{custom:he,autocomplete:"stacked-fractions"}],["normal-nums",{"font-variant-numeric":"normal"}]];var nu={"bg-blend":"background-blend-mode","bg-clip":"-webkit-background-clip","bg-gradient":"linear-gradient","bg-image":"background-image","bg-origin":"background-origin","bg-position":"background-position","bg-repeat":"background-repeat","bg-size":"background-size","mix-blend":"mix-blend-mode",object:"object-fit","object-position":"object-position",write:"writing-mode","write-orient":"text-orientation"},Xs=[[/^(.+?)-(\$.+)$/,([,e,t])=>{let r=nu[e];if(r)return{[r]:c.cssvar(t)}}]];var Zs=[[/^view-transition-([\w-]+)$/,([,e])=>({"view-transition-name":e})]];var Js=[Tr,Xs,jr,ks,Qt,Us,er,Zt,Nt,Kt,js,Ws,Ht,Dt,Ut,Gt,xr,qt,Xt,gr,hr,_t,Hs,wr,ps,Jt,qs,rr,tr,Os,hs,jt,ws,Xe,Ye,qe,Lt,It,Ps,Ss,Bt,ys,vs,lr,nr,sr,At,Vt,ms,Pt,yr,Bs,br,Rt,Cr,ar,Ct,$r,cr,Ms,ur,Ys,Ft,fr,Sr,Rr,Er,Fs,_s,Ls,bs,gs,Ot,Ns,Ds,dr,Tt,pr,xs,Ts,kr,zt,or,ir,zs,Mt,Zs,Is,Yt].flat(1);var Qs=[...$s];var An={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},light:{50:"#fdfdfd",100:"#fcfcfc",200:"#fafafa",300:"#f8f9fa",400:"#f6f6f6",500:"#f2f2f2",600:"#f1f3f5",700:"#e9ecef",800:"#dee2e6",900:"#dde1e3",950:"#d8dcdf"},dark:{50:"#4a4a4a",100:"#3c3c3c",200:"#323232",300:"#2d2d2d",400:"#222222",500:"#1f1f1f",600:"#1c1c1e",700:"#1b1b1b",800:"#181818",900:"#0f0f0f",950:"#080808"},get lightblue(){return this.sky},get lightBlue(){return this.sky},get warmgray(){return this.stone},get warmGray(){return this.stone},get truegray(){return this.neutral},get trueGray(){return this.neutral},get coolgray(){return this.gray},get coolGray(){return this.gray},get bluegray(){return this.slate},get blueGray(){return this.slate}};Object.values(An).forEach(e=>{typeof e!="string"&&e!==void 0&&(e.DEFAULT=e.DEFAULT||e[400],Object.keys(e).forEach(t=>{let r=+t/100;r===Math.round(r)&&(e[r]=e[t])}))});var ou={l:["-left"],r:["-right"],t:["-top"],b:["-bottom"],s:["-inline-start"],e:["-inline-end"],x:["-left","-right"],y:["-top","-bottom"],"":[""],bs:["-block-start"],be:["-block-end"],is:["-inline-start"],ie:["-inline-end"],block:["-block-start","-block-end"],inline:["-inline-start","-inline-end"]},ah={...ou,s:["-inset-inline-start"],start:["-inset-inline-start"],e:["-inset-inline-end"],end:["-inset-inline-end"],bs:["-inset-block-start"],be:["-inset-block-end"],is:["-inset-inline-start"],ie:["-inset-inline-end"],block:["-inset-block-start","-inset-block-end"],inline:["-inset-inline-start","-inset-inline-end"]};var iu={x:["-x"],y:["-y"],z:["-z"],"":["-x","-y"]},su=["x","y","z"],ea=["top","top center","top left","top right","bottom","bottom center","bottom left","bottom right","left","left center","left top","left bottom","right","right center","right top","right bottom","center","center top","center bottom","center left","center right","center center"],ot=Object.assign({},...ea.map(e=>({[e.replace(/ /,"-")]:e})),...ea.map(e=>({[e.replace(/\b(\w)\w+/g,"$1").replace(/ /,"")]:e}))),On=["inherit","initial","revert","revert-layer","unset"],au=/^(calc|clamp|min|max)\s*\((.+)\)(.*)/;var Vn=/^(-?\d*(?:\.\d+)?)(px|pt|pc|%|r?(?:em|ex|lh|cap|ch|ic)|(?:[sld]?v|cq)(?:[whib]|min|max)|in|cm|mm|rpx)?$/i,na=/^(-?\d*(?:\.\d+)?)$/,oa=/^(px|[sld]?v[wh])$/i,ia={px:1,vw:100,vh:100,svw:100,svh:100,dvw:100,dvh:100,lvh:100,lvw:100},sa=/^\[(color|image|length|size|position|quoted|string):/i,lu=/,(?![^()]*\))/g,cu=["color","border-color","background-color","outline-color","text-decoration-color","flex-grow","flex","flex-shrink","caret-color","font","gap","opacity","visibility","z-index","font-weight","zoom","text-shadow","transform","box-shadow","border","background-position","left","right","top","bottom","object-position","max-height","min-height","max-width","min-width","height","width","border-width","margin","padding","outline-width","outline-offset","font-size","line-height","text-indent","vertical-align","border-spacing","letter-spacing","word-spacing","stroke","filter","backdrop-filter","fill","mask","mask-size","mask-border","clip-path","clip","border-radius"];function Q(e){return+e.toFixed(10)}function uu(e){let t=e.match(Vn);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(n&&!Number.isNaN(o))return`${Q(o)}${n}`}function fu(e){if(e==="auto"||e==="a")return"auto"}function pu(e){if(!e)return;if(oa.test(e))return`${ia[e]}${e}`;let t=e.match(Vn);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(!Number.isNaN(o))return o===0?"0":n?`${Q(o)}${n}`:`${Q(o/4)}rem`}function du(e){if(oa.test(e))return`${ia[e]}${e}`;let t=e.match(Vn);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(!Number.isNaN(o))return n?`${Q(o)}${n}`:`${Q(o)}px`}function mu(e){if(!na.test(e))return;let t=Number.parseFloat(e);if(!Number.isNaN(t))return Q(t)}function hu(e){if(e.endsWith("%")&&(e=e.slice(0,-1)),!na.test(e))return;let t=Number.parseFloat(e);if(!Number.isNaN(t))return`${Q(t/100)}`}function gu(e){if(!e)return;if(e==="full")return"100%";let[t,r]=e.split("/"),n=Number.parseFloat(t)/Number.parseFloat(r);if(!Number.isNaN(n))return n===0?"0":`${Q(n*100)}%`}function Fr(e,t){if(e&&e.startsWith("[")&&e.endsWith("]")){let r,n,o=e.match(sa);if(o?(t||(n=o[1]),r=e.slice(o[0].length,-1)):r=e.slice(1,-1),!r||r==='=""')return;r.startsWith("--")&&(r=`var(${r})`);let i=0;for(let s of r)if(s==="[")i+=1;else if(s==="]"&&(i-=1,i<0))return;if(i)return;switch(n){case"string":return r.replace(/(^|[^\\])_/g,"$1 ").replace(/\\_/g,"_");case"quoted":return r.replace(/(^|[^\\])_/g,"$1 ").replace(/\\_/g,"_").replace(/(["\\])/g,"\\$1").replace(/^(.+)$/,'"$1"')}return r.replace(/(url\(.*?\))/g,s=>s.replace(/_/g,"\\_")).replace(/(^|[^\\])_/g,"$1 ").replace(/\\_/g,"_").replace(/(?:calc|clamp|max|min)\((.*)/g,s=>{let l=[];return s.replace(/var\((--.+?)[,)]/g,(a,u)=>(l.push(u),a.replace(u,"--un-calc"))).replace(/(-?\d*\.?\d(?!-\d.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g,"$1 $2 ").replace(/--un-calc/g,()=>l.shift())})}}function bu(e){return Fr(e)}function xu(e){return Fr(e,"color")}function yu(e){return Fr(e,"length")}function vu(e){return Fr(e,"position")}function wu(e){if(/^\$[^\s'"`;{}]/.test(e)){let[t,r]=e.slice(1).split(",");return`var(--${se(t)}${r?`, ${r}`:""})`}}function ku(e){let t=e.match(/^(-?[0-9.]+)(s|ms)?$/i);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(!Number.isNaN(o))return o===0&&!n?"0s":n?`${Q(o)}${n}`:`${Q(o)}ms`}function $u(e){let t=e.match(/^(-?[0-9.]+)(deg|rad|grad|turn)?$/i);if(!t)return;let[,r,n]=t,o=Number.parseFloat(r);if(!Number.isNaN(o))return o===0?"0":n?`${Q(o)}${n}`:`${Q(o)}deg`}function Su(e){if(On.includes(e))return e}function Cu(e){if(e.split(",").every(t=>cu.includes(t)))return e}function Ru(e){if(["top","left","right","bottom","center"].includes(e))return e}var Eu={__proto__:null,auto:fu,bracket:bu,bracketOfColor:xu,bracketOfLength:yu,bracketOfPosition:vu,cssvar:wu,degree:$u,fraction:gu,global:Su,number:mu,numberWithUnit:uu,percent:hu,position:Ru,properties:Cu,px:du,rem:pu,time:ku},Tu=xt(Eu),W=Tu;function ta(e,t,r="colors"){let n=e[r],o=-1;for(let i of t){if(o+=1,n&&typeof n!="string"){let s=t.slice(o).join("-").replace(/(-[a-z])/g,l=>l.slice(1).toUpperCase());if(n[s])return n[s];if(n[i]){n=n[i];continue}}return}return n}function ra(e,t,r){return ta(e,t,r)||ta(e,t,"colors")}function ju(e,t){let[r,n]=de(e,"[","]",["/",":"])??[];if(r!=null){let o=(r.match(sa)??[])[1];if(o==null||o===t)return[r,n]}}function zu(e,t,r){let n=ju(e,"color");if(!n)return;let[o,i]=n,s=o.replace(/([a-z])(\d)/g,"$1-$2").split(/-/g),[l]=s;if(!l)return;let a,u=W.bracketOfColor(o),f=u||o;if(W.numberWithUnit(f))return;if(/^#[\da-f]+$/i.test(f)?a=f:/^hex-[\da-fA-F]+$/.test(f)?a=`#${f.slice(4)}`:o.startsWith("$")&&(a=W.cssvar(o)),a=a||u,!a){let m=ra(t,[o],r);typeof m=="string"&&(a=m)}let p="DEFAULT";if(!a){let m=s,d,[h]=s.slice(-1);/^\d+$/.test(h)&&(p=d=h,m=s.slice(0,-1));let g=ra(t,m,r);typeof g=="object"?a=g[d??p]:typeof g=="string"&&!d&&(a=g)}return{opacity:i,name:l,no:p,color:a,cssColor:Y(a),alpha:W.bracket.cssvar.percent(i??"")}}function Pn(e,t,r,n){return([,o],{theme:i,generator:s})=>{let l=zu(o,i,r);if(!l)return;let{alpha:a,color:u,cssColor:f}=l,m=s.config.envMode==="dev"&&u?` /* ${u} */`:"",d={};if(f)if(a!=null)d[e]=M(f,a)+m;else{let h=`--un-${t}-opacity`,g=M(f,`var(${h})`);g.includes(h)&&(d[h]=ae(f)),d[e]=g+m}else if(u)if(a!=null)d[e]=M(u,a)+m;else{let h=`--un-${t}-opacity`,g=M(u,`var(${h})`);g.includes(h)&&(d[h]=1),d[e]=g+m}if(n?.(d)!==!1)return d}}function be(e,t){return On.map(r=>[`${e}-${r}`,{[t??e]:r}])}function aa(e){return e!=null&&au.test(e)}function _r(e,t,r){let n=t.split(lu);return e||!e&&n.length===1?iu[e].map(o=>[`--un-${r}${o}`,t]):n.map((o,i)=>[`--un-${r}-${su[i]}`,o])}var Au=["auto","default","none","context-menu","help","pointer","progress","wait","cell","crosshair","text","vertical-text","alias","copy","move","no-drop","not-allowed","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out"];var pa=" ";var ph=[["visible",{visibility:"visible"}],["invisible",{visibility:"hidden"}],["backface-visible",{"backface-visibility":"visible"}],["backface-hidden",{"backface-visibility":"hidden"}],...be("backface","backface-visibility")],dh=[[/^cursor-(.+)$/,([,e])=>({cursor:W.bracket.cssvar.global(e)})],...Au.map(e=>[`cursor-${e}`,{cursor:e}])];var mh=[["pointer-events-auto",{"pointer-events":"auto"}],["pointer-events-none",{"pointer-events":"none"}],...be("pointer-events")],hh=[["resize-x",{resize:"horizontal"}],["resize-y",{resize:"vertical"}],["resize",{resize:"both"}],["resize-none",{resize:"none"}],...be("resize")],gh=[["select-auto",{"-webkit-user-select":"auto","user-select":"auto"}],["select-all",{"-webkit-user-select":"all","user-select":"all"}],["select-text",{"-webkit-user-select":"text","user-select":"text"}],["select-none",{"-webkit-user-select":"none","user-select":"none"}],...be("select","user-select")];var bh=[[/^intrinsic-size-(.+)$/,([,e])=>({"contain-intrinsic-size":W.bracket.cssvar.global.fraction.rem(e)}),{autocomplete:"intrinsic-size-<num>"}],["content-visibility-visible",{"content-visibility":"visible"}],["content-visibility-hidden",{"content-visibility":"hidden"}],["content-visibility-auto",{"content-visibility":"auto"}],...be("content-visibility")];var xh=[["case-upper",{"text-transform":"uppercase"}],["case-lower",{"text-transform":"lowercase"}],["case-capital",{"text-transform":"capitalize"}],["case-normal",{"text-transform":"none"}],...be("case","text-transform")];var Mn={"--un-ring-inset":pa,"--un-ring-offset-width":"0px","--un-ring-offset-color":"#fff","--un-ring-width":"0px","--un-ring-color":"rgb(147 197 253 / 0.5)","--un-shadow":"0 0 rgb(0 0 0 / 0)"},Ou=Object.keys(Mn),yh=[[/^ring(?:-(.+))?$/,([,e],{theme:t})=>{let r=t.ringWidth?.[e||"DEFAULT"]??W.px(e||"1");if(r)return{"--un-ring-width":r,"--un-ring-offset-shadow":"var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color)","--un-ring-shadow":"var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color)","box-shadow":"var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)"}},{custom:{preflightKeys:Ou},autocomplete:"ring-$ringWidth"}],[/^ring-(?:width-|size-)(.+)$/,da,{autocomplete:"ring-(width|size)-$lineWidth"}],["ring-offset",{"--un-ring-offset-width":"1px"}],[/^ring-offset-(?:width-|size-)?(.+)$/,([,e],{theme:t})=>({"--un-ring-offset-width":t.lineWidth?.[e]??W.bracket.cssvar.px(e)}),{autocomplete:"ring-offset-(width|size)-$lineWidth"}],[/^ring-(.+)$/,Vu,{autocomplete:"ring-$colors"}],[/^ring-op(?:acity)?-?(.+)$/,([,e])=>({"--un-ring-opacity":W.bracket.percent.cssvar(e)}),{autocomplete:"ring-(op|opacity)-<percent>"}],[/^ring-offset-(.+)$/,Pn("--un-ring-offset-color","ring-offset","borderColor"),{autocomplete:"ring-offset-$colors"}],[/^ring-offset-op(?:acity)?-?(.+)$/,([,e])=>({"--un-ring-offset-opacity":W.bracket.percent.cssvar(e)}),{autocomplete:"ring-offset-(op|opacity)-<percent>"}],["ring-inset",{"--un-ring-inset":"inset"}]];function da([,e],{theme:t}){return{"--un-ring-width":t.ringWidth?.[e]??W.bracket.cssvar.px(e)}}function Vu(e,t){return aa(W.bracket(e[1]))?da(e,t):Pn("--un-ring-color","ring","borderColor")(e,t)}var Fn={"--un-ring-offset-shadow":"0 0 rgb(0 0 0 / 0)","--un-ring-shadow":"0 0 rgb(0 0 0 / 0)","--un-shadow-inset":pa,"--un-shadow":"0 0 rgb(0 0 0 / 0)"},vh=Object.keys(Fn);var Lr=["translate","rotate","scale"],Pu=["translateX(var(--un-translate-x))","translateY(var(--un-translate-y))","rotate(var(--un-rotate))","rotateZ(var(--un-rotate-z))","skewX(var(--un-skew-x))","skewY(var(--un-skew-y))","scaleX(var(--un-scale-x))","scaleY(var(--un-scale-y))"].join(" "),Pe=["translateX(var(--un-translate-x))","translateY(var(--un-translate-y))","translateZ(var(--un-translate-z))","rotate(var(--un-rotate))","rotateX(var(--un-rotate-x))","rotateY(var(--un-rotate-y))","rotateZ(var(--un-rotate-z))","skewX(var(--un-skew-x))","skewY(var(--un-skew-y))","scaleX(var(--un-scale-x))","scaleY(var(--un-scale-y))","scaleZ(var(--un-scale-z))"].join(" "),Mu=["translate3d(var(--un-translate-x), var(--un-translate-y), var(--un-translate-z))","rotate(var(--un-rotate))","rotateX(var(--un-rotate-x))","rotateY(var(--un-rotate-y))","rotateZ(var(--un-rotate-z))","skewX(var(--un-skew-x))","skewY(var(--un-skew-y))","scaleX(var(--un-scale-x))","scaleY(var(--un-scale-y))","scaleZ(var(--un-scale-z))"].join(" "),_n={"--un-rotate":0,"--un-rotate-x":0,"--un-rotate-y":0,"--un-rotate-z":0,"--un-scale-x":1,"--un-scale-y":1,"--un-scale-z":1,"--un-skew-x":0,"--un-skew-y":0,"--un-translate-x":0,"--un-translate-y":0,"--un-translate-z":0},ie=Object.keys(_n),wh=[[/^(?:transform-)?origin-(.+)$/,([,e])=>({"transform-origin":ot[e]??W.bracket.cssvar(e)}),{autocomplete:[`transform-origin-(${Object.keys(ot).join("|")})`,`origin-(${Object.keys(ot).join("|")})`]}],[/^(?:transform-)?perspect(?:ive)?-(.+)$/,([,e])=>{let t=W.bracket.cssvar.px.numberWithUnit(e);if(t!=null)return{"-webkit-perspective":t,perspective:t}}],[/^(?:transform-)?perspect(?:ive)?-origin-(.+)$/,([,e])=>{let t=W.bracket.cssvar(e)??(e.length>=3?ot[e]:void 0);if(t!=null)return{"-webkit-perspective-origin":t,"perspective-origin":t}}],[/^(?:transform-)?translate-()(.+)$/,la,{custom:{preflightKeys:ie}}],[/^(?:transform-)?translate-([xyz])-(.+)$/,la,{custom:{preflightKeys:ie}}],[/^(?:transform-)?rotate-()(.+)$/,ua,{custom:{preflightKeys:ie}}],[/^(?:transform-)?rotate-([xyz])-(.+)$/,ua,{custom:{preflightKeys:ie}}],[/^(?:transform-)?skew-()(.+)$/,fa,{custom:{preflightKeys:ie}}],[/^(?:transform-)?skew-([xy])-(.+)$/,fa,{custom:{preflightKeys:ie},autocomplete:["transform-skew-(x|y)-<percent>","skew-(x|y)-<percent>"]}],[/^(?:transform-)?scale-()(.+)$/,ca,{custom:{preflightKeys:ie}}],[/^(?:transform-)?scale-([xyz])-(.+)$/,ca,{custom:{preflightKeys:ie},autocomplete:[`transform-(${Lr.join("|")})-<percent>`,`transform-(${Lr.join("|")})-(x|y|z)-<percent>`,`(${Lr.join("|")})-<percent>`,`(${Lr.join("|")})-(x|y|z)-<percent>`]}],[/^(?:transform-)?preserve-3d$/,()=>({"transform-style":"preserve-3d"})],[/^(?:transform-)?preserve-flat$/,()=>({"transform-style":"flat"})],["transform",{transform:Pe},{custom:{preflightKeys:ie}}],["transform-cpu",{transform:Pu},{custom:{preflightKeys:["--un-translate-x","--un-translate-y","--un-rotate","--un-rotate-z","--un-skew-x","--un-skew-y","--un-scale-x","--un-scale-y"]}}],["transform-gpu",{transform:Mu},{custom:{preflightKeys:ie}}],["transform-none",{transform:"none"}],...be("transform")];function la([,e,t],{theme:r}){let n=r.spacing?.[t]??W.bracket.cssvar.fraction.rem(t);if(n!=null)return[..._r(e,n,"translate"),["transform",Pe]]}function ca([,e,t]){let r=W.bracket.cssvar.fraction.percent(t);if(r!=null)return[..._r(e,r,"scale"),["transform",Pe]]}function ua([,e="",t]){let r=W.bracket.cssvar.degree(t);if(r!=null)return e?{"--un-rotate":0,[`--un-rotate-${e}`]:r,transform:Pe}:{"--un-rotate-x":0,"--un-rotate-y":0,"--un-rotate-z":0,"--un-rotate":r,transform:Pe}}function fa([,e,t]){let r=W.bracket.cssvar.degree(t);if(r!=null)return[..._r(e,r,"skew"),["transform",Pe]]}var ma={DEFAULT:"8px",0:"0",sm:"4px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},ha={DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],sm:"0 1px 1px rgb(0 0 0 / 0.05)",md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 rgb(0 0 0 / 0)"},ga={sans:["ui-sans-serif","system-ui","-apple-system","BlinkMacSystemFont",'"Segoe UI"',"Roboto",'"Helvetica Neue"',"Arial",'"Noto Sans"',"sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'].join(","),serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"].join(","),mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"].join(",")},ba={xs:["0.75rem","1rem"],sm:["0.875rem","1.25rem"],base:["1rem","1.5rem"],lg:["1.125rem","1.75rem"],xl:["1.25rem","1.75rem"],"2xl":["1.5rem","2rem"],"3xl":["1.875rem","2.25rem"],"4xl":["2.25rem","2.5rem"],"5xl":["3rem","1"],"6xl":["3.75rem","1"],"7xl":["4.5rem","1"],"8xl":["6rem","1"],"9xl":["8rem","1"]},xa={DEFAULT:"1.5rem",xs:"0.5rem",sm:"1rem",md:"1.5rem",lg:"2rem",xl:"2.5rem","2xl":"3rem","3xl":"4rem"},ya={DEFAULT:"1.5rem",none:"0",sm:"thin",md:"medium",lg:"thick"},va={DEFAULT:["0 0 1px rgb(0 0 0 / 0.2)","0 0 1px rgb(1 0 5 / 0.1)"],none:"0 0 rgb(0 0 0 / 0)",sm:"1px 1px 3px rgb(36 37 47 / 0.25)",md:["0 1px 2px rgb(30 29 39 / 0.19)","1px 2px 4px rgb(54 64 147 / 0.18)"],lg:["3px 3px 6px rgb(0 0 0 / 0.26)","0 0 5px rgb(15 3 86 / 0.22)"],xl:["1px 1px 3px rgb(0 0 0 / 0.29)","2px 4px 7px rgb(73 64 125 / 0.35)"]},wa={none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2"},Wn={tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},ka={thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},$a=Wn,Bn={sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},Sa={...Bn},Ca={DEFAULT:"1px",none:"0"},Ra={DEFAULT:"1rem",none:"0",xs:"0.75rem",sm:"0.875rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem","7xl":"4.5rem","8xl":"6rem","9xl":"8rem"},Ea={DEFAULT:"150ms",none:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},Ta={DEFAULT:"0.25rem",none:"0",sm:"0.125rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},ja={DEFAULT:["var(--un-shadow-inset) 0 1px 3px 0 rgb(0 0 0 / 0.1)","var(--un-shadow-inset) 0 1px 2px -1px rgb(0 0 0 / 0.1)"],none:"0 0 rgb(0 0 0 / 0)",sm:"var(--un-shadow-inset) 0 1px 2px 0 rgb(0 0 0 / 0.05)",md:["var(--un-shadow-inset) 0 4px 6px -1px rgb(0 0 0 / 0.1)","var(--un-shadow-inset) 0 2px 4px -2px rgb(0 0 0 / 0.1)"],lg:["var(--un-shadow-inset) 0 10px 15px -3px rgb(0 0 0 / 0.1)","var(--un-shadow-inset) 0 4px 6px -4px rgb(0 0 0 / 0.1)"],xl:["var(--un-shadow-inset) 0 20px 25px -5px rgb(0 0 0 / 0.1)","var(--un-shadow-inset) 0 8px 10px -6px rgb(0 0 0 / 0.1)"],"2xl":"var(--un-shadow-inset) 0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},za={DEFAULT:"3px",none:"0"},Aa={auto:"auto"},Oa={mouse:"(hover) and (pointer: fine)"},Va={..._n,...Fn,...Mn},Me={xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",prose:"65ch"},Ln={auto:"auto",...Me,screen:"100vw"},it={none:"none",...Me,screen:"100vw"},Un={auto:"auto",...Me,screen:"100vh"},st={none:"none",...Me,screen:"100vh"},Pa={...Me},Fu={DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},_u={none:"none",all:"all",colors:["color","background-color","border-color","text-decoration-color","fill","stroke"].join(","),opacity:"opacity",shadow:"box-shadow",transform:"transform",get DEFAULT(){return[this.colors,"opacity","box-shadow","transform","filter","backdrop-filter"].join(",")}},Nn={width:Ln,height:Un,maxWidth:it,maxHeight:st,minWidth:it,minHeight:st,inlineSize:Ln,blockSize:Un,maxInlineSize:it,maxBlockSize:st,minInlineSize:it,minBlockSize:st,colors:An,fontFamily:ga,fontSize:ba,fontWeight:ka,breakpoints:Bn,verticalBreakpoints:Sa,borderRadius:Ta,lineHeight:wa,letterSpacing:Wn,wordSpacing:$a,boxShadow:ja,textIndent:xa,textShadow:va,textStrokeWidth:ya,blur:ma,dropShadow:ha,easing:Fu,transitionProperty:_u,lineWidth:Ca,spacing:Ra,duration:Ea,ringWidth:za,preflightBase:Va,containers:Pa,zIndex:Aa,media:Oa};var Ma={...Nn,aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},animation:{keyframes:{pulse:"{0%, 100% {opacity:1} 50% {opacity:.5}}",bounce:"{0%, 100% {transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1)} 50% {transform:translateY(0);animation-timing-function:cubic-bezier(0,0,0.2,1)}}",spin:"{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}",ping:"{0%{transform:scale(1);opacity:1}75%,100%{transform:scale(2);opacity:0}}","bounce-alt":"{from,20%,53%,80%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1);transform:translate3d(0,0,0)}40%,43%{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06);transform:translate3d(0,-30px,0)}70%{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06);transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}",flash:"{from,50%,to{opacity:1}25%,75%{opacity:0}}","pulse-alt":"{from{transform:scale3d(1,1,1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scale3d(1,1,1)}}","rubber-band":"{from{transform:scale3d(1,1,1)}30%{transform:scale3d(1.25,0.75,1)}40%{transform:scale3d(0.75,1.25,1)}50%{transform:scale3d(1.15,0.85,1)}65%{transform:scale3d(0.95,1.05,1)}75%{transform:scale3d(1.05,0.95,1)}to{transform:scale3d(1,1,1)}}","shake-x":"{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}","shake-y":"{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(0,-10px,0)}20%,40%,60%,80%{transform:translate3d(0,10px,0)}}","head-shake":"{0%{transform:translateX(0)}6.5%{transform:translateX(-6px) rotateY(-9deg)}18.5%{transform:translateX(5px) rotateY(7deg)}31.5%{transform:translateX(-3px) rotateY(-5deg)}43.5%{transform:translateX(2px) rotateY(3deg)}50%{transform:translateX(0)}}",swing:"{20%{transform:rotate3d(0,0,1,15deg)}40%{transform:rotate3d(0,0,1,-10deg)}60%{transform:rotate3d(0,0,1,5deg)}80%{transform:rotate3d(0,0,1,-5deg)}to{transform:rotate3d(0,0,1,0deg)}}",tada:"{from{transform:scale3d(1,1,1)}10%,20%{transform:scale3d(0.9,0.9,0.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{transform:scale3d(1,1,1)}}",wobble:"{from{transform:translate3d(0,0,0)}15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{transform:translate3d(0,0,0)}}",jello:"{from,11.1%,to{transform:translate3d(0,0,0)}22.2%{transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{transform:skewX(6.25deg) skewY(6.25deg)}44.4%{transform:skewX(-3.125deg)skewY(-3.125deg)}55.5%{transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{transform:skewX(-0.78125deg) skewY(-0.78125deg)}77.7%{transform:skewX(0.390625deg) skewY(0.390625deg)}88.8%{transform:skewX(-0.1953125deg) skewY(-0.1953125deg)}}","heart-beat":"{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}",hinge:"{0%{transform-origin:top left;animation-timing-function:ease-in-out}20%,60%{transform:rotate3d(0,0,1,80deg);transform-origin:top left;animation-timing-function:ease-in-out}40%,80%{transform:rotate3d(0,0,1,60deg);transform-origin:top left;animation-timing-function:ease-in-out}to{transform:translate3d(0,700px,0);opacity:0}}","jack-in-the-box":"{from{opacity:0;transform-origin:center bottom;transform:scale(0.1) rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{transform:scale(1)}}","light-speed-in-left":"{from{opacity:0;transform:translate3d(-100%,0,0) skewX(-30deg)}60%{opacity:1;transform:skewX(20deg)}80%{transform:skewX(-5deg)}to{transform:translate3d(0,0,0)}}","light-speed-in-right":"{from{opacity:0;transform:translate3d(100%,0,0) skewX(-30deg)}60%{opacity:1;transform:skewX(20deg)}80%{transform:skewX(-5deg)}to{transform:translate3d(0,0,0)}}","light-speed-out-left":"{from{opacity:1}to{opacity:0;transform:translate3d(-100%,0,0) skewX(30deg)}}","light-speed-out-right":"{from{opacity:1}to{opacity:0;transform:translate3d(100%,0,0) skewX(30deg)}}",flip:"{from{transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,0) rotate3d(0,1,0,-360deg);animation-timing-function:ease-out}40%{transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);animation-timing-function:ease-out}50%{transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);animation-timing-function:ease-in}80%{transform:perspective(400px) scale3d(0.95,0.95,0.95) translate3d(0,0,0) rotate3d(0,1,0,0deg);animation-timing-function:ease-in}to{transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,0) rotate3d(0,1,0,0deg);animation-timing-function:ease-in}}","flip-in-x":"{from{transform:perspective(400px) rotate3d(1,0,0,90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1,0,0,-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{transform:perspective(400px)}}","flip-in-y":"{from{transform:perspective(400px) rotate3d(0,1,0,90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(0,1,0,-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{transform:perspective(400px)}}","flip-out-x":"{from{transform:perspective(400px)}30%{transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}","flip-out-y":"{from{transform:perspective(400px)}30%{transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}","rotate-in":"{from{transform-origin:center;transform:rotate3d(0,0,1,-200deg);opacity:0}to{transform-origin:center;transform:translate3d(0,0,0);opacity:1}}","rotate-in-down-left":"{from{transform-origin:left bottom;transform:rotate3d(0,0,1,-45deg);opacity:0}to{transform-origin:left bottom;transform:translate3d(0,0,0);opacity:1}}","rotate-in-down-right":"{from{transform-origin:right bottom;transform:rotate3d(0,0,1,45deg);opacity:0}to{transform-origin:right bottom;transform:translate3d(0,0,0);opacity:1}}","rotate-in-up-left":"{from{transform-origin:left top;transform:rotate3d(0,0,1,45deg);opacity:0}to{transform-origin:left top;transform:translate3d(0,0,0);opacity:1}}","rotate-in-up-right":"{from{transform-origin:right bottom;transform:rotate3d(0,0,1,-90deg);opacity:0}to{transform-origin:right bottom;transform:translate3d(0,0,0);opacity:1}}","rotate-out":"{from{transform-origin:center;opacity:1}to{transform-origin:center;transform:rotate3d(0,0,1,200deg);opacity:0}}","rotate-out-down-left":"{from{transform-origin:left bottom;opacity:1}to{transform-origin:left bottom;transform:rotate3d(0,0,1,45deg);opacity:0}}","rotate-out-down-right":"{from{transform-origin:right bottom;opacity:1}to{transform-origin:right bottom;transform:rotate3d(0,0,1,-45deg);opacity:0}}","rotate-out-up-left":"{from{transform-origin:left bottom;opacity:1}to{transform-origin:left bottom;transform:rotate3d(0,0,1,-45deg);opacity:0}}","rotate-out-up-right":"{from{transform-origin:right bottom;opacity:1}to{transform-origin:left bottom;transform:rotate3d(0,0,1,90deg);opacity:0}}","roll-in":"{from{opacity:0;transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;transform:translate3d(0,0,0)}}","roll-out":"{from{opacity:1}to{opacity:0;transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}","zoom-in":"{from{opacity:0;transform:scale3d(0.3,0.3,0.3)}50%{opacity:1}}","zoom-in-down":"{from{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}60%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}","zoom-in-left":"{from{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}60%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}","zoom-in-right":"{from{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}60%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}","zoom-in-up":"{from{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}60%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}","zoom-out":"{from{opacity:1}50%{opacity:0;transform:scale3d(0.3,0.3,0.3)}to{opacity:0}}","zoom-out-down":"{40%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}to{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(0,2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}","zoom-out-left":"{40%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(42px,0,0)}to{opacity:0;transform:scale(0.1) translate3d(-2000px,0,0);transform-origin:left center}}","zoom-out-right":"{40%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(-42px,0,0)}to{opacity:0;transform:scale(0.1) translate3d(2000px,0,0);transform-origin:right center}}","zoom-out-up":"{40%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}to{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(0,-2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}","bounce-in":"{from,20%,40%,60%,80%,to{animation-timing-function:ease-in-out}0%{opacity:0;transform:scale3d(0.3,0.3,0.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(0.9,0.9,0.9)}60%{transform:scale3d(1.03,1.03,1.03);opacity:1}80%{transform:scale3d(0.97,0.97,0.97)}to{opacity:1;transform:scale3d(1,1,1)}}","bounce-in-down":"{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:translate3d(0,0,0)}}","bounce-in-left":"{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:translate3d(0,0,0)}}","bounce-in-right":"{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:translate3d(0,0,0)}}","bounce-in-up":"{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translate3d(0,0,0)}}","bounce-out":"{20%{transform:scale3d(0.9,0.9,0.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(0.3,0.3,0.3)}}","bounce-out-down":"{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}","bounce-out-left":"{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}","bounce-out-right":"{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}","bounce-out-up":"{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}","slide-in-down":"{from{transform:translate3d(0,-100%,0);visibility:visible}to{transform:translate3d(0,0,0)}}","slide-in-left":"{from{transform:translate3d(-100%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}","slide-in-right":"{from{transform:translate3d(100%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}","slide-in-up":"{from{transform:translate3d(0,100%,0);visibility:visible}to{transform:translate3d(0,0,0)}}","slide-out-down":"{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,100%,0)}}","slide-out-left":"{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(-100%,0,0)}}","slide-out-right":"{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(100%,0,0)}}","slide-out-up":"{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,-100%,0)}}","fade-in":"{from{opacity:0}to{opacity:1}}","fade-in-down":"{from{opacity:0;transform:translate3d(0,-100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-down-big":"{from{opacity:0;transform:translate3d(0,-2000px,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-left":"{from{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-left-big":"{from{opacity:0;transform:translate3d(-2000px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-right":"{from{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-right-big":"{from{opacity:0;transform:translate3d(2000px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-up":"{from{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-up-big":"{from{opacity:0;transform:translate3d(0,2000px,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-top-left":"{from{opacity:0;transform:translate3d(-100%,-100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-top-right":"{from{opacity:0;transform:translate3d(100%,-100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-bottom-left":"{from{opacity:0;transform:translate3d(-100%,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-in-bottom-right":"{from{opacity:0;transform:translate3d(100%,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}","fade-out":"{from{opacity:1}to{opacity:0}}","fade-out-down":"{from{opacity:1}to{opacity:0;transform:translate3d(0,100%,0)}}","fade-out-down-big":"{from{opacity:1}to{opacity:0;transform:translate3d(0,2000px,0)}}","fade-out-left":"{from{opacity:1}to{opacity:0;transform:translate3d(-100%,0,0)}}","fade-out-left-big":"{from{opacity:1}to{opacity:0;transform:translate3d(-2000px,0,0)}}","fade-out-right":"{from{opacity:1}to{opacity:0;transform:translate3d(100%,0,0)}}","fade-out-right-big":"{from{opacity:1}to{opacity:0;transform:translate3d(2000px,0,0)}}","fade-out-up":"{from{opacity:1}to{opacity:0;transform:translate3d(0,-100%,0)}}","fade-out-up-big":"{from{opacity:1}to{opacity:0;transform:translate3d(0,-2000px,0)}}","fade-out-top-left":"{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(-100%,-100%,0)}}","fade-out-top-right":"{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(100%,-100%,0)}}","fade-out-bottom-left":"{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(-100%,100%,0)}}","fade-out-bottom-right":"{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(100%,100%,0)}}","back-in-up":"{0%{opacity:0.7;transform:translateY(1200px) scale(0.7)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:1;transform:scale(1)}}","back-in-down":"{0%{opacity:0.7;transform:translateY(-1200px) scale(0.7)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:1;transform:scale(1)}}","back-in-right":"{0%{opacity:0.7;transform:translateX(2000px) scale(0.7)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:1;transform:scale(1)}}","back-in-left":"{0%{opacity:0.7;transform:translateX(-2000px) scale(0.7)}80%{opacity:0.7;transform:translateX(0px) scale(0.7)}100%{opacity:1;transform:scale(1)}}","back-out-up":"{0%{opacity:1;transform:scale(1)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:0.7;transform:translateY(-700px) scale(0.7)}}","back-out-down":"{0%{opacity:1;transform:scale(1)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:0.7;transform:translateY(700px) scale(0.7)}}","back-out-right":"{0%{opacity:1;transform:scale(1)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:0.7;transform:translateX(2000px) scale(0.7)}}","back-out-left":"{0%{opacity:1;transform:scale(1)}80%{opacity:0.7;transform:translateX(-2000px) scale(0.7)}100%{opacity:0.7;transform:translateY(-700px) scale(0.7)}}"},durations:{pulse:"2s","heart-beat":"1.3s","bounce-in":"0.75s","bounce-out":"0.75s","flip-out-x":"0.75s","flip-out-y":"0.75s",hinge:"2s"},timingFns:{pulse:"cubic-bezier(0.4,0,.6,1)",ping:"cubic-bezier(0,0,.2,1)","head-shake":"ease-in-out","heart-beat":"ease-in-out","pulse-alt":"ease-in-out","light-speed-in-left":"ease-out","light-speed-in-right":"ease-out","light-speed-out-left":"ease-in","light-speed-out-right":"ease-in"},properties:{"bounce-alt":{"transform-origin":"center bottom"},jello:{"transform-origin":"center"},swing:{"transform-origin":"top center"},flip:{"backface-visibility":"visible"},"flip-in-x":{"backface-visibility":"visible !important"},"flip-in-y":{"backface-visibility":"visible !important"},"flip-out-x":{"backface-visibility":"visible !important"},"flip-out-y":{"backface-visibility":"visible !important"},"rotate-in":{"transform-origin":"center"},"rotate-in-down-left":{"transform-origin":"left bottom"},"rotate-in-down-right":{"transform-origin":"right bottom"},"rotate-in-up-left":{"transform-origin":"left bottom"},"rotate-in-up-right":{"transform-origin":"right bottom"},"rotate-out":{"transform-origin":"center"},"rotate-out-down-left":{"transform-origin":"left bottom"},"rotate-out-down-right":{"transform-origin":"right bottom"},"rotate-out-up-left":{"transform-origin":"left bottom"},"rotate-out-up-right":{"transform-origin":"right bottom"},hinge:{"transform-origin":"top left"},"zoom-out-down":{"transform-origin":"center bottom"},"zoom-out-left":{"transform-origin":"left center"},"zoom-out-right":{"transform-origin":"right center"},"zoom-out-up":{"transform-origin":"center bottom"}},counts:{spin:"infinite",ping:"infinite",pulse:"infinite","pulse-alt":"infinite",bounce:"infinite","bounce-alt":"infinite"},category:{pulse:"Attention Seekers",bounce:"Attention Seekers",spin:"Attention Seekers",ping:"Attention Seekers","bounce-alt":"Attention Seekers",flash:"Attention Seekers","pulse-alt":"Attention Seekers","rubber-band":"Attention Seekers","shake-x":"Attention Seekers","shake-y":"Attention Seekers","head-shake":"Attention Seekers",swing:"Attention Seekers",tada:"Attention Seekers",wobble:"Attention Seekers",jello:"Attention Seekers","heart-beat":"Attention Seekers",hinge:"Specials","jack-in-the-box":"Specials","light-speed-in-left":"Lightspeed","light-speed-in-right":"Lightspeed","light-speed-out-left":"Lightspeed","light-speed-out-right":"Lightspeed",flip:"Flippers","flip-in-x":"Flippers","flip-in-y":"Flippers","flip-out-x":"Flippers","flip-out-y":"Flippers","rotate-in":"Rotating Entrances","rotate-in-down-left":"Rotating Entrances","rotate-in-down-right":"Rotating Entrances","rotate-in-up-left":"Rotating Entrances","rotate-in-up-right":"Rotating Entrances","rotate-out":"Rotating Exits","rotate-out-down-left":"Rotating Exits","rotate-out-down-right":"Rotating Exits","rotate-out-up-left":"Rotating Exits","rotate-out-up-right":"Rotating Exits","roll-in":"Specials","roll-out":"Specials","zoom-in":"Zooming Entrances","zoom-in-down":"Zooming Entrances","zoom-in-left":"Zooming Entrances","zoom-in-right":"Zooming Entrances","zoom-in-up":"Zooming Entrances","zoom-out":"Zooming Exits","zoom-out-down":"Zooming Exits","zoom-out-left":"Zooming Exits","zoom-out-right":"Zooming Exits","zoom-out-up":"Zooming Exits","bounce-in":"Bouncing Entrances","bounce-in-down":"Bouncing Entrances","bounce-in-left":"Bouncing Entrances","bounce-in-right":"Bouncing Entrances","bounce-in-up":"Bouncing Entrances","bounce-out":"Bouncing Exits","bounce-out-down":"Bouncing Exits","bounce-out-left":"Bouncing Exits","bounce-out-right":"Bouncing Exits","bounce-out-up":"Bouncing Exits","slide-in-down":"Sliding Entrances","slide-in-left":"Sliding Entrances","slide-in-right":"Sliding Entrances","slide-in-up":"Sliding Entrances","slide-out-down":"Sliding Exits","slide-out-left":"Sliding Exits","slide-out-right":"Sliding Exits","slide-out-up":"Sliding Exits","fade-in":"Fading Entrances","fade-in-down":"Fading Entrances","fade-in-down-big":"Fading Entrances","fade-in-left":"Fading Entrances","fade-in-left-big":"Fading Entrances","fade-in-right":"Fading Entrances","fade-in-right-big":"Fading Entrances","fade-in-up":"Fading Entrances","fade-in-up-big":"Fading Entrances","fade-in-top-left":"Fading Entrances","fade-in-top-right":"Fading Entrances","fade-in-bottom-left":"Fading Entrances","fade-in-bottom-right":"Fading Entrances","fade-out":"Fading Exits","fade-out-down":"Fading Exits","fade-out-down-big":"Fading Exits","fade-out-left":"Fading Exits","fade-out-left-big":"Fading Exits","fade-out-right":"Fading Exits","fade-out-right-big":"Fading Exits","fade-out-up":"Fading Exits","fade-out-up-big":"Fading Exits","fade-out-top-left":"Fading Exits","fade-out-top-right":"Fading Exits","fade-out-bottom-left":"Fading Exits","fade-out-bottom-right":"Fading Exits","back-in-up":"Back Entrances","back-in-down":"Back Entrances","back-in-right":"Back Entrances","back-in-left":"Back Entrances","back-out-up":"Back Exits","back-out-down":"Back Exits","back-out-right":"Back Exits","back-out-left":"Back Exits"}},media:{portrait:"(orientation: portrait)",landscape:"(orientation: landscape)",os_dark:"(prefers-color-scheme: dark)",os_light:"(prefers-color-scheme: light)",motion_ok:"(prefers-reduced-motion: no-preference)",motion_not_ok:"(prefers-reduced-motion: reduce)",high_contrast:"(prefers-contrast: high)",low_contrast:"(prefers-contrast: low)",opacity_ok:"(prefers-reduced-transparency: no-preference)",opacity_not_ok:"(prefers-reduced-transparency: reduce)",use_data_ok:"(prefers-reduced-data: no-preference)",use_data_not_ok:"(prefers-reduced-data: reduce)",touch:"(hover: none) and (pointer: coarse)",stylus:"(hover: none) and (pointer: fine)",pointer:"(hover) and (pointer: coarse)",mouse:"(hover) and (pointer: fine)",hd_color:"(dynamic-range: high)"},supports:{grid:"(display: grid)"},preflightBase:{...Qe,...jn,...Cn,...zn,...Rn,...Je,...Ze,...$n,...Sn}};var Fa=[K("svg",e=>({selector:`${e.selector} svg`}))];var _a=[K(".dark",e=>({prefix:`.dark $$ ${e.prefix}`})),K(".light",e=>({prefix:`.light $$ ${e.prefix}`})),G("@dark","@media (prefers-color-scheme: dark)"),G("@light","@media (prefers-color-scheme: light)")];var La=[G("contrast-more","@media (prefers-contrast: more)"),G("contrast-less","@media (prefers-contrast: less)")],Ua=[G("motion-reduce","@media (prefers-reduced-motion: reduce)"),G("motion-safe","@media (prefers-reduced-motion: no-preference)")],Wa=[G("landscape","@media (orientation: landscape)"),G("portrait","@media (orientation: portrait)")];var Ba=e=>{if(!e.startsWith("_")&&(/space-[xy]-.+$/.test(e)||/divide-/.test(e)))return{matcher:e,selector:t=>{let r=">:not([hidden])~:not([hidden])";return t.includes(r)?t:`${t}${r}`}}},Na=[K("@hover",e=>({parent:`${e.parent?`${e.parent} $$ `:""}@media (hover: hover) and (pointer: fine)`,selector:`${e.selector||""}:hover`}))];var Da=(e,{theme:t})=>{let r=e.match(/^(.*)\b(placeholder-)(.+)$/);if(r){let[,n="",o,i]=r;if(ze(i,t,"accentColor")||Lu(i))return{matcher:`${n}placeholder-$ ${o}${i}`}}};function Lu(e){let t=e.match(/^op(?:acity)?-?(.+)$/);return t&&t[1]!=null?c.bracket.percent(t[1])!=null:!1}function Ia(e){return[Da,Ba,...Or(e),...La,...Wa,...Ua,...Fa,..._a,...Na]}var Ka=(e={})=>(e.important=e.important??!1,{...yn(e),name:"@unocss/preset-wind",theme:Ma,rules:Js,shortcuts:Qs,variants:Ia(e),postprocess:fs(e)});function Ga(e,t,r){return`calc(${t} + (${e} - ${t}) * ${r} / 100)`}function Ha(e,t,r){let n=[e,t],o=[];for(let s=0;s<2;s++){let l=typeof n[s]=="string"?Y(n[s]):n[s];if(!l||!["rgb","rgba"].includes(l.type))return;o.push(l)}let i=[];for(let s=0;s<3;s++)i.push(Ga(o[0].components[s],o[1].components[s],r));return{type:"rgb",components:i,alpha:Ga(o[0].alpha??1,o[1].alpha??1,r)}}function qa(e,t){return Ha("#fff",e,t)}function Ya(e,t){return Ha("#000",e,t)}function Uu(e,t){let r=Number.parseFloat(`${t}`);if(!Number.isNaN(r))return r>0?Ya(e,t):qa(e,-r)}var Wu={tint:qa,shade:Ya,shift:Uu};function Xa(){let e;return{name:"mix",match(t,r){e||(e=new RegExp(`^mix-(tint|shade|shift)-(-?\\d{1,3})(?:${r.generator.config.separators.join("|")})`));let n=t.match(e);if(n)return{matcher:t.slice(n[0].length),body:o=>(o.forEach(i=>{if(i[1]){let s=Y(`${i[1]}`);if(s){let l=Wu[n[1]](s,n[2]);l&&(i[1]=M(l))}}}),o)}}}}var Bu=(e={})=>{let t=Ka(e);return{...t,name:"@unocss/preset-uno",variants:[...t.variants,Xa()]}},Za=Bu;function Nu(e){return e.replace(/-(\w)/g,(t,r)=>r?r.toUpperCase():"")}function Ja(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Qa(e){return e.replace(/(?:^|\B)([A-Z])/g,"-$1").toLowerCase()}var el=["Webkit","Moz","ms"];function tl(e){let t={};function r(n){let o=t[n];if(o)return o;let i=Nu(n);if(i!=="filter"&&i in e)return t[n]=Qa(i);i=Ja(i);for(let s=0;s<el.length;s++){let l=`${el[s]}${i}`;if(l in e)return t[n]=Qa(Ja(l))}return n}return({entries:n})=>n.forEach(o=>{o[0].startsWith("--")||(o[0]=r(o[0]))})}function rl(e){return e.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<")}async function Dn(e={}){if(typeof window>"u"){console.warn("@unocss/runtime been used in non-browser environment, skipped.");return}let t=window,r=window.document,n=()=>r.documentElement,o=t.__unocss||{},i=Object.assign({},e,o.runtime),s=i.defaults||{},l=i.cloakAttribute??"un-cloak";i.autoPrefix&&(s.postprocess=O(s.postprocess)).unshift(tl(r.createElement("div").style)),i.configResolved?.(o,s);let a=await ao(o,s),u=C=>i.inject?i.inject(C):n().prepend(C),f=()=>i.rootElement?i.rootElement():r.body,p=new Map,m=!0,d=new Set,h,g,w=[],j=()=>new Promise(C=>{w.push(C),g!=null&&clearTimeout(g),g=setTimeout(()=>L().then(()=>{let A=w;w=[],A.forEach(F=>F())}),0)});function y(C,A=!1){if(C.nodeType!==1)return;let F=C;F.hasAttribute(l)&&F.removeAttribute(l),A&&F.querySelectorAll(`[${l}]`).forEach(U=>{U.removeAttribute(l)})}function $(C,A){let F=p.get(C);if(!F)if(F=r.createElement("style"),F.setAttribute("data-unocss-runtime-layer",C),p.set(C,F),A==null)u(F);else{let U=$(A),z=U.parentNode;z?z.insertBefore(F,U.nextSibling):u(F)}return F}async function L(){let C=[...d],A=await a.generate(C);return A.layers.reduce((U,z)=>($(z,U).innerHTML=A.getLayer(z)??"",z),void 0),C.filter(U=>!A.matched.has(U)).forEach(U=>d.delete(U)),{...A,getStyleElement:U=>p.get(U),getStyleElements:()=>p}}async function E(C){let A=d.size;await a.applyExtractors(C,void 0,d),A!==d.size&&await j()}async function x(C=f()){let A=C&&C.outerHTML;A&&(await E(`${A} ${rl(A)}`),y(n()),y(C,!0))}let b=new MutationObserver(C=>{m||C.forEach(async A=>{if(A.target.nodeType!==1)return;let F=A.target;for(let U of p)if(F===U[1])return;if(A.type==="childList")A.addedNodes.forEach(async U=>{if(U.nodeType!==1)return;let z=U;h&&!h(z)||(await E(z.outerHTML),y(z))});else{if(h&&!h(F))return;if(A.attributeName!==l){let U=Array.from(F.attributes).map(D=>D.value?`${D.name}="${D.value}"`:D.name).join(" "),z=`<${F.tagName.toLowerCase()} ${U}>`;await E(z)}y(F)}})}),k=!1;function R(){if(k)return;let C=i.observer?.target?i.observer.target():f();C&&(b.observe(C,{childList:!0,subtree:!0,attributes:!0,attributeFilter:i.observer?.attributeFilter}),k=!0)}function H(){i.bypassDefined&&Du(a.blocked),x(),R()}function q(){r.readyState==="loading"?t.addEventListener("DOMContentLoaded",H):H()}let ee=t.__unocss_runtime=t.__unocss_runtime={version:a.version,uno:a,async extract(C){P(C)||(C.forEach(A=>d.add(A)),C=""),await E(C)},extractAll:x,inspect(C){h=C},toggleObserver(C){C===void 0?m=!m:m=!!C,!k&&!m&&q()},update:L,presets:t.__unocss_runtime?.presets??{}};i.ready?.(ee)!==!1&&(m=!1,q())}function Du(e=new Set){for(let t=0;t<document.styleSheets.length;t++){let r=document.styleSheets[t],n;try{if(n=r.cssRules||r.rules,!n)continue;Array.from(n).flatMap(o=>o.selectorText?.split(/,/g)||[]).forEach(o=>{o&&(o=o.trim(),o.startsWith(".")&&(o=o.slice(1)),e.add(o))})}catch{continue}}return e}Dn({defaults:{presets:[Za(),ho()]}});})(); \ No newline at end of file diff --git a/customer_list/ch/ai_html/lib/vue-3.3.4.js b/customer_list/ch/ai_html/lib/vue-3.3.4.js new file mode 100644 index 0000000..f742f1c --- /dev/null +++ b/customer_list/ch/ai_html/lib/vue-3.3.4.js @@ -0,0 +1,15363 @@ +var Vue = (function (exports) { + 'use strict'; + + function makeMap(str, expectsLowerCase) { + const map = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val]; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const EMPTY_ARR = Object.freeze([]) ; + const NOOP = () => { + }; + const NO = () => false; + const onRE = /^on[^a-z]/; + const isOn = (key) => onRE.test(key); + const isModelListener = (key) => key.startsWith("onUpdate:"); + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); + }; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; + }; + const camelizeRE = /-(\w)/g; + const camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); + }); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() + ); + const capitalize = cacheStringFunction( + (str) => str.charAt(0).toUpperCase() + str.slice(1) + ); + const toHandlerKey = cacheStringFunction( + (str) => str ? `on${capitalize(str)}` : `` + ); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } + }; + const def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); + }; + const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; + }; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + + const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `HYDRATE_EVENTS`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `HOISTED`, + [-2]: `BAIL` + }; + + const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + + const GLOBALS_WHITE_LISTED = "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"; + const isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED); + + const range = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value)) { + return value; + } else if (isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) + return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + 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"; + 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"; + const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + function includeBooleanAttr(value) { + return !!value || value === ""; + } + + function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + + const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); + }; + const replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => { + entries[`${key} =>`] = val2; + return entries; + }, {}) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()] + }; + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + + function warn$1(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$1(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function recordEffectScope(effect, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect); + } + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else { + warn$1( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + const createDep = (effects) => { + const dep = new Set(effects); + dep.w = 0; + dep.n = 0; + return dep; + }; + const wasTracked = (dep) => (dep.w & trackOpBit) > 0; + const newTracked = (dep) => (dep.n & trackOpBit) > 0; + const initDepMarkers = ({ deps }) => { + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].w |= trackOpBit; + } + } + }; + const finalizeDepMarkers = (effect) => { + const { deps } = effect; + if (deps.length) { + let ptr = 0; + for (let i = 0; i < deps.length; i++) { + const dep = deps[i]; + if (wasTracked(dep) && !newTracked(dep)) { + dep.delete(effect); + } else { + deps[ptr++] = dep; + } + dep.w &= ~trackOpBit; + dep.n &= ~trackOpBit; + } + deps.length = ptr; + } + }; + + const targetMap = /* @__PURE__ */ new WeakMap(); + let effectTrackDepth = 0; + let trackOpBit = 1; + const maxMarkerBits = 30; + let activeEffect; + const ITERATE_KEY = Symbol("iterate" ); + const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate" ); + class ReactiveEffect { + constructor(fn, scheduler = null, scope) { + this.fn = fn; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this.parent = void 0; + recordEffectScope(this, scope); + } + run() { + if (!this.active) { + return this.fn(); + } + let parent = activeEffect; + let lastShouldTrack = shouldTrack; + while (parent) { + if (parent === this) { + return; + } + parent = parent.parent; + } + try { + this.parent = activeEffect; + activeEffect = this; + shouldTrack = true; + trackOpBit = 1 << ++effectTrackDepth; + if (effectTrackDepth <= maxMarkerBits) { + initDepMarkers(this); + } else { + cleanupEffect(this); + } + return this.fn(); + } finally { + if (effectTrackDepth <= maxMarkerBits) { + finalizeDepMarkers(this); + } + trackOpBit = 1 << --effectTrackDepth; + activeEffect = this.parent; + shouldTrack = lastShouldTrack; + this.parent = void 0; + if (this.deferStop) { + this.stop(); + } + } + } + stop() { + if (activeEffect === this) { + this.deferStop = true; + } else if (this.active) { + cleanupEffect(this); + if (this.onStop) { + this.onStop(); + } + this.active = false; + } + } + } + function cleanupEffect(effect2) { + const { deps } = effect2; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect2); + } + deps.length = 0; + } + } + function effect(fn, options) { + if (fn.effect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn); + if (options) { + extend(_effect, options); + if (options.scope) + recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep()); + } + const eventInfo = { effect: activeEffect, target, type, key } ; + trackEffects(dep, eventInfo); + } + } + function trackEffects(dep, debuggerEventExtraInfo) { + let shouldTrack2 = false; + if (effectTrackDepth <= maxMarkerBits) { + if (!newTracked(dep)) { + dep.n |= trackOpBit; + shouldTrack2 = !wasTracked(dep); + } + } else { + shouldTrack2 = !dep.has(activeEffect); + } + if (shouldTrack2) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.onTrack) { + activeEffect.onTrack( + extend( + { + effect: activeEffect + }, + debuggerEventExtraInfo + ) + ); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const eventInfo = { target, type, key, newValue, oldValue, oldTarget } ; + if (deps.length === 1) { + if (deps[0]) { + { + triggerEffects(deps[0], eventInfo); + } + } + } else { + const effects = []; + for (const dep of deps) { + if (dep) { + effects.push(...dep); + } + } + { + triggerEffects(createDep(effects), eventInfo); + } + } + } + function triggerEffects(dep, debuggerEventExtraInfo) { + const effects = isArray(dep) ? dep : [...dep]; + for (const effect2 of effects) { + if (effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + for (const effect2 of effects) { + if (!effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + } + function triggerEffect(effect2, debuggerEventExtraInfo) { + if (effect2 !== activeEffect || effect2.allowRecurse) { + if (effect2.onTrigger) { + effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + if (effect2.scheduler) { + effect2.scheduler(); + } else { + effect2.run(); + } + } + } + function getDepFromReactive(object, key) { + var _a; + return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key); + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + const get$1 = /* @__PURE__ */ createGetter(); + const shallowGet = /* @__PURE__ */ createGetter(false, true); + const readonlyGet = /* @__PURE__ */ createGetter(true); + const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true); + const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations(); + function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; + } + function hasOwnProperty(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + function createGetter(isReadonly2 = false, shallow = false) { + return function get2(target, key, receiver) { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return shallow; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + }; + } + const set$1 = /* @__PURE__ */ createSetter(); + const shallowSet = /* @__PURE__ */ createSetter(true); + function createSetter(shallow = false) { + return function set2(target, key, value, receiver) { + let oldValue = target[key]; + if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) { + return false; + } + if (!shallow) { + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + }; + } + function deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + function has$1(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + function ownKeys(target) { + track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY); + return Reflect.ownKeys(target); + } + const mutableHandlers = { + get: get$1, + set: set$1, + deleteProperty, + has: has$1, + ownKeys + }; + const readonlyHandlers = { + get: readonlyGet, + set(target, key) { + { + warn$1( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + }, + deleteProperty(target, key) { + { + warn$1( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + }; + const shallowReactiveHandlers = /* @__PURE__ */ extend( + {}, + mutableHandlers, + { + get: shallowGet, + set: shallowSet + } + ); + const shallowReadonlyHandlers = /* @__PURE__ */ extend( + {}, + readonlyHandlers, + { + get: shallowReadonlyGet + } + ); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function get(target, key, isReadonly = false, isShallow = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly) { + if (key !== rawKey) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + } + function has(key, isReadonly = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly) { + if (key !== rawKey) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + } + function size(target, isReadonly = false) { + target = target["__v_raw"]; + !isReadonly && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); + } + function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + } + function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + } + function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; + } + function createForEach(isReadonly, isShallow) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + !isReadonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; + } + function createIterableMethod(method, isReadonly, isShallow) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + !isReadonly && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : this; + }; + } + function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod( + method, + false, + false + ); + readonlyInstrumentations2[method] = createIterableMethod( + method, + true, + false + ); + shallowInstrumentations2[method] = createIterableMethod( + method, + false, + true + ); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; + } + const [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations + ] = /* @__PURE__ */ createInstrumentations(); + function createInstrumentationGetter(isReadonly, shallow) { + const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly; + } else if (key === "__v_isReadonly") { + return isReadonly; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + console.warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + function isProxy(value) { + return isReactive(value) || isReadonly(value); + } + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; + } + function markRaw(value) { + def(value, "__v_skip", true); + return value; + } + const toReactive = (value) => isObject(value) ? reactive(value) : value; + const toReadonly = (value) => isObject(value) ? readonly(value) : value; + + function trackRefValue(ref2) { + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + { + trackEffects(ref2.dep || (ref2.dep = createDep()), { + target: ref2, + type: "get", + key: "value" + }); + } + } + } + function triggerRefValue(ref2, newVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + { + triggerEffects(dep, { + target: ref2, + type: "set", + key: "value", + newValue: newVal + }); + } + } + } + function isRef(r) { + return !!(r && r.__v_isRef === true); + } + function ref(value) { + return createRef(value, false); + } + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, newVal); + } + } + } + function triggerRef(ref2) { + triggerRefValue(ref2, ref2.value ); + } + function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get, set } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get; + this._set = set; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } + } + function toRef(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl( + source, + key, + defaultValue + ); + } + + class ComputedRefImpl { + constructor(getter, _setter, isReadonly, isSSR) { + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this._dirty = true; + this.effect = new ReactiveEffect(getter, () => { + if (!this._dirty) { + this._dirty = true; + triggerRefValue(this); + } + }); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly; + } + get value() { + const self = toRaw(this); + trackRefValue(self); + if (self._dirty || !self._cacheable) { + self._dirty = false; + self._value = self.effect.run(); + } + return self._value; + } + set value(newValue) { + this._setter(newValue); + } + } + function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = () => { + console.warn("Write operation failed: computed value is readonly"); + } ; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const stack = []; + function pushWarningContext(vnode) { + stack.push(vnode); + } + function popWarningContext() { + stack.pop(); + } + function warn(msg, ...args) { + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + msg + args.join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` + `, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + } + function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; + } + function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` + `], ...formatTraceEntry(entry)); + }); + return logs; + } + function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; + } + function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; + } + function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } + } + function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn(`${type} is NaN - the duration expression might be incorrect.`); + } + } + + const ErrorTypeStrings = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core" + }; + function callWithErrorHandling(fn, instance, type, args) { + let res; + try { + res = args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + return res; + } + function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } + function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + return; + } + } + logError(err, type, contextVNode, throwInDev); + } + function logError(err, type, contextVNode, throwInDev = true) { + { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } + } + + let isFlushing = false; + let isFlushPending = false; + const queue = []; + let flushIndex = 0; + const pendingPostFlushCbs = []; + let activePostFlushCbs = null; + let postFlushIndex = 0; + const resolvedPromise = /* @__PURE__ */ Promise.resolve(); + let currentFlushPromise = null; + const RECURSION_LIMIT = 100; + function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; + } + function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJobId = getId(queue[middle]); + middleJobId < id ? start = middle + 1 : end = middle; + } + return start; + } + function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } + } + function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } + } + function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } + } + function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); + } + function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } + } + function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)]; + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + activePostFlushCbs.sort((a, b) => getId(a) - getId(b)); + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { + continue; + } + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } + } + const getId = (job) => job.id == null ? Infinity : job.id; + const comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) + return -1; + if (b.pre && !a.pre) + return 1; + } + return diff; + }; + function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } + } + function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + warn( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.` + ); + return true; + } else { + seen.set(fn, count + 1); + } + } + } + + let isHmrUpdating = false; + const hmrDirtyComponents = /* @__PURE__ */ new Set(); + { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; + } + const map = /* @__PURE__ */ new Map(); + function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); + } + function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); + } + function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; + } + function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; + } + function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.update(); + isHmrUpdating = false; + }); + } + function reload(id, newComp) { + const record = map.get(id); + if (!record) + return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + queueJob(instance.parent.update); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); + } + function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } + } + function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; + } + + exports.devtools = void 0; + let buffer = []; + let devtoolsNotInstalled = false; + function emit$1(event, ...args) { + if (exports.devtools) { + exports.devtools.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } + } + function setDevtoolsHook(hook, target) { + var _a, _b; + exports.devtools = hook; + if (exports.devtools) { + exports.devtools.enabled = true; + buffer.forEach(({ event, args }) => exports.devtools.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!exports.devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } + } + function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); + } + function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); + } + const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook( + "component:added" /* COMPONENT_ADDED */ + ); + const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); + const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ + ); + const devtoolsComponentRemoved = (component) => { + if (exports.devtools && typeof exports.devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !exports.devtools.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } + }; + function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; + } + const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:start" /* PERFORMANCE_START */ + ); + const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:end" /* PERFORMANCE_END */ + ); + function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; + } + function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); + } + + function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) + return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modelArg = isModelListener && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } + } + function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; + } + function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); + } + + let currentRenderingInstance = null; + let currentScopeId = null; + function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; + } + function pushScopeId(id) { + currentScopeId = id; + } + function popScopeId() { + currentScopeId = null; + } + const withScopeId = (_id) => withCtx; + function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) + return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; + } + + let accessedAttrs = false; + function markAttrsAccessed() { + accessedAttrs = true; + } + function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + props, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + data, + setupState, + ctx, + inheritAttrs + } = instance; + let result; + let fallthroughAttrs; + const prev = setCurrentRenderingInstance(instance); + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + result = normalizeVNode( + render.call( + proxyToUse, + proxyToUse, + renderCache, + props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + props, + true ? { + get attrs() { + markAttrsAccessed(); + return attrs; + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + props, + null + /* we know it doesn't need it */ + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; + } + const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren); + if (!childRoot) { + return [vnode, void 0]; + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; + }; + function filterSingleRoot(children) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + } + } + } else { + return; + } + } + return singleRoot; + } + const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; + }; + const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; + }; + const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; + }; + function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; + } + function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; + } + function updateHOCHostEl({ vnode, parent }, el) { + while (parent && parent.subTree === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } + } + + const isSuspense = (type) => type.__isSuspense; + const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + create: createSuspenseBoundary, + normalize: normalizeSuspenseChildren + }; + const Suspense = SuspenseImpl ; + function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } + } + function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } + } + function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else { + suspense.pendingId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + suspense.pendingId++; + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } + } + let hasWarned = false; + function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + isSVG, + container, + hiddenContainer, + anchor, + deps: 0, + pendingId: 0, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: true, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + const delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move(pendingBranch, container2, anchor2, 0); + } + }; + } + let { anchor: anchor2 } = suspense; + if (activeBranch) { + anchor2 = next(activeBranch); + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor2, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + isSVG2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + isSVG, + optimized + ); + if (placeholder) { + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; + } + function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + document.createElement("div"), + null, + isSVG, + slotScopeIds, + optimized, + rendererInternals, + true + /* hydrating */ + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; + } + function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); + } + function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild) { + warn(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; + } + function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } + } + function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + const el = vnode.el = branch.el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } + } + function isVNodeSuspensible(vnode) { + var _a; + return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false; + } + + function watchEffect(effect, options) { + return doWatch(effect, null, options); + } + function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); + } + function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); + } + const INITIAL_WATCHER_VALUE = {}; + function watch(source, cb, options) { + if (!isFunction(cb)) { + warn( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); + } + function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) { + var _a; + if (!cb) { + if (immediate !== void 0) { + warn( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const warnInvalidSource = (s) => { + warn( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null; + let getter; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => source; + deep = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return traverse(s); + } else if (isFunction(s)) { + return callWithErrorHandling(s, instance, 2); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = () => callWithErrorHandling(source, instance, 2); + } else { + getter = () => { + if (instance && instance.isUnmounted) { + return; + } + if (cleanup) { + cleanup(); + } + return callWithAsyncErrorHandling( + source, + instance, + 3, + [onCleanup] + ); + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + getter = () => traverse(baseGetter()); + } + let cleanup; + let onCleanup = (fn) => { + cleanup = effect.onStop = () => { + callWithErrorHandling(fn, instance, 4); + }; + }; + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = () => { + if (!effect.active) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some( + (v, i) => hasChanged(v, oldValue[i]) + ) : hasChanged(newValue, oldValue)) || false) { + if (cleanup) { + cleanup(); + } + callWithAsyncErrorHandling(cb, instance, 3, [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + onCleanup + ]); + oldValue = newValue; + } + } else { + effect.run(); + } + }; + job.allowRecurse = !!cb; + let scheduler; + if (flush === "sync") { + scheduler = job; + } else if (flush === "post") { + scheduler = () => queuePostRenderEffect(job, instance && instance.suspense); + } else { + job.pre = true; + if (instance) + job.id = instance.uid; + scheduler = () => queueJob(job); + } + const effect = new ReactiveEffect(getter, scheduler); + { + effect.onTrack = onTrack; + effect.onTrigger = onTrigger; + } + if (cb) { + if (immediate) { + job(); + } else { + oldValue = effect.run(); + } + } else if (flush === "post") { + queuePostRenderEffect( + effect.run.bind(effect), + instance && instance.suspense + ); + } else { + effect.run(); + } + const unwatch = () => { + effect.stop(); + if (instance && instance.scope) { + remove(instance.scope.effects, effect); + } + }; + return unwatch; + } + function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const cur = currentInstance; + setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + if (cur) { + setCurrentInstance(cur); + } else { + unsetCurrentInstance(); + } + return res; + } + function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; + } + function traverse(value, seen) { + if (!isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + if (isRef(value)) { + traverse(value.value, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], seen); + } + } + return value; + } + + function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn("Do not use built-in directive ids as custom directive id: " + name); + } + } + function withDirectives(vnode, directives) { + const internalInstance = currentRenderingInstance; + if (internalInstance === null) { + warn(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getExposeProxy(internalInstance) || internalInstance.proxy; + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; + } + function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } + } + + function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; + } + const TransitionHookValidator = [Function, Array]; + const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }; + const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevTransitionKey; + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getKeepAliveChild(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + const enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance + ); + setTransitionHooks(innerChild, enterHooks); + const oldChild = instance.subTree; + const oldInnerChild = oldChild && getKeepAliveChild(oldChild); + let transitionKeyChanged = false; + const { getTransitionKey } = innerChild.type; + if (getTransitionKey) { + const key = getTransitionKey(); + if (prevTransitionKey === void 0) { + prevTransitionKey = key; + } else if (key !== prevTransitionKey) { + prevTransitionKey = key; + transitionKeyChanged = true; + } + } + if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { + const leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in") { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (instance.update.active !== false) { + instance.update(); + } + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el._leaveCb = () => { + earlyRemove(); + el._leaveCb = void 0; + delete enterHooks.delayedLeave; + }; + enterHooks.delayedLeave = delayedLeave; + }; + } + } + return child; + }; + } + }; + const BaseTransition = BaseTransitionImpl; + function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; + } + function resolveTransitionHooks(vnode, props, state, instance) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) + done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el._leaveCb) { + el._leaveCb( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) { + leavingVNode.el._leaveCb(); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + const done = el._enterCb = (cancelled) => { + if (called) + return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el._enterCb = void 0; + }; + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el._enterCb) { + el._enterCb( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + const done = el._leaveCb = (cancelled) => { + if (called) + return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el._leaveCb = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + return resolveTransitionHooks(vnode2, props, state, instance); + } + }; + return hooks; + } + function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } + } + function getKeepAliveChild(vnode) { + return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode; + } + function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } + } + function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) + keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; + } + + function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; + } + + const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + /* do not throw in dev if user provided error component */ + ); + }; + if (suspensible && instance.suspense || false) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); + } + function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; + } + + const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; + const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + isSVG, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName(vnode.type); + if (name && (!filter || !filter(name))) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (!current || !isSameVNodeType(cached, current)) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } + }; + const KeepAlive = KeepAliveImpl; + function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + return pattern.test(name); + } + return false; + } + function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); + } + function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); + } + function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } + } + function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); + } + function resetShapeFlag(vnode) { + vnode.shapeFlag &= ~256; + vnode.shapeFlag &= ~512; + } + function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; + } + + function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + pauseTracking(); + setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + unsetCurrentInstance(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, "")); + warn( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } + } + const createHook = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) + ); + const onBeforeMount = createHook("bm"); + const onMounted = createHook("m"); + const onBeforeUpdate = createHook("bu"); + const onUpdated = createHook("u"); + const onBeforeUnmount = createHook("bum"); + const onUnmounted = createHook("um"); + const onServerPrefetch = createHook("sp"); + const onRenderTriggered = createHook( + "rtg" + ); + const onRenderTracked = createHook( + "rtc" + ); + function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); + } + + const COMPONENTS = "components"; + const DIRECTIVES = "directives"; + function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; + } + const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); + function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } + } + function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); + } + function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + /* do not include inferred name to avoid breaking existing code */ + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` + If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } + } + function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); + } + + function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; + } + + function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) + res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; + } + + function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") + props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; + } + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) + return true; + if (child.type === Comment) + return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; + } + + function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; + } + + const getPublicInstance = (i) => { + if (!i) + return null; + if (isStatefulComponent(i)) + return getExposeProxy(i) || i.proxy; + return getPublicInstance(i.parent); + }; + const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) + ); + const isReservedPrefix = (key) => key === "_" || key === "$"; + const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); + const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance, "get", key); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, propsOptions } + }, key) { + let normalizedProps; + return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } + }; + { + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; + } + const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend( + {}, + PublicInstanceProxyHandlers, + { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyWhitelisted(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } + } + ); + function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; + } + function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } + } + function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); + } + + const warnRuntimeUsage = (method) => warn( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` + ); + function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; + } + function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; + } + function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } + } + function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } + } + function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; + } + function defineModel() { + { + warnRuntimeUsage("defineModel"); + } + } + function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; + } + function useSlots() { + return getContext().slots; + } + function useAttrs() { + return getContext().attrs; + } + function useModel(props, name, options) { + const i = getCurrentInstance(); + if (!i) { + warn(`useModel() called without active instance.`); + return ref(); + } + if (!i.propsOptions[0][name]) { + warn(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + if (options && options.local) { + const proxy = ref(props[name]); + watch( + () => props[name], + (v) => proxy.value = v + ); + watch(proxy, (value) => { + if (value !== props[name]) { + i.emit(`update:${name}`, value); + } + }); + return proxy; + } else { + return { + __v_isRef: true, + get value() { + return props[name]; + }, + set value(value) { + i.emit(`update:${name}`, value); + } + }; + } + } + function getContext() { + const i = getCurrentInstance(); + if (!i) { + warn(`useContext() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); + } + function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; + } + function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) + continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; + } + function mergeModels(a, b) { + if (!a || !b) + return a || b; + if (isArray(a) && isArray(b)) + return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); + } + function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; + } + function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; + } + + function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; + } + let shouldCacheAccess = true; + function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook$1(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook$1(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) + instance.components = components; + if (directives) + instance.directives = directives; + } + function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + /* treat default function as factory */ + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } + } + function callHook$1(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); + } + function createWatcher(raw, ctx, publicThis, key) { + const getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + watch(getter, handler); + } else { + warn(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + watch(getter, raw.bind(publicThis)); + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn(`Invalid watch option: "${key}"`, raw); + } + } + function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; + } + function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; + } + const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray$1, + created: mergeAsArray$1, + beforeMount: mergeAsArray$1, + mounted: mergeAsArray$1, + beforeUpdate: mergeAsArray$1, + updated: mergeAsArray$1, + beforeDestroy: mergeAsArray$1, + beforeUnmount: mergeAsArray$1, + destroyed: mergeAsArray$1, + unmounted: mergeAsArray$1, + activated: mergeAsArray$1, + deactivated: mergeAsArray$1, + errorCaptured: mergeAsArray$1, + serverPrefetch: mergeAsArray$1, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject + }; + function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; + } + function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); + } + function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; + } + function mergeAsArray$1(to, from) { + return to ? [...new Set([].concat(to, from))] : from; + } + function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; + } + function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } + } + function mergeWatchOptions(to, from) { + if (!to) + return from; + if (!from) + return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray$1(to[key], from[key]); + } + return merged; + } + + function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; + } + let uid$1 = 0; + function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + { + Object.defineProperty(context.config, "unwrapInjectedRef", { + get() { + return true; + }, + set() { + warn( + `app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.` + ); + } + }); + } + const installedPlugins = /* @__PURE__ */ new Set(); + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, isSVG) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = createVNode( + rootComponent, + rootProps + ); + vnode.appContext = context; + { + context.reload = () => { + render(cloneVNode(vnode), rootContainer, isSVG); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, isSVG); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getExposeProxy(vnode.component) || vnode.component.proxy; + } else { + warn( + `App has already been mounted. + If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + unmount() { + if (isMounted) { + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + warn( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + currentApp = app; + try { + return fn(); + } finally { + currentApp = null; + } + } + }; + return app; + }; + } + let currentApp = null; + + function provide(key, value) { + if (!currentInstance) { + { + warn(`provide() can only be used inside setup().`); + } + } else { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } + } + function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = currentInstance || currentRenderingInstance; + if (instance || currentApp) { + const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn(`injection "${String(key)}" not found.`); + } + } else { + warn(`inject() can only be used inside setup() or functional components.`); + } + } + function hasInjectionContext() { + return !!(currentInstance || currentRenderingInstance || currentApp); + } + + function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = {}; + def(attrs, InternalObjectKey, 1); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; + } + function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) + return true; + instance = instance.parent; + } + } + function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + /* isAbsent */ + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + /* isAbsent */ + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance, "set", "$attrs"); + } + { + validateProps(rawProps || {}, props, instance); + } + } + function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; + } + function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + unsetCurrentInstance(); + } + } else { + value = defaultValue; + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; + } + function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) + needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + if (prop) { + const booleanIndex = getTypeIndex(Boolean, prop.type); + const stringIndex = getTypeIndex(String, prop.type); + prop[0 /* shouldCast */] = booleanIndex > -1; + prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex; + if (booleanIndex > -1 || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; + } + function validatePropName(key) { + if (key[0] !== "$") { + return true; + } else { + warn(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; + } + function getType(ctor) { + const match = ctor && ctor.toString().match(/^\s*(function|class) (\w+)/); + return match ? match[2] : ctor === null ? "null" : ""; + } + function isSameType(a, b) { + return getType(a) === getType(b); + } + function getTypeIndex(type, expectedTypes) { + if (isArray(expectedTypes)) { + return expectedTypes.findIndex((t) => isSameType(t, type)); + } else if (isFunction(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1; + } + return -1; + } + function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + for (const key in options) { + let opt = options[key]; + if (opt == null) + continue; + validateProp( + key, + resolvedValues[key], + opt, + !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)) + ); + } + } + function validateProp(name, value, prop, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value)) { + warn('Invalid prop: custom validator check failed for prop "' + name + '".'); + } + } + const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" + ); + function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else if (expectedType === "null") { + valid = value === null; + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; + } + function getInvalidTypeMessage(name, value, expectedTypes) { + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; + } + function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } + } + function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); + } + function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); + } + + const isInternalKey = (key) => key[0] === "_" || key === "$stable"; + const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; + const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance) { + warn( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; + }; + const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) + continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } + }; + const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; + }; + const initSlots = (instance, children) => { + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + instance.slots = toRaw(children); + def(children, "_", type); + } else { + normalizeObjectSlots( + children, + instance.slots = {}); + } + } else { + instance.slots = {}; + if (children) { + normalizeVNodeSlots(instance, children); + } + } + def(instance.slots, InternalObjectKey, 1); + }; + const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + extend(slots, children); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + extend(slots, children); + if (!optimized && type === 1) { + delete slots._; + } + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && !(key in deletionComparisonTarget)) { + delete slots[key]; + } + } + } + }; + + function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + return; + } + const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + if (oldRef != null && oldRef !== ref) { + if (isString(oldRef)) { + refs[oldRef] = null; + if (hasOwn(setupState, oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + oldRef.value = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (hasOwn(setupState, ref)) { + setupState[ref] = refs[ref]; + } + } else { + ref.value = [refValue]; + if (rawRef.k) + refs[rawRef.k] = ref.value; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (hasOwn(setupState, ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + ref.value = value; + if (rawRef.k) + refs[rawRef.k] = value; + } else { + warn("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + doSet.id = -1; + queuePostRenderEffect(doSet, parentSuspense); + } else { + doSet(); + } + } else { + warn("Invalid template ref type:", ref, `(${typeof ref})`); + } + } + } + + let hasMismatch = false; + const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== "foreignObject"; + const isComment = (node) => node.nodeType === 8 /* COMMENT */; + function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hasMismatch = false; + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + if (hasMismatch && true) { + console.error(`Hydration completed but contains mismatches.`); + } + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3 /* TEXT */) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + hasMismatch = true; + warn( + `Hydration text mismatch: + - Client: ${JSON.stringify(node.data)} + - Server: ${JSON.stringify(vnode.children)}` + ); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (domType !== 8 /* COMMENT */ || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 /* ELEMENT */ || domType === 3 /* TEXT */) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 /* ELEMENT */ ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if (domType !== 1 /* ELEMENT */ || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + isSVGContainer(container), + optimized + ); + nextNode = isFragmentStart ? locateClosingAsyncAnchor(node) : nextSibling(node); + if (nextNode && isComment(nextNode) && nextNode.data === "teleport end") { + nextNode = nextSibling(nextNode); + } + if (isAsyncWrapper(vnode)) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8 /* COMMENT */) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + isSVGContainer(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs } = vnode; + const forcePatchValue = type === "input" && dirs || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + if (props) { + if (forcePatchValue || !optimized || patchFlag & (16 | 32)) { + for (const key in props) { + if (forcePatchValue && key.endsWith("value") || isOn(key) && !isReservedProp(key)) { + patchProp( + el, + key, + null, + props[key], + false, + void 0, + parentComponent + ); + } + } + } else if (props.onClick) { + patchProp( + el, + "onClick", + null, + props.onClick, + false, + void 0, + parentComponent + ); + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + hasMismatch = true; + if (!hasWarned) { + warn( + `Hydration children mismatch in <${vnode.type}>: server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + if (el.textContent !== vnode.children) { + hasMismatch = true; + warn( + `Hydration text content mismatch in <${vnode.type}>: + - Client: ${el.textContent} + - Server: ${vnode.children}` + ); + el.textContent = vnode.children; + } + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + if (node) { + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (vnode.type === Text && !vnode.children) { + continue; + } else { + hasMismatch = true; + if (!hasWarned) { + warn( + `Hydration children mismatch in <${container.tagName.toLowerCase()}>: server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + isSVGContainer(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + hasMismatch = true; + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + hasMismatch = true; + warn( + `Hydration node mismatch: + - Client vnode:`, + vnode.type, + ` + - Server rendered DOM:`, + node, + node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : `` + ); + vnode.el = null; + if (isFragment) { + const end = locateClosingAsyncAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + isSVGContainer(container), + slotScopeIds + ); + return next; + }; + const locateClosingAsyncAnchor = (node) => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === "[") + match++; + if (node.data === "]") { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + return [hydrate, hydrateNode]; + } + + let supported; + let perf; + function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + perf.mark(endTag); + perf.measure( + `<${formatComponentName(instance, instance.type)}> ${type}`, + startTag, + endTag + ); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; + } + + const queuePostRenderEffect = queueEffectWithSuspense ; + function createRenderer(options) { + return baseCreateRenderer(options); + } + function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); + } + function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, isSVG); + } else { + patchStaticNode(n1, n2, container, isSVG); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + internals + ); + } else { + warn("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, isSVG) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + isSVG, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, isSVG) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + isSVG + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + isSVG = isSVG || n2.type === "svg"; + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { type, props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + isSVG, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + isSVG && type !== "foreignObject", + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp( + el, + key, + null, + props[key], + isSVG, + vnode.children, + parentComponent, + parentSuspense, + unmountChildren + ); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + Object.defineProperty(el, "__vnode", { + value: vnode, + enumerable: false + }); + Object.defineProperty(el, "__vueParentComponent", { + value: parentComponent, + enumerable: false + }); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + const areChildrenSVG = isSVG && n2.type !== "foreignObject"; + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + areChildrenSVG, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + areChildrenSVG, + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps( + el, + n2, + oldProps, + newProps, + parentComponent, + parentSuspense, + isSVG + ); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, isSVG); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, isSVG); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp( + el, + key, + prev, + next, + isSVG, + n1.children, + parentComponent, + parentSuspense, + unmountChildren + ); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps( + el, + n2, + oldProps, + newProps, + parentComponent, + parentSuspense, + isSVG + ); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + isSVG, + vnode.children, + parentComponent, + parentSuspense, + unmountChildren + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) + continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp( + el, + key, + prev, + next, + isSVG, + vnode.children, + parentComponent, + parentSuspense, + unmountChildren + ); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + n2.children, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + isSVG, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance); + { + endMeasure(instance, `init`); + } + } + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + } + return; + } + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + isSVG, + optimized + ); + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + invalidateJob(instance.update); + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode) { + initialVNode.type.__asyncLoader().then( + // note: we are moving the render call into an async callback, + // which means it won't track dependencies - but it's ok because + // a server-rendered async wrapper is already in resolved state + // and it will never need to change. + () => !instance.isUnmounted && hydrateSubTree() + ); + } else { + hydrateSubTree(); + } + } else { + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + isSVG + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + isSVG + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + const effect = instance.effect = new ReactiveEffect( + componentUpdateFn, + () => queueJob(update), + instance.scope + // track it in component's effect scope + ); + const update = instance.update = () => effect.run(); + update.id = instance.uid; + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + update.ownerInstance = instance; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) + newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => hostInsert(el, container, anchor); + const performLeave = () => { + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs + } = vnode; + if (ref != null) { + setRef(ref, null, parentSuspense, vnode, true); + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + optimized, + internals, + doRemove + ); + } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, update, subTree, um } = instance; + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (update) { + update.active = false; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0) { + parentSuspense.resolve(); + } + } + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + return hostNextSibling(vnode.anchor || vnode.el); + }; + const render = (vnode, container, isSVG) => { + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + } + } else { + patch(container._vnode || null, vnode, container, null, null, null, isSVG); + } + flushPreFlushCbs(); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; + } + function toggleRecurse({ effect, update }, allowed) { + effect.allowRecurse = update.allowRecurse = allowed; + } + function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + } + } + } + function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; + } + + const isTeleport = (type) => type.__isTeleport; + const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); + const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; + const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target) { + warn( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } + }; + const TeleportImpl = { + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = n2.targetAnchor = createText(""); + if (target) { + insert(targetAnchor, target); + isSVG = isSVG || isTargetSVG(target); + } else if (!disabled) { + warn("Invalid Teleport target on mount:", target, `(${typeof target})`); + } + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + } else if (target) { + mount(target, targetAnchor); + } + } else { + n2.el = n1.el; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + isSVG = isSVG || isTargetSVG(target); + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds + ); + traverseStaticChildren(n1, n2, true); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + } + updateCssVars(n2); + }, + remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode; + if (target) { + hostRemove(targetAnchor); + } + if (doRemove || !isTeleportDisabled(props)) { + hostRemove(anchor); + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + true, + !!child.dynamicChildren + ); + } + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport + }; + function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } + } + function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector } + }, hydrateChildren) { + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (isTeleportDisabled(vnode.props)) { + vnode.anchor = hydrateChildren( + nextSibling(node), + vnode, + parentNode(node), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + vnode.targetAnchor = targetNode; + } else { + vnode.anchor = nextSibling(node); + let targetAnchor = targetNode; + while (targetAnchor) { + targetAnchor = nextSibling(targetAnchor); + if (targetAnchor && targetAnchor.nodeType === 8 && targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + hydrateChildren( + targetNode, + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode); + } + return vnode.anchor && nextSibling(vnode.anchor); + } + const Teleport = TeleportImpl; + function updateCssVars(vnode) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node = vnode.children[0].el; + while (node !== vnode.targetAnchor) { + if (node.nodeType === 1) + node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } + } + + const Fragment = Symbol.for("v-fgt"); + const Text = Symbol.for("v-txt"); + const Comment = Symbol.for("v-cmt"); + const Static = Symbol.for("v-stc"); + const blockStack = []; + let currentBlock = null; + function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); + } + function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; + } + let isBlockTreeEnabled = 1; + function setBlockTracking(value) { + isBlockTreeEnabled += value; + } + function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; + } + function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + /* isBlock */ + ) + ); + } + function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + /* isBlock: prevent a block from tracking itself */ + ) + ); + } + function isVNode(value) { + return value ? value.__v_isVNode === true : false; + } + function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && hmrDirtyComponents.has(n2.type)) { + n1.shapeFlag &= ~256; + n2.shapeFlag &= ~512; + return false; + } + return n1.type === n2.type && n1.key === n2.key; + } + let vnodeArgsTransformer; + function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; + } + const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); + }; + const InternalObjectKey = `__vInternal`; + const normalizeKey = ({ key }) => key != null ? key : null; + const normalizeRef = ({ + ref, + ref_key, + ref_for + }) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; + }; + function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; + } + const createVNode = createVNodeWithArgsTransform ; + function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag |= -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn( + `Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` + Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); + } + function guardReactiveProps(props) { + if (!props) + return null; + return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props; + } + function cloneVNode(vnode, extraProps, mergeRef = false) { + const { props, ref, patchFlag, children } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition: vnode.transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + return cloned; + } + function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; + } + function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); + } + function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; + } + function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); + } + function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (typeof child === "object") { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } + } + function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); + } + function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !(InternalObjectKey in children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; + } + function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; + } + function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); + } + + const emptyAppContext = createAppContext(); + let uid = 0; + function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + attrsProxy: null, + slotsProxy: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; + } + let currentInstance = null; + const getCurrentInstance = () => currentInstance || currentRenderingInstance; + let internalSetCurrentInstance; + { + internalSetCurrentInstance = (i) => { + currentInstance = i; + }; + } + const setCurrentInstance = (instance) => { + internalSetCurrentInstance(instance); + instance.scope.on(); + }; + const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); + }; + const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); + function validateComponentName(name, config) { + const appIsNativeTag = config.isNativeTag || NO; + if (isBuiltInTag(name) || appIsNativeTag(name)) { + warn( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } + } + function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; + } + let isInSSRComponentSetup = false; + function setupComponent(instance, isSSR = false) { + isInSSRComponentSetup = isSSR; + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isInSSRComponentSetup = false; + return setupResult; + } + function setupStatefulComponent(instance, isSSR) { + var _a; + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers)); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + setCurrentInstance(instance); + pauseTracking(); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [shallowReadonly(instance.props) , setupContext] + ); + resetTracking(); + unsetCurrentInstance(); + if (isPromise(setupResult)) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = (_a = Component.name) != null ? _a : "Anonymous"; + warn( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } + } + function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode(setupResult)) { + warn( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); + } + let compile$1; + let installWithProxy; + function registerRuntimeCompiler(_compile) { + compile$1 = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; + } + const isRuntimeOnly = () => !compile$1; + function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile$1 && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile$1(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + setCurrentInstance(instance); + pauseTracking(); + applyOptions(instance); + resetTracking(); + unsetCurrentInstance(); + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (!compile$1 && Component.template) { + warn( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` ) + /* should not happen */ + ); + } else { + warn(`Component is missing template or render function.`); + } + } + } + function getAttrsProxy(instance) { + return instance.attrsProxy || (instance.attrsProxy = new Proxy( + instance.attrs, + { + get(target, key) { + markAttrsAccessed(); + track(instance, "get", "$attrs"); + return target[key]; + }, + set() { + warn(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn(`setupContext.attrs is readonly.`); + return false; + } + } + )); + } + function getSlotsProxy(instance) { + return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + })); + } + function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + return Object.freeze({ + get attrs() { + return getAttrsProxy(instance); + }, + get slots() { + return getSlotsProxy(instance); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } + } + function getExposeProxy(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } + } + const classifyRE = /(?:^|[-_])(\w)/g; + const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); + function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; + } + function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance && instance.parent) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry( + instance.components || instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; + } + function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; + } + + const computed = (getterOrOptions, debugOptions) => { + return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + }; + + function h(type, propsOrChildren, children) { + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } + + const ssrContextKey = Symbol.for("v-scx"); + const useSSRContext = () => { + { + warn(`useSSRContext() is not supported in the global build.`); + } + }; + + function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#0b1bc9" }; + const stringStyle = { style: "color:#b62e24" }; + const keywordStyle = { style: "color:#9d288c" }; + const formatter = { + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(obj.value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } + } + + function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + return cache[index] = ret; + } + function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; + } + + const version = "3.3.4"; + const ssrUtils = null; + const resolveFilter = null; + const compatUtils = null; + + const svgNS = "http://www.w3.org/2000/svg"; + const doc = typeof document !== "undefined" ? document : null; + const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); + const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, isSVG, is, props) => { + const el = isSVG ? doc.createElementNS(svgNS, tag) : doc.createElement(tag, is ? { is } : void 0); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, isSVG, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) + break; + } + } else { + templateContainer.innerHTML = isSVG ? `<svg>${content}</svg>` : content; + const template = templateContainer.content; + if (isSVG) { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } + }; + + function patchClass(el, value, isSVG) { + const transitionClasses = el._vtc; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } + } + + function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + if (next && !isCssString) { + if (prev && !isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + for (const key in next) { + setStyle(style, key, next[key]); + } + } else { + const currentDisplay = style.display; + if (isCssString) { + if (prev !== next) { + style.cssText = next; + } + } else if (prev) { + el.removeAttribute("style"); + } + if ("_vod" in el) { + style.display = currentDisplay; + } + } + } + const semicolonRE = /[^\\];\s*$/; + const importantRE = /\s*!important$/; + function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) + val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } + } + const prefixes = ["Webkit", "Moz", "ms"]; + const prefixCache = {}; + function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; + } + + const xlinkNS = "http://www.w3.org/1999/xlink"; + function patchAttr(el, key, value, isSVG, instance) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + const isBoolean = isSpecialBooleanAttr(key); + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute(key, isBoolean ? "" : value); + } + } + } + + function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) { + if (key === "innerHTML" || key === "textContent") { + if (prevChildren) { + unmountChildren(prevChildren, parentComponent, parentSuspense); + } + el[key] = value == null ? "" : value; + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + el._value = value; + const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value; + const newValue = value == null ? "" : value; + if (oldValue !== newValue) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(key); + } + + function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); + } + function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); + } + function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el._vei || (el._vei = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = nextValue; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker(nextValue, instance); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } + } + const optionsModifierRE = /(?:Once|Passive|Capture)$/; + function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; + } + let cachedNow = 0; + const p = /* @__PURE__ */ Promise.resolve(); + const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); + function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; + } + function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2)); + } else { + return value; + } + } + + const nativeOnRE = /^on[a-z]/; + const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => { + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp( + el, + key, + nextValue, + prevChildren, + parentComponent, + parentSuspense, + unmountChildren + ); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } + }; + function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && nativeOnRE.test(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (nativeOnRE.test(key) && isString(value)) { + return false; + } + return key in el; + } + + function defineCustomElement(options, hydrate2) { + const Comp = defineComponent(options); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, hydrate2); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; + } + const defineSSRCustomElement = (options) => { + return defineCustomElement(options, hydrate); + }; + const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { + }; + class VueElement extends BaseClass { + constructor(_def, _props = {}, hydrate2) { + super(); + this._def = _def; + this._props = _props; + /** + * @internal + */ + this._instance = null; + this._connected = false; + this._resolved = false; + this._numberProps = null; + if (this.shadowRoot && hydrate2) { + hydrate2(this._createVNode(), this.shadowRoot); + } else { + if (this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + this.attachShadow({ mode: "open" }); + if (!this._def.__asyncLoader) { + this._resolveProps(this._def); + } + } + } + connectedCallback() { + this._connected = true; + if (!this._instance) { + if (this._resolved) { + this._update(); + } else { + this._resolveDef(); + } + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + render(null, this.shadowRoot); + this._instance = null; + } + }); + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + this._resolved = true; + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + new MutationObserver((mutations) => { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + }).observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + if (isAsync) { + this._resolveProps(def); + } + this._applyStyles(styles); + this._update(); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + asyncDef().then((def) => resolve(def, true)); + } else { + resolve(this._def); + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key], true, false); + } + } + for (const key of declaredPropKeys.map(camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val); + } + }); + } + } + _setAttr(key) { + let value = this.getAttribute(key); + const camelKey = camelize(key); + if (this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = true) { + if (val !== this._props[key]) { + this._props[key] = val; + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + } + } + } + _update() { + render(this._createVNode(), this.shadowRoot); + } + _createVNode() { + const vnode = createVNode(this._def, extend({}, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this.shadowRoot.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent(event, { + detail: args + }) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + instance.parent = parent._instance; + instance.provides = parent._instance.provides; + break; + } + } + }; + } + return vnode; + } + _applyStyles(styles) { + if (styles) { + styles.forEach((css) => { + const s = document.createElement("style"); + s.textContent = css; + this.shadowRoot.appendChild(s); + { + (this._styles || (this._styles = [])).push(s); + } + }); + } + } + } + + function useCssModule(name = "$style") { + { + { + warn(`useCssModule() is not supported in the global build.`); + } + return EMPTY_OBJ; + } + } + + function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + const setVars = () => { + const vars = getter(instance.proxy); + setVarsOnVNode(instance.subTree, vars); + updateTeleports(vars); + }; + watchPostEffect(setVars); + onMounted(() => { + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); + } + function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) + break; + el = el.nextSibling; + } + } + } + function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + for (const key in vars) { + style.setProperty(`--${key}`, vars[key]); + } + } + } + + const TRANSITION$1 = "transition"; + const ANIMATION = "animation"; + const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots); + Transition.displayName = "Transition"; + const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String + }; + const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators + ); + const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } + }; + const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; + }; + function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done) => { + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + forceReflow(); + addTransitionClass(el, leaveActiveClass); + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); + } + function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } + } + function NumberOf(val) { + const res = toNumber(val); + { + assertNumber(res, "<transition> explicit duration"); + } + return res; + } + function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls); + } + function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const { _vtc } = el; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el._vtc = void 0; + } + } + } + function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); + } + let endId = 0; + function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); + } + function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION$1) { + if (transitionTimeout > 0) { + type = TRANSITION$1; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null; + propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION$1 && /\b(transform|all)(,|$)/.test( + getStyleProperties(`${TRANSITION$1}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; + } + function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); + } + function toMs(s) { + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; + } + function forceReflow() { + return document.body.offsetHeight; + } + + const positionMap = /* @__PURE__ */ new WeakMap(); + const newPositionMap = /* @__PURE__ */ new WeakMap(); + const TransitionGroupImpl = { + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el._moveCb = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || /transform$/.test(e.propertyName)) { + el.removeEventListener("transitionend", cb); + el._moveCb = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = children; + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else { + warn(`<TransitionGroup> children must be keyed.`); + } + } + if (prevChildren) { + for (let i = 0; i < prevChildren.length; i++) { + const child = prevChildren[i]; + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + positionMap.set(child, child.el.getBoundingClientRect()); + } + } + return createVNode(tag, null, children); + }; + } + }; + const removeMode = (props) => delete props.mode; + /* @__PURE__ */ removeMode(TransitionGroupImpl.props); + const TransitionGroup = TransitionGroupImpl; + function callPendingCbs(c) { + const el = c.el; + if (el._moveCb) { + el._moveCb(); + } + if (el._enterCb) { + el._enterCb(); + } + } + function recordPosition(c) { + newPositionMap.set(c, c.el.getBoundingClientRect()); + } + function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const s = c.el.style; + s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`; + s.transitionDuration = "0s"; + return c; + } + } + function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + if (el._vtc) { + el._vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; + } + + const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; + }; + function onCompositionStart(e) { + e.target.composing = true; + } + function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } + } + const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el._assign = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) + return; + let domValue = el.value; + if (trim) { + domValue = domValue.trim(); + } + if (castToNumber) { + domValue = looseToNumber(domValue); + } + el._assign(domValue); + }); + if (trim) { + addEventListener(el, "change", () => { + el.value = el.value.trim(); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) { + el._assign = getModelAssigner(vnode); + if (el.composing) + return; + if (document.activeElement === el && el.type !== "range") { + if (lazy) { + return; + } + if (trim && el.value.trim() === value) { + return; + } + if ((number || el.type === "number") && looseToNumber(el.value) === value) { + return; + } + } + const newValue = value == null ? "" : value; + if (el.value !== newValue) { + el.value = newValue; + } + } + }; + const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el._assign = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el._assign; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el._assign = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } + }; + function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + if (isArray(value)) { + el.checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + el.checked = value.has(vnode.props.value); + } else if (value !== oldValue) { + el.checked = looseEqual(value, getCheckboxValue(el, true)); + } + } + const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el._assign = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el._assign(getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el._assign = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } + }; + const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el._assign( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + }); + el._assign = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el._assign = getModelAssigner(vnode); + }, + updated(el, { value }) { + setSelected(el, value); + } + }; + function setSelected(el, value) { + const isMultiple = el.multiple; + if (isMultiple && !isArray(value) && !isSet(value)) { + warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArray(value)) { + option.selected = looseIndexOf(value, optionValue) > -1; + } else { + option.selected = value.has(optionValue); + } + } else { + if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) + el.selectedIndex = i; + return; + } + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } + } + function getValue(el) { + return "_value" in el ? el._value : el.value; + } + function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; + } + const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } + }; + function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } + } + function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); + } + + const systemModifiers = ["ctrl", "shift", "alt", "meta"]; + const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) + }; + const withModifiers = (fn, modifiers) => { + return (event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) + return; + } + return fn(event, ...args); + }; + }; + const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" + }; + const withKeys = (fn, modifiers) => { + return (event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) { + return fn(event); + } + }; + }; + + const vShow = { + beforeMount(el, { value }, { transition }) { + el._vod = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) + return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } + }; + function setDisplay(el, value) { + el.style.display = value ? el._vod : "none"; + } + + const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); + let renderer; + let enabledHydration = false; + function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); + } + function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; + } + const render = (...args) => { + ensureRenderer().render(...args); + }; + const hydrate = (...args) => { + ensureHydrationRenderer().hydrate(...args); + }; + const createApp = (...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) + return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + container.innerHTML = ""; + const proxy = mount(container, false, container instanceof SVGElement); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; + }; + const createSSRApp = (...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, container instanceof SVGElement); + } + }; + return app; + }; + function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag), + writable: false + }); + } + function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. + - For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. + - For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader + - For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } + } + function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; + } + const initDirectivesForSSR = NOOP; + + function initDev() { + { + { + console.info( + `You are running a development build of Vue. + Make sure to use the production build (*.prod.js) when deploying for production.` + ); + } + initCustomFormatter(); + } + } + + function defaultOnError(error) { + throw error; + } + function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); + } + function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; + } + const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. + Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `Error parsing JavaScript expression: `, + [46]: `<KeepAlive> expects exactly one child component.`, + // generic errors + [47]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [48]: `ES module mode is not supported in this build of compiler.`, + [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [50]: `"scopeId" option is only supported in module mode.`, + // deprecations + [51]: `@vnode-* hooks in templates are deprecated. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support will be removed in 3.4.`, + [52]: `v-is="component-name" has been deprecated. Use is="vue:component-name" instead. v-is support will be removed in 3.4.`, + // just to fulfill types + [53]: `` + }; + + const FRAGMENT = Symbol(`Fragment` ); + const TELEPORT = Symbol(`Teleport` ); + const SUSPENSE = Symbol(`Suspense` ); + const KEEP_ALIVE = Symbol(`KeepAlive` ); + const BASE_TRANSITION = Symbol(`BaseTransition` ); + const OPEN_BLOCK = Symbol(`openBlock` ); + const CREATE_BLOCK = Symbol(`createBlock` ); + const CREATE_ELEMENT_BLOCK = Symbol(`createElementBlock` ); + const CREATE_VNODE = Symbol(`createVNode` ); + const CREATE_ELEMENT_VNODE = Symbol(`createElementVNode` ); + const CREATE_COMMENT = Symbol(`createCommentVNode` ); + const CREATE_TEXT = Symbol(`createTextVNode` ); + const CREATE_STATIC = Symbol(`createStaticVNode` ); + const RESOLVE_COMPONENT = Symbol(`resolveComponent` ); + const RESOLVE_DYNAMIC_COMPONENT = Symbol( + `resolveDynamicComponent` + ); + const RESOLVE_DIRECTIVE = Symbol(`resolveDirective` ); + const RESOLVE_FILTER = Symbol(`resolveFilter` ); + const WITH_DIRECTIVES = Symbol(`withDirectives` ); + const RENDER_LIST = Symbol(`renderList` ); + const RENDER_SLOT = Symbol(`renderSlot` ); + const CREATE_SLOTS = Symbol(`createSlots` ); + const TO_DISPLAY_STRING = Symbol(`toDisplayString` ); + const MERGE_PROPS = Symbol(`mergeProps` ); + const NORMALIZE_CLASS = Symbol(`normalizeClass` ); + const NORMALIZE_STYLE = Symbol(`normalizeStyle` ); + const NORMALIZE_PROPS = Symbol(`normalizeProps` ); + const GUARD_REACTIVE_PROPS = Symbol(`guardReactiveProps` ); + const TO_HANDLERS = Symbol(`toHandlers` ); + const CAMELIZE = Symbol(`camelize` ); + const CAPITALIZE = Symbol(`capitalize` ); + const TO_HANDLER_KEY = Symbol(`toHandlerKey` ); + const SET_BLOCK_TRACKING = Symbol(`setBlockTracking` ); + const PUSH_SCOPE_ID = Symbol(`pushScopeId` ); + const POP_SCOPE_ID = Symbol(`popScopeId` ); + const WITH_CTX = Symbol(`withCtx` ); + const UNREF = Symbol(`unref` ); + const IS_REF = Symbol(`isRef` ); + const WITH_MEMO = Symbol(`withMemo` ); + const IS_MEMO_SAME = Symbol(`isMemoSame` ); + const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` + }; + function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); + } + + const locStub = { + source: "", + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 } + }; + function createRoot(children, loc = locStub) { + return { + type: 0, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: 0, + temps: 0, + codegenNode: void 0, + loc + }; + } + function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; + } + function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; + } + function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; + } + function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: isString(key) ? createSimpleExpression(key, true) : key, + value + }; + } + function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; + } + function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; + } + function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; + } + function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; + } + function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; + } + function createCacheExpression(index, value, isVNode = false) { + return { + type: 20, + index, + value, + isVNode, + loc: locStub + }; + } + function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; + } + function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; + } + function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; + } + function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } + } + + const isStaticExp = (p) => p.type === 4 && p.isStatic; + const isBuiltInType = (tag, expected) => tag === expected || tag === hyphenate(expected); + function isCoreComponent(tag) { + if (isBuiltInType(tag, "Teleport")) { + return TELEPORT; + } else if (isBuiltInType(tag, "Suspense")) { + return SUSPENSE; + } else if (isBuiltInType(tag, "KeepAlive")) { + return KEEP_ALIVE; + } else if (isBuiltInType(tag, "BaseTransition")) { + return BASE_TRANSITION; + } + } + const nonIdentifierRE = /^\d|[^\$\w]/; + const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); + const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; + const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; + const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; + const isMemberExpressionBrowser = (path) => { + path = path.trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; + }; + const isMemberExpression = isMemberExpressionBrowser ; + function getInnerRange(loc, offset, length) { + const source = loc.source.slice(offset, offset + length); + const newLoc = { + source, + start: advancePositionWithClone(loc.start, loc.source, offset), + end: loc.end + }; + if (length != null) { + newLoc.end = advancePositionWithClone( + loc.start, + loc.source, + offset + length + ); + } + return newLoc; + } + function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + extend({}, pos), + source, + numberOfCharacters + ); + } + function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; + } + function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } + } + function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } + } + function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) + continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } + } + function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); + } + function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); + } + function isText$1(node) { + return node.type === 5 || node.type === 2; + } + function isVSlot(p) { + return p.type === 7 && p.name === "slot"; + } + function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; + } + function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; + } + const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); + function getUnnormalizedProps(props, callPath = []) { + if (props && !isString(props) && props.type === 14) { + const callee = props.callee; + if (!isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; + } + function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } + } + function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; + } + function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; + } + function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } + } + + const decodeRE = /&(gt|lt|amp|apos|quot);/g; + const decodeMap = { + gt: ">", + lt: "<", + amp: "&", + apos: "'", + quot: '"' + }; + const defaultParserOptions = { + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + getTextMode: () => 0, + isVoidTag: NO, + isPreTag: NO, + isCustomElement: NO, + decodeEntities: (rawText) => rawText.replace(decodeRE, (_, p1) => decodeMap[p1]), + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true + }; + function baseParse(content, options = {}) { + const context = createParserContext(content, options); + const start = getCursor(context); + return createRoot( + parseChildren(context, 0, []), + getSelection(context, start) + ); + } + function createParserContext(content, rawOptions) { + const options = extend({}, defaultParserOptions); + let key; + for (key in rawOptions) { + options[key] = rawOptions[key] === void 0 ? defaultParserOptions[key] : rawOptions[key]; + } + return { + options, + column: 1, + line: 1, + offset: 0, + originalSource: content, + source: content, + inPre: false, + inVPre: false, + onWarn: options.onWarn + }; + } + function parseChildren(context, mode, ancestors) { + const parent = last(ancestors); + const ns = parent ? parent.ns : 0; + const nodes = []; + while (!isEnd(context, mode, ancestors)) { + const s = context.source; + let node = void 0; + if (mode === 0 || mode === 1) { + if (!context.inVPre && startsWith(s, context.options.delimiters[0])) { + node = parseInterpolation(context, mode); + } else if (mode === 0 && s[0] === "<") { + if (s.length === 1) { + emitError(context, 5, 1); + } else if (s[1] === "!") { + if (startsWith(s, "<!--")) { + node = parseComment(context); + } else if (startsWith(s, "<!DOCTYPE")) { + node = parseBogusComment(context); + } else if (startsWith(s, "<![CDATA[")) { + if (ns !== 0) { + node = parseCDATA(context, ancestors); + } else { + emitError(context, 1); + node = parseBogusComment(context); + } + } else { + emitError(context, 11); + node = parseBogusComment(context); + } + } else if (s[1] === "/") { + if (s.length === 2) { + emitError(context, 5, 2); + } else if (s[2] === ">") { + emitError(context, 14, 2); + advanceBy(context, 3); + continue; + } else if (/[a-z]/i.test(s[2])) { + emitError(context, 23); + parseTag(context, TagType.End, parent); + continue; + } else { + emitError( + context, + 12, + 2 + ); + node = parseBogusComment(context); + } + } else if (/[a-z]/i.test(s[1])) { + node = parseElement(context, ancestors); + } else if (s[1] === "?") { + emitError( + context, + 21, + 1 + ); + node = parseBogusComment(context); + } else { + emitError(context, 12, 1); + } + } + } + if (!node) { + node = parseText(context, mode); + } + if (isArray(node)) { + for (let i = 0; i < node.length; i++) { + pushNode(nodes, node[i]); + } + } else { + pushNode(nodes, node); + } + } + let removedWhitespace = false; + if (mode !== 2 && mode !== 1) { + const shouldCondense = context.options.whitespace !== "preserve"; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!context.inPre) { + if (!/[^\t\r\n\f ]/.test(node.content)) { + const prev = nodes[i - 1]; + const next = nodes[i + 1]; + if (!prev || !next || shouldCondense && (prev.type === 3 && next.type === 3 || prev.type === 3 && next.type === 1 || prev.type === 1 && next.type === 3 || prev.type === 1 && next.type === 1 && /[\r\n]/.test(node.content))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = node.content.replace(/[\t\r\n\f ]+/g, " "); + } + } else { + node.content = node.content.replace(/\r\n/g, "\n"); + } + } else if (node.type === 3 && !context.options.comments) { + removedWhitespace = true; + nodes[i] = null; + } + } + if (context.inPre && parent && context.options.isPreTag(parent.tag)) { + const first = nodes[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; + } + function pushNode(nodes, node) { + if (node.type === 2) { + const prev = last(nodes); + if (prev && prev.type === 2 && prev.loc.end.offset === node.loc.start.offset) { + prev.content += node.content; + prev.loc.end = node.loc.end; + prev.loc.source += node.loc.source; + return; + } + } + nodes.push(node); + } + function parseCDATA(context, ancestors) { + advanceBy(context, 9); + const nodes = parseChildren(context, 3, ancestors); + if (context.source.length === 0) { + emitError(context, 6); + } else { + advanceBy(context, 3); + } + return nodes; + } + function parseComment(context) { + const start = getCursor(context); + let content; + const match = /--(\!)?>/.exec(context.source); + if (!match) { + content = context.source.slice(4); + advanceBy(context, context.source.length); + emitError(context, 7); + } else { + if (match.index <= 3) { + emitError(context, 0); + } + if (match[1]) { + emitError(context, 10); + } + content = context.source.slice(4, match.index); + const s = context.source.slice(0, match.index); + let prevIndex = 1, nestedIndex = 0; + while ((nestedIndex = s.indexOf("<!--", prevIndex)) !== -1) { + advanceBy(context, nestedIndex - prevIndex + 1); + if (nestedIndex + 4 < s.length) { + emitError(context, 16); + } + prevIndex = nestedIndex + 1; + } + advanceBy(context, match.index + match[0].length - prevIndex + 1); + } + return { + type: 3, + content, + loc: getSelection(context, start) + }; + } + function parseBogusComment(context) { + const start = getCursor(context); + const contentStart = context.source[1] === "?" ? 1 : 2; + let content; + const closeIndex = context.source.indexOf(">"); + if (closeIndex === -1) { + content = context.source.slice(contentStart); + advanceBy(context, context.source.length); + } else { + content = context.source.slice(contentStart, closeIndex); + advanceBy(context, closeIndex + 1); + } + return { + type: 3, + content, + loc: getSelection(context, start) + }; + } + function parseElement(context, ancestors) { + const wasInPre = context.inPre; + const wasInVPre = context.inVPre; + const parent = last(ancestors); + const element = parseTag(context, TagType.Start, parent); + const isPreBoundary = context.inPre && !wasInPre; + const isVPreBoundary = context.inVPre && !wasInVPre; + if (element.isSelfClosing || context.options.isVoidTag(element.tag)) { + if (isPreBoundary) { + context.inPre = false; + } + if (isVPreBoundary) { + context.inVPre = false; + } + return element; + } + ancestors.push(element); + const mode = context.options.getTextMode(element, parent); + const children = parseChildren(context, mode, ancestors); + ancestors.pop(); + element.children = children; + if (startsWithEndTagOpen(context.source, element.tag)) { + parseTag(context, TagType.End, parent); + } else { + emitError(context, 24, 0, element.loc.start); + if (context.source.length === 0 && element.tag.toLowerCase() === "script") { + const first = children[0]; + if (first && startsWith(first.loc.source, "<!--")) { + emitError(context, 8); + } + } + } + element.loc = getSelection(context, element.loc.start); + if (isPreBoundary) { + context.inPre = false; + } + if (isVPreBoundary) { + context.inVPre = false; + } + return element; + } + var TagType = /* @__PURE__ */ ((TagType2) => { + TagType2[TagType2["Start"] = 0] = "Start"; + TagType2[TagType2["End"] = 1] = "End"; + return TagType2; + })(TagType || {}); + const isSpecialTemplateDirective = /* @__PURE__ */ makeMap( + `if,else,else-if,for,slot` + ); + function parseTag(context, type, parent) { + const start = getCursor(context); + const match = /^<\/?([a-z][^\t\r\n\f />]*)/i.exec(context.source); + const tag = match[1]; + const ns = context.options.getNamespace(tag, parent); + advanceBy(context, match[0].length); + advanceSpaces(context); + const cursor = getCursor(context); + const currentSource = context.source; + if (context.options.isPreTag(tag)) { + context.inPre = true; + } + let props = parseAttributes(context, type); + if (type === 0 /* Start */ && !context.inVPre && props.some((p) => p.type === 7 && p.name === "pre")) { + context.inVPre = true; + extend(context, cursor); + context.source = currentSource; + props = parseAttributes(context, type).filter((p) => p.name !== "v-pre"); + } + let isSelfClosing = false; + if (context.source.length === 0) { + emitError(context, 9); + } else { + isSelfClosing = startsWith(context.source, "/>"); + if (type === 1 /* End */ && isSelfClosing) { + emitError(context, 4); + } + advanceBy(context, isSelfClosing ? 2 : 1); + } + if (type === 1 /* End */) { + return; + } + let tagType = 0; + if (!context.inVPre) { + if (tag === "slot") { + tagType = 2; + } else if (tag === "template") { + if (props.some( + (p) => p.type === 7 && isSpecialTemplateDirective(p.name) + )) { + tagType = 3; + } + } else if (isComponent(tag, props, context)) { + tagType = 1; + } + } + return { + type: 1, + ns, + tag, + tagType, + props, + isSelfClosing, + children: [], + loc: getSelection(context, start), + codegenNode: void 0 + // to be created during transform phase + }; + } + function isComponent(tag, props, context) { + const options = context.options; + if (options.isCustomElement(tag)) { + return false; + } + if (tag === "component" || /^[A-Z]/.test(tag) || isCoreComponent(tag) || options.isBuiltInComponent && options.isBuiltInComponent(tag) || options.isNativeTag && !options.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } + } + } else { + if (p.name === "is") { + return true; + } else if ( + // :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && false + ) { + return true; + } + } + } + } + function parseAttributes(context, type) { + const props = []; + const attributeNames = /* @__PURE__ */ new Set(); + while (context.source.length > 0 && !startsWith(context.source, ">") && !startsWith(context.source, "/>")) { + if (startsWith(context.source, "/")) { + emitError(context, 22); + advanceBy(context, 1); + advanceSpaces(context); + continue; + } + if (type === 1 /* End */) { + emitError(context, 3); + } + const attr = parseAttribute(context, attributeNames); + if (attr.type === 6 && attr.value && attr.name === "class") { + attr.value.content = attr.value.content.replace(/\s+/g, " ").trim(); + } + if (type === 0 /* Start */) { + props.push(attr); + } + if (/^[^\t\r\n\f />]/.test(context.source)) { + emitError(context, 15); + } + advanceSpaces(context); + } + return props; + } + function parseAttribute(context, nameSet) { + var _a; + const start = getCursor(context); + const match = /^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(context.source); + const name = match[0]; + if (nameSet.has(name)) { + emitError(context, 2); + } + nameSet.add(name); + if (name[0] === "=") { + emitError(context, 19); + } + { + const pattern = /["'<]/g; + let m; + while (m = pattern.exec(name)) { + emitError( + context, + 17, + m.index + ); + } + } + advanceBy(context, name.length); + let value = void 0; + if (/^[\t\r\n\f ]*=/.test(context.source)) { + advanceSpaces(context); + advanceBy(context, 1); + advanceSpaces(context); + value = parseAttributeValue(context); + if (!value) { + emitError(context, 13); + } + } + const loc = getSelection(context, start); + if (!context.inVPre && /^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(name)) { + const match2 = /(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec( + name + ); + let isPropShorthand = startsWith(name, "."); + let dirName = match2[1] || (isPropShorthand || startsWith(name, ":") ? "bind" : startsWith(name, "@") ? "on" : "slot"); + let arg; + if (match2[2]) { + const isSlot = dirName === "slot"; + const startOffset = name.lastIndexOf( + match2[2], + name.length - (((_a = match2[3]) == null ? void 0 : _a.length) || 0) + ); + const loc2 = getSelection( + context, + getNewPosition(context, start, startOffset), + getNewPosition( + context, + start, + startOffset + match2[2].length + (isSlot && match2[3] || "").length + ) + ); + let content = match2[2]; + let isStatic = true; + if (content.startsWith("[")) { + isStatic = false; + if (!content.endsWith("]")) { + emitError( + context, + 27 + ); + content = content.slice(1); + } else { + content = content.slice(1, content.length - 1); + } + } else if (isSlot) { + content += match2[3] || ""; + } + arg = { + type: 4, + content, + isStatic, + constType: isStatic ? 3 : 0, + loc: loc2 + }; + } + if (value && value.isQuoted) { + const valueLoc = value.loc; + valueLoc.start.offset++; + valueLoc.start.column++; + valueLoc.end = advancePositionWithClone(valueLoc.start, value.content); + valueLoc.source = valueLoc.source.slice(1, -1); + } + const modifiers = match2[3] ? match2[3].slice(1).split(".") : []; + if (isPropShorthand) + modifiers.push("prop"); + return { + type: 7, + name: dirName, + exp: value && { + type: 4, + content: value.content, + isStatic: false, + // Treat as non-constant by default. This can be potentially set to + // other values by `transformExpression` to make it eligible for hoisting. + constType: 0, + loc: value.loc + }, + arg, + modifiers, + loc + }; + } + if (!context.inVPre && startsWith(name, "v-")) { + emitError(context, 26); + } + return { + type: 6, + name, + value: value && { + type: 2, + content: value.content, + loc: value.loc + }, + loc + }; + } + function parseAttributeValue(context) { + const start = getCursor(context); + let content; + const quote = context.source[0]; + const isQuoted = quote === `"` || quote === `'`; + if (isQuoted) { + advanceBy(context, 1); + const endIndex = context.source.indexOf(quote); + if (endIndex === -1) { + content = parseTextData( + context, + context.source.length, + 4 + ); + } else { + content = parseTextData(context, endIndex, 4); + advanceBy(context, 1); + } + } else { + const match = /^[^\t\r\n\f >]+/.exec(context.source); + if (!match) { + return void 0; + } + const unexpectedChars = /["'<=`]/g; + let m; + while (m = unexpectedChars.exec(match[0])) { + emitError( + context, + 18, + m.index + ); + } + content = parseTextData(context, match[0].length, 4); + } + return { content, isQuoted, loc: getSelection(context, start) }; + } + function parseInterpolation(context, mode) { + const [open, close] = context.options.delimiters; + const closeIndex = context.source.indexOf(close, open.length); + if (closeIndex === -1) { + emitError(context, 25); + return void 0; + } + const start = getCursor(context); + advanceBy(context, open.length); + const innerStart = getCursor(context); + const innerEnd = getCursor(context); + const rawContentLength = closeIndex - open.length; + const rawContent = context.source.slice(0, rawContentLength); + const preTrimContent = parseTextData(context, rawContentLength, mode); + const content = preTrimContent.trim(); + const startOffset = preTrimContent.indexOf(content); + if (startOffset > 0) { + advancePositionWithMutation(innerStart, rawContent, startOffset); + } + const endOffset = rawContentLength - (preTrimContent.length - content.length - startOffset); + advancePositionWithMutation(innerEnd, rawContent, endOffset); + advanceBy(context, close.length); + return { + type: 5, + content: { + type: 4, + isStatic: false, + // Set `isConstant` to false by default and will decide in transformExpression + constType: 0, + content, + loc: getSelection(context, innerStart, innerEnd) + }, + loc: getSelection(context, start) + }; + } + function parseText(context, mode) { + const endTokens = mode === 3 ? ["]]>"] : ["<", context.options.delimiters[0]]; + let endIndex = context.source.length; + for (let i = 0; i < endTokens.length; i++) { + const index = context.source.indexOf(endTokens[i], 1); + if (index !== -1 && endIndex > index) { + endIndex = index; + } + } + const start = getCursor(context); + const content = parseTextData(context, endIndex, mode); + return { + type: 2, + content, + loc: getSelection(context, start) + }; + } + function parseTextData(context, length, mode) { + const rawText = context.source.slice(0, length); + advanceBy(context, length); + if (mode === 2 || mode === 3 || !rawText.includes("&")) { + return rawText; + } else { + return context.options.decodeEntities( + rawText, + mode === 4 + ); + } + } + function getCursor(context) { + const { column, line, offset } = context; + return { column, line, offset }; + } + function getSelection(context, start, end) { + end = end || getCursor(context); + return { + start, + end, + source: context.originalSource.slice(start.offset, end.offset) + }; + } + function last(xs) { + return xs[xs.length - 1]; + } + function startsWith(source, searchString) { + return source.startsWith(searchString); + } + function advanceBy(context, numberOfCharacters) { + const { source } = context; + advancePositionWithMutation(context, source, numberOfCharacters); + context.source = source.slice(numberOfCharacters); + } + function advanceSpaces(context) { + const match = /^[\t\r\n\f ]+/.exec(context.source); + if (match) { + advanceBy(context, match[0].length); + } + } + function getNewPosition(context, start, numberOfCharacters) { + return advancePositionWithClone( + start, + context.originalSource.slice(start.offset, numberOfCharacters), + numberOfCharacters + ); + } + function emitError(context, code, offset, loc = getCursor(context)) { + if (offset) { + loc.offset += offset; + loc.column += offset; + } + context.options.onError( + createCompilerError(code, { + start: loc, + end: loc, + source: "" + }) + ); + } + function isEnd(context, mode, ancestors) { + const s = context.source; + switch (mode) { + case 0: + if (startsWith(s, "</")) { + for (let i = ancestors.length - 1; i >= 0; --i) { + if (startsWithEndTagOpen(s, ancestors[i].tag)) { + return true; + } + } + } + break; + case 1: + case 2: { + const parent = last(ancestors); + if (parent && startsWithEndTagOpen(s, parent.tag)) { + return true; + } + break; + } + case 3: + if (startsWith(s, "]]>")) { + return true; + } + break; + } + return !s; + } + function startsWithEndTagOpen(source, tag) { + return startsWith(source, "</") && source.slice(2, 2 + tag.length).toLowerCase() === tag.toLowerCase() && /[\t\r\n\f />]/.test(source[2 + tag.length] || ">"); + } + + function hoistStatic(root, context) { + walk( + root, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + isSingleElementRoot(root, root.children[0]) + ); + } + function isSingleElementRoot(root, child) { + const { children } = root; + return children.length === 1 && child.type === 1 && !isSlotOutlet(child); + } + function walk(node, context, doNotHoistNode = false) { + const { children } = node; + const originalCount = children.length; + let hoistedCount = 0; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1 + (` /* HOISTED */` ); + child.codegenNode = context.hoist(child.codegenNode); + hoistedCount++; + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = getPatchFlag(codegenNode); + if ((!flag || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, context); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, context, child.children.length === 1); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + context, + child.branches[i2].children.length === 1 + ); + } + } + } + if (hoistedCount && context.transformHoist) { + context.transformHoist(children, context, node); + } + if (hoistedCount && hoistedCount === originalCount && node.type === 1 && node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { + node.codegenNode.children = context.hoist( + createArrayExpression(node.codegenNode.children) + ); + } + } + function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject") { + return 0; + } + const flag = getPatchFlag(codegenNode); + if (!flag) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child) || isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + default: + return 0; + } + } + const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS + ]); + function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; + } + function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; + } + function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } + } + function getPatchFlag(node) { + const flag = node.patchFlag; + return flag ? parseInt(flag, 10) : void 0; + } + + function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic: hoistStatic2 = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = NOOP, + isCustomElement = NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig + }) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + selfName: nameMatch && capitalize(camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic: hoistStatic2, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + constantCache: /* @__PURE__ */ new Map(), + temps: 0, + cached: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: () => { + }, + addIdentifiers(exp) { + }, + removeIdentifiers(exp) { + }, + hoist(exp) { + if (isString(exp)) + exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false) { + return createCacheExpression(context.cached++, exp, isVNode); + } + }; + return context; + } + function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + hoistStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + } + function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const child = children[0]; + if (isSingleElementRoot(root, child) && child.codegenNode) { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = child; + } + } else if (children.length > 1) { + let patchFlag = 64; + let patchFlagText = PatchFlagNames[64]; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + patchFlagText += `, ${PatchFlagNames[2048]}`; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag + (` /* ${patchFlagText} */` ), + void 0, + void 0, + true, + void 0, + false + /* isComponent */ + ); + } else ; + } + function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (isString(child)) + continue; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } + } + function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } + } + function createStructuralDirectiveTransform(name, fn) { + const matches = isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) + exitFns.push(onExit); + } + } + return exitFns; + } + }; + } + + const PURE_ANNOTATION = `/*#__PURE__*/`; + const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; + function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false + }) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.loc.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, node) { + context.code += code; + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n)); + } + return context; + } + function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) + options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const isSetupInlined = false; + const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context; + { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + const signature = args.join(", "); + { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push(`const { ${helpers.map(aliasHelper).join(", ")} } = _Vue`); + push(` + `); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` + `); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: isSetupInlined ? preambleContext.code : ``, + // SourceMapGenerator does have toJSON() method but it's not in the types + map: context.map ? context.map.toJSON() : void 0 + }; + } + function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + { + push(`const _Vue = ${VueBinding} + `); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue + `); + } + } + } + genHoists(ast.hoists, context); + newline(); + push(`return `); + } + function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } + } + function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline, helper, scopeId, mode } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push( + `const _hoisted_${i + 1} = ${``}` + ); + genNode(exp, context); + newline(); + } + } + context.pure = false; + } + function isText(n) { + return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; + } + function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); + } + function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isString(node)) { + push(node); + } else if (isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } + } + function genNode(node, context) { + if (isString(node)) { + context.push(node); + return; + } + if (isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + case 22: + break; + case 23: + break; + case 24: + break; + case 25: + break; + case 26: + break; + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } + } + function genText(node, context) { + context.push(JSON.stringify(node.content), node); + } + function genExpression(node, context) { + const { content, isStatic } = node; + context.push(isStatic ? JSON.stringify(content) : content, node); + } + function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) + push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); + } + function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child)) { + context.push(child); + } else { + genNode(child, context); + } + } + } + function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, node); + } else { + push(`[${node.content}]`, node); + } + } + function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push(`${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, node); + } + function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlag, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } + } + function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) + break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); + } + function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, node); + genNodeList(node.arguments, context); + push(`)`); + } + function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); + } + function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); + } + function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, node); + if (isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + push(`)`); + } + } + function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); + } + function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + push(`_cache[${node.index}] || (`); + if (node.isVNode) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1),`); + newline(); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (node.isVNode) { + push(`,`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + } + + const prohibitedKeywordRE = new RegExp( + "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b" + ); + const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; + function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) { + const exp = node.content; + if (!exp.trim()) { + return; + } + try { + new Function( + asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}` + ); + } catch (e) { + let message = e.message; + const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE); + if (keywordMatch) { + message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`; + } + context.onError( + createCompilerError( + 45, + node.loc, + void 0, + message + ) + ); + } + } + + const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg)) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } + }; + function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + { + { + validateBrowserExpression(node, context, asParams, asRawStatements); + } + return node; + } + } + + const transformIf = createStructuralDirectiveTransform( + /^(if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } + ); + function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (dir.exp) { + validateBrowserExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: node.loc, + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && sibling.type === 3) { + context.removeNode(sibling); + comments.unshift(sibling); + continue; + } + if (sibling && sibling.type === 2 && !sibling.content.trim().length) { + context.removeNode(sibling); + continue; + } + if (sibling && sibling.type === 9) { + if (dir.name === "else-if" && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && isBuiltInType(context.parent.tag, "transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) + onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } + } + function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; + } + function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } + } + function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + let patchFlagText = PatchFlagNames[64]; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + patchFlagText += `, ${PatchFlagNames[2048]}`; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag + (` /* ${patchFlagText} */` ), + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } + } + function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; + } + function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } + } + + const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`); + const keyExp = keyProp && (keyProp.type === 6 ? createSimpleExpression(keyProp.value.content, true) : keyProp.exp); + const keyProperty = keyProp ? createObjectProperty(`key`, keyExp) : null; + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag + (` /* ${PatchFlagNames[fragmentFlag]} */` ), + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64 + (` /* ${PatchFlagNames[64]} */` ), + void 0, + void 0, + true, + void 0, + false + /* isComponent */ + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached++)) + ); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + /* force newline */ + ) + ); + } + }; + }); + } + ); + function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = parseForExpression( + // can only be simple expression because vFor transform is applied + // before expression transform. + dir.exp, + context + ); + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (onExit) + onExit(); + }; + } + const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; + const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; + const stripParensRE = /^\(|\)$/g; + function parseForExpression(input, context) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) + return; + const [, LHS, RHS] = inMatch; + const result = { + source: createAliasExpression( + loc, + RHS.trim(), + exp.indexOf(RHS, LHS.length) + ), + value: void 0, + key: void 0, + index: void 0 + }; + { + validateBrowserExpression(result.source, context); + } + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(loc, keyContent, keyOffset); + { + validateBrowserExpression( + result.key, + context, + true + ); + } + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + loc, + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ) + ); + { + validateBrowserExpression( + result.index, + context, + true + ); + } + } + } + } + if (valueContent) { + result.value = createAliasExpression(loc, valueContent, trimmedOffset); + { + validateBrowserExpression( + result.value, + context, + true + ); + } + } + return result; + } + function createAliasExpression(range, content, offset) { + return createSimpleExpression( + content, + false, + getInnerRange(range, offset, content.length) + ); + } + function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); + } + function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) + break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); + } + + const defaultFallback = createSimpleExpression(`undefined`, false); + const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + vSlot.exp; + context.scopes.vSlot++; + return () => { + context.scopes.vSlot--; + }; + } + } + }; + const buildClientSlotFn = (props, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc + ); + function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const slotFunction = buildSlotFn(slotProps, slotChildren, slotLoc); + let vIf; + let vElse; + let vFor; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (prev.type !== 3) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, "if")) { + children.splice(i, 1); + i--; + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor = findDir(slotElement, "for")) { + hasDynamicSlots = true; + const parseResult = vFor.parseResult || parseForExpression(vFor.exp, context); + if (parseResult) { + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + /* force newline */ + ) + ]) + ); + } else { + context.onError( + createCompilerError(32, vFor.loc) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, children2, loc); + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + implicitDefaultChildren.some((node2) => isNonWhitespaceContent(node2))) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; + } + function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); + } + function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) + return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) + return true; + break; + } + } + return false; + } + function isNonWhitespaceContent(node) { + if (node.type !== 2 && node.type !== 12) + return true; + return node.type === 2 ? !!node.content.trim() : isNonWhitespaceContent(node.content); + } + + const directiveImportMap = /* @__PURE__ */ new WeakMap(); + const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let vnodePatchFlag; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(46, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (patchFlag !== 0) { + { + if (patchFlag < 0) { + vnodePatchFlag = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `); + vnodePatchFlag = patchFlag + ` /* ${flagNames} */`; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + vnodePatchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; + }; + function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp(node, "is"); + if (isProp) { + if (isExplicitDynamic || false) { + const exp = isProp.type === 6 ? isProp.value && createSimpleExpression(isProp.value.content, true) : isProp.exp; + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const isDir = !isExplicitDynamic && findDir(node, "is"); + if (isDir && isDir.exp) { + { + context.onWarn( + createCompilerError(52, isDir.loc) + ); + } + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + isDir.exp + ]); + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) + context.helper(builtIn); + return builtIn; + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); + } + function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) + mergeArgs.push(arg); + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && isReservedProp(name)) { + hasVnodeHook = true; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || false)) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression( + name, + true, + getInnerRange(loc, 0, name.length) + ), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || false)) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref") && context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; + } + function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; + } + function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } + } + function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) + dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); + } + function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) + propsNamesString += ", "; + } + return propsNamesString + `]`; + } + function isComponentTag(tag) { + return tag === "component" || tag === "Component"; + } + + const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } + }; + function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) + slotName = p.exp; + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; + } + + const fnExpRE = /^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/; + const transformOn$1 = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onWarn( + createCompilerError(51, arg.loc) + ); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + toHandlerKey(camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp.content); + const isInlineStatement = !(isMemberExp || fnExpRE.test(exp.content)); + const hasMultipleStatements = exp.content.includes(`;`); + { + validateBrowserExpression( + exp, + context, + false, + hasMultipleStatements + ); + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; + }; + + const transformBind = (dir, _node, context) => { + const { exp, modifiers, loc } = dir; + const arg = dir.arg; + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = `${arg.content} || ""`; + } + if (modifiers.includes("camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.includes("prop")) { + injectPrefix(arg, "."); + } + if (modifiers.includes("attr")) { + injectPrefix(arg, "^"); + } + } + if (!exp || exp.type === 4 && !exp.content.trim()) { + context.onError(createCompilerError(34, loc)); + return { + props: [createObjectProperty(arg, createSimpleExpression("", true, loc))] + }; + } + return { + props: [createObjectProperty(arg, exp)] + }; + }; + const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } + }; + + const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + true)) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } + }; + + const seen$1 = /* @__PURE__ */ new WeakSet(); + const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true + /* isVNode */ + ); + } + }; + } + }; + + const transformModel$1 = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source; + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + const maybeRef = false; + if (!expString.trim() || !isMemberExpression(expString) && !maybeRef) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); + }; + function createTransformProps(props = []) { + return { props }; + } + + const seen = /* @__PURE__ */ new WeakSet(); + const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node)) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached++) + ]); + } + }; + } + }; + + function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[], + ...[transformExpression] , + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn$1, + bind: transformBind, + model: transformModel$1 + } + ]; + } + function baseCompile(template, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + { + if (options.prefixIdentifiers === true) { + onError(createCompilerError(47)); + } else if (isModuleMode) { + onError(createCompilerError(48)); + } + } + const prefixIdentifiers = false; + if (options.cacheHandlers) { + onError(createCompilerError(49)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(50)); + } + const ast = isString(template) ? baseParse(template, options) : template; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(); + transform( + ast, + extend({}, options, { + prefixIdentifiers, + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate( + ast, + extend({}, options, { + prefixIdentifiers + }) + ); + } + + const noopDirectiveTransform = () => ({ props: [] }); + + const V_MODEL_RADIO = Symbol(`vModelRadio` ); + const V_MODEL_CHECKBOX = Symbol(`vModelCheckbox` ); + const V_MODEL_TEXT = Symbol(`vModelText` ); + const V_MODEL_SELECT = Symbol(`vModelSelect` ); + const V_MODEL_DYNAMIC = Symbol(`vModelDynamic` ); + const V_ON_WITH_MODIFIERS = Symbol(`vOnModifiersGuard` ); + const V_ON_WITH_KEYS = Symbol(`vOnKeysGuard` ); + const V_SHOW = Symbol(`vShow` ); + const TRANSITION = Symbol(`Transition` ); + const TRANSITION_GROUP = Symbol(`TransitionGroup` ); + registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` + }); + + let decoder; + function decodeHtmlBrowser(raw, asAttr = false) { + if (!decoder) { + decoder = document.createElement("div"); + } + if (asAttr) { + decoder.innerHTML = `<div foo="${raw.replace(/"/g, """)}">`; + return decoder.children[0].getAttribute("foo"); + } else { + decoder.innerHTML = raw; + return decoder.textContent; + } + } + + const isRawTextContainer = /* @__PURE__ */ makeMap( + "style,iframe,script,noscript", + true + ); + const parserOptions = { + isVoidTag, + isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag), + isPreTag: (tag) => tag === "pre", + decodeEntities: decodeHtmlBrowser , + isBuiltInComponent: (tag) => { + if (isBuiltInType(tag, `Transition`)) { + return TRANSITION; + } else if (isBuiltInType(tag, `TransitionGroup`)) { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent) { + let ns = parent ? parent.ns : 0; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + }, + // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments + getTextMode({ tag, ns }) { + if (ns === 0) { + if (tag === "textarea" || tag === "title") { + return 1; + } + if (isRawTextContainer(tag)) { + return 2; + } + } + return 0; + } + }; + + const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } + }; + const parseInlineCSS = (cssText, loc) => { + const normalized = parseStringStyle(cssText); + return createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); + }; + + function createDOMCompilerError(code, loc) { + return createCompilerError( + code, + loc, + DOMErrorMessages + ); + } + const DOMErrorMessages = { + [53]: `v-html is missing expression.`, + [54]: `v-html will override element children.`, + [55]: `v-text is missing expression.`, + [56]: `v-text will override element children.`, + [57]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [58]: `v-model argument is not supported on plain elements.`, + [59]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [60]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [61]: `v-show is missing expression.`, + [62]: `<Transition> expects exactly one child element or component.`, + [63]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` + }; + + const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(53, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(54, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`innerHTML`, true, loc), + exp || createSimpleExpression("", true) + ) + ] + }; + }; + + const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(55, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(56, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`textContent`, true), + exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression( + context.helperString(TO_DISPLAY_STRING), + [exp], + loc + ) : createSimpleExpression("", true) + ) + ] + }; + }; + + const transformModel = (dir, node, context) => { + const baseResult = transformModel$1(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 58, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = findProp(node, "value"); + if (value) { + context.onError( + createDOMCompilerError( + 60, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 59, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 57, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; + }; + + const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`); + const isNonKeyModifier = /* @__PURE__ */ makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` + ); + const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right"); + const isKeyboardEvent = /* @__PURE__ */ makeMap( + `onkeyup,onkeydown,onkeypress`, + true + ); + const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i]; + if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (isStaticExp(key)) { + if (isKeyboardEvent(key.content)) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; + }; + const transformClick = (key, event) => { + const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; + }; + const transformOn = (dir, node, context) => { + return transformOn$1(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) + return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!isStaticExp(key) || isKeyboardEvent(key.content))) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(capitalize).join(""); + key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [createObjectProperty(key, handlerExp)] + }; + }); + }; + + const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(61, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; + }; + + const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 62, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } + }; + function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim()) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); + } + + const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 63, + node.loc + ) + ); + context.removeNode(); + } + }; + + const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition] + ]; + const DOMDirectiveTransforms = { + cloak: noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow + }; + function compile(template, options = {}) { + return baseCompile( + template, + extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: null + }) + ); + } + + { + initDev(); + } + const compileCache = /* @__PURE__ */ Object.create(null); + function compileToFunction(template, options) { + if (!isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + warn(`invalid template option: `, template); + return NOOP; + } + } + const key = template; + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + if (!el) { + warn(`Template element not found or is empty: ${template}`); + } + template = el ? el.innerHTML : ``; + } + const opts = extend( + { + hoistStatic: true, + onError: onError , + onWarn: (e) => onError(e, true) + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compile(template, opts); + function onError(err, asWarning = false) { + const message = asWarning ? err.message : `Template compilation error: ${err.message}`; + const codeFrame = err.loc && generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + warn(codeFrame ? `${message} + ${codeFrame}` : message); + } + const render = new Function(code)() ; + render._rc = true; + return compileCache[key] = render; + } + registerRuntimeCompiler(compileToFunction); + + exports.BaseTransition = BaseTransition; + exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators; + exports.Comment = Comment; + exports.EffectScope = EffectScope; + exports.Fragment = Fragment; + exports.KeepAlive = KeepAlive; + exports.ReactiveEffect = ReactiveEffect; + exports.Static = Static; + exports.Suspense = Suspense; + exports.Teleport = Teleport; + exports.Text = Text; + exports.Transition = Transition; + exports.TransitionGroup = TransitionGroup; + exports.VueElement = VueElement; + exports.assertNumber = assertNumber; + exports.callWithAsyncErrorHandling = callWithAsyncErrorHandling; + exports.callWithErrorHandling = callWithErrorHandling; + exports.camelize = camelize; + exports.capitalize = capitalize; + exports.cloneVNode = cloneVNode; + exports.compatUtils = compatUtils; + exports.compile = compileToFunction; + exports.computed = computed; + exports.createApp = createApp; + exports.createBlock = createBlock; + exports.createCommentVNode = createCommentVNode; + exports.createElementBlock = createElementBlock; + exports.createElementVNode = createBaseVNode; + exports.createHydrationRenderer = createHydrationRenderer; + exports.createPropsRestProxy = createPropsRestProxy; + exports.createRenderer = createRenderer; + exports.createSSRApp = createSSRApp; + exports.createSlots = createSlots; + exports.createStaticVNode = createStaticVNode; + exports.createTextVNode = createTextVNode; + exports.createVNode = createVNode; + exports.customRef = customRef; + exports.defineAsyncComponent = defineAsyncComponent; + exports.defineComponent = defineComponent; + exports.defineCustomElement = defineCustomElement; + exports.defineEmits = defineEmits; + exports.defineExpose = defineExpose; + exports.defineModel = defineModel; + exports.defineOptions = defineOptions; + exports.defineProps = defineProps; + exports.defineSSRCustomElement = defineSSRCustomElement; + exports.defineSlots = defineSlots; + exports.effect = effect; + exports.effectScope = effectScope; + exports.getCurrentInstance = getCurrentInstance; + exports.getCurrentScope = getCurrentScope; + exports.getTransitionRawChildren = getTransitionRawChildren; + exports.guardReactiveProps = guardReactiveProps; + exports.h = h; + exports.handleError = handleError; + exports.hasInjectionContext = hasInjectionContext; + exports.hydrate = hydrate; + exports.initCustomFormatter = initCustomFormatter; + exports.initDirectivesForSSR = initDirectivesForSSR; + exports.inject = inject; + exports.isMemoSame = isMemoSame; + exports.isProxy = isProxy; + exports.isReactive = isReactive; + exports.isReadonly = isReadonly; + exports.isRef = isRef; + exports.isRuntimeOnly = isRuntimeOnly; + exports.isShallow = isShallow; + exports.isVNode = isVNode; + exports.markRaw = markRaw; + exports.mergeDefaults = mergeDefaults; + exports.mergeModels = mergeModels; + exports.mergeProps = mergeProps; + exports.nextTick = nextTick; + exports.normalizeClass = normalizeClass; + exports.normalizeProps = normalizeProps; + exports.normalizeStyle = normalizeStyle; + exports.onActivated = onActivated; + exports.onBeforeMount = onBeforeMount; + exports.onBeforeUnmount = onBeforeUnmount; + exports.onBeforeUpdate = onBeforeUpdate; + exports.onDeactivated = onDeactivated; + exports.onErrorCaptured = onErrorCaptured; + exports.onMounted = onMounted; + exports.onRenderTracked = onRenderTracked; + exports.onRenderTriggered = onRenderTriggered; + exports.onScopeDispose = onScopeDispose; + exports.onServerPrefetch = onServerPrefetch; + exports.onUnmounted = onUnmounted; + exports.onUpdated = onUpdated; + exports.openBlock = openBlock; + exports.popScopeId = popScopeId; + exports.provide = provide; + exports.proxyRefs = proxyRefs; + exports.pushScopeId = pushScopeId; + exports.queuePostFlushCb = queuePostFlushCb; + exports.reactive = reactive; + exports.readonly = readonly; + exports.ref = ref; + exports.registerRuntimeCompiler = registerRuntimeCompiler; + exports.render = render; + exports.renderList = renderList; + exports.renderSlot = renderSlot; + exports.resolveComponent = resolveComponent; + exports.resolveDirective = resolveDirective; + exports.resolveDynamicComponent = resolveDynamicComponent; + exports.resolveFilter = resolveFilter; + exports.resolveTransitionHooks = resolveTransitionHooks; + exports.setBlockTracking = setBlockTracking; + exports.setDevtoolsHook = setDevtoolsHook; + exports.setTransitionHooks = setTransitionHooks; + exports.shallowReactive = shallowReactive; + exports.shallowReadonly = shallowReadonly; + exports.shallowRef = shallowRef; + exports.ssrContextKey = ssrContextKey; + exports.ssrUtils = ssrUtils; + exports.stop = stop; + exports.toDisplayString = toDisplayString; + exports.toHandlerKey = toHandlerKey; + exports.toHandlers = toHandlers; + exports.toRaw = toRaw; + exports.toRef = toRef; + exports.toRefs = toRefs; + exports.toValue = toValue; + exports.transformVNodeArgs = transformVNodeArgs; + exports.triggerRef = triggerRef; + exports.unref = unref; + exports.useAttrs = useAttrs; + exports.useCssModule = useCssModule; + exports.useCssVars = useCssVars; + exports.useModel = useModel; + exports.useSSRContext = useSSRContext; + exports.useSlots = useSlots; + exports.useTransitionState = useTransitionState; + exports.vModelCheckbox = vModelCheckbox; + exports.vModelDynamic = vModelDynamic; + exports.vModelRadio = vModelRadio; + exports.vModelSelect = vModelSelect; + exports.vModelText = vModelText; + exports.vShow = vShow; + exports.version = version; + exports.warn = warn; + exports.watch = watch; + exports.watchEffect = watchEffect; + exports.watchPostEffect = watchPostEffect; + exports.watchSyncEffect = watchSyncEffect; + exports.withAsyncContext = withAsyncContext; + exports.withCtx = withCtx; + exports.withDefaults = withDefaults; + exports.withDirectives = withDirectives; + exports.withKeys = withKeys; + exports.withMemo = withMemo; + exports.withModifiers = withModifiers; + exports.withScopeId = withScopeId; + + return exports; + + })({}); + + \ No newline at end of file diff --git a/customer_list/ch/ai_html/views/extension/index.css b/customer_list/ch/ai_html/views/extension/index.css index b54baed..c3add6e 100644 --- a/customer_list/ch/ai_html/views/extension/index.css +++ b/customer_list/ch/ai_html/views/extension/index.css @@ -10,4 +10,13 @@ text-align: center; border-radius: 50%; line-height: var(--size); */ +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } } \ No newline at end of file diff --git a/customer_list/ch/ai_html/views/extension/index.html b/customer_list/ch/ai_html/views/extension/index.html index 2bdbb67..a7246bf 100644 --- a/customer_list/ch/ai_html/views/extension/index.html +++ b/customer_list/ch/ai_html/views/extension/index.html @@ -5,10 +5,13 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>WI姘村姟鏅鸿兘鍔╂墜鎻掍欢 - 浣犵殑娴忚鍣ˋI鍔╂墜</title> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@unocss/reset/normalize.min.css" /> - <script src="https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.js"></script> + <!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@unocss/reset/normalize.min.css" /> --> + <!-- <script src="https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.js"></script> <script src="https://cdn.jsdelivr.net/npm/@unocss/runtime/preset-icons.global.js"></script> - <script src="https://cdn.jsdelivr.net/npm/@unocss/runtime/attributify.global.js"></script> + <script src="https://cdn.jsdelivr.net/npm/@unocss/runtime/attributify.global.js"></script> --> + + <script src="../../lib/vue-3.3.4.js"></script> + <!-- <script id="unocss-attributify" src="../../lib/unocss-attributify.global.js" onload="document.body.style.visibility='visible'"></script> --> <link rel="stylesheet" href="index.css" /> <style> * { @@ -67,122 +70,162 @@ </head> <body> <div id="app" class="bg-gradient-to-br from-[#E8F3FF] to-[#E5FFFA] min-h-screen font-sans"> - <!-- 瀵艰埅鏍� --> - <nav class="flex justify-between items-center px-8 py-4"> - <div class="flex items-center"> - <img src="https://wi.beng35.com/web/test/static/images/logo/logoWithNoName.png" alt="WI 姘村姟鏅鸿兘鍔╂墜" class="h-8" /> - <span class="text-gray-600 hover:text-gray-800 transition-colors ml-2">WI 姘村姟鏅鸿兘鍔╂墜</span> - </div> - <div class="flex items-center gap-8"> - <a href="https://wi.beng35.com" target="_blank" class="text-gray-600 hover:text-gray-800 transition-colors">WI 缃戦〉绔�</a> - <a href="#" class="text-gray-600 hover:text-gray-800 transition-colors" @click.prevent="openModal">瀹夎鏁欑▼</a> - </div> - </nav> + <div v-if="!isLoading"> + <!-- 瀵艰埅鏍� --> + <nav class="flex justify-between items-center px-8 py-4"> + <div class="flex items-center"> + <img + src="https://wi.beng35.com/web/test/static/images/logo/logoWithNoName.png" + alt="WI 姘村姟鏅鸿兘鍔╂墜" + style="height: 30px" + /> + <span class="text-gray-600 hover:text-gray-800 transition-colors ml-2">WI 姘村姟鏅鸿兘鍔╂墜</span> + </div> + <div class="flex items-center gap-8"> + <a href="https://wi.beng35.com" target="_blank" class="text-gray-600 hover:text-gray-800 transition-colors">WI 缃戦〉绔�</a> + <a href="#" class="text-gray-600 hover:text-gray-800 transition-colors" @click.prevent="openModal">瀹夎鏁欑▼</a> + </div> + </nav> - <!-- 涓昏鍐呭鍖� --> - <main class="flex flex-col items-center justify-center text-center absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"> - <h2 class="text-gray-600 mb-4 text-lg">WI 娴忚鍣ㄦ彃浠�</h2> - <h1 class="text-6xl font-bold mb-12 text-gray-800">鏈� WI锛屾湁搴曟皵</h1> - - <!-- 鎸夐挳缁� --> - <div class="flex gap-4 mb-12 mt-6"> - <button - class="rounded-full px-8 py-3 flex items-center gap-2 hover:shadow-lg transition-shadow bg-blue-400 text-white active:bg-blue-400 hover:bg-blue-500" - @click="handleDownload" - > - <div class="i-carbon-download text-xl text-gray-600"></div> - <span class="text-white">绔嬪嵆涓嬭浇</span> - </button> - </div> - </main> - - <!-- 妯℃�佹 --> - <Transition name="fade"> - <div v-if="showModal" class="fixed inset-0 bg-black/20 backdrop-blur z-50" ></div> - </Transition> - - <Transition name="slide"> - <div - v-if="showModal" - class="fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white rounded-3xl p-8 max-w-90% w-800px z-51" - @click.stop + <!-- 涓昏鍐呭鍖� --> + <main + class="flex flex-col items-center justify-center text-center absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2" > - <!-- 妯℃�佹澶撮儴 --> - <div class="flex justify-between items-center mb-8"> - <h3 class="text-xl font-medium">瀹夎姝ラ</h3> + <h2 class="text-gray-600 mb-4 text-lg">WI 娴忚鍣ㄦ彃浠�</h2> + <h1 class="text-6xl font-bold mb-12 text-gray-800">鏈� WI锛屾湁搴曟皵</h1> + + <!-- 鎸夐挳缁� --> + <div class="flex gap-4 mb-12 mt-6"> <button - class="w-6 h-6 flex items-center justify-center opacity-50 hover:opacity-100 transition-opacity duration-200" - @click="closeModal" + class="rounded-full px-8 py-3 flex items-center gap-2 hover:shadow-lg transition-shadow bg-blue-400 text-white active:bg-blue-400 hover:bg-blue-500" + @click="handleDownload" > - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> - <line x1="18" y1="6" x2="6" y2="18"></line> - <line x1="6" y1="6" x2="18" y2="18"></line> - </svg> + <div class="i-carbon-download text-xl text-gray-600"></div> + <span class="text-white">绔嬪嵆涓嬭浇</span> </button> </div> + </main> - <!-- 妯℃�佹鍐呭 --> - <div class="modal-content"> - <div - v-for="(step, index) in steps" - :key="index" - class="step gap-4" - :class="{ 'flex': currentStep === index, 'hidden': currentStep !== index }" - > - <div class="h-full flex flex-col w-[500px]"> - <!-- 姝ラ鏍囬 --> - <div class="mt-12 flex items-baseline gap-2 mb-2"> - <span class="text-2xl font-medium">绗瑊{index + 1}}姝�</span> - <span class="text-gray-500 text-sm">/鍏� {{steps.length}} 姝�</span> - </div> - <div class="flex-auto mt-20"> - <!-- 姝ラ鎻忚堪 --> - <div class="flex-auto text-gray-600 mb-6 text-xs flex flex-col gap-4"> - <div class="flex items-start gap-2" v-for="(desc, i) in step.desc" :key="i"> - <span - v-if="step.desc.length>1" - class="rounded-full text-center size-4 flex-shrink-0 text-white bg-[#1a66ff] inline-block" - >{{i + 1}}</span - > - <p class="desc" :data-index="i + 1" :class="[`before:content-[${index + 1}] before:mr-2`]" class="mb-1"> - {{ desc }} - </p> + <!-- 妯℃�佹 --> + <Transition name="fade"> + <div v-if="showModal" class="fixed inset-0 bg-black/20 backdrop-blur z-50"></div> + </Transition> + + <Transition name="slide"> + <div + v-if="showModal" + class="fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white rounded-3xl p-8 max-w-90% w-800px z-51" + @click.stop + > + <!-- 妯℃�佹澶撮儴 --> + <div class="flex justify-between items-center mb-8"> + <h3 class="text-xl font-medium">瀹夎姝ラ</h3> + <button + class="w-6 h-6 flex items-center justify-center opacity-50 hover:opacity-100 transition-opacity duration-200" + @click="closeModal" + > + <svg + xmlns="http://www.w3.org/2000/svg" + width="24" + height="24" + viewBox="0 0 24 24" + fill="none" + stroke="currentColor" + stroke-width="2" + stroke-linecap="round" + stroke-linejoin="round" + > + <line x1="18" y1="6" x2="6" y2="18"></line> + <line x1="6" y1="6" x2="18" y2="18"></line> + </svg> + </button> + </div> + + <!-- 妯℃�佹鍐呭 --> + <div class="modal-content"> + <div + v-for="(step, index) in steps" + :key="index" + class="step gap-4" + :class="{ 'flex': currentStep === index, 'hidden': currentStep !== index }" + > + <div class="h-full flex flex-col w-[500px]"> + <!-- 姝ラ鏍囬 --> + <div class="mt-12 flex items-baseline gap-2 mb-2"> + <span class="text-2xl font-medium">绗瑊{index + 1}}姝�</span> + <span class="text-gray-500 text-sm">/鍏� {{steps.length}} 姝�</span> + </div> + <div class="flex-auto mt-20"> + <!-- 姝ラ鎻忚堪 --> + <div class="flex-auto text-gray-600 mb-6 text-xs flex flex-col gap-4"> + <div class="flex items-start gap-2" v-for="(desc, i) in step.desc" :key="i"> + <span + v-if="step.desc.length>1" + class="rounded-full text-center size-4 flex-shrink-0 text-white bg-[#1a66ff] inline-block" + >{{i + 1}}</span + > + <p class="desc" :data-index="i + 1" :class="[`before:content-[${index + 1}] before:mr-2`]" class="mb-1"> + {{ desc }} + </p> + </div> </div> </div> </div> - </div> - <!-- 姝ラ鍥剧墖 --> - <div class="bg-white rounded-2xl"> - <div class="overflow-hidden rounded-2xl border border-black/10"> - <img :src="step.image" :alt="`绗�${index + 1}姝" class="w-full" /> + <!-- 姝ラ鍥剧墖 --> + <div class="bg-white rounded-2xl"> + <div class="overflow-hidden rounded-2xl border border-black/10"> + <img :src="step.image" :alt="`绗�${index + 1}姝" class="w-full" /> + </div> </div> </div> </div> - </div> - <!-- 妯℃�佹搴曢儴 --> - <div class="flex justify-between mt-8"> - <button - class="px-6 py-2 text-gray-600 rounded-lg hover:bg-black/5 transition-colors disabled:opacity-50 disabled:cursor-not-allowed" - :disabled="currentStep === 0" - @click="prevStep" - > - 涓婁竴姝� - </button> - <button - class="px-6 py-2 bg-[#1a73e8] text-white rounded-lg hover:bg-[#1557b0] transition-colors disabled:opacity-50 disabled:cursor-not-allowed" - @click="nextStep" - > - {{ currentStep === steps.length - 1 ? '瀹屾垚瀹夎' : '涓嬩竴姝�' }} - </button> + <!-- 妯℃�佹搴曢儴 --> + <div class="flex justify-between mt-8"> + <button + class="px-6 py-2 text-gray-600 rounded-lg hover:bg-black/5 transition-colors disabled:opacity-50 disabled:cursor-not-allowed" + :disabled="currentStep === 0" + @click="prevStep" + > + 涓婁竴姝� + </button> + <button + class="px-6 py-2 bg-[#1a73e8] text-white rounded-lg hover:bg-[#1557b0] transition-colors disabled:opacity-50 disabled:cursor-not-allowed" + @click="nextStep" + > + {{ currentStep === steps.length - 1 ? '瀹屾垚瀹夎' : '涓嬩竴姝�' }} + </button> + </div> </div> + </Transition> + </div> + <div v-else> + <div class="loading-container" style="display: flex; justify-content: center; align-items: center; height: 100vh"> + <div + class="loading-spinner" + style=" + width: 50px; + height: 50px; + border: 5px solid #f3f3f3; + border-top: 5px solid #3498db; + border-radius: 50%; + animation: spin 1s linear infinite; + " + ></div> </div> - </Transition> + </div> </div> <script> const { createApp, ref } = Vue; + const unocssScript = document.createElement('script'); + unocssScript.src = '../../lib/unocss-attributify.global.js'; + document.head.appendChild(unocssScript); + const isLoading = ref(true); + unocssScript.onload = () => { + isLoading.value = false; + }; createApp({ setup() { @@ -243,6 +286,7 @@ prevStep, nextStep, handleDownload, + isLoading, }; }, }).mount('#app'); -- Gitblit v1.9.3