Interactive Explorations
Each exploration is a self-contained folder with an interactive widget that lets you explore a protocol change hands on — EIPs, ERCs, or promising research.
diff --git a/.cursor/rules/lint-before-done.mdc b/.cursor/rules/lint-before-done.mdc new file mode 100644 index 0000000..f142097 --- /dev/null +++ b/.cursor/rules/lint-before-done.mdc @@ -0,0 +1,14 @@ +--- +description: Run lint/format CI before finishing code changes in this repo +alwaysApply: true +--- + +# Lint before done + +When you change code in this repository, **before reporting the task complete**: + +1. Run `npm run lf:ci` from `feelyourprotocol/website/`. +2. If it fails, fix issues (or run `npm run lf` to auto-fix where possible) and re-run until it passes. +3. Do not skip this for "small" edits — including `community-token/`, `src/`, and config files. + +`lf:ci` = ESLint (whole repo) + Prettier check (`src/`, `cypress/e2e/`, `community-token/`). diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index bf7280e..0932685 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -34,7 +34,7 @@ - [ ] Linting and type checking pass (`npm run lf && npm run type-check`) - [ ] Unit tests pass (`npx vitest run`) - [ ] E2E tests pass (`npm run test:e2e`) -- [ ] Production build succeeds (`npm run build`) +- [ ] Production build succeeds (`npm run build` — website + community-token + docs) - [ ] New exploration is registered in `REGISTRY.ts` - [ ] Library needs were discussed in a separate issue (if applicable — see [Third-Party Libraries](https://docs.feelyourprotocol.org/contributing/third-party-libraries)) diff --git a/README.md b/README.md index 7f894e0..075bcc3 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,10 @@ npm install npm run dev ``` +## Deployment + +Production builds (`dist/website`, `dist/docs`, `dist/community-token`) are **not** in the repo — the server runs `npm run build:deploy` after `git pull`. See `server-config/deployment/fyp_deploy.sh`. + ## Documentation Full documentation is available at **[docs.feelyourprotocol.org](https://docs.feelyourprotocol.org)**. diff --git a/community-token/README.md b/community-token/README.md index ddb09f1..6a62ee5 100644 --- a/community-token/README.md +++ b/community-token/README.md @@ -22,7 +22,7 @@ npm run community-token:preview Production output: `dist/community-token/` -Full deploy build (main site + community token + docs): +Full deploy build (main site + community token + docs, rebuilt on server — `dist/` is not in git): ```bash npm run build:deploy @@ -30,11 +30,11 @@ npm run build:deploy ## Content (fill in later) -| File | Purpose | -| --- | --- | -| `src/content/fund.ts` | Developer Fund (fee uses + short notes) | +| File | Purpose | +| ----------------------- | ----------------------------------------------------------------------- | +| `src/content/fund.ts` | Developer Fund (fee uses + short notes) | | `src/content/topics.ts` | Intro prose, `HOW_IT_WORKS` box meta, tabbed content (`GUIDELINE_TABS`) | -| `src/content/token.ts` | Which-token reference (name, symbol, links) | +| `src/content/token.ts` | Which-token reference (name, symbol, links) | Layout: two columns on large screens — left: intro + token; right: **How fees are used** box (top) + tabbed **How this works** (bottom). Tabs: `Scope`, `Token Relationship`, `Terms`, `Community`. diff --git a/community-token/index.html b/community-token/index.html index 5266342..217d90b 100644 --- a/community-token/index.html +++ b/community-token/index.html @@ -1,4 +1,4 @@ - +
diff --git a/community-token/src/components/FundCommitment.vue b/community-token/src/components/FundCommitment.vue index f3c0215..7b04e95 100644 --- a/community-token/src/components/FundCommitment.vue +++ b/community-token/src/components/FundCommitment.vue @@ -8,7 +8,9 @@ import { FUND_COMMITMENT } from '@ct/content/fund' id="fund" class="ct-section-anchor ct-card overflow-hidden border-purple-200/80 ring-1 ring-purple-100" > -{{ FUND_COMMITMENT.subtitle }}
@@ -32,7 +34,9 @@ import { FUND_COMMITMENT } from '@ct/content/fund' -
diff --git a/community-token/src/components/TokenInfoCard.vue b/community-token/src/components/TokenInfoCard.vue
index 6b2a9de..d9e3d61 100644
--- a/community-token/src/components/TokenInfoCard.vue
+++ b/community-token/src/components/TokenInfoCard.vue
@@ -12,9 +12,7 @@ import { TOKEN_INFO_FIELDS } from '@ct/content/token'
+
{{ spec.subtitle }}
As of {{ generatedLabel }} - Basis: {{ spec.basis.description }} ({{ spec.basis.totalEur.toLocaleString('en-GB') }} €) · - Generated {{ generatedLabel }} + Basis: {{ spec.basis.description }} ({{ spec.basis.totalEur.toLocaleString('en-GB') }} €) + · Generated {{ generatedLabel }}
W)for(;x<=D;)Ue(f[x],S,T,!0),x++;else{const Y=x,z=x,se=new Map;for(x=z;x<=W;x++){const Ae=h[x]=R?Qe(h[x]):Ie(h[x]);Ae.key!=null&&se.set(Ae.key,x)}let ne,xe=0;const ge=W-z+1;let Fe=!1,Ce=0;const Wt=new Array(ge);for(x=0;x=ge){Ue(Ae,S,T,!0);continue}let We;if(Ae.key!=null)We=se.get(Ae.key);else for(ne=z;ne<=W;ne++)if(Wt[ne-z]===0&&_t(Ae,h[ne])){We=ne;break}We===void 0?Ue(Ae,S,T,!0):(Wt[We-z]=x+1,We>=Ce?Ce=We:Fe=!0,b(Ae,h[We],y,null,S,T,L,O,R),xe++)}const ys=Fe?ta(Wt):It;for(ne=ys.length-1,x=ge-1;x>=0;x--){const Ae=z+x,We=h[Ae],bs=h[Ae+1],_s=Ae+1 {const{el:T,type:L,transition:O,children:R,shapeFlag:x}=f;if(x&6){ke(f.component.subTree,h,y,C);return}if(x&128){f.suspense.move(h,y,C);return}if(x&64){L.move(f,h,y,At);return}if(L===Ee){r(T,h,y);for(let D=0;DO.enter(T),S);else{const{leave:D,delayLeave:W,afterLeave:Y}=O,z=()=>{f.ctx.isUnmounted?s(T):r(T,h,y)},se=()=>{T._isLeaving&&T[qe](!0),D(T,()=>{z(),Y&&Y()})};W?W(T,z,se):se()}else r(T,h,y)},Ue=(f,h,y,C=!1,S=!1)=>{const{type:T,props:L,ref:O,children:R,dynamicChildren:x,shapeFlag:q,patchFlag:D,dirs:W,cacheIndex:Y}=f;if(D===-2&&(S=!1),O!=null&&(tt(),Dt(O,null,y,f,!0),nt()),Y!=null&&(h.renderCache[Y]=void 0),q&256){h.ctx.deactivate(f);return}const z=q&1&&W,se=!Tt(f);let ne;if(se&&(ne=L&&L.onVnodeBeforeUnmount)&&Le(ne,h,f),q&6)fl(f.component,y,C);else{if(q&128){f.suspense.unmount(y,C);return}z&&Ke(f,null,h,"beforeUnmount"),q&64?f.type.remove(f,h,y,At,C):x&&!x.hasOnce&&(T!==Ee||D>0&&D&64)?Ut(x,h,y,!1,!0):(T===Ee&&D&384||!S&&q&16)&&Ut(R,h,y),C&&ms(f)}(se&&(ne=L&&L.onVnodeUnmounted)||z)&&me(()=>{ne&&Le(ne,h,f),z&&Ke(f,null,h,"unmounted")},y)},ms=f=>{const{type:h,el:y,anchor:C,transition:S}=f;if(h===Ee){ul(y,C);return}if(h===Qt){g(f);return}const T=()=>{s(y),S&&!S.persisted&&S.afterLeave&&S.afterLeave()};if(f.shapeFlag&1&&S&&!S.persisted){const{leave:L,delayLeave:O}=S,R=()=>L(y,T);O?O(f.el,T,R):R()}else T()},ul=(f,h)=>{let y;for(;f!==h;)y=m(f),s(f),f=y;s(h)},fl=(f,h,y)=>{const{bum:C,scope:S,job:T,subTree:L,um:O,m:R,a:x}=f;ks(R),ks(x),C&&Mn(C),S.stop(),T&&(T.flags|=8,Ue(L,f,h,y)),O&&me(O,h),me(()=>{f.isUnmounted=!0},h)},Ut=(f,h,y,C=!1,S=!1,T=0)=>{for(let L=T;L {if(f.shapeFlag&6)return gn(f.component.subTree);if(f.shapeFlag&128)return f.suspense.next();const h=m(f.anchor||f.el),y=h&&h[Zi];return y?m(y):h};let cr=!1;const vs=(f,h,y)=>{let C;f==null?h._vnode&&(Ue(h._vnode,null,null,!0),C=h._vnode.component):b(h._vnode||null,f,h,null,null,null,y),h._vnode=f,cr||(cr=!0,xs(C),$n(),cr=!1)},At={p:b,um:Ue,m:ke,r:ms,mt:H,mc:K,pc:V,pbc:A,n:gn,o:e};let ar,ur;return t&&([ar,ur]=t(At)),{render:vs,hydrate:ar,createApp:Vc(vs,ar)}}function yr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function mt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ro(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function as(e,t,n=!1){const r=e.children,s=t.children;if(G(r)&&G(s))for(let i=0;i >1,e[n[l]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function Oo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Oo(t)}function ks(e){if(e)for(let t=0;t e.__isSuspense;function Io(e,t){t&&t.pendingBranch?G(e)?t.effects.push(...e):t.effects.push(e):lc(e)}const Ee=Symbol.for("v-fgt"),Ct=Symbol.for("v-txt"),de=Symbol.for("v-cmt"),Qt=Symbol.for("v-stc"),Zt=[];let Me=null;function jr(e=!1){Zt.push(Me=e?null:[])}function na(){Zt.pop(),Me=Zt[Zt.length-1]||null}let on=1;function Un(e,t=!1){on+=e,e<0&&Me&&t&&(Me.hasOnce=!0)}function No(e){return e.dynamicChildren=on>0?Me||It:null,na(),on>0&&Me&&Me.push(e),e}function pf(e,t,n,r,s,i){return No(Do(e,t,n,r,s,i,!0))}function Vr(e,t,n,r,s){return No(ue(e,t,n,r,s,!0))}function ln(e){return e?e.__v_isVNode===!0:!1}function _t(e,t){return e.type===t.type&&e.key===t.key}const Fo=({key:e})=>e??null,Pn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ce(e)||ae(e)||X(e)?{i:pe,r:e,k:t,f:!!n}:e:null);function Do(e,t=null,n=null,r=0,s=null,i=e===Ee?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Fo(t),ref:t&&Pn(t),scopeId:Ji,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:pe};return l?(us(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=ce(n)?8:16),on>0&&!o&&Me&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Me.push(c),c}const ue=ra;function ra(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===uo)&&(e=de),ln(e)){const l=ft(e,t,!0);return n&&us(l,n),on>0&&!i&&Me&&(l.shapeFlag&6?Me[Me.indexOf(e)]=l:Me.push(l)),l.patchFlag=-2,l}if(ha(e)&&(e=e.__vccOpts),t){t=sa(t);let{class:l,style:c}=t;l&&!ce(l)&&(t.class=zr(l)),ee(c)&&(Qn(c)&&!G(c)&&(c=fe({},c)),t.style=Jr(c))}const o=ce(e)?1:Lo(e)?128:eo(e)?64:ee(e)?4:X(e)?2:0;return Do(e,t,n,r,s,o,i,!0)}function sa(e){return e?Qn(e)||So(e)?fe({},e):e:null}function ft(e,t,n=!1,r=!1){const{props:s,ref:i,patchFlag:o,children:l,transition:c}=e,u=t?ia(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Fo(u),ref:t&&t.ref?n&&i?G(i)?i.concat(Pn(t)):[i,Pn(t)]:Pn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ee?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ft(e.ssContent),ssFallback:e.ssFallback&&ft(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&sn(a,c.clone(a)),a}function Ho(e=" ",t=0){return ue(Ct,null,e,t)}function gf(e,t){const n=ue(Qt,null,e);return n.staticCount=t,n}function mf(e="",t=!1){return t?(jr(),Vr(de,null,e)):ue(de,null,e)}function Ie(e){return e==null||typeof e=="boolean"?ue(de):G(e)?ue(Ee,null,e.slice()):ln(e)?Qe(e):ue(Ct,null,String(e))}function Qe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ft(e)}function us(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(G(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),us(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!So(t)?t._ctx=pe:s===3&&pe&&(pe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else X(t)?(t={default:t,_ctx:pe},n=32):(t=String(t),r&64?(n=16,t=[Ho(t)]):n=8);e.children=t,e.shapeFlag|=n}function ia(...e){const t={};for(let n=0;n he||pe;let Wn,kr;{const e=Gn(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};Wn=t("__VUE_INSTANCE_SETTERS__",n=>he=n),kr=t("__VUE_SSR_SETTERS__",n=>Vt=n)}const pn=e=>{const t=he;return Wn(e),e.scope.on(),()=>{e.scope.off(),Wn(t)}},Us=()=>{he&&he.scope.off(),Wn(null)};function $o(e){return e.vnode.shapeFlag&4}let Vt=!1;function aa(e,t=!1,n=!1){t&&kr(t);const{props:r,children:s}=e.vnode,i=$o(e);Gc(e,r,i,t),zc(e,s,n||t);const o=i?ua(e,t):void 0;return t&&kr(!1),o}function ua(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Lc);const{setup:r}=n;if(r){tt();const s=e.setupContext=r.length>1?Vo(e):null,i=pn(e),o=fn(r,e,0,[e.props,s]),l=Si(o);if(nt(),i(),(l||e.sp)&&!Tt(e)&&os(e),l){if(o.then(Us,Us),t)return o.then(c=>{Ws(e,c)}).catch(c=>{dn(c,e,0)});e.asyncDep=o}else Ws(e,o)}else jo(e)}function Ws(e,t,n){X(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ee(t)&&(e.setupState=qi(t)),jo(e)}function jo(e,t,n){const r=e.type;e.render||(e.render=r.render||Ge);{const s=pn(e);tt();try{Nc(e)}finally{nt(),s()}}}const fa={get(e,t){return be(e,"get",""),e[t]}};function Vo(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,fa),slots:e.slots,emit:e.emit,expose:t}}function ir(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(qi(Rn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in zt)return zt[n](e)},has(t,n){return n in t||n in zt}})):e.proxy}function da(e,t=!0){return X(e)?e.displayName||e.name:e.name||t&&e.__name}function ha(e){return X(e)&&"__vccOpts"in e}const oe=(e,t)=>nc(e,t,Vt);function Ur(e,t,n){try{Un(-1);const r=arguments.length;return r===2?ee(t)&&!G(t)?ln(t)?ue(e,null,[t]):ue(e,t):ue(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ln(n)&&(n=[n]),ue(e,t,n))}finally{Un(1)}}const pa="3.5.29";let Wr;const Bs=typeof window<"u"&&window.trustedTypes;if(Bs)try{Wr=Bs.createPolicy("vue",{createHTML:e=>e})}catch{}const ko=Wr?e=>Wr.createHTML(e):e=>e,ga="http://www.w3.org/2000/svg",ma="http://www.w3.org/1998/Math/MathML",ze=typeof document<"u"?document:null,Ks=ze&&ze.createElement("template"),va={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ze.createElementNS(ga,e):t==="mathml"?ze.createElementNS(ma,e):n?ze.createElement(e,{is:n}):ze.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ze.createTextNode(e),createComment:e=>ze.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ze.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{Ks.innerHTML=ko(r==="svg"?``:r==="mathml"?``:e);const l=Ks.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},it="transition",qt="animation",cn=Symbol("_vtc"),Uo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ya=fe({},no,Uo),ba=e=>(e.displayName="Transition",e.props=ya,e),vf=ba((e,{slots:t})=>Ur(mc,_a(e),t)),vt=(e,t=[])=>{G(e)?e.forEach(n=>n(...t)):e&&e(...t)},qs=e=>e?G(e)?e.some(t=>t.length>1):e.length>1:!1;function _a(e){const t={};for(const E in e)E in Uo||(t[E]=e[E]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:a=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,w=wa(s),b=w&&w[0],F=w&&w[1],{onBeforeEnter:I,onEnter:N,onEnterCancelled:p,onLeave:g,onLeaveCancelled:M,onBeforeAppear:j=I,onAppear:k=N,onAppearCancelled:K=p}=t,_=(E,U,H,B)=>{E._enterCancelled=B,yt(E,U?a:l),yt(E,U?u:o),H&&H()},A=(E,U)=>{E._isLeaving=!1,yt(E,d),yt(E,v),yt(E,m),U&&U()},$=E=>(U,H)=>{const B=E?k:N,P=()=>_(U,E,H);vt(B,[U,P]),Gs(()=>{yt(U,E?c:i),Je(U,E?a:l),qs(B)||Xs(U,r,b,P)})};return fe(t,{onBeforeEnter(E){vt(I,[E]),Je(E,i),Je(E,o)},onBeforeAppear(E){vt(j,[E]),Je(E,c),Je(E,u)},onEnter:$(!1),onAppear:$(!0),onLeave(E,U){E._isLeaving=!0;const H=()=>A(E,U);Je(E,d),E._enterCancelled?(Je(E,m),zs(E)):(zs(E),Je(E,m)),Gs(()=>{E._isLeaving&&(yt(E,d),Je(E,v),qs(g)||Xs(E,r,F,H))}),vt(g,[E,H])},onEnterCancelled(E){_(E,!1,void 0,!0),vt(p,[E])},onAppearCancelled(E){_(E,!0,void 0,!0),vt(K,[E])},onLeaveCancelled(E){A(E),vt(M,[E])}})}function wa(e){if(e==null)return null;if(ee(e))return[br(e.enter),br(e.leave)];{const t=br(e);return[t,t]}}function br(e){return ml(e)}function Je(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[cn]||(e[cn]=new Set)).add(t)}function yt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[cn];n&&(n.delete(t),n.size||(e[cn]=void 0))}function Gs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Sa=0;function Xs(e,t,n,r){const s=e._endId=++Sa,i=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=Ea(e,t);if(!o)return r();const u=o+"end";let a=0;const d=()=>{e.removeEventListener(u,m),i()},m=v=>{v.target===e&&++a>=c&&d()};setTimeout(()=>{a (n[w]||"").split(", "),s=r(`${it}Delay`),i=r(`${it}Duration`),o=Ys(s,i),l=r(`${qt}Delay`),c=r(`${qt}Duration`),u=Ys(l,c);let a=null,d=0,m=0;t===it?o>0&&(a=it,d=o,m=i.length):t===qt?u>0&&(a=qt,d=u,m=c.length):(d=Math.max(o,u),a=d>0?o>u?it:qt:null,m=a?a===it?i.length:c.length:0);const v=a===it&&/\b(?:transform|all)(?:,|$)/.test(r(`${it}Property`).toString());return{type:a,timeout:d,propCount:m,hasTransform:v}}function Ys(e,t){for(;e.length Js(n)+Js(e[r])))}function Js(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function zs(e){return(e?e.ownerDocument:document).body.offsetHeight}function Ta(e,t,n){const r=e[cn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Qs=Symbol("_vod"),xa=Symbol("_vsh"),Ca=Symbol(""),Aa=/(?:^|;)\s*display\s*:/;function Ma(e,t,n){const r=e.style,s=ce(n);let i=!1;if(n&&!s){if(t)if(ce(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Ln(r,l,"")}else for(const o in t)n[o]==null&&Ln(r,o,"");for(const o in n)o==="display"&&(i=!0),Ln(r,o,n[o])}else if(s){if(t!==n){const o=r[Ca];o&&(n+=";"+o),r.cssText=n,i=Aa.test(n)}}else t&&e.removeAttribute("style");Qs in e&&(e[Qs]=i?r.display:"",e[xa]&&(r.display="none"))}const Zs=/\s*!important$/;function Ln(e,t,n){if(G(n))n.forEach(r=>Ln(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Ra(e,t);Zs.test(n)?e.setProperty(ht(r),n.replace(Zs,""),"important"):e[r]=n}}const ei=["Webkit","Moz","ms"],_r={};function Ra(e,t){const n=_r[t];if(n)return n;let r=Ne(t);if(r!=="filter"&&r in e)return _r[t]=r;r=qn(r);for(let s=0;s wr||(Ia.then(()=>wr=0),wr=Date.now());function Fa(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Ve(Da(r,n.value),t,5,[r])};return n.value=e,n.attached=Na(),n}function Da(e,t){if(G(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const oi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ha=(e,t,n,r,s,i)=>{const o=s==="svg";t==="class"?Ta(e,r,o):t==="style"?Ma(e,n,r):an(t)?Gr(t)||Pa(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):$a(e,t,r,o))?(ri(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ni(e,t,r,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ce(r))?ri(e,Ne(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ni(e,t,r,o))};function $a(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&oi(t)&&X(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return oi(t)&&ce(n)?!1:t in e}const li=e=>{const t=e.props["onUpdate:modelValue"]||!1;return G(t)?n=>Mn(t,n):t};function ja(e){e.target.composing=!0}function ci(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Sr=Symbol("_assign");function ai(e,t,n){return t&&(e=e.trim()),n&&(e=Yr(e)),e}const yf={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Sr]=li(s);const i=r||s.props&&s.props.type==="number";Pt(e,t?"change":"input",o=>{o.target.composing||e[Sr](ai(e.value,n,i))}),(n||i)&&Pt(e,"change",()=>{e.value=ai(e.value,n,i)}),t||(Pt(e,"compositionstart",ja),Pt(e,"compositionend",ci),Pt(e,"change",ci))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:i}},o){if(e[Sr]=li(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?Yr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Va=["ctrl","shift","alt","meta"],ka={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,t)=>Va.some(n=>e[`${n}Key`]&&!t.includes(n))},bf=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...i)=>{for(let o=0;o {const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(s=>{if(!("key"in s))return;const i=ht(s.key);if(t.some(o=>o===i||Ua[o]===i))return e(s)}))},Wo=fe({patchProp:Ha},va);let en,ui=!1;function Wa(){return en||(en=Zc(Wo))}function Ba(){return en=ui?en:ea(Wo),ui=!0,en}const wf=((...e)=>{const t=Wa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ko(r);if(!s)return;const i=t._component;!X(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,Bo(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t}),Sf=((...e)=>{const t=Ba().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ko(r);if(s)return n(s,!0,Bo(s))},t});function Bo(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ko(e){return ce(e)?document.querySelector(e):e}const Ef=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ka=window.__VP_SITE_DATA__;function qo(e,t){return Zr()?(Cl(e,t),!0):!1}const Er=new WeakMap,qa=(...e)=>{var t;const n=e[0],r=(t=pt())===null||t===void 0?void 0:t.proxy,s=r??Zr();if(s==null&&!zi())throw new Error("injectLocal must be called in setup");return s&&Er.has(s)&&n in Er.get(s)?Er.get(s)[n]:Et(...e)},Go=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Ga=e=>e!=null,Xa=Object.prototype.toString,Ya=e=>Xa.call(e)==="[object Object]",dt=()=>{},fi=Ja();function Ja(){var e,t,n;return Go&&!!(!((e=window)===null||e===void 0||(e=e.navigator)===null||e===void 0)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)===null||t===void 0||(t=t.navigator)===null||t===void 0?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test((n=window)===null||n===void 0?void 0:n.navigator.userAgent))}function fs(...e){if(e.length!==1)return Zl(...e);const t=e[0];return typeof t=="function"?$t(Jl(()=>({get:t,set:dt}))):He(t)}function ds(e,t){function n(...r){return new Promise((s,i)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(i)})}return n}const Xo=e=>e();function Yo(e,t={}){let n,r,s=dt;const i=c=>{clearTimeout(c),s(),s=dt};let o;return c=>{const u=le(e),a=le(t.maxWait);return n&&i(n),u<=0||a!==void 0&&a<=0?(r&&(i(r),r=void 0),Promise.resolve(c())):new Promise((d,m)=>{s=t.rejectOnCancel?m:d,o=c,a&&!r&&(r=setTimeout(()=>{n&&i(n),r=void 0,d(o())},a)),n=setTimeout(()=>{r&&i(r),r=void 0,d(c())},u)})}}function za(...e){let t=0,n,r=!0,s=dt,i,o,l,c,u;!ae(e[0])&&typeof e[0]=="object"?{delay:o,trailing:l=!0,leading:c=!0,rejectOnCancel:u=!1}=e[0]:[o,l=!0,c=!0,u=!1]=e;const a=()=>{n&&(clearTimeout(n),n=void 0,s(),s=dt)};return m=>{const v=le(o),w=Date.now()-t,b=()=>i=m();return a(),v<=0?(t=Date.now(),b()):(w>v?(t=Date.now(),(c||!r)&&b()):l&&(i=new Promise((F,I)=>{s=u?I:F,n=setTimeout(()=>{t=Date.now(),r=!0,F(b()),a()},Math.max(0,v-w))})),!c&&!n&&(n=setTimeout(()=>r=!0,v)),r=!1,i)}}function Qa(e=Xo,t={}){const{initialState:n="active"}=t,r=fs(n==="active");function s(){r.value=!1}function i(){r.value=!0}return{isActive:$t(r),pause:s,resume:i,eventFilter:(...l)=>{r.value&&e(...l)}}}function di(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function In(e){return Array.isArray(e)?e:[e]}function Jo(e){return pt()}function Za(e,t=200,n={}){return ds(Yo(t,n),e)}function eu(e,t=200,n=!1,r=!0,s=!1){return ds(za(t,n,r,s),e)}function zo(e,t,n={}){const{eventFilter:r=Xo,...s}=n;return Oe(e,ds(r,t),s)}function tu(e,t,n={}){const{eventFilter:r,initialState:s="active",...i}=n,{eventFilter:o,pause:l,resume:c,isActive:u}=Qa(r,{initialState:s});return{stop:zo(e,t,{...i,eventFilter:o}),pause:l,resume:c,isActive:u}}function or(e,t=!0,n){Jo()?kt(e,n):t?e():er(e)}function nu(e,t){Jo()&&rr(e,t)}function Tf(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...i}=n;return zo(e,t,{...i,eventFilter:Yo(r,{maxWait:s})})}function ru(e,t,n){return Oe(e,t,{...n,immediate:!0})}function xf(e,t,n){var r;let s;ae(n)?s={evaluating:n}:s=n||{};const{lazy:i=!1,flush:o="sync",evaluating:l=void 0,shallow:c=!0,onError:u=(r=globalThis.reportError)!==null&&r!==void 0?r:dt}=s,a=_e(!i),d=c?_e(t):He(t);let m=0;return ss(async v=>{if(!a.value)return;m++;const w=m;let b=!1;l&&Promise.resolve().then(()=>{l.value=!0});try{const F=await e(I=>{v(()=>{l&&(l.value=!1),b||I()})});w===m&&(d.value=F)}catch(F){u(F)}finally{l&&w===m&&(l.value=!1),b=!0}},{flush:o}),i?oe(()=>(a.value=!0,d.value)):d}const Te=Go?window:void 0;function lr(e){var t;const n=le(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function Xe(...e){const t=(r,s,i,o)=>(r.addEventListener(s,i,o),()=>r.removeEventListener(s,i,o)),n=oe(()=>{const r=In(le(e[0])).filter(s=>s!=null);return r.every(s=>typeof s!="string")?r:void 0});return ru(()=>{var r,s;return[(r=(s=n.value)===null||s===void 0?void 0:s.map(i=>lr(i)))!==null&&r!==void 0?r:[Te].filter(i=>i!=null),In(le(n.value?e[1]:e[0])),In(Zn(n.value?e[2]:e[1])),le(n.value?e[3]:e[2])]},([r,s,i,o],l,c)=>{if(!r?.length||!s?.length||!i?.length)return;const u=Ya(o)?{...o}:o,a=r.flatMap(d=>s.flatMap(m=>i.map(v=>t(d,m,v,u))));c(()=>{a.forEach(d=>d())})},{flush:"post"})}function su(){const e=_e(!1),t=pt();return t&&kt(()=>{e.value=!0},t),e}function hs(e){const t=su();return oe(()=>(t.value,!!e()))}function iu(e,t,n={}){const{window:r=Te,...s}=n;let i;const o=hs(()=>r&&"MutationObserver"in r),l=()=>{i&&(i.disconnect(),i=void 0)},c=Oe(oe(()=>{const d=In(le(e)).map(lr).filter(Ga);return new Set(d)}),d=>{l(),o.value&&d.size&&(i=new MutationObserver(t),d.forEach(m=>i.observe(m,s)))},{immediate:!0,flush:"post"}),u=()=>i?.takeRecords(),a=()=>{c(),l()};return qo(a),{isSupported:o,stop:a,takeRecords:u}}function ou(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Cf(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Te,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=r,c=ou(t);return Xe(s,i,a=>{a.repeat&&le(l)||c(a)&&n(a)},o)}const lu=Symbol("vueuse-ssr-width");function cu(){const e=zi()?qa(lu,null):null;return typeof e=="number"?e:void 0}function Qo(e,t={}){const{window:n=Te,ssrWidth:r=cu()}=t,s=hs(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),i=_e(typeof r=="number"),o=_e(),l=_e(!1),c=u=>{l.value=u.matches};return ss(()=>{if(i.value){i.value=!s.value,l.value=le(e).split(",").some(u=>{const a=u.includes("not all"),d=u.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),m=u.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let v=!!(d||m);return d&&v&&(v=r>=di(d[1])),m&&v&&(v=r<=di(m[1])),a?!v:v});return}s.value&&(o.value=n.matchMedia(le(e)),l.value=o.value.matches)}),Xe(o,"change",c,{passive:!0}),oe(()=>l.value)}const En=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Tn="__vueuse_ssr_handlers__",au=uu();function uu(){return Tn in En||(En[Tn]=En[Tn]||{}),En[Tn]}function Zo(e,t){return au[e]||t}function el(e){return Qo("(prefers-color-scheme: dark)",e)}function fu(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const du={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},hi="vueuse-storage";function ps(e,t,n,r={}){var s;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:a,window:d=Te,eventFilter:m,onError:v=H=>{console.error(H)},initOnMounted:w}=r,b=(a?_e:He)(typeof t=="function"?t():t),F=oe(()=>le(e));if(!n)try{n=Zo("getDefaultStorage",()=>Te?.localStorage)()}catch(H){v(H)}if(!n)return b;const I=le(t),N=fu(I),p=(s=r.serializer)!==null&&s!==void 0?s:du[N],{pause:g,resume:M}=tu(b,H=>A(H),{flush:i,deep:o,eventFilter:m});Oe(F,()=>E(),{flush:i});let j=!1;const k=H=>{w&&!j||E(H)},K=H=>{w&&!j||U(H)};d&&l&&(n instanceof Storage?Xe(d,"storage",k,{passive:!0}):Xe(d,hi,K)),w?or(()=>{j=!0,E()}):E();function _(H,B){if(d){const P={key:F.value,oldValue:H,newValue:B,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",P):new CustomEvent(hi,{detail:P}))}}function A(H){try{const B=n.getItem(F.value);if(H==null)_(B,null),n.removeItem(F.value);else{const P=p.write(H);B!==P&&(n.setItem(F.value,P),_(B,P))}}catch(B){v(B)}}function $(H){const B=H?H.newValue:n.getItem(F.value);if(B==null)return c&&I!=null&&n.setItem(F.value,p.write(I)),I;if(!H&&u){const P=p.read(B);return typeof u=="function"?u(P,I):N==="object"&&!Array.isArray(P)?{...I,...P}:P}else return typeof B!="string"?B:p.read(B)}function E(H){if(!(H&&H.storageArea!==n)){if(H&&H.key==null){b.value=I;return}if(!(H&&H.key!==F.value)){g();try{const B=p.write(b.value);(H===void 0||H?.newValue!==B)&&(b.value=$(H))}catch(B){v(B)}finally{H?er(M):M()}}}}function U(H){E(H.detail)}return b}const hu="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function pu(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Te,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:a=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},m=el({window:s}),v=oe(()=>m.value?"dark":"light"),w=c||(o==null?fs(r):ps(o,r,i,{window:s,listenToStorageChanges:l})),b=oe(()=>w.value==="auto"?v.value:w.value),F=Zo("updateHTMLAttrs",(g,M,j)=>{const k=typeof g=="string"?s?.document.querySelector(g):lr(g);if(!k)return;const K=new Set,_=new Set;let A=null;if(M==="class"){const E=j.split(/\s/g);Object.values(d).flatMap(U=>(U||"").split(/\s/g)).filter(Boolean).forEach(U=>{E.includes(U)?K.add(U):_.add(U)})}else A={key:M,value:j};if(K.size===0&&_.size===0&&A===null)return;let $;a&&($=s.document.createElement("style"),$.appendChild(document.createTextNode(hu)),s.document.head.appendChild($));for(const E of K)k.classList.add(E);for(const E of _)k.classList.remove(E);A&&k.setAttribute(A.key,A.value),a&&(s.getComputedStyle($).opacity,document.head.removeChild($))});function I(g){var M;F(t,n,(M=d[g])!==null&&M!==void 0?M:g)}function N(g){e.onChanged?e.onChanged(g,I):I(g)}Oe(b,N,{flush:"post",immediate:!0}),or(()=>N(b.value));const p=oe({get(){return u?w.value:b.value},set(g){w.value=g}});return Object.assign(p,{store:w,system:v,state:b})}function gu(e={}){const{valueDark:t="dark",valueLight:n=""}=e,r=pu({...e,onChanged:(i,o)=>{var l;e.onChanged?(l=e.onChanged)===null||l===void 0||l.call(e,i==="dark",o,i):o(i)},modes:{dark:t,light:n}}),s=oe(()=>r.system.value);return oe({get(){return r.value==="dark"},set(i){const o=i?"dark":"light";s.value===o?r.value="auto":r.value=o}})}function Tr(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}const pi=1;function mu(e,t={}){const{throttle:n=0,idle:r=200,onStop:s=dt,onScroll:i=dt,offset:o={left:0,right:0,top:0,bottom:0},observe:l={mutation:!1},eventListenerOptions:c={capture:!1,passive:!0},behavior:u="auto",window:a=Te,onError:d=_=>{console.error(_)}}=t,m=typeof l=="boolean"?{mutation:l}:l,v=_e(0),w=_e(0),b=oe({get(){return v.value},set(_){I(_,void 0)}}),F=oe({get(){return w.value},set(_){I(void 0,_)}});function I(_,A){var $,E,U,H;if(!a)return;const B=le(e);if(!B)return;($=B instanceof Document?a.document.body:B)===null||$===void 0||$.scrollTo({top:(E=le(A))!==null&&E!==void 0?E:F.value,left:(U=le(_))!==null&&U!==void 0?U:b.value,behavior:le(u)});const P=(B==null||(H=B.document)===null||H===void 0?void 0:H.documentElement)||B?.documentElement||B;b!=null&&(v.value=P.scrollLeft),F!=null&&(w.value=P.scrollTop)}const N=_e(!1),p=Ht({left:!0,right:!1,top:!0,bottom:!1}),g=Ht({left:!1,right:!1,top:!1,bottom:!1}),M=_=>{N.value&&(N.value=!1,g.left=!1,g.right=!1,g.top=!1,g.bottom=!1,s(_))},j=Za(M,n+r),k=_=>{var A;if(!a)return;const $=(_==null||(A=_.document)===null||A===void 0?void 0:A.documentElement)||_?.documentElement||lr(_),{display:E,flexDirection:U,direction:H}=a.getComputedStyle($),B=H==="rtl"?-1:1,P=$.scrollLeft;g.left=P v.value;const J=Math.abs(P*B)<=(o.left||0),V=Math.abs(P*B)+$.clientWidth>=$.scrollWidth-(o.right||0)-pi;E==="flex"&&U==="row-reverse"?(p.left=V,p.right=J):(p.left=J,p.right=V),v.value=P;let Q=$.scrollTop;_===a.document&&!Q&&(Q=a.document.body.scrollTop),g.top=Q w.value;const gt=Math.abs(Q)<=(o.top||0),ke=Math.abs(Q)+$.clientHeight>=$.scrollHeight-(o.bottom||0)-pi;E==="flex"&&U==="column-reverse"?(p.top=ke,p.bottom=gt):(p.top=gt,p.bottom=ke),w.value=Q},K=_=>{var A;a&&(k((A=_.target.documentElement)!==null&&A!==void 0?A:_.target),N.value=!0,j(_),i(_))};return Xe(e,"scroll",n?eu(K,n,!0,!1):K,c),or(()=>{try{const _=le(e);if(!_)return;k(_)}catch(_){d(_)}}),m?.mutation&&e!=null&&e!==a&&e!==document&&iu(e,()=>{const _=le(e);_&&k(_)},{attributes:!0,childList:!0,subtree:!0}),Xe(e,"scrollend",M,c),{x:b,y:F,isScrolling:N,arrivedState:p,directions:g,measure(){const _=le(e);a&&_&&k(_)}}}function Af(e,t,n={}){const{window:r=Te}=n;return ps(e,t,r?.localStorage,n)}function Mf(e={}){const{window:t=Te}=e,n=t?.navigator,r=hs(()=>n&&"language"in n),s=_e(n?.language);return Xe(t,"languagechange",()=>{n&&(s.value=n.language)},{passive:!0}),{isSupported:r,language:s}}function tl(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth 1?!0:(t.preventDefault&&t.preventDefault(),!1)}const xr=new WeakMap;function Rf(e,t=!1){const n=_e(t);let r=null,s="";Oe(fs(e),l=>{const c=Tr(le(l));if(c){const u=c;if(xr.get(u)||xr.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(s=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=Tr(le(e));!l||n.value||(fi&&(r=Xe(l,"touchmove",c=>{vu(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=Tr(le(e));!l||!n.value||(fi&&r?.(),l.style.overflow=s,xr.delete(l),n.value=!1)};return qo(o),oe({get(){return n.value},set(l){l?i():o()}})}function Of(e,t,n={}){const{window:r=Te}=n;return ps(e,t,r?.sessionStorage,n)}function Pf(e={}){const{window:t=Te,...n}=e;return mu(t,n)}function Lf(e={}){const{window:t=Te,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=_e(n),c=_e(r),u=()=>{if(t)if(o==="outer")l.value=t.outerWidth,c.value=t.outerHeight;else if(o==="visual"&&t.visualViewport){const{width:d,height:m,scale:v}=t.visualViewport;l.value=Math.round(d*v),c.value=Math.round(m*v)}else i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};u(),or(u);const a={passive:!0};return Xe("resize",u,a),t&&o==="visual"&&t.visualViewport&&Xe(t.visualViewport,"resize",u,a),s&&Oe(Qo("(orientation: portrait)"),()=>u()),{width:l,height:c}}const yu={};var bu={};const nl=/^(?:[a-z]+:|\/\/)/i,_u="vitepress-theme-appearance",rl=Symbol("stack-view:unpack"),wu=/#.*$/,Su=/[?#].*$/,Eu=/(?:(^|\/)index)?\.(?:md|html)$/,ye=typeof document<"u",sl={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Tu(e,t,n=!1){if(t===void 0)return!1;if(e=gi(`/${e}`),n)return new RegExp(t).test(e);if(gi(t)!==e)return!1;const r=t.match(wu);return r?(ye?location.hash:"")===r[0]:!0}function gi(e){return decodeURI(e).replace(Su,"").replace(Eu,"$1")}function xu(e){return nl.test(e)}function Cu(e,t){return Object.keys(e?.locales||{}).find(n=>n!=="root"&&!xu(n)&&Tu(t,`^/${n}/`,!0))||"root"}function Au(e,t){const n=Cu(e,t),{label:r,link:s,...i}=e.locales[n]??{};Object.assign(i,{localeIndex:n});const o=Lu(e,t),l={head:ol(e.head??[],i.head??[],...o.map(c=>c.head??[]).reverse())};return gs(l,...o,i,e)}function il(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Mu(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Mu(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function ol(...e){const t=[],n=new Map;for(const r of e)for(const s of r){const[i,o]=s,l=Object.entries(o)[0];if(i!=="meta"||!l){t.push(s);continue}const c=`${l[0]}=${l[1]}`,u=n.get(c);u!=null?t[u]=s:(n.set(c,t.length),t.push(s))}return t}const Ru=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ou=/^[a-z]:/i;function mi(e){const t=Ou.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ru,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Cr=new Set;function Pu(e){if(Cr.size===0){const n=typeof process=="object"&&bu?.VITE_EXTRA_EXTENSIONS||yu?.VITE_EXTRA_EXTENSIONS||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>Cr.add(r))}const t=e.split(".").pop();return t==null||!Cr.has(t.toLowerCase())}function If(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function Lu({additionalConfig:e},t){if(e===void 0)return[];if(typeof e=="function")return e(t)??[];const n=[],r=t.split("/").slice(0,-1);for(;r.length;){const s=`/${r.join("/")}/`;n.push(e[s]),r.pop()}return n.push(e["/"]),n.filter(s=>s!==void 0)}function gs(...e){const t=e.filter(s=>Iu(s));if(t.length<=1)return e[0];const n=new Set(t.flatMap(s=>Reflect.ownKeys(s))),r=[...n];return new Proxy({},{get(s,i){return i===rl?t:gs(...t.map(o=>o[i]).filter(o=>o!==void 0))},set(){throw new Error("StackView is read-only and cannot be mutated.")},has(s,i){return n.has(i)},ownKeys(){return r},getOwnPropertyDescriptor(s,i){for(const o of t){const l=Object.getOwnPropertyDescriptor(o,i);if(l)return l}}})}gs.unpack=function(e){return e?.[rl]};function Iu(e){return Object.prototype.toString.call(e)==="[object Object]"}const Nu=["shellscript","shell","bash","sh","zsh"];function Fu(e){return Nu.includes(e)}const Du=Symbol(),ct=_e($t(Ka));function Nf(e){const t=oe(()=>Au(ct.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?He(!0):n==="force-auto"?el():n?gu({storageKey:_u,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):He(!1),s=He(ye?location.hash:"");return ye&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Oe(()=>e.data,()=>{s.value=ye?location.hash:""}),{site:t,theme:oe(()=>t.value.themeConfig),page:oe(()=>e.data),frontmatter:oe(()=>e.data.frontmatter),params:oe(()=>e.data.params),lang:oe(()=>t.value.lang),dir:oe(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:oe(()=>t.value.localeIndex||"root"),title:oe(()=>il(t.value,e.data)),description:oe(()=>e.data.description||t.value.description),isDark:r,hash:oe(()=>s.value)}}function Hu(){const e=Et(Du);if(!e)throw new Error("vitepress data not properly injected in app");return e}function $u(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function vi(e){return nl.test(e)||!e.startsWith("/")?e:$u(ct.value.base,e)}function ju(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ye){t=mi(t.slice(1).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`/assets/${t}.${r}.js`}else t=`./${mi(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Nn=[];function Ff(e){Nn.push(e),nu(()=>{Nn=Nn.filter(t=>t!==e)})}function Vu(){let e=ct.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=yi(e,n);else if(Array.isArray(e))for(const r of e){const s=yi(r,n);if(s){t=s;break}}return t}function yi(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const ku=Symbol(),ll="http://a.com",Uu=()=>({path:"/",hash:"",query:"",component:null,data:sl});function Df(e,t){const n=Ht(Uu()),r={route:n,async go(l,c){l=Kr(l),await r.onBeforeRouteChange?.(l)!==!1&&((!ye||await Bu(l,c))&&await i(l),o(),await r.onAfterRouteChange?.(l))}};let s=null;async function i(l,c=0,u=!1){if(await r.onBeforePageLoad?.(l)===!1)return;const a=new URL(l,ll),d=s=a.pathname;try{let m=await e(d);if(!m)throw new Error(`Page not found: ${d}`);if(s===d){s=null;const{default:v,__pageData:w}=m;if(!v)throw new Error(`Invalid route component: ${v}`);await r.onAfterPageLoad?.(l),n.path=ye?d:vi(d),n.component=Rn(v),n.data=Rn(w),o(a),ye&&er(()=>{let b=ct.value.base+w.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");return!ct.value.cleanUrls&&!b.endsWith("/")&&(b+=".html"),b!==a.pathname&&(a.pathname=b,l=b+a.search+a.hash,history.replaceState({},"",l)),Br(a.hash,!1,c)})}}catch(m){if(!/fetch|Page not found/.test(m.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(m),!u)try{const v=await fetch(ct.value.base+"hashmap.json");window.__VP_HASH_MAP__=await v.json(),await i(l,c,!0);return}catch{}if(s===d){s=null,n.path=ye?d:vi(d),n.component=t?Rn(t):null;const v=ye?n.path.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").slice(ct.value.base.length):"404.md";n.data={...sl,relativePath:v},o(a)}}}function o(l=ye?location:{search:"",hash:""}){n.query=l.search,n.hash=decodeURIComponent(l.hash)}return ye&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const u=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(u==null)return;const{href:a,origin:d,pathname:m}=new URL(u,c.baseURI),v=new URL(location.href);d===v.origin&&Pu(m)&&(l.preventDefault(),r.go(a,{smoothScroll:c.classList.contains("header-anchor")}))},{capture:!0}),window.addEventListener("popstate",async l=>{if(l.state===null)return;const c=Kr(location.href);await i(c,l.state&&l.state.scrollPosition||0),o(),await r.onAfterRouteChange?.(c)}),window.addEventListener("hashchange",l=>{l.preventDefault(),o()})),r}function Wu(){const e=Et(ku);if(!e)throw new Error("useRouter() is called without provider.");return e}function cl(){return Wu().route}function Br(e,t=!1,n=0){if(!e||n){window.scrollTo(0,n);return}let r=null;try{r=document.getElementById(decodeURIComponent(e).slice(1))}catch(l){console.warn(l)}if(!r)return;const s=window.scrollY+r.getBoundingClientRect().top-Vu()+Number.parseInt(window.getComputedStyle(r).paddingTop,10)||0,i=window.matchMedia("(prefers-reduced-motion)").matches?"instant":t&&Math.abs(s-window.scrollY)<=window.innerHeight?"smooth":"auto";requestAnimationFrame(()=>{if(window.scrollTo({left:0,top:s,behavior:i}),r.focus({preventScroll:!0}),document.activeElement===r||r.hasAttribute("tabindex"))return;const l=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",l)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",l),r.focus({preventScroll:!0}),document.activeElement!==r&&l()})}function Kr(e){const t=new URL(e,ll);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ct.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}async function Bu(e,{smoothScroll:t=!1,initialLoad:n=!1,replace:r=!1}={}){const s=Kr(location.href),i=new URL(e,location.origin),o=new URL(s,location.origin);if(e===s){if(!n)return Br(i.hash,t),!1}else if(r?history.replaceState({},"",e):(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",e)),i.pathname===o.pathname)return i.hash!==o.hash&&(window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:o.href,newURL:i.href})),Br(i.hash,t)),!1;return!0}const xn=()=>Nn.forEach(e=>e()),Hf=is({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=cl(),{frontmatter:n,site:r}=Hu();return Oe(n,xn,{deep:!0,flush:"post"}),()=>Ur(e.as,r.value.contentProps??{style:{position:"relative"}},[t.component?Ur(t.component,{onVnodeMounted:xn,onVnodeUpdated:xn,onVnodeUnmounted:xn}):"404 Page Not Found"])}}),Ku="modulepreload",qu=function(e){return"/"+e},bi={},$f=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(a=>Promise.resolve(a).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");s=c(n.map(u=>{if(u=qu(u),u in bi)return;bi[u]=!0;const a=u.endsWith(".css"),d=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${d}`))return;const m=document.createElement("link");if(m.rel=a?"stylesheet":Ku,a||(m.as="script"),m.crossOrigin="",m.href=u,l&&m.setAttribute("nonce",l),document.head.appendChild(m),a)return new Promise((v,w)=>{m.addEventListener("load",v),m.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},jf=is({setup(e,{slots:t}){const n=He(!1);return kt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Vf(){ye&&window.addEventListener("click",e=>{const t=e.target;if(t.matches(".vp-code-group input")){const n=t.parentElement?.parentElement;if(!n)return;const r=Array.from(n.querySelectorAll("input")).indexOf(t);if(r<0)return;const s=n.querySelector(".blocks");if(!s)return;const i=Array.from(s.children).find(c=>c.classList.contains("active"));if(!i)return;const o=s.children[r];if(!o||i===o)return;i.classList.remove("active"),Gu(o),n?.querySelector(`label[for="${t.id}"]`)?.scrollIntoView({block:"nearest"})}})}function Gu(e){e.classList.add("active"),window.dispatchEvent(new CustomEvent("vitepress:codeGroupTabActivate",{detail:e}))}const Xu=[".vp-copy-ignore",".diff.remove"].join(", ");function kf(){if(ye){const e=new WeakMap;window.addEventListener("click",t=>{const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,s=n.nextElementSibling?.nextElementSibling;if(!r||!s)return;const i=s.cloneNode(!0);i.querySelectorAll(Xu).forEach(c=>c.remove()),i.innerHTML=i.innerHTML.replace(/\n+/g,` -`);let o=i.textContent||"";const l=/language-(\w+)/.exec(r.className)?.[1]||"";Fu(l)&&(o=o.replace(/^ *(\$|>) /gm,"").trim()),Yu(o).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function Yu(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function Uf(e,t){let n=!0,r=[];const s=i=>{if(n){n=!1,i.forEach(l=>{const c=Ar(l);for(const u of document.head.children)if(u.isEqualNode(c)){r.push(u);return}});return}const o=i.map(Ar);r.forEach((l,c)=>{const u=o.findIndex(a=>a?.isEqualNode(l??null));u!==-1?delete o[u]:(l?.remove(),delete r[c])}),o.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...o].filter(Boolean)};ss(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=il(o,i);u!==document.title&&(document.title=u);const a=l||o.description;let d=document.querySelector("meta[name=description]");d?d.getAttribute("content")!==a&&d.setAttribute("content",a):Ar(["meta",{name:"description",content:a}]),s(ol(o.head,zu(c)))})}function Ar([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&t.async==null&&(r.async=!1),r}function Ju(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function zu(e){return e.filter(t=>!Ju(t))}const Mr=new Set,al=()=>document.createElement("link"),Qu=e=>{const t=al();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Zu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Cn;const ef=ye&&(Cn=al())&&Cn.relList&&Cn.relList.supports&&Cn.relList.supports("prefetch")?Qu:Zu;function Wf(){if(!ye||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Mr.has(c)){Mr.add(c);const u=ju(c);u&&ef(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Mr.add(l))})})};kt(r);const s=cl();Oe(()=>s.path,r),rr(()=>{n&&n.disconnect()})}export{Rf as $,rf as A,ye as B,_e as C,cl as D,tf as E,Ff as F,Ee as G,uf as H,cf as I,ue as J,af as K,nl as L,of as M,Mf as N,ia as O,Et as P,Jr as Q,Lf as R,Cf as S,vf as T,er as U,Pf as V,$t as W,Iu as X,lf as Y,$f as Z,Ef as _,Ho as a,ac as a0,df as a1,_f as a2,co as a3,bf as a4,hf as a5,Uf as a6,ku as a7,Nf as a8,Du as a9,Rn as aA,wf as aB,If as aC,Hf as aa,jf as ab,ct as ac,Df as ad,ju as ae,Sf as af,Wf as ag,kf as ah,Vf as ai,Ur as aj,gf as ak,In as al,le as am,lr as an,Ga as ao,qo as ap,xf as aq,Of as ar,Af as as,Tf as at,Wu as au,Xe as av,nf as aw,yf as ax,ae as ay,sf as az,Vr as b,pf as c,is as d,mf as e,Pu as f,vi as g,oe as h,xu as i,Do as j,Zn as k,Tu as l,Qo as m,zr as n,jr as o,kt as p,Ac as q,ff as r,rr as s,Tl as t,Hu as u,Vu as v,cc as w,ss as x,He as y,Oe as z}; diff --git a/dist/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 b/dist/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 deleted file mode 100644 index b6b603d..0000000 Binary files a/dist/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 b/dist/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 deleted file mode 100644 index def40a4..0000000 Binary files a/dist/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 b/dist/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 deleted file mode 100644 index e070c3d..0000000 Binary files a/dist/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 b/dist/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 deleted file mode 100644 index a3c16ca..0000000 Binary files a/dist/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 b/dist/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 deleted file mode 100644 index 2210a89..0000000 Binary files a/dist/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-italic-latin.C2AdPX0b.woff2 b/dist/docs/assets/inter-italic-latin.C2AdPX0b.woff2 deleted file mode 100644 index 790d62d..0000000 Binary files a/dist/docs/assets/inter-italic-latin.C2AdPX0b.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 b/dist/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 deleted file mode 100644 index 1eec077..0000000 Binary files a/dist/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 b/dist/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 deleted file mode 100644 index 2cfe615..0000000 Binary files a/dist/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 b/dist/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 deleted file mode 100644 index e3886dd..0000000 Binary files a/dist/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 b/dist/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 deleted file mode 100644 index 36d6748..0000000 Binary files a/dist/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-roman-greek.BBVDIX6e.woff2 b/dist/docs/assets/inter-roman-greek.BBVDIX6e.woff2 deleted file mode 100644 index 2bed1e8..0000000 Binary files a/dist/docs/assets/inter-roman-greek.BBVDIX6e.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 b/dist/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 deleted file mode 100644 index 9a8d1e2..0000000 Binary files a/dist/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-roman-latin.Di8DUHzh.woff2 b/dist/docs/assets/inter-roman-latin.Di8DUHzh.woff2 deleted file mode 100644 index 07d3c53..0000000 Binary files a/dist/docs/assets/inter-roman-latin.Di8DUHzh.woff2 and /dev/null differ diff --git a/dist/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 b/dist/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 deleted file mode 100644 index 57bdc22..0000000 Binary files a/dist/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 and /dev/null differ diff --git a/dist/docs/assets/style.Cfu23m_7.css b/dist/docs/assets/style.Cfu23m_7.css deleted file mode 100644 index 2c9e69d..0000000 --- a/dist/docs/assets/style.Cfu23m_7.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: #3c3c43;--vp-c-text-2: #67676c;--vp-c-text-3: #929295}.dark{--vp-c-text-1: #dfdfd6;--vp-c-text-2: #98989f;--vp-c-text-3: #6a6a71}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media(min-width:960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-2);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-2);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:lang(es),:lang(pt){--vp-code-copy-copied-text-content: "Copiado"}:lang(fa){--vp-code-copy-copied-text-content: "کپی شد"}:lang(ko){--vp-code-copy-copied-text-content: "복사됨"}:lang(ru){--vp-code-copy-copied-text-content: "Скопировано"}:lang(zh){--vp-code-copy-copied-text-content: "已复制"}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@layer __vitepress_base{@media(prefers-reduced-motion:reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 12H3m14 6H3M21 6H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-7-7l7 7l-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m9 18l6-6l-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z'/%3E%3C/g%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-7-7v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/g%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 3a6 6 0 0 0 9 9a9 9 0 1 1-9-9'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/g%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m5 8l6 6m-7 0l6-6l2-3M2 5h12M7 2h1m14 20l-5-10l-5 10m2-4h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2c-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m21 21l-4.34-4.34'/%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3C/g%3E%3C/svg%3E")}.vpi-sparkles{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'%3E%3Cpath d='M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4'/%3E%3Ccircle cx='4' cy='20' r='2'/%3E%3C/g%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7m-7 5h7m-7 6h7m-7 5h7'/%3E%3C/g%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zm2 4l6 6m0-6l-6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3Cpath d='m9 10l-5 5l5 5'/%3E%3C/g%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/g%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14l2 2l4-4'/%3E%3C/g%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .shiki span{color:var(--shiki-dark, inherit)}html:not(.dark) .shiki span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media(min-width:640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media(min-width:768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0!important;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group,.vp-doc .custom-block [class*=vp-code-block]{margin-top:8px}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc .custom-block .vp-code-group div[class*=language-],.vp-doc .custom-block [class*=vp-code-block] div[class*=language-]{margin-top:0!important}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media(min-width:640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media(max-width:639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto;text-align:left}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;white-space:nowrap;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge,.vp-doc h2>.VPBadge{margin:0 0 0 2px;vertical-align:middle}.vp-doc h2>.VPBadge{padding:0 8px}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;inset:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media(min-width:1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-829df670]{padding:64px 24px 96px;text-align:center}@media(min-width:768px){.NotFound[data-v-829df670]{padding:96px 32px 168px}}.code[data-v-829df670]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-829df670]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-829df670]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-829df670]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-829df670]{padding-top:20px}.link[data-v-829df670]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-829df670]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-1ce71065]{position:relative;z-index:1}.nested[data-v-1ce71065]{padding-right:16px;padding-left:16px}.outline-link[data-v-1ce71065]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-1ce71065]:hover,.outline-link.active[data-v-1ce71065]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-1ce71065]{padding-left:13px}.VPDocAsideOutline[data-v-60d5052e]{display:none}.VPDocAsideOutline.has-outline[data-v-60d5052e]{display:block}.content[data-v-60d5052e]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-60d5052e]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-60d5052e]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-3c637f39]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media(min-width:640px){.VPLastUpdated[data-v-3c637f39]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-e257564d]{margin-top:64px}.edit-info[data-v-e257564d]{padding-bottom:18px}@media(min-width:640px){.edit-info[data-v-e257564d]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-e257564d]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-e257564d]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-e257564d]{margin-right:8px}.prev-next[data-v-e257564d]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media(min-width:640px){.prev-next[data-v-e257564d]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-e257564d]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-e257564d]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-e257564d]{margin-left:auto;text-align:right}.desc[data-v-e257564d]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-e257564d]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-7011f0d8]{padding:32px 24px 96px;width:100%}@media(min-width:768px){.VPDoc[data-v-7011f0d8]{padding:48px 32px 128px}}@media(min-width:960px){.VPDoc[data-v-7011f0d8]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-7011f0d8]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-7011f0d8]{max-width:752px}}@media(min-width:1280px){.VPDoc .container[data-v-7011f0d8]{display:flex;justify-content:center}.VPDoc .aside[data-v-7011f0d8]{display:block}}@media(min-width:1440px){.VPDoc:not(.has-sidebar) .content[data-v-7011f0d8]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-7011f0d8]{max-width:1104px}}.container[data-v-7011f0d8]{margin:0 auto;width:100%}.aside[data-v-7011f0d8]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-7011f0d8]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-7011f0d8]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-7011f0d8]::-webkit-scrollbar{display:none}.aside-curtain[data-v-7011f0d8]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%);pointer-events:none}.aside-content[data-v-7011f0d8]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-7011f0d8]{position:relative;margin:0 auto;width:100%}@media(min-width:960px){.content[data-v-7011f0d8]{padding:0 32px 128px}}@media(min-width:1280px){.content[data-v-7011f0d8]{order:1;margin:0;min-width:640px}}.content-container[data-v-7011f0d8]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-7011f0d8]{max-width:688px}.VPButton[data-v-01bff58b]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-01bff58b]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-01bff58b]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-01bff58b]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-01bff58b]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-01bff58b]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-01bff58b]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-01bff58b]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-01bff58b]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-01bff58b]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-01bff58b]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-01bff58b]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-01bff58b]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-e394c869]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media(min-width:640px){.VPHero[data-v-e394c869]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media(min-width:960px){.VPHero[data-v-e394c869]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-e394c869]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media(min-width:960px){.container[data-v-e394c869]{flex-direction:row}}.main[data-v-e394c869]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-e394c869]{text-align:center}@media(min-width:960px){.VPHero.has-image .container[data-v-e394c869]{text-align:left}}@media(min-width:960px){.main[data-v-e394c869]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-e394c869]{max-width:592px}}.heading[data-v-e394c869]{display:flex;flex-direction:column}.name[data-v-e394c869],.text[data-v-e394c869]{width:fit-content;max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-e394c869],.VPHero.has-image .text[data-v-e394c869]{margin:0 auto}.name[data-v-e394c869]{color:var(--vp-home-hero-name-color)}.clip[data-v-e394c869]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media(min-width:640px){.name[data-v-e394c869],.text[data-v-e394c869]{max-width:576px;line-height:56px;font-size:48px}}@media(min-width:960px){.name[data-v-e394c869],.text[data-v-e394c869]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-e394c869],.VPHero.has-image .text[data-v-e394c869]{margin:0}}.tagline[data-v-e394c869]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-e394c869]{margin:0 auto}@media(min-width:640px){.tagline[data-v-e394c869]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media(min-width:960px){.tagline[data-v-e394c869]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-e394c869]{margin:0}}.actions[data-v-e394c869]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-e394c869]{justify-content:center}@media(min-width:640px){.actions[data-v-e394c869]{padding-top:32px}}@media(min-width:960px){.VPHero.has-image .actions[data-v-e394c869]{justify-content:flex-start}}.action[data-v-e394c869]{flex-shrink:0;padding:6px}.image[data-v-e394c869]{order:1;margin:-76px -24px -48px}@media(min-width:640px){.image[data-v-e394c869]{margin:-108px -24px -48px}}@media(min-width:960px){.image[data-v-e394c869]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-e394c869]{position:relative;margin:0 auto;width:320px;height:320px}@media(min-width:640px){.image-container[data-v-e394c869]{width:392px;height:392px}}@media(min-width:960px){.image-container[data-v-e394c869]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-e394c869]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media(min-width:640px){.image-bg[data-v-e394c869]{width:256px;height:256px}}@media(min-width:960px){.image-bg[data-v-e394c869]{width:320px;height:320px}}[data-v-e394c869] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;width:100%;height:100%;object-fit:contain;transform:translate(-50%,-50%)}@media(min-width:640px){[data-v-e394c869] .image-src{max-width:256px;max-height:256px}}@media(min-width:960px){[data-v-e394c869] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-5219619b]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-5219619b]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-5219619b]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-5219619b]>.VPImage{margin-bottom:20px}.icon[data-v-5219619b]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-5219619b]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-5219619b]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-5219619b]{padding-top:8px}.link-text-value[data-v-5219619b]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-5219619b]{margin-left:6px}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media(min-width:640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media(min-width:960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media(min-width:640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media(min-width:768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media(min-width:960px){.item.grid-4[data-v-a6181336]{width:25%}}.container[data-v-8e2d4988]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media(min-width:640px){.container[data-v-8e2d4988]{padding:0 48px}}@media(min-width:960px){.container[data-v-8e2d4988]{width:100%;padding:0 64px}}.vp-doc[data-v-8e2d4988] .VPHomeSponsors,.vp-doc[data-v-8e2d4988] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-8e2d4988] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-8e2d4988] .VPHomeSponsors a,.vp-doc[data-v-8e2d4988] .VPTeamPage a{text-decoration:none}.VPHome[data-v-8b561e3d]{margin-bottom:96px}@media(min-width:768px){.VPHome[data-v-8b561e3d]{margin-bottom:128px}}.VPContent[data-v-c87f25bf]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-c87f25bf]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-c87f25bf]{margin:0}@media(min-width:960px){.VPContent[data-v-c87f25bf]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-c87f25bf]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media(min-width:1440px){.VPContent.has-sidebar[data-v-c87f25bf]{padding-right:calc((100% - var(--vp-layout-max-width)) / 2);padding-left:calc((100% - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-c3855bb3]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-c3855bb3]{display:none}.VPFooter[data-v-c3855bb3] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-c3855bb3] a:hover{color:var(--vp-c-text-1)}@media(min-width:768px){.VPFooter[data-v-c3855bb3]{padding:32px}}.container[data-v-c3855bb3]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-c3855bb3],.copyright[data-v-c3855bb3]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown button[data-v-0bf0e06f]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-0bf0e06f]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-0bf0e06f]{color:var(--vp-c-text-1)}.icon[data-v-0bf0e06f]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media(min-width:960px){.VPLocalNavOutlineDropdown button[data-v-0bf0e06f]{font-size:14px}.icon[data-v-0bf0e06f]{font-size:16px}}.open>.icon[data-v-0bf0e06f]{transform:rotate(90deg)}.items[data-v-0bf0e06f]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media(min-width:960px){.items[data-v-0bf0e06f]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-0bf0e06f]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-0bf0e06f]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-0bf0e06f]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-0bf0e06f]{transition:all .2s ease-out}.flyout-leave-active[data-v-0bf0e06f]{transition:all .15s ease-in}.flyout-enter-from[data-v-0bf0e06f],.flyout-leave-to[data-v-0bf0e06f]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-db738f89]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-db738f89]{position:fixed}@media(min-width:960px){.VPLocalNav[data-v-db738f89]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-db738f89]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-db738f89]{display:none}}@media(min-width:1280px){.VPLocalNav[data-v-db738f89]{display:none}}.container[data-v-db738f89]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-db738f89]{display:flex;align-items:center;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-db738f89]:hover{color:var(--vp-c-text-1);transition:color .25s}@media(min-width:960px){.menu[data-v-db738f89]{display:none}}.menu-icon[data-v-db738f89]{margin-right:8px;font-size:14px}.menu[data-v-db738f89],[data-v-db738f89] .VPLocalNavOutlineDropdown>button{padding:12px 24px 11px}@media(min-width:768px){.menu[data-v-db738f89],[data-v-db738f89] .VPLocalNavOutlineDropdown>button{padding:12px 32px 11px}}.VPSwitch[data-v-1d5665e3]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-1d5665e3]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-1d5665e3]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-1d5665e3]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-1d5665e3] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-1d5665e3] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-5337faa4]{opacity:1}.moon[data-v-5337faa4],.dark .sun[data-v-5337faa4]{opacity:0}.dark .moon[data-v-5337faa4]{opacity:1}.dark .VPSwitchAppearance[data-v-5337faa4] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-6c893767]{display:none}@media(min-width:1280px){.VPNavBarAppearance[data-v-6c893767]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-faf5b206]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-faf5b206]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);text-align:left;white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-faf5b206]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-faf5b206]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-1963e1bb]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-1963e1bb]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-1963e1bb]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-1963e1bb]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-25a6cce8]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-25a6cce8] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-25a6cce8] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-25a6cce8] .group:last-child{padding-bottom:0}.VPMenu[data-v-25a6cce8] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-25a6cce8] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-25a6cce8] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-25a6cce8] .action{padding-left:24px}.VPFlyout[data-v-42cb505d]{position:relative}.VPFlyout[data-v-42cb505d]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-42cb505d]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-42cb505d]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-42cb505d]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-42cb505d]{color:var(--vp-c-brand-2)}.button[aria-expanded=false]+.menu[data-v-42cb505d]{opacity:0;visibility:hidden;transform:translateY(0)}.VPFlyout:hover .menu[data-v-42cb505d],.button[aria-expanded=true]+.menu[data-v-42cb505d]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-42cb505d]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-42cb505d]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-42cb505d]{margin-right:0;font-size:16px}.text-icon[data-v-42cb505d]{margin-left:4px;font-size:14px}.icon[data-v-42cb505d]{font-size:20px;transition:fill .25s}.menu[data-v-42cb505d]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-591a6b30]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-591a6b30]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-591a6b30]>svg,.VPSocialLink[data-v-591a6b30]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-d07f11e6]{display:flex;justify-content:center}.VPNavBarExtra[data-v-bf2fac68]{display:none;margin-right:-12px}@media(min-width:768px){.VPNavBarExtra[data-v-bf2fac68]{display:block}}@media(min-width:1280px){.VPNavBarExtra[data-v-bf2fac68]{display:none}}.trans-title[data-v-bf2fac68]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-bf2fac68],.item.social-links[data-v-bf2fac68]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-bf2fac68]{min-width:176px}.appearance-action[data-v-bf2fac68]{margin-right:-2px}.social-links-list[data-v-bf2fac68]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media(min-width:768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-52a1d768]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-52a1d768],.VPNavBarMenuLink[data-v-52a1d768]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-39714824]{display:none}@media(min-width:768px){.VPNavBarMenu[data-v-39714824]{display:flex}}.VPNavBarAskAiButton[data-v-4eb17e89]{display:flex;align-items:center;height:var(--vp-nav-height);padding:8px 14px;font-size:20px}@media(min-width:768px){.VPNavBarAskAiButton[data-v-4eb17e89]{height:auto;padding:11.5px;transition:color .3s ease;background-color:var(--vp-c-bg-alt);border-radius:8px;font-size:15px;color:var(--vp-c-text-2)}.VPNavBarAskAiButton[data-v-4eb17e89]:hover{color:var(--vp-c-brand-1)}}.VPNavBarSearchButton[data-v-baa3be99]{display:flex;align-items:center;gap:8px;height:var(--vp-nav-height);padding:8px 14px;font-size:20px}.text[data-v-baa3be99],.keys[data-v-baa3be99],:root.mac .key-ctrl[data-v-baa3be99],:root:not(.mac) .key-cmd[data-v-baa3be99]{display:none}kbd[data-v-baa3be99]{font-family:inherit;font-weight:500}@media(min-width:768px){.VPNavBarSearchButton[data-v-baa3be99]{height:auto;padding:8px 12px;background-color:var(--vp-c-bg-alt);border-radius:8px;font-size:14px;line-height:1;color:var(--vp-c-text-2)}.text[data-v-baa3be99]{display:inline;font-size:13px}.keys[data-v-baa3be99]{display:flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid var(--vp-c-divider);border-radius:4px;font-size:12px}}.VPNavBarSearch[data-v-2fc7f2c6]{display:flex;align-items:center}@media(min-width:768px){.VPNavBarSearch[data-v-2fc7f2c6]{gap:8px;flex-grow:1;padding-left:24px}}@media(min-width:960px){.VPNavBarSearch[data-v-2fc7f2c6]{padding-left:32px}}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media(min-width:1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-1e38c6bc]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media(min-width:960px){.title[data-v-1e38c6bc]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-1e38c6bc]{border-bottom-color:var(--vp-c-divider)}}[data-v-1e38c6bc] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-4c1766e2]{display:none}@media(min-width:1280px){.VPNavBarTranslations[data-v-4c1766e2]{display:flex;align-items:center}}.title[data-v-4c1766e2]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-9ca1369d]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-9ca1369d]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-9ca1369d]:not(.home){background-color:var(--vp-nav-bg-color)}@media(min-width:960px){.VPNavBar[data-v-9ca1369d]:not(.home){background-color:transparent}.VPNavBar[data-v-9ca1369d]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-9ca1369d]{padding:0 8px 0 24px}@media(min-width:768px){.wrapper[data-v-9ca1369d]{padding:0 32px}}@media(min-width:960px){.VPNavBar.has-sidebar .wrapper[data-v-9ca1369d]{padding:0}}.container[data-v-9ca1369d]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-9ca1369d],.container>.content[data-v-9ca1369d]{pointer-events:none}.container[data-v-9ca1369d] *{pointer-events:auto}@media(min-width:960px){.VPNavBar.has-sidebar .container[data-v-9ca1369d]{max-width:100%}}.title[data-v-9ca1369d]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media(min-width:960px){.VPNavBar.has-sidebar .title[data-v-9ca1369d]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media(min-width:1440px){.VPNavBar.has-sidebar .title[data-v-9ca1369d]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-9ca1369d]{flex-grow:1}@media(min-width:960px){.VPNavBar.has-sidebar .content[data-v-9ca1369d]{position:relative;z-index:1;padding-left:var(--vp-sidebar-width);padding-right:32px}}@media(min-width:1440px){.VPNavBar.has-sidebar .content[data-v-9ca1369d]{padding-left:calc((100% - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width));padding-right:calc((100% - var(--vp-layout-max-width)) / 2 + 32px)}}.content-body[data-v-9ca1369d]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media(min-width:960px){.VPNavBar:not(.home.top) .content-body[data-v-9ca1369d]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-9ca1369d]{background-color:transparent}.content-body[data-v-9ca1369d]{margin-right:-100vw;padding-right:100vw}}.menu+.translations[data-v-9ca1369d]:before,.menu+.appearance[data-v-9ca1369d]:before,.menu+.social-links[data-v-9ca1369d]:before,.translations+.appearance[data-v-9ca1369d]:before,.appearance+.social-links[data-v-9ca1369d]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-9ca1369d]:before,.translations+.appearance[data-v-9ca1369d]:before{margin-right:16px}.appearance+.social-links[data-v-9ca1369d]:before{margin-left:16px}.social-links[data-v-9ca1369d]{margin-right:-8px}.divider[data-v-9ca1369d]{width:100%;height:1px}@media(min-width:960px){.VPNavBar.has-sidebar .divider[data-v-9ca1369d]{padding-left:var(--vp-sidebar-width)}}@media(min-width:1440px){.VPNavBar.has-sidebar .divider[data-v-9ca1369d]{padding-left:calc((100% - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-9ca1369d]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-9ca1369d]{background-color:var(--vp-c-gutter)}@media(min-width:960px){.VPNavBar:not(.home.top) .divider-line[data-v-9ca1369d]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-9ca1369d]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-b44890b2]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-b44890b2]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-b924ab8a]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-b924ab8a]:hover,.VPNavScreenMenuLink.active[data-v-b924ab8a]{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-ecf4b472]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-ecf4b472]:hover,.VPNavScreenMenuGroupLink.active[data-v-ecf4b472]{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-4b7a798b]{display:block}.title[data-v-4b7a798b]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-956364f9]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-956364f9]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-956364f9]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-956364f9]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-956364f9]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-956364f9]{transform:rotate(45deg)}.button[data-v-956364f9]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-956364f9]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-956364f9]{transition:transform .25s}.group[data-v-956364f9]:first-child{padding-top:0}.group+.group[data-v-956364f9],.group+.item[data-v-956364f9]{padding-top:4px}.VPNavScreenTranslations[data-v-a4d9b172]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-a4d9b172]{height:auto}.title[data-v-a4d9b172]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-a4d9b172]{font-size:16px}.icon.lang[data-v-a4d9b172]{margin-right:8px}.icon.chevron[data-v-a4d9b172]{margin-left:4px}.list[data-v-a4d9b172]{padding:4px 0 0 24px}.link[data-v-a4d9b172]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-05f3d7bc]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-05f3d7bc],.VPNavScreen.fade-leave-active[data-v-05f3d7bc]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-05f3d7bc],.VPNavScreen.fade-leave-active .container[data-v-05f3d7bc]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-05f3d7bc],.VPNavScreen.fade-leave-to[data-v-05f3d7bc]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-05f3d7bc],.VPNavScreen.fade-leave-to .container[data-v-05f3d7bc]{transform:translateY(-8px)}@media(min-width:768px){.VPNavScreen[data-v-05f3d7bc]{display:none}}.container[data-v-05f3d7bc]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-05f3d7bc],.menu+.appearance[data-v-05f3d7bc],.translations+.appearance[data-v-05f3d7bc]{margin-top:24px}.menu+.social-links[data-v-05f3d7bc]{margin-top:16px}.appearance+.social-links[data-v-05f3d7bc]{margin-top:16px}.VPNav[data-v-9f75dce3]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media(min-width:960px){.VPNav[data-v-9f75dce3]{position:fixed}}.VPSidebarItem.level-0[data-v-d81de50c]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-d81de50c]{padding-bottom:10px}.item[data-v-d81de50c]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-d81de50c]{cursor:pointer}.indicator[data-v-d81de50c]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-d81de50c],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-d81de50c],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-d81de50c],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-d81de50c]{background-color:var(--vp-c-brand-1)}.link[data-v-d81de50c]{display:flex;align-items:center;flex-grow:1}.text[data-v-d81de50c]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-d81de50c]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-d81de50c],.VPSidebarItem.level-2 .text[data-v-d81de50c],.VPSidebarItem.level-3 .text[data-v-d81de50c],.VPSidebarItem.level-4 .text[data-v-d81de50c],.VPSidebarItem.level-5 .text[data-v-d81de50c]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-d81de50c],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-d81de50c],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-d81de50c],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-d81de50c],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-d81de50c],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-d81de50c]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-d81de50c],.VPSidebarItem.level-1.has-active>.item>.text[data-v-d81de50c],.VPSidebarItem.level-2.has-active>.item>.text[data-v-d81de50c],.VPSidebarItem.level-3.has-active>.item>.text[data-v-d81de50c],.VPSidebarItem.level-4.has-active>.item>.text[data-v-d81de50c],.VPSidebarItem.level-5.has-active>.item>.text[data-v-d81de50c],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-d81de50c],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-d81de50c],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-d81de50c],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-d81de50c],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-d81de50c],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-d81de50c]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-d81de50c],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-d81de50c],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-d81de50c],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-d81de50c],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-d81de50c],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-d81de50c]{color:var(--vp-c-brand-1)}.caret[data-v-d81de50c]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-d81de50c]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-d81de50c]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-d81de50c]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-d81de50c]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-d81de50c],.VPSidebarItem.level-2 .items[data-v-d81de50c],.VPSidebarItem.level-3 .items[data-v-d81de50c],.VPSidebarItem.level-4 .items[data-v-d81de50c],.VPSidebarItem.level-5 .items[data-v-d81de50c]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-d81de50c]{display:none}.no-transition[data-v-8d50c081] .caret-icon{transition:none}.group+.group[data-v-8d50c081]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media(min-width:960px){.group[data-v-8d50c081]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-af661f50]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-af661f50]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-af661f50]{box-shadow:var(--vp-shadow-1)}@media(min-width:960px){.VPSidebar[data-v-af661f50]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media(min-width:1440px){.VPSidebar[data-v-af661f50]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media(min-width:960px){.curtain[data-v-af661f50]{position:sticky;top:calc(var(--vp-nav-height) * -1);left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-af661f50]{outline:0}.VPSkipLink[data-v-331ec75c]{position:fixed;top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-331ec75c]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media(min-width:1280px){.VPSkipLink[data-v-331ec75c]{top:14px;left:16px}}.Layout[data-v-1df9f90f]{display:flex;flex-direction:column;min-height:100vh}.VPLocalSearchBox[data-v-8c9d8b44]{position:fixed;z-index:100;inset:0;display:flex}.backdrop[data-v-8c9d8b44]{position:absolute;inset:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-8c9d8b44]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media(max-width:767px){.shell[data-v-8c9d8b44]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-8c9d8b44]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media(max-width:767px){.search-bar[data-v-8c9d8b44]{padding:0 8px}}.search-bar[data-v-8c9d8b44]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-8c9d8b44]{display:block;font-size:18px}.navigate-icon[data-v-8c9d8b44]{display:block;font-size:14px}.search-icon[data-v-8c9d8b44]{margin:8px}@media(max-width:767px){.search-icon[data-v-8c9d8b44]{display:none}}.search-input[data-v-8c9d8b44]{padding:6px 12px;font-size:inherit;width:100%}.search-input[data-v-8c9d8b44]::-webkit-search-cancel-button{display:none}@media(max-width:767px){.search-input[data-v-8c9d8b44]{padding:6px 4px}}.search-actions[data-v-8c9d8b44]{display:flex;gap:4px}@media(any-pointer:coarse){.search-actions[data-v-8c9d8b44]{gap:8px}}@media(min-width:769px){.search-actions.before[data-v-8c9d8b44]{display:none}}.search-actions button[data-v-8c9d8b44]{padding:8px}.search-actions button[data-v-8c9d8b44]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-8c9d8b44]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-8c9d8b44]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-8c9d8b44]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-8c9d8b44]{display:flex;align-items:center;gap:4px}@media(max-width:767px){.search-keyboard-shortcuts[data-v-8c9d8b44]{display:none}}.search-keyboard-shortcuts kbd[data-v-8c9d8b44]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-8c9d8b44]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-8c9d8b44]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-8c9d8b44]{margin:12px;width:100%;overflow:hidden}@media(max-width:767px){.result>div[data-v-8c9d8b44]{margin:8px}}.titles[data-v-8c9d8b44]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-8c9d8b44]{display:flex;align-items:center;gap:4px}.title.main[data-v-8c9d8b44]{font-weight:500}.title-icon[data-v-8c9d8b44]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-8c9d8b44]{opacity:.5}.result.selected[data-v-8c9d8b44]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-8c9d8b44]{position:relative}.excerpt[data-v-8c9d8b44]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-8c9d8b44]{opacity:1}.excerpt[data-v-8c9d8b44] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-8c9d8b44] mark,.excerpt[data-v-8c9d8b44] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-8c9d8b44] .vp-code-group .tabs{display:none}.excerpt[data-v-8c9d8b44] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-8c9d8b44]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-8c9d8b44]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-8c9d8b44],.result.selected .title-icon[data-v-8c9d8b44]{color:var(--vp-c-brand-1)!important}.no-results[data-v-8c9d8b44]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-8c9d8b44]{flex:none} diff --git a/dist/docs/contributing/adding-an-exploration.html b/dist/docs/contributing/adding-an-exploration.html deleted file mode 100644 index d01ae1c..0000000 --- a/dist/docs/contributing/adding-an-exploration.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - Adding an Exploration | Feel Your Protocol - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/docs/contributing/how-to-contribute.html b/dist/docs/contributing/how-to-contribute.html deleted file mode 100644 index 94e4ff6..0000000 --- a/dist/docs/contributing/how-to-contribute.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -How to Contribute | Feel Your Protocol - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/docs/guide/architecture.html b/dist/docs/guide/architecture.html deleted file mode 100644 index 447ba98..0000000 --- a/dist/docs/guide/architecture.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - -Architecture | Feel Your Protocol - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/docs/guide/getting-started.html b/dist/docs/guide/getting-started.html deleted file mode 100644 index c69eeb3..0000000 --- a/dist/docs/guide/getting-started.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - -Getting Started | Feel Your Protocol - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/docs/hashmap.json b/dist/docs/hashmap.json deleted file mode 100644 index 483d297..0000000 --- a/dist/docs/hashmap.json +++ /dev/null @@ -1 +0,0 @@ -{"contributing_adding-an-exploration.md":"CLO_TxsK","contributing_ai-assisted-development.md":"lydwZLlM","contributing_available-e-components.md":"B4Q_z4Hi","contributing_code-conventions.md":"C86y1S4H","contributing_e-components.md":"PhGEgitZ","contributing_how-to-contribute.md":"G0y-xflE","contributing_images.md":"DdK4lm4N","contributing_styling.md":"BKPSSvmJ","contributing_third-party-libraries.md":"DAoVaD5b","contributing_ui-components.md":"vHxMK_fH","guide_architecture.md":"B6eczQC1","guide_getting-started.md":"BjX7SsDe","index.md":"COXeFy5O"} diff --git a/dist/docs/index.html b/dist/docs/index.html deleted file mode 100644 index 65d8f68..0000000 --- a/dist/docs/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - -Feel Your Protocol - - - - - - - - - - - - - - -- - - - \ No newline at end of file diff --git a/dist/docs/vp-icons.css b/dist/docs/vp-icons.css deleted file mode 100644 index ddc5bd8..0000000 --- a/dist/docs/vp-icons.css +++ /dev/null @@ -1 +0,0 @@ -.vpi-social-github{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")} \ No newline at end of file diff --git a/dist/website/assets/favicon-DIYJD7QH.png b/dist/website/assets/favicon-DIYJD7QH.png deleted file mode 100644 index 118e396..0000000 Binary files a/dist/website/assets/favicon-DIYJD7QH.png and /dev/null differ diff --git a/dist/website/assets/image-BSe_Ivnf.webp b/dist/website/assets/image-BSe_Ivnf.webp deleted file mode 100644 index 2d29da5..0000000 Binary files a/dist/website/assets/image-BSe_Ivnf.webp and /dev/null differ diff --git a/dist/website/assets/image-D5QfEo9W.webp b/dist/website/assets/image-D5QfEo9W.webp deleted file mode 100644 index d550afd..0000000 Binary files a/dist/website/assets/image-D5QfEo9W.webp and /dev/null differ diff --git a/dist/website/favicon.ico b/dist/website/favicon.ico deleted file mode 100644 index df36fcf..0000000 Binary files a/dist/website/favicon.ico and /dev/null differ diff --git a/dist/website/index.html b/dist/website/index.html deleted file mode 100644 index 8bddfbd..0000000 --- a/dist/website/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - -Skip to contentFeel Your ProtocolInteractive Ethereum Protocol Explorations
Explore, visualize and understand Ethereum protocol changes — hands on.
Beta — Contributions Welcome!
This project is in beta. Everything works, but the APIs of reusable components (E-Components, shared UI) are still evolving. That means contributions may require some manual coordination during review until the interfaces fully stabilize — we are happy to guide you through! The fastest way to get started is to add a new exploration.
Feel Your Protocol - - - - - - - diff --git a/docs/contributing/third-party-libraries.md b/docs/contributing/third-party-libraries.md index 78959f0..e9644d2 100644 --- a/docs/contributing/third-party-libraries.md +++ b/docs/contributing/third-party-libraries.md @@ -74,7 +74,7 @@ Multiple versions or forks of the same library coexist in `package.json` using n ```json { "dependencies": { - "@ethereumjs/evm": "^10.1.1-nightly.1", + "@ethereumjs/evm": "^10.1.2", "@ethereumjs/evm-experimental": "npm:@ethereumjs/evm@^11.0.0-fork.1" } } diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index b3caf0e..782a906 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -54,10 +54,17 @@ npm run test:e2e # E2E tests (Cypress, requires build first) ## Building ```bash -npm run build # website → dist/website -npm run docs:build # docs → dist/docs +npm run build # all three, with website type-check +npm run build:deploy # all three (website vite-only; used on the server after git pull) + +# Individual targets: +npm run website:build # dist/website +npm run community-token:build # dist/community-token +npm run docs:build # dist/docs ``` +`dist/` is not committed — production output is rebuilt on deploy. + ## Project Structure ``` diff --git a/package-lock.json b/package-lock.json index 7da7352..e9d6e96 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,9 +8,9 @@ "name": "feelyourprotocol.org", "version": "0.0.0", "dependencies": { - "@ethereumjs/common": "^10.1.1-nightly.1", - "@ethereumjs/evm": "^10.1.1-nightly.1", - "@ethereumjs/util": "^10.1.1-nightly.1", + "@ethereumjs/common": "^10.1.2", + "@ethereumjs/evm": "^10.1.2", + "@ethereumjs/util": "^10.1.2", "@headlessui/vue": "^1.7.23", "@heroicons/vue": "^2.2.0", "@paulmillr/trusted-setups": "^0.2.0", @@ -1340,13 +1340,13 @@ } }, "node_modules/@ethereumjs/binarytree": { - "version": "10.1.1-nightly.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/binarytree/-/binarytree-10.1.1-nightly.1.tgz", - "integrity": "sha512-sNrP4F5/6xUcYYs0efJbOrU5atvtGJUOKDs+yZtoxBwkjxJkjFjlQ0x2JfLWiRsJH1grkKfNS49YxGsGr36o4w==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/binarytree/-/binarytree-10.1.2.tgz", + "integrity": "sha512-szugxzYrQHRvlhbu0BrcW/Kw7tg3K0b1HbKCdwRrFhvz80RbGfML2wqDDZhO5NyvHqWpS+Rt9q+qV9LxOHCP6w==", "license": "MIT", "dependencies": { - "@ethereumjs/rlp": "^10.1.1-nightly.1", - "@ethereumjs/util": "^10.1.1-nightly.1", + "@ethereumjs/rlp": "^10.1.2", + "@ethereumjs/util": "^10.1.2", "@noble/hashes": "^2.0.1", "debug": "^4.4.0", "lru-cache": "11.0.2" @@ -1365,25 +1365,25 @@ } }, "node_modules/@ethereumjs/common": { - "version": "10.1.1-nightly.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-10.1.1-nightly.1.tgz", - "integrity": "sha512-8U/8Nk6cu+cySvrpx45sVWVBYVScq4QCjiF2gYAjoQLUDI//xQ9O8Nx8KQYhH9huR/LhHw2vKAJKU3PHoWgu0w==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-10.1.2.tgz", + "integrity": "sha512-whWnhqAxwpDy4zWkM6rqMzb8nioZJpiys01N57+HDyanvK5IRzodV5tdMRDt66PD5vDjl2c9K5UcB039gU2Oyw==", "license": "MIT", "dependencies": { - "@ethereumjs/util": "^10.1.1-nightly.1", + "@ethereumjs/util": "^10.1.2", "eventemitter3": "^5.0.1" } }, "node_modules/@ethereumjs/evm": { - "version": "10.1.1-nightly.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/evm/-/evm-10.1.1-nightly.1.tgz", - "integrity": "sha512-Ba6aNXWcF1IRNdKBcBskSmy/RJrsD7zdN6FBTLhOCgZsbR+Aw/V89eS+1tS7qfD14DdUJGYDUZvxsl6irWR1Jg==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/evm/-/evm-10.1.2.tgz", + "integrity": "sha512-yIslek2pcsUQwBJFeeamN529hbNYBtrSuneSCMn4AM71WAx8vntgDbzYoAJsG/whyB9wOVvzHXubju1JXmaEag==", "license": "MPL-2.0", "dependencies": { - "@ethereumjs/binarytree": "^10.1.1-nightly.1", - "@ethereumjs/common": "^10.1.1-nightly.1", - "@ethereumjs/statemanager": "^10.1.1-nightly.1", - "@ethereumjs/util": "^10.1.1-nightly.1", + "@ethereumjs/binarytree": "^10.1.2", + "@ethereumjs/common": "^10.1.2", + "@ethereumjs/statemanager": "^10.1.2", + "@ethereumjs/util": "^10.1.2", "@noble/curves": "^2.0.1", "@noble/hashes": "^2.0.1", "debug": "^4.4.0", @@ -1394,13 +1394,13 @@ } }, "node_modules/@ethereumjs/mpt": { - "version": "10.1.1-nightly.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/mpt/-/mpt-10.1.1-nightly.1.tgz", - "integrity": "sha512-DXz8nxcz3tTShkoWnMptwvN+zce30wJBI4YBSiudyvA29/29XeWuANeNzGzfXw42EFyk9W9xsjRcPY9hnevpcQ==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/mpt/-/mpt-10.1.2.tgz", + "integrity": "sha512-dBlXpkP1ssp+AcUxsJUrY72LZuE1JQEp1AZn5mgmbBcd2Gwkpyi57q4zATlZbxrZUxp/K9UIidgqxQWcOCbo5g==", "license": "MPL-2.0", "dependencies": { - "@ethereumjs/rlp": "^10.1.1-nightly.1", - "@ethereumjs/util": "^10.1.1-nightly.1", + "@ethereumjs/rlp": "^10.1.2", + "@ethereumjs/util": "^10.1.2", "@noble/hashes": "^2.0.1", "debug": "^4.4.0", "lru-cache": "11.0.2" @@ -1419,9 +1419,9 @@ } }, "node_modules/@ethereumjs/rlp": { - "version": "10.1.1-nightly.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-10.1.1-nightly.1.tgz", - "integrity": "sha512-/RR15R1ejqbc3h4K4lh5sdZ2you4ZCo98nu2FGcc93+kPkEgwNeUlaHEKptRH00Q/9wg5nW+WU0epkhANYI60g==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-10.1.2.tgz", + "integrity": "sha512-T5Zt6C2pd02Wd88Q9A5/UX+He1Q2Y1LntHxz/038tfbUMiqby4fYSSTLEDx+TEfJqw1BsJSBY/TSu6goUzlk+w==", "license": "MPL-2.0", "bin": { "rlp": "bin/rlp.cjs" @@ -1431,16 +1431,16 @@ } }, "node_modules/@ethereumjs/statemanager": { - "version": "10.1.1-nightly.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/statemanager/-/statemanager-10.1.1-nightly.1.tgz", - "integrity": "sha512-MecS3hhYdUBzi1COMSsHUONtTxFRtHgsOVjTtAs4ysw44Cr7q/gZdkH6HS73xOAIEo36+dpO1O2eHr5Lrd7sjA==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/statemanager/-/statemanager-10.1.2.tgz", + "integrity": "sha512-Pkm9VHF19wxT5c0jB+IDiQBv4W42o0wYSS1NLXeRea0D6CDBu0CLo9ihhnQgM368zXPl6JRbLS+YiG8tJkz4aA==", "license": "MPL-2.0", "dependencies": { - "@ethereumjs/binarytree": "^10.1.1-nightly.1", - "@ethereumjs/common": "^10.1.1-nightly.1", - "@ethereumjs/mpt": "^10.1.1-nightly.1", - "@ethereumjs/rlp": "^10.1.1-nightly.1", - "@ethereumjs/util": "^10.1.1-nightly.1", + "@ethereumjs/binarytree": "^10.1.2", + "@ethereumjs/common": "^10.1.2", + "@ethereumjs/mpt": "^10.1.2", + "@ethereumjs/rlp": "^10.1.2", + "@ethereumjs/util": "^10.1.2", "@js-sdsl/ordered-map": "^4.4.2", "@noble/hashes": "^2.0.1", "debug": "^4.4.0", @@ -1457,12 +1457,12 @@ } }, "node_modules/@ethereumjs/util": { - "version": "10.1.1-nightly.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-10.1.1-nightly.1.tgz", - "integrity": "sha512-LarBRieWsRE6/CSD1n+z3S7RQL/JBFI8PokItns1Pp7fLpz+mhfLCwiQCLbPe2hjXJcorBNWccWGK1LmY7ufig==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-10.1.2.tgz", + "integrity": "sha512-UPBgXtHHfQugoXOSAoeG3jdmPbl37cwV9y3XqTPAnw8tJj8np14TPV2uc5lOs7C2LMF9Ubn66zyaiYxgwGppng==", "license": "MPL-2.0", "dependencies": { - "@ethereumjs/rlp": "^10.1.1-nightly.1", + "@ethereumjs/rlp": "^10.1.2", "@noble/curves": "^2.0.1", "@noble/hashes": "^2.0.1" }, @@ -1720,12 +1720,12 @@ } }, "node_modules/@noble/curves": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.0.1.tgz", - "integrity": "sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.2.0.tgz", + "integrity": "sha512-T/BoHgFXirb0ENSPBquzX0rcjXeM6Lo892a2jlYJkqk83LqZx0l1Of7DzlKJ6jkpvMrkHSnAcgb5JegL8SeIkQ==", "license": "MIT", "dependencies": { - "@noble/hashes": "2.0.1" + "@noble/hashes": "2.2.0" }, "engines": { "node": ">= 20.19.0" @@ -1735,9 +1735,9 @@ } }, "node_modules/@noble/hashes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", - "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.2.0.tgz", + "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==", "license": "MIT", "engines": { "node": ">= 20.19.0" diff --git a/package.json b/package.json index c4e41b9..523e02f 100644 --- a/package.json +++ b/package.json @@ -8,15 +8,18 @@ }, "scripts": { "dev": "vite", - "build": "run-p type-check \"build-only {@}\" --", - "build:deploy": "run-s build community-token:build docs:build", - "preview": "vite preview --outDir dist/website", + "build": "run-s website:build community-token:build docs:build", + "build:deploy": "run-s website:build:deploy community-token:build docs:build", + "preview": "npm run website:preview", "test:unit": "vitest", "prepare": "cypress install", "test:e2e": "start-server-and-test preview http://localhost:4173 'cypress run --e2e'", "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'", - "build-only": "vite build", "type-check": "vue-tsc --build", + "website:build": "run-p type-check \"website:build-only {@}\" --", + "website:build-only": "vite build", + "website:build:deploy": "vite build", + "website:preview": "vite preview --outDir dist/website", "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", "docs:preview": "vitepress preview docs", @@ -24,14 +27,14 @@ "community-token:build": "vue-tsc --build tsconfig.community-token.json && vite build --config vite.community-token.config.ts", "community-token:preview": "vite preview --config vite.community-token.config.ts", "lf": "npm run format && npm run lint", - "lf:ci": "eslint . && prettier -c src/ cypress/e2e/", + "lf:ci": "eslint . && prettier -c src/ cypress/e2e/ community-token/", "lint": "eslint . --fix", - "format": "prettier --write src/ cypress/e2e/" + "format": "prettier --write src/ cypress/e2e/ community-token/" }, "dependencies": { - "@ethereumjs/common": "^10.1.1-nightly.1", - "@ethereumjs/evm": "^10.1.1-nightly.1", - "@ethereumjs/util": "^10.1.1-nightly.1", + "@ethereumjs/common": "^10.1.2", + "@ethereumjs/evm": "^10.1.2", + "@ethereumjs/util": "^10.1.2", "@headlessui/vue": "^1.7.23", "@heroicons/vue": "^2.2.0", "@paulmillr/trusted-setups": "^0.2.0", diff --git a/src/App.vue b/src/App.vue index a1ae8c6..e7dd407 100644 --- a/src/App.vue +++ b/src/App.vue @@ -116,10 +116,14 @@ watch(◆ Made with ❤️ and pure dedication by HolgerD77 + ◆ +
Imprint -
Imprint + Community Token ◆ GitHub a.order - b.order) +const sortedEntries = Object.entries(TIMELINE).sort(([, a], [, b]) => b.order - a.order) const activeTimeline = computed(() => route.query.timeline as string | undefined) diff --git a/src/views/__tests__/AppLayout.spec.ts b/src/views/__tests__/AppLayout.spec.ts index 6895734..3b63340 100644 --- a/src/views/__tests__/AppLayout.spec.ts +++ b/src/views/__tests__/AppLayout.spec.ts @@ -93,6 +93,12 @@ describe('App layout', () => { expect(links.some((l) => l.props('to') === '/imprint')).toBe(true) }) + it('has Community Token link', async () => { + const wrapper = await mountApp(makeRouter()) + const ctLink = wrapper.find('footer a[href="https://community-token.feelyourprotocol.org/"]') + expect(ctLink.exists()).toBe(true) + }) + it('has GitHub link', async () => { const wrapper = await mountApp(makeRouter()) const ghLink = wrapper.find('footer a[href="https://github.com/feelyourprotocol/website"]')