yamlover 0.3.48 → 0.3.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -18
- package/bin/ga4.js +77 -0
- package/bin/yamlover.js +56 -18
- package/dist/agent-docs/AGENTS.md +86 -51
- package/dist/agent-docs/CLAUDE.md +1 -1
- package/dist/builtin-taxonomy/$defs/board +1 -1
- package/dist/builtin-taxonomy/$defs/bullets +1 -1
- package/dist/builtin-taxonomy/$defs/chapter +4 -4
- package/dist/builtin-taxonomy/$defs/chunk +1 -1
- package/dist/builtin-taxonomy/$defs/config +1 -1
- package/dist/builtin-taxonomy/$defs/numbered +1 -1
- package/dist/builtin-taxonomy/$defs/table +2 -2
- package/dist/builtin-taxonomy/tags/{.yamlover/body.yamlover → .yo/body.yo} +1 -1
- package/dist/client/assets/{decoded-Dfxf1BRR.js → decoded-D_YQdg1-.js} +1 -1
- package/dist/client/assets/djvu-Di4fPA-J.js +1 -0
- package/dist/client/assets/{docx-aCX_2O0_.js → docx-BSduN32X.js} +1 -1
- package/dist/client/assets/{heic-8pzTwsCx.js → heic-DOAG7EsW.js} +1 -1
- package/dist/client/assets/{imagemap-Bp26n33x.js → imagemap-B8RthxNE.js} +1 -1
- package/dist/client/assets/index-Bf2L7I9e.js +752 -0
- package/dist/client/assets/index-N41EyNG2.css +1 -0
- package/dist/client/assets/{map-Dtw0_sOf.js → map-Cf7ar1_U.js} +1 -1
- package/dist/client/assets/openable-CCBlc-Ws.js +4 -0
- package/dist/client/assets/{paged-BGVPKMC7.js → paged-bLurvatj.js} +1 -1
- package/dist/client/assets/{pdf-eI1AsxuB.js → pdf-D1ox8M9A.js} +2 -2
- package/dist/client/assets/{psd-BD_hUWIy.js → psd-AT50x-YR.js} +1 -1
- package/dist/client/assets/{spreadsheet-D_yjjR8a.js → spreadsheet-DeQh5CNF.js} +1 -1
- package/dist/client/assets/{tiff-BewNDYwu.js → tiff-B3-awhzQ.js} +1 -1
- package/dist/client/assets/xyflow-BnuhLJ6X.css +1 -0
- package/dist/client/assets/xyflow-DuQ4jjaq.js +23 -0
- package/dist/client/index.html +6 -2
- package/dist/client/yo-favicon.svg +16 -0
- package/dist/server.js +1862 -1018
- package/package.json +11 -4
- package/dist/client/assets/djvu-BAFaxONw.js +0 -1
- package/dist/client/assets/index-BohJjyVY.css +0 -1
- package/dist/client/assets/index-DXrtwPKE.js +0 -754
- package/dist/client/assets/openable-Banncb36.js +0 -4
- /package/dist/builtin-taxonomy/$defs/{.yamlover/meta.yamlover → .yo/meta.yo} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(./KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(./KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(./KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(./KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(./KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(./KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(./KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(./KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(./KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(./KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(./KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(./KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(./KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(./KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(./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(./KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(./KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(./KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(./KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(./KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(./KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(./KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(./KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(./KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(./KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(./KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(./KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(./KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(./KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(./KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(./KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(./KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(./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(./KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(./KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(./KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(./KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(./KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(./KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(./KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(./KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(./KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(./KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(./KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(./KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(./KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(./KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(./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(./KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(./KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(./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(./KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(./KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(./KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(./KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(./KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(./KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(./KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(./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}.y2-editor{font-family:var(--font, ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace);line-height:1.55;tab-size:36}.y2-cell{position:relative;display:inline-block;vertical-align:top}.y2-cell>.y2-tag{display:none}.y2-debug .y2-cell{border:1px solid #d0d7de;border-radius:3px;padding:6px 4px 2px;margin:2px;background:#fff}.y2-debug .y2-cell>.y2-tag{display:block;position:absolute;top:-1px;left:2px;font-size:8px;line-height:1;color:#8250df99;user-select:none}.y2-active{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent, #0969da) 30%,transparent)}.y2-debug .y2-active{border-color:#0969da}.y2-refused{box-shadow:0 0 0 1px color-mix(in srgb,var(--danger, #cf222e) 45%,transparent);animation:y2ring .3s}.y2-debug .y2-refused{border-color:#cf222e}.y2-plain .y2-panels{display:none}.y2-plain .y2-layout,.y2-layout.y2-plain{grid-template-columns:1fr}.y2-mode{margin-left:auto;display:flex;gap:4px;align-items:center}@keyframes y2ring{50%{box-shadow:0 0 0 3px var(--danger, #cf222e)}}.y2-input{font:inherit;color:inherit;background:transparent;border:none;outline:none;min-width:1ch}.y2-k{color:var(--jb-key, #660e7a);white-space:pre}.y2-v{color:inherit;outline:none;white-space:pre}.y2-cell.y2-s{color:var(--jb-string, #067d17)}.y2-cell.y2-n{color:var(--jb-number, #1750eb)}.y2-cell.y2-b,.y2-cell.y2-null{color:var(--jb-keyword, #0033b3)}.y2-cell.y2-key{color:var(--jb-key, #660e7a)}.y2-p{color:var(--accent, #1e66f5);border-bottom:1px dashed currentColor}.y2-p:focus{background:var(--sel, #ccd0da);outline:none}.y2-p.y2-pick{border-bottom:none}.y2-p.y2-pick .y2-input{color:var(--accent, #1e66f5)}.y2-portionwrap{position:relative;display:inline-block}.y2-hints{position:absolute;left:0;top:100%;z-index:30;display:flex;flex-direction:column;min-width:12em;max-height:14em;overflow-y:auto;background:var(--bg, #fff);border:1px solid var(--line, #ccc);border-radius:4px;box-shadow:0 4px 12px #0000001f;font-size:.92em}.y2-hint{display:flex;gap:1em;justify-content:space-between;padding:1px 8px;cursor:pointer;white-space:pre}.y2-hint:hover,.y2-hint.y2-hint-sel{background:var(--sel, #ccd0da)}.y2-hint-insert{color:var(--jb-key, #660e7a)}.y2-hint-detail{color:var(--dim, #8c959f)}.y2-anchor-derived{color:var(--dim, #777);opacity:.8}.y2-tail{background:none;border:1px dashed var(--line, #ccc);border-radius:4px;color:var(--dim, #777);cursor:pointer;font:inherit;line-height:1;padding:0 6px}.y2-tail:hover{color:var(--accent, #1e66f5);border-color:var(--accent, #1e66f5)}.y2-punct{color:var(--jb-punct, #24292f);white-space:pre}.y2-dash{display:inline-block;transform:scale(1.55);transform-origin:left center;font-weight:700;color:var(--jb-dash, #8c8c8c)}.y2-gapslot{font:inherit;color:var(--dim, #8c959f);background:transparent;border:none;padding:0 1px;cursor:text;user-select:none}.y2-cell.y2-gap.y2-active .y2-gapslot{color:var(--accent, #0969da);animation:y2blink 1s step-end infinite}@keyframes y2blink{50%{opacity:.2}}.y2-rows{display:flex;flex-direction:column;align-items:flex-start}.y2-row{display:flex;align-items:baseline}.y2-keyrow{align-self:stretch}.y2-headslot{opacity:.35;margin-left:2px}.y2-keyrow:hover .y2-headslot,.y2-headslot:focus{opacity:1}.y2-indent{margin-left:2ch}.y2-empty{color:var(--dim, #8c959f);font-style:italic}.y2-decor{color:var(--jb-keyword, #0033b3);user-select:none;white-space:pre}.y2-cell.y2-tag{color:var(--jb-keyword, #0033b3)}.y2-anchor-row{white-space:pre}.y2-anchor-add{cursor:text;opacity:.65}.y2-comment{color:var(--jb-comment, #8c8c8c);font-style:italic;white-space:pre;user-select:none}.y2-trail{margin-left:2ch}.y2-rowmain{min-width:36ch}.y2-blankline{min-height:1.55em}.y2-blocktext{font:inherit;color:inherit;background:transparent;border:none;outline:none;resize:none;overflow:hidden;white-space:pre;display:block;min-width:8ch;border-left:1px solid var(--line, #d0d7de);padding:0 0 0 6px;margin:0 0 0 -7px}.y2-row.y2-blockrow{align-items:flex-start}.y2-legend{display:flex;flex-wrap:wrap;gap:4px}.y2-keycap{border:1px solid #d0d7de;border-bottom-width:2px;border-radius:4px;padding:1px 7px;font-size:12px}.y2-on{color:#1f2328;background:#fff}.y2-off{color:#b1b8c0;background:#f6f8fa;border-color:#e4e8ec}.y2-alarm{background:#ffebe9;border:2px solid #cf222e}.y2-alarm h3{color:#cf222e}.y2-alarm pre{color:#cf222e;font-weight:700}.y2-add{color:#1a7f37}.y2-del{color:#cf222e}.y2-history{color:#656d76}.y2-chapter .y2-cell.y2-block{display:block}.y2-chapter .y2-cell{position:relative}.y2-plain.y2-chapter .y2-cell.y2-block.y2-active{box-shadow:none;border-left:2px solid #0969da55;margin-left:-8px;padding-left:6px}.y2-chapter .y2-input{font:inherit;color:inherit;background:transparent;border:none;outline:none;padding:0;width:auto;min-width:1ch;display:inline-block}.y2-chapter .editable:focus{box-shadow:none;background:transparent}.y2-chapter .editable:hover{background:transparent}.y2-chapter .chapter-title-text,.y2-chapter .chapter-subtitle,.y2-chapter .yl-cell{cursor:text;display:block;min-height:1em}.y2-chapter td .yl-cell,.y2-chapter th .yl-cell,.y2-chapter caption .yl-cell{display:inline-block;min-width:3ch}.y2-chapter .y2-atomslot{display:block}.y2-chapter .y2-atomslot:focus{outline:1px dotted #7f7f7f;outline-offset:2px}.y2-badge{color:#d29922;font-weight:600}.y2-chapter .chunk-tools{flex:0 0 auto;display:flex;gap:2px;opacity:0;transition:opacity .12s ease}.y2-chapter .chunk:hover>.chunk-tools,.y2-chapter .y2-cell[data-kind=chapter]:hover>.chunk-tools{opacity:.8}.y2-chapter .chunk-tool{background:none;border:none;cursor:pointer;font-size:13px;line-height:1;padding:2px 4px;border-radius:4px}.y2-chapter .chunk-source{border-left:2px solid #d0d7de55;padding-left:6px}.y2-chapter .chunk-ref .y2-dash,.y2-chapter .chunk-ref .y2-tail{display:none}.y2-chapter .yl-table-tools{display:inline-flex;gap:4px;margin-top:2px}.y2-chapter .yl-table-add{font-size:11px;color:#656d76;background:transparent;border:1px dashed #d0d7de;border-radius:4px;padding:0 6px;cursor:pointer}.y2-chapter .yl-table-add:hover{color:#0969da;border-color:#0969da}:root{color-scheme:dark;--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;--toc-merged: #1c1f2e;--toc-current: #5c5433;--font: ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--danger: #f38ba8;--ok: #a6e3a1;--warn: #f9e2af;--zebra: rgba(255, 255, 255, .025);--scrim: rgba(24, 24, 37, .55);--swatch-ring: rgba(255, 255, 255, .25);--hover-filter: brightness(1.18);--mark-mix: 30%;--jb-key: #bb89d2;--jb-string: #94c577;--jb-number: #79afd8;--jb-keyword: #e6914d;--jb-comment: #808080;--jb-punct: #a9b7c6;--jb-dash: #808080;--frag-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='6' y='6' width='12' height='12' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cg fill='%23000'%3E%3Ccircle cx='6' cy='6' r='2.2'/%3E%3Ccircle cx='18' cy='6' r='2.2'/%3E%3Ccircle cx='6' cy='18' r='2.2'/%3E%3Ccircle cx='18' cy='18' r='2.2'/%3E%3Ccircle cx='12' cy='6' r='2.2'/%3E%3Ccircle cx='12' cy='18' r='2.2'/%3E%3Ccircle cx='6' cy='12' r='2.2'/%3E%3Ccircle cx='18' cy='12' r='2.2'/%3E%3C/g%3E%3Cpath d='M12 9.3v5.4M9.3 12h5.4' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E")}:root[data-theme=light]{color-scheme:light;--bg: #f7f8fb;--bg-alt: #e6e9ef;--panel: #dce0e8;--line: #ccd0da;--fg: #000000;--dim: #5c5f77;--accent: #1e66f5;--key: #04a5e5;--string: #40a02b;--number: #fe640b;--bool: #8839ef;--null: #d20f39;--sel: #ccd0da;--toc-merged: #cfd4df;--toc-current: #f2e0a4;--danger: #d20f39;--ok: #40a02b;--warn: #df8e1d;--zebra: rgba(0, 0, 0, .04);--scrim: rgba(230, 233, 239, .65);--swatch-ring: rgba(0, 0, 0, .25);--hover-filter: brightness(.94);--tag-fill-l: .85;--tag-line-l: .45;--tag-line-c: calc(c*1.4) ;--tag-text: #000;--mark-mix: 55%;--jb-key: #660e7a;--jb-string: #067d17;--jb-number: #1750eb;--jb-keyword: #0033b3;--jb-comment: #8c8c8c;--jb-punct: #000000;--jb-dash: #8c8c8c}*{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;flex:1 1 auto;min-width:0}.crumb{color:var(--fg);text-decoration:none}.crumb-sep{color:var(--dim);margin:0 6px}.crumb-slot{position:relative;display:inline-flex;align-items:center}.crumb-cell{outline:none;border-radius:4px;min-width:6px;display:inline-block;padding:0 3px;cursor:text;transition:box-shadow .12s,background .12s;white-space:pre}.crumb-cell:hover{background:var(--hover, rgba(127, 127, 127, .06))}.crumb-cell:focus{background:var(--hover, rgba(127, 127, 127, .08));box-shadow:0 0 0 2px var(--accent)}.crumb-cell.edit-error{box-shadow:0 0 0 2px var(--danger, #e5484d)}.crumb-cell:empty:before{content:attr(data-placeholder);color:var(--dim, #777);opacity:.6}.crumbs-cells{display:contents}.crumbs-tail{flex:1 1 auto;align-self:stretch;min-width:40px;cursor:text}.crumbs-clear{background:none;border:none;color:var(--dim, #777);font-size:11px;cursor:pointer;padding:0 6px}.crumbs-clear:hover{color:var(--fg)}.crumb-dd{position:fixed;z-index:1010;min-width:260px;max-width:calc(100vw - 8px);max-height:18em;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:2px 0}.crumb-dd .tree-row{cursor:pointer;white-space:nowrap}.crumb-dd .tree-row.hi{background:var(--line)}.crumb-dd .icon.opicon{color:var(--dim, #777)}.tree-row-detail{margin-left:auto;color:var(--dim, #777);font-size:11px;padding-right:8px}.tree-row.match>.tree-label{color:var(--accent);font-weight:600}.toc-filter-note{padding:6px 12px;color:var(--dim, #777);font-size:12px}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px;min-width:0}.task-strip{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);display:flex;flex-direction:column;overflow:hidden;padding:0}.activity-bar{flex:0 0 auto;display:flex;align-items:center;gap:2px;padding:3px 6px;border-top:1px solid var(--line)}.activity-tab{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:6px;color:var(--dim);font-size:17px;line-height:1;cursor:pointer}.activity-tab:hover{color:var(--fg);background:var(--bg)}.activity-tab.active{color:var(--accent)}.activity-tab.active:before{content:"";position:absolute;left:6px;right:6px;top:-4px;height:2px;border-radius:1px;background:var(--accent)}.left-content{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 0}.side-actions{display:flex;flex-direction:column;padding:4px 0}.side-action{display:flex;align-items:center;gap:10px;width:100%;padding:7px 12px;background:none;border:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer}.side-action:hover:not(:disabled){background:var(--bg);color:var(--accent)}.side-action:disabled{opacity:.5;cursor:default}.side-action-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:20px;font-size:16px;line-height:1}.side-action-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{flex:1 1 auto;padding:14px 18px}.right:focus{outline:none}.splitter{flex:0 0 5px;position:relative;cursor:col-resize;background:var(--line)}.splitter:hover{background:var(--accent)}.splitter.collapsed{cursor:default}.splitter.collapsed:hover{background:var(--line)}.splitter-toggle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5;width:15px;height:48px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--dim);font-size:11px;line-height:1;cursor:pointer}.splitter-toggle:hover{color:var(--fg);border-color:var(--accent)}.pane.fragments{flex:0 0 auto;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column}.fragments-head{position:sticky;top:0;display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 auto}.fragments-title{font-weight:600}.fragments-count{color:var(--dim);font-size:12px}.fragments-list{list-style:none;margin:0;padding:4px 0;overflow:auto;flex:1 1 auto}.fragment-row{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-bottom:1px solid var(--line)}.fragment-main{display:flex;align-items:flex-start;gap:6px}.fragment-locate{display:block;flex:1 1 auto;min-width:0;text-align:left;padding:0;background:none;border:none;color:var(--fg);font:inherit;cursor:pointer}.fragment-delete{flex:0 0 auto;width:20px;height:20px;padding:0;background:none;border:none;border-radius:4px;color:var(--dim);font-size:12px;line-height:1;cursor:pointer}.fragment-delete:hover{color:var(--null);background:var(--bg)}.fragment-locate:hover .fragment-excerpt{color:var(--accent)}.fragment-excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--fg)}.fragment-thumb{max-width:100%;max-height:120px;border-radius:3px;border:1px solid var(--line);display:block}.fragment-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.tree-row{display:flex;align-items:center;gap:4px;padding:1px 8px 1px 0;white-space:nowrap}.tree-row.merged{background:var(--toc-merged)}.tree-row.selected{background:var(--sel)}.tree-row.frag-current{background:var(--toc-current)}.tree-label{cursor:pointer}.tree-label:hover{color:var(--accent)}.tree-value{color:var(--dim, #777);margin-left:.5em}.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}.icon.frag-icon,.dirview-icon.frag-icon{width:1.15em;height:1.15em;background-color:currentColor;-webkit-mask:center / contain no-repeat var(--frag-mask);mask:center / contain no-repeat var(--frag-mask)}.dirview-icon.frag-icon{flex:none;margin:0 3px}.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}.nodeview{padding-bottom:calc(100vh - 120px)}.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-controls{display:inline-flex;align-items:center;gap:8px}.bar-controls .markup-width:disabled,.depth-control.disabled{opacity:.35}.depth-control.disabled input{cursor:default}.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:var(--danger);color:var(--danger)}.depth-control{display:inline-flex;flex-direction:column;vertical-align:middle;width:108px}.depth-control input[type=range]{width:100%;margin:0;accent-color:var(--accent)}.depth-ticks{display:flex;justify-content:space-between;padding:0 4px;font-family:var(--font);font-size:10px;line-height:1;color:var(--muted);user-select:none}.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;align-items:center}.tab{background:none;border:1px solid var(--line);color:var(--dim);padding:2px 6px;min-width:34px;text-align:center;border-radius:0;cursor:pointer;font-family:var(--font);font-size:14px;line-height:1.3}.tab+.tab{margin-left:-1px}.tab:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}button.tab:last-of-type{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs>:not(.tab){margin-left:6px;margin-right:6px}.tab-mark{display:block;width:1.25em;height:1.25em;margin:0 auto;--yo-o: var(--accent)}.tab.active .tab-mark{--yo-o: currentColor}.tab-icon{display:block;width:1.25em;height:1.25em;margin:0 auto}.tab.active{color:var(--bg);background:var(--accent);border-color:var(--accent);position:relative;z-index:1}.tab:disabled{opacity:.4;cursor:default}.tab.offered{border-style:dashed;opacity:.7}.tab.offered:hover,.tab.offered.active{opacity:1}.code{white-space:pre;tab-size:36;overflow-x:auto;line-height:1.55;font-family:var(--font);position:relative;padding-left:22px;margin:0 0 0 -14px;padding-bottom:10px}pre.code.chapter-data{margin:0;padding:8px 12px 8px 26px;border:1px solid var(--border, rgba(127, 127, 127, .35));border-radius:6px;background:var(--bg-alt);font-size:13px;overflow-x:auto}.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)}.anchor{color:var(--jb-keyword)}.anchor.derived{opacity:.55}.ref{color:var(--accent)}.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)}.ref-local{border-bottom-style:dotted}.frag-anchor{scroll-margin-top:12px}.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:72ch;--sub-margin: 17.5px;--sub-pad: 10.5px;--sub-step: calc(var(--sub-margin) + var(--sub-pad) + 1px)}.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}.y2-input.chapter-subtitle-input{font-style:italic;color:var(--dim)}.chapter-sub{margin-left:var(--sub-margin);padding-left:var(--sub-pad);border-left:1px solid var(--line);margin-right:calc(-1 * var(--sub-step))}.chapter-sub>.chapter-title{scroll-margin-top:12px}.chapter .chapter-title{position:relative}.chapter .section-anchor{display:inline-block;width:1.6rem;margin-left:-2.15rem;margin-right:.55rem;box-sizing:border-box;text-align:right;padding-right:5.7px;font-size:12px;font-weight:400;color:var(--accent);opacity:.65;text-decoration:none;user-select:none}.chapter .chapter-title:hover .section-anchor,.chapter .section-anchor:hover{color:var(--accent);opacity:1}.chapter-link-note{font-size:12px;font-weight:400;color:var(--dim)}.fmt-group{display:inline-flex;gap:4px;margin-right:8px}.fmt-btn{min-width:30px;padding:2px 6px;border:1px solid var(--line);border-radius:4px;background:none;color:var(--dim);cursor:pointer;font-family:var(--font);font-size:14px}.fmt-btn:hover:not(:disabled){color:var(--fg);border-color:var(--fg)}.fmt-btn.active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.fmt-btn:disabled{opacity:.4;cursor:default}.chunk-inline .chapter-prose{display:inline;margin:0}.chapter-readonly-block{color:var(--dim);font-style:italic}.chapter-prose{margin:0 0 14px;white-space:pre-wrap;word-break:break-word}.chapter-prose.editable{min-height:1.5em}.chapter-prose code{font-family:var(--font);font-size:.92em;background:var(--bg-alt);border:1px solid var(--border, rgba(127, 127, 127, .25));border-radius:3px;padding:0 4px}.chapter-title a.descend{border-bottom-width:0}.chunk{position:relative;display:flex;gap:12px;align-items:flex-start;margin-left:var(--sub-margin);padding-left:var(--sub-pad);border-left:1px solid var(--line);margin-right:calc(-1 * var(--sub-step));scroll-margin-top:12px}a.chunk-index{text-decoration:none}.chunk-index{position:absolute;top:1px;left:0;font-variant-numeric:tabular-nums;font-size:12px;line-height:calc(1.65 * 14 / 12);color:var(--accent);opacity:.65;user-select:none;border-bottom-width:0}.chunk-crumb{position:absolute;top:0;width:max-content;right:calc(4px + var(--lvl, 0) * var(--sub-step))}a.chunk-index:hover{color:var(--accent);opacity:1}.chunk:has(>.chunk-body>pre.chapter-data) .chunk-index{top:calc(9px + (13px * 1.55 - 12px * (1.65 * 14 / 12)) / 2)}.chunk:has(>.chunk-body>.plaintext) .chunk-index{top:calc(8px + (13px * 1.55 - 12px * (1.65 * 14 / 12)) / 2)}.chunk-body{flex:1 1 auto;min-width:0}.lockbtn{display:inline-flex;align-items:center;gap:5px;background:none;border:1px solid transparent;border-radius:6px;cursor:pointer;font-family:inherit;font-size:13px;line-height:1;padding:3px 8px;color:var(--fg);opacity:.65}.lockbtn-icon{font-size:14px;line-height:1}.lockbtn-label{font-weight:500}.lockbtn:hover:not(:disabled){opacity:1;background:var(--hover, rgba(127, 127, 127, .12))}.lockbtn.unlocked{opacity:1;border-color:var(--accent);color:var(--accent)}.lockbtn:disabled{opacity:.4;cursor:default}.editable{outline:none;border-radius:4px;transition:box-shadow .12s ease,background .12s ease}.editable:hover{background:var(--hover, rgba(127, 127, 127, .06))}.editable:focus{background:var(--hover, rgba(127, 127, 127, .08));box-shadow:0 0 0 2px var(--accent)}.editable:empty:before{content:attr(data-placeholder);color:var(--dim);font-style:italic}.chapter-prose.editable .mlw-atom{cursor:default}.chapter-prose.editable .mlw-link{color:var(--accent);text-decoration:underline}.code .editable{padding:0 2px;cursor:text}.code .editable-toggle{cursor:pointer}.code .edit-error{box-shadow:0 0 0 2px var(--danger, #e5484d)}.code .editable:empty:before{content:attr(data-placeholder);color:var(--dim);font-style:normal}.crash{max-width:60ch;margin:10vh auto;padding:24px;font-family:system-ui,sans-serif;color:var(--fg, #222)}.crash h1{font-size:20px;margin:0 0 8px}.crash pre{white-space:pre-wrap;background:var(--hover, rgba(127, 127, 127, .1));border-radius:6px;padding:10px 12px;font-size:13px;overflow:auto}.crash-actions{display:flex;gap:8px;margin-top:12px}.crash-actions button{border:1px solid var(--accent, #48f);background:none;color:var(--accent, #48f);border-radius:6px;padding:6px 14px;cursor:pointer;font-size:14px}.crash-actions button:hover{background:var(--hover, rgba(127, 127, 127, .12))}.annotate-actions{display:flex;flex-direction:column;gap:4px;margin-bottom:2px;padding-bottom:6px;border-bottom:1px solid var(--line)}.annotate-create{display:flex;flex-direction:row;align-items:stretch}.annotate-action{background:none;border:1px solid var(--border, rgba(127, 127, 127, .35));border-radius:6px;color:var(--fg);cursor:pointer;font-size:13px;padding:4px 10px;max-width:100%;min-width:0;text-align:left;white-space:normal}.annotate-create.split .annotate-action{border-radius:6px 0 0 6px;border-right:none}.annotate-concrete{background:var(--bg);color:var(--fg);border:1px solid var(--border, rgba(127, 127, 127, .35));border-left-color:var(--line);border-radius:0 6px 6px 0;font:inherit;font-size:12px;padding:2px 6px;cursor:pointer;flex:0 0 auto;max-width:45%}.annotate-create.split:hover .annotate-action,.annotate-create.split:hover .annotate-concrete{border-color:var(--accent)}.annotate-action:hover{color:var(--accent);border-color:var(--accent)}.y2-ptrwrap{position:relative;display:inline-flex;align-items:center;outline:none}.y2-ptrwrap .qcells{display:inline-flex;align-items:center}.y2-ptrwrap .crumbs-tail{flex:0 0 auto;min-width:10px;align-self:stretch}.y2-scope{opacity:.8}.y2-refnav{margin-left:2px}textarea.chapter-latex-src{width:100%;display:block;box-sizing:border-box;resize:none;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;color:var(--fg);background:var(--hover, rgba(127, 127, 127, .06));border:1px solid transparent;padding:6px 8px}.chunk-tools{flex:0 0 auto;display:flex;gap:2px;opacity:0;transition:opacity .12s ease}.chunk:hover .chunk-tools{opacity:.8}.chunk-tool{background:none;border:none;cursor:pointer;font-size:13px;line-height:1;padding:2px 4px;border-radius:4px;color:var(--dim)}.chunk-tool:hover{color:var(--fg);background:var(--hover, rgba(127, 127, 127, .12))}.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}.parse-error{margin:8px 0;padding:8px 12px;background:var(--panel);border:1px solid var(--danger);border-left-width:4px;border-radius:6px;color:var(--fg)}.parse-error-file{font-family:var(--mono, monospace);color:var(--danger)}.parse-error-msg{margin-top:4px;font-family:var(--mono, monospace);font-size:.9em;color:var(--dim);white-space:pre-wrap}.drop-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;pointer-events:none;background:var(--scrim);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}.drop-confirm{position:fixed;z-index:3000;max-width:360px;padding:10px 12px;background:var(--panel);color:var(--fg);border:1px solid var(--accent);border-radius:6px;font-size:13px;box-shadow:0 4px 16px #0006}.drop-confirm-text{margin-bottom:8px;word-break:break-word}.drop-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.tree-row.drop-target,.dirview-item.drop-target{outline:2px dashed var(--accent);outline-offset:-2px}.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)}.markup table{display:block;width:max-content;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:10px 0}.markup th,.markup td{word-break:normal;border:1px solid var(--border, #313244);padding:3px 8px;text-align:left;vertical-align:top}.markup thead th{background:var(--bg-alt);color:var(--fg);font-weight:600}.markup tbody tr:nth-child(2n){background:var(--zebra)}.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)}.chunk-body>.plaintext{margin:0 0 14px;padding:8px 10px;background:var(--bg-alt);border-radius:6px}.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:var(--zebra)}.csv-empty{color:var(--dim)}.yl-table caption{caption-side:top;text-align:left;font-weight:600;padding:2px 0 6px}.yl-table td .chapter-prose,.yl-table th .chapter-prose{margin:0;max-width:none}.yl-table td .csv-scroll{margin:0}.yl-table-notice{color:var(--dim);font-size:12px;margin:4px 0 0}.yl-cell-chapter{display:flex;flex-direction:column;gap:6px}.yl-cell-chapter-title,.yl-cell-chapter p{margin:0}.yl-table-title-edit{background:var(--bg-alt);color:var(--fg);border:1px solid var(--border, #313244);border-radius:4px;padding:2px 6px;font:inherit}.yl-list{margin:4px 0;padding-left:24px}.yl-list .yl-list{margin:0}.chunk-body>.yl-list{margin:0 0 14px}.yl-list li>.chapter-prose{margin:0;max-width:none}.xyflow-view{width:100%;height:70vh;min-height:320px}.chunk-body>.xyflow-chunk{width:100%;height:420px;margin:0 0 14px}.xyflow-node{box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0 9px;border:1px solid var(--fg);border-radius:13px;background:var(--bg);color:var(--fg);font:12px ui-sans-serif,system-ui,-apple-system,sans-serif;white-space:nowrap}.xyflow-node-nav{cursor:pointer}.xyflow-node-nav:hover{border-color:var(--accent)}.xyflow-node-empty{padding:0;border-radius:50%}.xyflow-node-stub{border-style:dashed;border-color:var(--dim)}.xyflow-node .react-flow__handle{width:1px;height:1px;min-width:0;min-height:0;border:none;background:transparent}.xyflow-edge-label{font:11px ui-sans-serif,system-ui,-apple-system,sans-serif;fill:var(--fg);stroke:var(--bg);stroke-width:3px;paint-order:stroke;pointer-events:none;user-select:none}.xyflow-edge-label.xyflow-edge-ordinal{font-size:10px}.xyflow-edge-label .k{fill:var(--jb-key)}.xyflow-edge-label .n{fill:var(--jb-number)}.xyflow-edge-label .punct{fill:var(--jb-punct)}.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}.chunk-body .filemap.chunk-map{height:380px}.filemap.chunk-static{pointer-events:none}.chunk-image{display:block;max-width:100%;max-height:460px;height:auto;border-radius:6px}.chunk-open{display:block;cursor:zoom-in;border-bottom-width:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.mlw-embed{margin:12px 0;max-width:100%;white-space:normal}.mlw-embed-frame,.mlw-embed-facade{display:block;width:100%;aspect-ratio:16 / 9;border:0;border-radius:6px;background:var(--bg-alt)}.mlw-embed-facade{position:relative;padding:0;background-size:cover;background-position:center;cursor:pointer}.mlw-embed-facade:after{content:"";position:absolute;inset:0;border-radius:6px;background:#0000;transition:background .12s ease}.mlw-embed-facade:hover:after{background:#00000040}.mlw-embed-play{position:absolute;inset:0;z-index:1;display:grid;place-items:center;font-size:44px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.7)}.mlw-embed-video{display:block;width:100%;max-height:460px;border-radius:6px;background:#000}.mlw-embed-audio{display:block;width:100%}.mlw-embed-image{display:block;max-width:100%;max-height:460px;height:auto;border-radius:6px}.mlw-embed-caption{margin-top:6px;color:var(--dim);font-size:13px}.mlw-embed-chip{display:inline-flex;align-items:center;gap:4px;vertical-align:baseline;padding:1px 6px;border:1px solid var(--line);border-radius:6px;background:var(--bg-alt);color:var(--accent);font:inherit;cursor:pointer}.mlw-embed-chip:hover{background:var(--sel)}.mlw-embed-opened{display:block;margin:12px 0;max-width:100%}.mlw-embed-chip-image{max-height:1.4em;width:auto;vertical-align:text-bottom;border-radius:3px}.annotate-menu{position:fixed;z-index:1000;display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:5px 7px;width:280px;min-width:220px;max-width:90vw;max-height:80vh;overflow:hidden auto;resize:both;background:var(--bg-alt);border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 14px #0000004d}.annotate-topbar{display:flex;align-items:center;gap:6px;margin:-5px -7px 2px;padding:4px 6px;border-bottom:1px solid var(--line)}.annotate-topbar .annotate-tool{flex:0 0 auto;min-width:24px;height:22px;padding:0 5px;font-size:14px}.annotate-titlebar{flex:1 1 auto;box-sizing:border-box;min-width:0;overflow:hidden;display:flex;align-items:center;padding:3px 8px;border-radius:4px;background:var(--hover, rgba(127, 127, 127, .12));cursor:move;user-select:none}.annotate-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;font-size:12px;color:var(--dim);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.annotate-title bdi{unicode-bidi:isolate}.annotate-palette{display:flex;gap:4px}.annotate-swatch{width:18px;height:18px;padding:0;border-radius:50%;border:2px solid oklch(from var(--tag) var(--tag-line-l, l) var(--tag-line-c, c) h);background:transparent;box-sizing:border-box;cursor:pointer}.annotate-swatch.on{background:oklch(from var(--tag) var(--tag-fill-l, l) c h)}.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:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,transparent)}.annotate-tool.ok:hover{background:color-mix(in srgb,var(--ok) 18%,transparent);border-color:var(--ok)}.annotate-tool.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,transparent)}.annotate-tool.danger:hover{background:color-mix(in srgb,var(--danger) 18%,transparent);border-color:var(--danger)}.annotate-recents{display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start;flex:0 1 auto;max-height:108px;overflow-y:auto}.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:oklch(from var(--tag) var(--tag-line-l, l) var(--tag-line-c, c) h);color:oklch(from var(--tag) var(--tag-line-l, l) var(--tag-line-c, c) h)}.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:var(--tag-text, #fff)}.annotate-recents .tagtag.on:after,.annotate-suggest .tagtag.on:after,.board-col-tags .tagtag.on:after{background:oklch(from var(--tag) var(--tag-fill-l, l) c h)}.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{min-width:0;position:relative;margin-top:auto;display:flex;align-items:center;padding:3px 6px;background:var(--bg);border:1px solid var(--line);border-radius:5px;font-size:12px}.annotate-typeahead:focus-within{border-color:var(--dim)}.annotate-typeahead .annotate-cells{display:inline-flex;align-items:center;flex-wrap:wrap;flex:1 1 auto;min-width:0}.annotate-typeahead .crumbs-tail{min-width:24px}.annotate-busy{color:var(--dim, #777)}.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;background:oklch(from var(--tag) var(--tag-fill-l, l) c h);display:flex;flex-direction:column;gap:2px;padding:5px 8px;border-radius:5px;color:var(--tag-text, #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 var(--warn);background:color-mix(in srgb,var(--warn) 18%,transparent);pointer-events:none}.pdf-region.editable,.djvu-region.editable{pointer-events:auto;cursor:pointer}mark.yo-annotation{background-color:color-mix(in srgb,var(--warn) 30%,transparent);color:inherit;border-bottom:2px solid var(--warn);border-radius:2px;cursor:help}.yo-reveal-flash{animation:yo-flash 1s ease-out}@keyframes yo-flash{0%,to{outline:2px solid transparent;outline-offset:2px;box-shadow:none}15%{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 35%,transparent)}}.fileimagemap,.fileimagemap.leaflet-container{background:var(--bg)}.yo-selectable.leaflet-container{cursor:crosshair}.leaflet-interactive.yo-region{cursor:pointer}.yo-region-tags{width:max-content;display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:3px;pointer-events:none}.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:var(--tag-text, #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%);background:oklch(from var(--tag) var(--tag-fill-l, l) c h)}.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:var(--hover-filter)}.tagswatch{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:middle;box-sizing:border-box;border:1px solid var(--swatch-ring);cursor:pointer;background:oklch(from var(--tag) var(--tag-fill-l, l) c h)}.tagswatch:hover{filter:var(--hover-filter)}.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;background:oklch(from var(--tag) var(--tag-fill-l, l) c h)}.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;background:oklch(from var(--tag) var(--tag-fill-l, l) c h);color:var(--tag-text, 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,.board-group-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-group-del{color:var(--dim);font-size:.85em;flex:0 0 auto;opacity:.5}.board-group-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 +1 @@
|
|
|
1
|
-
import{h as ft,s as pt,j as L,u as mt,a as gt,r as f,b as dt,D as Y,f as yt,e as ht,c as bt}from"./index-DXrtwPKE.js";import{O as Lt,u as xt,L as O,w as Tt}from"./openable-Banncb36.js";import{a as Nt}from"./paged-BGVPKMC7.js";function x(t,e){return Array.from(t.getElementsByTagName(e))}function v(t){return t[0]==="#"?t:`#${t}`}function Ot(t,e,n){return Array.from(t.getElementsByTagNameNS(n,e))}function m(t){return t?.normalize(),t?.textContent||""}function u(t,e,n){const r=t.getElementsByTagName(e);return r.length?r[0]:null}function T(t,e,n){const r={};if(!t)return r;const o=t.getElementsByTagName(e),i=o.length?o[0]:null;return i&&n?n(i,r):r}function k(t,e,n){const r=m(u(t,e));return r&&n?n(r)||{}:{}}function p(t,e,n){const r=Number.parseFloat(m(u(t,e)));if(!Number.isNaN(r))return n&&n(r),r}function M(t,e){const n={};for(const r of e)k(t,r,o=>{n[r]=o});return n}function et(t){return t?.nodeType===1}function nt(t,e){const n={},r=e==="stroke"||e==="fill"?e:`${e}-color`;return t[0]==="#"&&(t=t.substring(1)),t.length===6||t.length===3?n[r]=`#${t}`:t.length===8&&(n[`${e}-opacity`]=Number.parseInt(t.substring(0,2),16)/255,n[r]=`#${t.substring(6,8)}${t.substring(4,6)}${t.substring(2,4)}`),n}function _(t,e,n){const r={};return p(t,e,o=>{r[n]=o}),r}function V(t,e){return T(t,"color",n=>nt(m(n),e))}function $(t){return T(t,"Icon",(e,n)=>(k(e,"href",r=>{n.icon=r}),n))}function wt(t){return T(t,"IconStyle",e=>Object.assign(V(e,"icon"),_(e,"scale","icon-scale"),_(e,"heading","icon-heading"),T(e,"hotSpot",n=>{const r=Number.parseFloat(n.getAttribute("x")||""),o=Number.parseFloat(n.getAttribute("y")||""),i=n.getAttribute("xunits")||"",s=n.getAttribute("yunits")||"";return!Number.isNaN(r)&&!Number.isNaN(o)?{"icon-offset":[r,o],"icon-offset-units":[i,s]}:{}}),$(e)))}function Et(t){return T(t,"LabelStyle",e=>Object.assign(V(e,"label"),_(e,"scale","label-scale")))}function kt(t){return T(t,"LineStyle",e=>Object.assign(V(e,"stroke"),_(e,"width","stroke-width")))}function At(t){return T(t,"PolyStyle",(e,n)=>Object.assign(n,T(e,"color",r=>nt(m(r),"fill")),k(e,"fill",r=>{if(r==="0")return{"fill-opacity":0}}),k(e,"outline",r=>{if(r==="0")return{"stroke-opacity":0}})))}function B(t){return Object.assign({},At(t),kt(t),Et(t),wt(t))}const Rt=/\s*/g,St=/^\s*|\s*$/g,vt=/\s+/;function rt(t){return t.replace(Rt,"").split(",").map(Number.parseFloat).filter(e=>!Number.isNaN(e)).slice(0,3)}function j(t){return t.replace(St,"").split(vt).map(rt).filter(e=>e.length>=2)}function _t(t){let e=x(t,"coord");e.length===0&&(e=Ot(t,"coord","*"));const n=e.map(r=>m(r).split(" ").map(Number.parseFloat));return n.length===0?null:{geometry:n.length>2?{type:"LineString",coordinates:n}:{type:"Point",coordinates:n[0]},times:x(t,"when").map(r=>m(r))}}function ot(t){if(t.length===0)return t;const e=t[0],n=t[t.length-1];let r=!0;for(let o=0;o<Math.max(e.length,n.length);o++)if(e[o]!==n[o]){r=!1;break}return r?t:t.concat([t[0]])}function S(t){return m(u(t,"coordinates"))}function it(t){let e=[],n=[];for(let r=0;r<t.childNodes.length;r++){const o=t.childNodes.item(r);if(et(o))switch(o.tagName){case"MultiGeometry":case"MultiTrack":case"gx:MultiTrack":{const i=it(o);e=e.concat(i.geometries),n=n.concat(i.coordTimes);break}case"Point":{const i=rt(S(o));i.length>=2&&e.push({type:"Point",coordinates:i});break}case"LinearRing":case"LineString":{const i=j(S(o));i.length>=2&&e.push({type:"LineString",coordinates:i});break}case"Polygon":{const i=[];for(const s of x(o,"LinearRing")){const c=ot(j(S(s)));c.length>=4&&i.push(c)}i.length&&e.push({type:"Polygon",coordinates:i});break}case"Track":case"gx:Track":{const i=_t(o);if(!i)break;const{times:s,geometry:c}=i;e.push(c),s.length&&n.push(s);break}}}return{geometries:e,coordTimes:n}}const E=t=>Number(t),D={string:t=>t,int:E,uint:E,short:E,ushort:E,float:E,double:E,bool:t=>!!t};function U(t,e){return T(t,"ExtendedData",(n,r)=>{for(const o of x(n,"Data"))r[o.getAttribute("name")||""]=m(u(o,"value"));for(const o of x(n,"SimpleData")){const i=o.getAttribute("name")||"",s=e[i]||D.string;r[i]=s(m(o))}return r})}function Z(t){const e=u(t,"description");for(const n of Array.from(e?.childNodes||[]))if(n.nodeType===4)return{description:{"@type":"html",value:m(n)}};return{}}function z(t){return T(t,"TimeSpan",e=>({timespan:{begin:m(u(e,"begin")),end:m(u(e,"end"))}}))}function H(t){return T(t,"TimeStamp",e=>({timestamp:m(u(e,"when"))}))}function J(t,e){return k(t,"styleUrl",n=>(n=v(n),e[n]?Object.assign({styleUrl:n},e[n]):{styleUrl:n}))}var d;(function(t){t.ABSOLUTE="absolute",t.RELATIVE_TO_GROUND="relativeToGround",t.CLAMP_TO_GROUND="clampToGround",t.CLAMP_TO_SEAFLOOR="clampToSeaFloor",t.RELATIVE_TO_SEAFLOOR="relativeToSeaFloor"})(d||(d={}));function Mt(t){switch(t?.textContent){case d.ABSOLUTE:return d.ABSOLUTE;case d.CLAMP_TO_GROUND:return d.CLAMP_TO_GROUND;case d.CLAMP_TO_SEAFLOOR:return d.CLAMP_TO_SEAFLOOR;case d.RELATIVE_TO_GROUND:return d.RELATIVE_TO_GROUND;case d.RELATIVE_TO_SEAFLOOR:return d.RELATIVE_TO_SEAFLOOR}return null}function Bt(t){return u(t,"gx:LatLonQuad")?{geometry:{type:"Polygon",coordinates:[ot(j(S(t)))]}}:Pt(t)}const Ct=Math.PI/180;function It(t,e,n){const r=[(t[0]+t[2])/2,(t[1]+t[3])/2];return[e[0].map(o=>{const i=o[1]-r[1],s=o[0]-r[0],c=Math.sqrt(i**2+s**2),a=Math.atan2(i,s)+n*Ct;return[r[0]+Math.cos(a)*c,r[1]+Math.sin(a)*c]})]}function Pt(t){const e=u(t,"LatLonBox");if(e){const n=p(e,"north"),r=p(e,"west"),o=p(e,"east"),i=p(e,"south"),s=p(e,"rotation");if(typeof n=="number"&&typeof i=="number"&&typeof r=="number"&&typeof o=="number"){const c=[r,i,o,n];let a=[[[r,n],[o,n],[o,i],[r,i],[r,n]]];return typeof s=="number"&&(a=It(c,a,s)),{bbox:c,geometry:{type:"Polygon",coordinates:a}}}}return null}function Ft(t,e,n,r){const o=Bt(t),i=o?.geometry||null;if(!i&&r.skipNullGeometry)return null;const s={type:"Feature",geometry:i,properties:Object.assign({"@geometry-type":"groundoverlay"},M(t,["name","address","visibility","open","phoneNumber","description"]),Z(t),J(t,e),B(t),$(t),U(t,n),z(t),H(t))};o?.bbox&&(s.bbox=o.bbox),s.properties?.visibility!==void 0&&(s.properties.visibility=s.properties.visibility!=="0");const c=t.getAttribute("id");return c!==null&&c!==""&&(s.id=c),s}function Gt(t){const e=u(t,"Region");return e?{coordinateBox:Dt(e),lod:jt(t)}:null}function jt(t){const e=u(t,"Lod");return e?[p(e,"minLodPixels")??-1,p(e,"maxLodPixels")??-1,p(e,"minFadeExtent")??null,p(e,"maxFadeExtent")??null]:null}function Dt(t){const e=u(t,"LatLonAltBox");if(e){const n=p(e,"north"),r=p(e,"west"),o=p(e,"east"),i=p(e,"south");if(Mt(u(e,"altitudeMode")||u(e,"gx:altitudeMode"))&&console.debug("Encountered an unsupported feature of KML for togeojson: please contact developers for support of altitude mode."),typeof n=="number"&&typeof i=="number"&&typeof r=="number"&&typeof o=="number")return{bbox:[r,i,o,n],geometry:{type:"Polygon",coordinates:[[[r,n],[o,n],[o,i],[r,i],[r,n]]]}}}return null}function Vt(t){const e=u(t,"Link");return e?M(e,["href","refreshMode","refreshInterval","viewRefreshMode","viewRefreshTime","viewBoundScale","viewFormat","httpQuery"]):{}}function $t(t,e,n,r){const o=Gt(t),i=o?.coordinateBox?.geometry||null;if(!i&&r.skipNullGeometry)return null;const s={type:"Feature",geometry:i,properties:Object.assign({"@geometry-type":"networklink"},M(t,["name","address","visibility","open","phoneNumber","styleUrl","refreshVisibility","flyToView","description"]),Z(t),J(t,e),B(t),$(t),U(t,n),z(t),H(t),Vt(t),o?.lod?{lod:o.lod}:{})};o?.coordinateBox?.bbox&&(s.bbox=o.coordinateBox.bbox),s.properties?.visibility!==void 0&&(s.properties.visibility=s.properties.visibility!=="0");const c=t.getAttribute("id");return c!==null&&c!==""&&(s.id=c),s}function Ut(t){return t.length===0?null:t.length===1?t[0]:{type:"GeometryCollection",geometries:t}}function Zt(t,e,n,r){const{coordTimes:o,geometries:i}=it(t),s=Ut(i);if(!s&&r.skipNullGeometry)return null;const c={type:"Feature",geometry:s,properties:Object.assign(M(t,["name","address","visibility","open","phoneNumber","description"]),Z(t),J(t,e),B(t),U(t,n),z(t),H(t),o.length?{coordinateProperties:{times:o.length===1?o[0]:o}}:{})};c.properties?.visibility!==void 0&&(c.properties.visibility=c.properties.visibility!=="0");const a=t.getAttribute("id");return a!==null&&a!==""&&(c.id=a),c}function zt(t){let e=t.getAttribute("id");const n=t.parentNode;return!e&&et(n)&&n.localName==="CascadingStyle"&&(e=n.getAttribute("kml:id")||n.getAttribute("id")),v(e||"")}function Ht(t){const e={};for(const n of x(t,"Style"))e[zt(n)]=B(n);for(const n of x(t,"StyleMap")){const r=v(n.getAttribute("id")||"");k(n,"styleUrl",o=>{o=v(o),e[o]&&(e[r]=e[o])})}return e}function Jt(t){const e={};for(const n of x(t,"SimpleField"))e[n.getAttribute("name")||""]=D[n.getAttribute("type")||""]||D.string;return e}function*Kt(t,e={skipNullGeometry:!1}){const n=t,r=Ht(n),o=Jt(n);for(const i of x(n,"Placemark")){const s=Zt(i,r,o,e);s&&(yield s)}for(const i of x(n,"GroundOverlay")){const s=Ft(i,r,o,e);s&&(yield s)}for(const i of x(n,"NetworkLink")){const s=$t(i,r,o,e);s&&(yield s)}}function Qt(t,e={skipNullGeometry:!1}){return{type:"FeatureCollection",features:Array.from(Kt(t,e))}}function Wt(t){return t[0]===80&&t[1]===75&&t[2]===3&&t[3]===4}function tt(t){const e=new DOMParser().parseFromString(t,"application/xml");if(e.getElementsByTagName("parsererror").length)throw new Error("malformed KML XML");return Qt(e)}function qt(t){if(Wt(t)){const e=ft(t),n=Object.keys(e).find(r=>r.toLowerCase().endsWith(".kml"));if(!n)throw new Error("no .kml document inside the KMZ archive");return tt(pt(e[n]))}return tt(new TextDecoder().decode(t))}const st={},Xt=st?.VITE_MAP_TILE_URL??"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",Yt=st?.VITE_MAP_TILE_ATTRIBUTION??'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',N=t=>Number(t)||0;function te(t,e){return t.filter(n=>n.selector?.type==="map").map(n=>({n:N(n.selector.n),s:N(n.selector.s),e:N(n.selector.e),w:N(n.selector.w),title:n.description,color:bt(n),ann:ht(n)?n:void 0,id:n.fragmentSlug?yt(e,n.fragmentSlug):void 0}))}function ct(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function ee(t){return t?typeof t=="string"?ct(t):typeof t=="object"&&t["@type"]==="html"?String(t.value??""):"":""}function ne(t,e,n=!0){const r=O.map(t,n?{}:{dragging:!1,scrollWheelZoom:!1,doubleClickZoom:!1,boxZoom:!1,keyboard:!1,touchZoom:!1,zoomControl:!1});O.tileLayer(Xt,{maxZoom:19,attribution:Yt}).addTo(r);const i=O.geoJSON(e,{style:s=>{const c=s?.properties??{};return{color:c.stroke||"#3388ff",weight:c["stroke-width"]||2,opacity:c["stroke-opacity"]??1,fillColor:c.fill||"#3388ff",fillOpacity:c["fill-opacity"]??.2}},pointToLayer:(s,c)=>O.circleMarker(c,{radius:5,color:"#e23",weight:2,fillOpacity:.8}),onEachFeature:n?(s,c)=>{const a=s.properties??{},w=a.name?`<strong>${ct(a.name)}</strong>`:"",A=ee(a.description),R=A?`<div class="map-popup-desc">${A}</div>`:"";(w||R)&&c.bindPopup(`${w}${R}`)}:void 0}).addTo(r).getBounds();return i.isValid()?r.fitBounds(i,{padding:[24,24],maxZoom:16}):r.setView([0,0],2),r}function at({path:t,className:e,regions:n,onSelectRegion:r,onRegionClick:o,selectColor:i,interactive:s=!0}){const c=f.useRef(null),a=f.useRef(null),w=f.useRef(null),A=f.useRef(r),R=f.useRef(o),K=f.useRef(i),[C,Q]=f.useState(null),[lt,I]=f.useState(!0),[W,ut]=f.useState(0),q=JSON.stringify(n??[]),X=!!r;Nt(c,14,s),xt(c,()=>a.current),f.useEffect(()=>{A.current=r,R.current=o,K.current=i}),f.useEffect(()=>{let y=!1,l=null;return Q(null),I(!0),fetch(dt(t)).then(g=>g.arrayBuffer()).then(g=>{if(y||!c.current)return;const h=ne(c.current,qt(new Uint8Array(g)),s);w.current=O.layerGroup().addTo(h),a.current=h,s&&(l=Tt(h,{color:()=>K.current?.()??Y,onSelect:X?(b,F)=>A.current?.({type:"map",n:b.getNorth(),s:b.getSouth(),e:b.getEast(),w:b.getWest()},F):void 0})),ut(b=>b+1),I(!1)}).catch(g=>{y||(Q(String(g.message||g)),I(!1))}),()=>{y=!0,l?.(),a.current?.remove(),a.current=null,w.current=null}},[t]);const P=f.useRef(new Map);return f.useEffect(()=>{const y=w.current;if(y){y.clearLayers(),P.current.clear();for(const l of n??[]){const g=l.color||Y,h=[[l.s,l.w],[l.n,l.e]],b=O.rectangle(h,{className:"yo-region",color:g,weight:3,fillColor:g,fillOpacity:.25});if(l.title&&b.bindTooltip(l.title),l.ann){const F=l.ann;b.on("click",G=>{O.DomEvent.stop(G),R.current?.(F,{x:G.originalEvent.clientX,y:G.originalEvent.clientY})})}b.addTo(y),l.id&&P.current.set(l.id,{rect:b,bounds:h})}}},[q,W]),f.useEffect(()=>{const y=()=>{const l=a.current,g=decodeURIComponent(window.location.hash.slice(1)),h=g?P.current.get(g):void 0;!l||!h||(l.fitBounds(h.bounds,{maxZoom:l.getZoom(),padding:[40,40]}),h.rect.setStyle({weight:6,fillOpacity:.45}),window.setTimeout(()=>h.rect.setStyle({weight:3,fillOpacity:.25}),1e3))};return y(),window.addEventListener("hashchange",y),()=>window.removeEventListener("hashchange",y)},[q,W]),L.jsxs(L.Fragment,{children:[C&&L.jsxs("div",{className:"error",children:["map: ",C]}),L.jsx("div",{ref:c,className:e+(X?" yo-selectable":"")}),lt&&!C&&L.jsx("div",{className:"loading",children:"loading map…"})]})}function se({node:t}){const e=mt(t.path),{openCreate:n,openEdit:r,palette:o,preview:i,color:s}=gt(e,t.path),c=te(e.annotations,t.path);if(i?.selector.type==="map"){const a=i.selector;c.push({n:N(a.n),s:N(a.s),e:N(a.e),w:N(a.w),color:i.color})}return L.jsxs("div",{className:"text",children:[t.title&&L.jsx("h1",{className:"chapter-title",children:t.title}),t.description&&L.jsx("p",{className:"chapter-subtitle",children:t.description}),L.jsx(at,{path:t.path,regions:c,onSelectRegion:n,onRegionClick:r,selectColor:()=>s,className:"filemap"}),o]})}function ce({chunk:t,onNavigate:e}){return L.jsx(Lt,{path:t.path,onNavigate:e,title:"Open map on its own page",children:L.jsx(at,{path:t.path,className:"filemap chunk-map chunk-static",interactive:!1})})}export{ce as MapChunk,se as MapView};
|
|
1
|
+
import{h as ft,s as pt,j as L,u as mt,a as gt,r as f,b as dt,D as Y,f as yt,e as ht,c as bt}from"./index-Bf2L7I9e.js";import{O as Lt,u as xt,L as O,w as Tt}from"./openable-CCBlc-Ws.js";import{a as Nt}from"./paged-bLurvatj.js";function x(t,e){return Array.from(t.getElementsByTagName(e))}function v(t){return t[0]==="#"?t:`#${t}`}function Ot(t,e,n){return Array.from(t.getElementsByTagNameNS(n,e))}function m(t){return t?.normalize(),t?.textContent||""}function u(t,e,n){const r=t.getElementsByTagName(e);return r.length?r[0]:null}function T(t,e,n){const r={};if(!t)return r;const o=t.getElementsByTagName(e),i=o.length?o[0]:null;return i&&n?n(i,r):r}function k(t,e,n){const r=m(u(t,e));return r&&n?n(r)||{}:{}}function p(t,e,n){const r=Number.parseFloat(m(u(t,e)));if(!Number.isNaN(r))return n&&n(r),r}function M(t,e){const n={};for(const r of e)k(t,r,o=>{n[r]=o});return n}function et(t){return t?.nodeType===1}function nt(t,e){const n={},r=e==="stroke"||e==="fill"?e:`${e}-color`;return t[0]==="#"&&(t=t.substring(1)),t.length===6||t.length===3?n[r]=`#${t}`:t.length===8&&(n[`${e}-opacity`]=Number.parseInt(t.substring(0,2),16)/255,n[r]=`#${t.substring(6,8)}${t.substring(4,6)}${t.substring(2,4)}`),n}function _(t,e,n){const r={};return p(t,e,o=>{r[n]=o}),r}function V(t,e){return T(t,"color",n=>nt(m(n),e))}function $(t){return T(t,"Icon",(e,n)=>(k(e,"href",r=>{n.icon=r}),n))}function wt(t){return T(t,"IconStyle",e=>Object.assign(V(e,"icon"),_(e,"scale","icon-scale"),_(e,"heading","icon-heading"),T(e,"hotSpot",n=>{const r=Number.parseFloat(n.getAttribute("x")||""),o=Number.parseFloat(n.getAttribute("y")||""),i=n.getAttribute("xunits")||"",s=n.getAttribute("yunits")||"";return!Number.isNaN(r)&&!Number.isNaN(o)?{"icon-offset":[r,o],"icon-offset-units":[i,s]}:{}}),$(e)))}function Et(t){return T(t,"LabelStyle",e=>Object.assign(V(e,"label"),_(e,"scale","label-scale")))}function kt(t){return T(t,"LineStyle",e=>Object.assign(V(e,"stroke"),_(e,"width","stroke-width")))}function At(t){return T(t,"PolyStyle",(e,n)=>Object.assign(n,T(e,"color",r=>nt(m(r),"fill")),k(e,"fill",r=>{if(r==="0")return{"fill-opacity":0}}),k(e,"outline",r=>{if(r==="0")return{"stroke-opacity":0}})))}function B(t){return Object.assign({},At(t),kt(t),Et(t),wt(t))}const Rt=/\s*/g,St=/^\s*|\s*$/g,vt=/\s+/;function rt(t){return t.replace(Rt,"").split(",").map(Number.parseFloat).filter(e=>!Number.isNaN(e)).slice(0,3)}function j(t){return t.replace(St,"").split(vt).map(rt).filter(e=>e.length>=2)}function _t(t){let e=x(t,"coord");e.length===0&&(e=Ot(t,"coord","*"));const n=e.map(r=>m(r).split(" ").map(Number.parseFloat));return n.length===0?null:{geometry:n.length>2?{type:"LineString",coordinates:n}:{type:"Point",coordinates:n[0]},times:x(t,"when").map(r=>m(r))}}function ot(t){if(t.length===0)return t;const e=t[0],n=t[t.length-1];let r=!0;for(let o=0;o<Math.max(e.length,n.length);o++)if(e[o]!==n[o]){r=!1;break}return r?t:t.concat([t[0]])}function S(t){return m(u(t,"coordinates"))}function it(t){let e=[],n=[];for(let r=0;r<t.childNodes.length;r++){const o=t.childNodes.item(r);if(et(o))switch(o.tagName){case"MultiGeometry":case"MultiTrack":case"gx:MultiTrack":{const i=it(o);e=e.concat(i.geometries),n=n.concat(i.coordTimes);break}case"Point":{const i=rt(S(o));i.length>=2&&e.push({type:"Point",coordinates:i});break}case"LinearRing":case"LineString":{const i=j(S(o));i.length>=2&&e.push({type:"LineString",coordinates:i});break}case"Polygon":{const i=[];for(const s of x(o,"LinearRing")){const c=ot(j(S(s)));c.length>=4&&i.push(c)}i.length&&e.push({type:"Polygon",coordinates:i});break}case"Track":case"gx:Track":{const i=_t(o);if(!i)break;const{times:s,geometry:c}=i;e.push(c),s.length&&n.push(s);break}}}return{geometries:e,coordTimes:n}}const E=t=>Number(t),D={string:t=>t,int:E,uint:E,short:E,ushort:E,float:E,double:E,bool:t=>!!t};function U(t,e){return T(t,"ExtendedData",(n,r)=>{for(const o of x(n,"Data"))r[o.getAttribute("name")||""]=m(u(o,"value"));for(const o of x(n,"SimpleData")){const i=o.getAttribute("name")||"",s=e[i]||D.string;r[i]=s(m(o))}return r})}function Z(t){const e=u(t,"description");for(const n of Array.from(e?.childNodes||[]))if(n.nodeType===4)return{description:{"@type":"html",value:m(n)}};return{}}function z(t){return T(t,"TimeSpan",e=>({timespan:{begin:m(u(e,"begin")),end:m(u(e,"end"))}}))}function H(t){return T(t,"TimeStamp",e=>({timestamp:m(u(e,"when"))}))}function J(t,e){return k(t,"styleUrl",n=>(n=v(n),e[n]?Object.assign({styleUrl:n},e[n]):{styleUrl:n}))}var d;(function(t){t.ABSOLUTE="absolute",t.RELATIVE_TO_GROUND="relativeToGround",t.CLAMP_TO_GROUND="clampToGround",t.CLAMP_TO_SEAFLOOR="clampToSeaFloor",t.RELATIVE_TO_SEAFLOOR="relativeToSeaFloor"})(d||(d={}));function Mt(t){switch(t?.textContent){case d.ABSOLUTE:return d.ABSOLUTE;case d.CLAMP_TO_GROUND:return d.CLAMP_TO_GROUND;case d.CLAMP_TO_SEAFLOOR:return d.CLAMP_TO_SEAFLOOR;case d.RELATIVE_TO_GROUND:return d.RELATIVE_TO_GROUND;case d.RELATIVE_TO_SEAFLOOR:return d.RELATIVE_TO_SEAFLOOR}return null}function Bt(t){return u(t,"gx:LatLonQuad")?{geometry:{type:"Polygon",coordinates:[ot(j(S(t)))]}}:Pt(t)}const Ct=Math.PI/180;function It(t,e,n){const r=[(t[0]+t[2])/2,(t[1]+t[3])/2];return[e[0].map(o=>{const i=o[1]-r[1],s=o[0]-r[0],c=Math.sqrt(i**2+s**2),a=Math.atan2(i,s)+n*Ct;return[r[0]+Math.cos(a)*c,r[1]+Math.sin(a)*c]})]}function Pt(t){const e=u(t,"LatLonBox");if(e){const n=p(e,"north"),r=p(e,"west"),o=p(e,"east"),i=p(e,"south"),s=p(e,"rotation");if(typeof n=="number"&&typeof i=="number"&&typeof r=="number"&&typeof o=="number"){const c=[r,i,o,n];let a=[[[r,n],[o,n],[o,i],[r,i],[r,n]]];return typeof s=="number"&&(a=It(c,a,s)),{bbox:c,geometry:{type:"Polygon",coordinates:a}}}}return null}function Ft(t,e,n,r){const o=Bt(t),i=o?.geometry||null;if(!i&&r.skipNullGeometry)return null;const s={type:"Feature",geometry:i,properties:Object.assign({"@geometry-type":"groundoverlay"},M(t,["name","address","visibility","open","phoneNumber","description"]),Z(t),J(t,e),B(t),$(t),U(t,n),z(t),H(t))};o?.bbox&&(s.bbox=o.bbox),s.properties?.visibility!==void 0&&(s.properties.visibility=s.properties.visibility!=="0");const c=t.getAttribute("id");return c!==null&&c!==""&&(s.id=c),s}function Gt(t){const e=u(t,"Region");return e?{coordinateBox:Dt(e),lod:jt(t)}:null}function jt(t){const e=u(t,"Lod");return e?[p(e,"minLodPixels")??-1,p(e,"maxLodPixels")??-1,p(e,"minFadeExtent")??null,p(e,"maxFadeExtent")??null]:null}function Dt(t){const e=u(t,"LatLonAltBox");if(e){const n=p(e,"north"),r=p(e,"west"),o=p(e,"east"),i=p(e,"south");if(Mt(u(e,"altitudeMode")||u(e,"gx:altitudeMode"))&&console.debug("Encountered an unsupported feature of KML for togeojson: please contact developers for support of altitude mode."),typeof n=="number"&&typeof i=="number"&&typeof r=="number"&&typeof o=="number")return{bbox:[r,i,o,n],geometry:{type:"Polygon",coordinates:[[[r,n],[o,n],[o,i],[r,i],[r,n]]]}}}return null}function Vt(t){const e=u(t,"Link");return e?M(e,["href","refreshMode","refreshInterval","viewRefreshMode","viewRefreshTime","viewBoundScale","viewFormat","httpQuery"]):{}}function $t(t,e,n,r){const o=Gt(t),i=o?.coordinateBox?.geometry||null;if(!i&&r.skipNullGeometry)return null;const s={type:"Feature",geometry:i,properties:Object.assign({"@geometry-type":"networklink"},M(t,["name","address","visibility","open","phoneNumber","styleUrl","refreshVisibility","flyToView","description"]),Z(t),J(t,e),B(t),$(t),U(t,n),z(t),H(t),Vt(t),o?.lod?{lod:o.lod}:{})};o?.coordinateBox?.bbox&&(s.bbox=o.coordinateBox.bbox),s.properties?.visibility!==void 0&&(s.properties.visibility=s.properties.visibility!=="0");const c=t.getAttribute("id");return c!==null&&c!==""&&(s.id=c),s}function Ut(t){return t.length===0?null:t.length===1?t[0]:{type:"GeometryCollection",geometries:t}}function Zt(t,e,n,r){const{coordTimes:o,geometries:i}=it(t),s=Ut(i);if(!s&&r.skipNullGeometry)return null;const c={type:"Feature",geometry:s,properties:Object.assign(M(t,["name","address","visibility","open","phoneNumber","description"]),Z(t),J(t,e),B(t),U(t,n),z(t),H(t),o.length?{coordinateProperties:{times:o.length===1?o[0]:o}}:{})};c.properties?.visibility!==void 0&&(c.properties.visibility=c.properties.visibility!=="0");const a=t.getAttribute("id");return a!==null&&a!==""&&(c.id=a),c}function zt(t){let e=t.getAttribute("id");const n=t.parentNode;return!e&&et(n)&&n.localName==="CascadingStyle"&&(e=n.getAttribute("kml:id")||n.getAttribute("id")),v(e||"")}function Ht(t){const e={};for(const n of x(t,"Style"))e[zt(n)]=B(n);for(const n of x(t,"StyleMap")){const r=v(n.getAttribute("id")||"");k(n,"styleUrl",o=>{o=v(o),e[o]&&(e[r]=e[o])})}return e}function Jt(t){const e={};for(const n of x(t,"SimpleField"))e[n.getAttribute("name")||""]=D[n.getAttribute("type")||""]||D.string;return e}function*Kt(t,e={skipNullGeometry:!1}){const n=t,r=Ht(n),o=Jt(n);for(const i of x(n,"Placemark")){const s=Zt(i,r,o,e);s&&(yield s)}for(const i of x(n,"GroundOverlay")){const s=Ft(i,r,o,e);s&&(yield s)}for(const i of x(n,"NetworkLink")){const s=$t(i,r,o,e);s&&(yield s)}}function Qt(t,e={skipNullGeometry:!1}){return{type:"FeatureCollection",features:Array.from(Kt(t,e))}}function Wt(t){return t[0]===80&&t[1]===75&&t[2]===3&&t[3]===4}function tt(t){const e=new DOMParser().parseFromString(t,"application/xml");if(e.getElementsByTagName("parsererror").length)throw new Error("malformed KML XML");return Qt(e)}function qt(t){if(Wt(t)){const e=ft(t),n=Object.keys(e).find(r=>r.toLowerCase().endsWith(".kml"));if(!n)throw new Error("no .kml document inside the KMZ archive");return tt(pt(e[n]))}return tt(new TextDecoder().decode(t))}const st={},Xt=st?.VITE_MAP_TILE_URL??"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",Yt=st?.VITE_MAP_TILE_ATTRIBUTION??'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',N=t=>Number(t)||0;function te(t,e){return t.filter(n=>n.selector?.type==="map").map(n=>({n:N(n.selector.n),s:N(n.selector.s),e:N(n.selector.e),w:N(n.selector.w),title:n.description,color:bt(n),ann:ht(n)?n:void 0,id:n.fragmentSlug?yt(e,n.fragmentSlug):void 0}))}function ct(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function ee(t){return t?typeof t=="string"?ct(t):typeof t=="object"&&t["@type"]==="html"?String(t.value??""):"":""}function ne(t,e,n=!0){const r=O.map(t,n?{}:{dragging:!1,scrollWheelZoom:!1,doubleClickZoom:!1,boxZoom:!1,keyboard:!1,touchZoom:!1,zoomControl:!1});O.tileLayer(Xt,{maxZoom:19,attribution:Yt}).addTo(r);const i=O.geoJSON(e,{style:s=>{const c=s?.properties??{};return{color:c.stroke||"#3388ff",weight:c["stroke-width"]||2,opacity:c["stroke-opacity"]??1,fillColor:c.fill||"#3388ff",fillOpacity:c["fill-opacity"]??.2}},pointToLayer:(s,c)=>O.circleMarker(c,{radius:5,color:"#e23",weight:2,fillOpacity:.8}),onEachFeature:n?(s,c)=>{const a=s.properties??{},w=a.name?`<strong>${ct(a.name)}</strong>`:"",A=ee(a.description),R=A?`<div class="map-popup-desc">${A}</div>`:"";(w||R)&&c.bindPopup(`${w}${R}`)}:void 0}).addTo(r).getBounds();return i.isValid()?r.fitBounds(i,{padding:[24,24],maxZoom:16}):r.setView([0,0],2),r}function at({path:t,className:e,regions:n,onSelectRegion:r,onRegionClick:o,selectColor:i,interactive:s=!0}){const c=f.useRef(null),a=f.useRef(null),w=f.useRef(null),A=f.useRef(r),R=f.useRef(o),K=f.useRef(i),[C,Q]=f.useState(null),[lt,I]=f.useState(!0),[W,ut]=f.useState(0),q=JSON.stringify(n??[]),X=!!r;Nt(c,14,s),xt(c,()=>a.current),f.useEffect(()=>{A.current=r,R.current=o,K.current=i}),f.useEffect(()=>{let y=!1,l=null;return Q(null),I(!0),fetch(dt(t)).then(g=>g.arrayBuffer()).then(g=>{if(y||!c.current)return;const h=ne(c.current,qt(new Uint8Array(g)),s);w.current=O.layerGroup().addTo(h),a.current=h,s&&(l=Tt(h,{color:()=>K.current?.()??Y,onSelect:X?(b,F)=>A.current?.({type:"map",n:b.getNorth(),s:b.getSouth(),e:b.getEast(),w:b.getWest()},F):void 0})),ut(b=>b+1),I(!1)}).catch(g=>{y||(Q(String(g.message||g)),I(!1))}),()=>{y=!0,l?.(),a.current?.remove(),a.current=null,w.current=null}},[t]);const P=f.useRef(new Map);return f.useEffect(()=>{const y=w.current;if(y){y.clearLayers(),P.current.clear();for(const l of n??[]){const g=l.color||Y,h=[[l.s,l.w],[l.n,l.e]],b=O.rectangle(h,{className:"yo-region",color:g,weight:3,fillColor:g,fillOpacity:.25});if(l.title&&b.bindTooltip(l.title),l.ann){const F=l.ann;b.on("click",G=>{O.DomEvent.stop(G),R.current?.(F,{x:G.originalEvent.clientX,y:G.originalEvent.clientY})})}b.addTo(y),l.id&&P.current.set(l.id,{rect:b,bounds:h})}}},[q,W]),f.useEffect(()=>{const y=()=>{const l=a.current,g=decodeURIComponent(window.location.hash.slice(1)),h=g?P.current.get(g):void 0;!l||!h||(l.fitBounds(h.bounds,{maxZoom:l.getZoom(),padding:[40,40]}),h.rect.setStyle({weight:6,fillOpacity:.45}),window.setTimeout(()=>h.rect.setStyle({weight:3,fillOpacity:.25}),1e3))};return y(),window.addEventListener("hashchange",y),()=>window.removeEventListener("hashchange",y)},[q,W]),L.jsxs(L.Fragment,{children:[C&&L.jsxs("div",{className:"error",children:["map: ",C]}),L.jsx("div",{ref:c,className:e+(X?" yo-selectable":"")}),lt&&!C&&L.jsx("div",{className:"loading",children:"loading map…"})]})}function se({node:t}){const e=mt(t.path),{openCreate:n,openEdit:r,palette:o,preview:i,color:s}=gt(e,t.path),c=te(e.annotations,t.path);if(i?.selector.type==="map"){const a=i.selector;c.push({n:N(a.n),s:N(a.s),e:N(a.e),w:N(a.w),color:i.color})}return L.jsxs("div",{className:"text",children:[t.title&&L.jsx("h1",{className:"chapter-title",children:t.title}),t.description&&L.jsx("p",{className:"chapter-subtitle",children:t.description}),L.jsx(at,{path:t.path,regions:c,onSelectRegion:n,onRegionClick:r,selectColor:()=>s,className:"filemap"}),o]})}function ce({chunk:t,onNavigate:e}){return L.jsx(Lt,{path:t.path,onNavigate:e,title:"Open map on its own page",children:L.jsx(at,{path:t.path,className:"filemap chunk-map chunk-static",interactive:!1})})}export{ce as MapChunk,se as MapView};
|