collabmd 0.1.44 → 0.1.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{chunk-AXR3VHVW-0GTk_evH.js → chunk-ERSWUTIN-ME9RVNel.js} +3 -3
- package/dist/client/assets/{chunk-CZQZEIFA-DT3N9fo7.js → chunk-YGJVY4SA-CjSe7Bx7.js} +2 -2
- package/dist/client/assets/{comment-threads-D-iKphIp.js → comment-threads-DDegmaFO.js} +1 -1
- package/dist/client/assets/drawio-editor-ClE8jpoG.js +9 -0
- package/dist/client/assets/drawioEditor-CXaTM9Ds.js +2 -0
- package/dist/client/assets/editor-session-GTwZS6Df.js +16 -0
- package/dist/client/assets/embedded-editor-base-CiNEc8vy.css +1 -0
- package/dist/client/assets/{en-GADW4C6J-DQ6zyCEM.js → en-7NFCYGKX-BrgYZAEe.js} +1 -1
- package/dist/client/assets/{excalidraw-editor-BHu6k8d4.js → excalidraw-editor-BZVM81BO.js} +2 -2
- package/dist/client/assets/excalidraw-editor-CyGwOhLz.css +1 -0
- package/dist/client/assets/excalidraw-scene-C8n9CHsK.js +176 -0
- package/dist/client/assets/excalidrawEditor-DxJanCze.js +2 -0
- package/dist/client/assets/export-page-CUfws2T-.js +39 -0
- package/dist/client/assets/exportDocument-BCuxqXDY.js +2 -0
- package/dist/client/assets/exportDocument-DV-OX74E.css +1 -0
- package/dist/client/assets/image-QXRYHUNP-lfTHE3bb.js +1 -0
- package/dist/client/assets/index-C3YnUgMD.css +1 -0
- package/dist/client/assets/index-D2wXraJ1.js +2 -0
- package/dist/client/assets/main-DtiGz7uI.js +795 -0
- package/dist/client/assets/modulepreload-polyfill-P2Xu9kJm.js +1 -0
- package/dist/client/assets/preview-diagram-utils-txBCoW8d.js +1 -0
- package/dist/client/assets/quick-switcher-controller-shW_6vPY.js +12 -0
- package/dist/client/assets/room-CQLoqtMo.js +1 -0
- package/dist/client/assets/runtime-config-DSGmGE9V.js +1 -0
- package/dist/client/assets/vault-api-client-C6bcGwy-.js +5 -0
- package/dist/client/assets/{yjs-provider-reset-guard-Cox4nxwu.js → yjs-provider-reset-guard-DE0vINDP.js} +1 -1
- package/dist/client/drawio-editor.html +3 -2
- package/dist/client/excalidraw-editor.html +3 -2
- package/dist/client/export-document.html +4 -3
- package/dist/client/index.html +97 -27
- package/package.json +10 -12
- package/src/client/app/drawio-editor-entry.js +0 -3
- package/src/client/app/drawio-editor.html +1 -0
- package/src/client/app/excalidraw-editor-entry.js +0 -3
- package/src/client/app/excalidraw-editor.html +1 -0
- package/src/client/app/export-document-entry.js +0 -3
- package/src/client/app/export-document.html +1 -0
- package/src/client/app/index.html +94 -24
- package/src/client/app/main-entry.js +0 -5
- package/src/client/application/app-shell/chat-feature.js +180 -124
- package/src/client/application/app-shell/comments-feature.js +1 -1
- package/src/client/application/app-shell/git-feature.js +4 -9
- package/src/client/application/app-shell/presence-feature.js +16 -10
- package/src/client/application/app-shell/ui-feature-shell.js +33 -15
- package/src/client/application/app-shell/ui-feature-sidebar.js +74 -1
- package/src/client/application/app-shell/ui-feature-tab-activity.js +2 -2
- package/src/client/application/app-shell/workspace-feature.js +22 -83
- package/src/client/application/app-shell-elements.js +7 -1
- package/src/client/application/diagram-chrome.js +161 -166
- package/src/client/application/diagram-preview-export.js +7 -34
- package/src/client/application/diagram-preview-hydrator.js +1 -19
- package/src/client/application/markdown-frontmatter.js +0 -2
- package/src/client/application/mermaid-preview-hydrator.js +1 -14
- package/src/client/application/plantuml-preview-hydrator.js +0 -10
- package/src/client/application/preview-diagram-utils.js +31 -2
- package/src/client/application/preview-render-compiler.js +2 -1
- package/src/client/application/preview-renderer.js +2 -2
- package/src/client/application/quick-switcher-loader.js +3 -1
- package/src/client/application/workspace-preview-controller.js +0 -3
- package/src/client/bootstrap/collabmd-app-shell.js +125 -39
- package/src/client/domain/excalidraw-collaboration.js +0 -2
- package/src/client/domain/room.js +38 -0
- package/src/client/export/export-pipeline.js +6 -34
- package/src/client/infrastructure/auth-client.js +4 -10
- package/src/client/infrastructure/browser-notification-port.js +33 -20
- package/src/client/infrastructure/browser-preferences-port.js +36 -9
- package/src/client/infrastructure/editor-view-adapter.js +87 -3
- package/src/client/infrastructure/lobby-presence.js +1 -0
- package/src/client/infrastructure/vault-api-client.js +25 -0
- package/src/client/infrastructure/workspace-sync-client.js +13 -1
- package/src/client/presentation/comment-overview-controller.js +18 -53
- package/src/client/presentation/comment-ui/comment-ui-card.js +1 -12
- package/src/client/presentation/comment-ui/comment-ui-layout.js +242 -219
- package/src/client/presentation/comment-ui/comment-ui-render.js +32 -45
- package/src/client/presentation/comment-ui/comment-ui-shared.js +65 -14
- package/src/client/presentation/comment-ui-controller.js +5 -1
- package/src/client/presentation/file-action-controller.js +32 -0
- package/src/client/presentation/file-explorer-controller.js +33 -3
- package/src/client/presentation/file-explorer-view.js +49 -5
- package/src/client/presentation/file-tree-state.js +10 -4
- package/src/client/presentation/quick-switcher-controller.js +243 -72
- package/src/client/presentation/quick-switcher-text-search.js +2 -2
- package/src/client/presentation/toast-controller.js +3 -0
- package/src/client/styles/components/feedback.css +6 -0
- package/src/client/styles/features/collaboration-chat.css +49 -53
- package/src/client/styles/features/collaboration-presence.css +9 -7
- package/src/client/styles/features/comment-card.css +25 -11
- package/src/client/styles/features/comment-overlays.css +0 -4
- package/src/client/styles/features/comment-overview.css +44 -21
- package/src/client/styles/features/comments-drawer.css +2 -100
- package/src/client/styles/features/diagram-preview.css +5 -18
- package/src/client/styles/features/embedded-preview.css +8 -33
- package/src/client/styles/features/quick-switcher.css +8 -0
- package/src/client/styles/foundation/tokens.css +1 -0
- package/src/client/styles/layout/editor-page.css +40 -0
- package/src/client/styles/layout/responsive.css +31 -1
- package/src/client/styles/layout/shell.css +25 -6
- package/src/client/styles/layout/sidebar.css +47 -15
- package/src/client/styles/overrides/codemirror.css +217 -15
- package/src/server/application/workspace-reconciliation.js +1 -1
- package/src/server/create-app-server.js +2 -3
- package/src/server/domain/bases/base-query-service.js +1 -77
- package/src/server/domain/comment-overview.js +10 -3
- package/src/server/domain/docx-exporter.js +24 -33
- package/src/server/domain/ripgrep-search-service.js +3 -1
- package/src/server/domain/workspace-state.js +32 -11
- package/src/server/infrastructure/git/diff-service.js +24 -13
- package/src/server/infrastructure/git/git-service.js +40 -10
- package/src/server/infrastructure/git/history-service.js +42 -29
- package/src/server/infrastructure/git/path-utils.js +1 -1
- package/src/server/infrastructure/git/responses.js +0 -95
- package/src/server/infrastructure/github/github-app-client.js +22 -15
- package/src/server/infrastructure/http/create-request-handler.js +2 -8
- package/src/server/infrastructure/http/create-vault-api-command-handler.js +5 -5
- package/src/server/infrastructure/http/http-errors.js +7 -1
- package/dist/client/assets/bases-preview-controller-2pLHk0uk.js +0 -143
- package/dist/client/assets/button-BCEiw4Rw.js +0 -1
- package/dist/client/assets/diagram-action-icons-aa_KOv9h.js +0 -36
- package/dist/client/assets/drawio-editor-DDvFoarP.js +0 -9
- package/dist/client/assets/drawio-embed-controller-BD1GTRwn.js +0 -1
- package/dist/client/assets/drawioEditor-Bu5grlH5.js +0 -2
- package/dist/client/assets/editor-session-DGlpiAsK.js +0 -16
- package/dist/client/assets/embedded-editor-base-C9roKYpW.css +0 -1
- package/dist/client/assets/excalidraw-editor-Cr_184EF.css +0 -1
- package/dist/client/assets/excalidraw-embed-controller-y2fenN_g.js +0 -1
- package/dist/client/assets/excalidraw-embed-reconciler-DGiagExg.js +0 -1
- package/dist/client/assets/excalidraw-scene-BvsQ6mLP.js +0 -176
- package/dist/client/assets/excalidrawEditor-4vFE--Uw.js +0 -2
- package/dist/client/assets/export-page-Cby8JzPO.js +0 -39
- package/dist/client/assets/exportDocument-C9v-bc7I.css +0 -1
- package/dist/client/assets/exportDocument-CRHCfsdo.js +0 -2
- package/dist/client/assets/file-history-view-controller-BDjEV9xJ.js +0 -112
- package/dist/client/assets/git-diff-view-controller-DgdM1aqb.js +0 -150
- package/dist/client/assets/git-panel-controller-BDTR2HVp.js +0 -207
- package/dist/client/assets/image-XGD7JQR6-XDUWHRpO.js +0 -1
- package/dist/client/assets/index-7xOyXDhP.css +0 -1
- package/dist/client/assets/index-Bz1KuQ6y.js +0 -2
- package/dist/client/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/dist/client/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/dist/client/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/dist/client/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/dist/client/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/dist/client/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/dist/client/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
- package/dist/client/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
- package/dist/client/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- package/dist/client/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
- package/dist/client/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
- package/dist/client/assets/main-Ci07m9oP.js +0 -152
- package/dist/client/assets/preview-diagram-utils-n_bbJA9V.js +0 -1
- package/dist/client/assets/quick-switcher-controller-CoiYvllm.js +0 -12
- package/dist/client/assets/room-CDrmIdDt.js +0 -1
- package/dist/client/assets/runtime-config-CDgeuPWN.js +0 -1
- package/dist/client/assets/runtime-config-loader-BHGniHP5.js +0 -1
- package/dist/client/assets/runtime-paths-DvpihCEq.js +0 -1
- package/dist/client/assets/segmented-control-DJrHSz8M.js +0 -1
- package/dist/client/assets/vault-api-client-sLB2bo56.js +0 -1
- package/dist/client/assets/vault-paths-CVkuh0j-.js +0 -5
- package/src/client/bootstrap/lazy-controller-feature.js +0 -433
- package/src/client/infrastructure/backlinks-api-client.js +0 -16
- package/src/client/infrastructure/plantuml-api-client.js +0 -19
- package/src/client/infrastructure/runtime-config-loader.js +0 -56
- package/src/server/infrastructure/git/command-runner.js +0 -49
- package/src/server/infrastructure/git/errors.js +0 -8
- package/src/server/infrastructure/http/create-esm-proxy-handler.js +0 -130
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./excalidraw-editor-BZVM81BO.js","./rolldown-runtime-Dd_uD5pT.js","./chunk-ERSWUTIN-ME9RVNel.js","./preload-helper-HclGiUj8.js","./chunk-SRAX5OIU-KFQikY-4.js","./jsx-runtime-BpzPEenQ.js","./vault-api-client-C6bcGwy-.js","./file-kind-BKPOIRPE.js","./runtime-config-DSGmGE9V.js","./browser-utils-CKtI_rZl.js","./vault-api-client-C3mlS_4N.css","./yjs-provider-reset-guard-DE0vINDP.js","./excalidraw-scene-C8n9CHsK.js","./chunk-YGJVY4SA-CjSe7Bx7.js","./chunk-7XWMRXBY-CfMzEq80.js","./excalidraw-mermaid-stub-BNckbX2n.js","./room-CQLoqtMo.js","./excalidraw-editor-CyGwOhLz.css","./embedded-editor-base-CiNEc8vy.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import"./modulepreload-polyfill-P2Xu9kJm.js";import{t as e}from"./preload-helper-HclGiUj8.js";await e(()=>import(`./excalidraw-editor-BZVM81BO.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]),import.meta.url);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./mermaid.core-DN-lF51U.js","./preload-helper-HclGiUj8.js","./chunk-Y2CYZVJY-DsF7k-Jl.js","./src-oBChb5qS.js","./rolldown-runtime-Dd_uD5pT.js","./chunk-I66GZJ75-CVFiiffQ.js","./chunk-NSK5VX7P-TLH37VXI.js","./dist-B_J_HbC0.js","./chunk-3NCLNEKW-Y2Jf_LI-.js","./chunk-4I5QYGJK-CCB2YcIH.js","./chunk-WRU74C26-h6_XkD3_.js","./chunk-7BUUIJ7U-Bb538aSH.js","./chunk-UBXNYLIW-Bhk-PbFK.js","./chunk-W5SLKNZC-BdNSCxZ9.js","./chunk-QR6OTTB3-CDAA_5Ib.js","./rough.esm-Dy-Kn_BL.js","./chunk-7Z6QIM7H-BP9Pdsm9.js","./line-B_S_S8kV.js","./path-fybaL0A-.js","./array-BifhSqXX.js","./chunk-J7OUQ5F2-4CEb7pvH.js","./chunk-ZIRB5QZD-O39ZBUk3.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-HclGiUj8.js";import{f as t}from"./file-kind-BKPOIRPE.js";import{t as n}from"./preview-render-compiler-BSaQO_p3.js";import{d as r,l as i}from"./runtime-config-DSGmGE9V.js";import{n as a}from"./browser-utils-CKtI_rZl.js";import{a as o,c as s,o as c}from"./excalidraw-scene-C8n9CHsK.js";import{a as l,c as u,d,f as ee}from"./preview-diagram-utils-txBCoW8d.js";var te=`collabmd-export-page`,f=`collabmd-export-host`,p=Object.freeze({htmlLabels:!1,flowchart:{defaultRenderer:`dagre-wrapper`,useMaxWidth:!0},class:{defaultRenderer:`dagre-wrapper`,useMaxWidth:!0},startOnLoad:!1,theme:`default`}),m=1e4,ne=10485760,h=1e4,g=1e4,re=1,ie=new Set([`image/jpeg`,`image/jpg`,`image/png`,`image/svg+xml`]),ae=new Set([`image/gif`,`image/webp`]),oe=new Map([[`image/gif`,`GIF`],[`image/webp`,`WebP`]]),_=null,v=0;function y(e=`asset`){return v+=1,`${e}-${v.toString(36)}`}function b(e,n=``){let r=String(n??``).trim();if(r)return r;let i=String(e??``).split(`/`).filter(Boolean).pop()||`document`;return t(i)||`document`}function x(e){let t=new TextEncoder().encode(String(e??``)),n=32768,r=``;for(let e=0;e<t.length;e+=n)r+=String.fromCharCode(...t.subarray(e,e+n));return`data:image/svg+xml;base64,${btoa(r)}`}function S(){return new Promise(e=>requestAnimationFrame(()=>e()))}function C(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 se(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 w(e,t={}){return se(ee(e),t)}async function T(e){let t=URL.createObjectURL(new Blob([e],{type:`image/svg+xml;charset=utf-8`})),n=document.createElement(`div`);n.innerHTML=e;let r=n.querySelector(`svg`);try{let n;try{n=await u(t)}catch{n=await u(x(e))}let{width:i,height:a}=r?d(r):{height:n.naturalHeight||800,width:n.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(n,0,0,o.width,o.height),o.toDataURL(`image/png`)}finally{URL.revokeObjectURL(t)}}async function E(e){let t=await u(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`)}function D(e=``){return String(e??``).match(/^data:([^;,]+)/iu)?.[1]?.toLowerCase()||``}async function O(e,{warnings:t=[]}={}){let n=D(e);if(ie.has(n)||!ae.has(n))return e;let r=oe.get(n)||n;try{return await E(e)}catch(n){let i=n instanceof Error?n.message:`Failed to convert ${r} image for DOCX`;return t.push(`Failed to convert ${r} image for DOCX: ${i}`),e}}async function ce(e,{timeoutMs:t=h}={}){e instanceof HTMLImageElement&&e.getAttribute(`src`)&&(e.complete||await new Promise(n=>{let r=!1,i=()=>{r||(r=!0,window.clearTimeout(o),e.removeEventListener(`load`,a),e.removeEventListener(`error`,a))},a=()=>{i(),n()},o=window.setTimeout(a,t);e.addEventListener(`load`,a,{once:!0}),e.addEventListener(`error`,a,{once:!0}),e.complete&&a()}),typeof e.decode==`function`&&await e.decode().catch(()=>{}))}async function k(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 A(e){let t=await k(i(`/file?path=${encodeURIComponent(e)}`));if(typeof t?.content!=`string`)throw Error(`Failed to load ${e}`);return t.content}async function j(e,{maxBytes:t=ne,timeoutMs:n=m}={}){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 C(c)}function M(e){let t=new URL(r(`/`),window.location.origin);return t.hash=new URLSearchParams({file:e}).toString(),t.toString()}function N(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 P(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 F(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(re,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}`)},g);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 I(e){let t=e.dataset.videoEmbedOriginalUrl||e.dataset.videoEmbedSource||``,n=e.dataset.videoEmbedUrl||``;if((e.dataset.videoEmbedKind||``)===`youtube`){let e=N(t)||N(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 j(e,{maxBytes:3145728,timeoutMs:m})}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 F(t)}async function L(e,t){let n=await I(t),r=await E(n).catch(()=>n),i=K(e,{dataUrl:n,id:y(`video-poster`),kind:`video-poster`,mimeType:n.startsWith(`data:image/webp`)?`image/webp`:`image/png`,variants:{docx:r}});t.replaceWith(P(t,{assetId:i,docxPosterDataUrl:r,posterDataUrl:n}))}function R({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 z({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}=d(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 B(){return _||(_=e(()=>import(`./mermaid.core-DN-lF51U.js`).then(e=>{let t=e?.default;if(!t)throw Error(`Mermaid runtime failed to initialize`);return t.initialize(p),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]),import.meta.url),_)}function V(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
|
+
`),n=e.findIndex(e=>/^\s*gantt\b/.test(e));n!==-1&&(e.splice(n+1,0,` todayMarker off`),t=e.join(`
|
|
4
|
+
`))}return t}async function H(e){let t=await B();t.initialize(p);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=y(`mermaid-render`),r.textContent=V(e),n.appendChild(r),await t.run({nodes:[r]});let i=r.querySelector(`svg`);if(!i)throw Error(`Mermaid render returned no SVG`);return w(i.outerHTML,{padding:24})}finally{n.remove()}}async function U(e){let t=await k(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 w(t.svg,{padding:16})}async function W(e){let t=await A(e),n=o(t),r=c(n,{theme:`light`});return w((await s({appState:{...r.appState,exportBackground:!0,exportWithDarkMode:!1},elements:r.elements.filter(e=>!e.isDeleted),exportPadding:24,files:r.files||null})).outerHTML,{padding:24})}async function G(e){let t=y(`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 K(e,t){return e.assets[t.id]=t,t.id}async function q(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 A(o)),!a.trim())throw Error(`${n} source is empty`);let s=await i(a,o),c=l(s),u=await T(s).catch(()=>c),d=K(e,{dataUrl:c,id:y(r),kind:`svg`,mimeType:`image/svg+xml`,text:s,variants:{docx:u}});t.replaceWith(z({alt:n,assetId:d,className:`export-diagram--${r}`,dataUrl:c,docxDataUrl:u,svgMarkup:s}))}async function le(e,t){let n=String(t.dataset.embedTarget??``).trim();if(!n)throw Error(`Missing Excalidraw file path`);let r=await W(n),i=l(r),a=await T(r).catch(()=>i),o=K(e,{dataUrl:i,id:y(`excalidraw`),kind:`svg`,mimeType:`image/svg+xml`,text:r,variants:{docx:a}});t.replaceWith(z({alt:t.dataset.embedLabel||`Excalidraw diagram`,assetId:o,className:`export-diagram--excalidraw`,dataUrl:i,docxDataUrl:a,svgMarkup:r}))}async function ue(e,t){let n=String(t.dataset.drawioTarget??``).trim();if(!n)throw Error(`Missing draw.io file path`);let r=await G(n),i=K(e,{dataUrl:r,id:y(`drawio`),kind:`png`,mimeType:`image/png`});t.replaceWith(z({alt:t.dataset.drawioLabel||`draw.io diagram`,assetId:i,className:`export-diagram--drawio`,dataUrl:r,docxDataUrl:r}))}async function de(e,t){let n=Array.from(t.querySelectorAll(`img`));for(let t of n){let n=t.getAttribute(`src`)||``;if(n){if(n.startsWith(`data:`)){let r=await O(n,{warnings:e.warnings});t.setAttribute(`data-export-docx-src`,r);continue}try{let r=await j(new URL(n,window.location.href).toString()),i=await O(r,{warnings:e.warnings}),a=K(e,{dataUrl:r,id:y(`image`),kind:`image`,mimeType:D(r)||`application/octet-stream`});t.src=r,t.setAttribute(`data-export-asset-id`,a),t.setAttribute(`data-export-docx-src`,i)}catch(r){let i=r instanceof Error?r.message:`Failed to inline ${n}`;e.warnings.push(i),t.replaceWith(R({alt:t.getAttribute(`alt`)||``,message:`Image export failed: ${i}. Source:`,src:n}))}}}}function fe(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`,M(t)),e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`))})}function pe(e){Array.from(e.querySelectorAll(`.task-list-item input[type="checkbox"]`)).forEach(e=>{e.setAttribute(`disabled`,`true`)})}async function me(e,{container:t}={}){fe(t),pe(t);let n=Array.from(t.querySelectorAll(`.video-embed-placeholder[data-video-embed-key]`));for(let t of n)try{await L(e,t)}catch(n){e.warnings.push(n instanceof Error?n.message:`Failed to render video poster`),t.replaceWith(P(t))}let r=Array.from(t.querySelectorAll(`.mermaid-shell[data-mermaid-key]`));for(let t of r)try{await q(e,t,{label:t.dataset.mermaidLabel||`Mermaid diagram`,prefix:`mermaid`,render:e=>H(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 q(e,t,{label:t.dataset.plantumlLabel||`PlantUML diagram`,prefix:`plantuml`,render:e=>U(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 le(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 ue(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 de(e,t),e}async function he({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:b(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 me(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 ge(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 _e(e){let t=(e.textContent||``).replace(/\r\n/g,`
|
|
5
|
+
`).split(`
|
|
6
|
+
`),n=[];return t.forEach((e,r)=>{let i=document.createElement(`p`);i.style.margin=`0`,r<t.length-1&&(i.style.marginBottom=`2px`),i.style.fontFamily=`'JetBrains Mono', 'Courier New', monospace`,i.style.fontSize=`12px`,i.style.lineHeight=`1.55`,i.style.color=`#111827`;let a=(e||``).replace(/\t/g,` `);a?(i.textContent=a,i.innerHTML=i.innerHTML.replace(/ /g,` `)):i.innerHTML=` `,n.push(i)}),Y({borderColor:`#d1d5db`,contentNodes:n,padding:`12px 14px`,shade:`#f8fafc`})}function ve(e){let t=document.createElement(`template`);return t.innerHTML=e.html,Array.from(t.content.querySelectorAll(`.table-wrapper`)).forEach(e=>{let t=e.querySelector(`:scope > table`);t&&(J(t),e.replaceWith(t))}),Array.from(t.content.querySelectorAll(`table`)).forEach(e=>{J(e)}),Array.from(t.content.querySelectorAll(`pre`)).forEach(e=>{e.replaceWith(_e(e))}),Array.from(t.content.querySelectorAll(`figure.export-diagram[data-export-docx-src]`)).forEach(e=>{let t=e.getAttribute(`data-export-docx-src`),n=e.querySelector(`svg`);if(!t||!n)return;let r=document.createElement(`img`);r.alt=e.getAttribute(`data-export-label`)||`Diagram`,r.className=`export-diagram-image`,r.src=t,r.style.display=`block`,r.style.width=`100%`,r.style.height=`auto`,e.replaceWith(Y({contentNodes:[r],padding:`12px`}))}),Array.from(t.content.querySelectorAll(`figure.export-video-poster`)).forEach(e=>{let t=e.querySelector(`.export-video-poster-card`),n=e.querySelector(`.export-video-poster-image`),r=e.querySelector(`.export-video-link`),i=e.querySelector(`.export-video-poster-copy strong`),a=e.querySelector(`.export-video-poster-meta`),o=document.createElement(`div`);if(o.className=`export-video-poster-docx`,n instanceof HTMLImageElement){let e=document.createElement(`img`);e.alt=n.alt||i?.textContent||`Embedded video poster`,e.className=`export-video-poster-image`,e.src=n.getAttribute(`data-export-docx-src`)||n.getAttribute(`src`)||``,o.appendChild(e)}if(i?.textContent){let e=document.createElement(`p`),t=document.createElement(`strong`);t.textContent=i.textContent,e.appendChild(t),o.appendChild(e)}if(a?.textContent){let e=document.createElement(`p`);e.className=`export-video-poster-meta`,e.textContent=a.textContent,o.appendChild(e)}if(r instanceof HTMLAnchorElement&&r.href){let e=document.createElement(`p`),t=document.createElement(`a`);t.href=r.href,t.textContent=r.textContent||r.href,e.appendChild(t),o.appendChild(e)}if(!o.childNodes.length&&t?.textContent){let e=document.createElement(`p`);e.textContent=t.textContent,o.appendChild(e)}e.replaceWith(Y({contentNodes:[o],padding:`12px`}))}),Array.from(t.content.querySelectorAll(`[data-export-docx-src]`)).forEach(e=>{if(!(e instanceof HTMLImageElement))return;let t=e.getAttribute(`data-export-docx-src`);t&&e.setAttribute(`src`,t)}),Array.from(t.content.querySelectorAll(`blockquote`)).forEach(e=>{e.replaceWith(ge(e))}),Array.from(t.content.querySelectorAll(`figure`)).forEach(e=>{if(e.closest(`table`))return;let t=e.querySelector(`img`);if(!(t instanceof HTMLImageElement))return;let n=t.cloneNode(!0);n.style.display=`block`,n.style.width=`100%`,n.style.height=`auto`,e.replaceWith(Y({contentNodes:[n],padding:`12px`}))}),`<!DOCTYPE html>
|
|
7
|
+
<html lang="en">
|
|
8
|
+
<head>
|
|
9
|
+
<meta charset="UTF-8">
|
|
10
|
+
<title>${e.title}</title>
|
|
11
|
+
<style>
|
|
12
|
+
body { font-family: Arial, sans-serif; color: #111827; line-height: 1.6; }
|
|
13
|
+
main { max-width: 760px; margin: 0 auto; }
|
|
14
|
+
h1, h2, h3, h4, h5, h6 { color: #111827; margin: 1.3em 0 0.6em; line-height: 1.2; }
|
|
15
|
+
h1 { font-size: 28px; border-bottom: 1px solid #d1d5db; padding-bottom: 8px; }
|
|
16
|
+
h2 { font-size: 22px; }
|
|
17
|
+
h3 { font-size: 18px; }
|
|
18
|
+
p, ul, ol, blockquote, pre, table, figure { margin: 0 0 16px; }
|
|
19
|
+
a { color: #4338ca; text-decoration: underline; }
|
|
20
|
+
pre { padding: 12px; border: 1px solid #d1d5db; background: #f8fafc; overflow: hidden; }
|
|
21
|
+
code { font-family: 'JetBrains Mono', 'Courier New', monospace; background: #f3f4f6; padding: 2px 4px; }
|
|
22
|
+
pre code { background: transparent; padding: 0; display: block; white-space: pre-wrap; }
|
|
23
|
+
blockquote { padding-left: 14px; border-left: 3px solid #6366f1; color: #4b5563; }
|
|
24
|
+
table { width: 100%; border-collapse: collapse; border: 1px solid #d1d5db; }
|
|
25
|
+
th, td { border: 1px solid #d1d5db; padding: 8px 10px; text-align: left; vertical-align: top; }
|
|
26
|
+
th { background: #f3f4f6; }
|
|
27
|
+
img { max-width: 100%; height: auto; }
|
|
28
|
+
.export-video-poster-docx { margin: 0 0 16px; }
|
|
29
|
+
.export-video-poster-card { padding: 14px 16px; border: 1px solid #d1d5db; background: #f8fafc; }
|
|
30
|
+
.export-video-poster-image { display: block; margin: 0 0 12px; }
|
|
31
|
+
.export-video-poster-meta { display: block; color: #6b7280; font-size: 12px; margin-top: 4px; }
|
|
32
|
+
.export-video-link { display: block; margin-top: 8px; word-break: break-word; }
|
|
33
|
+
.export-warning { color: #b45309; }
|
|
34
|
+
</style>
|
|
35
|
+
</head>
|
|
36
|
+
<body>
|
|
37
|
+
<main>${t.innerHTML}</main>
|
|
38
|
+
</body>
|
|
39
|
+
</html>`}async function ye(e){let t=await fetch(i(`/export/docx`),{body:JSON.stringify({filePath:e.filePath,html:ve(e),title:e.title}),headers:{"Content-Type":`application/json`},method:`POST`});if(!t.ok){let e=await t.json().catch(()=>null);throw Error(e?.error||`Failed to export DOCX`)}let n=await t.blob();a(n,`${b(e.filePath,e.title)}.docx`,{removeDelayMs:0,revokeDelayMs:1e3})}async function be(){await S(),await S(),await new Promise(e=>{let t=window.setTimeout(e,1500),n=()=>{window.clearTimeout(t),window.removeEventListener(`afterprint`,n),e()};window.addEventListener(`afterprint`,n,{once:!0}),window.print()})}async function xe(e,{settleFrames:t=2,timeoutMs:n=h}={}){if(!e)return``;let r=Array.from(e.querySelectorAll(`img`)).map(e=>ce(e,{timeoutMs:n})),i=document.fonts?.ready?Promise.resolve(document.fonts.ready).catch(()=>{}):Promise.resolve();await Promise.allSettled([i,...r]);for(let e=0;e<t;e+=1)await S();return e.innerHTML}async function Se(e,t){if(t===`pdf`){await be(e);return}await ye(e)}function X(e,t={}){!window.opener||window.opener.closed||window.opener.postMessage({...t,source:te,type:e},window.location.origin)}async function Z(){let e=new URL(window.location.href),t=e.searchParams.get(`action`)===`pdf`?`pdf`:`docx`,n=e.searchParams.get(`file`)||``,r=e.searchParams.get(`job`)||``;return r&&window.opener&&!window.opener.closed?(X(`ready`,{jobId:r}),new Promise((e,i)=>{let a=window.setTimeout(()=>{o(),i(Error(`Timed out waiting for export data`))},1e4),o=()=>{window.clearTimeout(a),window.removeEventListener(`message`,s)},s=i=>{if(i.origin!==window.location.origin)return;let a=i.data;!a||a.source!==f||a.type!==`bootstrap`||a.jobId!==r||(o(),e({action:t,fileList:Array.isArray(a.fileList)?a.fileList:[],filePath:a.filePath||n,title:a.title||``,markdownText:a.markdownText||``}))};window.addEventListener(`message`,s)})):{action:t,fileList:[],filePath:n,markdownText:n?await A(n):``,title:``}}var Ce=`h1, h2, h3, h4, h5, h6`,we=[`figure`,`pre`,`blockquote`,`table`].join(`, `);function Q(e){return!!e?.matches?.(we)}function Te(e){e&&Array.from(e.querySelectorAll(Ce)).forEach(e=>{if(e.parentElement?.classList.contains(`export-keep-with-next`))return;let t=e.nextElementSibling;if(!t||t.classList.contains(`export-keep-with-next`))return;let n=[e],r=t;if(r.tagName===`P`){let e=r.nextElementSibling;if(!e||!Q(e))return;n.push(r),r=e}else if(!Q(r))return;n.push(r);let i=document.createElement(`section`);i.className=`export-keep-with-next`,e.before(i),n.forEach(e=>i.appendChild(e))})}function $(e){let t=document.getElementById(`exportStatus`);t&&(t.textContent=e)}function Ee(e){let t=document.getElementById(`exportWarnings`),n=document.getElementById(`exportWarningsSection`);if(!t||!n)return;t.replaceChildren();let r=e.warnings??[];n.hidden=r.length===0,r.forEach(e=>{let n=document.createElement(`li`);n.textContent=e,t.appendChild(n)})}function De(e){let t=document.getElementById(`exportContent`);return t?(document.title=`${e.title} — Export`,t.innerHTML=e.html,Te(t),Ee(e),t):null}async function Oe(){try{$(`Loading export content…`);let e=await Z(),t=await he(e);t.html=await xe(De(t)),$(e.action===`pdf`?`Opening print dialog…`:`Preparing DOCX download…`),await Se(t,e.action),$(e.action===`pdf`?`Print dialog opened.`:`DOCX download started.`),X(`complete`,{jobId:new URL(window.location.href).searchParams.get(`job`)||``})}catch(e){let t=e instanceof Error?e.message:`Export failed`;$(t),X(`error`,{jobId:new URL(window.location.href).searchParams.get(`job`)||``,message:t})}}Oe();
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./export-page-CUfws2T-.js","./preload-helper-HclGiUj8.js","./file-kind-BKPOIRPE.js","./preview-render-compiler-BSaQO_p3.js","./preview-render-profile-BZzGSg6K.js","./rolldown-runtime-Dd_uD5pT.js","./vault-utils-wdQ0RNR9.js","./runtime-config-DSGmGE9V.js","./browser-utils-CKtI_rZl.js","./excalidraw-scene-C8n9CHsK.js","./chunk-ERSWUTIN-ME9RVNel.js","./chunk-SRAX5OIU-KFQikY-4.js","./jsx-runtime-BpzPEenQ.js","./chunk-YGJVY4SA-CjSe7Bx7.js","./chunk-7XWMRXBY-CfMzEq80.js","./excalidraw-mermaid-stub-BNckbX2n.js","./preview-diagram-utils-txBCoW8d.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import"./modulepreload-polyfill-P2Xu9kJm.js";import{t as e}from"./preload-helper-HclGiUj8.js";import{t}from"./base-CxPEiHuy.js";function n(){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=t}n(),await e(()=>import(`./export-page-CUfws2T-.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),import.meta.url);
|
|
@@ -0,0 +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:12px;--text-caption:11px;--text-micro:10px;--text-code-sm:12px;--text-ui-sm:13px;--text-ui-md:14px;--text-title-sm:15px;--text-title-md:18px;--font-body:"Inter Variable", "Inter", system-ui, sans-serif;--font-display:"Inter Variable", "Inter", system-ui, sans-serif;--font-prose:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", "SF Mono", 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;--sidebar-width:260px;--control-h-xs:28px;--control-h-sm:30px;--control-h-md:36px;--control-h-lg:44px;--control-target-min:44px;--control-icon-sm:14px;--control-icon-md:16px;--panel-border-width:1px}:root,[data-theme=light]{--color-bg:#f6f8fa;--color-surface:#fff;--color-surface-2:#fbfcfd;--color-surface-offset:#f0f3f6;--color-surface-offset-2:#e8edf2;--color-surface-dynamic:#dde3ea;--color-surface-raised:#fff;--color-surface-ink:#0b1118;--color-divider:#e3e8ee;--color-border:#cbd4df;--color-text:#17212b;--color-text-muted:#596675;--color-text-faint:#8391a1;--color-text-inverse:#f8fafc;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-active:#1e40af;--color-primary-contrast:#fff;--color-primary-highlight:#dbeafe;--color-comment:#2563eb;--color-comment-soft:#2563eb14;--color-comment-strong:#2563eb24;--color-comment-text:#1e40af;--color-error:#dc2626;--color-danger:#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:#2563eb14;--diff-hunk-text:#2563eb;--diff-gutter:#8391a1;--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-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record-hover:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--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:var(--color-warning-highlight);--border-warning-toast:oklab(73.4461% .062398 .147608);--text-warning-toast:#422006;--shadow-warning-toast:var(--shadow-md);--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:#0b0f14;--color-surface:#11161d;--color-surface-2:#171d26;--color-surface-offset:#141a22;--color-surface-offset-2:#1c2530;--color-surface-dynamic:#253140;--color-surface-raised:#1a222c;--color-surface-ink:#030608;--color-divider:#242e3a;--color-border:#303c4b;--color-text:#e6edf3;--color-text-muted:#9aa7b4;--color-text-faint:#687584;--color-text-inverse:#0b0f14;--color-primary:#60a5fa;--color-primary-hover:#3b82f6;--color-primary-active:#2563eb;--color-primary-contrast:#07111f;--color-primary-highlight:#172a45;--color-comment:#60a5fa;--color-comment-soft:#60a5fa1a;--color-comment-strong:#60a5fa29;--color-comment-text:#bfdbfe;--color-error:#f87171;--color-danger:#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:#60a5fa1a;--diff-hunk-text:#60a5fa;--diff-gutter:#687584;--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-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record-hover:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--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:var(--color-warning-highlight);--border-warning-toast:oklab(79.4887% .0497246 .137216/.88);--text-warning-toast:oklab(99.6952% -.000454402 .00461993);--shadow-warning-toast:var(--shadow-md);--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/.22);--shadow-md:0 4px 12px oklch(0% 0 0/.3);--shadow-lg:0 16px 40px oklch(0% 0 0/.45)}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:#0b0f14;--color-surface:#11161d;--color-surface-2:#171d26;--color-surface-offset:#141a22;--color-surface-offset-2:#1c2530;--color-surface-dynamic:#253140;--color-surface-raised:#1a222c;--color-surface-ink:#030608;--color-divider:#242e3a;--color-border:#303c4b;--color-text:#e6edf3;--color-text-muted:#9aa7b4;--color-text-faint:#687584;--color-text-inverse:#0b0f14;--color-primary:#60a5fa;--color-primary-hover:#3b82f6;--color-primary-active:#2563eb;--color-primary-contrast:#07111f;--color-primary-highlight:#172a45;--color-comment:#60a5fa;--color-comment-soft:#60a5fa1a;--color-comment-strong:#60a5fa29;--color-comment-text:#bfdbfe;--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-header:color-mix(in srgb, var(--color-surface) 97%, var(--color-comment) 3%);--surface-comment-record-hover:color-mix(in srgb, var(--color-surface-2) 92%, var(--color-comment) 8%);--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:var(--color-warning-highlight);--border-warning-toast:oklab(79.4887% .0497246 .137216/.88);--text-warning-toast:oklab(99.6952% -.000454402 .00461993);--shadow-warning-toast:var(--shadow-md);--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/.22);--shadow-md:0 4px 12px oklch(0% 0 0/.3);--shadow-lg:0 16px 40px oklch(0% 0 0/.45)}}.preview-content,.preview-content h1,.preview-content h2,.preview-content h3,.preview-content h4,.preview-content h5,.preview-content h6{font-family:var(--font-prose)}.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 .preview-heading-link-button{border-radius:var(--radius-full);width:1.18em;min-width:1.18em;height:1.18em;color:color-mix(in oklab, var(--color-text-muted) 78%, transparent);transition:transform var(--transition-interactive), background var(--transition-interactive), box-shadow var(--transition-interactive), color var(--transition-interactive), opacity var(--transition-interactive);vertical-align:middle;opacity:0;background:0 0;border:0;margin-inline-start:.28em;display:inline-flex;transform:translateY(-.04em)}.preview-content .preview-heading-link-button>svg{stroke-width:2px;width:.74em;height:.74em}.preview-content .preview-heading-link-button:hover{background:color-mix(in oklab, var(--color-primary) 12%, transparent);box-shadow:var(--shadow-accent-outline);color:var(--color-primary);transform:translateY(-.04em)scale(1.04)}.preview-content h1:hover .preview-heading-link-button,.preview-content h2:hover .preview-heading-link-button,.preview-content h3:hover .preview-heading-link-button,.preview-content h4:hover .preview-heading-link-button,.preview-content h5:hover .preview-heading-link-button,.preview-content h6:hover .preview-heading-link-button,.preview-content .preview-heading-link-button:focus-visible{opacity:1}.preview-content .preview-heading-link-button:focus-visible{background:color-mix(in oklab, var(--color-primary) 14%, transparent);box-shadow:var(--shadow-focus-compact);color:var(--color-primary);outline:0}.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(>.bases-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 .bases-shell{width:100%;margin:0 0 var(--space-5);border:1px solid var(--color-divider);border-radius:calc(var(--radius-lg) + 2px);background:var(--color-surface);box-shadow:var(--shadow-md);overflow:hidden}.preview-content .bases-embed-placeholder>.bases-shell{margin:0}.preview-content .bases-toolbar{gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-divider);border-radius:calc(var(--radius-lg) + 1px) calc(var(--radius-lg) + 1px) 0 0;background:var(--color-surface);display:grid}.preview-content .bases-toolbar-main,.preview-content .bases-toolbar-actions,.preview-content .bases-summaries,.preview-content .bases-value-list{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.preview-content .bases-toolbar-main{justify-content:space-between;gap:var(--space-3);min-width:0}.preview-content .bases-tabs{border:1px solid color-mix(in oklab, var(--color-divider) 82%, transparent);border-radius:var(--radius-full);background:color-mix(in oklab, var(--color-surface-offset) 78%, var(--color-surface));scrollbar-width:none;flex-wrap:nowrap;flex:auto;min-width:0;max-width:100%;padding:3px;overflow:auto hidden}.preview-content .bases-tabs::-webkit-scrollbar{display:none}.preview-content .bases-export-btn,.preview-content .bases-link-button{flex-shrink:0}.preview-content .bases-toolbar-actions{justify-content:space-between;gap:var(--space-3);width:100%}.preview-content .bases-toolbar-edit-actions,.preview-content .bases-panel-title-row,.preview-content .bases-toggle-row,.preview-content .bases-filter-group-header,.preview-content .bases-filter-actions-row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.preview-content .bases-toolbar-edit-actions{border:1px solid var(--color-divider);border-radius:var(--radius-full);background:color-mix(in oklab, var(--color-surface) 72%, var(--color-surface-offset));box-shadow:inset 0 1px 0 oklch(from var(--color-text) l c h / .04);padding:3px;display:inline-flex}.preview-content .bases-panel-title-row,.preview-content .bases-filter-group-header{justify-content:space-between}.preview-content .bases-sort-row,.preview-content .bases-filter-row{gap:var(--space-2);align-items:stretch;width:100%;display:grid}.preview-content .bases-panel-section>.bases-sort-row{grid-template-columns:minmax(180px,1.35fr) minmax(140px,1fr) auto}.preview-content .bases-sort-list>.bases-sort-row{grid-template-columns:minmax(180px,1.35fr) minmax(140px,1fr) repeat(3,auto)}.preview-content .bases-filter-row{grid-template-columns:minmax(180px,1.2fr) minmax(160px,1fr) minmax(200px,1.35fr) auto}.preview-content .bases-sort-row>.ui-button,.preview-content .bases-filter-row>.ui-button,.preview-content .bases-filter-group-header>.ui-button,.preview-content .bases-filter-actions-row>.ui-button{align-self:stretch}.preview-content .bases-panels{padding:var(--space-3) var(--space-4) var(--space-4);background:var(--color-surface)}.preview-content .bases-panel-card{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-divider);border-radius:calc(var(--radius-lg) + 1px);background:var(--color-surface);box-shadow:var(--shadow-sm);display:grid}.preview-content .bases-panel-section{gap:var(--space-2);display:grid}.preview-content .bases-panel-section+.bases-panel-section{padding-top:var(--space-3);border-top:1px solid color-mix(in oklab, var(--color-divider) 86%, transparent)}.preview-content .bases-panel-title,.preview-content .bases-readonly-note{font-size:var(--text-ui-sm);color:var(--color-text-muted)}.preview-content .bases-panel-title{font-weight:600}.preview-content .bases-readonly-note{line-height:1.5}.preview-content .bases-select,.preview-content .bases-filter-value,.preview-content .bases-properties-search-input,.preview-content .bases-filter-advanced{width:100%;min-width:0}.preview-content .bases-select,.preview-content .bases-filter-value,.preview-content .bases-filter-value-combobox{min-height:var(--control-h-md)}.preview-content .bases-select{appearance:none;padding-right:calc(var(--space-6) + var(--space-3));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23838ea4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right var(--space-3) center;background-repeat:no-repeat;background-size:16px 16px}.preview-content .bases-filter-value-combobox{min-width:0;position:relative}.preview-content .bases-filter-value{padding-right:var(--space-3)}.preview-content .bases-filter-value--suggestions{padding-right:calc(var(--space-6) + var(--space-3));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23838ea4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right var(--space-3) center;background-repeat:no-repeat;background-size:16px 16px}.preview-content .bases-filter-suggestion-list{top:calc(100% + var(--space-1));z-index:3;max-height:224px;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);gap:2px;display:grid;position:absolute;left:0;right:0;overflow:auto}.preview-content .bases-filter-suggestion{gap:var(--space-2);width:100%;min-height:36px;padding:var(--space-2) var(--space-3);border-radius:calc(var(--radius-md) - 2px);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.preview-content .bases-filter-suggestion:hover,.preview-content .bases-filter-suggestion:focus-visible{background:var(--surface-fill-subtle);outline:none}.preview-content .bases-filter-suggestion[aria-selected=true]{background:color-mix(in oklab, var(--color-primary) 10%, var(--color-surface));color:var(--color-primary)}.preview-content .bases-filter-suggestion-label,.preview-content .bases-filter-suggestion-meta{min-width:0}.preview-content .bases-filter-suggestion-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preview-content .bases-filter-suggestion-meta{color:var(--color-text-muted);font-size:var(--text-ui-sm)}.preview-content .bases-filter-group{gap:var(--space-3);padding:var(--space-3);border:1px solid color-mix(in oklab, var(--color-divider) 88%, transparent);border-radius:calc(var(--radius-lg) + 1px);background:var(--color-surface);box-shadow:inset 0 1px 0 oklch(from var(--color-text) l c h / .04);display:grid}.preview-content .bases-filter-children,.preview-content .bases-sort-list{gap:var(--space-3);display:grid}.preview-content .bases-properties-search,.preview-content .bases-filter-advanced-label{width:100%;display:block}.preview-content .bases-properties-list{gap:var(--space-2);max-height:320px;padding:var(--space-1);border:1px solid color-mix(in oklab, var(--color-divider) 86%, transparent);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--color-surface-offset) 54%, var(--color-surface));display:grid;overflow:auto}.preview-content .bases-property-option{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);transition:transform var(--transition-interactive), border-color var(--transition-interactive), box-shadow var(--transition-interactive), background var(--transition-interactive);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.preview-content .bases-property-option:hover{border-color:color-mix(in oklab, var(--color-divider) 55%, var(--color-primary) 45%);background:var(--surface-fill-subtle);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.preview-content .bases-property-option input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);margin:0}.preview-content .bases-property-option-label{min-width:0;font-weight:500}.preview-content .bases-property-option-meta{font-size:var(--text-ui-sm);color:var(--color-text-faint);text-transform:capitalize}.preview-content .bases-filter-advanced{min-height:180px;padding:var(--space-3);resize:vertical;line-height:1.5}.preview-content .bases-search-shell{border:1px solid color-mix(in oklab, var(--color-border) 82%, var(--color-primary) 18%);border-radius:var(--radius-lg);background:var(--color-surface);width:100%;min-width:min(320px,100%);max-width:min(420px,100%);box-shadow:inset 0 1px 0 oklch(from var(--color-text) l c h / .04);transition:border-color var(--transition-interactive), box-shadow var(--transition-interactive), background var(--transition-interactive);flex:320px;align-items:center;margin-left:auto;display:flex;position:relative}.preview-content .bases-search-shell:focus-within{border-color:var(--color-primary);box-shadow:var(--shadow-focus), inset 0 1px 0 oklch(from var(--color-text) l c h / .04)}.preview-content .bases-search-icon{left:var(--space-3);color:var(--color-text-faint);pointer-events:none;position:absolute}.preview-content .bases-search-input{border-radius:inherit;min-width:0;box-shadow:none;padding-left:calc(var(--space-3) * 2 + 16px);background:0 0;border:0}.preview-content .bases-search-input:focus{box-shadow:none;border-color:#0000}.preview-content .bases-export-btn{min-height:var(--control-h-md);padding-inline:var(--space-4);font-size:var(--text-sm);font-weight:600}.preview-content .bases-export-btn:hover{border-color:color-mix(in oklab, var(--color-border) 45%, var(--color-primary) 55%)}.preview-content .bases-meta,.preview-content .bases-summary-label,.preview-content .bases-card-label{color:var(--color-text-muted);font-size:var(--text-ui-sm)}.preview-content .bases-meta{min-height:28px;padding:0 var(--space-3);border:1px solid color-mix(in oklab, var(--color-divider) 84%, transparent);border-radius:var(--radius-full);background:color-mix(in oklab, var(--color-surface-offset) 72%, var(--color-surface));box-shadow:inset 0 1px 0 oklch(from var(--color-text) l c h / .04);white-space:nowrap;align-items:center;display:inline-flex}.preview-content .bases-summaries{padding:var(--space-3) var(--space-4);border-top:1px solid color-mix(in oklab, var(--color-divider) 78%, transparent);border-bottom:1px solid var(--color-divider);background:var(--color-surface)}.preview-content .bases-summary{align-items:center;gap:var(--space-2);min-height:30px;padding:0 var(--space-3);border:1px solid color-mix(in oklab, var(--color-divider) 84%, transparent);background:var(--color-surface);box-shadow:inset 0 1px 0 oklch(from var(--color-text) l c h / .04);border-radius:999px;display:inline-flex}.preview-content .bases-summary-value{font-weight:600}.preview-content .bases-content{padding:var(--space-4)}.preview-content .bases-group+.bases-group{margin-top:var(--space-5)}.preview-content .bases-group-header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.preview-content .bases-group-header h3{margin:0}.preview-content .bases-table-shell{border:1px solid color-mix(in oklab, var(--color-divider) 88%, transparent);border-radius:calc(var(--radius-lg) + 1px);background:var(--color-surface);box-shadow:inset 0 1px 0 oklch(from var(--color-text) l c h / .04);overflow-x:auto}.preview-content .bases-table{border-collapse:separate;border-spacing:0;width:100%;min-width:620px}.preview-content .bases-table th,.preview-content .bases-table td{padding:var(--space-3);border-bottom:1px solid var(--color-divider);text-align:left;vertical-align:top}.preview-content .bases-table th{z-index:1;background:color-mix(in oklab, var(--color-surface-offset) 72%, var(--color-surface));color:var(--color-text-muted);font-size:var(--text-ui-sm);white-space:nowrap;font-weight:600;position:sticky;top:0}.preview-content .bases-table tbody tr{transition:background var(--transition-interactive)}.preview-content .bases-table tbody tr:nth-child(2n){background:color-mix(in oklab, var(--color-surface-offset) 24%, transparent)}.preview-content .bases-table tbody tr:hover{background:color-mix(in oklab, var(--color-primary) 6%, var(--color-surface-offset))}.preview-content .bases-table tbody tr:last-child td{border-bottom:0}.preview-content .bases-list,.preview-content .bases-cards{max-width:none;margin:0;padding:0}.preview-content .bases-list{gap:var(--space-2);list-style:none;display:grid}.preview-content .bases-list-item{gap:var(--space-3);padding:var(--space-3);border:1px solid color-mix(in oklab, var(--color-divider) 88%, transparent);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:inset 0 1px 0 oklch(from var(--color-text) l c h / .04);flex-wrap:wrap;display:flex}.preview-content .bases-list-field{gap:2px;min-width:min(220px,100%);display:grid}.preview-content .bases-cards{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.preview-content .bases-card{border:1px solid var(--color-border);border-radius:calc(var(--radius-lg) + 2px);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:transform var(--transition-interactive), box-shadow var(--transition-interactive), border-color var(--transition-interactive);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.preview-content .bases-card:hover{border-color:color-mix(in oklab, var(--color-border) 58%, var(--color-primary) 42%);box-shadow:var(--shadow-md);transform:translateY(-1px)}.preview-content .bases-card-media{object-fit:cover;background:color-mix(in oklab, var(--color-surface-offset) 50%, var(--color-surface));width:100%;height:140px;display:block}.preview-content .bases-card-media-color{background:var(--bases-card-swatch)}.preview-content .bases-card-body{gap:var(--space-3);padding:var(--space-4);display:grid}.preview-content .bases-card-field+.bases-card-field{padding-top:var(--space-3);border-top:1px solid color-mix(in oklab, var(--color-divider) 84%, transparent);margin-top:0}.preview-content .bases-link-button{min-height:auto;box-shadow:none;color:var(--color-primary);font-size:inherit;font-weight:600;line-height:inherit;background:0 0;border:0;border-radius:0;padding:0}.preview-content .bases-link-button:hover,.preview-content .bases-link-button:focus-visible{box-shadow:none;color:var(--color-primary);background:0 0;border-color:#0000}.preview-content .bases-value-pill{min-height:26px;padding:0 var(--space-3);border:1px solid var(--color-border);background:color-mix(in oklab, var(--color-surface-offset) 44%, var(--color-surface));box-shadow:inset 0 1px 0 oklch(from var(--color-text) l c h / .04);font-size:var(--text-ui-sm);border-radius:999px;align-items:center;display:inline-flex}.preview-content .bases-inline-image{border:1px solid color-mix(in oklab, var(--color-divider) 84%, transparent);border-radius:var(--radius-md);max-width:120px;max-height:80px;box-shadow:var(--shadow-sm);display:block}.preview-content .bases-unsupported{padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);background:color-mix(in oklab, var(--color-surface-offset) 52%, var(--color-surface))}@media (width<=900px){.preview-content .bases-toolbar-actions{justify-content:flex-start}.preview-content .bases-search-shell{max-width:none;margin-left:0}.preview-content .bases-panel-section>.bases-sort-row,.preview-content .bases-sort-list>.bases-sort-row,.preview-content .bases-filter-row{grid-template-columns:1fr}.preview-content .bases-sort-row>.ui-button,.preview-content .bases-filter-row>.ui-button{width:100%}}@media (width<=640px){.preview-content .bases-toolbar,.preview-content .bases-panels,.preview-content .bases-summaries,.preview-content .bases-content{padding-inline:var(--space-3)}.preview-content .bases-toolbar-edit-actions,.preview-content .bases-toggle-row,.preview-content .bases-filter-actions-row{width:100%}.preview-content .bases-toolbar-edit-actions{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0;display:grid}.preview-content .bases-toolbar-edit-actions>.ui-button,.preview-content .bases-toggle-row>.ui-button,.preview-content .bases-filter-actions-row>.ui-button{flex:140px}.preview-content .bases-toolbar-edit-actions>.ui-button{width:100%;min-width:0}.preview-content .bases-toolbar-edit-actions>.ui-button:last-child:nth-child(odd){grid-column:1/-1}.preview-content .bases-property-option{grid-template-columns:auto minmax(0,1fr)}.preview-content .bases-property-option-meta{grid-column:2}.preview-content .bases-table{min-width:540px}}.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:.5em;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-flow:row;align-items:center}.preview-content .frontmatter-toggle{margin-left:auto}.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}html[data-surface=export-document]{overscroll-behavior:auto;scrollbar-width:none;height:auto;min-height:100%;overflow:hidden}body[data-surface=export-document]{overscroll-behavior:auto;background:var(--color-bg);height:auto;color:var(--color-text);scrollbar-width:none;overflow:hidden}html[data-surface=export-document]::-webkit-scrollbar{display:none}body[data-surface=export-document]::-webkit-scrollbar{display:none}.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,.export-content .bases-table-shell,.export-content pre{overflow:visible}.export-content table{white-space:normal}.export-content pre code{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;width:auto}.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{html[data-surface=export-document],body[data-surface=export-document]{background:var(--color-surface);scrollbar-width:none;height:auto;overflow:hidden!important}html[data-surface=export-document]::-webkit-scrollbar{display:none}body[data-surface=export-document]::-webkit-scrollbar{display:none}.export-content ::-webkit-scrollbar{display:none}.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;overflow:visible}.export-content pre,.export-content .table-wrapper,.export-content .bases-table-shell{overflow:visible!important}.export-content pre code{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;width:auto}.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}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,E as t}from"./chunk-ERSWUTIN-ME9RVNel.js";import"./chunk-SRAX5OIU-KFQikY-4.js";export{t as decodePngMetadata,e as encodePngMetadata};
|