collabmd 0.1.29 → 0.1.30
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 +5 -0
- package/dist/client/assets/{CodeMirrorEditor-UCMRAMCV-9k1Shd4H.js → CodeMirrorEditor-UCMRAMCV-tj0_ycIx.js} +1 -1
- package/dist/client/assets/architectureDiagram-2XIMDMQ5-BPG5b65m.js +36 -0
- package/dist/client/assets/base-CaIEJUF9.css +1 -0
- package/dist/client/assets/{blockDiagram-WCTKOSBZ-0rR9ivwb.js → blockDiagram-WCTKOSBZ-F38TRzI3.js} +1 -1
- package/dist/client/assets/{chunk-ETSVUAFD-CN-gPl_j.js → chunk-AXZTUZBK-Cxfm7hmm.js} +1 -1
- package/dist/client/assets/{chunk-GLR3WWYH-ZnuaBvXp.js → chunk-GLR3WWYH-CQ1LryrI.js} +2 -2
- package/dist/client/assets/{chunk-NQ4KR5QH-BCjGNd0g.js → chunk-NQ4KR5QH-BBX89uUa.js} +1 -1
- package/dist/client/assets/chunk-NU2UP6EN-CGeKI3BV.js +35 -0
- package/dist/client/assets/{chunk-WL4C6EOR-OuH0lN6M.js → chunk-WL4C6EOR-zSV-8h7F.js} +1 -1
- package/dist/client/assets/classDiagram-VBA2DB6C-BQqG4q1b.js +1 -0
- package/dist/client/assets/classDiagram-v2-RAHNMMFH-BUKbprX1.js +1 -0
- package/dist/client/assets/dagre-KLK3FWXG-CAG8WeES.js +4 -0
- package/dist/client/assets/diagram-E7M64L7V-Bm5FD0I5.js +24 -0
- package/dist/client/assets/diagram-IFDJBPK2-pqicH-av.js +43 -0
- package/dist/client/assets/diagram-P4PSJMXO-DwIXO27H.js +24 -0
- package/dist/client/assets/dist-3bQB_we3.js +1 -0
- package/dist/client/assets/dist-3uAMa5w5.js +1 -0
- package/dist/client/assets/{dist-D9c0A4Uh.js → dist-B-02vKOA.js} +1 -1
- package/dist/client/assets/{dist-A0eSMIyy.js → dist-BLAlZer_.js} +1 -1
- package/dist/client/assets/dist-BVB8rn7o.js +1 -0
- package/dist/client/assets/{dist-DveOCUUJ.js → dist-Bc2ND6i3.js} +1 -1
- package/dist/client/assets/{dist-BNcU46Ik.js → dist-BqQjnEWr.js} +1 -1
- package/dist/client/assets/{dist-Bay3vk5z.js → dist-BtnXjRx0.js} +1 -1
- package/dist/client/assets/{dist-CEYpWxod.js → dist-BzbYwa8m.js} +1 -1
- package/dist/client/assets/{dist-Ct1bmQnL.js → dist-BzpfHRaE.js} +1 -1
- package/dist/client/assets/{dist-BbKpzsTB.js → dist-CGV1S_as.js} +1 -1
- package/dist/client/assets/dist-CL-jjdvG.js +1 -0
- package/dist/client/assets/{dist-D0e6Qsad.js → dist-CXpKYW9s.js} +1 -1
- package/dist/client/assets/{dist-BchrxlnW.js → dist-CjII8VDS.js} +1 -1
- package/dist/client/assets/{dist-DnrO-JZd.js → dist-CxfohGIV.js} +1 -1
- package/dist/client/assets/{dist-CMHIjMVe.js → dist-D5QOYy7y.js} +1 -1
- package/dist/client/assets/{dist-CEtbxXlI.js → dist-DIi0uqLJ.js} +1 -1
- package/dist/client/assets/dist-DJ16N7ol.js +1 -0
- package/dist/client/assets/dist-DUvaQ-Bj.js +1 -0
- package/dist/client/assets/{dist-DnxPQ0-w.js → dist-DWJL3_bF.js} +6 -6
- package/dist/client/assets/dist-DsL7sqZR.js +1 -0
- package/dist/client/assets/{dist-DbhQ5ANS.js → dist-Dyt7n5Ui.js} +1 -1
- package/dist/client/assets/{dist-BOrlJDrR.js → dist-E_jPb93e.js} +1 -1
- package/dist/client/assets/{dist-D-gRgZ6e.js → dist-O1z0Ayg0.js} +1 -1
- package/dist/client/assets/dist-OQE68wIX.js +1 -0
- package/dist/client/assets/dist-k47-Io7D.js +1 -0
- package/dist/client/assets/{dist-Cdzvi8cf.js → dist-lDhnP-K1.js} +1 -1
- package/dist/client/assets/{dist-DS6mEQYy.js → dist-rMhng5DK.js} +1 -1
- package/dist/client/assets/dist-xO1ImhKz.js +1 -0
- package/dist/client/assets/{drawio-editor-CgbaOvpF.js → drawio-editor-CTZtMo1J.js} +1 -1
- package/dist/client/assets/{drawioEditor-Eb2yYhjE.js → drawioEditor-keSJVTcv.js} +2 -2
- package/dist/client/assets/editor-session-C9l9XwVg.js +16 -0
- package/dist/client/assets/{embedded-editor-base-DXRHYz6R.css → embedded-editor-base-DgmRcsR8.css} +1 -1
- package/dist/client/assets/{en-CTDJDZ6K-BHbXrqU0.js → en-IQZW2TQM-CZeIyvu2.js} +1 -1
- package/dist/client/assets/{erDiagram-INFDFZHY-DP3f20BF.js → erDiagram-INFDFZHY-DlhPv4az.js} +1 -1
- package/dist/client/assets/{excalidraw-editor-Dj0c0PO6.js → excalidraw-editor-CBEWfuhb.js} +2 -2
- package/dist/client/assets/excalidraw-editor-Dj3i59LW.css +1 -0
- package/dist/client/assets/excalidraw-scene-BL-OtvCd.js +176 -0
- package/dist/client/assets/excalidrawEditor-Ws-fwGOc.js +2 -0
- package/dist/client/assets/{export-page-CUOMczdp.js → export-page-B6xYnwy7.js} +2 -2
- package/dist/client/assets/exportDocument-8JBw0p8O.js +2 -0
- package/dist/client/assets/{exportDocument-CLPYN_gg.css → exportDocument-CtX_4PSk.css} +1 -1
- package/dist/client/assets/{flowDiagram-PKNHOUZH-CRbK5_5h.js → flowDiagram-PKNHOUZH-BU4MOSq8.js} +1 -1
- package/dist/client/assets/ganttDiagram-A5KZAMGK-CbX67lZu.js +292 -0
- package/dist/client/assets/gitGraphDiagram-K3NZZRJ6-DhyvWcW1.js +65 -0
- package/dist/client/assets/image-XLNPCCAD-B4wZgh-Y.js +1 -0
- package/dist/client/assets/{index-CVgVzuh6.js → index-CywRKxsk.js} +2 -2
- package/dist/client/assets/index-R4OArFku.css +1 -0
- package/dist/client/assets/infoDiagram-LFFYTUFH-Bap6MyHX.js +2 -0
- package/dist/client/assets/{ishikawaDiagram-PHBUUO56-BDVPgkv4.js → ishikawaDiagram-PHBUUO56-DbftskqN.js} +1 -1
- package/dist/client/assets/{journeyDiagram-4ABVD52K-DtNnwL48.js → journeyDiagram-4ABVD52K-165YoX6B.js} +1 -1
- package/dist/client/assets/{jsx-runtime-B8dyIONw.js → jsx-runtime-DiaMmmG6.js} +1 -1
- package/dist/client/assets/{kanban-definition-K7BYSVSG-C565sUNo.js → kanban-definition-K7BYSVSG-MlixoNyx.js} +1 -1
- package/dist/client/assets/{main-C8adLQnt.js → main-CB97rY6B.js} +172 -133
- package/dist/client/assets/mermaid-parser.core-lf87rdG-.js +4 -0
- package/dist/client/assets/{mermaid-runtime-DqncQoYK.js → mermaid-runtime-C4a7TrTS.js} +3 -3
- package/dist/client/assets/{mindmap-definition-YRQLILUH-BbYzGfTD.js → mindmap-definition-YRQLILUH-_YbQSc4Q.js} +1 -1
- package/dist/client/assets/pieDiagram-SKSYHLDU-CqCgXFom.js +30 -0
- package/dist/client/assets/preview-render-compiler-TmHpBDlh.js +1 -0
- package/dist/client/assets/preview-render-compiler-aYpnXmNm.js +35 -0
- package/dist/client/assets/preview-render-worker-BVbVXXPS.js +59 -0
- package/dist/client/assets/{quadrantDiagram-337W2JSQ-DhlKLozd.js → quadrantDiagram-337W2JSQ-B8eMuhg4.js} +1 -1
- package/dist/client/assets/{requirementDiagram-Z7DCOOCP-B7ZOMsIb.js → requirementDiagram-Z7DCOOCP-B6POvqz4.js} +1 -1
- package/dist/client/assets/{room-B0UGbzQj.js → room-COWSP--i.js} +1 -1
- package/dist/client/assets/stateDiagram-RAJIS63D-DbewhqwJ.js +1 -0
- package/dist/client/assets/stateDiagram-v2-FVOUBMTO-DbW-jVkS.js +1 -0
- package/dist/client/assets/{vennDiagram-LZ73GAT5-Cs9aQmVM.js → vennDiagram-LZ73GAT5-C1hrSbf2.js} +1 -1
- package/dist/client/assets/{xychartDiagram-JWTSCODW-B40ybbzC.js → xychartDiagram-JWTSCODW-DhpWp8LV.js} +1 -1
- package/dist/client/assets/{yjs-provider-reset-guard-DUP9XupO.js → yjs-provider-reset-guard-DWGhQClh.js} +1 -1
- package/dist/client/drawio-editor.html +1 -1
- package/dist/client/excalidraw-editor.html +1 -1
- package/dist/client/export-document.html +4 -4
- package/dist/client/index.html +4 -4
- package/docker-compose.yml +1 -0
- package/package.json +23 -21
- package/src/client/application/app-shell/ui-feature-shell.js +47 -1
- package/src/client/application/app-shell/ui-feature-toolbar.js +25 -3
- package/src/client/application/app-shell-elements.js +2 -0
- package/src/client/application/diagram-preview-hydrator.js +1 -1
- package/src/client/application/markdown-frontmatter.js +152 -0
- package/src/client/application/preview-render-compiler.js +10 -1
- package/src/client/application/preview-render-executor.js +8 -1
- package/src/client/application/preview-render-worker.js +4 -0
- package/src/client/application/preview-renderer.js +51 -1
- package/src/client/application/workspace-preview-controller.js +1 -0
- package/src/client/bootstrap/collabmd-app-shell.js +5 -0
- package/src/client/domain/markdown-formatting.js +1 -1
- package/src/client/domain/markdown-toolbar-actions.js +36 -0
- package/src/client/export/export-pipeline.js +3 -1
- package/src/client/infrastructure/editor-session.js +4 -0
- package/src/client/infrastructure/editor-view-adapter.js +36 -2
- package/src/client/infrastructure/excalidraw-room-client.js +12 -4
- package/src/client/presentation/app-shell-template.js +15 -0
- package/src/client/presentation/file-action-controller.js +1 -2
- package/src/client/presentation/git-diff-view-controller.js +7 -10
- package/src/client/styles/base.css +5 -0
- package/src/client/styles/features/preview-markdown.css +138 -0
- package/src/client/styles/layout/editor-page.css +6 -0
- package/src/client/styles/layout/responsive.css +89 -0
- package/src/client/styles/layout/shell.css +6 -0
- package/src/client/styles/overrides/codemirror.css +74 -0
- package/src/server/auth/create-auth-service.js +32 -6
- package/src/server/config/env.js +27 -0
- package/src/server/config/perf-logging.js +39 -0
- package/src/server/create-app-server.js +102 -5
- package/src/server/domain/backlink-index.js +31 -7
- package/src/server/domain/collaboration/collaboration-room.js +28 -5
- package/src/server/infrastructure/git/history-service.js +1 -1
- package/src/server/infrastructure/persistence/pull-backup-store.js +1 -1
- package/src/server/infrastructure/persistence/vault-file-store.js +74 -31
- package/src/server/infrastructure/workspace/file-system-sync-service.js +46 -12
- package/src/server/infrastructure/workspace/workspace-mutation-coordinator.js +32 -7
- package/src/server/shared/async-utils.js +25 -0
- package/dist/client/assets/architectureDiagram-2XIMDMQ5-Bhh8YQHn.js +0 -36
- package/dist/client/assets/base-B5gONpJK.css +0 -1
- package/dist/client/assets/chunk-27N2SPOM-DbHKsQ_j.js +0 -34
- package/dist/client/assets/classDiagram-VBA2DB6C-Bpdym3dj.js +0 -1
- package/dist/client/assets/classDiagram-v2-RAHNMMFH-CRAsdVDB.js +0 -1
- package/dist/client/assets/dagre-KLK3FWXG-CXSnjrX-.js +0 -4
- package/dist/client/assets/diagram-E7M64L7V-De0StFef.js +0 -24
- package/dist/client/assets/diagram-IFDJBPK2-B2m6AJbU.js +0 -43
- package/dist/client/assets/diagram-P4PSJMXO-YBWLVENw.js +0 -24
- package/dist/client/assets/dist-BUEzOS23.js +0 -1
- package/dist/client/assets/dist-BflL-_8D.js +0 -1
- package/dist/client/assets/dist-CI_qEj5K.js +0 -1
- package/dist/client/assets/dist-CtFNDttZ.js +0 -1
- package/dist/client/assets/dist-DS_4VpEd.js +0 -1
- package/dist/client/assets/dist-DwsFUbuB.js +0 -1
- package/dist/client/assets/dist-VCYAp958.js +0 -1
- package/dist/client/assets/dist-Yxt8txtM.js +0 -1
- package/dist/client/assets/dist-npxgF_6V.js +0 -1
- package/dist/client/assets/dist-u0zDRMQt.js +0 -1
- package/dist/client/assets/editor-session-DFzBn4RY.js +0 -16
- package/dist/client/assets/excalidraw-editor-Bat1FRoT.css +0 -1
- package/dist/client/assets/excalidraw-scene-CixfM-jL.js +0 -174
- package/dist/client/assets/excalidrawEditor-diK4VITg.js +0 -2
- package/dist/client/assets/exportDocument-BM4_f2n8.js +0 -2
- package/dist/client/assets/ganttDiagram-A5KZAMGK-R-AMIgxR.js +0 -292
- package/dist/client/assets/gitGraphDiagram-K3NZZRJ6-CIPit_Sh.js +0 -65
- package/dist/client/assets/image-32MOCVDX-BB6utPzr.js +0 -1
- package/dist/client/assets/index-BOOhEiLo.css +0 -1
- package/dist/client/assets/infoDiagram-LFFYTUFH-CF8jXFTm.js +0 -2
- package/dist/client/assets/mermaid-parser.core-By_5k2SF.js +0 -4
- package/dist/client/assets/pieDiagram-SKSYHLDU-CAU_gC7U.js +0 -30
- package/dist/client/assets/preview-render-compiler-CVfDHnqM.js +0 -1
- package/dist/client/assets/preview-render-compiler-CapHJDHT.js +0 -1
- package/dist/client/assets/preview-render-worker-wMS710Bv.js +0 -23
- package/dist/client/assets/stateDiagram-RAJIS63D-CPoSrNwn.js +0 -1
- package/dist/client/assets/stateDiagram-v2-FVOUBMTO-5GW0Y21a.js +0 -1
- /package/dist/client/assets/{base-r5Zg2n3k.js → base-h1uscjTi.js} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./excalidraw-editor-CBEWfuhb.js","./chunk-DpHwWhuW.js","./chunk-NU2UP6EN-CGeKI3BV.js","./preload-helper-Bo9GmnuQ.js","./chunk-A66AFZZU-DuceaGnc.js","./chunk-SRAX5OIU-CC2mobFL.js","./excalidraw-scene-BL-OtvCd.js","./chunk-3PELD44J-CL87tpFo.js","./chunk-AXZTUZBK-Cxfm7hmm.js","./jsx-runtime-DiaMmmG6.js","./excalidraw-mermaid-stub-B_2dv3Ll.js","./yjs-provider-reset-guard-DWGhQClh.js","./runtime-config-CqX_f_Q4.js","./vault-api-client-DIaCC56H.js","./vault-api-client-De7kMvrE.css","./excalidraw-editor-Dj3i59LW.css","./embedded-editor-base-DgmRcsR8.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./runtime-config-loader-_D2KZKn-.js";import{t}from"./preload-helper-Bo9GmnuQ.js";await e(),await t(()=>import(`./excalidraw-editor-CBEWfuhb.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),import.meta.url);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./mermaid-runtime-
|
|
2
|
-
import{t as e}from"./preload-helper-Bo9GmnuQ.js";import"./chunk-SRAX5OIU-CC2mobFL.js";import"./jsx-runtime-B8dyIONw.js";import"./chunk-27N2SPOM-DbHKsQ_j.js";import"./preview-render-profile-DPzmho7I.js";import{h as t}from"./vault-utils-BW53lKl1.js";import{t as n}from"./preview-render-compiler-CVfDHnqM.js";import{d as r,l as i}from"./runtime-config-CqX_f_Q4.js";import{a,o,u as s}from"./excalidraw-scene-CixfM-jL.js";import{p as c}from"./preview-diagram-utils-Dc83ucbv.js";var l=`collabmd-export-page`,u=`collabmd-export-host`,d=Object.freeze({htmlLabels:!1,flowchart:{defaultRenderer:`dagre-wrapper`,useMaxWidth:!0},class:{defaultRenderer:`dagre-wrapper`,useMaxWidth:!0},startOnLoad:!1,theme:`default`}),f=1e4,p=10*1024*1024,ee=1e4,m=1,h=null,g=0;function _(e=`asset`){return g+=1,`${e}-${g.toString(36)}`}function v(e,n=``){return String(n??``).trim()||t(String(e??``).split(`/`).filter(Boolean).pop()||`document`)||`document`}function y(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function te(e){return new Promise((t,n)=>{let r=new FileReader;r.addEventListener(`load`,()=>t(String(r.result??``))),r.addEventListener(`error`,()=>n(r.error??Error(`Failed to read blob`))),r.readAsDataURL(e)})}function b(e){return new Promise((t,n)=>{let r=new Image;r.decoding=`async`,r.addEventListener(`load`,()=>t(r),{once:!0}),r.addEventListener(`error`,()=>n(Error(`Failed to load image: ${e}`)),{once:!0}),r.src=e})}function x(e){let t=Number.parseFloat(e.getAttribute(`width`)||``),n=Number.parseFloat(e.getAttribute(`height`)||``),r=(e.getAttribute(`viewBox`)||``).split(/\s+/).map(e=>Number.parseFloat(e)),i=Number.isFinite(t)&&t>0?t:Number.isFinite(r[2])&&r[2]>0?r[2]:1200;return{height:Number.isFinite(n)&&n>0?n:Number.isFinite(r[3])&&r[3]>0?r[3]:800,width:i}}function S(e,{padding:t=16}={}){let n=document.createElement(`div`);n.style.position=`fixed`,n.style.left=`-10000px`,n.style.top=`0`,n.style.visibility=`hidden`,n.style.pointerEvents=`none`,n.innerHTML=e,document.body.appendChild(n);try{let r=n.querySelector(`svg`);if(!(r instanceof SVGSVGElement))return e;let i=null;try{i=r.getBBox()}catch{return e}if(!i||i.width<=0||i.height<=0)return e;let a=Math.max(0,Number(t)||0),o=[Math.floor(i.x-a),Math.floor(i.y-a),Math.ceil(i.width+a*2),Math.ceil(i.height+a*2)],s=Math.ceil(i.width+a*2),c=Math.ceil(i.height+a*2);return r.setAttribute(`viewBox`,o.join(` `)),r.setAttribute(`preserveAspectRatio`,`xMidYMid meet`),r.setAttribute(`width`,String(s)),r.setAttribute(`height`,String(c)),r.outerHTML}finally{n.remove()}}function C(e,t={}){return S(c(e),t)}async function w(e){let t=await b(y(e)),n=document.createElement(`div`);n.innerHTML=e;let r=n.querySelector(`svg`),{width:i,height:a}=r?x(r):{height:t.naturalHeight||800,width:t.naturalWidth||1200},o=document.createElement(`canvas`);o.width=Math.max(1,Math.ceil(i)),o.height=Math.max(1,Math.ceil(a));let s=o.getContext(`2d`);if(!s)throw Error(`Canvas is unavailable`);return s.fillStyle=`#ffffff`,s.fillRect(0,0,o.width,o.height),s.drawImage(t,0,0,o.width,o.height),o.toDataURL(`image/png`)}async function T(e){let t=await b(e),n=document.createElement(`canvas`);n.width=Math.max(1,t.naturalWidth||t.width||1),n.height=Math.max(1,t.naturalHeight||t.height||1);let r=n.getContext(`2d`);if(!r)throw Error(`Canvas is unavailable`);return r.drawImage(t,0,0,n.width,n.height),n.toDataURL(`image/png`)}async function E(e,t={}){let n=await fetch(e,{headers:{Accept:`application/json`,...t.headers??{}},...t}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`Request failed: ${n.status}`);return r}async function D(e){let t=await E(i(`/file?path=${encodeURIComponent(e)}`));if(typeof t?.content!=`string`)throw Error(`Failed to load ${e}`);return t.content}async function O(e,{maxBytes:t=p,timeoutMs:n=f}={}){let r=new URL(e,window.location.href),i=new AbortController,a=window.setTimeout(()=>i.abort(),n),o;try{o=await fetch(r.toString(),{credentials:r.origin===window.location.origin?`same-origin`:`omit`,signal:i.signal})}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?Error(`Timed out while fetching asset: ${r.toString()}`):e}finally{window.clearTimeout(a)}if(!o.ok)throw Error(`Failed to fetch asset: ${r.toString()}`);let s=Number.parseInt(o.headers.get(`content-length`)||``,10);if(Number.isFinite(s)&&s>t)throw Error(`Asset is too large to inline: ${r.toString()}`);let c=await o.blob();if(c.size>t)throw Error(`Asset is too large to inline: ${r.toString()}`);return te(c)}function ne(e){let t=new URL(r(`/`),window.location.origin);return t.hash=new URLSearchParams({file:e}).toString(),t.toString()}function k(e=``){let t;try{t=new URL(String(e||``).trim())}catch{return``}let n=t.hostname.toLowerCase();if(n===`youtu.be`||n===`www.youtu.be`)return t.pathname.split(`/`).filter(Boolean)[0]||``;if(n.includes(`youtube`)||n.includes(`youtube-nocookie`)){if(t.pathname===`/watch`)return t.searchParams.get(`v`)||``;if(t.pathname.startsWith(`/embed/`))return t.pathname.split(`/`).filter(Boolean)[1]||``}return``}function A(e,{assetId:t=``,docxPosterDataUrl:n=``,posterDataUrl:r=``}={}){let i=document.createElement(`figure`);i.className=`export-video-poster`,t&&i.setAttribute(`data-export-asset-id`,t);let a=document.createElement(`div`);if(a.className=`export-video-poster-card`,r){let t=document.createElement(`div`);t.className=`export-video-poster-media`;let i=document.createElement(`img`);i.alt=`${e.dataset.videoEmbedLabel||`Embedded video`} poster`,i.className=`export-video-poster-image`,i.src=r,i.setAttribute(`data-export-docx-src`,n||r),t.appendChild(i);let o=document.createElement(`span`);o.className=`export-video-play-badge`,o.setAttribute(`aria-hidden`,`true`),o.textContent=`Play`,t.appendChild(o),a.appendChild(t)}let o=document.createElement(`div`);o.className=`export-video-poster-copy`;let s=document.createElement(`strong`);s.textContent=e.dataset.videoEmbedLabel||`Embedded video`;let c=document.createElement(`span`);c.className=`export-video-poster-meta`,c.textContent=e.dataset.videoEmbedKind===`youtube`?`YouTube video`:`Video link`,o.append(s,c),a.appendChild(o);let l=document.createElement(`a`);return l.className=`export-video-link`,l.href=e.dataset.videoEmbedOriginalUrl||e.dataset.videoEmbedSource||e.dataset.videoEmbedUrl||`#`,l.target=`_blank`,l.rel=`noopener noreferrer`,l.textContent=l.href,i.append(a,l),i}async function re(e){let t=document.createElement(`video`);return t.muted=!0,t.playsInline=!0,t.preload=`metadata`,t.crossOrigin=`anonymous`,t.style.position=`fixed`,t.style.left=`-10000px`,t.style.top=`0`,t.style.width=`1px`,t.style.height=`1px`,new Promise((n,r)=>{let i=!1,a=e=>{i||(i=!0,window.clearTimeout(d),t.pause?.(),t.removeEventListener(`error`,c),t.removeEventListener(`loadeddata`,u),t.removeEventListener(`seeked`,l),t.remove(),e())},o=e=>{a(()=>r(Error(e)))},s=()=>{if(t.videoWidth<=0||t.videoHeight<=0){o(`Video poster capture returned no frame: ${e}`);return}try{let e=document.createElement(`canvas`);e.width=t.videoWidth,e.height=t.videoHeight;let r=e.getContext(`2d`);if(!r){o(`Canvas is unavailable`);return}r.drawImage(t,0,0,e.width,e.height);let i=e.toDataURL(`image/png`);a(()=>n(i))}catch(t){o(t instanceof Error?t.message:`Failed to capture video poster: ${e}`)}},c=()=>{o(`Failed to load video poster: ${e}`)},l=()=>{s()},u=()=>{let e=Number.isFinite(t.duration)?t.duration:0,n=e>0?Math.min(m,Math.max(e*.1,0)):0;if(n>.05)try{t.currentTime=n;return}catch{}s()},d=window.setTimeout(()=>{o(`Timed out while loading video poster: ${e}`)},ee);t.addEventListener(`error`,c,{once:!0}),t.addEventListener(`loadeddata`,u,{once:!0}),t.addEventListener(`seeked`,l,{once:!0}),document.body.appendChild(t),t.src=e,t.load()})}async function ie(e){let t=e.dataset.videoEmbedOriginalUrl||e.dataset.videoEmbedSource||``,n=e.dataset.videoEmbedUrl||``;if((e.dataset.videoEmbedKind||``)===`youtube`){let e=k(t)||k(n);if(!e)throw Error(`Failed to resolve YouTube video id for export`);let r=[`https://i.ytimg.com/vi_webp/${e}/maxresdefault.webp`,`https://i.ytimg.com/vi_webp/${e}/hqdefault.webp`,`https://i.ytimg.com/vi/${e}/maxresdefault.jpg`,`https://i.ytimg.com/vi/${e}/hqdefault.jpg`],i=null;for(let e of r)try{return await O(e,{maxBytes:3*1024*1024,timeoutMs:f})}catch(e){i=e}throw i instanceof Error?i:Error(`Failed to fetch YouTube thumbnail`)}if(!t)throw Error(`Missing video source for export poster`);return re(t)}async function j(e,t){let n=await ie(t),r=await T(n).catch(()=>n),i=B(e,{dataUrl:n,id:_(`video-poster`),kind:`video-poster`,mimeType:n.startsWith(`data:image/webp`)?`image/webp`:`image/png`,variants:{docx:r}});t.replaceWith(A(t,{assetId:i,docxPosterDataUrl:r,posterDataUrl:n}))}function M({alt:e=``,message:t=``,src:n=``}={}){let r=document.createElement(`span`);if(r.className=`export-warning export-image-fallback`,r.textContent=t||`Image export failed`,!n)return r;r.append(` `);let i=document.createElement(`a`);return i.href=n,i.rel=`noopener noreferrer`,i.target=`_blank`,i.textContent=e||n,r.append(i),r}function N({alt:e,assetId:t,className:n,dataUrl:r,docxDataUrl:i,svgMarkup:a=``}){let o=document.createElement(`figure`);if(o.className=`export-diagram ${n}`.trim(),o.setAttribute(`data-export-asset-id`,t),o.setAttribute(`data-export-label`,e),i&&o.setAttribute(`data-export-docx-src`,i),a){let t=document.createElement(`div`);t.className=`export-diagram-surface`,t.innerHTML=a;let n=t.querySelector(`svg`);if(n){let{width:r}=x(n);t.style.width=`100%`,t.style.maxWidth=`${Math.ceil(r)}px`,n.classList.add(`export-diagram-svg`),n.setAttribute(`role`,`img`),n.setAttribute(`aria-label`,e),n.removeAttribute(`width`),n.removeAttribute(`height`)}return o.appendChild(t),o}let s=document.createElement(`img`);return s.alt=e,s.className=`export-diagram-image`,s.src=r,i&&s.setAttribute(`data-export-docx-src`,i),o.appendChild(s),o}async function P(){return h||(h=e(()=>import(`./mermaid-runtime-DqncQoYK.js`).then(e=>{let t=e?.default;if(!t)throw Error(`Mermaid runtime failed to initialize`);return t.initialize(d),t}),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]),import.meta.url),h)}function F(e){let t=String(e??``);if(/%%\{[\s\S]*?\binit\s*:/m.test(t)||(/^\s*stateDiagram(?:-v2)?\b/m.test(t)||/^\s*classDiagram\b/m.test(t)||/^\s*gantt\b/m.test(t))&&(t=`%%{init: ${JSON.stringify({htmlLabels:!1})}}%%\n${t}`),/^\s*gantt\b/m.test(t)&&!/\btodayMarker\b/.test(t)){let e=t.split(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./mermaid-runtime-C4a7TrTS.js","./preload-helper-Bo9GmnuQ.js","./chunk-PU5JKC2W-t0zUh6E3.js","./src-E3c2cohN.js","./chunk-DpHwWhuW.js","./chunk-GEFDOKGD-DYHmaq-c.js","./dist-CsYRf4AV.js","./math-BaavbII8.js","./chunk-7R4GIKGN-BMrp52Pk.js","./isArrayLikeObject-Cmt1CYnI.js","./isEmpty-C7iPDOO3.js","./chunk-GLR3WWYH-CQ1LryrI.js","./chunk-KYZI473N-D4r5eMJZ.js","./chunk-PQ6SQG4A-BY9_Srs_.js","./chunk-YBOYWFTD-CzyyfGQX.js","./rough.esm-jZQkcmER.js","./chunk-O4XLMI2P-DaS3COAu.js","./line-D57TbKb7.js","./path-BUmMWM1-.js","./array-DwdVlTkF.js","./chunk-MX3YWQON-DqN0TF5Q.js","./chunk-HHEYEP7N-DOQ0PCdH.js","./chunk-XPW4576I-C0GpOUHf.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Bo9GmnuQ.js";import{h as t}from"./vault-utils-BW53lKl1.js";import{t as n}from"./preview-render-compiler-aYpnXmNm.js";import{d as r,l as i}from"./runtime-config-CqX_f_Q4.js";import{a,o,u as s}from"./excalidraw-scene-BL-OtvCd.js";import{p as c}from"./preview-diagram-utils-Dc83ucbv.js";var l=`collabmd-export-page`,u=`collabmd-export-host`,d=Object.freeze({htmlLabels:!1,flowchart:{defaultRenderer:`dagre-wrapper`,useMaxWidth:!0},class:{defaultRenderer:`dagre-wrapper`,useMaxWidth:!0},startOnLoad:!1,theme:`default`}),f=1e4,p=10*1024*1024,ee=1e4,m=1,h=null,g=0;function _(e=`asset`){return g+=1,`${e}-${g.toString(36)}`}function v(e,n=``){return String(n??``).trim()||t(String(e??``).split(`/`).filter(Boolean).pop()||`document`)||`document`}function y(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function te(e){return new Promise((t,n)=>{let r=new FileReader;r.addEventListener(`load`,()=>t(String(r.result??``))),r.addEventListener(`error`,()=>n(r.error??Error(`Failed to read blob`))),r.readAsDataURL(e)})}function b(e){return new Promise((t,n)=>{let r=new Image;r.decoding=`async`,r.addEventListener(`load`,()=>t(r),{once:!0}),r.addEventListener(`error`,()=>n(Error(`Failed to load image: ${e}`)),{once:!0}),r.src=e})}function x(e){let t=Number.parseFloat(e.getAttribute(`width`)||``),n=Number.parseFloat(e.getAttribute(`height`)||``),r=(e.getAttribute(`viewBox`)||``).split(/\s+/).map(e=>Number.parseFloat(e)),i=Number.isFinite(t)&&t>0?t:Number.isFinite(r[2])&&r[2]>0?r[2]:1200;return{height:Number.isFinite(n)&&n>0?n:Number.isFinite(r[3])&&r[3]>0?r[3]:800,width:i}}function S(e,{padding:t=16}={}){let n=document.createElement(`div`);n.style.position=`fixed`,n.style.left=`-10000px`,n.style.top=`0`,n.style.visibility=`hidden`,n.style.pointerEvents=`none`,n.innerHTML=e,document.body.appendChild(n);try{let r=n.querySelector(`svg`);if(!(r instanceof SVGSVGElement))return e;let i=null;try{i=r.getBBox()}catch{return e}if(!i||i.width<=0||i.height<=0)return e;let a=Math.max(0,Number(t)||0),o=[Math.floor(i.x-a),Math.floor(i.y-a),Math.ceil(i.width+a*2),Math.ceil(i.height+a*2)],s=Math.ceil(i.width+a*2),c=Math.ceil(i.height+a*2);return r.setAttribute(`viewBox`,o.join(` `)),r.setAttribute(`preserveAspectRatio`,`xMidYMid meet`),r.setAttribute(`width`,String(s)),r.setAttribute(`height`,String(c)),r.outerHTML}finally{n.remove()}}function C(e,t={}){return S(c(e),t)}async function w(e){let t=await b(y(e)),n=document.createElement(`div`);n.innerHTML=e;let r=n.querySelector(`svg`),{width:i,height:a}=r?x(r):{height:t.naturalHeight||800,width:t.naturalWidth||1200},o=document.createElement(`canvas`);o.width=Math.max(1,Math.ceil(i)),o.height=Math.max(1,Math.ceil(a));let s=o.getContext(`2d`);if(!s)throw Error(`Canvas is unavailable`);return s.fillStyle=`#ffffff`,s.fillRect(0,0,o.width,o.height),s.drawImage(t,0,0,o.width,o.height),o.toDataURL(`image/png`)}async function T(e){let t=await b(e),n=document.createElement(`canvas`);n.width=Math.max(1,t.naturalWidth||t.width||1),n.height=Math.max(1,t.naturalHeight||t.height||1);let r=n.getContext(`2d`);if(!r)throw Error(`Canvas is unavailable`);return r.drawImage(t,0,0,n.width,n.height),n.toDataURL(`image/png`)}async function E(e,t={}){let n=await fetch(e,{headers:{Accept:`application/json`,...t.headers??{}},...t}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`Request failed: ${n.status}`);return r}async function D(e){let t=await E(i(`/file?path=${encodeURIComponent(e)}`));if(typeof t?.content!=`string`)throw Error(`Failed to load ${e}`);return t.content}async function O(e,{maxBytes:t=p,timeoutMs:n=f}={}){let r=new URL(e,window.location.href),i=new AbortController,a=window.setTimeout(()=>i.abort(),n),o;try{o=await fetch(r.toString(),{credentials:r.origin===window.location.origin?`same-origin`:`omit`,signal:i.signal})}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?Error(`Timed out while fetching asset: ${r.toString()}`,{cause:e}):e}finally{window.clearTimeout(a)}if(!o.ok)throw Error(`Failed to fetch asset: ${r.toString()}`);let s=Number.parseInt(o.headers.get(`content-length`)||``,10);if(Number.isFinite(s)&&s>t)throw Error(`Asset is too large to inline: ${r.toString()}`);let c=await o.blob();if(c.size>t)throw Error(`Asset is too large to inline: ${r.toString()}`);return te(c)}function ne(e){let t=new URL(r(`/`),window.location.origin);return t.hash=new URLSearchParams({file:e}).toString(),t.toString()}function k(e=``){let t;try{t=new URL(String(e||``).trim())}catch{return``}let n=t.hostname.toLowerCase();if(n===`youtu.be`||n===`www.youtu.be`)return t.pathname.split(`/`).filter(Boolean)[0]||``;if(n.includes(`youtube`)||n.includes(`youtube-nocookie`)){if(t.pathname===`/watch`)return t.searchParams.get(`v`)||``;if(t.pathname.startsWith(`/embed/`))return t.pathname.split(`/`).filter(Boolean)[1]||``}return``}function A(e,{assetId:t=``,docxPosterDataUrl:n=``,posterDataUrl:r=``}={}){let i=document.createElement(`figure`);i.className=`export-video-poster`,t&&i.setAttribute(`data-export-asset-id`,t);let a=document.createElement(`div`);if(a.className=`export-video-poster-card`,r){let t=document.createElement(`div`);t.className=`export-video-poster-media`;let i=document.createElement(`img`);i.alt=`${e.dataset.videoEmbedLabel||`Embedded video`} poster`,i.className=`export-video-poster-image`,i.src=r,i.setAttribute(`data-export-docx-src`,n||r),t.appendChild(i);let o=document.createElement(`span`);o.className=`export-video-play-badge`,o.setAttribute(`aria-hidden`,`true`),o.textContent=`Play`,t.appendChild(o),a.appendChild(t)}let o=document.createElement(`div`);o.className=`export-video-poster-copy`;let s=document.createElement(`strong`);s.textContent=e.dataset.videoEmbedLabel||`Embedded video`;let c=document.createElement(`span`);c.className=`export-video-poster-meta`,c.textContent=e.dataset.videoEmbedKind===`youtube`?`YouTube video`:`Video link`,o.append(s,c),a.appendChild(o);let l=document.createElement(`a`);return l.className=`export-video-link`,l.href=e.dataset.videoEmbedOriginalUrl||e.dataset.videoEmbedSource||e.dataset.videoEmbedUrl||`#`,l.target=`_blank`,l.rel=`noopener noreferrer`,l.textContent=l.href,i.append(a,l),i}async function re(e){let t=document.createElement(`video`);return t.muted=!0,t.playsInline=!0,t.preload=`metadata`,t.crossOrigin=`anonymous`,t.style.position=`fixed`,t.style.left=`-10000px`,t.style.top=`0`,t.style.width=`1px`,t.style.height=`1px`,new Promise((n,r)=>{let i=!1,a=e=>{i||(i=!0,window.clearTimeout(d),t.pause?.(),t.removeEventListener(`error`,c),t.removeEventListener(`loadeddata`,u),t.removeEventListener(`seeked`,l),t.remove(),e())},o=e=>{a(()=>r(Error(e)))},s=()=>{if(t.videoWidth<=0||t.videoHeight<=0){o(`Video poster capture returned no frame: ${e}`);return}try{let e=document.createElement(`canvas`);e.width=t.videoWidth,e.height=t.videoHeight;let r=e.getContext(`2d`);if(!r){o(`Canvas is unavailable`);return}r.drawImage(t,0,0,e.width,e.height);let i=e.toDataURL(`image/png`);a(()=>n(i))}catch(t){o(t instanceof Error?t.message:`Failed to capture video poster: ${e}`)}},c=()=>{o(`Failed to load video poster: ${e}`)},l=()=>{s()},u=()=>{let e=Number.isFinite(t.duration)?t.duration:0,n=e>0?Math.min(m,Math.max(e*.1,0)):0;if(n>.05)try{t.currentTime=n;return}catch{}s()},d=window.setTimeout(()=>{o(`Timed out while loading video poster: ${e}`)},ee);t.addEventListener(`error`,c,{once:!0}),t.addEventListener(`loadeddata`,u,{once:!0}),t.addEventListener(`seeked`,l,{once:!0}),document.body.appendChild(t),t.src=e,t.load()})}async function ie(e){let t=e.dataset.videoEmbedOriginalUrl||e.dataset.videoEmbedSource||``,n=e.dataset.videoEmbedUrl||``;if((e.dataset.videoEmbedKind||``)===`youtube`){let e=k(t)||k(n);if(!e)throw Error(`Failed to resolve YouTube video id for export`);let r=[`https://i.ytimg.com/vi_webp/${e}/maxresdefault.webp`,`https://i.ytimg.com/vi_webp/${e}/hqdefault.webp`,`https://i.ytimg.com/vi/${e}/maxresdefault.jpg`,`https://i.ytimg.com/vi/${e}/hqdefault.jpg`],i=null;for(let e of r)try{return await O(e,{maxBytes:3*1024*1024,timeoutMs:f})}catch(e){i=e}throw i instanceof Error?i:Error(`Failed to fetch YouTube thumbnail`)}if(!t)throw Error(`Missing video source for export poster`);return re(t)}async function j(e,t){let n=await ie(t),r=await T(n).catch(()=>n),i=B(e,{dataUrl:n,id:_(`video-poster`),kind:`video-poster`,mimeType:n.startsWith(`data:image/webp`)?`image/webp`:`image/png`,variants:{docx:r}});t.replaceWith(A(t,{assetId:i,docxPosterDataUrl:r,posterDataUrl:n}))}function M({alt:e=``,message:t=``,src:n=``}={}){let r=document.createElement(`span`);if(r.className=`export-warning export-image-fallback`,r.textContent=t||`Image export failed`,!n)return r;r.append(` `);let i=document.createElement(`a`);return i.href=n,i.rel=`noopener noreferrer`,i.target=`_blank`,i.textContent=e||n,r.append(i),r}function N({alt:e,assetId:t,className:n,dataUrl:r,docxDataUrl:i,svgMarkup:a=``}){let o=document.createElement(`figure`);if(o.className=`export-diagram ${n}`.trim(),o.setAttribute(`data-export-asset-id`,t),o.setAttribute(`data-export-label`,e),i&&o.setAttribute(`data-export-docx-src`,i),a){let t=document.createElement(`div`);t.className=`export-diagram-surface`,t.innerHTML=a;let n=t.querySelector(`svg`);if(n){let{width:r}=x(n);t.style.width=`100%`,t.style.maxWidth=`${Math.ceil(r)}px`,n.classList.add(`export-diagram-svg`),n.setAttribute(`role`,`img`),n.setAttribute(`aria-label`,e),n.removeAttribute(`width`),n.removeAttribute(`height`)}return o.appendChild(t),o}let s=document.createElement(`img`);return s.alt=e,s.className=`export-diagram-image`,s.src=r,i&&s.setAttribute(`data-export-docx-src`,i),o.appendChild(s),o}async function P(){return h||(h=e(()=>import(`./mermaid-runtime-C4a7TrTS.js`).then(e=>{let t=e?.default;if(!t)throw Error(`Mermaid runtime failed to initialize`);return t.initialize(d),t}),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]),import.meta.url),h)}function F(e){let t=String(e??``);if(/%%\{[\s\S]*?\binit\s*:/m.test(t)||(/^\s*stateDiagram(?:-v2)?\b/m.test(t)||/^\s*classDiagram\b/m.test(t)||/^\s*gantt\b/m.test(t))&&(t=`%%{init: ${JSON.stringify({htmlLabels:!1})}}%%\n${t}`),/^\s*gantt\b/m.test(t)&&!/\btodayMarker\b/.test(t)){let e=t.split(`
|
|
3
3
|
`),n=e.findIndex(e=>/^\s*gantt\b/.test(e));n!==-1&&(e.splice(n+1,0,` todayMarker off`),t=e.join(`
|
|
4
4
|
`))}return t}async function I(e){let t=await P();t.initialize(d);let n=document.createElement(`div`);n.style.position=`fixed`,n.style.left=`-10000px`,n.style.top=`0`,n.style.width=`1200px`,document.body.appendChild(n);try{let r=document.createElement(`div`);r.className=`mermaid`,r.id=_(`mermaid-render`),r.textContent=F(e),n.appendChild(r),await t.run({nodes:[r]});let i=r.querySelector(`svg`);if(!i)throw Error(`Mermaid render returned no SVG`);return C(i.outerHTML,{padding:24})}finally{n.remove()}}async function L(e){let t=await E(i(`/plantuml/render`),{body:JSON.stringify({source:e}),headers:{"Content-Type":`application/json`},method:`POST`});if(typeof t?.svg!=`string`||!t.svg.includes(`<svg`))throw Error(`PlantUML render returned no SVG`);return C(t.svg,{padding:16})}async function R(e){let t=o(a(await D(e)),{theme:`light`});return C((await s({appState:{...t.appState,exportBackground:!0,exportWithDarkMode:!1},elements:t.elements.filter(e=>!e.isDeleted),exportPadding:24,files:t.files||null})).outerHTML,{padding:24})}async function z(e){let t=_(`drawio-export`);return new Promise((n,i)=>{let a=document.createElement(`iframe`);a.className=`drawio-export-iframe`,a.src=(()=>{let n=new URL(r(`/drawio-editor.html`),window.location.origin);return n.searchParams.set(`file`,e),n.searchParams.set(`hostMode`,`export-image`),n.searchParams.set(`instanceId`,t),n.searchParams.set(`mode`,`view`),n.searchParams.set(`theme`,`light`),n.searchParams.set(`previewWidth`,`1200`),n.toString()})();let o=window.setTimeout(()=>{c(),i(Error(`Timed out while exporting draw.io diagram`))},2e4),s=e=>{if(e.origin!==window.location.origin)return;let r=e.data;if(!(!r||r.source!==`drawio-editor`||r.instanceId!==t)){if(r.type===`export-image`&&typeof r.data==`string`&&r.data){c(),n(r.data);return}(r.type===`error`||r.type===`fallback-text`)&&(c(),i(Error(r.message||`Failed to export draw.io diagram`)))}},c=()=>{window.clearTimeout(o),window.removeEventListener(`message`,s),a.remove()};window.addEventListener(`message`,s),document.body.appendChild(a)})}function B(e,t){return e.assets[t.id]=t,t.id}async function V(e,t,{label:n,prefix:r,render:i}){let a=t.querySelector(`.${r}-source`)?.textContent??``,o=t.dataset[`${r}Target`];if(!a.trim()&&o&&(a=await D(o)),!a.trim())throw Error(`${n} source is empty`);let s=await i(a,o),c=y(s),l=await w(s),u=B(e,{dataUrl:c,id:_(r),kind:`svg`,mimeType:`image/svg+xml`,text:s,variants:{docx:l}});t.replaceWith(N({alt:n,assetId:u,className:`export-diagram--${r}`,dataUrl:c,docxDataUrl:l,svgMarkup:s}))}async function H(e,t){let n=String(t.dataset.embedTarget??``).trim();if(!n)throw Error(`Missing Excalidraw file path`);let r=await R(n),i=y(r),a=await w(r),o=B(e,{dataUrl:i,id:_(`excalidraw`),kind:`svg`,mimeType:`image/svg+xml`,text:r,variants:{docx:a}});t.replaceWith(N({alt:t.dataset.embedLabel||`Excalidraw diagram`,assetId:o,className:`export-diagram--excalidraw`,dataUrl:i,docxDataUrl:a,svgMarkup:r}))}async function U(e,t){let n=String(t.dataset.drawioTarget??``).trim();if(!n)throw Error(`Missing draw.io file path`);let r=await z(n),i=B(e,{dataUrl:r,id:_(`drawio`),kind:`png`,mimeType:`image/png`});t.replaceWith(N({alt:t.dataset.drawioLabel||`draw.io diagram`,assetId:i,className:`export-diagram--drawio`,dataUrl:r,docxDataUrl:r}))}async function W(e,t){let n=Array.from(t.querySelectorAll(`img`));for(let t of n){let n=t.getAttribute(`src`)||``;if(!(!n||n.startsWith(`data:`)))try{let r=await O(new URL(n,window.location.href).toString()),i=B(e,{dataUrl:r,id:_(`image`),kind:`image`,mimeType:r.startsWith(`data:image/svg+xml`)?`image/svg+xml`:`image/png`});t.src=r,t.setAttribute(`data-export-asset-id`,i),t.setAttribute(`data-export-docx-src`,r)}catch(r){let i=r instanceof Error?r.message:`Failed to inline ${n}`;e.warnings.push(i),t.replaceWith(M({alt:t.getAttribute(`alt`)||``,message:`Image export failed: ${i}. Source:`,src:n}))}}}function G(e){Array.from(e.querySelectorAll(`.wiki-link[data-wiki-target]`)).forEach(e=>{let t=String(e.getAttribute(`data-wiki-target`)||``).trim();t&&(e.setAttribute(`href`,ne(t)),e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`))})}function K(e){Array.from(e.querySelectorAll(`.task-list-item input[type="checkbox"]`)).forEach(e=>{e.setAttribute(`disabled`,`true`)})}async function ae(e,{container:t}={}){G(t),K(t);let n=Array.from(t.querySelectorAll(`.video-embed-placeholder[data-video-embed-key]`));for(let t of n)try{await j(e,t)}catch(n){e.warnings.push(n instanceof Error?n.message:`Failed to render video poster`),t.replaceWith(A(t))}let r=Array.from(t.querySelectorAll(`.mermaid-shell[data-mermaid-key]`));for(let t of r)try{await V(e,t,{label:t.dataset.mermaidLabel||`Mermaid diagram`,prefix:`mermaid`,render:e=>I(e)})}catch(n){e.warnings.push(n instanceof Error?n.message:`Failed to render Mermaid diagram`),t.replaceWith(Object.assign(document.createElement(`p`),{className:`export-warning`,textContent:`Mermaid export failed: ${n instanceof Error?n.message:`Unknown error`}`}))}let i=Array.from(t.querySelectorAll(`.plantuml-shell[data-plantuml-key]`));for(let t of i)try{await V(e,t,{label:t.dataset.plantumlLabel||`PlantUML diagram`,prefix:`plantuml`,render:e=>L(e)})}catch(n){e.warnings.push(n instanceof Error?n.message:`Failed to render PlantUML diagram`),t.replaceWith(Object.assign(document.createElement(`p`),{className:`export-warning`,textContent:`PlantUML export failed: ${n instanceof Error?n.message:`Unknown error`}`}))}let a=Array.from(t.querySelectorAll(`.excalidraw-embed-placeholder[data-embed-key]`));for(let t of a)try{await H(e,t)}catch(n){e.warnings.push(n instanceof Error?n.message:`Failed to render Excalidraw diagram`),t.replaceWith(Object.assign(document.createElement(`p`),{className:`export-warning`,textContent:`Excalidraw export failed: ${n instanceof Error?n.message:`Unknown error`}`}))}let o=Array.from(t.querySelectorAll(`.drawio-embed-placeholder[data-drawio-key]`));for(let t of o)try{await U(e,t)}catch(n){e.warnings.push(n instanceof Error?n.message:`Failed to render draw.io diagram`),t.replaceWith(Object.assign(document.createElement(`p`),{className:`export-warning`,textContent:`draw.io export failed: ${n instanceof Error?n.message:`Unknown error`}`}))}return await W(e,t),e}async function q({fileList:e=[],filePath:t,markdownText:r=``,title:a=``}={}){let o=String(t??``).trim(),s=String(r??``),c={assets:{},filePath:o,generatedAt:new Date().toISOString(),html:``,sourceMarkdown:s,title:v(o,a),warnings:[]},l=n({attachmentApiPath:i(`/attachment`),fileList:e,markdownText:s,sourceFilePath:o}),u=document.createElement(`div`);return u.className=`preview-content export-content`,u.innerHTML=l.html,await ae(c,{container:u}),c.html=u.innerHTML,c}function J(e,{borderColor:t=`#d1d5db`,cellPadding:n=`8px 10px`,headerBackground:r=`#f3f4f6`}={}){e.setAttribute(`border`,`1`),e.setAttribute(`cellpadding`,`0`),e.setAttribute(`cellspacing`,`0`),e.style.width=`100%`,e.style.borderCollapse=`collapse`,e.style.border=`1px solid ${t}`,e.style.margin=`0 0 16px`,Array.from(e.querySelectorAll(`th`)).forEach(e=>{e.style.border=`1px solid ${t}`,e.style.padding=n,e.style.background=r,e.style.textAlign=`left`,e.style.verticalAlign=`top`}),Array.from(e.querySelectorAll(`td`)).forEach(e=>{e.style.border=`1px solid ${t}`,e.style.padding=n,e.style.textAlign=`left`,e.style.verticalAlign=`top`})}function Y({contentNodes:e=[],borderColor:t=`#d1d5db`,padding:n=`12px`,shade:r=``}={}){let i=document.createElement(`table`);i.setAttribute(`border`,`1`),i.setAttribute(`cellpadding`,`0`),i.setAttribute(`cellspacing`,`0`),i.style.width=`100%`,i.style.borderCollapse=`collapse`,i.style.border=`1px solid ${t}`,i.style.margin=`0 0 16px`;let a=document.createElement(`tr`),o=document.createElement(`td`);return o.style.border=`1px solid ${t}`,o.style.padding=n,o.style.verticalAlign=`top`,r&&(o.style.background=r),e.forEach(e=>{e&&o.appendChild(e)}),a.appendChild(o),i.appendChild(a),i}function oe(e){let t=document.createElement(`table`);t.setAttribute(`role`,`presentation`),t.setAttribute(`cellpadding`,`0`),t.setAttribute(`cellspacing`,`0`),t.style.width=`100%`,t.style.borderCollapse=`collapse`,t.style.margin=`0 0 16px`,t.style.tableLayout=`fixed`;let n=document.createElement(`colgroup`),r=document.createElement(`col`);r.style.width=`6px`;let i=document.createElement(`col`);n.append(r,i),t.appendChild(n);let a=document.createElement(`tr`),o=document.createElement(`td`);o.style.background=`#6366f1`,o.style.width=`6px`,o.style.padding=`0`,o.style.fontSize=`0`,o.style.lineHeight=`0`,o.innerHTML=` `;let s=document.createElement(`td`);s.style.background=`#f8fafc`,s.style.padding=`12px 16px`,s.style.verticalAlign=`top`,s.style.color=`#4b5563`,Array.from(e.childNodes).forEach(e=>{s.appendChild(e.cloneNode(!0))});let c=s.querySelector(`p`);c&&(c.style.marginTop=`0`),Array.from(s.querySelectorAll(`p`)).forEach(e=>{e.style.margin=`0 0 10px`});let l=s.querySelector(`p:last-of-type`);return l&&(l.style.marginBottom=`0`),a.append(o,s),t.appendChild(a),t}function se(e){let t=(e.textContent||``).replace(/\r\n/g,`
|
|
5
5
|
`).split(`
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./export-page-B6xYnwy7.js","./preload-helper-Bo9GmnuQ.js","./excalidraw-scene-BL-OtvCd.js","./chunk-DpHwWhuW.js","./chunk-NU2UP6EN-CGeKI3BV.js","./chunk-A66AFZZU-DuceaGnc.js","./chunk-SRAX5OIU-CC2mobFL.js","./chunk-3PELD44J-CL87tpFo.js","./chunk-AXZTUZBK-Cxfm7hmm.js","./jsx-runtime-DiaMmmG6.js","./excalidraw-mermaid-stub-B_2dv3Ll.js","./preview-render-compiler-aYpnXmNm.js","./preview-render-profile-DPzmho7I.js","./vault-utils-BW53lKl1.js","./preview-diagram-utils-Dc83ucbv.js","./runtime-config-CqX_f_Q4.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./runtime-config-loader-_D2KZKn-.js";import{t}from"./preload-helper-Bo9GmnuQ.js";import{t as n}from"./base-h1uscjTi.js";function r(){let e=document.getElementById(`hljs-theme`);e instanceof HTMLLinkElement||(e=document.createElement(`link`),e.id=`hljs-theme`,e.rel=`stylesheet`,document.head.appendChild(e)),e.href=n}await e(),r(),await t(()=>import(`./export-page-B6xYnwy7.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--text-xs:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm:clamp(.875rem, .8rem + .35vw, 1rem);--text-base:clamp(1rem, .9rem + .5vw, 1.125rem);--text-lg:clamp(1.125rem, .95rem + .85vw, 1.5rem);--text-xl:clamp(1.5rem, 1rem + 1.5vw, 2.25rem);--text-2xl:clamp(2rem, 1.2rem + 2.5vw, 3.5rem);--text-label:12px;--text-meta:11px;--text-caption:10px;--text-micro:9px;--text-code-sm:11.5px;--text-ui-sm:13px;--text-ui-md:14px;--text-title-sm:15px;--text-title-md:18px;--font-body:"Inter", system-ui, sans-serif;--font-display:"Geist", "Cal Sans", "Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xs:2px;--radius-xs:4px;--radius-lg-plus:10px;--radius-xl-plus:18px;--radius-full:9999px;--transition-interactive:.18s cubic-bezier(.16, 1, .3, 1);--content-narrow:640px;--content-default:960px;--content-wide:1200px;--preview-content-width:720px;--panel-comments-width:min(300px, 34vw);--panel-comments-min-width:240px;--panel-outline-width:220px;--toolbar-h:48px;--control-h-xs:28px;--control-h-sm:30px;--control-h-md:36px;--control-h-lg:44px;--control-icon-sm:14px;--control-icon-md:16px;--panel-border-width:1px}:root,[data-theme=light]{--color-bg:#f5f5f7;--color-surface:#fff;--color-surface-2:#fafafe;--color-surface-offset:#eeeef2;--color-surface-offset-2:#e6e6eb;--color-surface-dynamic:#dddde3;--color-surface-raised:#fff;--color-surface-ink:#0f1117;--color-divider:#d1d1d8;--color-border:#c4c4ce;--color-text:#1a1a2e;--color-text-muted:#6b6b80;--color-text-faint:#a0a0b0;--color-text-inverse:#f5f5f7;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-active:#3730a3;--color-primary-highlight:#e0e0ff;--color-comment:#4f46e5;--color-comment-soft:#4f46e514;--color-comment-strong:#4f46e524;--color-comment-text:#3730a3;--color-error:#dc2626;--color-error-highlight:#fce8e8;--color-success:#16a34a;--color-success-highlight:#dcfce7;--color-warning:#d97706;--color-warning-highlight:#fef3c7;--diff-add-bg:#16a34a0f;--diff-add-line-bg:#16a34a24;--diff-add-text:#16a34a;--diff-del-bg:#dc26260f;--diff-del-line-bg:#dc262624;--diff-del-text:#dc2626;--diff-hunk-bg:#4f46e514;--diff-hunk-text:#4f46e5;--diff-gutter:#a0a0b0;--surface-fill-subtle:color-mix(in oklab, var(--color-surface) 92%, var(--color-surface-offset) 8%);--surface-fill-strong:color-mix(in oklab, var(--color-surface-offset) 72%, var(--color-surface-offset-2) 28%);--surface-overlay:color-mix(in srgb, var(--color-surface) 84%, var(--color-surface-offset) 16%);--surface-overlay-soft:color-mix(in srgb, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-overlay-strong:color-mix(in srgb, var(--color-surface) 90%, var(--color-surface-offset) 10%);--surface-overlay-raised:color-mix(in oklab, var(--color-surface) 94%, transparent);--surface-overlay-header:color-mix(in srgb, var(--color-surface-offset) 76%, var(--color-bg) 24%);--surface-overlay-offset:color-mix(in oklab, var(--color-surface-offset) 82%, transparent);--surface-scrim:oklch(10% 0 0/.42);--surface-scrim-strong:oklch(8% .01 260/.82);--surface-inverse-glass:oklch(18% .02 260/.68);--surface-inverse-glass-hover:oklch(24% .02 260/.82);--surface-media-canvas:#000;--surface-embed-canvas:#fff;--surface-avatar-muted:#ffffff38;--surface-avatar-label:#0f1117d6;--surface-accent-subtle:color-mix(in oklab, var(--color-primary) 8%, var(--color-surface));--surface-accent-soft:color-mix(in oklab, var(--color-primary) 16%, transparent);--surface-accent-strong:color-mix(in oklab, var(--color-primary) 22%, transparent);--surface-success-soft:color-mix(in oklab, var(--color-success) 14%, transparent);--surface-warning-soft:color-mix(in oklab, var(--color-warning) 14%, transparent);--surface-danger-soft:color-mix(in oklab, var(--color-error) 14%, transparent);--surface-comment-shell:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .035), transparent 120px), color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-shell-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .028), transparent 70%), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-record-hover:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .042), transparent 70%), color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-record-active:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .055), transparent 72%), color-mix(in srgb, var(--color-surface-2) 90%, var(--color-comment) 10%);--surface-comment-subtle:color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-subtle-strong:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-card:color-mix(in srgb, var(--color-surface) 94%, var(--color-comment) 6%);--surface-comment-elevated:color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-offset:color-mix(in srgb, var(--color-surface-offset) 90%, var(--color-comment) 10%);--surface-comment-offset-soft:color-mix(in srgb, var(--color-surface-offset) 88%, var(--color-comment) 12%);--surface-comment-offset-strong:color-mix(in srgb, var(--color-surface-offset) 84%, var(--color-comment) 16%);--surface-comment-offset-active:color-mix(in srgb, var(--color-surface-offset) 72%, var(--color-comment) 28%);--surface-comment-highlight-hover:color-mix(in srgb, var(--color-comment-soft) 74%, var(--color-comment) 26%);--surface-comment-highlight-active:color-mix(in srgb, var(--color-comment-soft) 62%, var(--color-comment) 38%);--surface-comment-selection:color-mix(in srgb, var(--color-surface) 25%, var(--color-comment) 75%);--surface-comment-preview-fade:linear-gradient(180deg, oklch(0% 0 0/0), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%));--border-comment-soft:color-mix(in srgb, var(--color-divider) 90%, var(--color-comment) 10%);--border-comment-muted:color-mix(in srgb, var(--color-divider) 88%, var(--color-comment) 12%);--border-comment-strong:color-mix(in srgb, var(--color-border) 82%, var(--color-comment) 18%);--border-comment-active:color-mix(in srgb, var(--color-border) 78%, var(--color-comment) 22%);--shadow-comment-outline:0 0 0 1px oklch(from var(--color-comment) l c h / .14);--surface-warning-toast:linear-gradient(135deg, oklab(94.9166% -.0018052 .0644112), oklab(99.8777% .00026585 .000908241) 42%), #fff8e7;--border-warning-toast:oklab(73.4461% .062398 .147608);--text-warning-toast:#422006;--shadow-warning-toast:0 16px 30px #542e0a2e, 0 0 0 1px #f59e0b1f;--border-accent-soft:color-mix(in oklab, var(--color-primary) 22%, transparent);--border-accent-muted:color-mix(in oklab, var(--color-primary) 24%, var(--color-border));--border-accent-strong:color-mix(in oklab, var(--color-primary) 34%, var(--color-border));--border-accent-stronger:color-mix(in oklab, var(--color-primary) 40%, var(--color-border));--shadow-accent-inset:inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 14%, transparent);--shadow-accent-outline:0 0 0 1px color-mix(in oklab, var(--color-primary) 16%, transparent);--shadow-accent-halo:0 0 0 3px oklch(from var(--color-primary) l c h / .16);--shadow-accent-ring:0 0 0 2px var(--color-surface), 0 0 0 4px oklch(from var(--color-primary) l c h / .18);--shadow-accent-ring-strong:0 0 0 2px var(--color-bg), 0 0 0 4px oklch(from var(--color-primary) l c h / .45);--shadow-accent-ring-solid:0 0 0 2px var(--color-primary), 0 0 0 4px oklch(from var(--color-primary) l c h / .2);--shadow-elevated-soft:0 10px 24px color-mix(in oklab, var(--color-surface-ink) 10%, transparent);--shadow-floating-soft:0 14px 34px oklch(0% 0 0/.18);--shadow-floating-hover:0 18px 40px oklch(0% 0 0/.2);--shadow-media-soft:0 16px 40px oklch(0% 0 0/.24);--shadow-media-stage:0 28px 80px oklch(0% 0 0/.28);--shadow-media-modal:0 10px 40px #00000059;--shadow-card-strong:0 20px 56px oklch(0% 0 0/.24);--shadow-sheet-inset:inset 0 1px 0 color-mix(in oklab, var(--color-text) 4%, transparent);--shadow-focus:0 0 0 3px oklch(from var(--color-primary) l c h / .15);--shadow-focus-compact:0 0 0 2px oklch(from var(--color-primary) l c h / .45);--interactive-border:color-mix(in oklab, var(--color-primary) 22%, transparent);--interactive-surface:color-mix(in oklab, var(--color-primary) 14%, transparent);--color-text-on-dark:#fff;--shadow-sm:0 1px 2px oklch(20% .02 260/.06);--shadow-md:0 4px 12px oklch(20% .02 260/.08);--shadow-lg:0 12px 32px oklch(20% .02 260/.12)}[data-theme=dark]{--color-bg:#0f1117;--color-surface:#161822;--color-surface-2:#1c1e2c;--color-surface-offset:#1a1c28;--color-surface-offset-2:#22243a;--color-surface-dynamic:#2a2c3e;--color-surface-raised:#202330;--color-surface-ink:#050608;--color-divider:#2e3044;--color-border:#383a50;--color-text:#e2e2ea;--color-text-muted:#8b8ba0;--color-text-faint:#5a5a70;--color-text-inverse:#0f1117;--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-primary-active:#4f46e5;--color-primary-highlight:#1e1e3a;--color-comment:#818cf8;--color-comment-soft:#818cf81a;--color-comment-strong:#818cf829;--color-comment-text:#c7d2fe;--color-error:#f87171;--color-error-highlight:#2a1a1a;--color-success:#4ade80;--color-success-highlight:#1a2a1a;--color-warning:#fbbf24;--color-warning-highlight:#2a261a;--diff-add-bg:#4ade8014;--diff-add-line-bg:#4ade8026;--diff-add-text:#4ade80;--diff-del-bg:#f8717114;--diff-del-line-bg:#f8717126;--diff-del-text:#f87171;--diff-hunk-bg:#818cf81a;--diff-hunk-text:#818cf8;--diff-gutter:#5a5a70;--surface-fill-subtle:color-mix(in oklab, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-fill-strong:color-mix(in oklab, var(--color-surface-offset) 60%, var(--color-surface-offset-2) 40%);--surface-overlay:color-mix(in srgb, var(--color-surface) 84%, var(--color-surface-offset) 16%);--surface-overlay-soft:color-mix(in srgb, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-overlay-strong:color-mix(in srgb, var(--color-surface) 90%, var(--color-surface-offset) 10%);--surface-overlay-raised:color-mix(in oklab, var(--color-surface) 94%, transparent);--surface-overlay-header:color-mix(in srgb, var(--color-surface-offset) 76%, var(--color-bg) 24%);--surface-overlay-offset:color-mix(in oklab, var(--color-surface-offset) 82%, transparent);--surface-scrim:oklch(10% 0 0/.42);--surface-scrim-strong:oklch(8% .01 260/.82);--surface-inverse-glass:oklch(18% .02 260/.68);--surface-inverse-glass-hover:oklch(24% .02 260/.82);--surface-media-canvas:#000;--surface-embed-canvas:#121212;--surface-avatar-muted:#ffffff38;--surface-avatar-label:#0f1117d6;--surface-accent-subtle:color-mix(in oklab, var(--color-primary) 8%, var(--color-surface));--surface-accent-soft:color-mix(in oklab, var(--color-primary) 16%, transparent);--surface-accent-strong:color-mix(in oklab, var(--color-primary) 22%, transparent);--surface-success-soft:color-mix(in oklab, var(--color-success) 14%, transparent);--surface-warning-soft:color-mix(in oklab, var(--color-warning) 14%, transparent);--surface-danger-soft:color-mix(in oklab, var(--color-error) 14%, transparent);--surface-comment-shell:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .035), transparent 120px), color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-shell-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .028), transparent 70%), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-record-hover:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .042), transparent 70%), color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-record-active:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .055), transparent 72%), color-mix(in srgb, var(--color-surface-2) 90%, var(--color-comment) 10%);--surface-comment-subtle:color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-subtle-strong:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-card:color-mix(in srgb, var(--color-surface) 94%, var(--color-comment) 6%);--surface-comment-elevated:color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-offset:color-mix(in srgb, var(--color-surface-offset) 90%, var(--color-comment) 10%);--surface-comment-offset-soft:color-mix(in srgb, var(--color-surface-offset) 88%, var(--color-comment) 12%);--surface-comment-offset-strong:color-mix(in srgb, var(--color-surface-offset) 84%, var(--color-comment) 16%);--surface-comment-offset-active:color-mix(in srgb, var(--color-surface-offset) 72%, var(--color-comment) 28%);--surface-comment-highlight-hover:color-mix(in srgb, var(--color-comment-soft) 74%, var(--color-comment) 26%);--surface-comment-highlight-active:color-mix(in srgb, var(--color-comment-soft) 62%, var(--color-comment) 38%);--surface-comment-selection:color-mix(in srgb, var(--color-surface) 25%, var(--color-comment) 75%);--surface-comment-preview-fade:linear-gradient(180deg, oklch(0% 0 0/0), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%));--border-comment-soft:color-mix(in srgb, var(--color-divider) 90%, var(--color-comment) 10%);--border-comment-muted:color-mix(in srgb, var(--color-divider) 88%, var(--color-comment) 12%);--border-comment-strong:color-mix(in srgb, var(--color-border) 82%, var(--color-comment) 18%);--border-comment-active:color-mix(in srgb, var(--color-border) 78%, var(--color-comment) 22%);--shadow-comment-outline:0 0 0 1px oklch(from var(--color-comment) l c h / .14);--surface-warning-toast:linear-gradient(135deg, oklab(76.8591% .0560995 .154808/.32), color-mix(in oklab, var(--color-surface) 86%, #0b1022 14%) 42%), color-mix(in oklab, var(--color-surface) 74%, #1b1320 26%);--border-warning-toast:oklab(79.4887% .0497246 .137216/.88);--text-warning-toast:oklab(99.6952% -.000454402 .00461993);--shadow-warning-toast:0 18px 34px #00000061, 0 0 0 1px oklab(76.8591% .0560995 .154808/.18);--border-accent-soft:color-mix(in oklab, var(--color-primary) 22%, transparent);--border-accent-muted:color-mix(in oklab, var(--color-primary) 24%, var(--color-border));--border-accent-strong:color-mix(in oklab, var(--color-primary) 34%, var(--color-border));--border-accent-stronger:color-mix(in oklab, var(--color-primary) 40%, var(--color-border));--shadow-accent-inset:inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 14%, transparent);--shadow-accent-outline:0 0 0 1px color-mix(in oklab, var(--color-primary) 16%, transparent);--shadow-accent-halo:0 0 0 3px oklch(from var(--color-primary) l c h / .16);--shadow-accent-ring:0 0 0 2px var(--color-surface), 0 0 0 4px oklch(from var(--color-primary) l c h / .18);--shadow-accent-ring-strong:0 0 0 2px var(--color-bg), 0 0 0 4px oklch(from var(--color-primary) l c h / .45);--shadow-accent-ring-solid:0 0 0 2px var(--color-primary), 0 0 0 4px oklch(from var(--color-primary) l c h / .2);--shadow-elevated-soft:0 10px 24px color-mix(in oklab, var(--color-surface-ink) 10%, transparent);--shadow-floating-soft:0 14px 34px oklch(0% 0 0/.18);--shadow-floating-hover:0 18px 40px oklch(0% 0 0/.2);--shadow-media-soft:0 16px 40px oklch(0% 0 0/.24);--shadow-media-stage:0 28px 80px oklch(0% 0 0/.28);--shadow-media-modal:0 16px 48px #0009;--shadow-card-strong:0 20px 56px oklch(0% 0 0/.24);--shadow-sheet-inset:inset 0 1px 0 color-mix(in oklab, var(--color-text) 4%, transparent);--shadow-focus:0 0 0 3px oklch(from var(--color-primary) l c h / .15);--shadow-focus-compact:0 0 0 2px oklch(from var(--color-primary) l c h / .45);--interactive-border:color-mix(in oklab, var(--color-primary) 32%, transparent);--interactive-surface:color-mix(in oklab, var(--color-primary) 18%, transparent);--color-text-on-dark:#fff;--shadow-sm:0 1px 2px oklch(0% 0 0/.25);--shadow-md:0 4px 12px oklch(0% 0 0/.35);--shadow-lg:0 12px 32px oklch(0% 0 0/.5)}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:#0f1117;--color-surface:#161822;--color-surface-2:#1c1e2c;--color-surface-offset:#1a1c28;--color-surface-offset-2:#22243a;--color-surface-dynamic:#2a2c3e;--color-surface-raised:#202330;--color-surface-ink:#050608;--color-divider:#2e3044;--color-border:#383a50;--color-text:#e2e2ea;--color-text-muted:#8b8ba0;--color-text-faint:#5a5a70;--color-text-inverse:#0f1117;--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-primary-active:#4f46e5;--color-primary-highlight:#1e1e3a;--color-comment:#818cf8;--color-comment-soft:#818cf81a;--color-comment-strong:#818cf829;--color-comment-text:#c7d2fe;--color-error:#f87171;--color-error-highlight:#2a1a1a;--color-success:#4ade80;--color-success-highlight:#1a2a1a;--color-warning:#fbbf24;--color-warning-highlight:#2a261a;--surface-fill-subtle:color-mix(in oklab, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-fill-strong:color-mix(in oklab, var(--color-surface-offset) 60%, var(--color-surface-offset-2) 40%);--surface-overlay:color-mix(in srgb, var(--color-surface) 84%, var(--color-surface-offset) 16%);--surface-overlay-soft:color-mix(in srgb, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-overlay-strong:color-mix(in srgb, var(--color-surface) 90%, var(--color-surface-offset) 10%);--surface-overlay-raised:color-mix(in oklab, var(--color-surface) 94%, transparent);--surface-overlay-header:color-mix(in srgb, var(--color-surface-offset) 76%, var(--color-bg) 24%);--surface-overlay-offset:color-mix(in oklab, var(--color-surface-offset) 82%, transparent);--surface-scrim:oklch(10% 0 0/.42);--surface-scrim-strong:oklch(8% .01 260/.82);--surface-inverse-glass:oklch(18% .02 260/.68);--surface-inverse-glass-hover:oklch(24% .02 260/.82);--surface-media-canvas:#000;--surface-embed-canvas:#121212;--surface-avatar-muted:#ffffff38;--surface-avatar-label:#0f1117d6;--surface-accent-subtle:color-mix(in oklab, var(--color-primary) 8%, var(--color-surface));--surface-accent-soft:color-mix(in oklab, var(--color-primary) 16%, transparent);--surface-accent-strong:color-mix(in oklab, var(--color-primary) 22%, transparent);--surface-success-soft:color-mix(in oklab, var(--color-success) 14%, transparent);--surface-warning-soft:color-mix(in oklab, var(--color-warning) 14%, transparent);--surface-danger-soft:color-mix(in oklab, var(--color-error) 14%, transparent);--surface-comment-shell:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .035), transparent 120px), color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-shell-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .028), transparent 70%), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-record-hover:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .042), transparent 70%), color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-record-active:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .055), transparent 72%), color-mix(in srgb, var(--color-surface-2) 90%, var(--color-comment) 10%);--surface-comment-subtle:color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-subtle-strong:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-card:color-mix(in srgb, var(--color-surface) 94%, var(--color-comment) 6%);--surface-comment-elevated:color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-offset:color-mix(in srgb, var(--color-surface-offset) 90%, var(--color-comment) 10%);--surface-comment-offset-soft:color-mix(in srgb, var(--color-surface-offset) 88%, var(--color-comment) 12%);--surface-comment-offset-strong:color-mix(in srgb, var(--color-surface-offset) 84%, var(--color-comment) 16%);--surface-comment-offset-active:color-mix(in srgb, var(--color-surface-offset) 72%, var(--color-comment) 28%);--surface-comment-highlight-hover:color-mix(in srgb, var(--color-comment-soft) 74%, var(--color-comment) 26%);--surface-comment-highlight-active:color-mix(in srgb, var(--color-comment-soft) 62%, var(--color-comment) 38%);--surface-comment-selection:color-mix(in srgb, var(--color-surface) 25%, var(--color-comment) 75%);--surface-comment-preview-fade:linear-gradient(180deg, oklch(0% 0 0/0), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%));--border-comment-soft:color-mix(in srgb, var(--color-divider) 90%, var(--color-comment) 10%);--border-comment-muted:color-mix(in srgb, var(--color-divider) 88%, var(--color-comment) 12%);--border-comment-strong:color-mix(in srgb, var(--color-border) 82%, var(--color-comment) 18%);--border-comment-active:color-mix(in srgb, var(--color-border) 78%, var(--color-comment) 22%);--shadow-comment-outline:0 0 0 1px oklch(from var(--color-comment) l c h / .14);--surface-warning-toast:linear-gradient(135deg, oklab(76.8591% .0560995 .154808/.32), color-mix(in oklab, var(--color-surface) 86%, #0b1022 14%) 42%), color-mix(in oklab, var(--color-surface) 74%, #1b1320 26%);--border-warning-toast:oklab(79.4887% .0497246 .137216/.88);--text-warning-toast:oklab(99.6952% -.000454402 .00461993);--shadow-warning-toast:0 18px 34px #00000061, 0 0 0 1px oklab(76.8591% .0560995 .154808/.18);--border-accent-soft:color-mix(in oklab, var(--color-primary) 22%, transparent);--border-accent-muted:color-mix(in oklab, var(--color-primary) 24%, var(--color-border));--border-accent-strong:color-mix(in oklab, var(--color-primary) 34%, var(--color-border));--border-accent-stronger:color-mix(in oklab, var(--color-primary) 40%, var(--color-border));--shadow-accent-inset:inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 14%, transparent);--shadow-accent-outline:0 0 0 1px color-mix(in oklab, var(--color-primary) 16%, transparent);--shadow-accent-halo:0 0 0 3px oklch(from var(--color-primary) l c h / .16);--shadow-accent-ring:0 0 0 2px var(--color-surface), 0 0 0 4px oklch(from var(--color-primary) l c h / .18);--shadow-accent-ring-strong:0 0 0 2px var(--color-bg), 0 0 0 4px oklch(from var(--color-primary) l c h / .45);--shadow-accent-ring-solid:0 0 0 2px var(--color-primary), 0 0 0 4px oklch(from var(--color-primary) l c h / .2);--shadow-elevated-soft:0 10px 24px color-mix(in oklab, var(--color-surface-ink) 10%, transparent);--shadow-floating-soft:0 14px 34px oklch(0% 0 0/.18);--shadow-floating-hover:0 18px 40px oklch(0% 0 0/.2);--shadow-media-soft:0 16px 40px oklch(0% 0 0/.24);--shadow-media-stage:0 28px 80px oklch(0% 0 0/.28);--shadow-media-modal:0 16px 48px #0009;--shadow-card-strong:0 20px 56px oklch(0% 0 0/.24);--shadow-sheet-inset:inset 0 1px 0 color-mix(in oklab, var(--color-text) 4%, transparent);--shadow-focus:0 0 0 3px oklch(from var(--color-primary) l c h / .15);--shadow-focus-compact:0 0 0 2px oklch(from var(--color-primary) l c h / .45);--interactive-border:color-mix(in oklab, var(--color-primary) 32%, transparent);--interactive-surface:color-mix(in oklab, var(--color-primary) 18%, transparent);--color-text-on-dark:#fff;--shadow-sm:0 1px 2px oklch(0% 0 0/.25);--shadow-md:0 4px 12px oklch(0% 0 0/.35);--shadow-lg:0 12px 32px oklch(0% 0 0/.5)}}.preview-content h1{margin:var(--space-8) 0 var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-divider);font-size:var(--text-xl);letter-spacing:-.02em;font-weight:700}.preview-content h1:first-child{margin-top:0}.preview-content h2{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-lg);letter-spacing:-.01em;font-weight:600}.preview-content h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-base);font-weight:600}.preview-content h4,.preview-content h5,.preview-content h6{margin:var(--space-4) 0 var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600}.preview-content p{max-width:72ch;margin-bottom:var(--space-4)}:is(.preview-content p:has(>.excalidraw-embed-placeholder:only-child),.preview-content p:has(>.video-embed-placeholder:only-child),.preview-content p:has(>.plantuml-shell:only-child)){max-width:none;margin-bottom:0}.preview-content a{color:var(--color-primary);border-bottom:1px solid oklch(from var(--color-primary) l c h / .3);transition:border-color var(--transition-interactive);text-decoration:none}.preview-content a:hover{border-bottom-color:var(--color-primary)}.preview-content strong{font-weight:600}.preview-content em{font-style:italic}.preview-content del{color:var(--color-text-muted);text-decoration:line-through}.preview-content ul,.preview-content ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.preview-content li{margin-bottom:var(--space-1)}.preview-content li>ul,.preview-content li>ol{margin-top:var(--space-1);margin-bottom:0}.preview-content .task-list-item{list-style:none;position:relative}.preview-content .task-list-item input[type=checkbox]{top:.3em;left:calc(var(--space-5) * -1);accent-color:var(--color-primary);cursor:pointer;vertical-align:top;margin:0;position:absolute}.preview-content blockquote{margin:var(--space-4) 0;padding:var(--space-3) var(--space-5);border-left:3px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--color-surface);color:var(--color-text-muted)}.preview-content blockquote p:last-child{margin-bottom:0}.preview-content code{border-radius:var(--radius-sm);background:var(--color-surface-offset);color:var(--color-primary);font-family:var(--font-mono);padding:2px 6px;font-size:.875em}.preview-content pre{max-width:100%;margin:var(--space-4) 0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);-webkit-overflow-scrolling:touch;overflow-x:auto}.preview-content pre code{width:fit-content;min-width:100%;padding:var(--space-4);color:var(--color-text);font-size:var(--text-ui-sm);white-space:pre;word-wrap:normal;overflow-wrap:normal;background:0 0;line-height:1.6;display:block}.preview-content .table-wrapper{margin:var(--space-4) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);-webkit-overflow-scrolling:touch;overflow-x:auto}.preview-content table{border-collapse:collapse;white-space:nowrap;width:100%;min-width:100%}.preview-content th,.preview-content td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-divider);text-align:left;font-size:var(--text-sm)}.preview-content th{background:var(--color-surface-offset);color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:.03em;text-transform:uppercase;font-weight:600}.preview-content tr:last-child td{border-bottom:none}.preview-content tr:hover td{background:var(--color-surface-offset)}.preview-content hr{height:1px;margin:var(--space-8) 0;background:var(--color-divider);border:none}.preview-content img{max-width:100%;height:auto;margin:var(--space-4) 0;border-radius:var(--radius-md);cursor:zoom-in}[data-theme=light] .preview-content pre,[data-theme=light] .preview-content pre code,[data-theme=light] .hljs{background:var(--color-surface)!important}body[data-surface=export-document]{background:var(--color-bg);color:var(--color-text)}.export-page-shell{width:min(960px,100vw - 48px);margin:0 auto;padding:32px 0 72px}.export-page-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.export-page-header h1{margin-bottom:6px;font-size:28px}.export-page-header p{color:var(--color-text-muted);max-width:none}.export-warnings-panel{border:1px solid var(--border-warning-toast);background:var(--surface-warning-toast);color:var(--text-warning-toast);border-radius:12px;margin-bottom:20px;padding:14px 16px}.export-warnings-panel h2{margin-bottom:6px;font-size:14px}.export-warnings-panel ul{padding-left:20px}.export-content{border:1px solid var(--color-divider);background:var(--color-surface);box-shadow:var(--shadow-card-strong);border-radius:20px;padding:32px 40px}.export-content p,.export-content li,.export-content blockquote{max-width:none}.export-content .task-list-item input[type=checkbox]{cursor:default}.export-content .table-wrapper{overflow:visible}.export-content table{white-space:normal}.export-diagram{justify-content:center;margin:18px 0 22px;display:flex}.export-diagram-surface,.export-diagram-image{border:1px solid var(--color-divider);background:var(--color-surface);border-radius:14px;max-width:100%;margin:0}.export-diagram-surface{display:inline-block;overflow:hidden}.export-diagram-image,.export-diagram-svg{width:auto;max-width:100%;height:auto;display:block}.export-video-poster{margin:18px 0 22px}.export-video-poster-card{border:1px solid var(--color-divider);background:var(--surface-fill-subtle);border-radius:14px;padding:16px 18px;overflow:hidden}.export-video-poster-media{border-bottom:1px solid var(--color-divider);background:var(--color-surface-offset);margin:-16px -18px 14px;position:relative;overflow:hidden}.export-video-poster-image{object-fit:cover;width:100%;height:auto;max-height:360px;display:block}.export-video-play-badge{background:oklch(from var(--color-surface) l c h / .86);min-width:72px;color:var(--color-text);text-align:center;box-shadow:var(--shadow-lg);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.export-video-poster-copy{flex-direction:column;gap:4px;display:flex}.export-video-poster-meta{color:var(--color-text-muted);margin-top:4px;font-size:13px;display:block}.export-video-link{word-break:break-word;margin-top:8px;display:inline-block}.export-warning{border:1px solid var(--border-warning-toast);background:var(--surface-warning-toast);color:var(--text-warning-toast);border-radius:12px;padding:12px 14px}.drawio-export-iframe{opacity:0;pointer-events:none;border:0;width:0;height:0;position:absolute}@media print{body[data-surface=export-document]{background:var(--color-surface)}.export-page-shell{width:auto;margin:0;padding:0}.export-page-header,.export-warnings-panel{display:none}.export-content{width:auto;box-shadow:none;border:0;border-radius:0;padding:0}.export-content h1,.export-content h2,.export-content h3,.export-content h4,.export-content h5,.export-content h6{break-after:avoid-page;page-break-after:avoid}.export-content h1+*,.export-content h2+*,.export-content h3+*,.export-content h4+*,.export-content h5+*,.export-content h6+*{break-before:avoid-page;page-break-before:avoid}.export-content pre,.export-content blockquote,.export-content table,.export-content figure,.export-content img{break-inside:avoid}.export-content .export-keep-with-next{break-inside:avoid-page;page-break-inside:avoid}.export-content p,.export-content li,.export-content blockquote{orphans:3;widows:3}}
|
|
1
|
+
:root{--text-xs:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm:clamp(.875rem, .8rem + .35vw, 1rem);--text-base:clamp(1rem, .9rem + .5vw, 1.125rem);--text-lg:clamp(1.125rem, .95rem + .85vw, 1.5rem);--text-xl:clamp(1.5rem, 1rem + 1.5vw, 2.25rem);--text-2xl:clamp(2rem, 1.2rem + 2.5vw, 3.5rem);--text-label:12px;--text-meta:11px;--text-caption:10px;--text-micro:9px;--text-code-sm:11.5px;--text-ui-sm:13px;--text-ui-md:14px;--text-title-sm:15px;--text-title-md:18px;--font-body:"Inter", system-ui, sans-serif;--font-display:"Geist", "Cal Sans", "Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xs:2px;--radius-xs:4px;--radius-lg-plus:10px;--radius-xl-plus:18px;--radius-full:9999px;--transition-interactive:.18s cubic-bezier(.16, 1, .3, 1);--content-narrow:640px;--content-default:960px;--content-wide:1200px;--preview-content-width:720px;--panel-comments-width:min(300px, 34vw);--panel-comments-min-width:240px;--panel-outline-width:220px;--toolbar-h:48px;--control-h-xs:28px;--control-h-sm:30px;--control-h-md:36px;--control-h-lg:44px;--control-icon-sm:14px;--control-icon-md:16px;--panel-border-width:1px}:root,[data-theme=light]{--color-bg:#f5f5f7;--color-surface:#fff;--color-surface-2:#fafafe;--color-surface-offset:#eeeef2;--color-surface-offset-2:#e6e6eb;--color-surface-dynamic:#dddde3;--color-surface-raised:#fff;--color-surface-ink:#0f1117;--color-divider:#d1d1d8;--color-border:#c4c4ce;--color-text:#1a1a2e;--color-text-muted:#6b6b80;--color-text-faint:#a0a0b0;--color-text-inverse:#f5f5f7;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-active:#3730a3;--color-primary-highlight:#e0e0ff;--color-comment:#4f46e5;--color-comment-soft:#4f46e514;--color-comment-strong:#4f46e524;--color-comment-text:#3730a3;--color-error:#dc2626;--color-error-highlight:#fce8e8;--color-success:#16a34a;--color-success-highlight:#dcfce7;--color-warning:#d97706;--color-warning-highlight:#fef3c7;--diff-add-bg:#16a34a0f;--diff-add-line-bg:#16a34a24;--diff-add-text:#16a34a;--diff-del-bg:#dc26260f;--diff-del-line-bg:#dc262624;--diff-del-text:#dc2626;--diff-hunk-bg:#4f46e514;--diff-hunk-text:#4f46e5;--diff-gutter:#a0a0b0;--surface-fill-subtle:color-mix(in oklab, var(--color-surface) 92%, var(--color-surface-offset) 8%);--surface-fill-strong:color-mix(in oklab, var(--color-surface-offset) 72%, var(--color-surface-offset-2) 28%);--surface-overlay:color-mix(in srgb, var(--color-surface) 84%, var(--color-surface-offset) 16%);--surface-overlay-soft:color-mix(in srgb, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-overlay-strong:color-mix(in srgb, var(--color-surface) 90%, var(--color-surface-offset) 10%);--surface-overlay-raised:color-mix(in oklab, var(--color-surface) 94%, transparent);--surface-overlay-header:color-mix(in srgb, var(--color-surface-offset) 76%, var(--color-bg) 24%);--surface-overlay-offset:color-mix(in oklab, var(--color-surface-offset) 82%, transparent);--surface-scrim:oklch(10% 0 0/.42);--surface-scrim-strong:oklch(8% .01 260/.82);--surface-inverse-glass:oklch(18% .02 260/.68);--surface-inverse-glass-hover:oklch(24% .02 260/.82);--surface-media-canvas:#000;--surface-embed-canvas:#fff;--surface-avatar-muted:#ffffff38;--surface-avatar-label:#0f1117d6;--surface-accent-subtle:color-mix(in oklab, var(--color-primary) 8%, var(--color-surface));--surface-accent-soft:color-mix(in oklab, var(--color-primary) 16%, transparent);--surface-accent-strong:color-mix(in oklab, var(--color-primary) 22%, transparent);--surface-success-soft:color-mix(in oklab, var(--color-success) 14%, transparent);--surface-warning-soft:color-mix(in oklab, var(--color-warning) 14%, transparent);--surface-danger-soft:color-mix(in oklab, var(--color-error) 14%, transparent);--surface-comment-shell:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .035), transparent 120px), color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-shell-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .028), transparent 70%), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-record-hover:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .042), transparent 70%), color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-record-active:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .055), transparent 72%), color-mix(in srgb, var(--color-surface-2) 90%, var(--color-comment) 10%);--surface-comment-subtle:color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-subtle-strong:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-card:color-mix(in srgb, var(--color-surface) 94%, var(--color-comment) 6%);--surface-comment-elevated:color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-offset:color-mix(in srgb, var(--color-surface-offset) 90%, var(--color-comment) 10%);--surface-comment-offset-soft:color-mix(in srgb, var(--color-surface-offset) 88%, var(--color-comment) 12%);--surface-comment-offset-strong:color-mix(in srgb, var(--color-surface-offset) 84%, var(--color-comment) 16%);--surface-comment-offset-active:color-mix(in srgb, var(--color-surface-offset) 72%, var(--color-comment) 28%);--surface-comment-highlight-hover:color-mix(in srgb, var(--color-comment-soft) 74%, var(--color-comment) 26%);--surface-comment-highlight-active:color-mix(in srgb, var(--color-comment-soft) 62%, var(--color-comment) 38%);--surface-comment-selection:color-mix(in srgb, var(--color-surface) 25%, var(--color-comment) 75%);--surface-comment-preview-fade:linear-gradient(180deg, oklch(0% 0 0/0), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%));--border-comment-soft:color-mix(in srgb, var(--color-divider) 90%, var(--color-comment) 10%);--border-comment-muted:color-mix(in srgb, var(--color-divider) 88%, var(--color-comment) 12%);--border-comment-strong:color-mix(in srgb, var(--color-border) 82%, var(--color-comment) 18%);--border-comment-active:color-mix(in srgb, var(--color-border) 78%, var(--color-comment) 22%);--shadow-comment-outline:0 0 0 1px oklch(from var(--color-comment) l c h / .14);--surface-warning-toast:linear-gradient(135deg, oklab(94.9166% -.0018052 .0644112), oklab(99.8777% .00026585 .000908241) 42%), #fff8e7;--border-warning-toast:oklab(73.4461% .062398 .147608);--text-warning-toast:#422006;--shadow-warning-toast:0 16px 30px #542e0a2e, 0 0 0 1px #f59e0b1f;--border-accent-soft:color-mix(in oklab, var(--color-primary) 22%, transparent);--border-accent-muted:color-mix(in oklab, var(--color-primary) 24%, var(--color-border));--border-accent-strong:color-mix(in oklab, var(--color-primary) 34%, var(--color-border));--border-accent-stronger:color-mix(in oklab, var(--color-primary) 40%, var(--color-border));--shadow-accent-inset:inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 14%, transparent);--shadow-accent-outline:0 0 0 1px color-mix(in oklab, var(--color-primary) 16%, transparent);--shadow-accent-halo:0 0 0 3px oklch(from var(--color-primary) l c h / .16);--shadow-accent-ring:0 0 0 2px var(--color-surface), 0 0 0 4px oklch(from var(--color-primary) l c h / .18);--shadow-accent-ring-strong:0 0 0 2px var(--color-bg), 0 0 0 4px oklch(from var(--color-primary) l c h / .45);--shadow-accent-ring-solid:0 0 0 2px var(--color-primary), 0 0 0 4px oklch(from var(--color-primary) l c h / .2);--shadow-elevated-soft:0 10px 24px color-mix(in oklab, var(--color-surface-ink) 10%, transparent);--shadow-floating-soft:0 14px 34px oklch(0% 0 0/.18);--shadow-floating-hover:0 18px 40px oklch(0% 0 0/.2);--shadow-media-soft:0 16px 40px oklch(0% 0 0/.24);--shadow-media-stage:0 28px 80px oklch(0% 0 0/.28);--shadow-media-modal:0 10px 40px #00000059;--shadow-card-strong:0 20px 56px oklch(0% 0 0/.24);--shadow-sheet-inset:inset 0 1px 0 color-mix(in oklab, var(--color-text) 4%, transparent);--shadow-focus:0 0 0 3px oklch(from var(--color-primary) l c h / .15);--shadow-focus-compact:0 0 0 2px oklch(from var(--color-primary) l c h / .45);--interactive-border:color-mix(in oklab, var(--color-primary) 22%, transparent);--interactive-surface:color-mix(in oklab, var(--color-primary) 14%, transparent);--color-text-on-dark:#fff;--shadow-sm:0 1px 2px oklch(20% .02 260/.06);--shadow-md:0 4px 12px oklch(20% .02 260/.08);--shadow-lg:0 12px 32px oklch(20% .02 260/.12)}[data-theme=dark]{--color-bg:#0f1117;--color-surface:#161822;--color-surface-2:#1c1e2c;--color-surface-offset:#1a1c28;--color-surface-offset-2:#22243a;--color-surface-dynamic:#2a2c3e;--color-surface-raised:#202330;--color-surface-ink:#050608;--color-divider:#2e3044;--color-border:#383a50;--color-text:#e2e2ea;--color-text-muted:#8b8ba0;--color-text-faint:#5a5a70;--color-text-inverse:#0f1117;--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-primary-active:#4f46e5;--color-primary-highlight:#1e1e3a;--color-comment:#818cf8;--color-comment-soft:#818cf81a;--color-comment-strong:#818cf829;--color-comment-text:#c7d2fe;--color-error:#f87171;--color-error-highlight:#2a1a1a;--color-success:#4ade80;--color-success-highlight:#1a2a1a;--color-warning:#fbbf24;--color-warning-highlight:#2a261a;--diff-add-bg:#4ade8014;--diff-add-line-bg:#4ade8026;--diff-add-text:#4ade80;--diff-del-bg:#f8717114;--diff-del-line-bg:#f8717126;--diff-del-text:#f87171;--diff-hunk-bg:#818cf81a;--diff-hunk-text:#818cf8;--diff-gutter:#5a5a70;--surface-fill-subtle:color-mix(in oklab, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-fill-strong:color-mix(in oklab, var(--color-surface-offset) 60%, var(--color-surface-offset-2) 40%);--surface-overlay:color-mix(in srgb, var(--color-surface) 84%, var(--color-surface-offset) 16%);--surface-overlay-soft:color-mix(in srgb, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-overlay-strong:color-mix(in srgb, var(--color-surface) 90%, var(--color-surface-offset) 10%);--surface-overlay-raised:color-mix(in oklab, var(--color-surface) 94%, transparent);--surface-overlay-header:color-mix(in srgb, var(--color-surface-offset) 76%, var(--color-bg) 24%);--surface-overlay-offset:color-mix(in oklab, var(--color-surface-offset) 82%, transparent);--surface-scrim:oklch(10% 0 0/.42);--surface-scrim-strong:oklch(8% .01 260/.82);--surface-inverse-glass:oklch(18% .02 260/.68);--surface-inverse-glass-hover:oklch(24% .02 260/.82);--surface-media-canvas:#000;--surface-embed-canvas:#121212;--surface-avatar-muted:#ffffff38;--surface-avatar-label:#0f1117d6;--surface-accent-subtle:color-mix(in oklab, var(--color-primary) 8%, var(--color-surface));--surface-accent-soft:color-mix(in oklab, var(--color-primary) 16%, transparent);--surface-accent-strong:color-mix(in oklab, var(--color-primary) 22%, transparent);--surface-success-soft:color-mix(in oklab, var(--color-success) 14%, transparent);--surface-warning-soft:color-mix(in oklab, var(--color-warning) 14%, transparent);--surface-danger-soft:color-mix(in oklab, var(--color-error) 14%, transparent);--surface-comment-shell:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .035), transparent 120px), color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-shell-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .028), transparent 70%), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-record-hover:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .042), transparent 70%), color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-record-active:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .055), transparent 72%), color-mix(in srgb, var(--color-surface-2) 90%, var(--color-comment) 10%);--surface-comment-subtle:color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-subtle-strong:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-card:color-mix(in srgb, var(--color-surface) 94%, var(--color-comment) 6%);--surface-comment-elevated:color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-offset:color-mix(in srgb, var(--color-surface-offset) 90%, var(--color-comment) 10%);--surface-comment-offset-soft:color-mix(in srgb, var(--color-surface-offset) 88%, var(--color-comment) 12%);--surface-comment-offset-strong:color-mix(in srgb, var(--color-surface-offset) 84%, var(--color-comment) 16%);--surface-comment-offset-active:color-mix(in srgb, var(--color-surface-offset) 72%, var(--color-comment) 28%);--surface-comment-highlight-hover:color-mix(in srgb, var(--color-comment-soft) 74%, var(--color-comment) 26%);--surface-comment-highlight-active:color-mix(in srgb, var(--color-comment-soft) 62%, var(--color-comment) 38%);--surface-comment-selection:color-mix(in srgb, var(--color-surface) 25%, var(--color-comment) 75%);--surface-comment-preview-fade:linear-gradient(180deg, oklch(0% 0 0/0), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%));--border-comment-soft:color-mix(in srgb, var(--color-divider) 90%, var(--color-comment) 10%);--border-comment-muted:color-mix(in srgb, var(--color-divider) 88%, var(--color-comment) 12%);--border-comment-strong:color-mix(in srgb, var(--color-border) 82%, var(--color-comment) 18%);--border-comment-active:color-mix(in srgb, var(--color-border) 78%, var(--color-comment) 22%);--shadow-comment-outline:0 0 0 1px oklch(from var(--color-comment) l c h / .14);--surface-warning-toast:linear-gradient(135deg, oklab(76.8591% .0560995 .154808/.32), color-mix(in oklab, var(--color-surface) 86%, #0b1022 14%) 42%), color-mix(in oklab, var(--color-surface) 74%, #1b1320 26%);--border-warning-toast:oklab(79.4887% .0497246 .137216/.88);--text-warning-toast:oklab(99.6952% -.000454402 .00461993);--shadow-warning-toast:0 18px 34px #00000061, 0 0 0 1px oklab(76.8591% .0560995 .154808/.18);--border-accent-soft:color-mix(in oklab, var(--color-primary) 22%, transparent);--border-accent-muted:color-mix(in oklab, var(--color-primary) 24%, var(--color-border));--border-accent-strong:color-mix(in oklab, var(--color-primary) 34%, var(--color-border));--border-accent-stronger:color-mix(in oklab, var(--color-primary) 40%, var(--color-border));--shadow-accent-inset:inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 14%, transparent);--shadow-accent-outline:0 0 0 1px color-mix(in oklab, var(--color-primary) 16%, transparent);--shadow-accent-halo:0 0 0 3px oklch(from var(--color-primary) l c h / .16);--shadow-accent-ring:0 0 0 2px var(--color-surface), 0 0 0 4px oklch(from var(--color-primary) l c h / .18);--shadow-accent-ring-strong:0 0 0 2px var(--color-bg), 0 0 0 4px oklch(from var(--color-primary) l c h / .45);--shadow-accent-ring-solid:0 0 0 2px var(--color-primary), 0 0 0 4px oklch(from var(--color-primary) l c h / .2);--shadow-elevated-soft:0 10px 24px color-mix(in oklab, var(--color-surface-ink) 10%, transparent);--shadow-floating-soft:0 14px 34px oklch(0% 0 0/.18);--shadow-floating-hover:0 18px 40px oklch(0% 0 0/.2);--shadow-media-soft:0 16px 40px oklch(0% 0 0/.24);--shadow-media-stage:0 28px 80px oklch(0% 0 0/.28);--shadow-media-modal:0 16px 48px #0009;--shadow-card-strong:0 20px 56px oklch(0% 0 0/.24);--shadow-sheet-inset:inset 0 1px 0 color-mix(in oklab, var(--color-text) 4%, transparent);--shadow-focus:0 0 0 3px oklch(from var(--color-primary) l c h / .15);--shadow-focus-compact:0 0 0 2px oklch(from var(--color-primary) l c h / .45);--interactive-border:color-mix(in oklab, var(--color-primary) 32%, transparent);--interactive-surface:color-mix(in oklab, var(--color-primary) 18%, transparent);--color-text-on-dark:#fff;--shadow-sm:0 1px 2px oklch(0% 0 0/.25);--shadow-md:0 4px 12px oklch(0% 0 0/.35);--shadow-lg:0 12px 32px oklch(0% 0 0/.5)}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:#0f1117;--color-surface:#161822;--color-surface-2:#1c1e2c;--color-surface-offset:#1a1c28;--color-surface-offset-2:#22243a;--color-surface-dynamic:#2a2c3e;--color-surface-raised:#202330;--color-surface-ink:#050608;--color-divider:#2e3044;--color-border:#383a50;--color-text:#e2e2ea;--color-text-muted:#8b8ba0;--color-text-faint:#5a5a70;--color-text-inverse:#0f1117;--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-primary-active:#4f46e5;--color-primary-highlight:#1e1e3a;--color-comment:#818cf8;--color-comment-soft:#818cf81a;--color-comment-strong:#818cf829;--color-comment-text:#c7d2fe;--color-error:#f87171;--color-error-highlight:#2a1a1a;--color-success:#4ade80;--color-success-highlight:#1a2a1a;--color-warning:#fbbf24;--color-warning-highlight:#2a261a;--surface-fill-subtle:color-mix(in oklab, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-fill-strong:color-mix(in oklab, var(--color-surface-offset) 60%, var(--color-surface-offset-2) 40%);--surface-overlay:color-mix(in srgb, var(--color-surface) 84%, var(--color-surface-offset) 16%);--surface-overlay-soft:color-mix(in srgb, var(--color-surface) 88%, var(--color-surface-offset) 12%);--surface-overlay-strong:color-mix(in srgb, var(--color-surface) 90%, var(--color-surface-offset) 10%);--surface-overlay-raised:color-mix(in oklab, var(--color-surface) 94%, transparent);--surface-overlay-header:color-mix(in srgb, var(--color-surface-offset) 76%, var(--color-bg) 24%);--surface-overlay-offset:color-mix(in oklab, var(--color-surface-offset) 82%, transparent);--surface-scrim:oklch(10% 0 0/.42);--surface-scrim-strong:oklch(8% .01 260/.82);--surface-inverse-glass:oklch(18% .02 260/.68);--surface-inverse-glass-hover:oklch(24% .02 260/.82);--surface-media-canvas:#000;--surface-embed-canvas:#121212;--surface-avatar-muted:#ffffff38;--surface-avatar-label:#0f1117d6;--surface-accent-subtle:color-mix(in oklab, var(--color-primary) 8%, var(--color-surface));--surface-accent-soft:color-mix(in oklab, var(--color-primary) 16%, transparent);--surface-accent-strong:color-mix(in oklab, var(--color-primary) 22%, transparent);--surface-success-soft:color-mix(in oklab, var(--color-success) 14%, transparent);--surface-warning-soft:color-mix(in oklab, var(--color-warning) 14%, transparent);--surface-danger-soft:color-mix(in oklab, var(--color-error) 14%, transparent);--surface-comment-shell:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .035), transparent 120px), color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-shell-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .028), transparent 70%), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-record-hover:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .042), transparent 70%), color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-record-active:linear-gradient(180deg, oklch(from var(--color-comment) l c h / .055), transparent 72%), color-mix(in srgb, var(--color-surface-2) 90%, var(--color-comment) 10%);--surface-comment-subtle:color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%);--surface-comment-subtle-strong:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--surface-comment-card:color-mix(in srgb, var(--color-surface) 94%, var(--color-comment) 6%);--surface-comment-elevated:color-mix(in srgb, var(--color-surface) 96%, var(--color-comment) 4%);--surface-comment-offset:color-mix(in srgb, var(--color-surface-offset) 90%, var(--color-comment) 10%);--surface-comment-offset-soft:color-mix(in srgb, var(--color-surface-offset) 88%, var(--color-comment) 12%);--surface-comment-offset-strong:color-mix(in srgb, var(--color-surface-offset) 84%, var(--color-comment) 16%);--surface-comment-offset-active:color-mix(in srgb, var(--color-surface-offset) 72%, var(--color-comment) 28%);--surface-comment-highlight-hover:color-mix(in srgb, var(--color-comment-soft) 74%, var(--color-comment) 26%);--surface-comment-highlight-active:color-mix(in srgb, var(--color-comment-soft) 62%, var(--color-comment) 38%);--surface-comment-selection:color-mix(in srgb, var(--color-surface) 25%, var(--color-comment) 75%);--surface-comment-preview-fade:linear-gradient(180deg, oklch(0% 0 0/0), color-mix(in srgb, var(--color-surface-2) 95%, var(--color-comment) 5%));--border-comment-soft:color-mix(in srgb, var(--color-divider) 90%, var(--color-comment) 10%);--border-comment-muted:color-mix(in srgb, var(--color-divider) 88%, var(--color-comment) 12%);--border-comment-strong:color-mix(in srgb, var(--color-border) 82%, var(--color-comment) 18%);--border-comment-active:color-mix(in srgb, var(--color-border) 78%, var(--color-comment) 22%);--shadow-comment-outline:0 0 0 1px oklch(from var(--color-comment) l c h / .14);--surface-warning-toast:linear-gradient(135deg, oklab(76.8591% .0560995 .154808/.32), color-mix(in oklab, var(--color-surface) 86%, #0b1022 14%) 42%), color-mix(in oklab, var(--color-surface) 74%, #1b1320 26%);--border-warning-toast:oklab(79.4887% .0497246 .137216/.88);--text-warning-toast:oklab(99.6952% -.000454402 .00461993);--shadow-warning-toast:0 18px 34px #00000061, 0 0 0 1px oklab(76.8591% .0560995 .154808/.18);--border-accent-soft:color-mix(in oklab, var(--color-primary) 22%, transparent);--border-accent-muted:color-mix(in oklab, var(--color-primary) 24%, var(--color-border));--border-accent-strong:color-mix(in oklab, var(--color-primary) 34%, var(--color-border));--border-accent-stronger:color-mix(in oklab, var(--color-primary) 40%, var(--color-border));--shadow-accent-inset:inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 14%, transparent);--shadow-accent-outline:0 0 0 1px color-mix(in oklab, var(--color-primary) 16%, transparent);--shadow-accent-halo:0 0 0 3px oklch(from var(--color-primary) l c h / .16);--shadow-accent-ring:0 0 0 2px var(--color-surface), 0 0 0 4px oklch(from var(--color-primary) l c h / .18);--shadow-accent-ring-strong:0 0 0 2px var(--color-bg), 0 0 0 4px oklch(from var(--color-primary) l c h / .45);--shadow-accent-ring-solid:0 0 0 2px var(--color-primary), 0 0 0 4px oklch(from var(--color-primary) l c h / .2);--shadow-elevated-soft:0 10px 24px color-mix(in oklab, var(--color-surface-ink) 10%, transparent);--shadow-floating-soft:0 14px 34px oklch(0% 0 0/.18);--shadow-floating-hover:0 18px 40px oklch(0% 0 0/.2);--shadow-media-soft:0 16px 40px oklch(0% 0 0/.24);--shadow-media-stage:0 28px 80px oklch(0% 0 0/.28);--shadow-media-modal:0 16px 48px #0009;--shadow-card-strong:0 20px 56px oklch(0% 0 0/.24);--shadow-sheet-inset:inset 0 1px 0 color-mix(in oklab, var(--color-text) 4%, transparent);--shadow-focus:0 0 0 3px oklch(from var(--color-primary) l c h / .15);--shadow-focus-compact:0 0 0 2px oklch(from var(--color-primary) l c h / .45);--interactive-border:color-mix(in oklab, var(--color-primary) 32%, transparent);--interactive-surface:color-mix(in oklab, var(--color-primary) 18%, transparent);--color-text-on-dark:#fff;--shadow-sm:0 1px 2px oklch(0% 0 0/.25);--shadow-md:0 4px 12px oklch(0% 0 0/.35);--shadow-lg:0 12px 32px oklch(0% 0 0/.5)}}.preview-content h1{margin:var(--space-8) 0 var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-divider);font-size:var(--text-xl);letter-spacing:-.02em;font-weight:700}.preview-content h1:first-child,.preview-content .frontmatter-block+h1{margin-top:0}.preview-content h2{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-lg);letter-spacing:-.01em;font-weight:600}.preview-content h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-base);font-weight:600}.preview-content h4,.preview-content h5,.preview-content h6{margin:var(--space-4) 0 var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600}.preview-content p{max-width:72ch;margin-bottom:var(--space-4)}.preview-content .frontmatter-block{max-width:72ch;margin:0 0 var(--space-5);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--color-surface-offset) 72%, var(--color-surface))}.preview-content .frontmatter-label{color:var(--color-text-muted);font-size:var(--text-ui-sm);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.preview-content .frontmatter-block>.frontmatter-label{margin-bottom:var(--space-3);display:block}.preview-content .frontmatter-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.preview-content .frontmatter-toggle{min-height:30px;padding:0 var(--space-3);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--text-ui-sm);cursor:pointer;border-radius:999px;flex-shrink:0}.preview-content .frontmatter-toggle:hover{background:var(--color-surface-offset)}.preview-content .frontmatter-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.preview-content .frontmatter-summary{margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:var(--text-ui-sm)}.preview-content .frontmatter-properties{gap:var(--space-3);margin:0;display:grid}.preview-content .frontmatter-property{gap:var(--space-3);grid-template-columns:minmax(0,160px) minmax(0,1fr);align-items:start;display:grid}.preview-content .frontmatter-key{color:var(--color-text-muted);font-size:var(--text-ui-sm);margin:0;font-weight:600}.preview-content .frontmatter-value{min-width:0;margin:0}.preview-content .frontmatter-value-text{color:var(--color-text);overflow-wrap:anywhere;display:inline-block}.preview-content .frontmatter-value-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.preview-content .frontmatter-value-pill{min-height:28px;padding:0 var(--space-3);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--text-ui-sm);border-radius:999px;align-items:center;display:inline-flex}.preview-content .frontmatter-value-code{border-radius:var(--radius-md);margin:0}.preview-content .frontmatter-value-code code{white-space:pre-wrap;word-break:break-word}.preview-content .frontmatter-empty{color:var(--color-text-muted);font-size:var(--text-ui-sm)}:is(.preview-content p:has(>.excalidraw-embed-placeholder:only-child),.preview-content p:has(>.video-embed-placeholder:only-child),.preview-content p:has(>.plantuml-shell:only-child)){max-width:none;margin-bottom:0}.preview-content a{color:var(--color-primary);border-bottom:1px solid oklch(from var(--color-primary) l c h / .3);transition:border-color var(--transition-interactive);text-decoration:none}.preview-content a:hover{border-bottom-color:var(--color-primary)}.preview-content strong{font-weight:600}.preview-content em{font-style:italic}.preview-content del{color:var(--color-text-muted);text-decoration:line-through}.preview-content ul,.preview-content ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.preview-content li{margin-bottom:var(--space-1)}.preview-content li>ul,.preview-content li>ol{margin-top:var(--space-1);margin-bottom:0}.preview-content .task-list-item{list-style:none;position:relative}.preview-content .task-list-item input[type=checkbox]{top:.3em;left:calc(var(--space-5) * -1);accent-color:var(--color-primary);cursor:pointer;vertical-align:top;margin:0;position:absolute}.preview-content blockquote{margin:var(--space-4) 0;padding:var(--space-3) var(--space-5);border-left:3px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--color-surface);color:var(--color-text-muted)}.preview-content blockquote p:last-child{margin-bottom:0}.preview-content code{border-radius:var(--radius-sm);background:var(--color-surface-offset);color:var(--color-primary);font-family:var(--font-mono);padding:2px 6px;font-size:.875em}.preview-content pre{max-width:100%;margin:var(--space-4) 0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);-webkit-overflow-scrolling:touch;overflow-x:auto}.preview-content pre code{width:fit-content;min-width:100%;padding:var(--space-4);color:var(--color-text);font-size:var(--text-ui-sm);white-space:pre;word-wrap:normal;overflow-wrap:normal;background:0 0;line-height:1.6;display:block}.preview-content .table-wrapper{margin:var(--space-4) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);-webkit-overflow-scrolling:touch;overflow-x:auto}.preview-content table{border-collapse:collapse;white-space:nowrap;width:100%;min-width:100%}.preview-content th,.preview-content td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-divider);text-align:left;font-size:var(--text-sm)}.preview-content th{background:var(--color-surface-offset);color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:.03em;text-transform:uppercase;font-weight:600}.preview-content tr:last-child td{border-bottom:none}.preview-content tr:hover td{background:var(--color-surface-offset)}.preview-content hr{height:1px;margin:var(--space-8) 0;background:var(--color-divider);border:none}.preview-content img{max-width:100%;height:auto;margin:var(--space-4) 0;border-radius:var(--radius-md);cursor:zoom-in}@media (width<=768px){.preview-content .frontmatter-header{flex-direction:column;align-items:flex-start}.preview-content .frontmatter-property{gap:var(--space-1);grid-template-columns:1fr}}[data-theme=light] .preview-content pre,[data-theme=light] .preview-content pre code,[data-theme=light] .hljs{background:var(--color-surface)!important}body[data-surface=export-document]{background:var(--color-bg);color:var(--color-text)}.export-page-shell{width:min(960px,100vw - 48px);margin:0 auto;padding:32px 0 72px}.export-page-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.export-page-header h1{margin-bottom:6px;font-size:28px}.export-page-header p{color:var(--color-text-muted);max-width:none}.export-warnings-panel{border:1px solid var(--border-warning-toast);background:var(--surface-warning-toast);color:var(--text-warning-toast);border-radius:12px;margin-bottom:20px;padding:14px 16px}.export-warnings-panel h2{margin-bottom:6px;font-size:14px}.export-warnings-panel ul{padding-left:20px}.export-content{border:1px solid var(--color-divider);background:var(--color-surface);box-shadow:var(--shadow-card-strong);border-radius:20px;padding:32px 40px}.export-content p,.export-content li,.export-content blockquote{max-width:none}.export-content .task-list-item input[type=checkbox]{cursor:default}.export-content .table-wrapper{overflow:visible}.export-content table{white-space:normal}.export-diagram{justify-content:center;margin:18px 0 22px;display:flex}.export-diagram-surface,.export-diagram-image{border:1px solid var(--color-divider);background:var(--color-surface);border-radius:14px;max-width:100%;margin:0}.export-diagram-surface{display:inline-block;overflow:hidden}.export-diagram-image,.export-diagram-svg{width:auto;max-width:100%;height:auto;display:block}.export-video-poster{margin:18px 0 22px}.export-video-poster-card{border:1px solid var(--color-divider);background:var(--surface-fill-subtle);border-radius:14px;padding:16px 18px;overflow:hidden}.export-video-poster-media{border-bottom:1px solid var(--color-divider);background:var(--color-surface-offset);margin:-16px -18px 14px;position:relative;overflow:hidden}.export-video-poster-image{object-fit:cover;width:100%;height:auto;max-height:360px;display:block}.export-video-play-badge{background:oklch(from var(--color-surface) l c h / .86);min-width:72px;color:var(--color-text);text-align:center;box-shadow:var(--shadow-lg);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.export-video-poster-copy{flex-direction:column;gap:4px;display:flex}.export-video-poster-meta{color:var(--color-text-muted);margin-top:4px;font-size:13px;display:block}.export-video-link{word-break:break-word;margin-top:8px;display:inline-block}.export-warning{border:1px solid var(--border-warning-toast);background:var(--surface-warning-toast);color:var(--text-warning-toast);border-radius:12px;padding:12px 14px}.drawio-export-iframe{opacity:0;pointer-events:none;border:0;width:0;height:0;position:absolute}@media print{body[data-surface=export-document]{background:var(--color-surface)}.export-page-shell{width:auto;margin:0;padding:0}.export-page-header,.export-warnings-panel{display:none}.export-content{width:auto;box-shadow:none;border:0;border-radius:0;padding:0}.export-content h1,.export-content h2,.export-content h3,.export-content h4,.export-content h5,.export-content h6{break-after:avoid-page;page-break-after:avoid}.export-content h1+*,.export-content h2+*,.export-content h3+*,.export-content h4+*,.export-content h5+*,.export-content h6+*{break-before:avoid-page;page-break-before:avoid}.export-content pre,.export-content blockquote,.export-content table,.export-content figure,.export-content img{break-inside:avoid}.export-content .export-keep-with-next{break-inside:avoid-page;page-break-inside:avoid}.export-content p,.export-content li,.export-content blockquote{orphans:3;widows:3}}
|
package/dist/client/assets/{flowDiagram-PKNHOUZH-CRbK5_5h.js → flowDiagram-PKNHOUZH-BU4MOSq8.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as e,s as t}from"./chunk-GEFDOKGD-DYHmaq-c.js";import{g as n,h as r,p as i}from"./src-E3c2cohN.js";import{B as a,C as o,U as s,V as c,W as l,Z as u,_ as d,a as f,b as p,nt as m,s as h,u as g,v as _}from"./chunk-7R4GIKGN-BMrp52Pk.js";import{t as v}from"./channel-s0w88EQN.js";import"./
|
|
1
|
+
import{h as e,s as t}from"./chunk-GEFDOKGD-DYHmaq-c.js";import{g as n,h as r,p as i}from"./src-E3c2cohN.js";import{B as a,C as o,U as s,V as c,W as l,Z as u,_ as d,a as f,b as p,nt as m,s as h,u as g,v as _}from"./chunk-7R4GIKGN-BMrp52Pk.js";import{t as v}from"./channel-s0w88EQN.js";import"./chunk-PU5JKC2W-t0zUh6E3.js";import{t as ee}from"./chunk-FMBD7UC4-EWK5Pt4D.js";import"./chunk-MX3YWQON-DqN0TF5Q.js";import"./chunk-YBOYWFTD-CzyyfGQX.js";import{t as te}from"./chunk-JSJVCQXG-B69YGtcQ.js";import{t as ne}from"./chunk-55IACEB6-039iVf6v.js";import{t as y}from"./chunk-KX2RTZJC-tuEC7hg1.js";import"./chunk-PQ6SQG4A-BY9_Srs_.js";import{o as b}from"./chunk-KYZI473N-D4r5eMJZ.js";import"./chunk-O4XLMI2P-DaS3COAu.js";import{r as x,t as S}from"./chunk-GLR3WWYH-CQ1LryrI.js";import{n as C,t as w}from"./chunk-XPW4576I-C0GpOUHf.js";var T=`flowchart-`,E=class{constructor(){this.vertexCounter=0,this.config=p(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=c,this.setAccDescription=a,this.setDiagramTitle=l,this.getAccTitle=_,this.getAccDescription=d,this.getDiagramTitle=o,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen(`gen-2`)}static{r(this,`FlowDB`)}sanitizeText(e){return h.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case`markdown`:case`string`:case`text`:return e;default:return`markdown`}}lookUpDomId(e){for(let t of this.vertices.values())if(t.id===e)return t.domId;return e}addVertex(e,t,n,r,i,a,o={},s){if(!e||e.trim().length===0)return;let c;if(s!==void 0){let e;e=s.includes(`
|
|
2
2
|
`)?s+`
|
|
3
3
|
`:`{
|
|
4
4
|
`+s+`
|