yamlover 0.3.12 → 0.3.13
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/dist/client/assets/{decoded-DVR13gJ5.js → decoded-7CsibQKd.js} +1 -1
- package/dist/client/assets/{djvu-CZbDJKwH.js → djvu-BXFlPnkK.js} +1 -1
- package/dist/client/assets/{docx-BWH54ddd.js → docx-B_9I-KwO.js} +1 -1
- package/dist/client/assets/{heic-CV3oZ6BF.js → heic-Ce7tu8UK.js} +1 -1
- package/dist/client/assets/{imagemap-DRJrF_aD.js → imagemap-DlsYOgu-.js} +1 -1
- package/dist/client/assets/{index-CCUPHCB4.js → index-D7TqaRqy.js} +3 -3
- package/dist/client/assets/{index-D5xvCkZE.css → index-DEBdytA6.css} +1 -1
- package/dist/client/assets/{map-Y_zmEjLV.js → map-CKyCg437.js} +1 -1
- package/dist/client/assets/{paged-DKLVDozm.js → paged-CBui7Gsu.js} +1 -1
- package/dist/client/assets/{panzoom-NbtFbptF.js → panzoom-BDtxTlLr.js} +1 -1
- package/dist/client/assets/{pdf-DM1MQkYa.js → pdf-DEAMWCiJ.js} +1 -1
- package/dist/client/assets/{psd-PXeZB_nC.js → psd-BUfV7J7j.js} +1 -1
- package/dist/client/assets/{spreadsheet-B-3t2XCi.js → spreadsheet-DM8lRCkI.js} +1 -1
- package/dist/client/assets/{tiff-BQq-nYyI.js → tiff-DvGVB25t.js} +1 -1
- package/dist/client/index.html +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,b as U,f as J,d as K,r,D as A,e as V,c as X}from"./index-
|
|
1
|
+
import{j as a,b as U,f as J,d as K,r,D as A,e as V,c as X}from"./index-D7TqaRqy.js";import{L as h,w as Y}from"./panzoom-BDtxTlLr.js";const E=e=>Number(e)||0;function _(e,t,f,s,c){if(!e||s<=0||c<=0)return;const o=document.createElement("canvas");o.width=s,o.height=c;const l=o.getContext("2d");if(l){l.drawImage(e,t,f,s,c,0,0,s,c);try{return o.toDataURL("image/png")}catch{return}}}function q(e){return e.filter(t=>t.selector?.type==="rect").map(t=>({x:E(t.selector.x),y:E(t.selector.y),w:E(t.selector.w),h:E(t.selector.h),title:t.description,color:X(t),ann:V(t)?t:void 0}))}function z({src:e,className:t,regions:f,onSelectRegion:s,onRegionClick:c,selectColor:o}){const l=r.useRef(null),g=r.useRef(null),x=r.useRef(null),w=r.useRef(null),R=r.useRef({w:1,h:1}),N=r.useRef(s),j=r.useRef(c),b=r.useRef(o),[C,S]=r.useState(null),[F,G]=r.useState(0),P=JSON.stringify(f??[]),M=!!s;return r.useEffect(()=>{N.current=s,j.current=c,b.current=o}),r.useEffect(()=>{let i=!1,y=null;S(null);const n=new Image;return n.onload=()=>{if(i||!l.current)return;const v=n.naturalWidth||1,m=n.naturalHeight||1;R.current={w:v,h:m},w.current=n;const u=h.map(l.current,{crs:h.CRS.Simple,minZoom:-8,attributionControl:!1,zoomSnap:0}),d=[[0,0],[m,v]];h.imageOverlay(e,d).addTo(u),u.fitBounds(d),x.current=h.layerGroup().addTo(u),g.current=u,y=Y(u,{color:()=>b.current?.()??A,onSelect:M?(p,W)=>{const{h:Z}=R.current,O=p.getWest(),B=p.getEast(),H=p.getSouth(),I=p.getNorth(),L=Math.round(O),T=Math.round(Z-I),k=Math.round(B-O),D=Math.round(I-H);N.current?.({type:"rect",x:L,y:T,w:k,h:D},W,_(w.current,L,T,k,D))}:void 0}),G(p=>p+1)},n.onerror=()=>{i||S("could not load image")},n.src=e,()=>{i=!0,y?.(),g.current?.remove(),g.current=null,x.current=null}},[e]),r.useEffect(()=>{const i=x.current;if(!i)return;i.clearLayers();const{h:y}=R.current;for(const n of f??[]){const v=n.color||A,m=h.rectangle([[y-n.y,n.x],[y-(n.y+n.h),n.x+n.w]],{className:"yo-region",color:v,weight:3,fillColor:v,fillOpacity:.25});if(n.title&&m.bindTooltip(n.title),n.ann){const u=n.ann;m.on("click",d=>{h.DomEvent.stop(d),j.current?.(u,{x:d.originalEvent.clientX,y:d.originalEvent.clientY})})}m.addTo(i)}},[P,F]),a.jsxs(a.Fragment,{children:[C&&a.jsxs("div",{className:"error",children:["image: ",C]}),a.jsx("div",{ref:l,className:t+(M?" yo-selectable":"")})]})}function ee({node:e}){const t=J(e.path),{openCreate:f,openEdit:s,palette:c,preview:o,color:l}=K(t),g=o?[...t.annotations,{path:"(preview)",selector:o.selector,tag:o.tag}]:t.annotations;return a.jsxs("div",{className:"text",children:[e.title&&a.jsx("h1",{className:"chapter-title",children:e.title}),e.description&&a.jsx("p",{className:"chapter-subtitle",children:e.description}),a.jsx(z,{src:U(e.path),regions:q(g),onSelectRegion:(x,w,R)=>f(x,w,void 0,R),onRegionClick:s,selectColor:()=>l,className:"filemap fileimagemap"}),c]})}function te({chunk:e}){return a.jsx(z,{src:U(e.path),className:"filemap chunk-map fileimagemap"})}export{te as ImageChunk,ee as ImageView,z as PanZoomImage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-DEAMWCiJ.js","assets/paged-CBui7Gsu.js","assets/pdf-m5e3jsV4.css","assets/djvu-BXFlPnkK.js","assets/psd-BUfV7J7j.js","assets/decoded-7CsibQKd.js","assets/imagemap-DlsYOgu-.js","assets/panzoom-BDtxTlLr.js","assets/panzoom-CIGW-MKW.css","assets/tiff-DvGVB25t.js","assets/_commonjs-dynamic-modules-TDtrdbi3.js","assets/heic-Ce7tu8UK.js","assets/docx-B_9I-KwO.js","assets/map-CKyCg437.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&n(c)}).observe(document,{childList:!0,subtree:!0});function r(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=r(i);fetch(i.href,s)}})();var C8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ev(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var a_={exports:{}},wu={},l_={exports:{}},Ot={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react.production.min.js
|
|
@@ -607,7 +607,7 @@ Your browser does not support the video tag.
|
|
|
607
607
|
`)}function tv(e){const[t,r]=gt.useState(null),[n,i]=gt.useState(null);return gt.useEffect(()=>{let s=!1;return r(null),i(null),fetch(hs(e)).then(c=>c.arrayBuffer()).then(c=>{if(s)return;const f=new TextDecoder("windows-1252").decode(new Uint8Array(c));r(m6(f))}).catch(c=>!s&&i(String(c.message||c))),()=>{s=!0}},[e]),{html:t,error:n}}function g6({node:e}){const{html:t,error:r}=tv(e.path);return r?qe.jsxs("div",{className:"error",children:["rtf: ",r]}):t==null?qe.jsx("div",{className:"loading",children:"reading RTF…"}):qe.jsxs("div",{className:"text",children:[e.title&&qe.jsx("h1",{className:"chapter-title",children:e.title}),e.description&&qe.jsx("p",{className:"chapter-subtitle",children:e.description}),qe.jsx("div",{className:"markup",dangerouslySetInnerHTML:{__html:t}})]})}function v6({chunk:e}){const{html:t,error:r}=tv(e.path);return r?qe.jsxs("div",{className:"error",children:["rtf: ",r]}):t==null?qe.jsx("div",{className:"loading",children:"reading RTF…"}):qe.jsx("div",{className:"markup",dangerouslySetInnerHTML:{__html:t}})}function rv({path:e}){return qe.jsxs("div",{className:"office-fallback",children:[qe.jsxs("p",{children:["Legacy ",qe.jsx("code",{children:".doc"})," (Word 97–2003) isn’t rendered in the browser — the old binary format has no reliable client-side parser. Newer ",qe.jsx("code",{children:".docx"})," files render in full."]}),qe.jsxs("p",{children:[qe.jsx("a",{className:"descend",href:hs(e),download:!0,children:"⤓ Download the document"})," ","to open it in an office application."]})]})}function y6({node:e}){return qe.jsxs("div",{className:"text",children:[e.title&&qe.jsx("h1",{className:"chapter-title",children:e.title}),e.description&&qe.jsx("p",{className:"chapter-subtitle",children:e.description}),qe.jsx(rv,{path:e.path})]})}function b6({chunk:e}){return qe.jsx(rv,{path:e.path})}var Vr=Uint8Array,An=Uint16Array,wd=Int32Array,ac=new Vr([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),lc=new Vr([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),qf=new Vr([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),nv=function(e,t){for(var r=new An(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];for(var i=new wd(r[30]),n=1;n<30;++n)for(var s=r[n];s<r[n+1];++s)i[s]=s-r[n]<<5|n;return{b:r,r:i}},iv=nv(ac,2),sv=iv.b,Mf=iv.r;sv[28]=258,Mf[258]=28;var av=nv(lc,0),x6=av.b,Pp=av.r,Df=new An(32768);for(var $r=0;$r<32768;++$r){var ji=($r&43690)>>1|($r&21845)<<1;ji=(ji&52428)>>2|(ji&13107)<<2,ji=(ji&61680)>>4|(ji&3855)<<4,Df[$r]=((ji&65280)>>8|(ji&255)<<8)>>1}var di=function(e,t,r){for(var n=e.length,i=0,s=new An(t);i<n;++i)e[i]&&++s[e[i]-1];var c=new An(t);for(i=1;i<t;++i)c[i]=c[i-1]+s[i-1]<<1;var f;if(r){f=new An(1<<t);var p=15-t;for(i=0;i<n;++i)if(e[i])for(var h=i<<4|e[i],I=t-e[i],L=c[e[i]-1]++<<I,H=L|(1<<I)-1;L<=H;++L)f[Df[L]>>p]=h}else for(f=new An(n),i=0;i<n;++i)e[i]&&(f[i]=Df[c[e[i]-1]++]>>15-e[i]);return f},cs=new Vr(288);for(var $r=0;$r<144;++$r)cs[$r]=8;for(var $r=144;$r<256;++$r)cs[$r]=9;for(var $r=256;$r<280;++$r)cs[$r]=7;for(var $r=280;$r<288;++$r)cs[$r]=8;var Ul=new Vr(32);for(var $r=0;$r<32;++$r)Ul[$r]=5;var w6=di(cs,9,0),k6=di(cs,9,1),S6=di(Ul,5,0),A6=di(Ul,5,1),t$=function(e){for(var t=e[0],r=1;r<e.length;++r)e[r]>t&&(t=e[r]);return t},Kn=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(t&7)&r},r$=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(t&7)},kd=function(e){return(e+7)/8|0},oc=function(e,t,r){return(t==null||t<0)&&(t=0),(r==null||r>e.length)&&(r=e.length),new Vr(e.subarray(t,r))},E6=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],kn=function(e,t,r){var n=new Error(t||E6[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,kn),!r)throw n;return n},C6=function(e,t,r,n){var i=e.length,s=n?n.length:0;if(!i||t.f&&!t.l)return r||new Vr(0);var c=!r,f=c||t.i!=2,p=t.i;c&&(r=new Vr(i*3));var h=function(ft){var _t=r.length;if(ft>_t){var At=new Vr(Math.max(_t*2,ft));At.set(r),r=At}},I=t.f||0,L=t.p||0,H=t.b||0,pe=t.l,be=t.d,re=t.m,W=t.n,X=i*8;do{if(!pe){I=Kn(e,L,1);var ge=Kn(e,L+1,3);if(L+=3,ge)if(ge==1)pe=k6,be=A6,re=9,W=5;else if(ge==2){var xe=Kn(e,L,31)+257,fe=Kn(e,L+10,15)+4,Ae=xe+Kn(e,L+5,31)+1;L+=14;for(var O=new Vr(Ae),Ee=new Vr(19),ce=0;ce<fe;++ce)Ee[qf[ce]]=Kn(e,L+ce*3,7);L+=fe*3;for(var w=t$(Ee),Se=(1<<w)-1,N=di(Ee,w,1),ce=0;ce<Ae;){var ne=N[Kn(e,L,Se)];L+=ne&15;var se=ne>>4;if(se<16)O[ce++]=se;else{var B=0,Le=0;for(se==16?(Le=3+Kn(e,L,3),L+=2,B=O[ce-1]):se==17?(Le=3+Kn(e,L,7),L+=3):se==18&&(Le=11+Kn(e,L,127),L+=7);Le--;)O[ce++]=B}}var ue=O.subarray(0,xe),P=O.subarray(xe);re=t$(ue),W=t$(P),pe=di(ue,re,1),be=di(P,W,1)}else kn(1);else{var se=kd(L)+4,me=e[se-4]|e[se-3]<<8,J=se+me;if(J>i){p&&kn(0);break}f&&h(H+me),r.set(e.subarray(se,J),H),t.b=H+=me,t.p=L=J*8,t.f=I;continue}if(L>X){p&&kn(0);break}}f&&h(H+131072);for(var v=(1<<re)-1,$=(1<<W)-1,l=L;;l=L){var B=pe[r$(e,L)&v],u=B>>4;if(L+=B&15,L>X){p&&kn(0);break}if(B||kn(2),u<256)r[H++]=u;else if(u==256){l=L,pe=null;break}else{var d=u-254;if(u>264){var ce=u-257,_=ac[ce];d=Kn(e,L,(1<<_)-1)+sv[ce],L+=_}var k=be[r$(e,L)&$],A=k>>4;k||kn(3),L+=k&15;var P=x6[A];if(A>3){var _=lc[A];P+=r$(e,L)&(1<<_)-1,L+=_}if(L>X){p&&kn(0);break}f&&h(H+131072);var Q=H+d;if(H<P){var De=s-P,rt=Math.min(P,Q);for(De+H<0&&kn(3);H<rt;++H)r[H]=n[De+H]}for(;H<Q;++H)r[H]=r[H-P]}}t.l=pe,t.p=l,t.b=H,t.f=I,pe&&(I=1,t.m=re,t.d=be,t.n=W)}while(!I);return H!=r.length&&c?oc(r,0,H):r.subarray(0,H)},gi=function(e,t,r){r<<=t&7;var n=t/8|0;e[n]|=r,e[n+1]|=r>>8},Oa=function(e,t,r){r<<=t&7;var n=t/8|0;e[n]|=r,e[n+1]|=r>>8,e[n+2]|=r>>16},n$=function(e,t){for(var r=[],n=0;n<e.length;++n)e[n]&&r.push({s:n,f:e[n]});var i=r.length,s=r.slice();if(!i)return{t:ov,l:0};if(i==1){var c=new Vr(r[0].s+1);return c[r[0].s]=1,{t:c,l:1}}r.sort(function(J,xe){return J.f-xe.f}),r.push({s:-1,f:25001});var f=r[0],p=r[1],h=0,I=1,L=2;for(r[0]={s:-1,f:f.f+p.f,l:f,r:p};I!=i-1;)f=r[r[h].f<r[L].f?h++:L++],p=r[h!=I&&r[h].f<r[L].f?h++:L++],r[I++]={s:-1,f:f.f+p.f,l:f,r:p};for(var H=s[0].s,n=1;n<i;++n)s[n].s>H&&(H=s[n].s);var pe=new An(H+1),be=Lf(r[I-1],pe,0);if(be>t){var n=0,re=0,W=be-t,X=1<<W;for(s.sort(function(xe,fe){return pe[fe.s]-pe[xe.s]||xe.f-fe.f});n<i;++n){var ge=s[n].s;if(pe[ge]>t)re+=X-(1<<be-pe[ge]),pe[ge]=t;else break}for(re>>=W;re>0;){var se=s[n].s;pe[se]<t?re-=1<<t-pe[se]++-1:++n}for(;n>=0&&re;--n){var me=s[n].s;pe[me]==t&&(--pe[me],++re)}be=t}return{t:new Vr(pe),l:be}},Lf=function(e,t,r){return e.s==-1?Math.max(Lf(e.l,t,r+1),Lf(e.r,t,r+1)):t[e.s]=r},Up=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new An(++t),n=0,i=e[0],s=1,c=function(p){r[n++]=p},f=1;f<=t;++f)if(e[f]==i&&f!=t)++s;else{if(!i&&s>2){for(;s>138;s-=138)c(32754);s>2&&(c(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(c(i),--s;s>6;s-=6)c(8304);s>2&&(c(s-3<<5|8208),s=0)}for(;s--;)c(i);s=1,i=e[f]}return{c:r.subarray(0,n),n:t}},el=function(e,t){for(var r=0,n=0;n<t.length;++n)r+=e[n]*t[n];return r},lv=function(e,t,r){var n=r.length,i=kd(t+2);e[i]=n&255,e[i+1]=n>>8,e[i+2]=e[i]^255,e[i+3]=e[i+1]^255;for(var s=0;s<n;++s)e[i+s+4]=r[s];return(i+4+n)*8},Hp=function(e,t,r,n,i,s,c,f,p,h,I){gi(t,I++,r),++i[256];for(var L=n$(i,15),H=L.t,pe=L.l,be=n$(s,15),re=be.t,W=be.l,X=Up(H),ge=X.c,se=X.n,me=Up(re),J=me.c,xe=me.n,fe=new An(19),Ae=0;Ae<ge.length;++Ae)++fe[ge[Ae]&31];for(var Ae=0;Ae<J.length;++Ae)++fe[J[Ae]&31];for(var O=n$(fe,7),Ee=O.t,ce=O.l,w=19;w>4&&!Ee[qf[w-1]];--w);var Se=h+5<<3,N=el(i,cs)+el(s,Ul)+c,ne=el(i,H)+el(s,re)+c+14+3*w+el(fe,Ee)+2*fe[16]+3*fe[17]+7*fe[18];if(p>=0&&Se<=N&&Se<=ne)return lv(t,I,e.subarray(p,p+h));var B,Le,ue,P;if(gi(t,I,1+(ne<N)),I+=2,ne<N){B=di(H,pe,0),Le=H,ue=di(re,W,0),P=re;var v=di(Ee,ce,0);gi(t,I,se-257),gi(t,I+5,xe-1),gi(t,I+10,w-4),I+=14;for(var Ae=0;Ae<w;++Ae)gi(t,I+3*Ae,Ee[qf[Ae]]);I+=3*w;for(var $=[ge,J],l=0;l<2;++l)for(var u=$[l],Ae=0;Ae<u.length;++Ae){var d=u[Ae]&31;gi(t,I,v[d]),I+=Ee[d],d>15&&(gi(t,I,u[Ae]>>5&127),I+=u[Ae]>>12)}}else B=w6,Le=cs,ue=S6,P=Ul;for(var Ae=0;Ae<f;++Ae){var _=n[Ae];if(_>255){var d=_>>18&31;Oa(t,I,B[d+257]),I+=Le[d+257],d>7&&(gi(t,I,_>>23&31),I+=ac[d]);var k=_&31;Oa(t,I,ue[k]),I+=P[k],k>3&&(Oa(t,I,_>>5&8191),I+=lc[k])}else Oa(t,I,B[_]),I+=Le[_]}return Oa(t,I,B[256]),I+Le[256]},T6=new wd([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ov=new Vr(0),z6=function(e,t,r,n,i,s){var c=s.z||e.length,f=new Vr(n+c+5*(1+Math.ceil(c/7e3))+i),p=f.subarray(n,f.length-i),h=s.l,I=(s.r||0)&7;if(t){I&&(p[0]=s.r>>3);for(var L=T6[t-1],H=L>>13,pe=L&8191,be=(1<<r)-1,re=s.p||new An(32768),W=s.h||new An(be+1),X=Math.ceil(r/3),ge=2*X,se=function(bt){return(e[bt]^e[bt+1]<<X^e[bt+2]<<ge)&be},me=new wd(25e3),J=new An(288),xe=new An(32),fe=0,Ae=0,O=s.i||0,Ee=0,ce=s.w||0,w=0;O+2<c;++O){var Se=se(O),N=O&32767,ne=W[Se];if(re[N]=ne,W[Se]=N,ce<=O){var B=c-O;if((fe>7e3||Ee>24576)&&(B>423||!h)){I=Hp(e,p,0,me,J,xe,Ae,Ee,w,O-w,I),Ee=fe=Ae=0,w=O;for(var Le=0;Le<286;++Le)J[Le]=0;for(var Le=0;Le<30;++Le)xe[Le]=0}var ue=2,P=0,v=pe,$=N-ne&32767;if(B>2&&Se==se(O-$))for(var l=Math.min(H,B)-1,u=Math.min(32767,O),d=Math.min(258,B);$<=u&&--v&&N!=ne;){if(e[O+ue]==e[O+ue-$]){for(var _=0;_<d&&e[O+_]==e[O+_-$];++_);if(_>ue){if(ue=_,P=$,_>l)break;for(var k=Math.min($,_-2),A=0,Le=0;Le<k;++Le){var Q=O-$+Le&32767,De=re[Q],rt=Q-De&32767;rt>A&&(A=rt,ne=Q)}}}N=ne,ne=re[N],$+=N-ne&32767}if(P){me[Ee++]=268435456|Mf[ue]<<18|Pp[P];var ft=Mf[ue]&31,_t=Pp[P]&31;Ae+=ac[ft]+lc[_t],++J[257+ft],++xe[_t],ce=O+ue,++fe}else me[Ee++]=e[O],++J[e[O]]}}for(O=Math.max(O,ce);O<c;++O)me[Ee++]=e[O],++J[e[O]];I=Hp(e,p,h,me,J,xe,Ae,Ee,w,O-w,I),h||(s.r=I&7|p[I/8|0]<<3,I-=7,s.h=W,s.p=re,s.i=O,s.w=ce)}else{for(var O=s.w||0;O<c+h;O+=65535){var At=O+65535;At>=c&&(p[I/8|0]=h,At=c),I=lv(p,I+1,e.subarray(O,At))}s.i=c}return oc(f,0,n+kd(I)+i)},R6=function(e,t,r,n,i){if(!i&&(i={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),c=new Vr(s.length+e.length);c.set(s),c.set(e,s.length),e=c,i.w=s.length}return z6(e,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,r,n,i)},ui=function(e,t){return e[t]|e[t+1]<<8},Ln=function(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0},i$=function(e,t){return Ln(e,t)+Ln(e,t+4)*4294967296};function N6(e,t){return R6(e,t||{},0,0)}function I6(e,t){return C6(e,{i:2},t&&t.out,t&&t.dictionary)}var Ff=typeof TextDecoder<"u"&&new TextDecoder,q6=0;try{Ff.decode(ov,{stream:!0}),q6=1}catch{}var M6=function(e){for(var t="",r=0;;){var n=e[r++],i=(n>127)+(n>223)+(n>239);if(r+i>e.length)return{s:t,r:oc(e,r-1)};i?i==3?(n=((n&15)<<18|(e[r++]&63)<<12|(e[r++]&63)<<6|e[r++]&63)-65536,t+=String.fromCharCode(55296|n>>10,56320|n&1023)):i&1?t+=String.fromCharCode((n&31)<<6|e[r++]&63):t+=String.fromCharCode((n&15)<<12|(e[r++]&63)<<6|e[r++]&63):t+=String.fromCharCode(n)}};function Bf(e,t){if(t){for(var r="",n=0;n<e.length;n+=16384)r+=String.fromCharCode.apply(null,e.subarray(n,n+16384));return r}else{if(Ff)return Ff.decode(e);var i=M6(e),s=i.s,r=i.r;return r.length&&kn(8),s}}var D6=function(e,t){return t+30+ui(e,t+26)+ui(e,t+28)},L6=function(e,t,r){var n=ui(e,t+28),i=ui(e,t+30),s=Bf(e.subarray(t+46,t+46+n),!(ui(e,t+8)&2048)),c=t+46+n,f=F6(e,c,i,r,Ln(e,t+20),Ln(e,t+24),Ln(e,t+42)),p=f[0],h=f[1],I=f[2];return[ui(e,t+10),p,h,s,c+i+ui(e,t+32),I]},F6=function(e,t,r,n,i,s,c){var f=i==4294967295,p=s==4294967295,h=c==4294967295,I=t+r,L=f+p+h;if(n&&L){for(;t+4<I;t+=4+ui(e,t+2))if(ui(e,t)==1)return[f?i$(e,t+4+8*p):i,p?i$(e,t+4):s,h?i$(e,t+4+8*(p+f)):c,1];n<2&&kn(13)}return[i,s,c,0]};function B6(e,t){for(var r={},n=e.length-22;Ln(e,n)!=101010256;--n)(!n||e.length-n>65558)&&kn(13);var i=ui(e,n+8);if(!i)return{};var s=Ln(e,n+16),c=Ln(e,n-20)==117853008;if(c){var f=Ln(e,n-12);c=Ln(e,f)==101075792,c&&(i=Ln(e,f+32),s=Ln(e,f+48))}for(var p=0;p<i;++p){var h=L6(e,s,c),I=h[0],L=h[1],H=h[2],pe=h[3],be=h[4],re=h[5],W=D6(e,re);s=be,I?I==8?r[pe]=I6(e.subarray(W,W+L),{out:new Vr(H)}):kn(14,"unknown compression type "+I):r[pe]=oc(e,W,W+L)}return r}const j6={},P6=j6?.VITE_PLANTUML_SERVER?.replace(/\/+$/,"")??"https://www.plantuml.com/plantuml";function Ao(e){return e<10?String.fromCharCode(48+e):(e-=10,e<26?String.fromCharCode(65+e):(e-=26,e<26?String.fromCharCode(97+e):(e-=26,e===0?"-":e===1?"_":"?")))}function s$(e,t,r){const n=e>>2,i=(e&3)<<4|t>>4,s=(t&15)<<2|r>>6,c=r&63;return Ao(n&63)+Ao(i&63)+Ao(s&63)+Ao(c&63)}function U6(e){let t="";for(let r=0;r<e.length;r+=3)r+2===e.length?t+=s$(e[r],e[r+1],0):r+1===e.length?t+=s$(e[r],0,0):t+=s$(e[r],e[r+1],e[r+2]);return t}function H6(e){const t=N6(new TextEncoder().encode(e),{level:9});return`${P6}/svg/${U6(t)}`}function uv({source:e}){return qe.jsx("div",{className:"filemedia",children:qe.jsx("img",{className:"fileimage plantuml",src:H6(e),alt:"PlantUML diagram"})})}function V6({node:e}){return qe.jsxs("div",{className:"text",children:[e.title&&qe.jsx("h1",{className:"chapter-title",children:e.title}),e.description&&qe.jsx("p",{className:"chapter-subtitle",children:e.description}),qe.jsx(uv,{source:String(Ia(e.value)??"")})]})}function W6({chunk:e}){return qe.jsx(uv,{source:String(e.value??"")})}const Y6={object:{glyph:"{}",cls:"t-struct"},array:{glyph:"[]",cls:"t-struct"},string:{glyph:"“”",cls:"t-str"},integer:{glyph:"#",cls:"t-num"},number:{glyph:"½",cls:"t-num"},boolean:{glyph:"◧",cls:"t-bool"},null:{glyph:"∅",cls:"t-null"},binary:{glyph:"0110",cls:"t-bin binsq"}},G6={"date-time":"🕑",date:"📅",time:"🕑",duration:"⏳",email:"✉️","idn-email":"✉️",hostname:"🖥️","idn-hostname":"🖥️",ipv4:"🌐",ipv6:"🌐",uri:"🔗",iri:"🔗","uri-reference":"🔗","iri-reference":"🔗","uri-template":"🔗",url:"🔗",uuid:"🆔",regex:"🔣","json-pointer":"📍","relative-json-pointer":"📍",password:"🔑",color:"🎨"};function K6(e){return e==="x-yamlover-chapter"?"§":e==="x-yamlover-tag"?"🏷️":e.startsWith("x-yamlover-")?"🧩":e==="application/pdf"?"📕":e==="application/x-fictionbook+xml"?"📘":e==="application/epub+zip"?"📗":e==="image/vnd.djvu"?"📓":e.startsWith("image/")?"🖼️":e==="text/markdown"?"📝":e==="text/asciidoc"?"📃":e==="text/csv"||e==="text/tab-separated-values"?"▦":e==="text/x-plantuml"?"📊":e==="application/vnd.ms-excel"||e==="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"?"▦":e==="application/rtf"||e==="application/msword"||e==="application/vnd.openxmlformats-officedocument.wordprocessingml.document"?"📄":e==="application/vnd.google-earth.kml+xml"||e==="application/vnd.google-earth.kmz"?"🗺️":e.startsWith("text/")?"📄":e.startsWith("audio/")?"🔊":e.startsWith("video/")?"🎬":/^(u?int|float)\d/.test(e)?"💾":null}function xu(e,t,r){if(t){const i=G6[t]??K6(t);if(i)return{glyph:i,cls:"t-fmt",title:t}}if(r==="dir")return{glyph:"📁",cls:"t-struct",title:"folder"};if(r==="yamlover")return{glyph:"🗂️",cls:"t-struct",title:"yamlover folder"};const n=Y6[e];return n?{glyph:n.glyph,cls:n.cls,title:e}:{glyph:"•",cls:"t-bin",title:e||"unknown"}}const a$=new Map;function bl({tag:e,body:t,children:r}){const n=gt.useRef(null),[i,s]=gt.useState(null),[c,f]=gt.useState(t??a$.get(e.path)??null);gt.useEffect(()=>{if(!i||t!=null||a$.has(e.path))return;let H=!0;return Cn(e.path,1).then(pe=>T1(pe.value)).catch(()=>null).then(pe=>{a$.set(e.path,pe??null),H&&f(pe??null)}),()=>{H=!1}},[i,e.path,t]);const p=()=>{const H=n.current?.getBoundingClientRect();H&&s({left:H.left,top:H.bottom+4})},h=()=>s(null),I=cn({name:e.name,color:e.color}),L=t??c;return qe.jsxs("span",{ref:n,className:"tagtip-anchor",onMouseEnter:p,onMouseLeave:h,children:[r,i&&g1.createPortal(qe.jsxs("span",{className:"tagtip",style:{left:i.left,top:i.top,background:I},children:[qe.jsx("span",{className:"tagtip-path",children:q4(e.path)}),L&&qe.jsx("span",{className:"tagtip-value",children:L})]}),document.body)]})}const Sd=[{path:"::yamlover:tags:colors:yellow",name:"yellow",color:"#f9e2af"},{path:"::yamlover:tags:colors:green",name:"green",color:"#a6e3a1"},{path:"::yamlover:tags:colors:sky",name:"sky",color:"#89dceb"},{path:"::yamlover:tags:colors:mauve",name:"mauve",color:"#cba6f7"},{path:"::yamlover:tags:colors:pink",name:"pink",color:"#f5c2e7"},{path:"::yamlover:tags:colors:peach",name:"peach",color:"#fab387"}],cv=Sd[0],X6=cv.color,Ad="yo-annotate-recent-tags";function Q6(e){return e.tag?cn(e.tag):X6}function la(e){return JSON.stringify([e.selector??null,e.tag?.path?Hr(e.tag.path):null])}function jf(e,t){return JSON.stringify(e??null)===JSON.stringify(t??null)}function Z6(e){return!!e.tag&&e.path!=="(preview)"&&e.path!=="(pending)"}let Vp=null;async function J6(){for(const e of["::tags:colors","::yamlover:tags:colors"])try{const t=await Cn(e,2),r=[];for(const[n,i]of bn(t.value)){const s=X0(i);s&&r.push({path:`${e}:${encodeURIComponent(n)}`,name:n,color:s})}if(r.length)return r}catch{}return Sd}function O6(){const[e,t]=gt.useState(Sd);return gt.useEffect(()=>{Vp??=J6();let r=!1;return Vp.then(n=>{r||t(n)}),()=>{r=!0}},[]),e}const e7=": ...: !!<format: x-yamlover-tag>";function t7(e){const t=new Map;for(const r of e){if(K0(r))continue;const n=Hr(r);t.has(n)||t.set(n,r)}return[...t.values()].map(r=>({path:r,name:Cd(r),color:null}))}function r7(){const[e,t]=gt.useState([]),r=Ma(Fs);return gt.useEffect(()=>{let n=!1;return i4(e7).then(i=>{n||t(t7(i))}).catch(()=>{n||t([])}),()=>{n=!0}},[r]),e}function $v(){const[e,t]=gt.useState(cv);return gt.useEffect(()=>{let n=!0;return y1().then(i=>{const s=i.settings.annotationTag;n&&s&&t({path:s,name:Cd(s),color:null})}).catch(()=>{}),()=>{n=!1}},[]),[e,n=>{n7(n),t(n),a4(n.path).catch(()=>{})}]}function Ed(){try{const e=JSON.parse(localStorage.getItem(Ad)||"[]");if(Array.isArray(e))return e.filter(t=>t?.path&&t?.name)}catch{}return[]}function n7(e){if(Hr(e.path).startsWith(":yamlover:tags:colors:"))return;const t=[e,...Ed().filter(r=>r.path!==e.path)].slice(0,6);localStorage.setItem(Ad,JSON.stringify(t))}function i7(){const e=r=>Cn(r.path,0).then(n=>n.format===Da).catch(()=>!1),t=Ed();return Promise.all(t.map(r=>e(r).then(n=>n?r:null))).then(r=>{const n=r.filter(Boolean);return n.length!==t.length&&localStorage.setItem(Ad,JSON.stringify(n)),n})}async function s7(e,t,r,n){if(!t)return Is({target:e,tag:r.path});const{fragmentPath:i}=await l4(e,t,n);return Is({target:i,tag:r.path})}function Wp(e,t){return t.fragmentSlug?(e===":"?"":e)+":yamlover-fragments:"+t.fragmentSlug:e}function fv(e,t=0){const[r,n]=gt.useState([]),i=Ma(Fs);return gt.useEffect(()=>{let s=!1;return ka(e).then(c=>!s&&n(c)).catch(()=>!s&&n([])),()=>{s=!0}},[e,t,i]),r}function a7(e){const[t,r]=gt.useState(0),n=fv(e,t),[i,s]=gt.useState([]),[c,f]=gt.useState(new Set);gt.useEffect(()=>{const X=new Set(n.map(la));s(ge=>ge.filter(se=>!X.has(la(se)))),f(ge=>new Set([...ge].filter(se=>X.has(se))))},[n]);const p=()=>r(X=>X+1),h=(X,ge,se)=>{s(me=>me.filter(J=>J!==X)),se||window.alert("save failed: "+ge.message)},I=(X,ge,se)=>{const me={path:"(pending)",selector:X??void 0,tag:ge};s(J=>[...J,me]),s7(e,X,ge,se?.imageBase64).then(p).catch(J=>h(me,J,se?.silent))},L=X=>{if(!X?.tag||X.path==="(pending)")return;const ge=la(X);f(se=>new Set(se).add(ge)),P0(Wp(e,X),X.tag.path).then(p).catch(se=>{f(me=>{const J=new Set(me);return J.delete(ge),J}),window.alert("delete failed: "+se.message)})},H=gt.useRef([]),pe=X=>{const ge=n.find(se=>se.fragmentSlug&&se.path!=="(pending)"&&jf(se.selector,X));return ge?Wp(e,ge):null},be=(X,ge,se)=>{const me=pe(X);if(me){const J={path:"(pending)",selector:X,tag:ge};s(xe=>[...xe,J]),Is({target:me,tag:ge.path}).then(p).catch(xe=>h(J,xe,se?.silent));return}if(i.some(J=>jf(J.selector,X))){const J={path:"(pending)",selector:X,tag:ge};s(xe=>[...xe,J]),H.current.push({selector:X,tag:ge,entry:J});return}I(X,ge,se)};gt.useEffect(()=>{if(!H.current.length)return;const X=[];for(const ge of H.current){const se=pe(ge.selector);se?Is({target:se,tag:ge.tag.path}).then(p).catch(me=>h(ge.entry,me)):X.push(ge)}H.current=X},[n]);const re=new Set,W=[];for(const X of[...i,...n]){const ge=la(X);c.has(ge)||re.has(ge)||(re.add(ge),W.push(X))}return{annotations:W,create:I,remove:L,annotateRegion:be}}function Cd(e){const t=Gr(e);return t.length?String(t[t.length-1]):e}function l7(e,t){const r=e.name.toLowerCase();return r===t?0:r.startsWith(t)?1:r.includes(t)?2:3}const Uo=e=>({"--tag":e});function Td({x:e,y:t,applied:r,mode:n,onPick:i,onUnpick:s,onCopy:c,onClose:f,menuRef:p}){const h=O6(),I=r7(),[L,H]=gt.useState(Ed),[pe,be]=gt.useState(""),[re,W]=gt.useState(-1),[X,ge]=gt.useState(!1),se=n==="edit"?"re-tag":"tag";gt.useEffect(()=>{let N=!0;return i7().then(ne=>{N&&H(ne)}),()=>{N=!1}},[]);const me=(N,ne)=>Hr(N)===Hr(ne),J=N=>h.some(ne=>me(ne.path,N.path)),xe=new Set(r.map(N=>Hr(N.path))),fe=N=>xe.has(Hr(N)),Ae=[],O=new Set;for(const N of[...r.filter(ne=>!J(ne)),...L]){const ne=Hr(N.path);O.has(ne)||(O.add(ne),Ae.push(N))}const Ee=N=>(fe(N.path)?s??i:i)(N),ce=pe.trim().toLowerCase(),w=[];if(ce){const N=I.filter(B=>!J(B)&&!Ae.some(Le=>me(Le.path,B.path))&&(B.name.toLowerCase().includes(ce)||Hr(B.path).toLowerCase().includes(ce))).map(B=>({t:B,rank:l7(B,ce)})).sort((B,Le)=>B.rank-Le.rank||B.t.name.localeCompare(Le.t.name)),ne=new Set;for(const{t:B}of N){const Le=B.name.toLowerCase();if(!ne.has(Le)&&(ne.add(Le),w.push(B),w.length>=8))break}}gt.useEffect(()=>{W(w.length?0:-1)},[pe]);const Se=N=>{const ne=(N??pe).trim();!ne||X||(ge(!0),Cn(ne.startsWith(":")?ne:ne.startsWith("/")?":"+ne.slice(1).split("/").join(":"):":"+ne,1).then(B=>{if(B.format!==Da)throw new Error("not a tag node");i({path:B.path,name:B.title||Cd(B.path),color:X0(B.value)})}).catch(B=>{if(ne.includes(":")||ne.includes("/"))throw new Error(`cannot ${se} with "${ne}": `+B.message);return u4(ne).then(i).catch(Le=>{throw new Error(`cannot create tag "${ne}": `+Le.message)})}).catch(B=>window.alert(B.message)).finally(()=>ge(!1)))};return qe.jsxs("div",{ref:p,className:"annotate-menu",style:{left:e,top:t},role:"menu",children:[qe.jsx("div",{className:"annotate-palette",children:h.map(N=>qe.jsx(bl,{tag:N,children:qe.jsx("button",{type:"button",className:"annotate-swatch"+(fe(N.path)?" on":""),style:Uo(cn(N)),onClick:()=>Ee(N)})},N.path))}),c&&qe.jsx("button",{type:"button",className:"annotate-tool",title:"copy text to clipboard (don't annotate)",onClick:c,children:"⧉"}),qe.jsx("button",{type:"button",className:"annotate-tool close",title:"close",onClick:f,children:"✕"}),Ae.length>0&&qe.jsx("div",{className:"annotate-recents",children:Ae.map(N=>qe.jsx("span",{className:"tagframe",children:qe.jsx(bl,{tag:N,children:qe.jsx("button",{type:"button",className:"tagtag"+(fe(N.path)?" on":""),style:Uo(cn(N)),onClick:()=>Ee(N),children:qe.jsx("span",{className:"tt-label",children:N.name})})})},N.path))}),qe.jsxs("div",{className:"annotate-typeahead",children:[qe.jsx("input",{className:"annotate-taginput",type:"text",placeholder:X?"creating tag…":`${se}: tag path or new name… ⏎`,value:pe,disabled:X,autoComplete:"off",onChange:N=>be(N.target.value),onKeyDown:N=>{if(w.length&&N.key==="ArrowDown"){N.preventDefault(),N.stopPropagation(),W(ne=>(ne+1)%w.length);return}if(w.length&&N.key==="ArrowUp"){N.preventDefault(),N.stopPropagation(),W(ne=>(ne-1+w.length)%w.length);return}if(N.key==="Escape"&&pe){N.preventDefault(),N.stopPropagation(),be("");return}N.key==="Enter"&&(N.preventDefault(),N.stopPropagation(),re>=0&&w[re]?Se(w[re].path):Se())}}),!X&&w.length>0&&qe.jsx("div",{className:"annotate-suggest",role:"listbox",children:w.map((N,ne)=>qe.jsx("span",{className:"tagframe",children:qe.jsx(bl,{tag:N,children:qe.jsx("button",{type:"button",role:"option","aria-selected":ne===re,className:"tagtag"+(ne===re?" hi":""),style:Uo(cn(N)),onMouseDown:B=>{B.preventDefault(),Se(N.path)},onMouseEnter:()=>W(ne),children:qe.jsx("span",{className:"tt-label",children:N.name})})})},N.path))})]})]})}function o7(e){const[t,r]=$v(),[n,i]=gt.useState(null),s=gt.useRef(null),c=()=>i(null),f=(re,W,X,ge)=>{i({selector:re,seedTag:t,copy:X,imageBase64:ge,x:W.x,y:W.y}),e.annotateRegion(re,t,{imageBase64:ge,silent:!0})},p=(re,W)=>i({selector:re.selector??{},seedTag:re.tag??t,x:W.x,y:W.y}),h=n?e.annotations.filter(re=>jf(re.selector,n.selector)):[],I=h.map(re=>re.tag).filter(re=>!!re),L=re=>{n&&(r(re),!I.some(W=>Hr(W.path)===Hr(re.path))&&e.annotateRegion(n.selector,re,{imageBase64:n.imageBase64}))},H=re=>{if(!n)return;const W=h.find(X=>X.tag&&Hr(X.tag.path)===Hr(re.path));W&&e.remove(W)};gt.useEffect(()=>{if(!n)return;const re=W=>{s.current?.contains(W.target)||c()};return document.addEventListener("mousedown",re),()=>document.removeEventListener("mousedown",re)},[n]);const pe=n?qe.jsx(Td,{menuRef:s,x:n.x,y:n.y,applied:I,mode:"create",onPick:L,onUnpick:H,onCopy:n.copy?()=>{n.copy(),c()}:void 0,onClose:c}):null,be=n&&I.length===0?{selector:n.selector,tag:n.seedTag,color:cn(n.seedTag)}:null;return{openCreate:f,openEdit:p,palette:pe,preview:be,color:cn(t)}}function u7({path:e,children:t}){const r=gt.useRef(null),n=a7(e),{openCreate:i,openEdit:s,palette:c}=o7(n),{annotations:f}=n;gt.useEffect(()=>{const h=r.current;if(!h)return;const I=requestAnimationFrame(()=>$7(h,f));return()=>cancelAnimationFrame(I)}),gt.useEffect(()=>{const h=I=>{const L=r.current;if(!L||I.target?.closest?.(".annotate-menu")||I.target?.closest?.("mark.yo-annotation"))return;const H=window.getSelection();if(!H||H.isCollapsed||!H.anchorNode||!L.contains(H.anchorNode))return;const pe=c7(H);if(!pe)return;const be=H.getRangeAt(0).getBoundingClientRect(),re=()=>navigator.clipboard?.writeText(pe.exact).catch(()=>{});i({type:"text",exact:pe.exact,prefix:pe.prefix,suffix:pe.suffix},{x:be.left,y:be.bottom+6},re)};return document.addEventListener("mouseup",h),()=>document.removeEventListener("mouseup",h)},[]);const p=h=>{const I=h.target.closest("mark.yo-annotation");if(!I)return;const L=f.find(H=>la(H)===I.dataset.annSel);!L||!Z6(L)||(h.preventDefault(),s(L,{x:h.clientX,y:h.clientY}))};return qe.jsxs("div",{className:"annotated",children:[f.length>0&&qe.jsx("div",{className:"annotate-bar",children:qe.jsxs("span",{className:"annotate-count",children:[f.length," annotation",f.length>1?"s":""]})}),qe.jsx("div",{ref:r,onClick:p,children:t}),c]})}function c7(e){const t=e.toString().trim();if(!t)return null;const r=e.anchorNode?.nodeValue??"",n=r.indexOf(t),i=n>=0?r.slice(Math.max(0,n-24),n):"",s=n>=0?r.slice(n+t.length,n+t.length+24):"";return{exact:t,prefix:i,suffix:s}}function $7(e,t){e.querySelectorAll("mark.yo-annotation").forEach(r=>{const n=r.parentNode;if(n){for(;r.firstChild;)n.insertBefore(r.firstChild,r);n.removeChild(r),n.normalize()}});for(const r of t)r.selector?.type!=="text"||!r.selector.exact||f7(e,r.selector.exact,r)}function f7(e,t,r){const n=Q6(r),i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let s;for(;s=i.nextNode();){const c=(s.nodeValue??"").indexOf(t);if(c<0)continue;const f=document.createRange();f.setStart(s,c),f.setEnd(s,c+t.length);const p=document.createElement("mark");p.className="yo-annotation",p.style.backgroundColor=`color-mix(in srgb, ${n} 30%, transparent)`,p.style.borderBottomColor=n,p.dataset.annSel=la(r),p.title=r.description||"click to re-tag or delete";try{f.surroundContents(p);return}catch{}}}function d7(){const[e,t]=$v(),[r,n]=gt.useState(null),[i,s]=gt.useState([]),c=gt.useRef(null),f=()=>{n(null),s([])},p=be=>ka(be).then(s).catch(()=>s([])),h=(be,re,W)=>{n({target:be,x:re,y:W}),s([]),ka(be).then(X=>{X.length===0?(s([{path:"(pending)",tag:e}]),Is({target:be,tag:e.path}).then(()=>p(be)).catch(()=>s([]))):s(X)}).catch(()=>s([]))},I=be=>{if(!r)return;t(be);const re={path:"(pending)",tag:be};s(W=>[...W,re]),Is({target:r.target,tag:be.path}).then(()=>p(r.target)).catch(W=>{s(X=>X.filter(ge=>ge!==re)),window.alert("tag failed: "+W.message)})},L=be=>{if(!r)return;const re=i.find(W=>W.tag&&Hr(W.tag.path)===Hr(be.path));s(W=>W.filter(X=>X!==re)),P0(r.target,re?.tag?.path??be.path).then(()=>p(r.target)).catch(W=>{re&&s(X=>[...X,re]),window.alert("untag failed: "+W.message)})};gt.useEffect(()=>{if(!r)return;const be=re=>{c.current?.contains(re.target)||f()};return document.addEventListener("mousedown",be),()=>document.removeEventListener("mousedown",be)},[r]);const H=i.map(be=>be.tag).filter(be=>!!be),pe=r?qe.jsx(Td,{menuRef:c,x:r.x,y:r.y,applied:H,mode:"create",onPick:I,onUnpick:L,onClose:f}):null;return{openAt:h,tagMenu:pe}}const h7="x-yamlover-board",p7=new Set(["x-yamlover-tag","x-yamlover-workflow","x-yamlover-board"]);function _7(e){return e.format===h7?!0:bn(e.value).some(([t])=>t==="workflow"||t==="columns")}const m7=new Set(["cancelled","canceled","rejected","wontfix","won't-fix","dropped","declined","abandoned","duplicate","invalid"]),l$=e=>m7.has(e.toLowerCase()),o$=(e,t)=>{const r=bn(e).find(([n])=>n===t)?.[1];return typeof r=="string"?r:typeof r=="number"?String(r):null},g7=e=>{const t=e.lastIndexOf(":");return t<0?e:e.slice(t+1)};function v7(e){return qs(bn(e.value).find(([t])=>t==="workflow")?.[1])}function y7(e){const t=bn(e.value).find(([r])=>r==="columns")?.[1];return Array.isArray(t)?t.map(r=>Array.isArray(r)?r.map(qs).filter(n=>!!n):[]):null}function b7(e){const t=[];for(const[r,n]of bn(e.value)){if(r==="workflow"||r==="columns"||r==="yamlover"||r==="tags")continue;const i=un(n);!i||i.format&&p7.has(i.format)||t.push(i.path)}return t}function x7(e){const t=bn(e).find(([i])=>i==="yamlover-annotations")?.[1],r=Array.isArray(t)?t:[],n=[];for(const i of r){const s=qs(i)??qs(bn(i).find(([c])=>c==="tag")?.[1]);s&&n.push(s)}return n}function w7({node:e,onNavigate:t,openContextMenu:r}){const n=Ma(Fs),[i,s]=gt.useState([]),[c,f]=gt.useState([]),[p,h]=gt.useState(null),[I,L]=gt.useState(null),[H,pe]=gt.useState(null),[be,re]=gt.useState(null),W=gt.useRef(null);gt.useEffect(()=>{let Ae=!1;return(async()=>{try{const O=v7(e),ce=bn(e.value).some(([ne])=>ne==="columns")?y7(await Cn(e.path,3)):null;let w=[];if(ce)w=await Promise.all(ce.map(async ne=>({tags:await Promise.all(ne.map(of))})));else if(O){const ne=(await X4(O)).filter(ue=>!ue.initial),B=ne.filter(ue=>ue.next.length>0),Le=ne.filter(ue=>ue.next.length===0);Le.sort((ue,P)=>Number(l$(ue.label))-Number(l$(P.label))),w=[...B.map(ue=>({tags:[ue]})),...Le.length?[{tags:Le}]:[]]}const Se=b7(e),N=await Promise.all(Se.map(async ne=>{const B=await Cn(ne,2);return{path:ne,title:B.title??g7(ne),priority:o$(B.value,"priority"),assignee:o$(B.value,"assignee"),due:o$(B.value,"due"),tags:x7(B.value)}}));if(Ae)return;s(w),f(N),h(null)}catch(O){Ae||h(String(O?.message||O))}})(),()=>{Ae=!0}},[e.path,n]);const X=()=>i.map(Ae=>Ae.tags.map(O=>O.path)),ge=Ae=>{o4(e.path,Ae).catch(O=>h(String(O?.message||O)))},se=(Ae,O)=>{const Ee=X();Ee[Ae]||(Ee[Ae]=[]),Ee[Ae].includes(O)||Ee[Ae].push(O),ge(Ee)},me=(Ae,O)=>{const Ee=X().map((ce,w)=>w===Ae?ce.filter(Se=>Se!==O):ce);ge(Ee)},J=()=>ge([...X(),[]]),xe=Ae=>ge(X().filter((O,Ee)=>Ee!==Ae)),fe=async Ae=>{const O=I;if(L(null),pe(null),!(!O||Ae===O.from))try{await R1(O.task,O.from,Ae),f(Ee=>Ee.map(ce=>ce.path===O.task?{...ce,tags:[...ce.tags.filter(w=>w!==O.from),Ae]}:ce))}catch(Ee){h(String(Ee?.message||Ee))}};return gt.useEffect(()=>{if(!be)return;const Ae=O=>{W.current?.contains(O.target)||re(null)};return document.addEventListener("mousedown",Ae),()=>document.removeEventListener("mousedown",Ae)},[be]),p?qe.jsxs("div",{className:"board-error",children:["Board error: ",p]}):qe.jsxs("div",{className:"board",children:[i.map((Ae,O)=>{const Ee=Ae.tags[0]?cn({name:Ae.tags[0].label,color:Ae.tags[0].color}):"#6c7086",ce=Ae.tags.reduce((w,Se)=>w+c.filter(N=>N.tags.includes(Se.path)).length,0);return qe.jsxs("section",{className:"board-col",children:[qe.jsxs("header",{className:"board-col-head",style:{borderTopColor:Ee},children:[qe.jsxs("div",{className:"board-col-tags",children:[Ae.tags.map(w=>qe.jsx(bl,{tag:{path:w.path,name:w.label,color:w.color},children:qe.jsx("button",{type:"button",className:"tagtag on",style:Uo(cn({name:w.label,color:w.color})),onClick:()=>me(O,w.path),children:qe.jsx("span",{className:"tt-label",children:w.label})})},w.path)),qe.jsx("button",{className:"board-lane-add",title:"add a tag to this lane",onClick:w=>re({lane:O,x:w.clientX,y:w.clientY}),children:"+"})]}),qe.jsx("span",{className:"board-col-count",children:ce}),qe.jsx("button",{className:"board-lane-del",title:"remove this lane",onClick:()=>xe(O),children:"🗑"})]}),qe.jsx("div",{className:"board-col-body",children:Ae.tags.map((w,Se)=>{const N=c.filter(Le=>Le.tags.includes(w.path)),ne=cn({name:w.label,color:w.color}),B=l$(w.label);return qe.jsxs("div",{className:"board-group"+(Se>0?" board-group-split":"")+(H===w.path?" board-group-over":""),onDragOver:Le=>{I&&(Le.preventDefault(),H!==w.path&&pe(w.path))},onDrop:Le=>{Le.preventDefault(),fe(w.path)},children:[Ae.tags.length>1&&qe.jsxs("div",{className:"board-group-head",children:[qe.jsx("span",{className:"board-group-dot",style:{background:ne}}),qe.jsx("span",{className:"board-group-title",children:w.label}),qe.jsx("span",{className:"board-col-count",children:N.length})]}),qe.jsx("div",{className:"board-group-cards",children:N.map(Le=>qe.jsxs("article",{className:"board-card"+(B?" board-card-negative":""),draggable:!0,onDragStart:()=>L({task:Le.path,from:w.path}),onDragEnd:()=>{L(null),pe(null)},onClick:()=>t(Le.path),onContextMenu:r?ue=>{ue.preventDefault(),r(Le.path,ue.clientX,ue.clientY)}:void 0,title:Kl(Le.path),style:{borderLeftColor:ne},children:[qe.jsx("div",{className:"board-card-title",children:Le.title}),qe.jsxs("div",{className:"board-card-meta",children:[Le.priority&&qe.jsx("span",{className:"board-chip prio-"+Le.priority,children:Le.priority}),Le.assignee&&qe.jsxs("span",{className:"board-chip board-assignee",children:["@",Le.assignee]}),Le.due&&qe.jsx("span",{className:"board-chip board-due",children:Le.due.slice(0,10)})]})]},Le.path))})]},w.path)})})]},O)}),qe.jsx("button",{className:"board-add-lane",title:"add a lane",onClick:J,children:"+ lane"}),be&&qe.jsx(Td,{menuRef:W,x:be.x,y:be.y,applied:[],mode:"create",onPick:Ae=>{se(be.lane,Ae.path),re(null)},onClose:()=>re(null)})]})}function k7(e){const t=e.link;return t?t.format?t.format.replace(/^x-yamlover-/,"").replace(/^.*\//,""):t.concrete==="dir"||t.concrete==="yamlover"?"folder":t.type??t.kind??"":"scalar"}function S7(e){const t=e.link;if(!t)return"";if(typeof t.count=="number")return`${t.count} item${t.count===1?"":"s"}`;if(typeof t.size=="number"){const r=["B","KB","MB","GB"];let n=t.size,i=0;for(;n>=1024&&i<r.length-1;)n/=1024,i++;return`${i===0?n:n.toFixed(1)} ${r[i]}`}return""}function A7({members:e,onNavigate:t,openContextMenu:r}){const{seq:n,paths:i}=H4(Fs),[s,c]=gt.useState({}),f=e.map(h=>h.link?.path).filter(h=>!!h),p=f.join("|");return gt.useEffect(()=>{let h=!1;return Promise.all(f.map(I=>ka(I).then(L=>[I,L]).catch(()=>[I,[]]))).then(I=>{h||c(Object.fromEntries(I))}),()=>{h=!0}},[p]),gt.useEffect(()=>{if(n===0)return;const h=f.filter(L=>i.some(H=>H===L||H.startsWith(L+":")));if(h.length===0)return;let I=!1;return Promise.all(h.map(L=>ka(L).then(H=>[L,H]).catch(()=>[L,[]]))).then(L=>{I||c(H=>({...H,...Object.fromEntries(L)}))}),()=>{I=!0}},[n]),qe.jsx("div",{className:"detailsview",children:qe.jsxs("table",{className:"details",children:[qe.jsx("thead",{children:qe.jsxs("tr",{children:[qe.jsx("th",{className:"details-name",children:"Name"}),qe.jsx("th",{className:"details-kind",children:"Kind"}),qe.jsx("th",{className:"details-tags",children:"Tags"}),qe.jsx("th",{className:"details-size",children:"Size"})]})}),qe.jsxs("tbody",{children:[e.map((h,I)=>{const L=h.link;if(!L)return null;const H=xu(L.type??L.kind,L.format??null,L.concrete),pe=L.title??h.key,be=s[L.path]??[];return qe.jsxs("tr",{className:"details-row",onClick:()=>t(L.path),onContextMenu:r?re=>{re.preventDefault(),r(L.path,re.clientX,re.clientY)}:void 0,title:Kl(L.path),children:[qe.jsxs("td",{className:"details-name",children:[qe.jsx("span",{className:"details-icon "+H.cls,title:H.title,children:H.glyph}),qe.jsx("span",{className:"details-label",children:pe})]}),qe.jsx("td",{className:"details-kind",children:k7(h)}),qe.jsx("td",{className:"details-tags",children:be.map((re,W)=>{if(!re.tag)return null;const X=cn({name:re.tag.name,color:re.tag.color});return qe.jsx(bl,{tag:re.tag,children:K0(re.tag.path)?qe.jsx(E1,{color:X,title:""}):qe.jsx("span",{className:"tagtag",style:{background:X},children:re.tag.name})},W)})}),qe.jsx("td",{className:"details-size",children:S7(h)})]},`${L.path}#${I}`)}),e.length===0&&qe.jsx("tr",{children:qe.jsx("td",{className:"details-empty",colSpan:4,children:"empty"})})]})]})})}const E7="x-yamlover-annotation",C7="$yamloverMixed",Yp={large:256,thumbnails:512};function T7(e){return Object.entries(e??{}).map(([t,r])=>({key:t,link:un(r),up:!0})).filter(t=>t.link!=null)}function z7(e){const t=e.value;if(Array.isArray(t))return t.map((n,i)=>({key:`[${i}]`,link:un(n),raw:n}));if(!t||typeof t!="object")return[];const r=t[C7];return Object.keys(t).length===1&&r?.entries?r.entries.map((n,i)=>({key:n.key??`[${i}]`,link:un(n.value),raw:n.value})):Object.entries(t).map(([n,i])=>({key:n,link:un(i),raw:i}))}function R7(e){if(e==null)return"null";if(Array.isArray(e))return"array";const t=typeof e;return t==="object"?"object":t==="boolean"?"boolean":t==="number"?Number.isInteger(e)?"integer":"number":"string"}function Gp(e){if(e==null)return"~";const t=String(e).split(`
|
|
608
608
|
`,1)[0];return t.length>80?t.slice(0,79)+"…":t}function N7(e){return!!e&&(e.includes("/")||e.startsWith("x-yamlover-"))}function I7(e,t,r,n){if(r==="ArrowRight")return Math.min(t+1,n-1);if(r==="ArrowLeft")return Math.max(t-1,0);if(r==="Home")return 0;if(r==="End")return n-1;const i=e[t];if(!i)return t;const s=i.getBoundingClientRect(),c=s.left+s.width/2,f=s.top+s.height/2,p=r==="ArrowDown";let h=t,I=1/0;for(let L=0;L<n;L++){const H=e[L];if(!H||L===t)continue;const pe=H.getBoundingClientRect(),be=pe.left+pe.width/2,re=pe.top+pe.height/2;if(p?re<=f+1:re>=f-1)continue;const W=Math.abs(be-c)*2+Math.abs(re-f);W<I&&(I=W,h=L)}return h}function q7(e,t){const r=e.format??null;return!r||!r.startsWith("image/")?null:r==="image/svg+xml"?hs(e.path):t4(e.path,t,t)}function M7({link:e,glyph:t,box:r}){const[n,i]=gt.useState(!1),s=n?null:q7(e,r);return s?qe.jsx("img",{className:"dirview-icon dirview-thumb",src:s,alt:"",loading:"lazy",onError:()=>i(!0)}):qe.jsx("span",{className:"dirview-icon "+t.cls,title:t.title,children:t.glyph})}function D7({it:e,active:t,view:r,setRef:n,onFocus:i,onNavigate:s,onContext:c}){const f=e.link,p=t?0:-1,h=f&&!e.up&&c?{onContextMenu:pe=>{pe.preventDefault(),c(f.path,pe.clientX,pe.clientY)}}:{};if(!f){const pe=xu(R7(e.raw),null);return qe.jsxs("span",{className:"dirview-item",ref:n,tabIndex:p,onFocus:i,children:[qe.jsx("span",{className:"dirview-icon "+pe.cls,title:pe.title,children:pe.glyph}),qe.jsxs("span",{className:"dirview-label",children:[e.key,": ",Gp(e.raw)]})]})}const I=xu(f.type??f.kind,f.format??null,f.concrete),L=e.up?M4(e.key):f.title??e.key,H=f.format===Da?qe.jsx("span",{className:"tagtag",style:{background:cn({name:L,color:f.color})},children:L}):f.kind==="scalar"&&!N7(f.format)?qe.jsxs(qe.Fragment,{children:[L,": ",qe.jsx("span",{className:"val",children:Gp(f.value)})]}):L;return qe.jsxs("a",{className:"dirview-item"+(e.up?" dirview-up":""),href:f.path,title:Kl(f.path),ref:n,tabIndex:p,onFocus:i,onClick:pe=>{pe.preventDefault(),s(f.path)},...h,children:[Yp[r]&&!e.up?qe.jsx(M7,{link:f,glyph:I,box:Yp[r]}):qe.jsx("span",{className:"dirview-icon "+I.cls,title:I.title,children:I.glyph}),qe.jsx("span",{className:"dirview-label",children:H})]})}function L7({node:e,view:t,onNavigate:r}){const n=e.format===Da,[i,s]=gt.useState([]),c=Ma(Fs),{openAt:f,tagMenu:p}=d7();gt.useEffect(()=>{if(s([]),!n)return;let me=!1;return n4(e.path).then(J=>{me||s(J.map(un).filter(xe=>xe!=null))}).catch(()=>{}),()=>{me=!0}},[e.path,n,c]);const h=T7(e.relations);let I=z7(e);if(n){I=I.filter(J=>J.link?.format!==E7);const me=new Set(I.map(J=>J.link?.path).filter(Boolean));for(const J of i)me.has(J.path)||I.push({key:Vu(J.path,J.title),link:J})}const L=[...h,...I],H=gt.useRef(null),pe=gt.useRef([]);pe.current.length=L.length;const[be,re]=gt.useState(0);gt.useEffect(()=>{be>L.length-1&&re(Math.max(0,L.length-1))},[L.length,be]);const W=gt.useRef(!0);gt.useEffect(()=>{re(0),W.current=!0},[e.path]),gt.useEffect(()=>{!W.current||!L.length||(W.current=!1,!H.current?.closest(".chunk-body")&&pe.current[0]?.focus({preventScroll:!0}))},[L.length,e.path]);const X=me=>{if(me.ctrlKey||me.altKey||me.metaKey||!L.length)return;if(me.key==="Enter"){const xe=L[be]?.link;xe&&(me.preventDefault(),r(xe.path));return}if(!/^(Arrow(Up|Down|Left|Right)|Home|End)$/.test(me.key))return;me.preventDefault();const J=I7(pe.current,be,me.key,L.length);J!==be&&(re(J),pe.current[J]?.focus())};if(t==="board")return qe.jsxs(qe.Fragment,{children:[p,qe.jsx(w7,{node:e,onNavigate:r,openContextMenu:f})]});if(t==="details")return qe.jsxs(qe.Fragment,{children:[p,qe.jsx(A7,{members:I,onNavigate:r,openContextMenu:f})]});const ge=(n?T1(e.value):null)??e.description,se="dirview"+(t!=="small"?" dirview-lg":"")+(t==="thumbnails"?" dirview-thumbs":"");return qe.jsxs("div",{className:"explorerview",children:[p,ge&&qe.jsx("div",{className:"dirhead",children:qe.jsx("p",{className:"tagdesc",children:ge})}),qe.jsxs("div",{ref:H,className:se,onKeyDown:X,children:[L.map((me,J)=>qe.jsx(D7,{it:me,active:J===be,view:t,setRef:xe=>{pe.current[J]=xe},onFocus:()=>re(J),onNavigate:r,onContext:f},`${me.up?"^":""}${me.link?.path??me.key}#${J}`)),L.length===0&&qe.jsx("span",{className:"dirview-empty",children:"empty"})]})]})}const dv="http://www.w3.org/1999/xlink",F7=new RegExp("[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F]","g");function B7(e){const t=new Uint8Array(e),n=(new TextDecoder("latin1").decode(t.subarray(0,256)).match(/encoding=["']([^"']+)["']/i)?.[1]||"utf-8").toLowerCase();let i;try{i=new TextDecoder(n).decode(t)}catch{i=new TextDecoder("utf-8").decode(t)}return i.replace(F7,"")}function j7(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function hv(e,t){if(e.nodeType===3)return j7(e.textContent||"");if(e.nodeType!==1)return"";const r=e,n=()=>Array.from(r.childNodes).map(i=>hv(i,t)).join("");switch(r.localName){case"section":return`<section class="fb2-section">${n()}</section>`;case"title":return`<div class="fb2-title">${n()}</div>`;case"subtitle":return`<p class="fb2-subtitle">${n()}</p>`;case"p":return`<p>${n()}</p>`;case"empty-line":return"<br/>";case"emphasis":return`<em>${n()}</em>`;case"strong":return`<strong>${n()}</strong>`;case"strikethrough":return`<s>${n()}</s>`;case"sub":return`<sub>${n()}</sub>`;case"sup":return`<sup>${n()}</sup>`;case"code":return`<code>${n()}</code>`;case"epigraph":case"cite":return`<blockquote class="fb2-cite">${n()}</blockquote>`;case"text-author":return`<p class="fb2-text-author">${n()}</p>`;case"poem":return`<div class="fb2-poem">${n()}</div>`;case"stanza":return`<div class="fb2-stanza">${n()}</div>`;case"v":return`<div class="fb2-v">${n()}</div>`;case"a":return`<span class="fb2-a">${n()}</span>`;case"image":{const i=r.getAttributeNS(dv,"href")||r.getAttribute("l:href")||r.getAttribute("href")||"",s=t.get(i.replace(/^#/,""));return s?`<img class="fb2-img" src="${s}" alt=""/>`:""}case"title-info":case"description":case"binary":return"";default:return n()}}function Kp({node:e}){const[t,r]=gt.useState(null),[n,i]=gt.useState(null);return gt.useEffect(()=>{let s=!1;return r(null),i(null),fetch(hs(e.path)).then(c=>c.arrayBuffer()).then(c=>{if(s)return;const f=new DOMParser().parseFromString(B7(c),"application/xml"),p=f.getElementsByTagName("parsererror")[0];if(p)throw new Error(p.textContent?.trim().split(`
|
|
609
609
|
`)[0]||"invalid FB2 XML");const h=new Map;for(const se of Array.from(f.getElementsByTagNameNS("*","binary"))){const me=se.getAttribute("id");if(me){const J=se.getAttribute("content-type")||"image/jpeg";h.set(me,`data:${J};base64,${(se.textContent||"").replace(/\s+/g,"")}`)}}const I=f.getElementsByTagNameNS("*","title-info")[0],L=(se,me)=>se?.getElementsByTagNameNS("*",me)[0]?.textContent?.trim()||"",H=L(I,"book-title")||void 0,pe=I&&Array.from(I.getElementsByTagNameNS("*","author")).map(se=>[L(se,"first-name"),L(se,"middle-name"),L(se,"last-name")].filter(Boolean).join(" ")||L(se,"nickname")).filter(Boolean).join(", "),be=I?.getElementsByTagNameNS("*","coverpage")[0]?.getElementsByTagNameNS("*","image")[0],re=(be?.getAttributeNS(dv,"href")||be?.getAttribute("l:href")||"").replace(/^#/,""),W=Array.from(f.getElementsByTagNameNS("*","body")),X=W.find(se=>se.getAttribute("name")!=="notes")||W[0],ge=X?Array.from(X.childNodes).map(se=>hv(se,h)).join(""):"";r({title:H,author:pe||void 0,cover:re?h.get(re):void 0,html:ge})}).catch(c=>!s&&i(String(c.message||c))),()=>{s=!0}},[e.path]),n?qe.jsxs("div",{className:"error",children:["fb2: ",n]}):t?qe.jsxs("div",{className:"text fb2",children:[t.cover&&qe.jsx("img",{className:"fb2-cover",src:t.cover,alt:""}),t.title&&qe.jsx("h1",{className:"chapter-title",children:t.title}),t.author&&qe.jsx("p",{className:"chapter-subtitle",children:t.author}),qe.jsx("div",{className:"markup fb2-body",dangerouslySetInnerHTML:{__html:t.html}})]}):qe.jsx("div",{className:"loading",children:"loading FB2…"})}const Xp="http://www.w3.org/1999/xlink";function u$(e,t){t=decodeURIComponent(t.split("#")[0].split("?")[0]);const r=(e?e.split("/"):[]).concat(t.split("/")),n=[];for(const i of r)i===""||i==="."||(i===".."?n.pop():n.push(i));return n.join("/")}function Qp(e){const t=e.lastIndexOf("/");return t<0?"":e.slice(0,t)}function Zp({node:e}){const[t,r]=gt.useState(null),[n,i]=gt.useState(null);return gt.useEffect(()=>{let s=!1;const c=[];return r(null),i(null),fetch(hs(e.path)).then(f=>f.arrayBuffer()).then(f=>{if(s)return;const p=B6(new Uint8Array(f)),h=fe=>p[fe]?Bf(p[fe]):"",I=fe=>new DOMParser().parseFromString(h(fe),"application/xml"),L=I("META-INF/container.xml").getElementsByTagNameNS("*","rootfile")[0]?.getAttribute("full-path");if(!L||!p[L])throw new Error("no OPF package document");const H=I(L),pe=Qp(L),be=new Map,re=(fe,Ae="")=>{if(!p[fe])return"";const O=be.get(fe);if(O)return O;const Ee=URL.createObjectURL(new Blob([p[fe]],{type:Ae}));return be.set(fe,Ee),c.push(Ee),Ee},W=H.getElementsByTagNameNS("*","title")[0]?.textContent?.trim(),X=Array.from(H.getElementsByTagNameNS("*","creator")).map(fe=>fe.textContent?.trim()).filter(Boolean).join(", "),ge=new Map;for(const fe of Array.from(H.getElementsByTagNameNS("*","item"))){const Ae=fe.getAttribute("id"),O=fe.getAttribute("href");Ae&&O&&ge.set(Ae,{path:u$(pe,O),type:fe.getAttribute("media-type")||""})}const se=Array.from(H.getElementsByTagNameNS("*","meta")).find(fe=>fe.getAttribute("name")==="cover")?.getAttribute("content"),me=se?ge.get(se):void 0,J=me?re(me.path,me.type):void 0,xe=[];for(const fe of Array.from(H.getElementsByTagNameNS("*","itemref"))){const Ae=ge.get(fe.getAttribute("idref")||"");if(!Ae||!/html/.test(Ae.type)||!p[Ae.path])continue;const O=Qp(Ae.path),ce=new DOMParser().parseFromString(Bf(p[Ae.path]),"text/html").body;if(ce){ce.querySelectorAll("script, style, link").forEach(w=>w.remove());for(const w of Array.from(ce.querySelectorAll("img"))){const Se=w.getAttribute("src"),N=Se?re(u$(O,Se)):"";N?w.setAttribute("src",N):w.removeAttribute("src")}for(const w of Array.from(ce.querySelectorAll("image"))){const Se=w.getAttributeNS(Xp,"href")||w.getAttribute("href")||w.getAttribute("xlink:href"),N=Se?re(u$(O,Se)):"";N&&w.setAttributeNS(Xp,"xlink:href",N)}xe.push(`<section class="epub-doc">${ce.innerHTML}</section>`)}}if(s){c.forEach(URL.revokeObjectURL);return}r({title:W,author:X||void 0,cover:J,html:xe.join(`
|
|
610
|
-
`)})}).catch(f=>!s&&i(String(f.message||f))),()=>{s=!0,c.forEach(URL.revokeObjectURL)}},[e.path]),n?qe.jsxs("div",{className:"error",children:["epub: ",n]}):t?qe.jsxs("div",{className:"text epub",children:[t.cover&&qe.jsx("img",{className:"fb2-cover",src:t.cover,alt:""}),t.title&&qe.jsx("h1",{className:"chapter-title",children:t.title}),t.author&&qe.jsx("p",{className:"chapter-subtitle",children:t.author}),qe.jsx("div",{className:"markup epub-body",dangerouslySetInnerHTML:{__html:t.html}})]}):qe.jsx("div",{className:"loading",children:"unpacking EPUB…"})}function Jp({node:e}){return qe.jsx("iframe",{className:"filehtml",src:hs(e.path),sandbox:"allow-same-origin",title:e.title??Kl(e.path)})}const Op=gt.lazy(()=>qn(()=>import("./pdf-DM1MQkYa.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.PdfView}))),e_=gt.lazy(()=>qn(()=>import("./djvu-CZbDJKwH.js"),__vite__mapDeps([3,1])).then(e=>({default:e.DjvuView}))),t_=gt.lazy(()=>qn(()=>import("./psd-PXeZB_nC.js"),__vite__mapDeps([4,5,6,7,8])).then(e=>({default:e.PsdView}))),r_=gt.lazy(()=>qn(()=>import("./tiff-BQq-nYyI.js"),__vite__mapDeps([9,10,5,6,7,8])).then(e=>({default:e.TiffView}))),n_=gt.lazy(()=>qn(()=>import("./heic-CV3oZ6BF.js"),__vite__mapDeps([11,5,6,7,8])).then(e=>({default:e.HeicView}))),P7=gt.lazy(()=>qn(()=>import("./docx-BWH54ddd.js"),__vite__mapDeps([12,10])).then(e=>({default:e.DocxView}))),U7=gt.lazy(()=>qn(()=>import("./docx-BWH54ddd.js"),__vite__mapDeps([12,10])).then(e=>({default:e.DocxChunk}))),H7=gt.lazy(()=>qn(()=>import("./spreadsheet-B-3t2XCi.js"),[]).then(e=>({default:e.SpreadsheetView}))),V7=gt.lazy(()=>qn(()=>import("./spreadsheet-B-3t2XCi.js"),[]).then(e=>({default:e.SpreadsheetChunk}))),W7=gt.lazy(()=>qn(()=>import("./map-Y_zmEjLV.js"),__vite__mapDeps([13,7,8])).then(e=>({default:e.MapView}))),Y7=gt.lazy(()=>qn(()=>import("./map-Y_zmEjLV.js"),__vite__mapDeps([13,7,8])).then(e=>({default:e.MapChunk}))),G7=gt.lazy(()=>qn(()=>import("./imagemap-DRJrF_aD.js"),__vite__mapDeps([6,7,8])).then(e=>({default:e.ImageView}))),K7=gt.lazy(()=>qn(()=>import("./imagemap-DRJrF_aD.js"),__vite__mapDeps([6,7,8])).then(e=>({default:e.ImageChunk}))),Br=e=>qe.jsx(gt.Suspense,{fallback:qe.jsx("div",{className:"loading",children:"…"}),children:e}),Pi=e=>({path:e.path,type:e.type,format:e.format,concrete:null,title:null,description:null,value:e.value}),X7=e=>({valueType:e.valueType??null,format:e.format??null,hasKeyed:!!e.hasKeyed,hasOrdinal:!!e.hasOrdinal}),dr=(...e)=>t=>t.format!==null&&e.includes(t.format),ol=(e,t,r)=>({name:e,label:t,accepts:dr("x-yamlover-tag","x-yamlover-board"),specificity:2,render:(n,i)=>qe.jsx(L7,{node:n,view:r,onNavigate:i})}),pv=ol("tag-board","tag board","board"),Pf=[ol("large-icons","large icons","large"),ol("thumbnails","thumbnails","thumbnails"),ol("small-icons","small icons","small"),ol("details","details","details")],_a=Pf[0],_v=e=>e==="dir"||e==="yamlover",Q7=[{name:"settings",accepts:dr("x-yamlover-config"),specificity:2,render:()=>qe.jsx(J4,{})},{name:"chapter",accepts:dr("x-yamlover-chapter"),specificity:2,depth:2,tocView:i_,render:(e,t)=>qe.jsx(A1,{node:e,onNavigate:t})},{name:"task",accepts:dr("x-yamlover-task"),specificity:2,depth:2,tocView:i_,render:(e,t)=>qe.jsx(Z4,{node:e,onNavigate:t})},{name:"marklower",accepts:e=>e.format==="text/marklower"||e.format===null&&e.valueType==="string",specificity:1,render:(e,t)=>qe.jsx(J5,{node:e,onNavigate:t}),renderChunk:(e,t)=>qe.jsx(O5,{chunk:e,onNavigate:t})},{name:"markdown",accepts:dr("text/markdown"),specificity:2,render:e=>qe.jsx(Wb,{node:e}),renderChunk:e=>qe.jsx(Yb,{chunk:e}),config:e=>qe.jsx(Oh,{rerender:e})},{name:"asciidoc",accepts:dr("text/asciidoc"),specificity:2,render:e=>qe.jsx(r6,{node:e}),renderChunk:e=>qe.jsx(n6,{chunk:e}),config:e=>qe.jsx(Oh,{rerender:e})},{name:"csv",accepts:dr("text/csv","text/tab-separated-values"),specificity:2,render:e=>qe.jsx(a6,{node:e}),renderChunk:e=>qe.jsx(o6,{chunk:e}),config:e=>qe.jsx(l6,{rerender:e})},{name:"plaintext",accepts:dr("text/plain"),specificity:2,render:e=>qe.jsx(c6,{node:e}),renderChunk:e=>qe.jsx($6,{chunk:e}),config:e=>qe.jsx(f6,{rerender:e})},{name:"rtf",accepts:dr("application/rtf"),specificity:2,render:e=>qe.jsx(g6,{node:e}),renderChunk:e=>qe.jsx(v6,{chunk:e})},{name:"docx",accepts:dr("application/vnd.openxmlformats-officedocument.wordprocessingml.document"),specificity:2,render:e=>Br(qe.jsx(P7,{node:e})),renderChunk:e=>Br(qe.jsx(U7,{chunk:e}))},{name:"spreadsheet",accepts:dr("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-excel"),specificity:2,render:e=>Br(qe.jsx(H7,{node:e})),renderChunk:e=>Br(qe.jsx(V7,{chunk:e}))},{name:"doc",accepts:dr("application/msword"),specificity:2,render:e=>qe.jsx(y6,{node:e}),renderChunk:e=>qe.jsx(b6,{chunk:e})},{name:"map",accepts:dr("application/vnd.google-earth.kml+xml","application/vnd.google-earth.kmz"),specificity:2,render:e=>Br(qe.jsx(W7,{node:e})),renderChunk:e=>Br(qe.jsx(Y7,{chunk:e}))},{name:"latex",accepts:dr("text/x-latex"),specificity:2,render:e=>qe.jsx(W5,{node:e}),renderChunk:e=>qe.jsx(Y5,{chunk:e})},{name:"plantuml",accepts:dr("text/x-plantuml"),specificity:2,render:e=>qe.jsx(V6,{node:e}),renderChunk:e=>qe.jsx(W6,{chunk:e})},_a,{name:"image",accepts:dr("image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/x-icon","image/svg+xml"),specificity:2,render:e=>Br(qe.jsx(G7,{node:e})),renderChunk:e=>Br(qe.jsx(K7,{chunk:e}))},{name:"html",accepts:dr("text/html"),specificity:2,render:e=>qe.jsx(Jp,{node:e}),renderChunk:e=>qe.jsx(Jp,{node:Pi(e)})},{name:"fb2",accepts:dr("application/x-fictionbook+xml"),specificity:2,render:e=>qe.jsx(Kp,{node:e}),renderChunk:e=>qe.jsx(Kp,{node:Pi(e)})},{name:"epub",accepts:dr("application/epub+zip"),specificity:2,render:e=>qe.jsx(Zp,{node:e}),renderChunk:e=>qe.jsx(Zp,{node:Pi(e)})},{name:"pdf",accepts:dr("application/pdf"),specificity:2,render:e=>Br(qe.jsx(Op,{node:e})),renderChunk:e=>Br(qe.jsx(Op,{node:Pi(e)}))},{name:"djvu",accepts:dr("image/vnd.djvu"),specificity:2,render:e=>Br(qe.jsx(e_,{node:e})),renderChunk:e=>Br(qe.jsx(e_,{node:Pi(e)}))},{name:"psd",accepts:dr("image/vnd.adobe.photoshop"),specificity:2,render:e=>Br(qe.jsx(t_,{node:e})),renderChunk:e=>Br(qe.jsx(t_,{node:Pi(e)}))},{name:"tiff",accepts:dr("image/tiff"),specificity:2,render:e=>Br(qe.jsx(r_,{node:e})),renderChunk:e=>Br(qe.jsx(r_,{node:Pi(e)}))},{name:"heic",accepts:dr("image/heic"),specificity:2,render:e=>Br(qe.jsx(n_,{node:e})),renderChunk:e=>Br(qe.jsx(n_,{node:Pi(e)}))}];function Z7(e){const t=e.lastIndexOf(":");return t<0?e:e.slice(t+1)}function i_(e){const t=e.children.find(r=>Z7(r.path)==="children");return t?{children:t.children,expandable:t.hasChildren,loaded:t.children.length>0||!t.hasChildren,loadDepth:3}:{children:[],expandable:e.hasChildren,loaded:e.children.length>0,loadDepth:3}}function uc(e){const t=X7(e);let r=null;for(const n of Q7)n.accepts(t)&&(r===null||n.specificity>r.specificity)&&(r=n);return r}function J7(e){return _7(e)?[pv,...Pf]:Pf}function c$(e){const t=[],r=uc(e);return r&&r!==_a&&t.push(r),(r===_a||_v(e.concrete))&&t.push(...J7(e)),t}function $$(e,t){const r=uc(e);return r&&r!==_a?r.name:r===_a||_v(t)?e.format==="x-yamlover-board"?pv.name:_a.name:null}function mv(e){const t=uc(e);if(t?.tocView)return t.tocView(e);const r=e.children.length>0;return{children:e.children,expandable:r?e.children.length>0:e.hasChildren,loaded:r}}const O7=gt.memo(function e({node:t,current:r,onSelect:n,onLoadChildren:i,depth:s=0}){const{children:c,expandable:f,loaded:p,loadDepth:h}=mv(t),[I,L]=gt.useState(c.length>0),[H,pe]=gt.useState(!1),be=t.path===r,re=Bo(t.path,r),W=gt.useRef(null);gt.useEffect(()=>{re&&L(!0)},[re]),gt.useEffect(()=>{be&&W.current?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[be]);const X=xu(t.type,t.format,t.concrete),ge=I&&X.glyph==="📁"?"📂":X.glyph,se=async()=>{if(!I&&f&&!p){pe(!0);try{await i(t.path,h)}finally{pe(!1)}}L(me=>!me)};return qe.jsxs("div",{className:"tree-branch",children:[qe.jsxs("div",{ref:W,className:"tree-row"+(be?" selected":""),style:{paddingLeft:s*14+4},children:[f?qe.jsx("button",{className:"toggle"+(I?" open":"")+(H?" loading":""),onClick:se,"aria-label":I?"collapse":"expand",children:qe.jsx("span",{className:"chevron",children:"›"})}):qe.jsx("span",{className:"toggle leaf"}),qe.jsx("span",{className:"icon "+X.cls,title:X.title,children:ge}),qe.jsx("span",{className:"tree-label",onClick:()=>n(t.path),title:`${Kl(t.path)} (${t.type})`,children:t.label})]}),I&&c.map(me=>qe.jsx(e,{node:me,current:r,onSelect:n,onLoadChildren:i,depth:s+1},me.path))]})});function e8({tasks:e}){return e.length?qe.jsx("div",{className:"task-strip",children:e.map(t=>{const{done:r,total:n,message:i}=t.progress,s=t.state==="done"?100:n?Math.min(100,Math.floor(r/n*100)):null,c=n?`${r}/${n}`:t.state==="running"&&r>0?String(r):"";return qe.jsxs("span",{className:`task-chip ${t.state}`,title:t.error??i??t.label,children:[qe.jsxs("span",{className:"task-label",children:[t.label,c&&qe.jsxs("span",{className:"task-counts",children:[" ",c]}),t.state==="error"&&" — failed"]}),qe.jsx("span",{className:"task-bar",children:s!==null?qe.jsx("span",{className:"task-bar-fill",style:{width:`${s}%`}}):qe.jsx("span",{className:"task-bar-fill indeterminate"})})]},t.id)})}):null}function t8(e){const t=/^(?:https?:\/\/)?(?:www\.)?arxiv\.org\/(?:abs|pdf|html)\/(.+?)(?:\.pdf)?(?:[?#][^\s]*)?$/i.exec(e.trim());if(!t)return null;const r=t[1];return/^(?:\d{4}\.\d{4,5}|[a-z-]+(?:\.[A-Z]{2})?\/\d{7})(?:v\d+)?$/.test(r)?{url:`https://arxiv.org/pdf/${r}`,name:`arxiv-${r.replace(/\//g,"-")}.pdf`}:null}function r8(e){const t=/^(?:https?:\/\/)?(?:www\.|mobile\.)?(?:x\.com|twitter\.com)\/(\w{1,15})\/status(?:es)?\/(\d+)(?:[/?#][^\s]*)?$/i.exec(e.trim());return t?`https://twitter.com/${t[1]}/status/${t[2]}`:null}async function n8(e){const t=await fetch(`https://publish.x.com/oembed?url=${encodeURIComponent(e)}&omit_script=true&dnt=true`);if(!t.ok)throw new Error(`oEmbed HTTP ${t.status}`);const r=await t.json(),i=new DOMParser().parseFromString((r.html??"").replace(/<br\s*\/?>/gi,`
|
|
610
|
+
`)})}).catch(f=>!s&&i(String(f.message||f))),()=>{s=!0,c.forEach(URL.revokeObjectURL)}},[e.path]),n?qe.jsxs("div",{className:"error",children:["epub: ",n]}):t?qe.jsxs("div",{className:"text epub",children:[t.cover&&qe.jsx("img",{className:"fb2-cover",src:t.cover,alt:""}),t.title&&qe.jsx("h1",{className:"chapter-title",children:t.title}),t.author&&qe.jsx("p",{className:"chapter-subtitle",children:t.author}),qe.jsx("div",{className:"markup epub-body",dangerouslySetInnerHTML:{__html:t.html}})]}):qe.jsx("div",{className:"loading",children:"unpacking EPUB…"})}function Jp({node:e}){return qe.jsx("iframe",{className:"filehtml",src:hs(e.path),sandbox:"allow-same-origin",title:e.title??Kl(e.path)})}const Op=gt.lazy(()=>qn(()=>import("./pdf-DEAMWCiJ.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.PdfView}))),e_=gt.lazy(()=>qn(()=>import("./djvu-BXFlPnkK.js"),__vite__mapDeps([3,1])).then(e=>({default:e.DjvuView}))),t_=gt.lazy(()=>qn(()=>import("./psd-BUfV7J7j.js"),__vite__mapDeps([4,5,6,7,8])).then(e=>({default:e.PsdView}))),r_=gt.lazy(()=>qn(()=>import("./tiff-DvGVB25t.js"),__vite__mapDeps([9,10,5,6,7,8])).then(e=>({default:e.TiffView}))),n_=gt.lazy(()=>qn(()=>import("./heic-Ce7tu8UK.js"),__vite__mapDeps([11,5,6,7,8])).then(e=>({default:e.HeicView}))),P7=gt.lazy(()=>qn(()=>import("./docx-B_9I-KwO.js"),__vite__mapDeps([12,10])).then(e=>({default:e.DocxView}))),U7=gt.lazy(()=>qn(()=>import("./docx-B_9I-KwO.js"),__vite__mapDeps([12,10])).then(e=>({default:e.DocxChunk}))),H7=gt.lazy(()=>qn(()=>import("./spreadsheet-DM8lRCkI.js"),[]).then(e=>({default:e.SpreadsheetView}))),V7=gt.lazy(()=>qn(()=>import("./spreadsheet-DM8lRCkI.js"),[]).then(e=>({default:e.SpreadsheetChunk}))),W7=gt.lazy(()=>qn(()=>import("./map-CKyCg437.js"),__vite__mapDeps([13,7,8])).then(e=>({default:e.MapView}))),Y7=gt.lazy(()=>qn(()=>import("./map-CKyCg437.js"),__vite__mapDeps([13,7,8])).then(e=>({default:e.MapChunk}))),G7=gt.lazy(()=>qn(()=>import("./imagemap-DlsYOgu-.js"),__vite__mapDeps([6,7,8])).then(e=>({default:e.ImageView}))),K7=gt.lazy(()=>qn(()=>import("./imagemap-DlsYOgu-.js"),__vite__mapDeps([6,7,8])).then(e=>({default:e.ImageChunk}))),Br=e=>qe.jsx(gt.Suspense,{fallback:qe.jsx("div",{className:"loading",children:"…"}),children:e}),Pi=e=>({path:e.path,type:e.type,format:e.format,concrete:null,title:null,description:null,value:e.value}),X7=e=>({valueType:e.valueType??null,format:e.format??null,hasKeyed:!!e.hasKeyed,hasOrdinal:!!e.hasOrdinal}),dr=(...e)=>t=>t.format!==null&&e.includes(t.format),ol=(e,t,r)=>({name:e,label:t,accepts:dr("x-yamlover-tag","x-yamlover-board"),specificity:2,render:(n,i)=>qe.jsx(L7,{node:n,view:r,onNavigate:i})}),pv=ol("tag-board","tag board","board"),Pf=[ol("large-icons","large icons","large"),ol("thumbnails","thumbnails","thumbnails"),ol("small-icons","small icons","small"),ol("details","details","details")],_a=Pf[0],_v=e=>e==="dir"||e==="yamlover",Q7=[{name:"settings",accepts:dr("x-yamlover-config"),specificity:2,render:()=>qe.jsx(J4,{})},{name:"chapter",accepts:dr("x-yamlover-chapter"),specificity:2,depth:2,tocView:i_,render:(e,t)=>qe.jsx(A1,{node:e,onNavigate:t})},{name:"task",accepts:dr("x-yamlover-task"),specificity:2,depth:2,tocView:i_,render:(e,t)=>qe.jsx(Z4,{node:e,onNavigate:t})},{name:"marklower",accepts:e=>e.format==="text/marklower"||e.format===null&&e.valueType==="string",specificity:1,render:(e,t)=>qe.jsx(J5,{node:e,onNavigate:t}),renderChunk:(e,t)=>qe.jsx(O5,{chunk:e,onNavigate:t})},{name:"markdown",accepts:dr("text/markdown"),specificity:2,render:e=>qe.jsx(Wb,{node:e}),renderChunk:e=>qe.jsx(Yb,{chunk:e}),config:e=>qe.jsx(Oh,{rerender:e})},{name:"asciidoc",accepts:dr("text/asciidoc"),specificity:2,render:e=>qe.jsx(r6,{node:e}),renderChunk:e=>qe.jsx(n6,{chunk:e}),config:e=>qe.jsx(Oh,{rerender:e})},{name:"csv",accepts:dr("text/csv","text/tab-separated-values"),specificity:2,render:e=>qe.jsx(a6,{node:e}),renderChunk:e=>qe.jsx(o6,{chunk:e}),config:e=>qe.jsx(l6,{rerender:e})},{name:"plaintext",accepts:dr("text/plain"),specificity:2,render:e=>qe.jsx(c6,{node:e}),renderChunk:e=>qe.jsx($6,{chunk:e}),config:e=>qe.jsx(f6,{rerender:e})},{name:"rtf",accepts:dr("application/rtf"),specificity:2,render:e=>qe.jsx(g6,{node:e}),renderChunk:e=>qe.jsx(v6,{chunk:e})},{name:"docx",accepts:dr("application/vnd.openxmlformats-officedocument.wordprocessingml.document"),specificity:2,render:e=>Br(qe.jsx(P7,{node:e})),renderChunk:e=>Br(qe.jsx(U7,{chunk:e}))},{name:"spreadsheet",accepts:dr("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-excel"),specificity:2,render:e=>Br(qe.jsx(H7,{node:e})),renderChunk:e=>Br(qe.jsx(V7,{chunk:e}))},{name:"doc",accepts:dr("application/msword"),specificity:2,render:e=>qe.jsx(y6,{node:e}),renderChunk:e=>qe.jsx(b6,{chunk:e})},{name:"map",accepts:dr("application/vnd.google-earth.kml+xml","application/vnd.google-earth.kmz"),specificity:2,render:e=>Br(qe.jsx(W7,{node:e})),renderChunk:e=>Br(qe.jsx(Y7,{chunk:e}))},{name:"latex",accepts:dr("text/x-latex"),specificity:2,render:e=>qe.jsx(W5,{node:e}),renderChunk:e=>qe.jsx(Y5,{chunk:e})},{name:"plantuml",accepts:dr("text/x-plantuml"),specificity:2,render:e=>qe.jsx(V6,{node:e}),renderChunk:e=>qe.jsx(W6,{chunk:e})},_a,{name:"image",accepts:dr("image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/x-icon","image/svg+xml"),specificity:2,render:e=>Br(qe.jsx(G7,{node:e})),renderChunk:e=>Br(qe.jsx(K7,{chunk:e}))},{name:"html",accepts:dr("text/html"),specificity:2,render:e=>qe.jsx(Jp,{node:e}),renderChunk:e=>qe.jsx(Jp,{node:Pi(e)})},{name:"fb2",accepts:dr("application/x-fictionbook+xml"),specificity:2,render:e=>qe.jsx(Kp,{node:e}),renderChunk:e=>qe.jsx(Kp,{node:Pi(e)})},{name:"epub",accepts:dr("application/epub+zip"),specificity:2,render:e=>qe.jsx(Zp,{node:e}),renderChunk:e=>qe.jsx(Zp,{node:Pi(e)})},{name:"pdf",accepts:dr("application/pdf"),specificity:2,render:e=>Br(qe.jsx(Op,{node:e})),renderChunk:e=>Br(qe.jsx(Op,{node:Pi(e)}))},{name:"djvu",accepts:dr("image/vnd.djvu"),specificity:2,render:e=>Br(qe.jsx(e_,{node:e})),renderChunk:e=>Br(qe.jsx(e_,{node:Pi(e)}))},{name:"psd",accepts:dr("image/vnd.adobe.photoshop"),specificity:2,render:e=>Br(qe.jsx(t_,{node:e})),renderChunk:e=>Br(qe.jsx(t_,{node:Pi(e)}))},{name:"tiff",accepts:dr("image/tiff"),specificity:2,render:e=>Br(qe.jsx(r_,{node:e})),renderChunk:e=>Br(qe.jsx(r_,{node:Pi(e)}))},{name:"heic",accepts:dr("image/heic"),specificity:2,render:e=>Br(qe.jsx(n_,{node:e})),renderChunk:e=>Br(qe.jsx(n_,{node:Pi(e)}))}];function Z7(e){const t=e.lastIndexOf(":");return t<0?e:e.slice(t+1)}function i_(e){const t=e.children.find(r=>Z7(r.path)==="children");return t?{children:t.children,expandable:t.hasChildren,loaded:t.children.length>0||!t.hasChildren,loadDepth:3}:{children:[],expandable:e.hasChildren,loaded:e.children.length>0,loadDepth:3}}function uc(e){const t=X7(e);let r=null;for(const n of Q7)n.accepts(t)&&(r===null||n.specificity>r.specificity)&&(r=n);return r}function J7(e){return _7(e)?[pv,...Pf]:Pf}function c$(e){const t=[],r=uc(e);return r&&r!==_a&&t.push(r),(r===_a||_v(e.concrete))&&t.push(...J7(e)),t}function $$(e,t){const r=uc(e);return r&&r!==_a?r.name:r===_a||_v(t)?e.format==="x-yamlover-board"?pv.name:_a.name:null}function mv(e){const t=uc(e);if(t?.tocView)return t.tocView(e);const r=e.children.length>0;return{children:e.children,expandable:r?e.children.length>0:e.hasChildren,loaded:r}}const O7=gt.memo(function e({node:t,current:r,onSelect:n,onLoadChildren:i,depth:s=0}){const{children:c,expandable:f,loaded:p,loadDepth:h}=mv(t),[I,L]=gt.useState(c.length>0),[H,pe]=gt.useState(!1),be=t.path===r,re=Bo(t.path,r),W=gt.useRef(null);gt.useEffect(()=>{re&&L(!0)},[re]),gt.useEffect(()=>{be&&W.current?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[be]);const X=xu(t.type,t.format,t.concrete),ge=I&&X.glyph==="📁"?"📂":X.glyph,se=async()=>{if(!I&&f&&!p){pe(!0);try{await i(t.path,h)}finally{pe(!1)}}L(me=>!me)};return qe.jsxs("div",{className:"tree-branch",children:[qe.jsxs("div",{ref:W,className:"tree-row"+(be?" selected":""),style:{paddingLeft:s*14+4},children:[f?qe.jsx("button",{className:"toggle"+(I?" open":"")+(H?" loading":""),onClick:se,"aria-label":I?"collapse":"expand",children:qe.jsx("span",{className:"chevron",children:"›"})}):qe.jsx("span",{className:"toggle leaf"}),qe.jsx("span",{className:"icon "+X.cls,title:X.title,children:ge}),qe.jsx("span",{className:"tree-label",onClick:()=>n(t.path),title:`${Kl(t.path)} (${t.type})`,children:t.label})]}),I&&c.map(me=>qe.jsx(e,{node:me,current:r,onSelect:n,onLoadChildren:i,depth:s+1},me.path))]})});function e8({tasks:e}){return e.length?qe.jsx("div",{className:"task-strip",children:e.map(t=>{const{done:r,total:n,message:i}=t.progress,s=t.state==="done"?100:n?Math.min(100,Math.floor(r/n*100)):null,c=n?`${r}/${n}`:t.state==="running"&&r>0?String(r):"";return qe.jsxs("span",{className:`task-chip ${t.state}`,title:t.error??i??t.label,children:[qe.jsxs("span",{className:"task-label",children:[t.label,c&&qe.jsxs("span",{className:"task-counts",children:[" ",c]}),t.state==="error"&&" — failed"]}),qe.jsx("span",{className:"task-bar",children:s!==null?qe.jsx("span",{className:"task-bar-fill",style:{width:`${s}%`}}):qe.jsx("span",{className:"task-bar-fill indeterminate"})})]},t.id)})}):null}function t8(e){const t=/^(?:https?:\/\/)?(?:www\.)?arxiv\.org\/(?:abs|pdf|html)\/(.+?)(?:\.pdf)?(?:[?#][^\s]*)?$/i.exec(e.trim());if(!t)return null;const r=t[1];return/^(?:\d{4}\.\d{4,5}|[a-z-]+(?:\.[A-Z]{2})?\/\d{7})(?:v\d+)?$/.test(r)?{url:`https://arxiv.org/pdf/${r}`,name:`arxiv-${r.replace(/\//g,"-")}.pdf`}:null}function r8(e){const t=/^(?:https?:\/\/)?(?:www\.|mobile\.)?(?:x\.com|twitter\.com)\/(\w{1,15})\/status(?:es)?\/(\d+)(?:[/?#][^\s]*)?$/i.exec(e.trim());return t?`https://twitter.com/${t[1]}/status/${t[2]}`:null}async function n8(e){const t=await fetch(`https://publish.x.com/oembed?url=${encodeURIComponent(e)}&omit_script=true&dnt=true`);if(!t.ok)throw new Error(`oEmbed HTTP ${t.status}`);const r=await t.json(),i=new DOMParser().parseFromString((r.html??"").replace(/<br\s*\/?>/gi,`
|
|
611
611
|
`),"text/html").querySelector("blockquote"),s=i?.querySelector("p")?.textContent?.trim();if(!s)throw new Error("no tweet text in the oEmbed payload");const c=(r.author_url??"").split("/").filter(Boolean).pop(),f=i?Array.from(i.querySelectorAll(":scope > a")):[],p=f[f.length-1]?.textContent?.trim(),h=[r.author_name,c&&`@${c}`].filter(Boolean).join(" "),I=[h&&`— ${h}`,p].filter(Boolean).join(", ");return[s,"",[I,r.url??e].filter(Boolean).join(`
|
|
612
612
|
`)].join(`
|
|
613
613
|
`)}const gv=new Set(["script","style","noscript","template","iframe","svg","head","title"]),i8=new Set(["p","div","section","article","main","aside","header","footer","figure","figcaption","ul","ol","table","thead","tbody","tr","dl","dt","dd","nav","form","body","html"]);function s8(e){const t=new DOMParser().parseFromString(e,"text/html"),r=o8(a8(t.body));if(!r.some(s=>s.kind!=="text"))return null;const n={chunks:[],children:[]},i=[{node:n,level:0}];for(const s of r)if(s.kind==="heading"){for(;i.length>1&&i[i.length-1].level>=s.level;)i.pop();const c={title:s.text||"Untitled",chunks:[],children:[]};i[i.length-1].node.children.push(c),i.push({node:c,level:s.level})}else i[i.length-1].node.chunks.push(s.kind==="image"?{image:{url:s.url,alt:s.alt}}:{text:s.text});return n}function a8(e){const t=[];let r="";const n=()=>{const s=r.replace(/[ \t]+/g," ").replace(/ ?\n ?/g,`
|
|
@@ -617,4 +617,4 @@ Your browser does not support the video tag.
|
|
|
617
617
|
`)});return}if(c==="br"){r+=`
|
|
618
618
|
`;return}if(c==="td"||c==="th"){s.childNodes.forEach(i),r+=" ";return}if(i8.has(c)){n(),s.childNodes.forEach(i),n();return}if(!s.querySelector("img")){r+=vv(s);return}s.childNodes.forEach(i)}};return i(e),n(),t}function vv(e){if(e.nodeType===Node.TEXT_NODE)return e.textContent??"";if(!(e instanceof Element))return"";const t=e.tagName.toLowerCase();if(gv.has(t))return"";if(t==="br")return`
|
|
619
619
|
`;const r=Array.from(e.childNodes).map(vv).join("");if(t==="a"){const n=e.getAttribute("href")??"",i=r.trim();return/^https?:\/\//.test(n)&&i?`[${i}](${n})`:r}return t==="strong"||t==="b"?r.trim()?`**${r.trim()}**`:"":t==="em"||t==="i"?r.trim()?`*${r.trim()}*`:"":t==="code"?r.trim()?"`"+r.trim()+"`":"":r}function l8(e){const t=e.getAttribute("src")||e.getAttribute("data-src")||"";return t.startsWith("//")?"https:"+t:/^https?:\/\//.test(t)||t.startsWith("data:image/")?t:null}function o8(e){const t=[];for(const r of e){const n=t[t.length-1];r.kind==="text"&&r.text.startsWith("- ")&&n?.kind==="text"&&n.text.startsWith("- ")?n.text+=`
|
|
620
|
-
`+r.text:t.push(r)}return t}const u8={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","image/bmp":"bmp","image/tiff":"tiff","image/avif":"avif"};async function yv(e){return{title:e.title,chunks:await Promise.all(e.chunks.map(async t=>{if("text"in t)return{text:t.text};try{const r=await fetch(t.image.url);if(!r.ok)throw new Error(`HTTP ${r.status}`);const n=await r.blob();return{file:{name:c8(t.image.url,n.type),contentBase64:await $8(n)}}}catch{return{text:``}}})),children:await Promise.all(e.children.map(yv))}}function c8(e,t){let r="";try{r=decodeURIComponent(new URL(e).pathname.split("/").pop()??"")}catch{}return(!r||e.startsWith("data:"))&&(r="image"),/\.[A-Za-z0-9]{2,5}$/.test(r)||(r+="."+(u8[t]||"bin")),r}function $8(e){return new Promise((t,r)=>{const n=new FileReader;n.onload=()=>t(String(n.result).split(",")[1]||""),n.onerror=()=>r(new Error("could not read image")),n.readAsDataURL(e)})}function bv(e){return e.chunks.filter(t=>"image"in t).length+e.children.reduce((t,r)=>t+bv(r),0)}const xv=2,Uf=1,Hf=10,wv=()=>new URLSearchParams(window.location.search);function Vf(){const e=Number(wv().get("depth"));return Number.isInteger(e)&&e>=Uf&&e<=Hf?e:xv}function f8(e){const t=wv();e===xv?t.delete("depth"):t.set("depth",String(e));const r=t.toString();window.history.replaceState({},"",window.location.pathname+(r?"?"+r:""))}function d8({onChange:e}){const t=Vf(),[r,n]=gt.useState(String(t));gt.useEffect(()=>n(String(t)),[t]);const i=Number(r),s=r.trim()!==""&&Number.isInteger(i)&&i>=Uf&&i<=Hf;return qe.jsx("input",{className:"depth-control"+(s?"":" invalid"),type:"text",inputMode:"numeric",title:"depth",value:r,onChange:c=>{const f=c.target.value;n(f);const p=Number(f);f.trim()!==""&&Number.isInteger(p)&&p>=Uf&&p<=Hf&&(f8(p),e())}})}const h8=new Set(["chapter","markdown","asciidoc","marklower"]),p8=["yamlover","json5p","yamlover/schema"],ul="yamlover",_8=new Set(["json","json5","json5p"]),kv=e=>_8.has(e??""),f$=e=>e.endsWith("schema"),s_=e=>e==="json5p"?"json":"yaml";function d$(e){return kv(e.concrete)?["yamlover","json5p","yamlover/schema"]:["yamlover","yamlover/schema"]}function h$(e,t,r){return r.includes(e)||t.some(n=>n.name===e)?e:t[0]?t[0].name:ul}function m8(e){const t=Gr(e),r=t[t.length-1];return r===void 0?"":typeof r=="number"?`[${r}]`:r}const g8={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","image/bmp":"bmp","image/tiff":"tiff","application/pdf":"pdf"};function v8(e){const t=e.clipboardData;if(!t)return[];if(t.files&&t.files.length)return Array.from(t.files);const r=[];for(const n of Array.from(t.items||[]))if(n.kind==="file"){const i=n.getAsFile();i&&r.push(i)}return r}function y8(e){return e.name?e.name:`pasted.${g8[e.type]||"bin"}`}function b8(e){return new Promise((t,r)=>{const n=new FileReader;n.onload=()=>t(String(n.result).split(",")[1]||""),n.onerror=()=>r(new Error("could not read file")),n.readAsDataURL(e)})}const x8=gt.memo(function({path:t,format:r,refreshSignal:n=0,onFormat:i,onNavigate:s,onContentChanged:c,onOpenUploaded:f}){const[p,h]=gt.useState(null),[I,L]=gt.useState(null),[H,pe]=gt.useState(null),[be,re]=gt.useState(null),[W,X]=gt.useState(0),[ge,se]=gt.useState(null),[me,J]=gt.useState(!1),xe=gt.useRef(t),[,fe]=gt.useReducer(k=>k+1,0),Ae=fv(t);gt.useEffect(()=>{re(null),xe.current!==t&&(h(null),xe.current=t);let k=!1;return Cn(t).then(A=>{if(k)return;const Q=c$(A),De=h$(r,Q,d$(A)),rt=Q.find(_t=>_t.name===De),ft=rt?rt.depth??1:Vf();ft>1?Cn(t,ft).then(_t=>!k&&h(_t)).catch(_t=>!k&&re(_t.message)):h(A)}).catch(A=>!k&&re(A.message)),()=>{k=!0}},[t,W,n,r]),gt.useEffect(()=>{if(!p)return;const k=A=>{const Q=A.target;if(Q&&(Q.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(Q.tagName)))return;const De=v8(A);if(De.length>0){A.preventDefault(),O(De);return}const rt=A.clipboardData?.getData("text/html")??"",ft=rt?s8(rt):null;if(ft){A.preventDefault(),ce(ft);return}const _t=A.clipboardData?.getData("text/plain")??"";if(!_t.trim())return;A.preventDefault();const At=t8(_t);if(At){Ee(At);return}const bt=r8(_t);if(bt){w(bt);return}Se(_t)};return document.addEventListener("paste",k),()=>document.removeEventListener("paste",k)},[p,t]),gt.useEffect(()=>{if(!p)return;const k=_t=>Array.from(_t.dataTransfer?.types||[]).includes("Files");let A=0;const Q=_t=>{k(_t)&&(_t.preventDefault(),A++,J(!0))},De=_t=>{k(_t)&&(_t.preventDefault(),_t.dataTransfer&&(_t.dataTransfer.dropEffect="copy"))},rt=()=>{A=Math.max(0,A-1),A===0&&J(!1)},ft=_t=>{if(!k(_t))return;_t.preventDefault(),A=0,J(!1);const At=Array.from(_t.dataTransfer?.files||[]);At.length&&O(At)};return document.addEventListener("dragenter",Q),document.addEventListener("dragover",De),document.addEventListener("dragleave",rt),document.addEventListener("drop",ft),()=>{document.removeEventListener("dragenter",Q),document.removeEventListener("dragover",De),document.removeEventListener("dragleave",rt),document.removeEventListener("drop",ft)}},[p,t]);const O=async k=>{try{se(`uploading ${k.length} file${k.length>1?"s":""}…`);let A=null;for(const Q of k){const De=await b8(Q);A=await c4(t,y8(Q),De)}se(k.length>1?`uploaded ${k.length} files`:"uploaded"),window.setTimeout(()=>se(null),1500),A?.open?f?.(A):(X(Q=>Q+1),c?.(t))}catch(A){se("paste failed: "+A.message),window.setTimeout(()=>se(null),4e3)}},Ee=async({url:k,name:A})=>{try{se(`downloading ${A}…`);const Q=await fetch(k);if(!Q.ok)throw new Error(`HTTP ${Q.status} fetching ${k}`);const De=await Q.blob();await O([new File([De],A,{type:"application/pdf"})])}catch(Q){se("download failed: "+Q.message),window.setTimeout(()=>se(null),4e3)}},ce=async k=>{try{const A=bv(k);A&&se(`downloading ${A} image${A>1?"s":""}…`);const Q=await yv(k);se("pasting…");const De=await f4(t,Q);se(De.chapter?"chunks added":"chapter created"),window.setTimeout(()=>se(null),1500),De.open?f?.(De):(X(rt=>rt+1),c?.(t))}catch(A){se("paste failed: "+A.message),window.setTimeout(()=>se(null),4e3)}},w=async k=>{try{se("fetching tweet…"),await Se(await n8(k))}catch(A){se("tweet fetch failed: "+A.message),window.setTimeout(()=>se(null),4e3)}},Se=async k=>{try{se("pasting text…");const A=await $4(t,k);se(A.chapter?"chunk added":"chapter created"),window.setTimeout(()=>se(null),1500),A.open?f?.(A):(X(Q=>Q+1),c?.(t))}catch(A){se("paste failed: "+A.message),window.setTimeout(()=>se(null),4e3)}};if(gt.useEffect(()=>{p&&(document.title=p.title?.trim()||m8(t)||"yamlover")},[p,t]),gt.useEffect(()=>{if(L(null),pe(null),!p)return;const k=c$(p),A=h$(r,k,d$(p));k.some(Q=>Q.name===A)||(f$(A)?r4(t,Vf()).then(L).catch(Q=>re(Q.message)):p.type==="binary"&&Cn(t,void 0,{binary:!0}).then(Q=>pe(Q.value)).catch(Q=>re(Q.message)))},[r,t,p]),be)return qe.jsx("div",{className:"error",children:be});if(!p)return qe.jsx("div",{className:"loading",children:"…"});const N=c$(p),ne=d$(p),B=[...N.map(k=>k.name),...ne],Le=h$(r,N,ne),ue=k=>N.find(A=>A.name===k)?.label??k,P=N.find(k=>k.name===Le)??null,v=P!=null;let $,l;v?($=p.value,l=!0):f$(Le)?($=I,l=I!=null):p.type==="binary"?($=H,l=H!=null):($=p.value,l=!0);const{tags:u,rest:d}=V4(p.relations),_=[...u];for(const k of Ae)k.tag&&!_.some(A=>A.path===k.tag.path)&&_.push({path:k.tag.path,label:k.tag.name,color:k.tag.color});return qe.jsxs("div",{className:"nodeview",children:[ge&&qe.jsx("div",{className:"paste-toast",children:ge}),me&&qe.jsx("div",{className:"drop-overlay",children:"Drop file to upload"}),qe.jsxs("div",{className:"nodehead",children:[qe.jsxs("div",{className:"nodemeta",children:[qe.jsx("span",{className:"tag",children:p.type}),p.concrete&&qe.jsx("span",{className:"tag dim",children:p.concrete}),qe.jsx(Y4,{tags:_,onNavigate:s})]}),qe.jsx("span",{className:"bar-sep","aria-hidden":"true",children:"|"}),qe.jsxs("div",{className:"tabs",children:[B.map(k=>qe.jsxs(gt.Fragment,{children:[qe.jsx("button",{className:"tab"+(Le===k?" active":""),onClick:()=>i(k),children:ue(k)}),v&&P&&k===P.name&&P.config?.(fe,p)]},k)),!v&&qe.jsx(d8,{onChange:()=>X(k=>k+1)})]})]}),!v&&p.description&&qe.jsx("p",{className:"nodedesc",children:p.description}),v?h8.has(P.name)?qe.jsx(u7,{path:t,children:P.render(p,s)}):P.render(p,s):qe.jsxs("pre",{className:"code",children:[!f$(Le)&&Object.keys(d).length>0&&qe.jsxs(qe.Fragment,{children:[qe.jsx(Hh,{value:d,syntax:s_(Le),onNavigate:s}),qe.jsx("hr",{className:"reldiv"})]}),l?qe.jsx(Hh,{value:$,syntax:s_(Le),onNavigate:s}):"…"]})]})}),w8=e=>p8.includes(e),k8=(e,t)=>w8(e)&&(e!=="json5p"||kv(t)),tl=1;function Wf(e,t,r){return e.path===t?{...e,children:r}:e.children.length?{...e,children:e.children.map(n=>Wf(n,t,r))}:e}function Sv(e,t){if(!e)return t;const r=new Map(e.children.map(i=>[i.path,i])),n=t.children.length?t.children.map(i=>Sv(r.get(i.path),i)):t.hasChildren?e.children:[];return{...t,children:n}}function Av(e,t,r){return e.path===t?Sv(e,r):e.children.length?{...e,children:e.children.map(n=>Av(n,t,r))}:e}function oa(e,t){if(e.path===t)return e;for(const r of e.children){const n=oa(r,t);if(n)return n}return null}function S8(e,t){const r=Gr(t);for(let n=0;n<r.length;n++){const i=ri(r.slice(0,n)),s=oa(e,i);if(!s)return null;if(s.hasChildren&&s.children.length===0)return i}return null}function A8(e){if(!e)return[];const t=[],r=n=>{t.push(n.path);for(const i of mv(n).children)r(i)};return r(e),t}function E8(){const[e,t]=gt.useState(null),[r,n]=gt.useState(null),[i,s]=gt.useState(Vh()),[c,f]=gt.useState(Wh(ul)),[p,h]=gt.useState(""),[I,L]=gt.useState("idle"),H=gt.useCallback(()=>{const v=":.yamlover:settings.yamlover";Ws(v,"settings",!1),s(v),f("settings")},[]),[pe,be]=gt.useState(320),re=gt.useRef(null);gt.useEffect(()=>{jh().then(v=>h(v.root)).catch(()=>{})},[]);const[W,X]=gt.useState([]);gt.useEffect(()=>{e4().then(X).catch(()=>{})},[]);const ge=gt.useCallback(v=>{X($=>[...$.filter(l=>l.id!==v.id),v].sort((l,u)=>l.startedAt-u.startedAt)),v.state!=="running"&&setTimeout(()=>X($=>$.filter(l=>l.id!==v.id)),3e3)},[]),se=gt.useRef(new URLSearchParams(window.location.search).has("format"));gt.useEffect(()=>{Ws(i,c,!0)},[]),gt.useEffect(()=>{Qa(":",tl).then(t).catch(v=>n(v.message))},[]);const me=gt.useRef(!1);gt.useEffect(()=>{if(se.current||me.current||!e)return;const v=oa(e,i);if(!v)return;me.current=!0;const $=$$(v,v.concrete);$&&(f($),Ws(i,$,!0))},[e,i]);const J=gt.useCallback(async(v,$=tl)=>{const l=await Qa(v,$);t(u=>u&&Wf(u,v,l.children))},[]);gt.useEffect(()=>{if(!e)return;const v=S8(e,i);v&&J(v).catch(()=>{})},[e,i,J]);const xe=gt.useRef(e);xe.current=e;const fe=gt.useRef(i);fe.current=i;const[Ae,O]=gt.useState(0),Ee=gt.useCallback(async v=>{const $=xe.current;if(!$)return;const l=new Set;for(const d of v){const _=Gr(d);let k=":";for(let A=0;A<_.length;A++){const Q=ri(_.slice(0,A)),De=oa($,Q);if(!De)break;(Q===":"||De.children.length>0)&&(k=Q)}l.add(k)}const u=[...l].filter(d=>![...l].some(_=>_!==d&&Bo(_,d)));await Promise.all(u.map(async d=>{const _=await Qa(d,tl);t(k=>k&&Av(k,d,_))}))},[]),ce=gt.useCallback(()=>{xe.current||(Qa(":",tl).then(v=>{t(v),n(null)}).catch(()=>{}),jh().then(v=>h(v.root)).catch(()=>{}))},[]);gt.useEffect(()=>{if(typeof EventSource>"u")return;const v=new EventSource(Er("/api/events"));return v.onmessage=$=>{try{const l=JSON.parse($.data);if(l.type==="task"){const k=l.task;ge(k),k.state==="done"&&ce();return}const u=l;ce();const d=[...u.added,...u.changed,...u.removed,...(u.moved??[]).flatMap(k=>[k.from,k.to])];if(!d.length)return;U4({paths:d,removed:u.removed}),Ee(d).catch(()=>{});const _=fe.current;d.some(k=>k===_||Bo(k,_)||Bo(_,k))&&O(k=>k+1)}catch{}},()=>v.close()},[Ee,ge,ce]),gt.useEffect(()=>{const v=()=>{s(Vh()),f(Wh(ul))};return window.addEventListener("popstate",v),()=>window.removeEventListener("popstate",v)},[]);const w=gt.useCallback(v=>{const $=e?oa(e,v):null;let l=c;$&&(l=$$($,$.concrete)??(k8(c,$.concrete)?c:ul)),Ws(v,l,!1),s(v),l!==c&&f(l)},[c,e]),Se=gt.useCallback(v=>{w(v),re.current?.focus()},[w]),N=gt.useRef(w);N.current=w,gt.useEffect(()=>{const v=$=>{if(!($.ctrlKey||$.altKey)||$.key!=="ArrowDown"&&$.key!=="ArrowUp")return;const l=$.target;if(l&&(l.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(l.tagName)))return;const u=A8(xe.current),d=u.indexOf(fe.current);if(d<0)return;const _=Math.min(Math.max(d+($.key==="ArrowDown"?1:-1),0),u.length-1);$.preventDefault(),_!==d&&N.current(u[_])};return window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)},[]);const ne=gt.useCallback(v=>{Ws(i,v,!0),f(v)},[i]),B=gt.useCallback(v=>{const $=e?oa(e,v):null;J($?v:":").catch(()=>{})},[e,J]),Le=gt.useCallback(async v=>{const $=v.dir??":";try{const l=await Qa($,tl);t(_=>_&&Wf(_,$,l.children));const u=l.children.find(_=>_.path===v.path),d=(u?$$(u,u.concrete):null)??ul;Ws(v.path,d,!1),s(v.path),f(d)}catch{w(v.path)}},[w]),ue=gt.useRef(!1);gt.useEffect(()=>{const v=l=>{ue.current&&be(Math.min(Math.max(l.clientX,160),window.innerWidth-240))},$=()=>{ue.current=!1,document.body.style.userSelect=""};return window.addEventListener("mousemove",v),window.addEventListener("mouseup",$),()=>{window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",$)}},[]);const P=gt.useCallback(async()=>{if(I!=="busy"){L("busy");try{let{files:v}=await Ph();if(v.every(l=>l.status==="exists")){const l=v.map(u=>u.name).join(" and ");window.confirm(`${l} already exist in this project. Overwrite with the bundled version?`)&&(v=(await Ph(!0)).files)}const $=v.filter(l=>l.status!=="exists").map(l=>l.name);n(null),$.length&&window.alert(`Installed agent guide: ${$.join(", ")}.`)}catch(v){n(`agent docs: ${v.message}`)}finally{L("idle")}}},[I]);return qe.jsxs("div",{className:"app",children:[qe.jsxs("header",{className:"topbar",children:[qe.jsxs("nav",{className:"crumbs",children:[qe.jsx("button",{type:"button",className:"crumb-action",title:"Project configuration (settings.yamlover)","aria-label":"Project configuration",onClick:H,children:"⚙"}),qe.jsx("button",{type:"button",className:"crumb-action",disabled:I==="busy",title:"Install the LLM agent guide (AGENTS.md + CLAUDE.md) into this project","aria-label":"Install LLM agent guide",onClick:P,children:"🤖"}),D4(i,p).map((v,$)=>qe.jsxs("span",{children:[$>0&&qe.jsx("span",{className:"crumb-sep",children:":"}),qe.jsx("a",{className:"crumb",href:v.path,onClick:l=>{l.preventDefault(),w(v.path)},children:v.label})]},v.path))]}),qe.jsx(e8,{tasks:W})]}),qe.jsxs("div",{className:"body",children:[qe.jsx("aside",{className:"pane left",style:{width:pe},children:(()=>{const v=e?void 0:W.find($=>$.state==="running");if(v){const{done:$,total:l}=v.progress;return qe.jsxs("div",{className:"loading",children:[v.label,"… ",l?`${$}/${l}`:""]})}return r?qe.jsx("div",{className:"error",children:r}):e?qe.jsx(O7,{node:e,current:i,onSelect:Se,onLoadChildren:J}):qe.jsx("div",{className:"loading",children:"loading…"})})()}),qe.jsx("div",{className:"splitter",onMouseDown:()=>{ue.current=!0,document.body.style.userSelect="none"}}),qe.jsx("main",{className:"pane right",ref:re,tabIndex:-1,children:(()=>{const v=e?void 0:W.find($=>$.state==="running");if(v){const{done:$,total:l}=v.progress;return qe.jsxs("div",{className:"loading",children:[v.label,"… ",l?`${$}/${l}`:""]})}return qe.jsx(x8,{path:i,format:c,refreshSignal:Ae,onFormat:ne,onNavigate:w,onContentChanged:B,onOpenUploaded:Le})})()})]})]})}v1(document.getElementById("root")).render(qe.jsx(Hv.StrictMode,{children:qe.jsx(E8,{})}));export{X6 as D,C8 as a,hs as b,Q6 as c,o7 as d,Z6 as e,a7 as f,Ev as g,qe as j,T8 as p,gt as r,Bf as s,B6 as u,z8 as w};
|
|
620
|
+
`+r.text:t.push(r)}return t}const u8={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","image/bmp":"bmp","image/tiff":"tiff","image/avif":"avif"};async function yv(e){return{title:e.title,chunks:await Promise.all(e.chunks.map(async t=>{if("text"in t)return{text:t.text};try{const r=await fetch(t.image.url);if(!r.ok)throw new Error(`HTTP ${r.status}`);const n=await r.blob();return{file:{name:c8(t.image.url,n.type),contentBase64:await $8(n)}}}catch{return{text:``}}})),children:await Promise.all(e.children.map(yv))}}function c8(e,t){let r="";try{r=decodeURIComponent(new URL(e).pathname.split("/").pop()??"")}catch{}return(!r||e.startsWith("data:"))&&(r="image"),/\.[A-Za-z0-9]{2,5}$/.test(r)||(r+="."+(u8[t]||"bin")),r}function $8(e){return new Promise((t,r)=>{const n=new FileReader;n.onload=()=>t(String(n.result).split(",")[1]||""),n.onerror=()=>r(new Error("could not read image")),n.readAsDataURL(e)})}function bv(e){return e.chunks.filter(t=>"image"in t).length+e.children.reduce((t,r)=>t+bv(r),0)}const xv=2,Uf=1,Hf=10,wv=()=>new URLSearchParams(window.location.search);function Vf(){const e=Number(wv().get("depth"));return Number.isInteger(e)&&e>=Uf&&e<=Hf?e:xv}function f8(e){const t=wv();e===xv?t.delete("depth"):t.set("depth",String(e));const r=t.toString();window.history.replaceState({},"",window.location.pathname+(r?"?"+r:""))}function d8({onChange:e}){const t=Vf(),[r,n]=gt.useState(String(t));gt.useEffect(()=>n(String(t)),[t]);const i=Number(r),s=r.trim()!==""&&Number.isInteger(i)&&i>=Uf&&i<=Hf;return qe.jsx("input",{className:"depth-control"+(s?"":" invalid"),type:"text",inputMode:"numeric",title:"depth",value:r,onChange:c=>{const f=c.target.value;n(f);const p=Number(f);f.trim()!==""&&Number.isInteger(p)&&p>=Uf&&p<=Hf&&(f8(p),e())}})}const h8=new Set(["chapter","markdown","asciidoc","marklower"]),p8=["yamlover","json5p","yamlover/schema"],ul="yamlover",_8=new Set(["json","json5","json5p"]),kv=e=>_8.has(e??""),f$=e=>e.endsWith("schema"),s_=e=>e==="json5p"?"json":"yaml";function d$(e){return kv(e.concrete)?["yamlover","json5p","yamlover/schema"]:["yamlover","yamlover/schema"]}function h$(e,t,r){return r.includes(e)||t.some(n=>n.name===e)?e:t[0]?t[0].name:ul}function m8(e){const t=Gr(e),r=t[t.length-1];return r===void 0?"":typeof r=="number"?`[${r}]`:r}const g8={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","image/bmp":"bmp","image/tiff":"tiff","application/pdf":"pdf"};function v8(e){const t=e.clipboardData;if(!t)return[];if(t.files&&t.files.length)return Array.from(t.files);const r=[];for(const n of Array.from(t.items||[]))if(n.kind==="file"){const i=n.getAsFile();i&&r.push(i)}return r}function y8(e){return e.name?e.name:`pasted.${g8[e.type]||"bin"}`}function b8(e){return new Promise((t,r)=>{const n=new FileReader;n.onload=()=>t(String(n.result).split(",")[1]||""),n.onerror=()=>r(new Error("could not read file")),n.readAsDataURL(e)})}const x8=gt.memo(function({path:t,format:r,refreshSignal:n=0,onFormat:i,onNavigate:s,onContentChanged:c,onOpenUploaded:f}){const[p,h]=gt.useState(null),[I,L]=gt.useState(null),[H,pe]=gt.useState(null),[be,re]=gt.useState(null),[W,X]=gt.useState(0),[ge,se]=gt.useState(null),[me,J]=gt.useState(!1),xe=gt.useRef(t),[,fe]=gt.useReducer(k=>k+1,0),Ae=fv(t);gt.useEffect(()=>{re(null),xe.current!==t&&(h(null),xe.current=t);let k=!1;return Cn(t).then(A=>{if(k)return;const Q=c$(A),De=h$(r,Q,d$(A)),rt=Q.find(_t=>_t.name===De),ft=rt?rt.depth??1:Vf();ft>1?Cn(t,ft).then(_t=>!k&&h(_t)).catch(_t=>!k&&re(_t.message)):h(A)}).catch(A=>!k&&re(A.message)),()=>{k=!0}},[t,W,n,r]),gt.useEffect(()=>{if(!p)return;const k=A=>{const Q=A.target;if(Q&&(Q.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(Q.tagName)))return;const De=v8(A);if(De.length>0){A.preventDefault(),O(De);return}const rt=A.clipboardData?.getData("text/html")??"",ft=rt?s8(rt):null;if(ft){A.preventDefault(),ce(ft);return}const _t=A.clipboardData?.getData("text/plain")??"";if(!_t.trim())return;A.preventDefault();const At=t8(_t);if(At){Ee(At);return}const bt=r8(_t);if(bt){w(bt);return}Se(_t)};return document.addEventListener("paste",k),()=>document.removeEventListener("paste",k)},[p,t]),gt.useEffect(()=>{if(!p)return;const k=_t=>Array.from(_t.dataTransfer?.types||[]).includes("Files");let A=0;const Q=_t=>{k(_t)&&(_t.preventDefault(),A++,J(!0))},De=_t=>{k(_t)&&(_t.preventDefault(),_t.dataTransfer&&(_t.dataTransfer.dropEffect="copy"))},rt=()=>{A=Math.max(0,A-1),A===0&&J(!1)},ft=_t=>{if(!k(_t))return;_t.preventDefault(),A=0,J(!1);const At=Array.from(_t.dataTransfer?.files||[]);At.length&&O(At)};return document.addEventListener("dragenter",Q),document.addEventListener("dragover",De),document.addEventListener("dragleave",rt),document.addEventListener("drop",ft),()=>{document.removeEventListener("dragenter",Q),document.removeEventListener("dragover",De),document.removeEventListener("dragleave",rt),document.removeEventListener("drop",ft)}},[p,t]);const O=async k=>{try{se(`uploading ${k.length} file${k.length>1?"s":""}…`);let A=null;for(const Q of k){const De=await b8(Q);A=await c4(t,y8(Q),De)}se(k.length>1?`uploaded ${k.length} files`:"uploaded"),window.setTimeout(()=>se(null),1500),A?.open?f?.(A):(X(Q=>Q+1),c?.(t))}catch(A){se("paste failed: "+A.message),window.setTimeout(()=>se(null),4e3)}},Ee=async({url:k,name:A})=>{try{se(`downloading ${A}…`);const Q=await fetch(k);if(!Q.ok)throw new Error(`HTTP ${Q.status} fetching ${k}`);const De=await Q.blob();await O([new File([De],A,{type:"application/pdf"})])}catch(Q){se("download failed: "+Q.message),window.setTimeout(()=>se(null),4e3)}},ce=async k=>{try{const A=bv(k);A&&se(`downloading ${A} image${A>1?"s":""}…`);const Q=await yv(k);se("pasting…");const De=await f4(t,Q);se(De.chapter?"chunks added":"chapter created"),window.setTimeout(()=>se(null),1500),De.open?f?.(De):(X(rt=>rt+1),c?.(t))}catch(A){se("paste failed: "+A.message),window.setTimeout(()=>se(null),4e3)}},w=async k=>{try{se("fetching tweet…"),await Se(await n8(k))}catch(A){se("tweet fetch failed: "+A.message),window.setTimeout(()=>se(null),4e3)}},Se=async k=>{try{se("pasting text…");const A=await $4(t,k);se(A.chapter?"chunk added":"chapter created"),window.setTimeout(()=>se(null),1500),A.open?f?.(A):(X(Q=>Q+1),c?.(t))}catch(A){se("paste failed: "+A.message),window.setTimeout(()=>se(null),4e3)}};if(gt.useEffect(()=>{p&&(document.title=p.title?.trim()||m8(t)||"yamlover")},[p,t]),gt.useEffect(()=>{if(L(null),pe(null),!p)return;const k=c$(p),A=h$(r,k,d$(p));k.some(Q=>Q.name===A)||(f$(A)?r4(t,Vf()).then(L).catch(Q=>re(Q.message)):p.type==="binary"&&Cn(t,void 0,{binary:!0}).then(Q=>pe(Q.value)).catch(Q=>re(Q.message)))},[r,t,p]),be)return qe.jsx("div",{className:"error",children:be});if(!p)return qe.jsx("div",{className:"loading",children:"…"});const N=c$(p),ne=d$(p),B=[...N.map(k=>k.name),...ne],Le=h$(r,N,ne),ue=k=>N.find(A=>A.name===k)?.label??k,P=N.find(k=>k.name===Le)??null,v=P!=null;let $,l;v?($=p.value,l=!0):f$(Le)?($=I,l=I!=null):p.type==="binary"?($=H,l=H!=null):($=p.value,l=!0);const{tags:u,rest:d}=V4(p.relations),_=[...u];for(const k of Ae)k.tag&&!_.some(A=>A.path===k.tag.path)&&_.push({path:k.tag.path,label:k.tag.name,color:k.tag.color});return qe.jsxs("div",{className:"nodeview",children:[ge&&qe.jsx("div",{className:"paste-toast",children:ge}),me&&qe.jsx("div",{className:"drop-overlay",children:"Drop file to upload"}),qe.jsxs("div",{className:"nodehead",children:[qe.jsxs("div",{className:"nodemeta",children:[qe.jsx("span",{className:"tag",children:p.type}),p.concrete&&qe.jsx("span",{className:"tag dim",children:p.concrete}),qe.jsx(Y4,{tags:_,onNavigate:s})]}),qe.jsx("span",{className:"bar-sep","aria-hidden":"true",children:"|"}),qe.jsxs("div",{className:"tabs",children:[B.map(k=>qe.jsxs(gt.Fragment,{children:[qe.jsx("button",{className:"tab"+(Le===k?" active":""),onClick:()=>i(k),children:ue(k)}),v&&P&&k===P.name&&P.config?.(fe,p)]},k)),!v&&qe.jsx(d8,{onChange:()=>X(k=>k+1)})]})]}),!v&&p.description&&qe.jsx("p",{className:"nodedesc",children:p.description}),v?h8.has(P.name)?qe.jsx(u7,{path:t,children:P.render(p,s)}):P.render(p,s):qe.jsxs("pre",{className:"code",children:[!f$(Le)&&Object.keys(d).length>0&&qe.jsxs(qe.Fragment,{children:[qe.jsx(Hh,{value:d,syntax:s_(Le),onNavigate:s}),qe.jsx("hr",{className:"reldiv"})]}),l?qe.jsx(Hh,{value:$,syntax:s_(Le),onNavigate:s}):"…"]})]})}),w8=e=>p8.includes(e),k8=(e,t)=>w8(e)&&(e!=="json5p"||kv(t)),tl=1;function Wf(e,t,r){return e.path===t?{...e,children:r}:e.children.length?{...e,children:e.children.map(n=>Wf(n,t,r))}:e}function Sv(e,t){if(!e)return t;const r=new Map(e.children.map(i=>[i.path,i])),n=t.children.length?t.children.map(i=>Sv(r.get(i.path),i)):t.hasChildren?e.children:[];return{...t,children:n}}function Av(e,t,r){return e.path===t?Sv(e,r):e.children.length?{...e,children:e.children.map(n=>Av(n,t,r))}:e}function oa(e,t){if(e.path===t)return e;for(const r of e.children){const n=oa(r,t);if(n)return n}return null}function S8(e,t){const r=Gr(t);for(let n=0;n<r.length;n++){const i=ri(r.slice(0,n)),s=oa(e,i);if(!s)return null;if(s.hasChildren&&s.children.length===0)return i}return null}function A8(e){if(!e)return[];const t=[],r=n=>{t.push(n.path);for(const i of mv(n).children)r(i)};return r(e),t}function E8(){const[e,t]=gt.useState(null),[r,n]=gt.useState(null),[i,s]=gt.useState(Vh()),[c,f]=gt.useState(Wh(ul)),[p,h]=gt.useState(""),[I,L]=gt.useState("idle"),H=gt.useCallback(()=>{const v=":.yamlover:settings.yamlover";Ws(v,"settings",!1),s(v),f("settings")},[]),[pe,be]=gt.useState(320),re=gt.useRef(null);gt.useEffect(()=>{jh().then(v=>h(v.root)).catch(()=>{})},[]);const[W,X]=gt.useState([]);gt.useEffect(()=>{e4().then(X).catch(()=>{})},[]);const ge=gt.useCallback(v=>{X($=>[...$.filter(l=>l.id!==v.id),v].sort((l,u)=>l.startedAt-u.startedAt)),v.state!=="running"&&setTimeout(()=>X($=>$.filter(l=>l.id!==v.id)),3e3)},[]),se=gt.useRef(new URLSearchParams(window.location.search).has("format"));gt.useEffect(()=>{Ws(i,c,!0)},[]),gt.useEffect(()=>{Qa(":",tl).then(t).catch(v=>n(v.message))},[]);const me=gt.useRef(!1);gt.useEffect(()=>{if(se.current||me.current||!e)return;const v=oa(e,i);if(!v)return;me.current=!0;const $=$$(v,v.concrete);$&&(f($),Ws(i,$,!0))},[e,i]);const J=gt.useCallback(async(v,$=tl)=>{const l=await Qa(v,$);t(u=>u&&Wf(u,v,l.children))},[]);gt.useEffect(()=>{if(!e)return;const v=S8(e,i);v&&J(v).catch(()=>{})},[e,i,J]);const xe=gt.useRef(e);xe.current=e;const fe=gt.useRef(i);fe.current=i;const[Ae,O]=gt.useState(0),Ee=gt.useCallback(async v=>{const $=xe.current;if(!$)return;const l=new Set;for(const d of v){const _=Gr(d);let k=":";for(let A=0;A<_.length;A++){const Q=ri(_.slice(0,A)),De=oa($,Q);if(!De)break;(Q===":"||De.children.length>0)&&(k=Q)}l.add(k)}const u=[...l].filter(d=>![...l].some(_=>_!==d&&Bo(_,d)));await Promise.all(u.map(async d=>{const _=await Qa(d,tl);t(k=>k&&Av(k,d,_))}))},[]),ce=gt.useCallback(()=>{xe.current||(Qa(":",tl).then(v=>{t(v),n(null)}).catch(()=>{}),jh().then(v=>h(v.root)).catch(()=>{}))},[]);gt.useEffect(()=>{if(typeof EventSource>"u")return;const v=new EventSource(Er("/api/events"));return v.onmessage=$=>{try{const l=JSON.parse($.data);if(l.type==="task"){const k=l.task;ge(k),k.state==="done"&&ce();return}const u=l;ce();const d=[...u.added,...u.changed,...u.removed,...(u.moved??[]).flatMap(k=>[k.from,k.to])];if(!d.length)return;U4({paths:d,removed:u.removed}),Ee(d).catch(()=>{});const _=fe.current;d.some(k=>k===_||Bo(k,_)||Bo(_,k))&&O(k=>k+1)}catch{}},()=>v.close()},[Ee,ge,ce]),gt.useEffect(()=>{const v=()=>{s(Vh()),f(Wh(ul))};return window.addEventListener("popstate",v),()=>window.removeEventListener("popstate",v)},[]);const w=gt.useCallback(v=>{const $=e?oa(e,v):null;let l=c;$&&(l=$$($,$.concrete)??(k8(c,$.concrete)?c:ul)),Ws(v,l,!1),s(v),l!==c&&f(l)},[c,e]),Se=gt.useCallback(v=>{w(v),re.current?.focus()},[w]),N=gt.useRef(w);N.current=w,gt.useEffect(()=>{const v=$=>{if(!($.ctrlKey||$.altKey)||$.key!=="ArrowDown"&&$.key!=="ArrowUp")return;const l=$.target;if(l&&(l.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(l.tagName)))return;const u=A8(xe.current),d=u.indexOf(fe.current);if(d<0)return;const _=Math.min(Math.max(d+($.key==="ArrowDown"?1:-1),0),u.length-1);$.preventDefault(),_!==d&&N.current(u[_])};return window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)},[]);const ne=gt.useCallback(v=>{Ws(i,v,!0),f(v)},[i]),B=gt.useCallback(v=>{const $=e?oa(e,v):null;J($?v:":").catch(()=>{})},[e,J]),Le=gt.useCallback(async v=>{const $=v.dir??":";try{const l=await Qa($,tl);t(_=>_&&Wf(_,$,l.children));const u=l.children.find(_=>_.path===v.path),d=(u?$$(u,u.concrete):null)??ul;Ws(v.path,d,!1),s(v.path),f(d)}catch{w(v.path)}},[w]),ue=gt.useRef(!1);gt.useEffect(()=>{const v=l=>{ue.current&&be(Math.min(Math.max(l.clientX,160),window.innerWidth-240))},$=()=>{ue.current=!1,document.body.style.userSelect=""};return window.addEventListener("mousemove",v),window.addEventListener("mouseup",$),()=>{window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",$)}},[]);const P=gt.useCallback(async()=>{if(I!=="busy"){L("busy");try{let{files:v}=await Ph();if(v.every(l=>l.status==="exists")){const l=v.map(u=>u.name).join(" and ");window.confirm(`${l} already exist in this project. Overwrite with the bundled version?`)&&(v=(await Ph(!0)).files)}const $=v.filter(l=>l.status!=="exists").map(l=>l.name);n(null),$.length&&window.alert(`Installed agent guide: ${$.join(", ")}.`)}catch(v){n(`agent docs: ${v.message}`)}finally{L("idle")}}},[I]);return qe.jsxs("div",{className:"app",children:[qe.jsxs("header",{className:"topbar",children:[qe.jsxs("nav",{className:"crumbs",children:[qe.jsx("button",{type:"button",className:"crumb-action crumb-settings",title:"Project configuration (settings.yamlover)","aria-label":"Project configuration",onClick:H,children:"⚙"}),qe.jsx("button",{type:"button",className:"crumb-action",disabled:I==="busy",title:"Install the LLM agent guide (AGENTS.md + CLAUDE.md) into this project","aria-label":"Install LLM agent guide",onClick:P,children:"🤖"}),D4(i,p).map((v,$)=>qe.jsxs("span",{children:[$>0&&qe.jsx("span",{className:"crumb-sep",children:":"}),qe.jsx("a",{className:"crumb",href:v.path,onClick:l=>{l.preventDefault(),w(v.path)},children:v.label})]},v.path))]}),qe.jsx(e8,{tasks:W})]}),qe.jsxs("div",{className:"body",children:[qe.jsx("aside",{className:"pane left",style:{width:pe},children:(()=>{const v=e?void 0:W.find($=>$.state==="running");if(v){const{done:$,total:l}=v.progress;return qe.jsxs("div",{className:"loading",children:[v.label,"… ",l?`${$}/${l}`:""]})}return r?qe.jsx("div",{className:"error",children:r}):e?qe.jsx(O7,{node:e,current:i,onSelect:Se,onLoadChildren:J}):qe.jsx("div",{className:"loading",children:"loading…"})})()}),qe.jsx("div",{className:"splitter",onMouseDown:()=>{ue.current=!0,document.body.style.userSelect="none"}}),qe.jsx("main",{className:"pane right",ref:re,tabIndex:-1,children:(()=>{const v=e?void 0:W.find($=>$.state==="running");if(v){const{done:$,total:l}=v.progress;return qe.jsxs("div",{className:"loading",children:[v.label,"… ",l?`${$}/${l}`:""]})}return qe.jsx(x8,{path:i,format:c,refreshSignal:Ae,onFormat:ne,onNavigate:w,onContentChanged:B,onOpenUploaded:Le})})()})]})]})}v1(document.getElementById("root")).render(qe.jsx(Hv.StrictMode,{children:qe.jsx(E8,{})}));export{X6 as D,C8 as a,hs as b,Q6 as c,o7 as d,Z6 as e,a7 as f,Ev as g,qe as j,T8 as p,gt as r,Bf as s,B6 as u,z8 as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.47"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--bg: #1e1e2e;--bg-alt: #181825;--panel: #24273a;--line: #363a4f;--fg: #cad3f5;--dim: #8087a2;--accent: #8aadf4;--key: #91d7e3;--string: #a6da95;--number: #f5a97f;--bool: #c6a0f6;--null: #ed8796;--sel: #363a4f;--font: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--jb-key: #9876aa;--jb-string: #6a8759;--jb-number: #6897bb;--jb-keyword: #cc7832;--jb-comment: #808080;--jb-punct: #a9b7c6;--jb-dash: #808080}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:16px;padding:8px 14px;background:var(--bg-alt);border-bottom:1px solid var(--line);flex:0 0 auto}.crumbs{display:flex;align-items:center;flex-wrap:wrap;min-height:1.3em}.crumb{color:var(--fg);text-decoration:none}.crumb:hover{color:var(--accent);text-decoration:underline}.crumb-sep{color:var(--dim);margin:0 6px}.crumb-action{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:8px;padding:0;background:none;border:none;border-radius:4px;color:var(--dim);font-size:15px;line-height:1;cursor:pointer;flex:0 0 auto}.crumb-action:hover:not(:disabled){color:var(--accent);background:var(--bg)}.crumb-action:disabled{opacity:.5;cursor:default}.task-strip{margin-left:auto;display:flex;align-items:center;gap:12px;min-width:0}.task-chip{display:inline-flex;flex-direction:column;gap:3px;max-width:320px;font-size:12px;color:var(--dim)}.task-chip.error{color:var(--null)}.task-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-counts{color:var(--fg)}.task-bar{display:block;height:3px;border-radius:2px;background:var(--line);overflow:hidden;position:relative}.task-bar-fill{display:block;height:100%;background:var(--accent);transition:width .2s ease}.task-chip.done .task-bar-fill{background:var(--string)}.task-chip.error .task-bar-fill{background:var(--null);width:100%}.task-bar-fill.indeterminate{width:40%;position:absolute;animation:task-sweep 1.2s ease-in-out infinite}@keyframes task-sweep{0%{left:-40%}to{left:100%}}.body{display:flex;flex:1 1 auto;min-height:0}.pane{height:100%;overflow:auto}.left{flex:0 0 auto;background:var(--panel);border-right:1px solid var(--line);padding:8px 0}.right{flex:1 1 auto;padding:14px 18px}.right:focus{outline:none}.splitter{flex:0 0 5px;cursor:col-resize;background:var(--line)}.splitter:hover{background:var(--accent)}.tree-row{display:flex;align-items:center;gap:4px;padding:1px 8px 1px 0;white-space:nowrap}.tree-row.selected{background:var(--sel)}.tree-label{cursor:pointer}.tree-label:hover{color:var(--accent)}.icon{display:inline-block;width:1.6em;text-align:center;flex:0 0 auto;font-size:12px}.t-struct{color:var(--key)}.t-str{color:var(--string)}.t-num{color:var(--number)}.t-bool{color:var(--bool)}.t-null{color:var(--null)}.t-bin,.t-fmt{color:var(--dim)}.icon.binsq,.dirview-icon.binsq{width:auto;font-family:var(--mono, monospace);font-size:6px;font-weight:700;line-height:1;border:1px solid currentColor;border-radius:2px;padding:2px}.dirview-icon.binsq{flex:none;margin:0 2px}.toggle{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;color:var(--dim);cursor:pointer;padding:0;flex:0 0 auto}.toggle .chevron{font-size:20px;font-weight:700;line-height:1;transition:transform .12s ease}.toggle.open .chevron{transform:rotate(90deg)}.toggle.loading{opacity:.4}.toggle:hover{color:var(--accent)}.toggle.leaf{cursor:default}.nodehead{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px 12px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px;position:sticky;top:-14px;background:var(--bg);z-index:2;padding-top:14px;margin-top:-14px}.bar-sep{color:var(--dim);opacity:.5;user-select:none}.markup-width{width:5ch;background:var(--bg-alt);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:2px 4px;font:inherit;font-family:var(--font);font-size:12px;text-align:right}.markup-width.invalid{border-color:#f38ba8;color:#f38ba8}.depth-control{width:3ch;background:var(--bg-alt);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:2px 4px;font:inherit;font-family:var(--font);font-size:12px;text-align:right}.depth-control.invalid{border-color:#f38ba8;color:#f38ba8}.nodemeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nodepath{color:var(--accent)}.tag{font-size:11px;padding:1px 7px;border:1px solid var(--line);border-radius:10px;color:var(--fg)}.tag.dim{color:var(--dim)}.nodedesc{color:var(--dim);margin:0 0 12px;font-style:italic}.tabs{display:flex;gap:4px}.tab{background:none;border:1px solid var(--line);color:var(--dim);padding:2px 10px;border-radius:4px;cursor:pointer;font-family:var(--font);font-size:12px}.tab.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.code{white-space:pre;overflow-x:auto;line-height:1.55;font-family:var(--font);position:relative;padding-left:22px;margin:0 0 0 -14px}.code.raw{color:var(--fg)}.k{color:var(--jb-key)}.s{color:var(--jb-string)}.n{color:var(--jb-number)}.b,.null{color:var(--jb-keyword)}.punct{color:var(--jb-punct)}.c{color:var(--jb-comment);font-style:italic}.descend{color:var(--accent);text-decoration:none;border-bottom:1px dashed var(--accent);cursor:pointer}.descend:hover{background:var(--sel)}.extlink{color:var(--accent);text-decoration:underline;cursor:pointer}.extlink:hover{background:var(--sel)}.fold-gutter{margin-left:-20px;vertical-align:top;user-select:none}.fold-summary{color:var(--dim);cursor:default}.yaml-dash{display:inline-block;transform:scale(1.55);transform-origin:left center;font-weight:700;color:var(--jb-dash)}.reldiv{border:none;border-top:1px solid var(--line);margin:8px 0 8px -8px}.chapter{line-height:1.65;max-width:70ch}.chapter-title{font-size:22px;font-weight:700;margin:0 0 4px;color:var(--fg)}.chapter-subtitle{margin:0 0 18px;color:var(--dim);font-style:italic}.chapter-prose{margin:0 0 14px;white-space:pre-wrap;word-break:break-word}.chapter-link{font-size:15px;font-weight:600;margin:18px 0 8px}.chapter-link a{border-bottom-width:0}.chunk{display:flex;gap:12px;align-items:flex-start;scroll-margin-top:12px}a.chunk-index{text-decoration:none}.chunk-index{flex:0 0 auto;min-width:2.2em;text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:var(--dim);user-select:none;border-bottom-width:0}a.chunk-index:hover{color:var(--accent)}.chunk-body{flex:1 1 auto;min-width:0}.chunk-body .filemedia{padding-top:0}.chunk-body .filehtml{height:340px}.chunk-body .filepdf{height:auto;max-height:460px;overflow:auto}.error{color:var(--null);padding:12px}.loading{color:var(--dim);padding:12px}.settings-view{padding:16px;max-width:820px;color:var(--fg)}.settings-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.settings-title{color:var(--accent);font-weight:600}.settings-path{color:var(--dim);font-size:.85em}.settings-dim{color:var(--dim)}.settings-summary{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0 0 16px}.settings-summary dt{color:var(--key)}.settings-summary dd{margin:0}.settings-chip{display:inline-block;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 6px;margin:0 4px 4px 0;color:var(--string)}.settings-raw-label{display:block;color:var(--dim);font-size:.85em;margin-bottom:4px}.settings-raw{width:100%;min-height:320px;resize:vertical;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:8px;font-family:var(--font);font-size:.9em;white-space:pre}.settings-error{margin-top:10px;color:var(--null);white-space:pre-wrap}.settings-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.settings-save{background:var(--accent);color:var(--bg);border:none;border-radius:4px;padding:4px 14px;cursor:pointer;font-family:var(--font)}.settings-save:disabled{opacity:.5;cursor:default}.drop-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#1818258c;border:3px dashed var(--accent);color:var(--fg);font-size:18px;letter-spacing:.02em}.paste-toast{position:fixed;bottom:16px;right:16px;z-index:1000;padding:8px 14px;background:var(--panel);color:var(--fg);border:1px solid var(--accent);border-radius:6px;font-size:13px;box-shadow:0 4px 16px #0006}.filemedia{padding:12px 0;overflow:auto;max-width:900px}.filepdf,.filedjvu{padding:12px;overflow:auto;height:calc(100vh - 160px);min-height:360px}.filepdf:focus,.filedjvu:focus{outline:none}.fileimage{max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;display:block;margin:0 0 12px;background:#fff}.fileimage.plantuml{max-height:none;padding:12px;border:1px solid var(--border, #313244);border-radius:6px}.filehtml{width:100%;height:calc(100vh - 120px);border:1px solid var(--border, #313244);background:#fff}.filepdf .react-pdf__Page,.djvu-page-wrap{margin:0 0 12px;box-shadow:0 1px 6px #0006}.djvu-page-wrap{position:relative}.djvu-page{display:block;width:100%;max-width:none;background:#fff}.djvu-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#fff;color:#888;font-size:12px}.djvu-textlayer{position:absolute;inset:0;z-index:2;overflow:hidden;line-height:1}.djvu-textlayer span{position:absolute;color:transparent;white-space:pre;transform-origin:0 0;cursor:text}.markup{line-height:1.55;word-break:break-word;max-width:72ch;padding-left:1.6rem}.markup :first-child{margin-top:0}.markup h1,.markup h2,.markup h3{color:var(--fg);margin:18px 0 8px}.markup :is(h1,h2,h3,h4,h5,h6){position:relative;scroll-margin-top:12px}.markup a{color:var(--accent)}.markup .header-anchor{position:absolute;left:-1.6rem;width:1.6rem;box-sizing:border-box;padding-right:.45rem;text-align:right;font-size:12px;font-weight:400;line-height:inherit;color:var(--dim);text-decoration:none;user-select:none}.markup :is(h1,h2,h3,h4,h5,h6):hover .header-anchor,.markup .header-anchor:hover{color:var(--accent)}.markup code{font-family:var(--mono, monospace);background:var(--bg-alt);padding:1px 4px;border-radius:3px}.markup pre{background:var(--bg-alt);padding:10px;border-radius:4px;overflow:auto}.markup pre code{background:none;padding:0}.markup img{max-width:100%}.markup blockquote{border-left:3px solid var(--border, #313244);margin:10px 0;padding-left:12px;color:var(--dim)}.csv-toolbar{display:inline-flex;gap:12px;align-items:center;color:var(--dim);font-size:12px}.plaintext{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font);font-size:13px;line-height:1.55;color:var(--fg)}.enc-control{display:inline-flex;align-items:center;gap:4px;color:var(--dim);font-size:12px}.enc-control select{background:var(--bg-alt);color:var(--fg);border:1px solid var(--border, #313244);border-radius:4px;padding:2px 4px;font:inherit;font-family:var(--font)}.csv-toolbar label{display:inline-flex;align-items:center;gap:4px}.csv-toolbar select{background:var(--bg-alt);color:var(--fg);border:1px solid var(--border, #313244);border-radius:4px;padding:2px 4px;font:inherit;font-family:var(--font)}.csv-scroll{overflow:auto;max-width:100%}.csv-table{border-collapse:collapse;font-size:13px}.csv-table th,.csv-table td{border:1px solid var(--border, #313244);padding:3px 8px;text-align:left;vertical-align:top;white-space:pre-wrap}.csv-table thead th{position:sticky;top:0;background:var(--bg-alt);color:var(--fg);font-weight:600}.csv-table tbody tr:nth-child(2n){background:#ffffff06}.csv-empty{color:var(--dim)}.sheet-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 12px}.sheet-tab{background:var(--bg-alt);color:var(--dim);border:1px solid var(--border, #313244);border-radius:4px;padding:2px 10px;font:inherit;font-family:var(--font);font-size:12px;cursor:pointer}.sheet-tab.active{color:var(--fg);border-color:var(--accent)}.sheet-tab:hover{color:var(--fg)}.filemap{width:100%;height:calc(100vh - 160px);min-height:360px;border:1px solid var(--border, #313244);border-radius:6px}.chunk-body .filemap.chunk-map{height:380px}.annotate-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.annotate-count{color:var(--dim);font-size:12px}.annotate-menu{position:fixed;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:5px 7px;max-width:280px;background:var(--bg-alt);border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 14px #0000004d}.annotate-palette{display:flex;gap:4px}.annotate-swatch{width:18px;height:18px;padding:0;border-radius:50%;border:2px solid var(--tag);background:transparent;box-sizing:border-box;cursor:pointer}.annotate-swatch.on{background:var(--tag)}.annotate-tool{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;background:var(--bg);border:1px solid var(--line);color:var(--fg);font:inherit;font-size:15px;line-height:1;padding:0 6px;border-radius:5px;cursor:pointer}.annotate-tool:hover{border-color:var(--dim)}.annotate-tool.ok{color:#a6e3a1;border-color:#a6e3a180}.annotate-tool.ok:hover{background:#a6e3a12e;border-color:#a6e3a1}.annotate-tool.danger{color:#f38ba8;border-color:#f38ba880}.annotate-tool.danger:hover{background:#f38ba82e;border-color:#f38ba8}.annotate-recents{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px}.annotate-recents .tagframe,.annotate-suggest .tagframe{display:inline-flex}.annotate-recents .tagtag,.annotate-suggest .tagtag,.board-col-tags .tagtag{border:0;font:inherit;font-size:11px;cursor:pointer;position:relative;background:var(--tag);color:var(--tag)}.annotate-recents .tagtag:before,.annotate-suggest .tagtag:before,.board-col-tags .tagtag:before{display:block;background:var(--bg-alt);z-index:2}.annotate-recents .tagtag:after,.annotate-suggest .tagtag:after,.board-col-tags .tagtag:after{content:"";position:absolute;inset:1.5px;clip-path:polygon(11px 0,100% 0,100% 100%,11px 100%,0 50%);background:var(--bg-alt);z-index:0}.annotate-recents .tagtag .tt-label,.annotate-suggest .tagtag .tt-label,.board-col-tags .tagtag .tt-label{position:relative;z-index:1}.annotate-recents .tagtag.on,.annotate-suggest .tagtag.on,.board-col-tags .tagtag.on{color:#fff}.annotate-recents .tagtag.on:after,.annotate-suggest .tagtag.on:after,.board-col-tags .tagtag.on:after{background:var(--tag)}.annotate-suggest .tagtag.hi{background:var(--fg)}.annotate-taginput{flex-basis:100%;min-width:0;padding:3px 6px;background:var(--bg);border:1px solid var(--line);border-radius:5px;color:var(--fg);font:inherit;font-size:12px}.annotate-taginput:focus{outline:none;border-color:var(--dim)}.annotate-typeahead{flex-basis:100%;min-width:0;position:relative}.annotate-typeahead .annotate-taginput{width:100%;box-sizing:border-box}.annotate-suggest{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;max-height:132px;overflow-y:auto}.tagtip-anchor{display:inline-flex}.tagtip{position:fixed;z-index:1100;max-width:320px;display:flex;flex-direction:column;gap:2px;padding:5px 8px;border-radius:5px;color:#fff;font-size:11px;line-height:1.35;box-shadow:0 2px 8px #00000059;pointer-events:none;overflow-wrap:anywhere}.tagtip-path{font-weight:600}.tagtip-value{opacity:.92}.pdf-page{position:relative}.pdf-placeholder{background:#fff;opacity:.06}.pdf-sizer{position:relative}.pdf-content{position:absolute;top:0;left:0}.pdf-marquee,.djvu-marquee{position:absolute;inset:0;z-index:3;cursor:crosshair;user-select:none}.pdf-region,.djvu-region{position:absolute;box-sizing:border-box;z-index:4;border:2px solid #f9e2af;background:#f9e2af2e;pointer-events:none}.pdf-region.editable,.djvu-region.editable{pointer-events:auto;cursor:pointer}mark.yo-annotation{background-color:#f9e2af4d;color:inherit;border-bottom:2px solid #f9e2af;border-radius:2px;cursor:help}.fileimagemap,.fileimagemap.leaflet-container{background:var(--bg)}.yo-selectable.leaflet-container{cursor:crosshair}.leaflet-interactive.yo-region{cursor:pointer}.map-popup-desc{margin-top:4px;max-height:200px;overflow:auto}.office-fallback{max-width:60ch;line-height:1.55;color:var(--fg)}.office-fallback a.descend{color:var(--accent)}.fb2-body{font-family:var(--mono, monospace)}.fb2-cover{max-width:320px;max-height:60vh;display:block;margin:0 0 18px;box-shadow:0 1px 8px #00000080}.fb2-body .fb2-title{font-size:17px;font-weight:700;color:var(--fg);margin:22px 0 10px}.fb2-body .fb2-subtitle{font-weight:600;margin:14px 0 8px}.fb2-body .fb2-cite{font-style:italic}.fb2-body .fb2-poem{margin:12px 0;padding-left:16px;font-style:italic}.fb2-body .fb2-stanza{margin:8px 0}.fb2-body .fb2-text-author{text-align:right;color:var(--dim);font-style:italic}.fb2-body .fb2-img{max-width:100%;display:block;margin:12px 0}.epub-body img{max-width:100%;height:auto}.epub-body .epub-doc+.epub-doc{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.dirhead{padding:14px 8px 0}.dirview{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;padding:12px 8px}.dirview-item{display:flex;align-items:center;gap:8px;width:210px;padding:5px 8px;border-radius:6px;color:var(--fg);text-decoration:none;border-bottom:0;cursor:pointer}.dirview-item:hover{background:var(--panel)}.dirview-item:focus{outline:none;background:var(--panel);box-shadow:0 0 0 2px var(--accent) inset}.dirview-icon{flex:none;width:22px;text-align:center}.dirview-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.dirview-label .val{color:var(--dim)}.dirview-up{border:1px dashed var(--line);color:var(--dim)}.dirview-up:hover{border-color:var(--accent)}.dirview-empty{color:var(--dim);font-style:italic}.dirview.dirview-lg{gap:10px}.dirview-lg .dirview-item{flex-direction:column;justify-content:flex-start;width:120px;padding:10px 6px 8px;gap:7px;text-align:center}.dirview-lg .dirview-icon{width:auto;font-size:36px;line-height:1}.dirview-lg .dirview-icon.binsq{font-size:11px;padding:6px 5px;margin:9px 0}.dirview-lg .dirview-thumb{width:84px;height:84px;object-fit:contain;border-radius:4px;background:var(--panel);box-shadow:0 0 0 1px var(--line)}.dirview-lg.dirview-thumbs .dirview-item{width:300px;padding:12px 8px 10px}.dirview-lg.dirview-thumbs .dirview-thumb{width:280px;height:280px}.dirview-lg.dirview-thumbs .dirview-icon{font-size:72px}.dirview-lg .dirview-label{max-width:100%;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tagtag{position:relative;display:inline-block;color:#fff;font-size:11px;line-height:1.45;padding:1px 9px 1px 17px;text-decoration:none;border-bottom:0;cursor:pointer;white-space:nowrap;clip-path:polygon(11px 0,100% 0,100% 100%,11px 100%,0 50%)}.tagtag:before{content:"";position:absolute;left:4px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;background:var(--bg)}.tagtag:hover{filter:brightness(1.18)}.tagswatch{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:middle;box-sizing:border-box;border:1px solid rgba(255,255,255,.25);cursor:pointer}.tagswatch:hover{filter:brightness(1.18)}.tagdesc{text-align:left;color:var(--dim);font-style:italic;margin:8px 0 0}.board{display:flex;gap:12px;align-items:flex-start;width:100%;overflow-x:auto;padding:8px 4px 16px}.board-error{color:var(--null);padding:12px}.board-col{flex:1 1 0;min-width:180px;background:var(--bg-alt);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;max-height:calc(100vh - 160px)}.board-col-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-top:2px solid var(--line);border-radius:8px 8px 0 0;font-weight:600}.board-col-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.board-col-title{flex:1 1 auto;text-transform:capitalize}.board-col-count{color:var(--dim);font-size:.85em}.board-col-body{display:flex;flex-direction:column;padding:8px;overflow-y:auto}.board-group{border-radius:6px;padding:2px;min-height:40px}.board-group-split{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}.board-group-over{background:color-mix(in srgb,var(--accent) 16%,transparent);outline:1px solid var(--accent)}.board-group-next{outline:1px dashed var(--string)}.board-group-head{display:flex;align-items:center;gap:6px;padding:2px 4px 6px;font-size:.85em;color:var(--dim)}.board-group-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.board-group-title{flex:1 1 auto;text-transform:capitalize}.board-group-cards{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px}.board-card{flex:0 1 200px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:6px;padding:8px 10px;cursor:grab}.board-card:hover{border-color:var(--accent)}.board-card:active{cursor:grabbing}.board-card-negative{opacity:.6}.board-card-negative .board-card-title{text-decoration:line-through}.board-card-title{color:var(--fg);margin-bottom:6px;line-height:1.3}.board-card-meta{display:flex;flex-wrap:wrap;gap:4px}.board-chip{font-size:.78em;padding:1px 6px;border-radius:10px;background:var(--line);color:var(--fg)}.board-assignee{color:var(--key)}.board-due{color:var(--number)}.board-estimate{color:var(--dim)}.prio-urgent{background:var(--null);color:var(--bg)}.prio-high{background:var(--number);color:var(--bg)}.prio-normal{background:var(--line)}.prio-low{background:transparent;color:var(--dim);border:1px solid var(--line)}.task-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px}.task-state{font-weight:600;padding:2px 10px;border-radius:12px;color:var(--bg);text-transform:capitalize}.task-advance{background:none;color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:1px 8px;cursor:pointer;font:inherit;font-size:.85em}.task-advance:hover{background:var(--sel)}.task-description{color:var(--dim);font-style:italic;margin:0 0 12px}.board-col-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px;flex:1 1 auto}.board-lane-add,.board-lane-del{background:none;border:none;cursor:pointer;color:inherit;font:inherit;padding:0;line-height:1}.board-lane-add{color:var(--dim);border:1px dashed var(--line);border-radius:10px;padding:0 5px}.board-lane-add:hover{color:var(--fg);border-color:var(--accent)}.board-lane-del{color:var(--dim);font-size:.85em;flex:0 0 auto;opacity:.5}.board-lane-del:hover{opacity:1}.board-add-lane{flex:0 0 auto;align-self:flex-start;background:none;border:1px dashed var(--line);border-radius:8px;color:var(--dim);cursor:pointer;font:inherit;padding:8px 12px;margin-top:2px}.board-add-lane:hover{color:var(--fg);border-color:var(--accent)}.detailsview{padding:4px 2px 16px;overflow-x:auto}table.details{width:100%;border-collapse:collapse;font-size:.95em}table.details th{text-align:left;color:var(--dim);font-weight:600;padding:4px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg)}.details-row{cursor:pointer;border-bottom:1px solid var(--bg-alt)}.details-row:hover{background:var(--bg-alt)}table.details td{padding:4px 10px;vertical-align:middle}td.details-name{display:flex;align-items:center;gap:7px}.details-icon{flex:0 0 auto}.details-label{color:var(--fg)}td.details-kind{color:var(--dim)}td.details-tags{display:flex;flex-wrap:wrap;gap:3px}td.details-size{color:var(--dim);white-space:nowrap;text-align:right}.details-empty{color:var(--dim);font-style:italic;padding:12px}
|
|
1
|
+
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.47"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--bg: #1e1e2e;--bg-alt: #181825;--panel: #24273a;--line: #363a4f;--fg: #cad3f5;--dim: #8087a2;--accent: #8aadf4;--key: #91d7e3;--string: #a6da95;--number: #f5a97f;--bool: #c6a0f6;--null: #ed8796;--sel: #363a4f;--font: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--jb-key: #9876aa;--jb-string: #6a8759;--jb-number: #6897bb;--jb-keyword: #cc7832;--jb-comment: #808080;--jb-punct: #a9b7c6;--jb-dash: #808080}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:16px;padding:8px 14px;background:var(--bg-alt);border-bottom:1px solid var(--line);flex:0 0 auto}.crumbs{display:flex;align-items:center;flex-wrap:wrap;min-height:1.3em}.crumb{color:var(--fg);text-decoration:none}.crumb:hover{color:var(--accent);text-decoration:underline}.crumb-sep{color:var(--dim);margin:0 6px}.crumb-action{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:8px;padding:0;background:none;border:none;border-radius:4px;color:var(--dim);font-size:15px;line-height:1;cursor:pointer;flex:0 0 auto}.crumb-action:hover:not(:disabled){color:var(--accent);background:var(--bg)}.crumb-action:disabled{opacity:.5;cursor:default}.crumb-settings{width:28px;height:28px;font-size:20px;color:var(--fg);transition:color .15s,background .15s,transform .2s ease}.crumb-settings:hover:not(:disabled){transform:rotate(45deg)}.task-strip{margin-left:auto;display:flex;align-items:center;gap:12px;min-width:0}.task-chip{display:inline-flex;flex-direction:column;gap:3px;max-width:320px;font-size:12px;color:var(--dim)}.task-chip.error{color:var(--null)}.task-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-counts{color:var(--fg)}.task-bar{display:block;height:3px;border-radius:2px;background:var(--line);overflow:hidden;position:relative}.task-bar-fill{display:block;height:100%;background:var(--accent);transition:width .2s ease}.task-chip.done .task-bar-fill{background:var(--string)}.task-chip.error .task-bar-fill{background:var(--null);width:100%}.task-bar-fill.indeterminate{width:40%;position:absolute;animation:task-sweep 1.2s ease-in-out infinite}@keyframes task-sweep{0%{left:-40%}to{left:100%}}.body{display:flex;flex:1 1 auto;min-height:0}.pane{height:100%;overflow:auto}.left{flex:0 0 auto;background:var(--panel);border-right:1px solid var(--line);padding:8px 0}.right{flex:1 1 auto;padding:14px 18px}.right:focus{outline:none}.splitter{flex:0 0 5px;cursor:col-resize;background:var(--line)}.splitter:hover{background:var(--accent)}.tree-row{display:flex;align-items:center;gap:4px;padding:1px 8px 1px 0;white-space:nowrap}.tree-row.selected{background:var(--sel)}.tree-label{cursor:pointer}.tree-label:hover{color:var(--accent)}.icon{display:inline-block;width:1.6em;text-align:center;flex:0 0 auto;font-size:12px}.t-struct{color:var(--key)}.t-str{color:var(--string)}.t-num{color:var(--number)}.t-bool{color:var(--bool)}.t-null{color:var(--null)}.t-bin,.t-fmt{color:var(--dim)}.icon.binsq,.dirview-icon.binsq{width:auto;font-family:var(--mono, monospace);font-size:6px;font-weight:700;line-height:1;border:1px solid currentColor;border-radius:2px;padding:2px}.dirview-icon.binsq{flex:none;margin:0 2px}.toggle{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;color:var(--dim);cursor:pointer;padding:0;flex:0 0 auto}.toggle .chevron{font-size:20px;font-weight:700;line-height:1;transition:transform .12s ease}.toggle.open .chevron{transform:rotate(90deg)}.toggle.loading{opacity:.4}.toggle:hover{color:var(--accent)}.toggle.leaf{cursor:default}.nodehead{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px 12px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px;position:sticky;top:-14px;background:var(--bg);z-index:2;padding-top:14px;margin-top:-14px}.bar-sep{color:var(--dim);opacity:.5;user-select:none}.markup-width{width:5ch;background:var(--bg-alt);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:2px 4px;font:inherit;font-family:var(--font);font-size:12px;text-align:right}.markup-width.invalid{border-color:#f38ba8;color:#f38ba8}.depth-control{width:3ch;background:var(--bg-alt);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:2px 4px;font:inherit;font-family:var(--font);font-size:12px;text-align:right}.depth-control.invalid{border-color:#f38ba8;color:#f38ba8}.nodemeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nodepath{color:var(--accent)}.tag{font-size:11px;padding:1px 7px;border:1px solid var(--line);border-radius:10px;color:var(--fg)}.tag.dim{color:var(--dim)}.nodedesc{color:var(--dim);margin:0 0 12px;font-style:italic}.tabs{display:flex;gap:4px}.tab{background:none;border:1px solid var(--line);color:var(--dim);padding:2px 10px;border-radius:4px;cursor:pointer;font-family:var(--font);font-size:12px}.tab.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.code{white-space:pre;overflow-x:auto;line-height:1.55;font-family:var(--font);position:relative;padding-left:22px;margin:0 0 0 -14px}.code.raw{color:var(--fg)}.k{color:var(--jb-key)}.s{color:var(--jb-string)}.n{color:var(--jb-number)}.b,.null{color:var(--jb-keyword)}.punct{color:var(--jb-punct)}.c{color:var(--jb-comment);font-style:italic}.descend{color:var(--accent);text-decoration:none;border-bottom:1px dashed var(--accent);cursor:pointer}.descend:hover{background:var(--sel)}.extlink{color:var(--accent);text-decoration:underline;cursor:pointer}.extlink:hover{background:var(--sel)}.fold-gutter{margin-left:-20px;vertical-align:top;user-select:none}.fold-summary{color:var(--dim);cursor:default}.yaml-dash{display:inline-block;transform:scale(1.55);transform-origin:left center;font-weight:700;color:var(--jb-dash)}.reldiv{border:none;border-top:1px solid var(--line);margin:8px 0 8px -8px}.chapter{line-height:1.65;max-width:70ch}.chapter-title{font-size:22px;font-weight:700;margin:0 0 4px;color:var(--fg)}.chapter-subtitle{margin:0 0 18px;color:var(--dim);font-style:italic}.chapter-prose{margin:0 0 14px;white-space:pre-wrap;word-break:break-word}.chapter-link{font-size:15px;font-weight:600;margin:18px 0 8px}.chapter-link a{border-bottom-width:0}.chunk{display:flex;gap:12px;align-items:flex-start;scroll-margin-top:12px}a.chunk-index{text-decoration:none}.chunk-index{flex:0 0 auto;min-width:2.2em;text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:var(--dim);user-select:none;border-bottom-width:0}a.chunk-index:hover{color:var(--accent)}.chunk-body{flex:1 1 auto;min-width:0}.chunk-body .filemedia{padding-top:0}.chunk-body .filehtml{height:340px}.chunk-body .filepdf{height:auto;max-height:460px;overflow:auto}.error{color:var(--null);padding:12px}.loading{color:var(--dim);padding:12px}.settings-view{padding:16px;max-width:820px;color:var(--fg)}.settings-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.settings-title{color:var(--accent);font-weight:600}.settings-path{color:var(--dim);font-size:.85em}.settings-dim{color:var(--dim)}.settings-summary{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0 0 16px}.settings-summary dt{color:var(--key)}.settings-summary dd{margin:0}.settings-chip{display:inline-block;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 6px;margin:0 4px 4px 0;color:var(--string)}.settings-raw-label{display:block;color:var(--dim);font-size:.85em;margin-bottom:4px}.settings-raw{width:100%;min-height:320px;resize:vertical;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:8px;font-family:var(--font);font-size:.9em;white-space:pre}.settings-error{margin-top:10px;color:var(--null);white-space:pre-wrap}.settings-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.settings-save{background:var(--accent);color:var(--bg);border:none;border-radius:4px;padding:4px 14px;cursor:pointer;font-family:var(--font)}.settings-save:disabled{opacity:.5;cursor:default}.drop-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#1818258c;border:3px dashed var(--accent);color:var(--fg);font-size:18px;letter-spacing:.02em}.paste-toast{position:fixed;bottom:16px;right:16px;z-index:1000;padding:8px 14px;background:var(--panel);color:var(--fg);border:1px solid var(--accent);border-radius:6px;font-size:13px;box-shadow:0 4px 16px #0006}.filemedia{padding:12px 0;overflow:auto;max-width:900px}.filepdf,.filedjvu{padding:12px;overflow:auto;height:calc(100vh - 160px);min-height:360px}.filepdf:focus,.filedjvu:focus{outline:none}.fileimage{max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;display:block;margin:0 0 12px;background:#fff}.fileimage.plantuml{max-height:none;padding:12px;border:1px solid var(--border, #313244);border-radius:6px}.filehtml{width:100%;height:calc(100vh - 120px);border:1px solid var(--border, #313244);background:#fff}.filepdf .react-pdf__Page,.djvu-page-wrap{margin:0 0 12px;box-shadow:0 1px 6px #0006}.djvu-page-wrap{position:relative}.djvu-page{display:block;width:100%;max-width:none;background:#fff}.djvu-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#fff;color:#888;font-size:12px}.djvu-textlayer{position:absolute;inset:0;z-index:2;overflow:hidden;line-height:1}.djvu-textlayer span{position:absolute;color:transparent;white-space:pre;transform-origin:0 0;cursor:text}.markup{line-height:1.55;word-break:break-word;max-width:72ch;padding-left:1.6rem}.markup :first-child{margin-top:0}.markup h1,.markup h2,.markup h3{color:var(--fg);margin:18px 0 8px}.markup :is(h1,h2,h3,h4,h5,h6){position:relative;scroll-margin-top:12px}.markup a{color:var(--accent)}.markup .header-anchor{position:absolute;left:-1.6rem;width:1.6rem;box-sizing:border-box;padding-right:.45rem;text-align:right;font-size:12px;font-weight:400;line-height:inherit;color:var(--dim);text-decoration:none;user-select:none}.markup :is(h1,h2,h3,h4,h5,h6):hover .header-anchor,.markup .header-anchor:hover{color:var(--accent)}.markup code{font-family:var(--mono, monospace);background:var(--bg-alt);padding:1px 4px;border-radius:3px}.markup pre{background:var(--bg-alt);padding:10px;border-radius:4px;overflow:auto}.markup pre code{background:none;padding:0}.markup img{max-width:100%}.markup blockquote{border-left:3px solid var(--border, #313244);margin:10px 0;padding-left:12px;color:var(--dim)}.csv-toolbar{display:inline-flex;gap:12px;align-items:center;color:var(--dim);font-size:12px}.plaintext{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font);font-size:13px;line-height:1.55;color:var(--fg)}.enc-control{display:inline-flex;align-items:center;gap:4px;color:var(--dim);font-size:12px}.enc-control select{background:var(--bg-alt);color:var(--fg);border:1px solid var(--border, #313244);border-radius:4px;padding:2px 4px;font:inherit;font-family:var(--font)}.csv-toolbar label{display:inline-flex;align-items:center;gap:4px}.csv-toolbar select{background:var(--bg-alt);color:var(--fg);border:1px solid var(--border, #313244);border-radius:4px;padding:2px 4px;font:inherit;font-family:var(--font)}.csv-scroll{overflow:auto;max-width:100%}.csv-table{border-collapse:collapse;font-size:13px}.csv-table th,.csv-table td{border:1px solid var(--border, #313244);padding:3px 8px;text-align:left;vertical-align:top;white-space:pre-wrap}.csv-table thead th{position:sticky;top:0;background:var(--bg-alt);color:var(--fg);font-weight:600}.csv-table tbody tr:nth-child(2n){background:#ffffff06}.csv-empty{color:var(--dim)}.sheet-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 12px}.sheet-tab{background:var(--bg-alt);color:var(--dim);border:1px solid var(--border, #313244);border-radius:4px;padding:2px 10px;font:inherit;font-family:var(--font);font-size:12px;cursor:pointer}.sheet-tab.active{color:var(--fg);border-color:var(--accent)}.sheet-tab:hover{color:var(--fg)}.filemap{width:100%;height:calc(100vh - 160px);min-height:360px;border:1px solid var(--border, #313244);border-radius:6px}.chunk-body .filemap.chunk-map{height:380px}.annotate-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.annotate-count{color:var(--dim);font-size:12px}.annotate-menu{position:fixed;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:5px 7px;max-width:280px;background:var(--bg-alt);border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 14px #0000004d}.annotate-palette{display:flex;gap:4px}.annotate-swatch{width:18px;height:18px;padding:0;border-radius:50%;border:2px solid var(--tag);background:transparent;box-sizing:border-box;cursor:pointer}.annotate-swatch.on{background:var(--tag)}.annotate-tool{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;background:var(--bg);border:1px solid var(--line);color:var(--fg);font:inherit;font-size:15px;line-height:1;padding:0 6px;border-radius:5px;cursor:pointer}.annotate-tool:hover{border-color:var(--dim)}.annotate-tool.ok{color:#a6e3a1;border-color:#a6e3a180}.annotate-tool.ok:hover{background:#a6e3a12e;border-color:#a6e3a1}.annotate-tool.danger{color:#f38ba8;border-color:#f38ba880}.annotate-tool.danger:hover{background:#f38ba82e;border-color:#f38ba8}.annotate-recents{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px}.annotate-recents .tagframe,.annotate-suggest .tagframe{display:inline-flex}.annotate-recents .tagtag,.annotate-suggest .tagtag,.board-col-tags .tagtag{border:0;font:inherit;font-size:11px;cursor:pointer;position:relative;background:var(--tag);color:var(--tag)}.annotate-recents .tagtag:before,.annotate-suggest .tagtag:before,.board-col-tags .tagtag:before{display:block;background:var(--bg-alt);z-index:2}.annotate-recents .tagtag:after,.annotate-suggest .tagtag:after,.board-col-tags .tagtag:after{content:"";position:absolute;inset:1.5px;clip-path:polygon(11px 0,100% 0,100% 100%,11px 100%,0 50%);background:var(--bg-alt);z-index:0}.annotate-recents .tagtag .tt-label,.annotate-suggest .tagtag .tt-label,.board-col-tags .tagtag .tt-label{position:relative;z-index:1}.annotate-recents .tagtag.on,.annotate-suggest .tagtag.on,.board-col-tags .tagtag.on{color:#fff}.annotate-recents .tagtag.on:after,.annotate-suggest .tagtag.on:after,.board-col-tags .tagtag.on:after{background:var(--tag)}.annotate-suggest .tagtag.hi{background:var(--fg)}.annotate-taginput{flex-basis:100%;min-width:0;padding:3px 6px;background:var(--bg);border:1px solid var(--line);border-radius:5px;color:var(--fg);font:inherit;font-size:12px}.annotate-taginput:focus{outline:none;border-color:var(--dim)}.annotate-typeahead{flex-basis:100%;min-width:0;position:relative}.annotate-typeahead .annotate-taginput{width:100%;box-sizing:border-box}.annotate-suggest{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;max-height:132px;overflow-y:auto}.tagtip-anchor{display:inline-flex}.tagtip{position:fixed;z-index:1100;max-width:320px;display:flex;flex-direction:column;gap:2px;padding:5px 8px;border-radius:5px;color:#fff;font-size:11px;line-height:1.35;box-shadow:0 2px 8px #00000059;pointer-events:none;overflow-wrap:anywhere}.tagtip-path{font-weight:600}.tagtip-value{opacity:.92}.pdf-page{position:relative}.pdf-placeholder{background:#fff;opacity:.06}.pdf-sizer{position:relative}.pdf-content{position:absolute;top:0;left:0}.pdf-marquee,.djvu-marquee{position:absolute;inset:0;z-index:3;cursor:crosshair;user-select:none}.pdf-region,.djvu-region{position:absolute;box-sizing:border-box;z-index:4;border:2px solid #f9e2af;background:#f9e2af2e;pointer-events:none}.pdf-region.editable,.djvu-region.editable{pointer-events:auto;cursor:pointer}mark.yo-annotation{background-color:#f9e2af4d;color:inherit;border-bottom:2px solid #f9e2af;border-radius:2px;cursor:help}.fileimagemap,.fileimagemap.leaflet-container{background:var(--bg)}.yo-selectable.leaflet-container{cursor:crosshair}.leaflet-interactive.yo-region{cursor:pointer}.map-popup-desc{margin-top:4px;max-height:200px;overflow:auto}.office-fallback{max-width:60ch;line-height:1.55;color:var(--fg)}.office-fallback a.descend{color:var(--accent)}.fb2-body{font-family:var(--mono, monospace)}.fb2-cover{max-width:320px;max-height:60vh;display:block;margin:0 0 18px;box-shadow:0 1px 8px #00000080}.fb2-body .fb2-title{font-size:17px;font-weight:700;color:var(--fg);margin:22px 0 10px}.fb2-body .fb2-subtitle{font-weight:600;margin:14px 0 8px}.fb2-body .fb2-cite{font-style:italic}.fb2-body .fb2-poem{margin:12px 0;padding-left:16px;font-style:italic}.fb2-body .fb2-stanza{margin:8px 0}.fb2-body .fb2-text-author{text-align:right;color:var(--dim);font-style:italic}.fb2-body .fb2-img{max-width:100%;display:block;margin:12px 0}.epub-body img{max-width:100%;height:auto}.epub-body .epub-doc+.epub-doc{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.dirhead{padding:14px 8px 0}.dirview{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;padding:12px 8px}.dirview-item{display:flex;align-items:center;gap:8px;width:210px;padding:5px 8px;border-radius:6px;color:var(--fg);text-decoration:none;border-bottom:0;cursor:pointer}.dirview-item:hover{background:var(--panel)}.dirview-item:focus{outline:none;background:var(--panel);box-shadow:0 0 0 2px var(--accent) inset}.dirview-icon{flex:none;width:22px;text-align:center}.dirview-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.dirview-label .val{color:var(--dim)}.dirview-up{border:1px dashed var(--line);color:var(--dim)}.dirview-up:hover{border-color:var(--accent)}.dirview-empty{color:var(--dim);font-style:italic}.dirview.dirview-lg{gap:10px}.dirview-lg .dirview-item{flex-direction:column;justify-content:flex-start;width:120px;padding:10px 6px 8px;gap:7px;text-align:center}.dirview-lg .dirview-icon{width:auto;font-size:36px;line-height:1}.dirview-lg .dirview-icon.binsq{font-size:11px;padding:6px 5px;margin:9px 0}.dirview-lg .dirview-thumb{width:84px;height:84px;object-fit:contain;border-radius:4px;background:var(--panel);box-shadow:0 0 0 1px var(--line)}.dirview-lg.dirview-thumbs .dirview-item{width:300px;padding:12px 8px 10px}.dirview-lg.dirview-thumbs .dirview-thumb{width:280px;height:280px}.dirview-lg.dirview-thumbs .dirview-icon{font-size:72px}.dirview-lg .dirview-label{max-width:100%;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tagtag{position:relative;display:inline-block;color:#fff;font-size:11px;line-height:1.45;padding:1px 9px 1px 17px;text-decoration:none;border-bottom:0;cursor:pointer;white-space:nowrap;clip-path:polygon(11px 0,100% 0,100% 100%,11px 100%,0 50%)}.tagtag:before{content:"";position:absolute;left:4px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;background:var(--bg)}.tagtag:hover{filter:brightness(1.18)}.tagswatch{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:middle;box-sizing:border-box;border:1px solid rgba(255,255,255,.25);cursor:pointer}.tagswatch:hover{filter:brightness(1.18)}.tagdesc{text-align:left;color:var(--dim);font-style:italic;margin:8px 0 0}.board{display:flex;gap:12px;align-items:flex-start;width:100%;overflow-x:auto;padding:8px 4px 16px}.board-error{color:var(--null);padding:12px}.board-col{flex:1 1 0;min-width:180px;background:var(--bg-alt);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;max-height:calc(100vh - 160px)}.board-col-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-top:2px solid var(--line);border-radius:8px 8px 0 0;font-weight:600}.board-col-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.board-col-title{flex:1 1 auto;text-transform:capitalize}.board-col-count{color:var(--dim);font-size:.85em}.board-col-body{display:flex;flex-direction:column;padding:8px;overflow-y:auto}.board-group{border-radius:6px;padding:2px;min-height:40px}.board-group-split{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}.board-group-over{background:color-mix(in srgb,var(--accent) 16%,transparent);outline:1px solid var(--accent)}.board-group-next{outline:1px dashed var(--string)}.board-group-head{display:flex;align-items:center;gap:6px;padding:2px 4px 6px;font-size:.85em;color:var(--dim)}.board-group-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.board-group-title{flex:1 1 auto;text-transform:capitalize}.board-group-cards{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px}.board-card{flex:0 1 200px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:6px;padding:8px 10px;cursor:grab}.board-card:hover{border-color:var(--accent)}.board-card:active{cursor:grabbing}.board-card-negative{opacity:.6}.board-card-negative .board-card-title{text-decoration:line-through}.board-card-title{color:var(--fg);margin-bottom:6px;line-height:1.3}.board-card-meta{display:flex;flex-wrap:wrap;gap:4px}.board-chip{font-size:.78em;padding:1px 6px;border-radius:10px;background:var(--line);color:var(--fg)}.board-assignee{color:var(--key)}.board-due{color:var(--number)}.board-estimate{color:var(--dim)}.prio-urgent{background:var(--null);color:var(--bg)}.prio-high{background:var(--number);color:var(--bg)}.prio-normal{background:var(--line)}.prio-low{background:transparent;color:var(--dim);border:1px solid var(--line)}.task-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px}.task-state{font-weight:600;padding:2px 10px;border-radius:12px;color:var(--bg);text-transform:capitalize}.task-advance{background:none;color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:1px 8px;cursor:pointer;font:inherit;font-size:.85em}.task-advance:hover{background:var(--sel)}.task-description{color:var(--dim);font-style:italic;margin:0 0 12px}.board-col-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px;flex:1 1 auto}.board-lane-add,.board-lane-del{background:none;border:none;cursor:pointer;color:inherit;font:inherit;padding:0;line-height:1}.board-lane-add{color:var(--dim);border:1px dashed var(--line);border-radius:10px;padding:0 5px}.board-lane-add:hover{color:var(--fg);border-color:var(--accent)}.board-lane-del{color:var(--dim);font-size:.85em;flex:0 0 auto;opacity:.5}.board-lane-del:hover{opacity:1}.board-add-lane{flex:0 0 auto;align-self:flex-start;background:none;border:1px dashed var(--line);border-radius:8px;color:var(--dim);cursor:pointer;font:inherit;padding:8px 12px;margin-top:2px}.board-add-lane:hover{color:var(--fg);border-color:var(--accent)}.detailsview{padding:4px 2px 16px;overflow-x:auto}table.details{width:100%;border-collapse:collapse;font-size:.95em}table.details th{text-align:left;color:var(--dim);font-weight:600;padding:4px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg)}.details-row{cursor:pointer;border-bottom:1px solid var(--bg-alt)}.details-row:hover{background:var(--bg-alt)}table.details td{padding:4px 10px;vertical-align:middle}td.details-name{display:flex;align-items:center;gap:7px}.details-icon{flex:0 0 auto}.details-label{color:var(--fg)}td.details-kind{color:var(--dim)}td.details-tags{display:flex;flex-wrap:wrap;gap:3px}td.details-size{color:var(--dim);white-space:nowrap;text-align:right}.details-empty{color:var(--dim);font-style:italic;padding:12px}
|