@bkm016/basalt 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +275 -2
- package/chunk-09vr609h.js +2 -0
- package/chunk-0hbjv3y6.js +11 -0
- package/chunk-0qqb6v41.js +3753 -0
- package/chunk-0szjy61m.js +2 -0
- package/chunk-0yytz0r1.js +59 -0
- package/chunk-1aspj1hn.js +3 -0
- package/chunk-1b7gbe8g.js +10 -0
- package/chunk-1v7st27a.js +25 -0
- package/chunk-1yzt0qm0.js +2 -0
- package/chunk-2bb01ddq.js +16 -0
- package/chunk-2wkaw73s.js +9 -0
- package/chunk-2zqny2sy.js +2 -0
- package/chunk-32at88hc.js +3 -0
- package/chunk-3m7qwfm3.js +7 -0
- package/chunk-44ek81ad.js +3 -0
- package/chunk-45cz26ap.js +39 -0
- package/chunk-501zkf9b.js +3 -0
- package/chunk-58vz2qsq.js +2 -0
- package/chunk-6e49xsf5.js +3 -0
- package/chunk-6qertm2t.js +3 -0
- package/chunk-8dxzqwq3.js +2 -0
- package/chunk-9mmz6wt3.js +2 -0
- package/chunk-a3tqx584.js +10 -0
- package/chunk-a6r4z44b.js +2 -0
- package/chunk-a8nyk4k9.js +2 -0
- package/chunk-agntrqs9.js +2 -0
- package/chunk-bhqyxyap.js +3 -0
- package/chunk-bpw6q7g0.js +3 -0
- package/chunk-c25s4w6a.js +5 -0
- package/chunk-cv5wsd9m.js +8 -0
- package/chunk-d48bfd2e.js +3 -0
- package/chunk-dakrpbe6.js +3 -0
- package/chunk-dhm42y04.js +7 -0
- package/chunk-exnn1867.js +2 -0
- package/chunk-f7egr55n.js +31 -0
- package/chunk-g2t6t8fk.js +3 -0
- package/chunk-h6sw8fbt.js +5 -0
- package/chunk-hat3s3pr.js +3 -0
- package/chunk-hcn9cf6v.js +2 -0
- package/chunk-jhd54p1b.js +3 -0
- package/chunk-k7w7ac9q.js +18 -0
- package/chunk-kf8hq21a.js +25 -0
- package/chunk-kfq8wyd3.js +3 -0
- package/chunk-n6e43rvk.js +3 -0
- package/chunk-nt2gntad.js +2 -0
- package/chunk-pmc3y1z8.js +2 -0
- package/chunk-pvncysbb.js +3 -0
- package/chunk-q8zx3kt6.js +2 -0
- package/chunk-qczbfccb.js +12 -0
- package/chunk-qnr1f5pj.js +3 -0
- package/chunk-qx0m82rw.js +2 -0
- package/chunk-r9aatvwm.js +3 -0
- package/chunk-rm3kcxq9.js +20 -0
- package/chunk-rv06x0kn.js +7 -0
- package/chunk-ry0z4ev6.js +2 -0
- package/chunk-s37s3k24.js +12 -0
- package/chunk-sh74qzvt.js +5 -0
- package/chunk-szat3vp4.js +3 -0
- package/chunk-t057xfrt.js +5 -0
- package/chunk-tvm4zmgj.js +3 -0
- package/chunk-v9fea96h.js +3 -0
- package/chunk-vgvq3q12.js +3 -0
- package/chunk-vkkj4awb.js +2 -0
- package/chunk-vv7fp27r.js +3 -0
- package/chunk-wjd9fr23.js +2 -0
- package/chunk-wx7kdf0b.js +2 -0
- package/chunk-x3dnb9sz.js +3 -0
- package/chunk-xsbxykr4.js +2 -0
- package/chunk-xysny0ve.js +3 -0
- package/chunk-y69ewdn2.js +3 -0
- package/chunk-yskm0hsy.js +2 -0
- package/chunk-zef13k3h.js +471 -0
- package/cli.js +89 -0
- package/compiled.js +23 -0
- package/icon-dp9pmcvp.png +0 -0
- package/package.json +21 -4
- package/ui-test-worker.js +226 -0
- package/web/KaTeX_AMS-Regular-n7eqehx2.woff2 +0 -0
- package/web/KaTeX_Caligraphic-Bold-20r3b6fv.woff2 +0 -0
- package/web/KaTeX_Caligraphic-Regular-kkjm8f18.woff2 +0 -0
- package/web/KaTeX_Fraktur-Bold-pz5vg4t0.woff2 +0 -0
- package/web/KaTeX_Fraktur-Regular-a1e9wkwk.woff2 +0 -0
- package/web/KaTeX_Main-Bold-mcp098h8.woff2 +0 -0
- package/web/KaTeX_Main-BoldItalic-fy74z249.woff2 +0 -0
- package/web/KaTeX_Main-Italic-hw2gxy7f.woff2 +0 -0
- package/web/KaTeX_Main-Regular-xvp1b75c.woff2 +0 -0
- package/web/KaTeX_Math-BoldItalic-mf5nf33d.woff2 +0 -0
- package/web/KaTeX_Math-Italic-ap60jrna.woff2 +0 -0
- package/web/KaTeX_SansSerif-Bold-we3bymb6.woff2 +0 -0
- package/web/KaTeX_SansSerif-Italic-ent92bjx.woff2 +0 -0
- package/web/KaTeX_SansSerif-Regular-0573pbz9.woff2 +0 -0
- package/web/KaTeX_Script-Regular-z2rtj6vq.woff2 +0 -0
- package/web/KaTeX_Size1-Regular-dfr3w1hv.woff2 +0 -0
- package/web/KaTeX_Size2-Regular-kted78zb.woff2 +0 -0
- package/web/KaTeX_Size3-Regular-e6k1k5jk.woff2 +0 -0
- package/web/KaTeX_Size4-Regular-abedc1pd.woff2 +0 -0
- package/web/KaTeX_Typewriter-Regular-scw9zx1z.woff2 +0 -0
- package/web/apple-touch-icon-7dkm33qp.png +0 -0
- package/web/apple-touch-icon.png +0 -0
- package/web/chunk-05w4fyzc.js +1 -0
- package/web/chunk-0mrkjnte.js +1 -0
- package/web/chunk-0pbjgdgp.js +2 -0
- package/web/chunk-0s80zw00.js +1 -0
- package/web/chunk-0vt9fg48.js +2 -0
- package/web/chunk-20q90epj.js +2 -0
- package/web/chunk-22a4ety5.js +1 -0
- package/web/chunk-24mfx6w1.js +2 -0
- package/web/chunk-2j4m0bh1.js +2 -0
- package/web/chunk-2m12wyrb.js +16 -0
- package/web/chunk-2msj52w6.js +1 -0
- package/web/chunk-2ps6mepk.js +120 -0
- package/web/chunk-2pver6r4.js +1 -0
- package/web/chunk-2scce33n.js +1 -0
- package/web/chunk-37ajk6zg.js +2 -0
- package/web/chunk-3ee04tmm.js +200 -0
- package/web/chunk-3jhyzmnf.js +292 -0
- package/web/chunk-45fzdcgz.js +30 -0
- package/web/chunk-4gavbw65.js +1 -0
- package/web/chunk-4ks96e4r.js +1 -0
- package/web/chunk-4rm1vy7w.js +1 -0
- package/web/chunk-4v8en1yw.js +40 -0
- package/web/chunk-4wd9r73y.js +1 -0
- package/web/chunk-4wkm9fda.js +1 -0
- package/web/chunk-54thej0t.js +2 -0
- package/web/chunk-59kqahb3.js +1 -0
- package/web/chunk-5vw9rs4r.js +4 -0
- package/web/chunk-6beqrmtq.js +1 -0
- package/web/chunk-6m69hczt.js +2 -0
- package/web/chunk-70qwwwak.js +2 -0
- package/web/chunk-74j07k8k.js +2 -0
- package/web/chunk-8g239029.js +1 -0
- package/web/chunk-8p4tc9f4.js +70 -0
- package/web/chunk-90kp4pnz.js +2 -0
- package/web/chunk-9an7cjd9.js +291 -0
- package/web/chunk-9dxjafp2.js +78 -0
- package/web/chunk-9p12mgs6.js +2 -0
- package/web/chunk-9v1f6yc8.js +1 -0
- package/web/chunk-9yakxvjb.js +2 -0
- package/web/chunk-a1z5qx1r.js +36 -0
- package/web/chunk-a3verqw9.js +214 -0
- package/web/chunk-a5x2zveg.js +7 -0
- package/web/chunk-ad6x47yy.js +1 -0
- package/web/chunk-amzgyy1k.js +1 -0
- package/web/chunk-b1pe46zz.js +2 -0
- package/web/chunk-b4wbk7vc.js +217 -0
- package/web/chunk-bc78qf1m.js +7 -0
- package/web/chunk-bgnnrpna.js +89 -0
- package/web/chunk-bj90t5gh.js +99 -0
- package/web/chunk-bjkc94mv.js +1 -0
- package/web/chunk-ca682sm6.js +370 -0
- package/web/chunk-cff5hcm8.js +8 -0
- package/web/chunk-cg3jterp.js +2 -0
- package/web/chunk-d18r4m14.js +141 -0
- package/web/chunk-dmqtdeb4.js +1 -0
- package/web/chunk-dt462hk9.js +332 -0
- package/web/chunk-dy2gm1fs.js +1 -0
- package/web/chunk-dzwxgqgm.js +39 -0
- package/web/chunk-e32y85kx.js +1 -0
- package/web/chunk-e53wfgb8.js +1 -0
- package/web/chunk-e6jxqbv7.js +3 -0
- package/web/chunk-esp1mmgr.js +1 -0
- package/web/chunk-ew3cgdtd.js +1 -0
- package/web/chunk-f26smjjf.js +2 -0
- package/web/chunk-f91wzwtk.js +1 -0
- package/web/chunk-fk0dh93x.js +89 -0
- package/web/chunk-fm2ybfj5.js +98 -0
- package/web/chunk-fscafg24.js +34 -0
- package/web/chunk-fz06t6km.js +55 -0
- package/web/chunk-g1ev11wx.js +1 -0
- package/web/chunk-g4azyef7.js +106 -0
- package/web/chunk-gjq1pxw3.js +1 -0
- package/web/chunk-gqw3f02j.js +140 -0
- package/web/chunk-h5ejbf6e.js +1 -0
- package/web/chunk-hev4hq89.js +2 -0
- package/web/chunk-hfaffkrh.js +1 -0
- package/web/chunk-hp167dbv.js +1 -0
- package/web/chunk-j2vt8c8v.js +1 -0
- package/web/chunk-jjh5jvva.js +1 -0
- package/web/chunk-jrcyc9s9.js +38 -0
- package/web/chunk-jwzd9tzk.js +24 -0
- package/web/chunk-k5btcvbg.js +1 -0
- package/web/chunk-ka3q31t1.js +1 -0
- package/web/chunk-kdyjnwdx.js +2 -0
- package/web/chunk-kpvgecwy.js +1 -0
- package/web/chunk-kq40ss39.js +1 -0
- package/web/chunk-m2d1sp30.js +1 -0
- package/web/chunk-n1dmrz44.js +2 -0
- package/web/chunk-n90cqdvg.js +2 -0
- package/web/chunk-nj0cv1cq.js +257 -0
- package/web/chunk-nzey7cpv.js +1 -0
- package/web/chunk-p3b9crsa.js +2 -0
- package/web/chunk-pf2ab8p8.js +1 -0
- package/web/chunk-pxe3vna4.js +1 -0
- package/web/chunk-q0p5xqe1.js +84 -0
- package/web/chunk-q5ke7a33.js +24 -0
- package/web/chunk-q7dsnvpf.js +1 -0
- package/web/chunk-qd8bxxdj.js +1 -0
- package/web/chunk-qefasa1j.js +2 -0
- package/web/chunk-qh7265qw.js +4 -0
- package/web/chunk-qnaqf0cr.js +1 -0
- package/web/chunk-r1dnh0s8.js +1 -0
- package/web/chunk-r5eakmw6.js +1 -0
- package/web/chunk-rg426vkf.js +1 -0
- package/web/chunk-rpmpttbk.js +12 -0
- package/web/chunk-rtf2zzzv.js +1 -0
- package/web/chunk-ry9256r7.js +1 -0
- package/web/chunk-rykfak98.js +2 -0
- package/web/chunk-scpwc9ev.js +1 -0
- package/web/chunk-srrfphes.js +1 -0
- package/web/chunk-ss1bcb0n.js +2 -0
- package/web/chunk-ssy07dd2.js +1 -0
- package/web/chunk-t6agpn2z.js +1 -0
- package/web/chunk-taynqrgq.js +142 -0
- package/web/chunk-tgpbhzn9.js +1 -0
- package/web/chunk-tmvakq7n.js +19 -0
- package/web/chunk-tqmwd9qp.js +139 -0
- package/web/chunk-ts7zrf5b.js +2 -0
- package/web/chunk-ttg6tbwx.js +2 -0
- package/web/chunk-v28fx2nd.js +1 -0
- package/web/chunk-v5cnt7c8.js +1 -0
- package/web/chunk-vt40e1kp.js +1136 -0
- package/web/chunk-w53rba6g.js +1 -0
- package/web/chunk-w86n42dy.js +1 -0
- package/web/chunk-w880psmw.js +1 -0
- package/web/chunk-wptv8atc.js +2 -0
- package/web/chunk-wtawdeej.css +1 -0
- package/web/chunk-xbty0rv7.js +41 -0
- package/web/chunk-xet1jjy9.js +1 -0
- package/web/chunk-xjxv8dg8.js +169 -0
- package/web/chunk-xrxne80b.js +62 -0
- package/web/chunk-xzp7jf7e.js +2 -0
- package/web/chunk-y0m8hrwz.js +303 -0
- package/web/chunk-y49fhfda.js +7 -0
- package/web/chunk-yd46jhqv.js +1 -0
- package/web/chunk-ydtrc1ay.js +2 -0
- package/web/chunk-z09emmrb.js +1 -0
- package/web/chunk-z7dcbxws.js +1 -0
- package/web/chunk-zbj1trar.js +2 -0
- package/web/chunk-zde7mj43.js +1 -0
- package/web/icon-192.png +0 -0
- package/web/icon-512.png +0 -0
- package/web/icon-maskable-512.png +0 -0
- package/web/icon-yx2p2pye.svg +13 -0
- package/web/icon.svg +13 -0
- package/web/index.html +23 -0
- package/web/install.ps1 +91 -0
- package/web/install.sh +177 -0
- package/web/inter-latin-wght-normal-an0py913.woff2 +0 -0
- package/web/jetbrains-mono-latin-wght-normal-hj2e42wt.woff2 +0 -0
- package/web/manifest-txf6vfbq.webmanifest +35 -0
- package/web/manifest.webmanifest +35 -0
- package/web/source-serif-4-latin-wght-italic-ta5tqqvz.woff2 +0 -0
- package/web/source-serif-4-latin-wght-normal-1yyvbhsz.woff2 +0 -0
- package/web/sw.js +90 -0
- package/worker.js +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{xi}from"./chunk-taynqrgq.js";export{xi as createGitGraphServices};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import{x,o,ee,a,t,_}from"./chunk-vt40e1kp.js";import{e,r,Ur,Le,Li,Ii,Sn,br,Ca,to,ne,Zt,D,Ri,rn,pt,Sa,no,ro,ao,Di,Ni,b,io,jr,ke,B,Ta,so,qr,Aa,p,q,et,tt,In,ln,Rr,Hr,Ka,mo,Ja,ji,U,N,fo,Ft,ei,Wi}from"./chunk-y0m8hrwz.js";import{Fr}from"./chunk-70qwwwak.js";function ze(i){let n=i?.constructor;return i===(typeof n==="function"?n.prototype:Object.prototype)}function De(i){if(i==null)return!0;if(Ka(i)){if(typeof i.splice!=="function"&&typeof i!=="string"&&!Rr(i)&&!ln(i)&&!Hr(i))return!1;return i.length===0}if(typeof i==="object"||typeof i==="function"){if(i instanceof Map||i instanceof Set)return i.size===0;let n=Object.keys(i);if(ze(i))return n.filter((s)=>s!=="constructor").length===0;return n.length===0}return!0}var Q="comm",le="rule",me="decl";var Fe="@media",Oe="@import";var Be="@supports";var Pe="@namespace",ie="@keyframes";var fe="@layer",Ne="@scope";var Ve=Math.abs,Y=String.fromCharCode;function ue(i){return i.trim()}function se(i,n,s){return i.replace(n,s)}function G(i,n){return i.charCodeAt(n)|0}function H(i,n,s){return i.slice(n,s)}function R(i){return i.length}function pe(i){return i.length}function Z(i,n){return n.push(i),i}var ge=1,J=1,Ge=0,F=0,T=0,te="";function ve(i,n,s,d,c,l,f,m){return{value:i,root:n,parent:s,type:d,props:c,children:l,line:ge,column:J,length:f,return:"",siblings:m}}function He(){return T}function Ue(){if(T=F>0?G(te,--F):0,J--,T===10)J=1,ge--;return T}function O(){if(T=F<Ge?G(te,F++):0,J++,T===10)J=1,ge++;return T}function W(){return G(te,F)}function de(){return F}function he(i,n){return H(te,i,n)}function re(i){switch(i){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function We(i){return ge=J=1,Ge=R(te=i),F=0,[]}function je(i){return te="",i}function ye(i){return ue(he(F-1,Me(i===91?i+2:i===40?i+1:i)))}function Ye(i){while(T=W())if(T<33)O();else break;return re(i)>2||re(T)>3?"":" "}function qe(i,n){while(--n&&O())if(T<48||T>102||T>57&&T<65||T>70&&T<97)break;return he(i,de()+(n<6&&W()==32&&O()==32))}function Me(i){while(O())switch(T){case i:return F;case 34:case 39:if(i!==34&&i!==39)Me(T);break;case 40:if(i===41)Me(i);break;case 92:O();break}return F}function Xe(i,n){while(O())if(i+T===57)break;else if(i+T===84&&W()===47)break;return"/*"+he(n,F-1)+"*"+Y(i===47?i:O())}function Ke(i){while(!re(W()))O();return he(i,F)}function Je(i){return je(we("",null,null,null,[""],i=We(i),0,[0],i))}function we(i,n,s,d,c,l,f,m,u){var h=0,y=0,w=f,v=0,C=0,A=0,k=1,E=1,M=1,I=0,S=0,P="",K=c,V=l,z=d,g=P;while(E)switch(A=S,S=O()){case 40:if(A!=108&&G(g,w-1)==58)I++,g+="(";else g+=ye(S);break;case 41:I--,g+=")";break;case 34:case 39:case 91:g+=ye(S);break;case 9:case 10:case 13:case 32:if(I>0){g+=Y(S);break}g+=Ye(A);break;case 92:g+=qe(de()-1,7);continue;case 47:switch(W()){case 42:case 47:if(Z(bt(Xe(O(),de()),n,s,u),u),(re(A||1)==5||re(W()||1)==5)&&R(g)&&H(g,-1,void 0)!==" ")g+=" ";break;default:g+="/"}break;case 123*k:m[h++]=R(g)*M;case 125*k:case 59:case 0:if(I>0&&S){g+=Y(S);break}switch(S){case 0:case 125:E=0;case 59+y:if(M==-1)g=se(g,/\f/g,"");if(C>0&&(R(g)-w||k===0))Z(C>32?Ze(g+";",d,s,w-1,u):Ze(se(g," ","")+";",d,s,w-2,u),u);break;case 59:g+=";";default:if(Z(z=Qe(g,n,s,h,y,c,m,P,K=[],V=[],w,l),l),S===123)if(y===0)we(g,n,z,z,K,l,w,m,V);else{switch(v){case 99:if(G(g,3)===110)break;case 108:if(G(g,2)===97)break;default:y=0;case 100:case 109:case 115:}if(y)we(i,z,z,d&&Z(Qe(i,z,z,0,0,c,m,P,c,K=[],w,V),V),c,V,w,m,d?K:V);else we(g,z,z,z,[""],V,0,m,V)}}h=y=C=0,k=M=1,P=g="",w=f;break;case 58:w=1+R(g),C=A;default:if(k<1){if(S==123)--k;else if(S==125&&k++==0&&Ue()==125)continue}switch(g+=Y(S),S*k){case 38:M=y>0?1:(g+="\f",-1);break;case 44:if(I>0)break;m[h++]=(R(g)-1)*M,M=1;break;case 64:if(W()===45)g+=ye(O());v=W(),y=w=R(P=g+=Ke(de())),S++;break;case 45:if(A===45&&R(g)==2)k=0}}return l}function Qe(i,n,s,d,c,l,f,m,u,h,y,w){var v=c-1,C=c===0?l:[""],A=pe(C);for(var k=0,E=0,M=0;k<d;++k)for(var I=0,S=H(i,v+1,v=Ve(E=f[k])),P=i;I<A;++I)if(P=ue(E>0?C[I]+" "+S:se(S,/&\f/g,C[I])))u[M++]=P;return ve(i,n,s,c===0?le:m,u,h,y,w)}function bt(i,n,s,d){return ve(i,n,s,Q,Y(He()),H(i,2,-2),0,d)}function Ze(i,n,s,d,c){return ve(i,n,s,me,H(i,0,d),H(i,d+1,-1),d,c)}function xe(i,n){var s="";for(var d=0;d<i.length;d++)s+=n(i[d],d,i,n)||"";return s}function er(i,n,s,d){switch(i.type){case fe:if(i.children.length)break;case Oe:case Pe:case me:return i.return=i.return||i.value;case Q:return"";case ie:return i.return=i.value+"{"+xe(i.children,d)+"}";case le:if(!R(i.value=i.props.join(",")))return""}return R(s=xe(i.children,d))?i.return=i.value+"{"+s+"}":""}function rr(i){var n=pe(i);return function(s,d,c,l){var f="";for(var m=0;m<n;m++)f+=i[m](s,d,c,l)||"";return f}}var nr="c4",St=e((i)=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),"detector"),Et=e(async()=>{let{diagram:i}=await (x("jrcyc9s9"),import("./chunk-jrcyc9s9.js"));return{id:nr,diagram:i}},"loader"),Tt={id:nr,detector:St,loader:Et},Ct=Tt,sr="flowchart-v2",kt=e((i)=>/^\s*(graph|flowchart)/.test(i),"detector"),Dt=e(async()=>{let{diagram:i}=await (x("amzgyy1k"),import("./chunk-amzgyy1k.js"));return{id:sr,diagram:i}},"loader"),Mt={id:sr,detector:kt,loader:Dt},_t=Mt,dr="agentflow",Lt=e((i)=>/^\s*agentflow-beta\b/.test(i),"detector"),At=e(async()=>{let{diagram:i}=await (x("3ee04tmm"),import("./chunk-3ee04tmm.js"));return{id:dr,diagram:i}},"loader"),It={id:dr,detector:Lt,loader:At},Rt=It,cr="swimlane",$t=e((i)=>/^\s*swimlane-beta\b/.test(i),"detector"),zt=e(async()=>{let{diagram:i}=await (x("cff5hcm8"),import("./chunk-cff5hcm8.js"));return{id:cr,diagram:i}},"loader"),Ot={id:cr,detector:$t,loader:zt},Bt=Ot,lr="er",Pt=e((i)=>/^\s*erDiagram/.test(i),"detector"),Nt=e(async()=>{let{diagram:i}=await (x("bj90t5gh"),import("./chunk-bj90t5gh.js"));return{id:lr,diagram:i}},"loader"),Vt={id:lr,detector:Pt,loader:Nt},Gt=Vt,mr="gitGraph",Ht=e((i)=>/^\s*gitGraph/.test(i),"detector"),Ut=e(async()=>{let{diagram:i}=await (x("g4azyef7"),import("./chunk-g4azyef7.js"));return{id:mr,diagram:i}},"loader"),Wt={id:mr,detector:Ht,loader:Ut},jt=Wt,fr="gantt",Yt=e((i)=>/^\s*gantt/.test(i),"detector"),qt=e(async()=>{let{diagram:i}=await (x("3jhyzmnf"),import("./chunk-3jhyzmnf.js"));return{id:fr,diagram:i}},"loader"),Xt={id:fr,detector:Yt,loader:qt},Kt=Xt,ur="info",Qt=e((i)=>/^\s*info/.test(i),"detector"),Jt=e(async()=>{let{diagram:i}=await (x("9yakxvjb"),import("./chunk-9yakxvjb.js"));return{id:ur,diagram:i}},"loader"),ea={id:ur,detector:Qt,loader:Jt},pr="pie",ra=e((i)=>/^\s*pie/.test(i),"detector"),ta=e(async()=>{let{diagram:i}=await (x("dzwxgqgm"),import("./chunk-dzwxgqgm.js"));return{id:pr,diagram:i}},"loader"),aa={id:pr,detector:ra,loader:ta},gr="quadrantChart",oa=e((i)=>/^\s*quadrantChart/.test(i),"detector"),ia=e(async()=>{let{diagram:i}=await (x("y49fhfda"),import("./chunk-y49fhfda.js"));return{id:gr,diagram:i}},"loader"),na={id:gr,detector:oa,loader:ia},sa=na,vr="xychart",da=e((i)=>/^\s*xychart(-beta)?/.test(i),"detector"),ca=e(async()=>{let{diagram:i}=await (x("bc78qf1m"),import("./chunk-bc78qf1m.js"));return{id:vr,diagram:i}},"loader"),la={id:vr,detector:da,loader:ca},ma=la,hr="requirement",fa=e((i)=>/^\s*requirement(Diagram)?/.test(i),"detector"),ua=e(async()=>{let{diagram:i}=await (x("q0p5xqe1"),import("./chunk-q0p5xqe1.js"));return{id:hr,diagram:i}},"loader"),pa={id:hr,detector:fa,loader:ua},ga=pa,yr="sequence",va=e((i)=>/^\s*sequenceDiagram/.test(i),"detector"),ha=e(async()=>{let{diagram:i}=await (x("xjxv8dg8"),import("./chunk-xjxv8dg8.js"));return{id:yr,diagram:i}},"loader"),ya={id:yr,detector:va,loader:ha},wa=ya,wr="classDiagram",xa=e((i)=>/^\s*classDiagram/.test(i),"detector"),ba=e(async()=>{let{diagram:i}=await (x("b4wbk7vc"),import("./chunk-b4wbk7vc.js"));return{id:wr,diagram:i}},"loader"),Ea={id:wr,detector:xa,loader:ba},ka=Ea,xr="stateDiagram",Da=e((i)=>/^\s*stateDiagram/.test(i),"detector"),Ma=e(async()=>{let{diagram:i}=await (x("9an7cjd9"),import("./chunk-9an7cjd9.js"));return{id:xr,diagram:i}},"loader"),_a={id:xr,detector:Da,loader:Ma},La=_a,Sr="journey",Ia=e((i)=>/^\s*journey/.test(i),"detector"),Ra=e(async()=>{let{diagram:i}=await (x("tqmwd9qp"),import("./chunk-tqmwd9qp.js"));return{id:Sr,diagram:i}},"loader"),$a={id:Sr,detector:Ia,loader:Ra},za=$a,be=4,ce=75,Fa=e((i)=>{let n=[];for(let c of i.split(/\s+/)){let l=[...c];while(l.length>ce)n.push(l.slice(0,ce).join("")),l=l.slice(ce);if(l.length>0)n.push(l.join(""))}let s=[],d="";for(let c of n){let l=d?`${d} ${c}`:c;if([...l].length>ce)s.push(d),d=c;else d=l}if(d)s.push(d);if(s.length>be){s.length=be;let c=s[be-1]??"";s[be-1]=`${[...c].slice(0,ce-3).join("")}...`}return s},"wrapErrorMessage"),Oa=e((i,n,s,d)=>{r.debug(`rendering svg for syntax error
|
|
2
|
+
`);let c=q(n),l=c.append("g"),f=Fa(d?.db.getErrorMessage?.()??""),m=f.length>0?500+f.length*56:512;c.attr("viewBox",`0 0 2412 ${m}`),B(c,100,m,!0),l.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),l.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),l.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),l.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),l.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),l.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),l.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),l.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${s}`),f.forEach((u,h)=>{l.append("text").attr("class","error-text").attr("x",1440).attr("y",510+h*56).attr("font-size","42px").style("text-anchor","middle").text(u)})},"draw"),Er={draw:Oa},Ba=Er,_e,Pa={clear(){_e=void 0},setErrorMessage(i){_e=i},getErrorMessage(){return _e}},Na={db:Pa,renderer:Er,parser:{parse:e(()=>{return},"parse")}},Va=Na,Tr="flowchart-elk",Ga=e((i,n={})=>{if(/^\s*flowchart-elk/.test(i))return n.layout="elk",!0;return!1},"detector"),Ha=e(async()=>{let{diagram:i}=await (x("amzgyy1k"),import("./chunk-amzgyy1k.js"));return{id:Tr,diagram:i}},"loader"),Ua={id:Tr,detector:Ga,loader:Ha},Wa=Ua,Cr="timeline",ja=e((i)=>/^\s*timeline/.test(i),"detector"),Ya=e(async()=>{let{diagram:i}=await (x("2ps6mepk"),import("./chunk-2ps6mepk.js"));return{id:Cr,diagram:i}},"loader"),qa={id:Cr,detector:ja,loader:Ya},Xa=qa,kr="mindmap",Qa=e((i)=>/^\s*mindmap/.test(i),"detector"),Za=e(async()=>{let{diagram:i}=await (x("fm2ybfj5"),import("./chunk-fm2ybfj5.js"));return{id:kr,diagram:i}},"loader"),eo={id:kr,detector:Qa,loader:Za},oo=eo,Dr="kanban",co=e((i)=>/^\s*kanban/.test(i),"detector"),lo=e(async()=>{let{diagram:i}=await (x("bgnnrpna"),import("./chunk-bgnnrpna.js"));return{id:Dr,diagram:i}},"loader"),uo={id:Dr,detector:co,loader:lo},po=uo,Mr="sankey",go=e((i)=>/^\s*sankey(-beta)?/.test(i),"detector"),vo=e(async()=>{let{diagram:i}=await (x("4v8en1yw"),import("./chunk-4v8en1yw.js"));return{id:Mr,diagram:i}},"loader"),ho={id:Mr,detector:go,loader:vo},yo=ho,_r="packet",wo=e((i)=>/^\s*packet(-beta)?/.test(i),"detector"),xo=e(async()=>{let{diagram:i}=await (x("jwzd9tzk"),import("./chunk-jwzd9tzk.js"));return{id:_r,diagram:i}},"loader"),bo={id:_r,detector:wo,loader:xo},Lr="radar",So=e((i)=>/^\s*radar-beta/.test(i),"detector"),Eo=e(async()=>{let{diagram:i}=await (x("xbty0rv7"),import("./chunk-xbty0rv7.js"));return{id:Lr,diagram:i}},"loader"),To={id:Lr,detector:So,loader:Eo},Ar="block",Co=e((i)=>/^\s*block(-beta)?/.test(i),"detector"),ko=e(async()=>{let{diagram:i}=await (x("gqw3f02j"),import("./chunk-gqw3f02j.js"));return{id:Ar,diagram:i}},"loader"),Do={id:Ar,detector:Co,loader:ko},Mo=Do,Ir="treeView",_o=e((i)=>/^\s*treeView-beta/.test(i),"detector"),Lo=e(async()=>{let{diagram:i}=await (x("45fzdcgz"),import("./chunk-45fzdcgz.js"));return{id:Ir,diagram:i}},"loader"),Ao={id:Ir,detector:_o,loader:Lo},Io=Ao,$r="architecture",Ro=e((i)=>/^\s*architecture/.test(i),"detector"),$o=e(async()=>{let{diagram:i}=await (x("a1z5qx1r"),import("./chunk-a1z5qx1r.js"));return{id:$r,diagram:i}},"loader"),zo={id:$r,detector:Ro,loader:$o},Fo=zo,zr="eventmodeling",Oo=e((i)=>/^\s*eventmodeling/.test(i),"detector"),Bo=e(async()=>{let{diagram:i}=await (x("e6jxqbv7"),import("./chunk-e6jxqbv7.js"));return{id:zr,diagram:i}},"loader"),Po={id:zr,detector:Oo,loader:Bo},No=Po,Or="ishikawa",Vo=e((i)=>/^\s*ishikawa(-beta)?\b/i.test(i),"detector"),Go=e(async()=>{let{diagram:i}=await (x("8p4tc9f4"),import("./chunk-8p4tc9f4.js"));return{id:Or,diagram:i}},"loader"),Ho={id:Or,detector:Vo,loader:Go},Br="venn",Uo=e((i)=>/^\s*venn-beta/.test(i),"detector"),Wo=e(async()=>{let{diagram:i}=await (x("fscafg24"),import("./chunk-fscafg24.js"));return{id:Br,diagram:i}},"loader"),jo={id:Br,detector:Uo,loader:Wo},Yo=jo,Pr="treemap",qo=e((i)=>/^\s*treemap/.test(i),"detector"),Xo=e(async()=>{let{diagram:i}=await (x("q5ke7a33"),import("./chunk-q5ke7a33.js"));return{id:Pr,diagram:i}},"loader"),Ko={id:Pr,detector:qo,loader:Xo},Nr="usecase",Qo=e((i)=>/^\s*usecase-beta(?:\s|$)/.test(i),"detector"),Zo=e(async()=>{let{diagram:i}=await (x("ca682sm6"),import("./chunk-ca682sm6.js"));return{id:Nr,diagram:i}},"loader"),Jo={id:Nr,detector:Qo,loader:Zo},Vr="wardley",ri=e((i)=>/^\s*wardley-beta/i.test(i),"detector"),ti=e(async()=>{let{diagram:i}=await (x("9dxjafp2"),import("./chunk-9dxjafp2.js"));return{id:Vr,diagram:i}},"loader"),ai={id:Vr,detector:ri,loader:ti},oi=ai,Gr="cynefin",ii=e((i)=>/^\s*cynefin-beta(?:[\s:]|$)/.test(i),"detector"),ni=e(async()=>{let{diagram:i}=await (x("xrxne80b"),import("./chunk-xrxne80b.js"));return{id:Gr,diagram:i}},"loader"),si={id:Gr,detector:ii,loader:ni},Wr="railroad",di=e((i)=>/^\s*railroad-beta/i.test(i),"detector"),ci=e(async()=>{let{diagram:i}=await (x("e32y85kx"),import("./chunk-e32y85kx.js"));return{id:Wr,diagram:i}},"loader"),li={id:Wr,detector:di,loader:ci},Yr="railroadEbnf",mi=e((i)=>/^\s*railroad-ebnf-beta/i.test(i),"detector"),fi=e(async()=>{let{diagram:i}=await (x("qd8bxxdj"),import("./chunk-qd8bxxdj.js"));return{id:Yr,diagram:i}},"loader"),ui={id:Yr,detector:mi,loader:fi},Xr="railroadAbnf",pi=e((i)=>/^\s*railroad-abnf-beta/i.test(i),"detector"),gi=e(async()=>{let{diagram:i}=await (x("2scce33n"),import("./chunk-2scce33n.js"));return{id:Xr,diagram:i}},"loader"),vi={id:Xr,detector:pi,loader:gi},Kr="railroadPeg",hi=e((i)=>/^\s*railroad-peg-beta/i.test(i),"detector"),yi=e(async()=>{let{diagram:i}=await (x("z7dcbxws"),import("./chunk-z7dcbxws.js"));return{id:Kr,diagram:i}},"loader"),wi={id:Kr,detector:hi,loader:yi},tr=!1,Te=e(()=>{if(tr)return;tr=!0,qr("error",Va,(i)=>i.toLowerCase().trim()==="error"),qr("---",{db:{clear:e(()=>{},"clear")},styles:{},renderer:{draw:e(()=>{},"draw")},parser:{parse:e(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:e(()=>null,"init")},(i)=>i.toLowerCase().trimStart().startsWith("---")),Ca(Wa,oo,Fo),Ca(Rt,Ct,po,ka,Gt,Kt,ea,aa,ga,wa,Bt,_t,Xa,jt,La,za,sa,yo,bo,ma,Mo,No,Io,To,Ho,Ko,li,ui,vi,wi,Yo,oi,si,Jo)},"addDiagrams"),xi=e(async()=>{r.debug("Loading registered diagrams");let n=(await Promise.allSettled(Object.entries(Sn).map(async([s,{detector:d,loader:c}])=>{if(!c)return;try{Aa(s)}catch{try{let{diagram:l,id:f}=await c();qr(f,l,d)}catch(l){throw r.error(`Failed to load external diagram with key ${s}. Removing from detectors.`),delete Sn[s],l}}}))).filter((s)=>s.status==="rejected");if(n.length>0){r.error(`Failed to load ${n.length} external diagrams`);for(let s of n)r.error(s);throw Error(`Failed to load ${n.length} external diagrams`)}},"loadRegisteredDiagrams"),bi="graphics-document document";function Qr(i,n){if(i.attr("role",bi),n!=="")i.attr("aria-roledescription",n)}e(Qr,"setA11yDiagramInfo");function Zr(i,n,s,d){if(i.insert===void 0)return;if(s){let c=`chart-desc-${d}`;i.attr("aria-describedby",c),i.insert("desc",":first-child").attr("id",c).text(s)}if(n){let c=`chart-title-${d}`;i.attr("aria-labelledby",c),i.insert("title",":first-child").attr("id",c).text(n)}}e(Zr,"addSVGa11yTitleDescription");var Se=class i{constructor(n,s,d,c,l){this.type=n,this.text=s,this.db=d,this.parser=c,this.renderer=l}static{e(this,"Diagram")}static async fromText(n,s={}){let d=typeof n==="string"?{raw:n,cleaned:n}:n,c=b(),l=br(d.cleaned,c);try{Aa(l)}catch{let v=to(l);if(!v)throw new Ii(`Diagram ${l} not found.`);let{id:C,diagram:A}=await v();qr(C,A)}let{db:f,parser:m,renderer:u,init:h}=Aa(l);if(m.parser)m.parser.yy=f;if(f.clear?.(),h?.(c),s.title)f.setDiagramTitle?.(s.title);let y=d.cleaned;if(f.preserveCommentsWhenParsing&&d.withComments){let v=c.maxTextSize??D.maxTextSize;if(d.withComments.length>v)r.warn(`Comment-preserving source exceeds maxTextSize (${d.withComments.length} > ${v}); parsing the comment-stripped text instead. Reported source positions will not account for comment lines.`);else y=d.withComments}let w=fo(y)+`
|
|
3
|
+
`;if(d.frontmatterLineOffset)f.setFrontmatterLineOffset?.(d.frontmatterLineOffset);return await m.parse(w),new i(l,w,f,m,u)}async render(n,s){await this.renderer.draw(this.text,n,s,this)}getParser(){return this.parser}getType(){return this.type}},ar=[],Si=e(()=>{ar.forEach((i)=>{i()}),ar=[]},"attachFunctions"),Ei=e((i)=>i.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function Jr(i){let n=Li(i);if(!n)return{text:i,metadata:{}};let s=n.indent,d=s?n.body.split(`
|
|
4
|
+
`).map((f)=>f.startsWith(s)?f.slice(s.length):f).join(`
|
|
5
|
+
`):n.body,c=tt(d,{schema:et})??{};c=typeof c==="object"&&!Array.isArray(c)?c:{};let l={};if(c.displayMode)l.displayMode=c.displayMode.toString();if(c.title)l.title=c.title.toString();if(c.config)l.config=c.config;return{text:i.slice(n.length),metadata:l}}e(Jr,"extractFrontMatter");var Ti=e((i)=>i.replace(/\r\n?/g,`
|
|
6
|
+
`).replace(/<(\w+)([^>]*)>/g,(n,s,d)=>"<"+s+d.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),Ci=e((i)=>{let{text:n,metadata:s}=Jr(i),{displayMode:d,title:c,config:l={}}=s;if(d){if(!l.gantt)l.gantt={};l.gantt.displayMode=d}return{title:c,config:l,text:n}},"processFrontmatter"),ki=e((i)=>{let n=N.detectInit(i)??{},s=N.detectDirective(i,"wrap");if(Array.isArray(s))n.wrap=s.some(({type:d})=>d==="wrap");else if(s?.type==="wrap")n.wrap=!0;return{text:mo(i),directive:n}},"processDirectives");function Re(i){let n=i,s=Ti(i),d=Ci(s),c=ki(d.text),l=U(d.config,c.directive),f=c.text,m=Ei(f),u=s.length>d.text.length?(s.substring(0,s.length-d.text.length).match(/\n/g)??[]).length:0;return{code:{raw:n,cleaned:m,withComments:f,frontmatterLineOffset:u},title:d.title,config:l}}e(Re,"preprocessDiagram");function rt(i){let n=new TextEncoder().encode(i),s=Array.from(n,(d)=>String.fromCodePoint(d)).join("");return btoa(s)}e(rt,"toBase64");var Mi=50000,_i="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Ai="sandbox",$i="loose",zi="http://www.w3.org/2000/svg",Fi="http://www.w3.org/1999/xlink",Oi="http://www.w3.org/1999/xhtml",Bi="100%",Pi="100%",Vi="border:0;margin:0;",Gi="margin:0",Hi="allow-top-navigation-by-user-activation allow-popups",Ui='The "iframe" tag is not supported by your browser.',Yi=["foreignobject"],qi=["dominant-baseline"];function $e(i){let n=Re(i);jr();let s;try{s=br(n.code.cleaned,b())}catch{s=void 0}return Sa(s),io(n.config??{}),n}e($e,"processAndSetConfigs");async function at(i,n){Te();try{let{code:s,config:d}=$e(i);return{diagramType:(await Se.fromText(s)).type,config:d}}catch(s){if(n?.suppressErrors)return!1;throw s}finally{Sa(void 0)}}e(at,"parse");var or=e((i,n,s=[])=>{let d=Ri(`{ ${s.join(" !important; ")} !important; }`);return`.${i} ${n} ${d}`},"cssImportantStyles"),Xi=e((i,n=new Map)=>{let s=new CSSStyleSheet;if(i.fontFamily!==void 0)s.insertRule(`:root { --mermaid-font-family: ${i.fontFamily}}`,s.cssRules.length);if(i.altFontFamily!==void 0)s.insertRule(`:root { --mermaid-alt-font-family: ${i.altFontFamily}}`,s.cssRules.length);if(n instanceof Map){let m=ke(i)?["> *","span"]:["rect","polygon","ellipse","circle","path"];n.forEach((u)=>{if(!De(u.styles))m.forEach((h)=>{s.insertRule(or(u.id,h,u.styles),s.cssRules.length)});if(!De(u.textStyles))s.insertRule(or(u.id,"tspan",(u?.textStyles||[]).map((h)=>h.replace("color","fill"))),s.cssRules.length)})}let d="";if(i.themeCSS!==void 0)if(typeof s.replaceSync==="function"){let c=new CSSStyleSheet;c.replaceSync(i.themeCSS),d=Ta(c)+`
|
|
7
|
+
`}else d+=`${i.themeCSS}
|
|
8
|
+
`;return d+Ta(s)},"createCssStyles"),Ki=e((i,n)=>xe(Je(`${i}{${n}}`),rr([e(function(d,c,l,f){if(d.type==="rule"&&Array.isArray(d.props)){if(d.parent&&d.parent.type===ie)return;d.props=d.props.map((m)=>{if(m===i&&Array.isArray(d.children)&&d.children.every((h)=>{if(h.type!=="decl")return!1;return new Set(["font-family","font-size","fill"]).has(h.props)}))return m;if(!((m.startsWith(`${i} `)||m.startsWith(`${i}>`))&&!m.startsWith(`${i} ||`)))return`${i} ${m}`;return m})}else if(d.type.startsWith("@")){if(![Fe,Be,fe,Ne,"@container","@starting-style",ie].includes(d.type))r.warn(`Removing unsupported at-rule ${d.type} from CSS`),d.type=Q}},"addNamespace"),er])),"compileCSS"),Qi=e((i,n,s,d)=>{let c=Xi(i,s),l=so(n,c,{...i.themeVariables,theme:i.theme,look:i.look},d);return Ki(d,l)},"createUserStyles"),Zi=e((i="",n,s)=>{let d=i;if(!s&&!n)d=d.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#');return d=Ft(d),d=d.replace(/<br>/g,"<br/>"),d},"cleanUpSvgCode"),Ji=e((i="",n)=>{let s=n?.viewBox?.baseVal?.height?n.viewBox.baseVal.height+"px":Pi,d=rt(`<body style="${Gi}">${i}</body>`);return`<iframe style="width:${Bi};height:${s};${Vi}" src="data:text/html;charset=UTF-8;base64,${d}" sandbox="${Hi}">
|
|
9
|
+
${Ui}
|
|
10
|
+
</iframe>`},"putIntoIFrame"),ir=e((i,n,s,d,c)=>{let l=i.append("div");if(l.attr("id",s),d)l.attr("style",d);let f=l.append("svg").attr("id",n).attr("width","100%").attr("xmlns",zi);if(c)f.attr("xmlns:xlink",c);return f.append("g"),i},"appendDivSvgG");function Ie(i,n){return i.append("iframe").attr("id",n).attr("style","width: 100%; height: 100%;").attr("sandbox","")}e(Ie,"sandboxedIframe");var en=e((i,n,s,d)=>{i.getElementById(n)?.remove(),i.getElementById(s)?.remove(),i.getElementById(d)?.remove()},"removeExistingElements"),tn=e(async function(i,n,s){Te();let d=$e(n),c=d.code;n=c.cleaned;let l=b();if(r.debug(l),n.length>(l?.maxTextSize??Mi))n=_i,c={raw:n,cleaned:n};let f=`#${i}`,m="i"+i,u="#"+m,h="d"+i,y="#"+h,w=e(()=>{let oe=p(C?u:y).node();if(oe&&"remove"in oe)oe.remove()},"removeTempElements"),v=p(document.body),C=l.securityLevel===Ai,A=l.securityLevel===$i,k=l.fontFamily;if(s!==void 0){if(s)s.innerHTML="";if(C){let L=Ie(p(s),m);v=p(L.nodes()[0].contentDocument.body),v.node().style.margin="0"}else v=p(s);ir(v,i,h,`font-family: ${k}`,Fi)}else{if(en(document,i,h,m),C){let L=Ie(p(document.body),m);v=p(L.nodes()[0].contentDocument.body),v.node().style.margin="0"}else v=p("body");ir(v,i,h)}let E,M;try{E=await Se.fromText(c,{title:d.title})}catch(L){if(l.suppressErrorRendering)throw w(),L;E=await Se.fromText("error"),M=L,E.db.setErrorMessage?.(ji(L))}let I=v.select(y).node(),S=E.type,P=I.firstChild,K=P.firstChild,V=E.renderer.getClasses?.(n,E),z=Qi(l,S,V,f),g=document.createElement("style");g.innerHTML=z,P.insertBefore(g,K);try{await E.renderer.draw(n,i,"12.2.0",E)}catch(L){if(l.suppressErrorRendering)w();else Ba.draw(n,i,"12.2.0");throw L}let vt=v.select(`${y} svg`),ht=E.db.getAccTitle?.(),yt=E.db.getAccDescription?.();it(S,vt,ht,yt);let wt=e(()=>{v.select(`[id="${i}"]`).selectAll("foreignobject > *").attr("xmlns",Oi);let L=v.select(y).node().innerHTML;if(r.debug("config.arrowMarkerAbsolute",l.arrowMarkerAbsolute),L=Zi(L,C,pt(l.arrowMarkerAbsolute)),C){let oe=v.select(y+" svg").node();L=Ji(L,oe)}else if(!A)L=Le.sanitize(L,{ADD_TAGS:Yi,ADD_ATTR:qi,HTML_INTEGRATION_POINTS:{foreignobject:!0}});return Si(),L},"serializeSvg")();if(M)throw M;return w(),{diagramType:S,svg:wt,bindFunctions:E.db.bindFunctions}},"renderDiagram"),an=e(async function(i,n,s){try{return await tn(i,n,s)}finally{Sa(void 0)}},"render");function ot(i={}){let n=ne({},i);if(n?.fontFamily&&!n.themeVariables?.fontFamily){if(!n.themeVariables)n.themeVariables={};n.themeVariables.fontFamily=n.fontFamily}ro(n);let s=rn.theme;if(n?.theme&&Object.hasOwn(Zt,n.theme))n.themeVariables=Zt[n.theme].getThemeVariables(n.themeVariables);else if(n){if(n.theme!=null&&n.theme!=="null")n.theme=s;n.themeVariables=Zt[s].getThemeVariables(n.themeVariables)}let d=typeof n==="object"?no(n):Di();Ur(d.logLevel),Te()}e(ot,"initialize");var on=e((i,n={})=>{let{code:s}=Re(i);return Se.fromText(s,n)},"getDiagramFromText");function it(i,n,s,d){Qr(n,i),Zr(n,s,d,n.attr("id"))}e(it,"addA11yInfo");var X=Object.freeze({render:an,parse:at,getDiagramFromText:on,initialize:ot,getConfig:b,setConfig:Ni,getSiteConfig:Di,updateSiteConfig:ao,reset:e(()=>{jr()},"reset"),globalReset:e(()=>{jr(rn)},"globalReset"),defaultConfig:rn});Ur(b().logLevel);jr(b());var nn=e((i,n,s)=>{if(r.warn(i),Ja(i)){if(s)s(i.str,i.hash);n.push({...i,message:i.str,error:i})}else{if(s)s(i);if(i instanceof Error)n.push({str:i.message,message:i.message,hash:i.name,error:i})}},"handleError"),nt=e(async function(i={querySelector:".mermaid"}){try{await sn(i)}catch(n){if(Ja(n))r.error(n.str);if(j.parseError)j.parseError(n);if(!i.suppressErrors)throw r.error("Use the suppressErrors option to suppress these errors"),n}},"run"),sn=e(async function({postRenderCallback:i,querySelector:n,nodes:s}={querySelector:".mermaid"}){let d=X.getConfig();r.debug(`${!i?"No ":""}Callback function found`);let c;if(s)c=s;else if(n)c=document.querySelectorAll(n);else throw Error("Nodes and querySelector are both undefined");if(r.debug(`Found ${c.length} diagrams`),d?.startOnLoad!==void 0)r.debug("Start On Load: "+d?.startOnLoad),X.updateSiteConfig({startOnLoad:d?.startOnLoad});let l=new N.InitIDGenerator(d.deterministicIds,d.deterministicIDSeed),f,m=[];for(let u of Array.from(c)){if(r.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${l.next()}`;f=u.innerHTML,f=ei(N.entityDecode(f)).trim().replace(/<br\s*\/?>/gi,"<br/>");let y=N.detectInit(f);if(y)r.debug("Detected early reinit: ",y);try{let{svg:w,bindFunctions:v}=await lt(h,f,u);if(u.innerHTML=w,i)await i(h);if(v)v(u)}catch(w){nn(w,m,j.parseError)}}if(m.length>0)throw m[0]},"runThrowsErrors"),st=e(function(i){X.initialize(i)},"initialize"),dn=e(async function(i,n,s){if(r.warn("mermaid.init is deprecated. Please use run instead."),i)st(i);let d={postRenderCallback:s,querySelector:".mermaid"};if(typeof n==="string")d.querySelector=n;else if(n)if(n instanceof HTMLElement)d.nodes=[n];else d.nodes=n;await nt(d)},"init"),cn=e(async(i,{lazyLoad:n=!0}={})=>{if(Te(),Ca(...i),n===!1)await xi()},"registerExternalDiagrams"),dt=e(function(){if(j.startOnLoad){let{startOnLoad:i}=X.getConfig();if(i)j.run().catch((n)=>r.error("Mermaid failed to initialize",n))}},"contentLoaded");if(typeof document<"u")window.addEventListener("load",dt,!1);var mn=e(function(i){j.parseError=i},"setParseErrorHandler"),Ee=[],Ae=!1,ct=e(async()=>{if(Ae)return;Ae=!0;while(Ee.length>0){let i=Ee.shift();if(i)try{await i()}catch(n){r.error("Error executing queue",n)}}Ae=!1},"executeQueue"),fn=e(async(i,n)=>new Promise((s,d)=>{let c=e(()=>new Promise((l,f)=>{X.parse(i,n).then((m)=>{l(m),s(m)},(m)=>{r.error("Error parsing",m),j.parseError?.(m),f(m),d(m)})}),"performCall");Ee.push(c),ct().catch(d)}),"parse"),lt=e((i,n,s)=>new Promise((d,c)=>{let l=e(()=>new Promise((f,m)=>{X.render(i,n,s).then((u)=>{f(u),d(u)},(u)=>{r.error("Error parsing",u),j.parseError?.(u),m(u),c(u)})}),"performCall");Ee.push(l),ct().catch(c)}),"render"),un=e(()=>Object.keys(Sn).map((i)=>({id:i})),"getRegisteredDiagramsMetadata"),j={startOnLoad:!0,mermaidAPI:X,parse:fn,render:lt,init:dn,run:nt,registerExternalDiagrams:cn,registerLayoutLoaders:Wi,initialize:st,parseError:void 0,contentLoaded:dt,setParseErrorHandler:mn,detectType:br,registerIconPacks:In,getRegisteredDiagramsMetadata:un},Ce=j;/*! Check if previously processed *//*!
|
|
11
|
+
* Wait for document loaded before starting the execution
|
|
12
|
+
*/function mt(i,n){let s=n?.colors?.hex,d=n?.fonts?.sans||"var(--font-sans)";if(i==="dark")return{darkMode:!0,fontFamily:d,fontSize:"14px",useGradient:!1,dropShadow:"none",background:"transparent",mainBkg:"#1c2a3d",nodeBkg:"#1c2a3d",nodeBorder:"#2f5c94",nodeTextColor:"#eef1f5",primaryColor:"#1c2a3d",primaryBorderColor:"#2f5c94",primaryTextColor:"#eef1f5",secondaryColor:"#21252b",secondaryBorderColor:"#3e4552",secondaryTextColor:"#c2c8d2",tertiaryColor:"#1d2127",tertiaryBorderColor:"#333945",tertiaryTextColor:"#c2c8d2",lineColor:"#6d7887",arrowheadColor:"#8a95a5",defaultLinkColor:"#6d7887",edgeLabelBackground:s?.panel??"#1f2329",labelBoxBkgColor:s?.panel??"#1f2329",labelBoxBorderColor:s?.line??"#333945",labelTextColor:s?.dim??"#c2c8d2",textColor:s?.dim??"#c2c8d2",titleColor:s?.ink??"#eef1f5",clusterBkg:"#1b1e24",clusterBorder:"#353b47",radius:8,strokeWidth:"1.5px"};return{darkMode:!1,fontFamily:d,fontSize:"14px",useGradient:!1,dropShadow:"none",background:"transparent",mainBkg:"#eef4fd",nodeBkg:"#eef4fd",nodeBorder:"#a9c8f1",nodeTextColor:"#181d24",primaryColor:"#eef4fd",primaryBorderColor:"#a9c8f1",primaryTextColor:"#181d24",secondaryColor:"#eef1f4",secondaryBorderColor:"#d0d5dd",secondaryTextColor:"#535e6e",tertiaryColor:"#e8ecf0",tertiaryBorderColor:"#cbd2dc",tertiaryTextColor:"#535e6e",lineColor:"#98a2b0",arrowheadColor:"#6b7787",defaultLinkColor:"#98a2b0",edgeLabelBackground:s?.panel??"#ffffff",labelBoxBkgColor:s?.panel??"#ffffff",labelBoxBorderColor:s?.line??"#e2e6eb",labelTextColor:s?.dim??"#535e6e",textColor:s?.dim??"#535e6e",titleColor:s?.ink??"#181d24",clusterBkg:"#f8fafc",clusterBorder:"#e2e6eb",radius:8,strokeWidth:"1.5px"}}function ft(i){let n=i==="dark"?{fill:"#3a2a17",stroke:"#a86b14"}:{fill:"#fff6e5",stroke:"#f0bf5c"};return`
|
|
13
|
+
.node rect, .node .basic.label-container { rx: 10px; ry: 10px; }
|
|
14
|
+
.node .label, .nodeLabel { font-weight: 500; }
|
|
15
|
+
.node polygon { fill: ${n.fill} !important; stroke: ${n.stroke} !important; }
|
|
16
|
+
.edgeLabel, .edgeLabel p, .edgeLabel rect { border-radius: 999px; font-size: 12px; }
|
|
17
|
+
.edgeLabel p { padding: 1px 6px; }
|
|
18
|
+
.cluster rect { rx: 12px; ry: 12px; stroke-dasharray: 4 3; }
|
|
19
|
+
`}var pn=60,ae=new Map;function ut(i,n,s=""){return`${n}:${s}:${i}`}function gn(i,n){if(ae.size>=pn){let s=ae.keys().next().value;if(s!==void 0)ae.delete(s)}ae.set(i,n)}var gt;function vn(i,n,s){let d=s??i;if(gt===d)return;Ce.initialize({startOnLoad:!1,suppressErrorRendering:!0,securityLevel:"strict",theme:"base",themeVariables:mt(i,n),themeCSS:ft(i),fontFamily:n?.fonts?.sans||"var(--font-sans)",flowchart:{useMaxWidth:!1,curve:"basis",padding:14,nodeSpacing:44,rankSpacing:56},sequence:{useMaxWidth:!1},state:{useMaxWidth:!1},class:{useMaxWidth:!1},er:{useMaxWidth:!1},gantt:{useMaxWidth:!1},mindmap:{useMaxWidth:!1},timeline:{useMaxWidth:!1}}),gt=d}var hn=0;async function yn(i,n,s,d,c){vn(n,d,c);let l=`${s}-${++hn}`;try{let{svg:f}=await Ce.render(l,i);return f.replace(/filter="url\(#[^"]+\)"/g,"").replace(/filter:\s*url\(#[^)]+\);?/g,"")}finally{document.getElementById(`d${l}`)?.remove()}}var wn=(i)=>i instanceof Error?i.message:String(i);function xs(i){let n=_(),s=n.useTheme?.(),d=n.useColorScheme?.(),c=s?.resolved??d??"light",l=s?.tokens,f=s?.themeID?`${s.themeID}-${c}`:c,m=`mermaid-${ee().replace(/[^\w-]/g,"")}`,u=i.code.trim(),[h,y]=a(()=>ae.get(ut(u,c,f))),[w,v]=a(),[C,A]=a(!h);return o(()=>{let k=ut(u,c,f),E=ae.get(k);if(E){y(E),v(void 0),A(!1);return}let M=!0;A(!0);let I=setTimeout(async()=>{try{if(i.streaming&&!await Ce.parse(u,{suppressErrors:!0})){if(M)A(!1);return}let S=await yn(u,c,m,l,f);if(gn(k,S),!M)return;y(S),v(void 0)}catch(S){if(M)v(wn(S))}if(M)A(!1)},i.streaming?200:0);return()=>{M=!1,clearTimeout(I)}},[u,c,f,l,i.streaming,m]),t(Fr,{title:"流程图",code:i.code,codeLang:"mermaid",rendered:Boolean(h),pending:C,streaming:i.streaming,error:w,children:t("div",{role:"img","aria-label":"Mermaid 流程图",className:"flex overflow-x-auto px-6 py-7 [background-image:radial-gradient(var(--color-line)_1px,transparent_1px)] [background-size:16px_16px] [&_svg]:mx-auto [&_svg]:h-auto [&_svg]:max-w-full",dangerouslySetInnerHTML:{__html:h??""}})})}export{xs as MermaidBlock};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import{e,B,C,S,E,T,A,I,L,s,p}from"./chunk-y0m8hrwz.js";import{nn,Br,Xi,Ke}from"./chunk-p3b9crsa.js";import{bt}from"./chunk-qefasa1j.js";import{je}from"./chunk-2m12wyrb.js";var nt=function(){var t=e(function(u,n,a,o){for(a=a||{},o=u.length;o--;a[u[o]]=n);return a},"o"),r=[6,8,10,11,12,14,16,17,18],l=[1,9],g=[1,10],i=[1,11],y=[1,12],m=[1,13],c=[1,14],x={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:e(function(n,a,o,d,f,h,w){var _=h.length-1;switch(f){case 1:return h[_-1];case 2:this.$=[];break;case 3:h[_-1].push(h[_]),this.$=h[_-1];break;case 4:case 5:this.$=h[_];break;case 6:case 7:this.$=[];break;case 8:d.setDiagramTitle(h[_].substr(6)),this.$=h[_].substr(6);break;case 9:this.$=h[_].trim(),d.setAccTitle(this.$);break;case 10:case 11:this.$=h[_].trim(),d.setAccDescription(this.$);break;case 12:d.addSection(h[_].substr(8)),this.$=h[_].substr(8);break;case 13:d.addTask(h[_-1],h[_]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(r,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:l,12:g,14:i,16:y,17:m,18:c},t(r,[2,7],{1:[2,1]}),t(r,[2,3]),{9:15,11:l,12:g,14:i,16:y,17:m,18:c},t(r,[2,5]),t(r,[2,6]),t(r,[2,8]),{13:[1,16]},{15:[1,17]},t(r,[2,11]),t(r,[2,12]),{19:[1,18]},t(r,[2,4]),t(r,[2,9]),t(r,[2,10]),t(r,[2,13])],defaultActions:{},parseError:e(function(n,a){if(a.recoverable)this.trace(n);else{var o=Error(n);throw o.hash=a,o}},"parseError"),parse:e(function(n){var a=this,o=[0],d=[],f=[null],h=[],w=this.table,_="",z=0,ot=0,ct=0,vt=2,ht=1,wt=h.slice.call(arguments,1),v=Object.create(this.lexer),O={yy:{}};for(var Q in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,Q))O.yy[Q]=this.yy[Q];if(v.setInput(n,O.yy),O.yy.lexer=v,O.yy.parser=this,typeof v.yylloc>"u")v.yylloc={};var D=v.yylloc;h.push(D);var Tt=v.options&&v.options.ranges;if(typeof O.yy.parseError==="function")this.parseError=O.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function St(F){o.length=o.length-2*F,f.length=f.length-F,h.length=h.length-F}e(St,"popStack");function ut(){var F=d.pop()||v.lex()||ht;if(typeof F!=="number"){if(F instanceof Array)d=F,F=d.pop();F=a.symbols_[F]||F}return F}e(ut,"lex");var M,tt,Y,P,Gt,et,q={},Z,j,yt,J;while(!0){if(Y=o[o.length-1],this.defaultActions[Y])P=this.defaultActions[Y];else{if(M===null||typeof M>"u")M=ut();P=w[Y]&&w[Y][M]}if(typeof P>"u"||!P.length||!P[0]){var rt="";J=[];for(Z in w[Y])if(this.terminals_[Z]&&Z>vt)J.push("'"+this.terminals_[Z]+"'");if(v.showPosition)rt="Parse error on line "+(z+1)+`:
|
|
2
|
+
`+v.showPosition()+`
|
|
3
|
+
Expecting `+J.join(", ")+", got '"+(this.terminals_[M]||M)+"'";else rt="Parse error on line "+(z+1)+": Unexpected "+(M==ht?"end of input":"'"+(this.terminals_[M]||M)+"'");this.parseError(rt,{text:v.match,token:this.terminals_[M]||M,line:v.yylineno,loc:D,expected:J})}if(P[0]instanceof Array&&P.length>1)throw Error("Parse Error: multiple actions possible at state: "+Y+", token: "+M);switch(P[0]){case 1:if(o.push(M),f.push(v.yytext),h.push(v.yylloc),o.push(P[1]),M=null,!tt){if(ot=v.yyleng,_=v.yytext,z=v.yylineno,D=v.yylloc,ct>0)ct--}else M=tt,tt=null;break;case 2:if(j=this.productions_[P[1]][1],q.$=f[f.length-j],q._$={first_line:h[h.length-(j||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(j||1)].first_column,last_column:h[h.length-1].last_column},Tt)q._$.range=[h[h.length-(j||1)].range[0],h[h.length-1].range[1]];if(et=this.performAction.apply(q,[_,ot,z,O.yy,P[1],f,h].concat(wt)),typeof et<"u")return et;if(j)o=o.slice(0,-1*j*2),f=f.slice(0,-1*j),h=h.slice(0,-1*j);o.push(this.productions_[P[1]][0]),f.push(q.$),h.push(q._$),yt=w[o[o.length-2]][o[o.length-1]],o.push(yt);break;case 3:return!0}}return!0},"parse")},k=function(){var u={EOF:1,parseError:e(function(a,o){if(this.yy.parser)this.yy.parser.parseError(a,o);else throw Error(a)},"parseError"),setInput:e(function(n,a){if(this.yy=a||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},"setInput"),input:e(function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var a=n.match(/(?:\r\n?|\n).*/g);if(a)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),n},"input"),unput:e(function(n){var a=n.length,o=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var d=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),o.length-1)this.yylineno-=o.length-1;var f=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:o?(o.length===d.length?this.yylloc.first_column:0)+d[d.length-o.length].length-o[0].length:this.yylloc.first_column-a},this.options.ranges)this.yylloc.range=[f[0],f[0]+this.yyleng-a];return this.yyleng=this.yytext.length,this},"unput"),more:e(function(){return this._more=!0,this},"more"),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:e(function(n){this.unput(this.match.slice(n))},"less"),pastInput:e(function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var n=this.match;if(n.length<20)n+=this._input.substr(0,20-n.length);return(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var n=this.pastInput(),a=Array(n.length+1).join("-");return n+this.upcomingInput()+`
|
|
5
|
+
`+a+"^"},"showPosition"),test_match:e(function(n,a){var o,d,f;if(this.options.backtrack_lexer){if(f={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges)f.yylloc.range=this.yylloc.range.slice(0)}if(d=n[0].match(/(?:\r\n?|\n).*/g),d)this.yylineno+=d.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,this.yyleng=this.yytext.length,this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];if(this._more=!1,this._backtrack=!1,this._input=this._input.slice(n[0].length),this.matched+=n[0],o=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(o)return o;else if(this._backtrack){for(var h in f)this[h]=f[h];return!1}return!1},"test_match"),next:e(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var n,a,o,d;if(!this._more)this.yytext="",this.match="";var f=this._currentRules();for(var h=0;h<f.length;h++)if(o=this._input.match(this.rules[f[h]]),o&&(!a||o[0].length>a[0].length)){if(a=o,d=h,this.options.backtrack_lexer)if(n=this.test_match(o,f[h]),n!==!1)return n;else if(this._backtrack){a=!1;continue}else return!1;else if(!this.options.flex)break}if(a){if(n=this.test_match(a,f[d]),n!==!1)return n;return!1}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:e(function(){var a=this.next();if(a)return a;else return this.lex()},"lex"),begin:e(function(a){this.conditionStack.push(a)},"begin"),popState:e(function(){var a=this.conditionStack.length-1;if(a>0)return this.conditionStack.pop();else return this.conditionStack[0]},"popState"),_currentRules:e(function(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1])return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;else return this.conditions.INITIAL.rules},"_currentRules"),topState:e(function(a){if(a=this.conditionStack.length-1-Math.abs(a||0),a>=0)return this.conditionStack[a];else return"INITIAL"},"topState"),pushState:e(function(a){this.begin(a)},"pushState"),stateStackSize:e(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:e(function(a,o,d,f){var h=f;switch(d){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return u}();x.lexer=k;function b(){this.yy={}}return e(b,"Parser"),b.prototype=x,x.Parser=b,new b}();nt.parser=nt;var $t=nt,X="",at=[],G=[],H=[],Mt=e(function(){at.length=0,G.length=0,X="",H.length=0,C()},"clear"),Et=e(function(t){X=t,at.push(t)},"addSection"),Ct=e(function(){return at},"getSections"),Pt=e(function(){let t=dt(),r=100,l=0;while(!t&&l<r)t=dt(),l++;return G.push(...H),G},"getTasks"),It=e(function(){let t=[];return G.forEach((l)=>{if(l.people)t.push(...l.people)}),[...new Set(t)].sort()},"updateActors"),At=e(function(t,r){let l=r.substr(1).split(":"),g=0,i=[];if(l.length===1)g=Number(l[0]),i=[];else g=Number(l[0]),i=l[1].split(",");let y=i.map((c)=>c.trim()),m={section:X,type:X,people:y,task:t,score:g};H.push(m)},"addTask"),Ft=e(function(t){let r={section:X,type:X,description:t,task:t,classes:[]};G.push(r)},"addTaskOrg"),dt=e(function(){let t=e(function(l){return H[l].processed},"compileTask"),r=!0;for(let[l,g]of H.entries())t(l),r=r&&g.processed;return r},"compileTasks"),Vt=e(function(){return It()},"getActors"),ft={getConfig:e(()=>s().journey,"getConfig"),clear:Mt,setDiagramTitle:I,getDiagramTitle:L,setAccTitle:S,getAccTitle:E,setAccDescription:T,getAccDescription:A,addSection:Et,getSections:Ct,getTasks:Pt,addTask:At,addTaskOrg:Ft,getActors:Vt},Rt=e((t)=>`.label {
|
|
7
|
+
font-family: ${t.fontFamily};
|
|
8
|
+
color: ${t.textColor};
|
|
9
|
+
}
|
|
10
|
+
.mouth {
|
|
11
|
+
stroke: #666;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
line {
|
|
15
|
+
stroke: ${t.textColor}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.legend {
|
|
19
|
+
fill: ${t.textColor};
|
|
20
|
+
font-family: ${t.fontFamily};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.label text {
|
|
24
|
+
fill: #333;
|
|
25
|
+
}
|
|
26
|
+
.label {
|
|
27
|
+
color: ${t.textColor}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.face {
|
|
31
|
+
${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"};
|
|
32
|
+
stroke: #999;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.node rect,
|
|
36
|
+
.node circle,
|
|
37
|
+
.node ellipse,
|
|
38
|
+
.node polygon,
|
|
39
|
+
.node path {
|
|
40
|
+
fill: ${t.mainBkg};
|
|
41
|
+
stroke: ${t.nodeBorder};
|
|
42
|
+
stroke-width: 1px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.node .label {
|
|
46
|
+
text-align: center;
|
|
47
|
+
}
|
|
48
|
+
.node.clickable {
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.arrowheadPath {
|
|
53
|
+
fill: ${t.arrowheadColor};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.edgePaths .path {
|
|
57
|
+
stroke: ${t.lineColor};
|
|
58
|
+
stroke-width: 1.5px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.flowchart-link {
|
|
62
|
+
stroke: ${t.lineColor};
|
|
63
|
+
fill: none;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.edgeLabel {
|
|
67
|
+
background-color: ${t.edgeLabelBackground};
|
|
68
|
+
rect {
|
|
69
|
+
opacity: 0.5;
|
|
70
|
+
}
|
|
71
|
+
text-align: center;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.cluster rect {
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.cluster text {
|
|
78
|
+
fill: ${t.titleColor};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
div.mermaidTooltip {
|
|
82
|
+
position: absolute;
|
|
83
|
+
text-align: center;
|
|
84
|
+
max-width: 200px;
|
|
85
|
+
padding: 2px;
|
|
86
|
+
font-family: ${t.fontFamily};
|
|
87
|
+
font-size: 12px;
|
|
88
|
+
background: ${t.tertiaryColor};
|
|
89
|
+
border: 1px solid ${t.border2};
|
|
90
|
+
border-radius: 2px;
|
|
91
|
+
pointer-events: none;
|
|
92
|
+
z-index: 100;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.task-type-0, .section-type-0 {
|
|
96
|
+
${t.fillType0?`fill: ${t.fillType0}`:""};
|
|
97
|
+
}
|
|
98
|
+
.task-type-1, .section-type-1 {
|
|
99
|
+
${t.fillType0?`fill: ${t.fillType1}`:""};
|
|
100
|
+
}
|
|
101
|
+
.task-type-2, .section-type-2 {
|
|
102
|
+
${t.fillType0?`fill: ${t.fillType2}`:""};
|
|
103
|
+
}
|
|
104
|
+
.task-type-3, .section-type-3 {
|
|
105
|
+
${t.fillType0?`fill: ${t.fillType3}`:""};
|
|
106
|
+
}
|
|
107
|
+
.task-type-4, .section-type-4 {
|
|
108
|
+
${t.fillType0?`fill: ${t.fillType4}`:""};
|
|
109
|
+
}
|
|
110
|
+
.task-type-5, .section-type-5 {
|
|
111
|
+
${t.fillType0?`fill: ${t.fillType5}`:""};
|
|
112
|
+
}
|
|
113
|
+
.task-type-6, .section-type-6 {
|
|
114
|
+
${t.fillType0?`fill: ${t.fillType6}`:""};
|
|
115
|
+
}
|
|
116
|
+
.task-type-7, .section-type-7 {
|
|
117
|
+
${t.fillType0?`fill: ${t.fillType7}`:""};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.actor-0 {
|
|
121
|
+
${t.actor0?`fill: ${t.actor0}`:""};
|
|
122
|
+
}
|
|
123
|
+
.actor-1 {
|
|
124
|
+
${t.actor1?`fill: ${t.actor1}`:""};
|
|
125
|
+
}
|
|
126
|
+
.actor-2 {
|
|
127
|
+
${t.actor2?`fill: ${t.actor2}`:""};
|
|
128
|
+
}
|
|
129
|
+
.actor-3 {
|
|
130
|
+
${t.actor3?`fill: ${t.actor3}`:""};
|
|
131
|
+
}
|
|
132
|
+
.actor-4 {
|
|
133
|
+
${t.actor4?`fill: ${t.actor4}`:""};
|
|
134
|
+
}
|
|
135
|
+
.actor-5 {
|
|
136
|
+
${t.actor5?`fill: ${t.actor5}`:""};
|
|
137
|
+
}
|
|
138
|
+
${je()}
|
|
139
|
+
`,"getStyles"),Lt=Rt,lt=e(function(t,r){return nn(t,r)},"drawRect"),Bt=e(function(t,r){let g=t.append("circle").attr("cx",r.cx).attr("cy",r.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",r.cx-5).attr("cy",r.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",r.cx+5).attr("cy",r.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function y(x){let k=bt().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);x.append("path").attr("class","mouth").attr("d",k).attr("transform","translate("+r.cx+","+(r.cy+2)+")")}e(y,"smile");function m(x){let k=bt().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);x.append("path").attr("class","mouth").attr("d",k).attr("transform","translate("+r.cx+","+(r.cy+7)+")")}e(m,"sad");function c(x){x.append("line").attr("class","mouth").attr("stroke",2).attr("x1",r.cx-5).attr("y1",r.cy+7).attr("x2",r.cx+5).attr("y2",r.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}if(e(c,"ambivalent"),r.score>3)y(i);else if(r.score<3)m(i);else c(i);return g},"drawFace"),mt=e(function(t,r){let l=t.append("circle");if(l.attr("cx",r.cx),l.attr("cy",r.cy),l.attr("class","actor-"+r.pos),l.attr("fill",r.fill),l.attr("stroke",r.stroke),l.attr("r",r.r),l.class!==void 0)l.attr("class",l.class);if(r.title!==void 0)l.append("title").text(r.title);return l},"drawCircle"),xt=e(function(t,r){return Xi(t,r)},"drawText"),jt=e(function(t,r){function l(i,y,m,c,x){return i+","+y+" "+(i+m)+","+y+" "+(i+m)+","+(y+c-x)+" "+(i+m-x*1.2)+","+(y+c)+" "+i+","+(y+c)}e(l,"genPoints");let g=t.append("polygon");g.attr("points",l(r.x,r.y,50,20,7)),g.attr("class","labelBox"),r.y=r.y+r.labelMargin,r.x=r.x+0.5*r.labelMargin,xt(t,r)},"drawLabel"),Nt=e(function(t,r,l){let g=t.append("g"),i=Ke();i.x=r.x,i.y=r.y,i.fill=r.fill,i.width=l.width*r.taskCount+l.diagramMarginX*(r.taskCount-1),i.height=l.height,i.class="journey-section section-type-"+r.num,i.rx=3,i.ry=3,lt(g,i),kt(l)(r.text,g,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+r.num},l,r.colour)},"drawSection"),st=-1,zt=e(function(t,r,l,g){let i=r.x+l.width/2,y=t.append("g");st++;let m=450;y.append("line").attr("id",g+"-task"+st).attr("x1",i).attr("y1",r.y).attr("x2",i).attr("y2",m).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Bt(y,{cx:i,cy:300+(5-r.score)*30,score:r.score});let c=Ke();c.x=r.x,c.y=r.y,c.fill=r.fill,c.width=l.width,c.height=l.height,c.class="task task-type-"+r.num,c.rx=3,c.ry=3,lt(y,c);let x=r.x+14;r.people.forEach((k)=>{let b=r.actors[k].color,u={cx:x,cy:r.y,r:7,fill:b,stroke:"#000",title:k,pos:r.actors[k].position};mt(y,u),x+=10}),kt(l)(r.task,y,c.x,c.y,c.width,c.height,{class:"task"},l,r.colour)},"drawTask"),Wt=e(function(t,r){Br(t,r)},"drawBackgroundRect"),kt=function(){function t(i,y,m,c,x,k,b,u){let n=y.append("text").attr("x",m+x/2).attr("y",c+k/2+5).style("font-color",u).style("text-anchor","middle").text(i);g(n,b)}e(t,"byText");function r(i,y,m,c,x,k,b,u,n){let{taskFontSize:a,taskFontFamily:o}=u,d=i.split(/<br\s*\/?>/gi);for(let f=0;f<d.length;f++){let h=f*a-a*(d.length-1)/2,w=y.append("text").attr("x",m+x/2).attr("y",c).attr("fill",n).style("text-anchor","middle").style("font-size",a).style("font-family",o);w.append("tspan").attr("x",m+x/2).attr("dy",h).text(d[f]),w.attr("y",c+k/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),g(w,b)}}e(r,"byTspan");function l(i,y,m,c,x,k,b,u){let n=y.append("switch"),o=n.append("foreignObject").attr("x",m).attr("y",c).attr("width",x).attr("height",k).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");o.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(i),r(i,n,m,c,x,k,b,u),g(o,b)}e(l,"byFo");function g(i,y){for(let m in y)if(m in y)i.attr(m,y[m])}return e(g,"_setTextAttrs"),function(i){return i.textPlacement==="fo"?l:i.textPlacement==="old"?t:r}}(),Ot=e(function(t,r){st=-1,t.append("defs").append("marker").attr("id",r+"-arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics"),U={drawRect:lt,drawCircle:mt,drawSection:Nt,drawText:xt,drawLabel:jt,drawTask:zt,drawBackgroundRect:Wt,initGraphics:Ot},Yt=e(function(t){Object.keys(t).forEach(function(l){R[l]=t[l]})},"setConf"),N={},K=0;function _t(t){let r=s().journey,l=r.maxLabelWidth;K=0;let g=60;Object.keys(N).forEach((i)=>{let y=N[i].color,m={cx:20,cy:g,r:7,fill:y,stroke:"#000",pos:N[i].position};U.drawCircle(t,m);let c=t.append("text").attr("visibility","hidden").text(i),x=c.node().getBoundingClientRect().width;c.remove();let k=[];if(x<=l)k=[i];else{let b=i.split(" "),u="";if(c=t.append("text").attr("visibility","hidden"),b.forEach((n)=>{let a=u?`${u} ${n}`:n;if(c.text(a),c.node().getBoundingClientRect().width>l){if(u)k.push(u);if(u=n,c.text(n),c.node().getBoundingClientRect().width>l){let d="";for(let f of n)if(d+=f,c.text(d+"-"),c.node().getBoundingClientRect().width>l)k.push(d.slice(0,-1)+"-"),d=f;u=d}}else u=a}),u)k.push(u);c.remove()}k.forEach((b,u)=>{let n={x:40,y:g+7+u*20,fill:"#666",text:b,textMargin:r.boxTextMargin??5},o=U.drawText(t,n).node().getBoundingClientRect().width;if(o>K&&o>r.leftMargin-o)K=o}),g+=Math.max(20,k.length*20)})}e(_t,"drawActorLegend");var R=s().journey,W=0,qt=e(function(t,r,l,g){let i=s(),y=i.journey.titleColor,m=i.journey.titleFontSize,c=i.journey.titleFontFamily,x=i.securityLevel,k;if(x==="sandbox")k=p("#i"+r);let b=x==="sandbox"?p(k.nodes()[0].contentDocument.body):p("body");V.init();let u=b.select("#"+r);U.initGraphics(u,r);let n=g.db.getTasks(),a=g.db.getDiagramTitle(),o=g.db.getActors();for(let z in N)delete N[z];let d=0;o.forEach((z)=>{N[z]={color:R.actorColours[d%R.actorColours.length],position:d},d++}),_t(u),W=R.leftMargin+K,V.insert(0,0,W,Object.keys(N).length*50),Xt(u,n,0,r);let f=V.getBounds();if(a)u.append("text").text(a).attr("x",W).attr("font-size",m).attr("font-weight","bold").attr("y",25).attr("fill",y).attr("font-family",c);let h=f.stopy-f.starty+2*R.diagramMarginY,w=W+f.stopx+2*R.diagramMarginX;B(u,h,w,R.useMaxWidth),u.append("line").attr("x1",W).attr("y1",R.height*4).attr("x2",w-W-4).attr("y2",R.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#"+r+"-arrowhead)");let _=a?70:0;u.attr("viewBox",`${f.startx} -25 ${w} ${h+_}`),u.attr("preserveAspectRatio","xMinYMin meet"),u.attr("height",h+_+25)},"draw"),V={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:e(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:e(function(t,r,l,g){if(t[r]===void 0)t[r]=l;else t[r]=g(l,t[r])},"updateVal"),updateBounds:e(function(t,r,l,g){let i=s().journey,y=this,m=0;function c(x){return e(function(b){m++;let u=y.sequenceItems.length-m+1;if(y.updateVal(b,"starty",r-u*i.boxMargin,Math.min),y.updateVal(b,"stopy",g+u*i.boxMargin,Math.max),y.updateVal(V.data,"startx",t-u*i.boxMargin,Math.min),y.updateVal(V.data,"stopx",l+u*i.boxMargin,Math.max),x!=="activation")y.updateVal(b,"startx",t-u*i.boxMargin,Math.min),y.updateVal(b,"stopx",l+u*i.boxMargin,Math.max),y.updateVal(V.data,"starty",r-u*i.boxMargin,Math.min),y.updateVal(V.data,"stopy",g+u*i.boxMargin,Math.max)},"updateItemBounds")}e(c,"updateFn"),this.sequenceItems.forEach(c())},"updateBounds"),insert:e(function(t,r,l,g){let i=Math.min(t,l),y=Math.max(t,l),m=Math.min(r,g),c=Math.max(r,g);this.updateVal(V.data,"startx",i,Math.min),this.updateVal(V.data,"starty",m,Math.min),this.updateVal(V.data,"stopx",y,Math.max),this.updateVal(V.data,"stopy",c,Math.max),this.updateBounds(i,m,y,c)},"insert"),bumpVerticalPos:e(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:e(function(){return this.verticalPos},"getVerticalPos"),getBounds:e(function(){return this.data},"getBounds")},{sectionFills:it,sectionColours:pt}=R,Xt=e(function(t,r,l,g){let i=s().journey,y="",m=i.height*2+i.diagramMarginY,c=l+m,x=0,k="#CCC",b="black",u=0;for(let[n,a]of r.entries()){if(y!==a.section){k=it[x%it.length],u=x%it.length,b=pt[x%pt.length];let d=0,f=a.section;for(let w=n;w<r.length;w++)if(r[w].section==f)d=d+1;else break;let h={x:n*i.taskMargin+n*i.width+W,y:50,text:a.section,fill:k,num:u,colour:b,taskCount:d};U.drawSection(t,h,i),y=a.section,x++}let o=a.people.reduce((d,f)=>{if(N[f])d[f]=N[f];return d},{});a.x=n*i.taskMargin+n*i.width+W,a.y=c,a.width=i.diagramMarginX,a.height=i.diagramMarginY,a.colour=b,a.fill=k,a.num=u,a.actors=o,U.drawTask(t,a,i,g),V.insert(a.x,a.y,a.x+a.width+i.taskMargin,450)}},"drawTasks"),gt={setConf:Yt,draw:qt},te={parser:$t,db:ft,renderer:gt,styles:Lt,init:e((t)=>{gt.setConf(t.journey),ft.clear()},"init")};export{te as diagram};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=Object.freeze(JSON.parse('{"displayName":"CSS","name":"css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#combinators"},{"include":"#selector"},{"include":"#at-rules"},{"include":"#rule-list"}],"repository":{"at-rules":{"patterns":[{"begin":"\\\\A\\\\uFEFF?(?i:(?=\\\\s*@charset\\\\b))","end":";|(?=$)","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.charset.css","patterns":[{"captures":{"1":{"name":"invalid.illegal.not-lowercase.charset.css"},"2":{"name":"invalid.illegal.leading-whitespace.charset.css"},"3":{"name":"invalid.illegal.no-whitespace.charset.css"},"4":{"name":"invalid.illegal.whitespace.charset.css"},"5":{"name":"invalid.illegal.not-double-quoted.charset.css"},"6":{"name":"invalid.illegal.unclosed-string.charset.css"},"7":{"name":"invalid.illegal.unexpected-characters.charset.css"}},"match":"\\\\G((?!@charset)@\\\\w+)|\\\\G(\\\\s+)|(@charset\\\\S[^;]*)|(?<=@charset)( {2,}|\\\\t+)|(?<=@charset )([^\\";]+)|(\\"[^\\"]+)$|(?<=\\")([^;]+)"},{"captures":{"1":{"name":"keyword.control.at-rule.charset.css"},"2":{"name":"punctuation.definition.keyword.css"}},"match":"((@)charset)(?=\\\\s)"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\\"|$","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"begin":"(?:\\\\G|^)(?=[^\\"]+$)","end":"$","name":"invalid.illegal.unclosed.string.css"}]}]},{"begin":"(?i)((@)import)(?:\\\\s+|$|(?=[\\"\']|/\\\\*))","beginCaptures":{"1":{"name":"keyword.control.at-rule.import.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.import.css","patterns":[{"begin":"\\\\G\\\\s*(?=/\\\\*)","end":"(?<=\\\\*/)\\\\s*","patterns":[{"include":"#comment-block"}]},{"include":"#string"},{"include":"#url"},{"include":"#media-query-list"}]},{"begin":"(?i)((@)font-face)(?=\\\\s*|\\\\{|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.font-face.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"(?!\\\\G)","name":"meta.at-rule.font-face.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#rule-list"}]},{"begin":"(?i)(@)page(?=[:{\\\\s]|/\\\\*|$)","captures":{"0":{"name":"keyword.control.at-rule.page.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*($|[:;{]))","name":"meta.at-rule.page.css","patterns":[{"include":"#rule-list"}]},{"begin":"(?i)(?=@media([(\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)media","beginCaptures":{"0":{"name":"keyword.control.at-rule.media.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;{])","name":"meta.at-rule.media.header.css","patterns":[{"include":"#media-query-list"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.media.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.media.end.bracket.curly.css"}},"name":"meta.at-rule.media.body.css","patterns":[{"include":"$self"}]}]},{"begin":"(?i)(?=@counter-style([\\"\';{\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)counter-style","beginCaptures":{"0":{"name":"keyword.control.at-rule.counter-style.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*\\\\{)","name":"meta.at-rule.counter-style.header.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"captures":{"0":{"patterns":[{"include":"#escapes"}]}},"match":"[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.parameter.style-name.css"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.css"}},"name":"meta.at-rule.counter-style.body.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#rule-list-innards"}]}]},{"begin":"(?i)(?=@document([\\"\';{\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)document","beginCaptures":{"0":{"name":"keyword.control.at-rule.document.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;{])","name":"meta.at-rule.document.header.css","patterns":[{"begin":"(?i)(?<![-\\\\w])(url-prefix|domain|regexp)(\\\\()","beginCaptures":{"1":{"name":"support.function.document-rule.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.document-rule.css","patterns":[{"include":"#string"},{"include":"#comment-block"},{"include":"#escapes"},{"match":"[^\\"\')\\\\s]+","name":"variable.parameter.document-rule.css"}]},{"include":"#url"},{"include":"#commas"},{"include":"#comment-block"},{"include":"#escapes"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.document.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.document.end.bracket.curly.css"}},"name":"meta.at-rule.document.body.css","patterns":[{"include":"$self"}]}]},{"begin":"(?i)(?=@(?:-(?:webkit|moz|o|ms)-)?keyframes([\\"\';{\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)(?:-(?:webkit|moz|o|ms)-)?keyframes","beginCaptures":{"0":{"name":"keyword.control.at-rule.keyframes.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*\\\\{)","name":"meta.at-rule.keyframes.header.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"captures":{"0":{"patterns":[{"include":"#escapes"}]}},"match":"[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.parameter.keyframe-list.css"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.keyframes.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.keyframes.end.bracket.curly.css"}},"name":"meta.at-rule.keyframes.body.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"captures":{"1":{"name":"entity.other.keyframe-offset.css"},"2":{"name":"entity.other.keyframe-offset.percentage.css"}},"match":"(?i)(?<![-\\\\w])(from|to)(?![-\\\\w])|([-+]?(?:\\\\d+(?:\\\\.\\\\d+)?|\\\\.\\\\d+)%)"},{"include":"#rule-list"}]}]},{"begin":"(?i)(?=@supports([(\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)|(?=;)","patterns":[{"begin":"(?i)\\\\G(@)supports","beginCaptures":{"0":{"name":"keyword.control.at-rule.supports.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;{])","name":"meta.at-rule.supports.header.css","patterns":[{"include":"#feature-query-operators"},{"include":"#feature-query"},{"include":"#comment-block"},{"include":"#escapes"}]},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.supports.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.supports.end.bracket.curly.css"}},"name":"meta.at-rule.supports.body.css","patterns":[{"include":"$self"}]}]},{"begin":"(?i)((@)(-(ms|o)-)?viewport)(?=[\\"\';{\\\\s]|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.viewport.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;@{])","name":"meta.at-rule.viewport.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"}]},{"begin":"(?i)((@)font-feature-values)(?=[\\"\';{\\\\s]|/\\\\*|$)\\\\s*","beginCaptures":{"1":{"name":"keyword.control.at-rule.font-feature-values.css"},"2":{"name":"punctuation.definition.keyword.css"}},"contentName":"variable.parameter.font-name.css","end":"(?=\\\\s*[;@{])","name":"meta.at-rule.font-features.css","patterns":[{"include":"#comment-block"},{"include":"#escapes"}]},{"include":"#font-features"},{"begin":"(?i)((@)namespace)(?=[\\"\';\\\\s]|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.namespace.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":";|(?=[@{])","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.namespace.css","patterns":[{"include":"#url"},{"captures":{"1":{"patterns":[{"include":"#comment-block"}]},"2":{"name":"entity.name.function.namespace-prefix.css","patterns":[{"include":"#escapes"}]}},"match":"(?i)(?:\\\\G|^|(?<=\\\\s))(?=(?<=\\\\s|^)[-A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\s*/\\\\*(?:[^*]|\\\\*[^/])*\\\\*/)(.*?)([-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*)"},{"include":"#comment-block"},{"include":"#escapes"},{"include":"#string"}]},{"begin":"(?i)(?=@[-\\\\w]+[^;]+;s*$)","end":"(?<=;)(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)[-\\\\w]+","beginCaptures":{"0":{"name":"keyword.control.at-rule.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":";","endCaptures":{"0":{"name":"punctuation.terminator.rule.css"}},"name":"meta.at-rule.header.css"}]},{"begin":"(?i)(?=@[-\\\\w]+([({\\\\s]|/\\\\*|$))","end":"(?<=})(?!\\\\G)","patterns":[{"begin":"(?i)\\\\G(@)[-\\\\w]+","beginCaptures":{"0":{"name":"keyword.control.at-rule.css"},"1":{"name":"punctuation.definition.keyword.css"}},"end":"(?=\\\\s*[;{])","name":"meta.at-rule.header.css"},{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.end.bracket.curly.css"}},"name":"meta.at-rule.body.css","patterns":[{"include":"$self"}]}]}]},"color-keywords":{"patterns":[{"match":"(?i)(?<![-\\\\w])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![-\\\\w])","name":"support.constant.color.w3c-standard-color-name.css"},{"match":"(?i)(?<![-\\\\w])(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)(?![-\\\\w])","name":"support.constant.color.w3c-extended-color-name.css"},{"match":"(?i)(?<![-\\\\w])currentColor(?![-\\\\w])","name":"support.constant.color.current.css"},{"match":"(?i)(?<![-\\\\w])(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)(?![-\\\\w])","name":"invalid.deprecated.color.system.css"}]},"combinators":{"patterns":[{"match":"/deep/|>>>","name":"invalid.deprecated.combinator.css"},{"match":">>|[+>~]","name":"keyword.operator.combinator.css"}]},"commas":{"match":",","name":"punctuation.separator.list.comma.css"},"comment-block":{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.css"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.css"}},"name":"comment.block.css"},"escapes":{"patterns":[{"match":"\\\\\\\\\\\\h{1,6}","name":"constant.character.escape.codepoint.css"},{"begin":"\\\\\\\\$\\\\s*","end":"^(?<!\\\\G)","name":"constant.character.escape.newline.css"},{"match":"\\\\\\\\.","name":"constant.character.escape.css"}]},"feature-query":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.condition.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.condition.end.bracket.round.css"}},"name":"meta.feature-query.css","patterns":[{"include":"#feature-query-operators"},{"include":"#feature-query"}]},"feature-query-operators":{"patterns":[{"match":"(?i)(?<=[()\\\\s]|^|\\\\*/)(and|not|or)(?=[()\\\\s]|/\\\\*|$)","name":"keyword.operator.logical.feature.$1.css"},{"include":"#rule-list-innards"}]},"font-features":{"begin":"(?i)((@)(annotation|character-variant|ornaments|styleset|stylistic|swash))(?=[\\"\';@{\\\\s]|/\\\\*|$)","beginCaptures":{"1":{"name":"keyword.control.at-rule.${3:/downcase}.css"},"2":{"name":"punctuation.definition.keyword.css"}},"end":"(?<=})","name":"meta.at-rule.${3:/downcase}.css","patterns":[{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.css"}},"name":"meta.property-list.font-feature.css","patterns":[{"captures":{"0":{"patterns":[{"include":"#escapes"}]}},"match":"[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.font-feature.css"},{"include":"#rule-list-innards"}]}]},"functional-pseudo-classes":{"patterns":[{"begin":"(?i)((:)dir)(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"match":"(?i)(?<![-\\\\w])(ltr|rtl)(?![-\\\\w])","name":"support.constant.text-direction.css"},{"include":"#property-values"}]},{"begin":"(?i)((:)lang)(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"match":"(?<=[(,\\\\s])[A-Za-z]+(-[0-9A-Za-z]*|\\\\\\\\(?:\\\\h{1,6}|.))*(?=[),\\\\s])","name":"support.constant.language-range.css"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"include":"#escapes"},{"match":"(?<=[\\"\\\\s])[*A-Za-z]+(-[*0-9A-Za-z]*)*(?=[\\"\\\\s])","name":"support.constant.language-range.css"}]},{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\'","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.single.css","patterns":[{"include":"#escapes"},{"match":"(?<=[\'\\\\s])[*A-Za-z]+(-[*0-9A-Za-z]*)*(?=[\'\\\\s])","name":"support.constant.language-range.css"}]},{"include":"#commas"}]},{"begin":"(?i)((:)(?:not|has|matches|where|is))(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"include":"#selector-innards"}]},{"begin":"(?i)((:)nth-(?:last-)?(?:child|of-type))(\\\\()","beginCaptures":{"1":{"name":"entity.other.attribute-name.pseudo-class.css"},"2":{"name":"punctuation.definition.entity.css"},"3":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"match":"(?i)[-+]?(\\\\d+n?|n)(\\\\s*[-+]\\\\s*\\\\d+)?","name":"constant.numeric.css"},{"match":"(?i)even|odd","name":"support.constant.parity.css"}]}]},"functions":{"patterns":[{"begin":"(?i)(?<![-\\\\w])(calc)(\\\\()","beginCaptures":{"1":{"name":"support.function.calc.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.calc.css","patterns":[{"match":"[*/]|(?<=\\\\s|^)[-+](?=\\\\s|$)","name":"keyword.operator.arithmetic.css"},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])(rgba?|hsla?|hwb|lab|oklab|lch|oklch|color)(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.color.css","patterns":[{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])((?:-(?:webkit-|moz-|o-))?(?:repeating-)?(?:linear|radial|conic)-gradient)(\\\\()","beginCaptures":{"1":{"name":"support.function.gradient.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.gradient.css","patterns":[{"match":"(?i)(?<![-\\\\w])(from|to|at|in|hue)(?![-\\\\w])","name":"keyword.operator.gradient.css"},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])(-webkit-gradient)(\\\\()","beginCaptures":{"1":{"name":"invalid.deprecated.gradient.function.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.gradient.invalid.deprecated.gradient.css","patterns":[{"begin":"(?i)(?<![-\\\\w])(from|to|color-stop)(\\\\()","beginCaptures":{"1":{"name":"invalid.deprecated.function.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"include":"#property-values"}]},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])(annotation|attr|blur|brightness|character-variant|clamp|contrast|counters?|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate|color-mix|image-set|invert|local|max|min|minmax|opacity|ornaments|repeat|saturate|sepia|styleset|stylistic|swash|symbols|cos|sin|tan|acos|asin|atan2??|hypot|sqrt|pow|log|exp|abs|sign)(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.misc.css","patterns":[{"match":"(?i)(?<=[\\",\\\\s]|\\\\*/|^)\\\\d+x(?=[\\"\'),\\\\s]|/\\\\*|$)","name":"constant.numeric.other.density.css"},{"include":"#property-values"},{"match":"[^\\"\'),\\\\s]+","name":"variable.parameter.misc.css"}]},{"begin":"(?i)(?<![-\\\\w])(circle|ellipse|inset|polygon|rect)(\\\\()","beginCaptures":{"1":{"name":"support.function.shape.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.shape.css","patterns":[{"match":"(?i)(?<=\\\\s|^|\\\\*/)(at|round)(?=\\\\s|/\\\\*|$)","name":"keyword.operator.shape.css"},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])(cubic-bezier|steps)(\\\\()","beginCaptures":{"1":{"name":"support.function.timing-function.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.timing-function.css","patterns":[{"match":"(?i)(?<![-\\\\w])(start|end)(?=\\\\s*\\\\)|$)","name":"support.constant.step-direction.css"},{"include":"#property-values"}]},{"begin":"(?i)(?<![-\\\\w])((?:translate|scale|rotate)(?:[XYZ]|3D)?|matrix(?:3D)?|skew[XY]?|perspective)(\\\\()","beginCaptures":{"1":{"name":"support.function.transform.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"patterns":[{"include":"#property-values"}]},{"include":"#url"},{"begin":"(?i)(?<![-\\\\w])(var)(\\\\()","beginCaptures":{"1":{"name":"support.function.misc.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.variable.css","patterns":[{"match":"--[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.argument.css"},{"include":"#property-values"}]}]},"media-feature-keywords":{"match":"(?i)(?<=^|[:\\\\s]|\\\\*/)(?:portrait|landscape|progressive|interlace|fullscreen|standalone|minimal-ui|browser|hover)(?=[)\\\\s]|$)","name":"support.constant.property-value.css"},"media-features":{"captures":{"1":{"name":"support.type.property-name.media.css"},"2":{"name":"support.type.property-name.media.css"},"3":{"name":"support.type.vendored.property-name.media.css"}},"match":"(?i)(?<=^|[(\\\\s]|\\\\*/)(?:((?:m(?:in-|ax-))?(?:height|width|aspect-ratio|color|color-index|monochrome|resolution)|grid|scan|orientation|display-mode|hover)|((?:m(?:in-|ax-))?device-(?:height|width|aspect-ratio))|((?:[-_](?:webkit|apple|khtml|epub|moz|ms|o|xv|ah|rim|atsc|hp|tc|wap|ro)|(?:mso|prince))-[-\\\\w]+(?=\\\\s*(?:/\\\\*(?:[^*]|\\\\*[^/])*\\\\*/)?\\\\s*[):])))(?=\\\\s|$|[):<=>]|/\\\\*)"},"media-query":{"begin":"\\\\G","end":"(?=\\\\s*[;{])","patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#media-types"},{"match":"(?i)(?<=\\\\s|^|,|\\\\*/)(only|not)(?=[{\\\\s]|/\\\\*|$)","name":"keyword.operator.logical.$1.media.css"},{"match":"(?i)(?<=\\\\s|^|\\\\*/|\\\\))and(?=\\\\s|/\\\\*|$)","name":"keyword.operator.logical.and.media.css"},{"match":",(?:(?:\\\\s*,)+|(?=\\\\s*[);{]))","name":"invalid.illegal.comma.css"},{"include":"#commas"},{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bracket.round.css"}},"patterns":[{"include":"#media-features"},{"include":"#media-feature-keywords"},{"match":":","name":"punctuation.separator.key-value.css"},{"match":">=|<=|[<=>]","name":"keyword.operator.comparison.css"},{"captures":{"1":{"name":"constant.numeric.css"},"2":{"name":"keyword.operator.arithmetic.css"},"3":{"name":"constant.numeric.css"}},"match":"(\\\\d+)\\\\s*(/)\\\\s*(\\\\d+)","name":"meta.ratio.css"},{"include":"#numeric-values"},{"include":"#comment-block"}]}]},"media-query-list":{"begin":"(?=\\\\s*[^;{])","end":"(?=\\\\s*[;{])","patterns":[{"include":"#media-query"}]},"media-types":{"captures":{"1":{"name":"support.constant.media.css"},"2":{"name":"invalid.deprecated.constant.media.css"}},"match":"(?i)(?<=^|[,\\\\s]|\\\\*/)(?:(all|print|screen|speech)|(aural|braille|embossed|handheld|projection|tty|tv))(?=$|[,;{\\\\s]|/\\\\*)"},"numeric-values":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.constant.css"}},"match":"(#)(?:\\\\h{3,4}|\\\\h{6}|\\\\h{8})\\\\b","name":"constant.other.color.rgb-value.hex.css"},{"captures":{"1":{"name":"keyword.other.unit.percentage.css"},"2":{"name":"keyword.other.unit.${2:/downcase}.css"}},"match":"(?i)(?<![-\\\\w])[-+]?(?:[0-9]+(?:\\\\.[0-9]+)?|\\\\.[0-9]+)(?:(?<=[0-9])E[-+]?[0-9]+)?(?:(%)|(deg|grad|rad|turn|Hz|kHz|ch|cm|em|ex|fr|in|mm|mozmm|pc|pt|px|q|rem|rch|rex|rlh|ic|ric|rcap|vh|vw|vb|vi|svh|svw|svb|svi|dvh|dvw|dvb|dvi|lvh|lvw|lvb|lvi|vmax|vmin|cqw|cqi|cqh|cqb|cqmin|cqmax|dpi|dpcm|dppx|s|ms)\\\\b)?","name":"constant.numeric.css"}]},"property-keywords":{"patterns":[{"match":"(?i)(?<![-\\\\w])(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse|always|antialiased|auto|auto-fill|auto-fit|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover|crisp-edges|crispEdges|crosshair|cyclic|dark|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|downleft|downright|e-resize|each-line|ease|ease-in|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded|fallback|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|flow|flow-root|forwards|freeze|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83|jis90|justify|justify-all|kannada|keep-all|landscape|larger??|left|light|lighten|lighter|line|line-edge|line-through|linear|linearRGB|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|optional|ordinal|outset|outside|over|overlay|overline|padding|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]|reset-size|reverse|revert|revert-layer|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller|smooth|soft-light|solid|space|space-around|space-between|space-evenly|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|swap|step-end|step-start|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl|text|text-after-edge|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle|ultra-condensed|ultra-expanded|under|underline|unicase|unset|upleft|uppercase|upright|use-glyph-orientation|use-script|verso|vertical|vertical-ideographic|vertical-lr|vertical-rl|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy|weight|whitespace|wider|words|wrap|wrap-reverse|x|x-large|x-small|xx-large|xx-small|y|zero|zoom-in|zoom-out)(?![-\\\\w])","name":"support.constant.property-value.css"},{"match":"(?i)(?<![-\\\\w])(arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|cjk-ideographic|decimal|decimal-leading-zero|devanagari|disc|disclosure-closed|disclosure-open|ethiopic-halehame-am|ethiopic-halehame-ti-e[rt]|ethiopic-numeric|georgian|gujarati|gurmukhi|hangul|hangul-consonant|hebrew|hiragana|hiragana-iroha|japanese-formal|japanese-informal|kannada|katakana|katakana-iroha|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman|urdu)(?![-\\\\w])","name":"support.constant.property-value.list-style-type.css"},{"match":"(?<![-\\\\w])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[-A-Za-z]+","name":"support.constant.vendored.property-value.css"},{"match":"(?<![-\\\\w])(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system-ui|system|tahoma|times|trebuchet|ui-monospace|ui-rounded|ui-sans-serif|ui-serif|utopia|verdana|webdings|sans-serif|serif|monospace)(?![-\\\\w])","name":"support.constant.font-name.css"}]},"property-names":{"patterns":[{"match":"(?i)(?<![-\\\\w])(?:accent-color|additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|aspect-ratio|backdrop-filter|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-position-[xy]|background-repeat|background-size|bleed|block-size|border|border-block-end|border-block-end-color|border-block-end-style|border-block-end-width|border-block-start|border-block-start-color|border-block-start-style|border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-end-end-radius|border-end-start-radius|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end|border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start|border-inline-start-color|border-inline-start-style|border-inline-start-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-start-end-radius|border-start-start-radius|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|caret-color|clear|clip|clip-path|clip-rule|color|color-adjust|color-interpolation-filters|color-scheme|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|contain|container|container-name|container-type|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|enable-background|fallback|fill|fill-opacity|fill-rule|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|flood-color|flood-opacity|font|font-display|font-family|font-feature-settings|font-kerning|font-language-override|font-optical-sizing|font-size|font-size-adjust|font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-variation-settings|font-weight|gap|glyph-orientation-horizontal|glyph-orientation-vertical|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|hanging-punctuation|height|hyphens|image-orientation|image-rendering|image-resolution|ime-mode|initial-letter|initial-letter-align|inline-size|inset|inset-block|inset-block-end|inset-block-start|inset-inline|inset-inline-end|inset-inline-start|isolation|justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-break|line-clamp|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-block|margin-block-end|margin-block-start|margin-bottom|margin-inline|margin-inline-end|margin-inline-start|margin-left|margin-right|margin-top|marker-end|marker-mid|marker-start|marks|mask|mask-border|mask-border-mode|mask-border-outset|mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height|max-inline-size|max-lines|max-width|max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode|negative|object-fit|object-position|offset|offset-anchor|offset-distance|offset-path|offset-position|offset-rotation|opacity|order|orientation|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-anchor|overflow-block|overflow-inline|overflow-wrap|overflow-[xy]|overscroll-behavior|overscroll-behavior-block|overscroll-behavior-inline|overscroll-behavior-[xy]|pad|padding|padding-block|padding-block-end|padding-block-start|padding-bottom|padding-inline|padding-inline-end|padding-inline-start|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|paint-order|perspective|perspective-origin|place-content|place-items|place-self|pointer-events|position|prefix|quotes|range|resize|right|rotate|row-gap|ruby-align|ruby-merge|ruby-position|scale|scroll-behavior|scroll-margin|scroll-margin-block|scroll-margin-block-end|scroll-margin-block-start|scroll-margin-bottom|scroll-margin-inline|scroll-margin-inline-end|scroll-margin-inline-start|scroll-margin-left|scroll-margin-right|scroll-margin-top|scroll-padding|scroll-padding-block|scroll-padding-block-end|scroll-padding-block-start|scroll-padding-bottom|scroll-padding-inline|scroll-padding-inline-end|scroll-padding-inline-start|scroll-padding-left|scroll-padding-right|scroll-padding-top|scroll-snap-align|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-stop|scroll-snap-type|scrollbar-color|scrollbar-gutter|scrollbar-width|shape-image-threshold|shape-margin|shape-outside|shape-rendering|size|speak-as|src|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last|text-anchor|text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-skip-ink|text-decoration-style|text-decoration-thickness|text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation|text-overflow|text-rendering|text-shadow|text-size-adjust|text-transform|text-underline-offset|text-underline-position|top|touch-action|transform|transform-box|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|translate|unicode-bidi|unicode-range|user-select|user-zoom|vertical-align|visibility|white-space|widows|width|will-change|word-break|word-spacing|word-wrap|writing-mode|z-index|zoom|alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile|color-rendering|cx|cy|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity|glyph-orientation-horizontal|glyph-orientation-vertical|height|kerning|lighting-color|marker-end|marker-mid|marker-start|rx??|ry|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|width|[xy]|adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break|balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length|bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction|box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column|column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break|delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position|flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust|initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count|justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group|orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range|play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim|radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness|right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color|rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral|speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch|string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height|text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style|top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range|voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap)(?![-\\\\w])","name":"support.type.property-name.css"},{"match":"(?<![-\\\\w])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[-A-Za-z]+","name":"support.type.vendored.property-name.css"}]},"property-values":{"patterns":[{"include":"#commas"},{"include":"#comment-block"},{"include":"#escapes"},{"include":"#functions"},{"include":"#property-keywords"},{"include":"#unicode-range"},{"include":"#numeric-values"},{"include":"#color-keywords"},{"include":"#string"},{"match":"!\\\\s*important(?![-\\\\w])","name":"keyword.other.important.css"}]},"pseudo-classes":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"name":"invalid.illegal.colon.css"}},"match":"(?i)(:)(:*)(?:active|any-link|checked|default|disabled|empty|enabled|first|(?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within|fullscreen|host|hover|in-range|indeterminate|invalid|left|link|optional|out-of-range|read-only|read-write|required|right|root|scope|target|unresolved|valid|visited)(?![-\\\\w]|\\\\s*[;}])","name":"entity.other.attribute-name.pseudo-class.css"},"pseudo-elements":{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"name":"punctuation.definition.entity.css"}},"match":"(?i)(?:(::?)(?:after|before|first-letter|first-line|(?:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[-a-z]+)|(::)(?:backdrop|content|grammar-error|marker|placeholder|selection|shadow|spelling-error))(?![-\\\\w]|\\\\s*[;}])","name":"entity.other.attribute-name.pseudo-element.css"},"rule-list":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.property-list.begin.bracket.curly.css"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.property-list.end.bracket.curly.css"}},"name":"meta.property-list.css","patterns":[{"include":"#rule-list-innards"}]},"rule-list-innards":{"patterns":[{"include":"#comment-block"},{"include":"#escapes"},{"include":"#font-features"},{"match":"(?<![-\\\\w])--[-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*","name":"variable.css"},{"begin":"(?<![-A-Za-z])(?=[-A-Za-z])","end":"$|(?![-A-Za-z])","name":"meta.property-name.css","patterns":[{"include":"#property-names"}]},{"begin":"(:)\\\\s*","beginCaptures":{"1":{"name":"punctuation.separator.key-value.css"}},"contentName":"meta.property-value.css","end":"\\\\s*(;)|\\\\s*(?=[)}])","endCaptures":{"1":{"name":"punctuation.terminator.rule.css"}},"patterns":[{"include":"#comment-block"},{"include":"#property-values"}]},{"match":";","name":"punctuation.terminator.rule.css"}]},"selector":{"begin":"(?=\\\\|?(?:[-#*.:A-\\\\[_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.)))","end":"(?=\\\\s*[)/@{])","name":"meta.selector.css","patterns":[{"include":"#selector-innards"}]},"selector-innards":{"patterns":[{"include":"#comment-block"},{"include":"#commas"},{"include":"#escapes"},{"include":"#combinators"},{"captures":{"1":{"name":"entity.other.namespace-prefix.css"},"2":{"name":"punctuation.separator.css"}},"match":"(?:^|(?<=[(,;}\\\\s]))(?![-*\\\\w]+\\\\|(?![-#*.:A-\\\\[_a-z[^\\\\x00-\\\\x7F]]))([-A-Z_a-z[^\\\\x00-\\\\x7F]](?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*|\\\\*)?(\\\\|)"},{"include":"#tag-names"},{"match":"\\\\*","name":"entity.name.tag.wildcard.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#escapes"}]}},"match":"(?<![-@\\\\w])([#.])((?:-?[0-9]|-(?=$|[#)+,.:>\\\\[{|~\\\\s]|/\\\\*)|(?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*(?:[]!\\"%-(*;<?@^`|}]|/(?!\\\\*))+)(?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*)","name":"invalid.illegal.bad-identifier.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#escapes"}]}},"match":"(\\\\.)((?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+)(?=$|[#)+,.:>\\\\[{|~\\\\s]|/\\\\*)","name":"entity.other.attribute-name.class.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#escapes"}]}},"match":"(#)(-?(?![0-9])(?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+)(?=$|[#)+,.:>\\\\[{|~\\\\s]|/\\\\*)","name":"entity.other.attribute-name.id.css"},{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.entity.begin.bracket.square.css"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.entity.end.bracket.square.css"}},"name":"meta.attribute-selector.css","patterns":[{"include":"#comment-block"},{"include":"#string"},{"captures":{"1":{"name":"storage.modifier.ignore-case.css"}},"match":"(?<=[\\"\'\\\\s]|^|\\\\*/)\\\\s*([Ii])\\\\s*(?=[]\\\\s]|/\\\\*|$)"},{"captures":{"1":{"name":"string.unquoted.attribute-value.css","patterns":[{"include":"#escapes"}]}},"match":"(?<==)\\\\s*((?!/\\\\*)(?:[^]\\"\'\\\\\\\\\\\\s]|\\\\\\\\.)+)"},{"include":"#escapes"},{"match":"[$*^|~]?=","name":"keyword.operator.pattern.css"},{"match":"\\\\|","name":"punctuation.separator.css"},{"captures":{"1":{"name":"entity.other.namespace-prefix.css","patterns":[{"include":"#escapes"}]}},"match":"(-?(?!\\\\d)(?:[-\\\\w[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+|\\\\*)(?=\\\\|(?![=\\\\s]|$|])(?:-?(?!\\\\d)|[-\\\\\\\\\\\\w[^\\\\x00-\\\\x7F]]))"},{"captures":{"1":{"name":"entity.other.attribute-name.css","patterns":[{"include":"#escapes"}]}},"match":"(-?(?!\\\\d)(?>[-\\\\w[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+)\\\\s*(?=[]$*=^|~]|/\\\\*)"}]},{"include":"#pseudo-classes"},{"include":"#pseudo-elements"},{"include":"#functional-pseudo-classes"},{"match":"(?<![-@\\\\w])(?=[a-z]\\\\w*-)(?:(?![A-Z])[-\\\\w])+(?![-(\\\\w])","name":"entity.name.tag.custom.css"}]},"string":{"patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\\"|(?<!\\\\\\\\)(?=$|\\\\n)","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.double.css","patterns":[{"begin":"(?:\\\\G|^)(?=(?:[^\\"\\\\\\\\]|\\\\\\\\.)+$)","end":"$","name":"invalid.illegal.unclosed.string.css","patterns":[{"include":"#escapes"}]},{"include":"#escapes"}]},{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.css"}},"end":"\'|(?<!\\\\\\\\)(?=$|\\\\n)","endCaptures":{"0":{"name":"punctuation.definition.string.end.css"}},"name":"string.quoted.single.css","patterns":[{"begin":"(?:\\\\G|^)(?=(?:[^\'\\\\\\\\]|\\\\\\\\.)+$)","end":"$","name":"invalid.illegal.unclosed.string.css","patterns":[{"include":"#escapes"}]},{"include":"#escapes"}]}]},"tag-names":{"match":"(?i)(?<![-:\\\\w])(?:a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|bgsound|big|blink|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|content|data|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|element|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h[1-6]|head|header|hgroup|hr|html|i|iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|link|listing|main|map|mark|marquee|math|menu|menuitem|meta|meter|multicol|nav|nextid|nobr|noembed|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|plaintext|pre|progress|q|rb|rp|rtc??|ruby|s|samp|script|section|select|shadow|slot|small|source|spacer|span|strike|strong|style|sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|ul??|var|video|wbr|xmp|altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|animateMotion|animateTransform|circle|clipPath|color-profile|cursor|defs|desc|discard|ellipse|feBlend|feColorMatrix|feComponentTransfer|feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feImage|feMerge|feMergeNode|feMorphology|feOffset|fePointLight|feSpecularLighting|feSpotLight|feTile|feTurbulence|filter|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|foreignObject|g|glyph|glyphRef|hatch|hatchpath|hkern|line|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|metadata|missing-glyph|mpath|path|pattern|polygon|polyline|radialGradient|rect|set|solidcolor|stop|svg|switch|symbol|text|textPath|tref|tspan|use|view|vkern|annotation|annotation-xml|maction|maligngroup|malignmark|math|menclose|merror|mfenced|mfrac|mglyph|mi|mlabeledtr|mlongdiv|mmultiscripts|mn|mo|mover|mpadded|mphantom|mroot|mrow|ms|mscarries|mscarry|msgroup|msline|mspace|msqrt|msrow|mstack|mstyle|msub|msubsup|msup|mtable|mtd|mtext|mtr|munder|munderover|semantics)(?=[#)+,.:>\\\\[{|~\\\\s]|/\\\\*|$)","name":"entity.name.tag.css"},"unicode-range":{"captures":{"0":{"name":"constant.other.unicode-range.css"},"1":{"name":"punctuation.separator.dash.unicode-range.css"}},"match":"(?<![-\\\\w])[Uu]\\\\+[?\\\\h]{1,6}(?:(-)\\\\h{1,6})?(?![-\\\\w])"},"url":{"begin":"(?i)(?<![-@\\\\w])(url)(\\\\()","beginCaptures":{"1":{"name":"support.function.url.css"},"2":{"name":"punctuation.section.function.begin.bracket.round.css"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.bracket.round.css"}},"name":"meta.function.url.css","patterns":[{"match":"[^\\"\')\\\\s]+","name":"variable.parameter.url.css"},{"include":"#string"},{"include":"#comment-block"},{"include":"#escapes"}]}},"scopeName":"source.css"}')),Et=[e];
|
|
2
|
+
export{Et};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function On(i,d){let e;if(d===void 0){for(let n of i)if(n!=null&&(e<n||e===void 0&&n>=n))e=n}else{let n=-1;for(let f of i)if((f=d(f,++n,i))!=null&&(e<f||e===void 0&&f>=f))e=f}return e}function mn(i,d){let e;if(d===void 0){for(let n of i)if(n!=null&&(e>n||e===void 0&&n>=n))e=n}else{let n=-1;for(let f of i)if((f=d(f,++n,i))!=null&&(e>f||e===void 0&&f>=f))e=f}return e}
|
|
2
|
+
export{On,mn};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h,o,i,a,v,t,n,_,l,Z,gt,yt,un,ye,Re,te,ue,Ut,ot,re,tn,ve}from"./chunk-vt40e1kp.js";var Se=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],pe=l("key-round",Se);function fe(e){let d=[],g="",y,N=!1;for(let u=0;u<e.length;u++){let c=e[u];if(y)if(c===y)y=void 0;else if(c==="\\"&&y==='"'&&u+1<e.length)g+=e[++u];else g+=c;else if(c==='"'||c==="'")y=c,N=!0;else if(c==="\\"&&u+1<e.length)g+=e[++u],N=!0;else if(/\s/.test(c)){if(N||g)d.push(g);g="",N=!1}else g+=c,N=!0}if(N||g)d.push(g);return d}function ie(e){return e.map((d)=>d===""||/[\s"'\\]/.test(d)?`"${d.replace(/(["\\])/g,"\\$1")}"`:d).join(" ")}var ge="size-4 cursor-pointer rounded border-line text-accent accent-accent focus-visible:outline-2 focus-visible:outline-accent",je={connected:{label:"已连接",dot:"bg-success"},idle:{label:"待连接",dot:"bg-faint"},disabled:{label:"已停用",dot:"bg-faint"},failed:{label:"连接失败",dot:"bg-danger"},needs_auth:{label:"需要认证",dot:"bg-warning"}};function X(e){return e.type==="local"?ie(e.command):e.url}function xe({info:e,tools:d=!1}){let g=je[e.status.status];return n("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-xs text-dim",children:[t("span",{"aria-hidden":!0,className:`size-1.5 shrink-0 rounded-full ${g.dot}`}),t("span",{className:d?void 0:"hidden @md/panel:inline",children:g.label}),d&&e.status.status==="connected"&&n("span",{className:"text-faint",children:["· ",e.toolCount," 个工具"]})]})}function Te(e){if(typeof e!=="object"||e===null||!("type"in e))return"any";let d=e.type;if(typeof d==="string")return d;if(Array.isArray(d))return d.filter((g)=>typeof g==="string").join(" | ")||"any";return"any"}function he(e){let{Button:d,CopyButton:g,Dialog:y,StatusChip:N,confirm:u,style:c,useTheme:k}=_();k();let{info:s,connection:I}=e,[m,q]=a(),[G,K]=a(),[S,j]=a(!1),W=s.status.status==="connected",z=s.status.status==="needs_auth",V=s.status.status==="failed",A=s.config.type==="remote"&&Boolean(s.config.oauth);o(()=>{function p(x){if(x&&x!==s.name)return;let J=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";I.request(`/api/mcp/${encodeURIComponent(s.name)}/connect${J}`,{method:"POST"}).then((ee)=>e.onChanged(ee)).catch(()=>{})}function f(x){if(x.data?.type==="mcp-oauth-success")p(x.data.name)}function D(x){if(x.key==="basalt-mcp-oauth-event"&&x.newValue)try{let J=JSON.parse(x.newValue);p(J.name)}catch(J){}}window.addEventListener("message",f),window.addEventListener("storage",D);let R;if("BroadcastChannel"in window)R=new BroadcastChannel("basalt-mcp-oauth"),R.onmessage=(x)=>{if(x.data?.type==="mcp-oauth-success")p(x.data.name)};return()=>{window.removeEventListener("message",f),window.removeEventListener("storage",D),R?.close()}},[I,s.name,s.projectID,e]),o(()=>{if(s.status.status!=="connected")return;let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";I.request(`/api/mcp/${encodeURIComponent(s.name)}/tools${p}`).then((f)=>{if(Array.isArray(f))q(f),K(void 0)}).catch((f)=>{K(f instanceof Error?f.message:"获取工具失败")})},[I,s.name,s.projectID,s.status.status]);async function O(p){j(!0);try{let f=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",D=await I.request(`/api/mcp/${encodeURIComponent(s.name)}/${p}${f}`,{method:"POST"});e.onChanged(D)}catch{}finally{j(!1)}}async function U(){j(!0);try{let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",f=s.status.status==="needs_auth"?s.status.authorizationUrl:void 0;if(!f)f=(await I.request(`/api/mcp/${encodeURIComponent(s.name)}/oauth/authorize${p}`,{method:"POST"})).authorizationUrl;if(f)window.open(f,"_blank","width=600,height=700")}catch(p){K(p instanceof Error?p.message:"获取授权链接失败")}finally{j(!1)}}async function Y(){j(!0);try{let p=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"",f=await I.request(`/api/mcp/${encodeURIComponent(s.name)}/oauth/clear${p}`,{method:"POST"});e.onChanged(f)}finally{j(!1)}}async function E(){if(!await u({title:`删除 ${s.name}?`,description:"删除后将断开连接并不再向会话提供其工具。",action:"删除",danger:!0}))return;j(!0);try{let f=s.projectID?`?projectID=${encodeURIComponent(s.projectID)}`:"";await I.request(`/api/mcp/${encodeURIComponent(s.name)}${f}`,{method:"DELETE"}),e.onChanged(),e.onClose()}finally{j(!1)}}let T=s.config,r=X(T),C="error"in s.status?s.status.error:void 0,M=m?.length??s.toolCount??0;return t(y,{open:!0,className:"bg-panel shadow-float",onOpenChange:(p)=>{if(!p&&!S)e.onClose()},title:n("div",{className:"flex flex-wrap items-center gap-3",children:[t("div",{className:"flex size-8 items-center justify-center rounded-[10px] border border-accent/20 bg-accent-soft text-accent",children:T.type==="local"?t(ot,{className:"size-4"}):t(ye,{className:"size-4"})}),t("span",{className:"font-serif text-lg font-semibold tracking-tight text-ink",children:s.name}),W?t(N,{tone:"success",pulse:!0,children:"已连接"}):z?t(N,{tone:"warning",pulse:!0,children:"需要授权"}):V?t(N,{tone:"danger",children:"连接失败"}):s.status.status==="disabled"?t(N,{tone:"neutral",children:"已停用"}):t(N,{tone:"neutral",children:"未连接"})]}),description:n("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5 text-xs",children:[n("span",{className:"flex min-w-0 max-w-full items-center gap-1 rounded-lg border border-line bg-raised/60 py-0.5 pr-1 pl-2.5 font-mono text-[11.5px] text-ink",children:[t("span",{className:"min-w-0 truncate",title:r,children:r}),t(g,{text:r,label:"复制地址",size:"icon-xs",className:"shrink-0 text-dim hover:text-ink"})]}),t("span",{className:"rounded-lg border border-line px-2 py-1 text-[11px] leading-none text-dim",children:T.type==="local"?"本地命令":"远程 HTTP"}),A&&n("span",{className:c("control.badgeAccent","gap-1 rounded-lg border border-accent/25 px-2 py-1"),children:[t(Ut,{className:"size-3"}),"OAuth 2.0"]})]}),size:"lg",footer:n("div",{className:"flex w-full items-center justify-between gap-2 max-sm:flex-col",children:[n("div",{className:"flex items-center gap-1 max-sm:w-full",children:[A&&t(d,{type:"button",variant:"ghost",onClick:Y,disabled:S,title:"清除已保存的 OAuth 凭据",children:"清除凭据"}),t(d,{type:"button",variant:"danger-ghost",size:"icon-sm","aria-label":"删除服务器",onClick:E,disabled:S,title:"删除服务器",children:t(re,{className:"size-4"})})]}),n("div",{className:"flex items-center gap-2 max-sm:w-full max-sm:justify-end",children:[t(d,{type:"button",variant:"ghost",onClick:e.onEdit,disabled:S,children:"编辑配置"}),!z&&t(d,{type:"button",variant:"secondary",onClick:()=>O(W?"disconnect":"connect"),disabled:S,children:S?"处理中...":W?"断开连接":"立即连接"}),t(d,{type:"button",variant:"primary",onClick:e.onClose,children:"完成"})]})]}),children:n("div",{className:"space-y-6 pt-1",children:[z&&t("div",{className:"relative overflow-hidden rounded-2xl border border-warning/30 bg-[radial-gradient(120%_140%_at_0%_0%,color-mix(in_oklch,var(--color-warning)_16%,transparent),transparent_65%)] p-5",children:n("div",{className:"flex items-start gap-4 max-sm:flex-col",children:[t("div",{className:"relative flex size-11 shrink-0 items-center justify-center rounded-xl border border-warning/30 bg-panel text-warning shadow-[0_0_28px_-4px_color-mix(in_oklch,var(--color-warning)_55%,transparent)]",children:t(pe,{className:"size-5"})}),n("div",{className:"min-w-0 flex-1 space-y-1.5",children:[t("h4",{className:"text-sm font-semibold text-ink",children:"授权后即可使用此服务器"}),t("p",{className:"text-[13px] leading-relaxed text-dim",children:"该端点要求 OAuth 2.0 身份许可。在浏览器中完成授权后,令牌会自动保存并载入全部工具。"}),C&&t("p",{className:"line-clamp-2 break-words font-mono text-[11.5px] text-faint",title:C,children:C})]}),n(d,{type:"button",variant:"primary",onClick:U,disabled:S,className:"shrink-0",children:[t(un,{className:"mr-1.5 size-3.5"}),S?"正在拉起授权...":"前往授权"]})]})}),V&&n("div",{className:c("callout.base",c("callout.danger"),"gap-3 rounded-2xl p-4"),children:[t(gt,{className:"mt-0.5 size-4 shrink-0 text-danger"}),n("div",{className:"min-w-0 space-y-1",children:[t("h4",{className:"text-sm font-medium text-ink",children:"连接失败"}),t("p",{className:"font-mono text-[11.5px] leading-relaxed break-words text-dim",children:C})]})]}),n("section",{className:"space-y-3",children:[n("div",{className:"flex items-baseline justify-between gap-3 px-0.5",children:[n("h4",{className:"flex items-center gap-2 text-[13px] font-medium text-ink",children:["可用工具",t("span",{className:"rounded-full bg-raised px-1.5 py-0.5 font-mono text-[11px] leading-none text-dim",children:M})]}),t("span",{className:"text-[11.5px] text-faint",children:"对所有会话可用"})]}),G?t("div",{className:c("callout.base",c("callout.danger"),"text-xs leading-relaxed break-words"),children:G}):!W?n("div",{className:c("surface.emptyDashed","gap-2 py-10"),children:[t("div",{className:"flex size-10 items-center justify-center rounded-full bg-raised text-faint",children:t(tn,{className:"size-4.5"})}),t("p",{className:"text-[13px] font-medium text-dim",children:z?"等待授权":"尚未连接"}),t("p",{className:"max-w-xs text-xs leading-relaxed text-faint",children:z?"授权完成后会自动连接并列出工具。":"连接服务器后,这里会列出它提供的全部工具。"})]}):!m?t("div",{role:"status","aria-label":"正在获取工具列表",className:"grid gap-2",children:[0,1,2].map((p)=>n("div",{className:"animate-pulse space-y-2.5 rounded-xl border border-line p-3.5",children:[t("div",{className:"h-3.5 w-32 rounded bg-raised"}),t("div",{className:"h-3 w-4/5 rounded bg-raised/70"})]},p))}):m.length===0?n("div",{className:c("surface.emptyDashed","gap-2 py-10"),children:[t("div",{className:"flex size-10 items-center justify-center rounded-full bg-raised text-faint",children:t(tn,{className:"size-4.5"})}),t("p",{className:"text-[13px] font-medium text-dim",children:"没有可用工具"}),t("p",{className:"max-w-xs text-xs leading-relaxed text-faint",children:"已连接成功,但该服务器没有声明任何工具。"})]}):t("ul",{className:"grid gap-2",children:m.map((p)=>{let f=p.inputSchema?.properties??{},D=p.inputSchema?.required??[],R=Object.entries(f);return n("li",{className:c("surface.subtle","border-line bg-raised/30 p-3.5 transition-colors hover:border-line-strong hover:bg-raised/60"),children:[t("span",{className:"font-mono text-[13px] font-medium break-all text-accent",children:p.name}),p.description&&t("p",{className:"mt-1.5 text-[13px] leading-relaxed break-words text-dim",children:p.description}),R.length>0&&t("div",{className:"mt-3 flex flex-wrap gap-1.5",children:R.map(([x,J])=>n("span",{title:D.includes(x)?"必填参数":"可选参数",className:"inline-flex items-center gap-1 rounded-md border border-line bg-panel px-1.5 py-1 font-mono text-[11px] leading-none",children:[t("span",{className:"text-ink",children:x}),D.includes(x)&&t("span",{className:"text-warning",children:"*"}),t("span",{className:"text-faint",children:Te(J)})]},x))})]},p.name)})})]})]})})}var $e=/^[A-Za-z0-9_-]{1,64}$/;function H(e){return t("span",{className:"truncate text-xs text-faint",children:e.children})}function be(e){let{pairs:d,onChange:g,InputComponent:y}=e,N=(u,c)=>g(d.map((k,s)=>s===u?{...k,...c}:k));return n("div",{className:"space-y-2",children:[n("div",{className:"flex min-h-7 items-center gap-2",children:[t("span",{className:"shrink-0 text-[13px] font-medium text-dim",children:e.label}),t(H,{children:e.tip}),n("button",{type:"button",className:"ml-auto inline-flex h-7 shrink-0 cursor-pointer items-center gap-1 rounded-lg px-2 text-xs font-medium text-dim transition-colors hover:bg-raised hover:text-ink",onClick:()=>g([...d,{key:"",value:"",saved:!1}]),children:[t(Re,{className:"size-3.5"}),"添加"]})]}),d.map((u,c)=>n("div",{className:"flex min-w-0 items-center gap-1.5",children:[t(y,{"aria-label":`${e.keyLabel} ${c+1}`,placeholder:e.keyLabel,value:u.key,readOnly:u.saved,onChange:(k)=>N(c,{key:k.target.value}),className:"min-w-0 flex-[2] font-mono text-xs"}),t(y,{"aria-label":`${e.keyLabel} ${u.key||c+1} 的值`,type:"password",autoComplete:"off",placeholder:u.saved?"已保存,留空保持不变":"值",value:u.value,onChange:(k)=>N(c,{value:k.target.value}),className:"min-w-0 flex-[3] font-mono text-xs"}),t("button",{type:"button","aria-label":`删除 ${u.key||"该项"}`,className:"flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-faint transition-colors hover:bg-danger/10 hover:text-danger",onClick:()=>g(d.filter((k,s)=>s!==c)),children:t(ve,{className:"size-4"})})]},c))]})}function Ne(e){return Object.keys(e??{}).map((d)=>({key:d,value:"",saved:!0}))}function Ce(e){let{Button:d,Segmented:g,Dialog:y,Form:N,Field:u,Input:c,Switch:k,style:s,useTheme:I}=_();I();let{existing:m}=e,[q,G]=a(m?.config.type??"local"),[K,S]=a(m?.name??""),[j,W]=a(m?.config.type==="local"?ie(m.config.command):""),[z,V]=a(m?.config.type==="remote"?m.config.url:""),[A,O]=a(Ne(m?.config.type==="local"?m.config.environment:void 0)),[U,Y]=a(Ne(m?.config.type==="remote"?m.config.headers:void 0)),E=m?.config.type==="remote"?m.config.oauth:void 0,[T,r]=a(Boolean(E)),[C,M]=a(typeof E==="object"&&E.clientId?E.clientId:""),[p,f]=a(""),[D,R]=a(typeof E==="object"&&E.scope?E.scope:""),[x,J]=a(m?.config.defer??"default"),[ee,we]=a(m?.config.timeout!==void 0?String(m.config.timeout):""),[se,ke]=a(m?.config.defer!==void 0||m?.config.timeout!==void 0),[ce,Q]=a(),[oe,de]=a(!1);async function Ie(b){b.preventDefault(),Q(void 0);let w=K.trim();if(!m&&!$e.test(w)){Q("名称只能包含英文字母、数字、下划线与中划线,长度 1-64");return}if(!m&&e.taken.includes(w)){Q("同名服务器已存在");return}let ne=ee.trim()?Number.parseInt(ee.trim(),10):void 0;if(ne!==void 0&&(!Number.isFinite(ne)||ne<=0)){Q("超时时间须为大于 0 的毫秒数");return}let le;if(q==="local"){let L=fe(j.trim());if(!L.length){Q("请输入启动命令");return}let F={};for(let B of A){let P=B.key.trim();if(!P)continue;if(!B.saved||B.value)F[P]=B.value}le={type:"local",command:L,environment:Object.keys(F).length?F:void 0,enabled:m?m.config.enabled:!0,defer:x==="default"?void 0:x,timeout:ne}}else{let L=z.trim();try{let P=new URL(L);if(P.protocol!=="http:"&&P.protocol!=="https:")throw Error("bad protocol")}catch{Q("请输入合法的 HTTP 或 HTTPS 地址");return}let F={};for(let P of U){let ae=P.key.trim();if(!ae)continue;if(!P.saved||P.value)F[ae]=P.value}let B;if(T){let P=C.trim(),ae=p.trim(),me=D.trim();if(P||ae||me)B={clientId:P||void 0,clientSecret:ae||void 0,scope:me||void 0};else B=!0}else B=!1;le={type:"remote",url:L,headers:Object.keys(F).length?F:void 0,oauth:B,enabled:m?m.config.enabled:!0,defer:x==="default"?void 0:x,timeout:ne}}de(!0);try{let L=m?.name??w,F=m?m.projectID:e.projectID,B=F?`?projectID=${encodeURIComponent(F)}`:"";await e.connection.request(`/api/mcp/${encodeURIComponent(L)}${B}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify(le)}),e.onSaved()}catch(L){Q(L instanceof Error?L.message:"保存失败")}finally{de(!1)}}return t(y,{open:!0,onOpenChange:(b)=>{if(!b&&!oe)e.onClose()},title:m?`编辑 ${m.name}`:"添加 MCP 服务器",size:"lg",footer:n("div",{className:"flex w-full justify-end gap-2.5",children:[t(d,{type:"button",variant:"ghost",onClick:e.onClose,disabled:oe,className:"min-w-20",children:"取消"}),t(d,{type:"submit",form:"mcp-server-form",variant:"primary",disabled:oe,className:"min-w-24",children:oe?"保存中...":"保存"})]}),children:n(N,{id:"mcp-server-form",onSubmit:Ie,children:[t(g,{value:q,onChange:(b)=>G(b),className:"w-full [&>button]:flex-1",options:[{value:"local",label:"本地(标准输入输出)"},{value:"remote",label:"远程(HTTP / SSE)"}]}),!m&&t(u,{label:"名称",aside:t(H,{children:"唯一标识,如 postgres"}),children:(b)=>t(c,{id:b,value:K,onChange:(w)=>S(w.target.value),placeholder:"postgres",className:"font-mono text-xs"})}),q==="local"?n(v,{children:[t(u,{label:"启动命令",aside:t(H,{children:"完整命令及参数"}),children:(b)=>t(c,{id:b,value:j,onChange:(w)=>W(w.target.value),placeholder:"npx -y @modelcontextprotocol/server-postgres ...",className:"font-mono text-xs"})}),t(be,{label:"环境变量",tip:"启动进程时注入",keyLabel:"变量名",pairs:A,onChange:O,InputComponent:c})]}):n(v,{children:[t(u,{label:"服务地址",aside:t(H,{children:"HTTP / HTTPS 端点"}),children:(b)=>t(c,{id:b,value:z,onChange:(w)=>V(w.target.value),placeholder:"https://example.com/mcp",className:"font-mono text-xs"})}),t(be,{label:"请求头",tip:"随每次请求发送",keyLabel:"头字段",pairs:U,onChange:Y,InputComponent:c}),n("div",{className:"flex items-center justify-between gap-4",children:[n("div",{className:"min-w-0",children:[t("span",{className:"block text-[13px] font-medium text-dim",children:"OAuth 2.0 认证"}),t("span",{className:"block truncate text-xs text-faint",children:"自动发现授权端点,使用 PKCE 并刷新令牌"})]}),t(k,{checked:T,onCheckedChange:r,label:"启用 OAuth 2.0"})]}),T&&n(v,{children:[t(u,{label:"Client ID",aside:t(H,{children:"留空自动动态注册(DCR)"}),children:(b)=>t(c,{id:b,value:C,onChange:(w)=>M(w.target.value),placeholder:"留空自动动态注册",className:"font-mono text-xs"})}),t(u,{label:"Client Secret",aside:t(H,{children:"留空保持不变"}),children:(b)=>t(c,{id:b,type:"password",autoComplete:"off",value:p,onChange:(w)=>f(w.target.value),placeholder:"••••••••",className:"font-mono text-xs"})}),t(u,{label:"Scope",aside:t(H,{children:"选填授权范围"}),children:(b)=>t(c,{id:b,value:D,onChange:(w)=>R(w.target.value),placeholder:"repo read:org",className:"font-mono text-xs"})})]})]}),n("div",{className:"space-y-3 border-t border-line/60 pt-3",children:[n("button",{type:"button","aria-expanded":se,className:"flex w-full cursor-pointer items-center gap-1.5 text-[13px] font-medium text-dim transition-colors hover:text-ink",onClick:()=>ke(!se),children:[t(yt,{className:`size-3.5 transition-transform ${se?"rotate-90":""}`}),"高级设置",t("span",{className:"truncate text-xs font-normal text-faint",children:"加载时机、超时"})]}),se&&n("div",{className:"grid grid-cols-2 gap-3 max-sm:grid-cols-1",children:[t(u,{label:"加载时机",aside:t(H,{children:"延迟 = 按需加载"}),children:()=>t(g,{value:x,onChange:(b)=>J(b),className:"w-full [&>button]:flex-1",options:[{value:"default",label:"默认"},{value:"defer",label:"延迟"},{value:"always",label:"常驻"}]})}),t(u,{label:"超时(毫秒)",aside:t(H,{children:"留空用默认"}),children:(b)=>t(c,{id:b,value:ee,onChange:(w)=>we(w.target.value),placeholder:"默认",className:"font-mono text-xs"})})]})]}),ce&&n("div",{role:"alert",className:s("callout.base",s("callout.danger"),"px-3 py-2.5 text-xs"),children:[t(Z,{className:"mt-0.5 size-3.5 shrink-0"}),t("span",{className:"min-w-0 break-words",children:ce})]})]})})}function tt({connection:e}){let{Button:d,Input:g,style:y,useTheme:N}=_();N();let[u,c]=a(""),[k,s]=a(),[I,m]=a(),[q,G]=a(!1),[K,S]=a(),[j,W]=a(!1),z=i(!1),[V,A]=a(),O=i(0),U=h(async()=>{let r=++O.current;G(!0);try{let C=await e.request("/api/mcp");if(r!==O.current)return;s(C),m(void 0)}catch(C){if(r===O.current)m(C instanceof Error?C.message:"读取失败")}finally{if(r===O.current)G(!1)}},[e]);o(()=>(U(),()=>{O.current++}),[U]);async function Y(r,C){if(z.current)return;z.current=!0,W(!0);let M=O.current;try{let p=r.projectID?`?projectID=${encodeURIComponent(r.projectID)}`:"",f=await e.request(`/api/mcp/${encodeURIComponent(r.name)}${p}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({...r.config,enabled:C})});if(M===O.current)s((D)=>D?.map((R)=>R.name===f.name&&R.projectID===f.projectID?f:R))}finally{z.current=!1,W(!1)}}let E=k?.filter((r)=>`${r.name} ${X(r.config)}`.toLowerCase().includes(u.trim().toLowerCase())),T=k?.find((r)=>r.name===K);return n("div",{className:"min-w-0 space-y-6",children:[n("section",{className:"min-w-0",children:[n("div",{className:"mb-2.5 flex flex-wrap items-end justify-between gap-3 px-0.5",children:[n("div",{className:"min-w-0 flex-1 basis-48",children:[t("h2",{className:y("settings.groupTitle"),children:"MCP 服务器"}),t("p",{className:y("settings.groupDesc"),children:"外部工具与数据源管理"})]}),n("div",{className:"flex gap-2",children:[t(d,{variant:"ghost",disabled:q,onClick:U,className:"h-9 px-2.5 text-xs",children:t(te,{className:`size-3.5 ${q?"animate-spin":""}`})}),n(d,{variant:"secondary",onClick:()=>A({}),className:"h-9 px-2.5 text-xs",children:[t(Re,{className:"size-3.5 mr-1"}),"添加服务器"]})]})]}),I&&n("div",{role:"alert",className:y("callout.base",y("callout.danger"),"mb-3 flex-wrap items-center justify-between"),children:[n("p",{className:"min-w-0 flex-1 break-words text-sm text-danger",children:["无法读取 MCP 服务器:",I]}),t(d,{disabled:q,onClick:U,children:"重试"})]}),n("div",{className:"relative mb-3 min-w-0",children:[t(ue,{"aria-hidden":!0,className:"pointer-events-none absolute top-3 left-3 size-4 text-faint"}),t(g,{type:"search","aria-label":"搜索 MCP 服务器",placeholder:"搜索服务器",value:u,onChange:(r)=>c(r.target.value),className:"h-10 min-w-0 pl-9"})]}),t("div",{className:y("settings.groupBox"),children:!k?t("div",{role:"status","aria-label":"正在加载",className:"divide-y divide-line",children:[0,1,2].map((r)=>n("div",{className:"h-16 space-y-2 px-4 py-3",children:[t("div",{className:"h-3 w-24 animate-pulse rounded bg-raised"}),t("div",{className:"h-3 w-2/3 animate-pulse rounded bg-raised"})]},r))}):E?.length===0?t("p",{className:"p-4 text-sm text-dim",children:"没有匹配的 MCP 服务器"}):t("ul",{className:"divide-y divide-line",children:E?.map((r)=>{let C=r.config.enabled===!1,M=r.scope==="file";return n("li",{className:`flex min-w-0 items-center justify-between gap-3 px-4 py-2.5 transition-colors hover:bg-raised/40 ${C?"opacity-55":""}`,children:[n("button",{type:"button",className:"group flex min-h-12 min-w-0 flex-1 cursor-pointer items-center gap-3 py-1 text-left focus-visible:outline-2 focus-visible:outline-accent","aria-label":`查看 ${r.name}`,disabled:M,title:M?"来自项目的 .mcp.json,只读":void 0,onClick:()=>S(r.name),children:[t("span",{"aria-hidden":!0,className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-raised text-dim",children:r.config.type==="local"?t(ot,{className:"size-4"}):t(ye,{className:"size-4"})}),n("span",{className:"min-w-0 flex-1",children:[t("span",{className:"block truncate text-sm font-medium text-ink",title:r.name,children:r.name}),t("span",{className:"mt-0.5 block truncate font-mono text-xs text-dim",title:X(r.config),children:X(r.config)})]}),t("span",{className:y("control.badge","shrink-0 text-[11px] text-dim"),children:r.scope==="project"?"项目":r.scope==="file"?".mcp.json":"全局"}),t(xe,{info:r})]}),t("span",{className:"relative flex size-10 shrink-0 items-center justify-center",children:!M&&t("input",{type:"checkbox","aria-label":`启用服务器 ${r.name}`,className:ge,disabled:j||q,checked:!C,onChange:(p)=>Y(r,p.target.checked)})})]},r.name)})})})]}),T&&!V&&t(he,{connection:e,info:T,onClose:()=>S(void 0),onEdit:()=>A({info:T}),onChanged:(r)=>r?s((C)=>C?.map((M)=>M.name===r.name?r:M)):U()},`${T.projectID}:${T.name}`),V&&t(Ce,{connection:e,existing:V.info,taken:(k??[]).map((r)=>r.name),onClose:()=>A(void 0),onSaved:()=>{A(void 0),U()}})]})}export{tt as McpSection};
|