@justyork/repo-mind 0.3.0 → 0.4.0

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.
Files changed (71) hide show
  1. package/package.json +9 -1
  2. package/ui/dist/assets/{arc-DhC0JPue.js → arc-C6B0IXf5.js} +1 -1
  3. package/ui/dist/assets/architectureDiagram-3BPJPVTR-BwcC0zwn.js +36 -0
  4. package/ui/dist/assets/{blockDiagram-GPEHLZMM-CgiNAArN.js → blockDiagram-GPEHLZMM-DIhdWMA6.js} +2 -2
  5. package/ui/dist/assets/{c4Diagram-AAUBKEIU-BIwHcwcH.js → c4Diagram-AAUBKEIU-DAe6bsUB.js} +2 -2
  6. package/ui/dist/assets/channel-C8Q7-wTd.js +1 -0
  7. package/ui/dist/assets/{chunk-2J33WTMH-DXRgHPpp.js → chunk-2J33WTMH-Cy3md3pb.js} +1 -1
  8. package/ui/dist/assets/{chunk-4BX2VUAB-BTb70kIb.js → chunk-4BX2VUAB-CzL8eUDD.js} +1 -1
  9. package/ui/dist/assets/{chunk-55IACEB6-BrAelyhX.js → chunk-55IACEB6-CbthXzDA.js} +1 -1
  10. package/ui/dist/assets/{chunk-727SXJPM-BlYnlPdj.js → chunk-727SXJPM-B7ZW-l9j.js} +1 -1
  11. package/ui/dist/assets/{chunk-AQP2D5EJ-DSPgdKZ8.js → chunk-AQP2D5EJ-Vaux-7Ld.js} +1 -1
  12. package/ui/dist/assets/{chunk-FMBD7UC4-BhH8ir2K.js → chunk-FMBD7UC4-C6P2YSWU.js} +1 -1
  13. package/ui/dist/assets/{chunk-ND2GUHAM-DCAuTSxB.js → chunk-ND2GUHAM-gSNqdDAn.js} +1 -1
  14. package/ui/dist/assets/{chunk-QZHKN3VN-DtYEkbYr.js → chunk-QZHKN3VN-DPPMoZqF.js} +1 -1
  15. package/ui/dist/assets/classDiagram-4FO5ZUOK-pYCdSDhT.js +1 -0
  16. package/ui/dist/assets/classDiagram-v2-Q7XG4LA2-pYCdSDhT.js +1 -0
  17. package/ui/dist/assets/cose-bilkent-S5V4N54A-Ca4nXCOA.js +1 -0
  18. package/ui/dist/assets/dagre-BM42HDAG-C-4Y4Jyn.js +4 -0
  19. package/ui/dist/assets/diagram-2AECGRRQ-CNv_WVZk.js +43 -0
  20. package/ui/dist/assets/diagram-5GNKFQAL-CNwYGvCw.js +10 -0
  21. package/ui/dist/assets/{diagram-KO2AKTUF-B-kUxuHX.js → diagram-KO2AKTUF-CEULTL49.js} +2 -2
  22. package/ui/dist/assets/diagram-LMA3HP47-sGQpPW5i.js +24 -0
  23. package/ui/dist/assets/diagram-OG6HWLK6-BBEtEBkh.js +24 -0
  24. package/ui/dist/assets/editor-BcAuZsp8.js +211 -0
  25. package/ui/dist/assets/{erDiagram-TEJ5UH35-BSWwMysi.js → erDiagram-TEJ5UH35-B4mEdVPJ.js} +2 -2
  26. package/ui/dist/assets/{flowDiagram-I6XJVG4X-D-q1cK69.js → flowDiagram-I6XJVG4X-7-OngwLn.js} +2 -2
  27. package/ui/dist/assets/ganttDiagram-6RSMTGT7-Bq3z_Nvr.js +292 -0
  28. package/ui/dist/assets/gitGraphDiagram-PVQCEYII-BjMdjnGR.js +106 -0
  29. package/ui/dist/assets/{graph-DwoitsWW.js → graph-CwHQTpjf.js} +1 -1
  30. package/ui/dist/assets/infoDiagram-5YYISTIA-ByORmROU.js +2 -0
  31. package/ui/dist/assets/{ishikawaDiagram-YF4QCWOH-CY-U_l7l.js → ishikawaDiagram-YF4QCWOH-B7yRHlcY.js} +6 -6
  32. package/ui/dist/assets/{journeyDiagram-JHISSGLW-jKj4lBEJ.js → journeyDiagram-JHISSGLW-J5mLr9YH.js} +2 -2
  33. package/ui/dist/assets/{kanban-definition-UN3LZRKU-PZ-5AYw2.js → kanban-definition-UN3LZRKU-B3GyGD8X.js} +2 -2
  34. package/ui/dist/assets/main-Du7fLv5Y.js +244 -0
  35. package/ui/dist/assets/mermaid.core-C57NVZG0.js +250 -0
  36. package/ui/dist/assets/{mindmap-definition-RKZ34NQL-CPY2Fdu_.js → mindmap-definition-RKZ34NQL-CkcXt9tU.js} +10 -10
  37. package/ui/dist/assets/{pieDiagram-4H26LBE5-C7GJ49et.js → pieDiagram-4H26LBE5-Y7B3kCyQ.js} +2 -2
  38. package/ui/dist/assets/{quadrantDiagram-W4KKPZXB-DQyQN5K7.js → quadrantDiagram-W4KKPZXB-CXKUOw1G.js} +2 -2
  39. package/ui/dist/assets/{requirementDiagram-4Y6WPE33-CDrkwz1t.js → requirementDiagram-4Y6WPE33-DBmmmiXs.js} +4 -4
  40. package/ui/dist/assets/{sankeyDiagram-5OEKKPKP-BrYb9Eql.js → sankeyDiagram-5OEKKPKP-BNADiaE4.js} +2 -2
  41. package/ui/dist/assets/{sequenceDiagram-3UESZ5HK-B8If_JZp.js → sequenceDiagram-3UESZ5HK-CctElOC5.js} +14 -14
  42. package/ui/dist/assets/stateDiagram-AJRCARHV-D40_7g7Y.js +1 -0
  43. package/ui/dist/assets/stateDiagram-v2-BHNVJYJU-DSc6L6rE.js +1 -0
  44. package/ui/dist/assets/theme-BJgORXba.css +1 -0
  45. package/ui/dist/assets/{theme-DV7vqTnV.js → theme-DxqwV6dp.js} +1 -1
  46. package/ui/dist/assets/{timeline-definition-PNZ67QCA-DhUg6aIV.js → timeline-definition-PNZ67QCA-DMVhUcek.js} +2 -2
  47. package/ui/dist/assets/{vennDiagram-CIIHVFJN-DpQVNNzF.js → vennDiagram-CIIHVFJN-Ci0RqPuV.js} +2 -2
  48. package/ui/dist/assets/visual-editor-UWcMGp6p.js +39 -0
  49. package/ui/dist/assets/{wardley-L42UT6IY-CyaxzHGP.js → wardley-L42UT6IY-Chn0BKir.js} +1 -1
  50. package/ui/dist/assets/{wardleyDiagram-YWT4CUSO-Bm0mA7wm.js → wardleyDiagram-YWT4CUSO-BLdXlrC5.js} +2 -2
  51. package/ui/dist/assets/{xychartDiagram-2RQKCTM6-OJbmgDx6.js → xychartDiagram-2RQKCTM6-C4gOVVe1.js} +2 -2
  52. package/ui/dist/graph.html +3 -3
  53. package/ui/dist/index.html +4 -3
  54. package/ui/dist/assets/architectureDiagram-3BPJPVTR-Cun_Ijrv.js +0 -36
  55. package/ui/dist/assets/channel-CNwAp9ic.js +0 -1
  56. package/ui/dist/assets/classDiagram-4FO5ZUOK-DnHeGLmR.js +0 -1
  57. package/ui/dist/assets/classDiagram-v2-Q7XG4LA2-DnHeGLmR.js +0 -1
  58. package/ui/dist/assets/cose-bilkent-S5V4N54A-CAM4jLYo.js +0 -1
  59. package/ui/dist/assets/dagre-BM42HDAG-CISbgani.js +0 -4
  60. package/ui/dist/assets/diagram-2AECGRRQ-BmXargwF.js +0 -43
  61. package/ui/dist/assets/diagram-5GNKFQAL-COlrLu0O.js +0 -10
  62. package/ui/dist/assets/diagram-LMA3HP47-C3AVVxcm.js +0 -24
  63. package/ui/dist/assets/diagram-OG6HWLK6-JHeftSsO.js +0 -24
  64. package/ui/dist/assets/ganttDiagram-6RSMTGT7-DrYn1H_t.js +0 -292
  65. package/ui/dist/assets/gitGraphDiagram-PVQCEYII-vJByl99X.js +0 -106
  66. package/ui/dist/assets/infoDiagram-5YYISTIA-D6zhGTMj.js +0 -2
  67. package/ui/dist/assets/main-BBzCq-49.js +0 -308
  68. package/ui/dist/assets/mermaid.core-Bddhr0ku.js +0 -309
  69. package/ui/dist/assets/stateDiagram-AJRCARHV-BbpTp9VX.js +0 -1
  70. package/ui/dist/assets/stateDiagram-v2-BHNVJYJU-BT4PvMFS.js +0 -1
  71. package/ui/dist/assets/theme-SpsWsRN5.css +0 -1
@@ -1,308 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid.core-Bddhr0ku.js","assets/transform-BwXaE9hv.js"])))=>i.map(i=>d[i]);
2
- var xt=Object.defineProperty;var St=(t,e,n)=>e in t?xt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var R=(t,e,n)=>St(t,typeof e!="symbol"?e+"":e,n);import{p as $t,s as Et,e as Lt,g as Tt,a as Pt,l as Y,b as Rt,c as qt,d as nt,f as Ct,u as ge,h as At,i as _t,j as It,k as Mt,m as Dt,n as zt,r as Ht,o as Nt,q as We,t as Bt,v as Wt,w as jt,x as Ot,y as K,z as je,A as Ut,B as Ft,C as Gt}from"./theme-DV7vqTnV.js";const Zt={"wiki-page":"Wiki",adr:"ADR","feature-spec":"Feature specs","glossary-term":"Glossary","open-question":"Open questions","agent-instruction":"Agent instructions"},Kt={"wiki-page":"W",adr:"A","feature-spec":"S","glossary-term":"G","open-question":"?","agent-instruction":"◎"},oe="folder:";function Qt(t){return t.startsWith(oe)?t.slice(oe.length).slice(0,1).toUpperCase():Kt[t]??t.slice(0,1).toUpperCase()}function le(t){if(t.startsWith(oe)){const e=t.slice(oe.length);return e==="__root__"?"General":e.split(/[-_/]/).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}return Zt[t]??t}function Xt(t,e){var y,p,b,x;t.className="workspace-main workspace-dashboard",t.innerHTML=`
3
- <div class="dashboard-header">
4
- <h1 class="doc-title">Health &amp; publish</h1>
5
- <div class="workspace-actions">
6
- <button type="button" id="dash-export" class="btn-ghost">Export agents.md</button>
7
- <button type="button" id="dash-refresh" class="btn-ghost">Refresh</button>
8
- </div>
9
- </div>
10
- <div id="dash-check" class="dashboard-section"></div>
11
- <div id="dash-links" class="dashboard-section"></div>
12
- <div class="dashboard-section">
13
- <h2>Prepare docs</h2>
14
- <p class="dashboard-hint">Markdown files without RepoMind frontmatter. Add frontmatter to index them for MCP and the catalog.</p>
15
- <div class="dashboard-actions">
16
- <button type="button" id="dash-prepare-all" class="btn-primary btn-sm">Prepare all</button>
17
- <button type="button" id="dash-sync-links" class="btn-ghost btn-sm">Sync all links</button>
18
- </div>
19
- <ul id="dash-unprepared" class="queue-list"></ul>
20
- </div>
21
- <div class="dashboard-section">
22
- <h2>Publish queue</h2>
23
- <ul id="dash-queue" class="queue-list"></ul>
24
- </div>
25
- `;const n=t.querySelector("#dash-check"),s=t.querySelector("#dash-links"),r=t.querySelector("#dash-unprepared"),i=t.querySelector("#dash-queue");function o(v){const g=v.ok?"check-ok":"check-fail",S=v.ok?"All checks passed":`${v.violations.length} issue(s)`;let k=`
26
- <h2>Schema check</h2>
27
- <p class="check-status ${g}">${S}</p>
28
- `;if(v.violations.length>0){k+='<ul class="violation-list">';for(const E of v.violations)k+=`<li><code>${I(E.path)}</code> — ${I(E.message)}</li>`;k+="</ul>"}if(v.warnings.length>0){k+='<h3 class="warnings-title">Warnings</h3><ul class="warning-list">';for(const E of v.warnings)k+=`<li>${I(E)}</li>`;k+="</ul>"}n.innerHTML=k}function a(v){let g=`
29
- <h2>Link health</h2>
30
- <div class="link-health-stats">
31
- <div class="link-health-stat"><span class="link-health-value">${v.orphanCount}</span> orphans</div>
32
- <div class="link-health-stat"><span class="link-health-value">${v.brokenCount}</span> broken</div>
33
- <div class="link-health-stat"><span class="link-health-value">${v.oneWayCount}</span> one-way</div>
34
- </div>
35
- `;if(v.brokenTargets.length>0){g+='<h3 class="warnings-title">Broken targets</h3><ul class="warning-list">';for(const S of v.brokenTargets)g+=`<li><code>${I(S)}</code></li>`;g+="</ul>"}if(v.orphanSlugs.length>0){g+='<h3 class="warnings-title">Orphan pages</h3><ul class="warning-list">';for(const S of v.orphanSlugs)g+=`<li><code>${I(S)}</code></li>`;g+="</ul>"}s.innerHTML=g}function u(v){var g;if(r.innerHTML="",v.length===0){r.innerHTML='<li class="placeholder">All docs have frontmatter</li>';return}for(const S of v){const k=document.createElement("li");k.className="queue-item",k.innerHTML=`
36
- <div class="queue-main">
37
- <div class="queue-title">${I(S.relativePath)}</div>
38
- <div class="meta">${I(S.suggestedType)} · slug: ${I(S.suggestedSlug)}</div>
39
- </div>
40
- <div class="queue-actions">
41
- <button type="button" class="btn-primary btn-sm" data-action="prepare">Add frontmatter</button>
42
- </div>
43
- `,(g=k.querySelector('[data-action="prepare"]'))==null||g.addEventListener("click",()=>{qt(S.relativePath,S.suggestedType).then(({result:E})=>{e.onNotify(`Prepared: ${E.slug}`),c()}).catch(E=>{e.onNotify(E instanceof Error?E.message:"Prepare failed",!0)})}),r.appendChild(k)}}function l(v){var g,S;if(i.innerHTML="",v.length===0){i.innerHTML='<li class="placeholder">No drafts in queue</li>';return}for(const k of v){const E=document.createElement("li");E.className="queue-item",E.innerHTML=`
44
- <div class="queue-main">
45
- <div class="queue-title">${I(k.title||k.slug)}</div>
46
- <div class="meta">${I(k.slug)} · ${I(k.type)}</div>
47
- </div>
48
- <div class="queue-actions">
49
- <button type="button" class="btn-ghost btn-sm" data-action="edit">Edit</button>
50
- <button type="button" class="btn-primary btn-sm" data-action="publish">Publish</button>
51
- </div>
52
- `,(g=E.querySelector('[data-action="edit"]'))==null||g.addEventListener("click",()=>{e.onOpenDraft(k)}),(S=E.querySelector('[data-action="publish"]'))==null||S.addEventListener("click",()=>{nt(k.id).then(({result:d})=>{e.onPublished(d.path),c()}).catch(d=>{e.onNotify(d instanceof Error?d.message:"Publish failed",!0)})}),i.appendChild(E)}}async function c(){try{const[v,g,{drafts:S},{files:k}]=await Promise.all([Tt(),Pt(),Y(),Rt()]);o(v),a(g),u(k),l(S)}catch(v){n.innerHTML=`<p class="check-status check-fail">${I(v instanceof Error?v.message:"Failed to load")}</p>`}}return(y=t.querySelector("#dash-refresh"))==null||y.addEventListener("click",()=>{c()}),(p=t.querySelector("#dash-prepare-all"))==null||p.addEventListener("click",()=>{$t().then(({result:v})=>{e.onNotify(`Prepared ${v.prepared.length} file(s)`),c()}).catch(v=>{e.onNotify(v instanceof Error?v.message:"Prepare all failed",!0)})}),(b=t.querySelector("#dash-sync-links"))==null||b.addEventListener("click",()=>{Et().then(({result:v})=>{const g=v.files.filter(S=>S.changed).length;e.onNotify(`Synced links in ${g} file(s)`),c()}).catch(v=>{e.onNotify(v instanceof Error?v.message:"Sync links failed",!0)})}),(x=t.querySelector("#dash-export"))==null||x.addEventListener("click",()=>{Lt().then(({path:v})=>{e.onNotify(`Exported ${v}`)}).catch(v=>{e.onNotify(v instanceof Error?v.message:"Export failed",!0)})}),c(),{refresh:c}}function I(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}const Jt="modulepreload",Yt=function(t){return"/"+t},Oe={},Vt=function(e,n,s){let r=Promise.resolve();if(n&&n.length>0){let o=function(l){return Promise.all(l.map(c=>Promise.resolve(c).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),u=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));r=o(n.map(l=>{if(l=Yt(l),l in Oe)return;Oe[l]=!0;const c=l.endsWith(".css"),y=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${y}`))return;const p=document.createElement("link");if(p.rel=c?"stylesheet":Jt,c||(p.as="script"),p.crossOrigin="",p.href=l,u&&p.setAttribute("nonce",u),document.head.appendChild(p),c)return new Promise((b,x)=>{p.addEventListener("load",b),p.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return r.then(o=>{for(const a of o||[])a.status==="rejected"&&i(a.reason);return e().catch(i)})};function xe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var F=xe();function st(t){F=t}var V={exec:()=>null};function P(t,e=""){let n=typeof t=="string"?t:t.source;const s={replace:(r,i)=>{let o=typeof i=="string"?i:i.source;return o=o.replace(C.caret,"$1"),n=n.replace(r,o),s},getRegex:()=>new RegExp(n,e)};return s}var C={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},en=/^(?:[ \t]*(?:\n|$))+/,tn=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,nn=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ee=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,sn=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Se=/(?:[*+-]|\d{1,9}[.)])/,rt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,it=P(rt).replace(/bull/g,Se).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),rn=P(rt).replace(/bull/g,Se).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),$e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,an=/^[^\n]+/,Ee=/(?!\s*\])(?:\\.|[^\[\]\\])+/,on=P(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ee).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ln=P(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Se).getRegex(),pe="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Le=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,cn=P("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Le).replace("tag",pe).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),at=P($e).replace("hr",ee).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",pe).getRegex(),un=P(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",at).getRegex(),Te={blockquote:un,code:tn,def:on,fences:nn,heading:sn,hr:ee,html:cn,lheading:it,list:ln,newline:en,paragraph:at,table:V,text:an},Ue=P("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ee).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",pe).getRegex(),dn={...Te,lheading:rn,table:Ue,paragraph:P($e).replace("hr",ee).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ue).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",pe).getRegex()},pn={...Te,html:P(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Le).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:V,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:P($e).replace("hr",ee).replace("heading",` *#{1,6} *[^
53
- ]`).replace("lheading",it).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},hn=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,gn=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ot=/^( {2,}|\\)\n(?!\s*$)/,fn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,he=/[\p{P}\p{S}]/u,Pe=/[\s\p{P}\p{S}]/u,lt=/[^\s\p{P}\p{S}]/u,mn=P(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Pe).getRegex(),ct=/(?!~)[\p{P}\p{S}]/u,vn=/(?!~)[\s\p{P}\p{S}]/u,bn=/(?:[^\s\p{P}\p{S}]|~)/u,kn=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,ut=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,wn=P(ut,"u").replace(/punct/g,he).getRegex(),yn=P(ut,"u").replace(/punct/g,ct).getRegex(),dt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",xn=P(dt,"gu").replace(/notPunctSpace/g,lt).replace(/punctSpace/g,Pe).replace(/punct/g,he).getRegex(),Sn=P(dt,"gu").replace(/notPunctSpace/g,bn).replace(/punctSpace/g,vn).replace(/punct/g,ct).getRegex(),$n=P("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,lt).replace(/punctSpace/g,Pe).replace(/punct/g,he).getRegex(),En=P(/\\(punct)/,"gu").replace(/punct/g,he).getRegex(),Ln=P(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Tn=P(Le).replace("(?:-->|$)","-->").getRegex(),Pn=P("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Tn).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ce=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Rn=P(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",ce).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),pt=P(/^!?\[(label)\]\[(ref)\]/).replace("label",ce).replace("ref",Ee).getRegex(),ht=P(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ee).getRegex(),qn=P("reflink|nolink(?!\\()","g").replace("reflink",pt).replace("nolink",ht).getRegex(),Re={_backpedal:V,anyPunctuation:En,autolink:Ln,blockSkip:kn,br:ot,code:gn,del:V,emStrongLDelim:wn,emStrongRDelimAst:xn,emStrongRDelimUnd:$n,escape:hn,link:Rn,nolink:ht,punctuation:mn,reflink:pt,reflinkSearch:qn,tag:Pn,text:fn,url:V},Cn={...Re,link:P(/^!?\[(label)\]\((.*?)\)/).replace("label",ce).getRegex(),reflink:P(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ce).getRegex()},be={...Re,emStrongRDelimAst:Sn,emStrongLDelim:yn,url:P(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},An={...be,br:P(ot).replace("{2,}","*").getRegex(),text:P(be.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},ie={normal:Te,gfm:dn,pedantic:pn},Q={normal:Re,gfm:be,breaks:An,pedantic:Cn},_n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Fe=t=>_n[t];function D(t,e){if(e){if(C.escapeTest.test(t))return t.replace(C.escapeReplace,Fe)}else if(C.escapeTestNoEncode.test(t))return t.replace(C.escapeReplaceNoEncode,Fe);return t}function Ge(t){try{t=encodeURI(t).replace(C.percentDecode,"%")}catch{return null}return t}function Ze(t,e){var i;const n=t.replace(C.findPipe,(o,a,u)=>{let l=!1,c=a;for(;--c>=0&&u[c]==="\\";)l=!l;return l?"|":" |"}),s=n.split(C.splitPipe);let r=0;if(s[0].trim()||s.shift(),s.length>0&&!((i=s.at(-1))!=null&&i.trim())&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length<e;)s.push("");for(;r<s.length;r++)s[r]=s[r].trim().replace(C.slashPipe,"|");return s}function X(t,e,n){const s=t.length;if(s===0)return"";let r=0;for(;r<s&&t.charAt(s-r-1)===e;)r++;return t.slice(0,s-r)}function In(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let s=0;s<t.length;s++)if(t[s]==="\\")s++;else if(t[s]===e[0])n++;else if(t[s]===e[1]&&(n--,n<0))return s;return n>0?-2:-1}function Ke(t,e,n,s,r){const i=e.href,o=e.title||null,a=t[1].replace(r.other.outputLinkReplace,"$1");s.state.inLink=!0;const u={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:i,title:o,text:a,tokens:s.inlineTokens(a)};return s.state.inLink=!1,u}function Mn(t,e,n){const s=t.match(n.other.indentCodeCompensation);if(s===null)return e;const r=s[1];return e.split(`
54
- `).map(i=>{const o=i.match(n.other.beginningSpace);if(o===null)return i;const[a]=o;return a.length>=r.length?i.slice(r.length):i}).join(`
55
- `)}var ue=class{constructor(t){R(this,"options");R(this,"rules");R(this,"lexer");this.options=t||F}space(t){const e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){const e=this.rules.block.code.exec(t);if(e){const n=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?n:X(n,`
56
- `)}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const n=e[0],s=Mn(n,e[3]||"",this.rules);return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:s}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(this.rules.other.endingHash.test(n)){const s=X(n,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:X(e[0],`
57
- `)}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){let n=X(e[0],`
58
- `).split(`
59
- `),s="",r="";const i=[];for(;n.length>0;){let o=!1;const a=[];let u;for(u=0;u<n.length;u++)if(this.rules.other.blockquoteStart.test(n[u]))a.push(n[u]),o=!0;else if(!o)a.push(n[u]);else break;n=n.slice(u);const l=a.join(`
60
- `),c=l.replace(this.rules.other.blockquoteSetextReplace,`
61
- $1`).replace(this.rules.other.blockquoteSetextReplace2,"");s=s?`${s}
62
- ${l}`:l,r=r?`${r}
63
- ${c}`:c;const y=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=y,n.length===0)break;const p=i.at(-1);if((p==null?void 0:p.type)==="code")break;if((p==null?void 0:p.type)==="blockquote"){const b=p,x=b.raw+`
64
- `+n.join(`
65
- `),v=this.blockquote(x);i[i.length-1]=v,s=s.substring(0,s.length-b.raw.length)+v.raw,r=r.substring(0,r.length-b.text.length)+v.text;break}else if((p==null?void 0:p.type)==="list"){const b=p,x=b.raw+`
66
- `+n.join(`
67
- `),v=this.list(x);i[i.length-1]=v,s=s.substring(0,s.length-p.raw.length)+v.raw,r=r.substring(0,r.length-b.raw.length)+v.raw,n=x.substring(i.at(-1).raw.length).split(`
68
- `);continue}}return{type:"blockquote",raw:s,tokens:i,text:r}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim();const s=n.length>1,r={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");const i=this.rules.other.listItemRegex(n);let o=!1;for(;t;){let u=!1,l="",c="";if(!(e=i.exec(t))||this.rules.block.hr.test(t))break;l=e[0],t=t.substring(l.length);let y=e[2].split(`
69
- `,1)[0].replace(this.rules.other.listReplaceTabs,S=>" ".repeat(3*S.length)),p=t.split(`
70
- `,1)[0],b=!y.trim(),x=0;if(this.options.pedantic?(x=2,c=y.trimStart()):b?x=e[1].length+1:(x=e[2].search(this.rules.other.nonSpaceChar),x=x>4?1:x,c=y.slice(x),x+=e[1].length),b&&this.rules.other.blankLine.test(p)&&(l+=p+`
71
- `,t=t.substring(p.length+1),u=!0),!u){const S=this.rules.other.nextBulletRegex(x),k=this.rules.other.hrRegex(x),E=this.rules.other.fencesBeginRegex(x),d=this.rules.other.headingBeginRegex(x),f=this.rules.other.htmlBeginRegex(x);for(;t;){const h=t.split(`
72
- `,1)[0];let w;if(p=h,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),w=p):w=p.replace(this.rules.other.tabCharGlobal," "),E.test(p)||d.test(p)||f.test(p)||S.test(p)||k.test(p))break;if(w.search(this.rules.other.nonSpaceChar)>=x||!p.trim())c+=`
73
- `+w.slice(x);else{if(b||y.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||E.test(y)||d.test(y)||k.test(y))break;c+=`
74
- `+p}!b&&!p.trim()&&(b=!0),l+=h+`
75
- `,t=t.substring(h.length+1),y=w.slice(x)}}r.loose||(o?r.loose=!0:this.rules.other.doubleBlankLine.test(l)&&(o=!0));let v=null,g;this.options.gfm&&(v=this.rules.other.listIsTask.exec(c),v&&(g=v[0]!=="[ ] ",c=c.replace(this.rules.other.listReplaceTask,""))),r.items.push({type:"list_item",raw:l,task:!!v,checked:g,loose:!1,text:c,tokens:[]}),r.raw+=l}const a=r.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let u=0;u<r.items.length;u++)if(this.lexer.state.top=!1,r.items[u].tokens=this.lexer.blockTokens(r.items[u].text,[]),!r.loose){const l=r.items[u].tokens.filter(y=>y.type==="space"),c=l.length>0&&l.some(y=>this.rules.other.anyLine.test(y.raw));r.loose=c}if(r.loose)for(let u=0;u<r.items.length;u++)r.items[u].loose=!0;return r}}html(t){const e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:e[0]}}def(t){const e=this.rules.block.def.exec(t);if(e){const n=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),s=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:e[0],href:s,title:r}}}table(t){var o;const e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;const n=Ze(e[1]),s=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=(o=e[3])!=null&&o.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
76
- `):[],i={type:"table",raw:e[0],header:[],align:[],rows:[]};if(n.length===s.length){for(const a of s)this.rules.other.tableAlignRight.test(a)?i.align.push("right"):this.rules.other.tableAlignCenter.test(a)?i.align.push("center"):this.rules.other.tableAlignLeft.test(a)?i.align.push("left"):i.align.push(null);for(let a=0;a<n.length;a++)i.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:i.align[a]});for(const a of r)i.rows.push(Ze(a,i.header.length).map((u,l)=>({text:u,tokens:this.lexer.inline(u),header:!1,align:i.align[l]})));return i}}lheading(t){const e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){const e=this.rules.block.paragraph.exec(t);if(e){const n=e[1].charAt(e[1].length-1)===`
77
- `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){const e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){const e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){const e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const n=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;const i=X(n.slice(0,-1),"\\");if((n.length-i.length)%2===0)return}else{const i=In(e[2],"()");if(i===-2)return;if(i>-1){const a=(e[0].indexOf("!")===0?5:4)+e[1].length+i;e[2]=e[2].substring(0,i),e[0]=e[0].substring(0,a).trim(),e[3]=""}}let s=e[2],r="";if(this.options.pedantic){const i=this.rules.other.pedanticHrefTitle.exec(s);i&&(s=i[1],r=i[3])}else r=e[3]?e[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),Ke(e,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){const s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=e[s.toLowerCase()];if(!r){const i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return Ke(n,r,n[0],this.lexer,this.rules)}}emStrong(t,e,n=""){let s=this.rules.inline.emStrongLDelim.exec(t);if(!s||s[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[2]||"")||!n||this.rules.inline.punctuation.exec(n)){const i=[...s[0]].length-1;let o,a,u=i,l=0;const c=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,e=e.slice(-1*t.length+i);(s=c.exec(e))!=null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(a=[...o].length,s[3]||s[4]){u+=a;continue}else if((s[5]||s[6])&&i%3&&!((i+a)%3)){l+=a;continue}if(u-=a,u>0)continue;a=Math.min(a,a+u+l);const y=[...s[0]][0].length,p=t.slice(0,i+s.index+y+a);if(Math.min(i,a)%2){const x=p.slice(1,-1);return{type:"em",raw:p,text:x,tokens:this.lexer.inlineTokens(x)}}const b=p.slice(2,-2);return{type:"strong",raw:p,text:b,tokens:this.lexer.inlineTokens(b)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(this.rules.other.newLineCharGlobal," ");const s=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&r&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:e[0],text:n}}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){const e=this.rules.inline.autolink.exec(t);if(e){let n,s;return e[2]==="@"?(n=e[1],s="mailto:"+n):(n=e[1],s=n),{type:"link",raw:e[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}url(t){var n;let e;if(e=this.rules.inline.url.exec(t)){let s,r;if(e[2]==="@")s=e[0],r="mailto:"+s;else{let i;do i=e[0],e[0]=((n=this.rules.inline._backpedal.exec(e[0]))==null?void 0:n[0])??"";while(i!==e[0]);s=e[0],e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:s,href:r,tokens:[{type:"text",raw:s,text:s}]}}}inlineText(t){const e=this.rules.inline.text.exec(t);if(e){const n=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:n}}}},z=class ke{constructor(e){R(this,"tokens");R(this,"options");R(this,"state");R(this,"tokenizer");R(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||F,this.options.tokenizer=this.options.tokenizer||new ue,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={other:C,block:ie.normal,inline:Q.normal};this.options.pedantic?(n.block=ie.pedantic,n.inline=Q.pedantic):this.options.gfm&&(n.block=ie.gfm,this.options.breaks?n.inline=Q.breaks:n.inline=Q.gfm),this.tokenizer.rules=n}static get rules(){return{block:ie,inline:Q}}static lex(e,n){return new ke(n).lex(e)}static lexInline(e,n){return new ke(n).inlineTokens(e)}lex(e){e=e.replace(C.carriageReturn,`
78
- `),this.blockTokens(e,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){const s=this.inlineQueue[n];this.inlineTokens(s.src,s.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,n=[],s=!1){var r,i,o;for(this.options.pedantic&&(e=e.replace(C.tabCharGlobal," ").replace(C.spaceLine,""));e;){let a;if((i=(r=this.options.extensions)==null?void 0:r.block)!=null&&i.some(l=>(a=l.call({lexer:this},e,n))?(e=e.substring(a.raw.length),n.push(a),!0):!1))continue;if(a=this.tokenizer.space(e)){e=e.substring(a.raw.length);const l=n.at(-1);a.raw.length===1&&l!==void 0?l.raw+=`
79
- `:n.push(a);continue}if(a=this.tokenizer.code(e)){e=e.substring(a.raw.length);const l=n.at(-1);(l==null?void 0:l.type)==="paragraph"||(l==null?void 0:l.type)==="text"?(l.raw+=`
80
- `+a.raw,l.text+=`
81
- `+a.text,this.inlineQueue.at(-1).src=l.text):n.push(a);continue}if(a=this.tokenizer.fences(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.heading(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.hr(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.blockquote(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.list(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.html(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.def(e)){e=e.substring(a.raw.length);const l=n.at(-1);(l==null?void 0:l.type)==="paragraph"||(l==null?void 0:l.type)==="text"?(l.raw+=`
82
- `+a.raw,l.text+=`
83
- `+a.raw,this.inlineQueue.at(-1).src=l.text):this.tokens.links[a.tag]||(this.tokens.links[a.tag]={href:a.href,title:a.title});continue}if(a=this.tokenizer.table(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.lheading(e)){e=e.substring(a.raw.length),n.push(a);continue}let u=e;if((o=this.options.extensions)!=null&&o.startBlock){let l=1/0;const c=e.slice(1);let y;this.options.extensions.startBlock.forEach(p=>{y=p.call({lexer:this},c),typeof y=="number"&&y>=0&&(l=Math.min(l,y))}),l<1/0&&l>=0&&(u=e.substring(0,l+1))}if(this.state.top&&(a=this.tokenizer.paragraph(u))){const l=n.at(-1);s&&(l==null?void 0:l.type)==="paragraph"?(l.raw+=`
84
- `+a.raw,l.text+=`
85
- `+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):n.push(a),s=u.length!==e.length,e=e.substring(a.raw.length);continue}if(a=this.tokenizer.text(e)){e=e.substring(a.raw.length);const l=n.at(-1);(l==null?void 0:l.type)==="text"?(l.raw+=`
86
- `+a.raw,l.text+=`
87
- `+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):n.push(a);continue}if(e){const l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){var a,u,l;let s=e,r=null;if(this.tokens.links){const c=Object.keys(this.tokens.links);if(c.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)c.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,r.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(r=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let i=!1,o="";for(;e;){i||(o=""),i=!1;let c;if((u=(a=this.options.extensions)==null?void 0:a.inline)!=null&&u.some(p=>(c=p.call({lexer:this},e,n))?(e=e.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(c.raw.length);const p=n.at(-1);c.type==="text"&&(p==null?void 0:p.type)==="text"?(p.raw+=c.raw,p.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(e,s,o)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(e)){e=e.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(e))){e=e.substring(c.raw.length),n.push(c);continue}let y=e;if((l=this.options.extensions)!=null&&l.startInline){let p=1/0;const b=e.slice(1);let x;this.options.extensions.startInline.forEach(v=>{x=v.call({lexer:this},b),typeof x=="number"&&x>=0&&(p=Math.min(p,x))}),p<1/0&&p>=0&&(y=e.substring(0,p+1))}if(c=this.tokenizer.inlineText(y)){e=e.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(o=c.raw.slice(-1)),i=!0;const p=n.at(-1);(p==null?void 0:p.type)==="text"?(p.raw+=c.raw,p.text+=c.text):n.push(c);continue}if(e){const p="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(p);break}else throw new Error(p)}}return n}},de=class{constructor(t){R(this,"options");R(this,"parser");this.options=t||F}space(t){return""}code({text:t,lang:e,escaped:n}){var i;const s=(i=(e||"").match(C.notSpaceStart))==null?void 0:i[0],r=t.replace(C.endingNewline,"")+`
88
- `;return s?'<pre><code class="language-'+D(s)+'">'+(n?r:D(r,!0))+`</code></pre>
89
- `:"<pre><code>"+(n?r:D(r,!0))+`</code></pre>
90
- `}blockquote({tokens:t}){return`<blockquote>
91
- ${this.parser.parse(t)}</blockquote>
92
- `}html({text:t}){return t}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}>
93
- `}hr(t){return`<hr>
94
- `}list(t){const e=t.ordered,n=t.start;let s="";for(let o=0;o<t.items.length;o++){const a=t.items[o];s+=this.listitem(a)}const r=e?"ol":"ul",i=e&&n!==1?' start="'+n+'"':"";return"<"+r+i+`>
95
- `+s+"</"+r+`>
96
- `}listitem(t){var n;let e="";if(t.task){const s=this.checkbox({checked:!!t.checked});t.loose?((n=t.tokens[0])==null?void 0:n.type)==="paragraph"?(t.tokens[0].text=s+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=s+" "+D(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:s+" ",text:s+" ",escaped:!0}):e+=s+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`<li>${e}</li>
97
- `}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
98
- `}table(t){let e="",n="";for(let r=0;r<t.header.length;r++)n+=this.tablecell(t.header[r]);e+=this.tablerow({text:n});let s="";for(let r=0;r<t.rows.length;r++){const i=t.rows[r];n="";for(let o=0;o<i.length;o++)n+=this.tablecell(i[o]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),`<table>
99
- <thead>
100
- `+e+`</thead>
101
- `+s+`</table>
102
- `}tablerow({text:t}){return`<tr>
103
- ${t}</tr>
104
- `}tablecell(t){const e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
105
- `}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${D(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){const s=this.parser.parseInline(n),r=Ge(t);if(r===null)return s;t=r;let i='<a href="'+t+'"';return e&&(i+=' title="'+D(e)+'"'),i+=">"+s+"</a>",i}image({href:t,title:e,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));const r=Ge(t);if(r===null)return D(n);t=r;let i=`<img src="${t}" alt="${n}"`;return e&&(i+=` title="${D(e)}"`),i+=">",i}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:D(t.text)}},qe=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}},H=class we{constructor(e){R(this,"options");R(this,"renderer");R(this,"textRenderer");this.options=e||F,this.options.renderer=this.options.renderer||new de,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new qe}static parse(e,n){return new we(n).parse(e)}static parseInline(e,n){return new we(n).parseInline(e)}parse(e,n=!0){var r,i;let s="";for(let o=0;o<e.length;o++){const a=e[o];if((i=(r=this.options.extensions)==null?void 0:r.renderers)!=null&&i[a.type]){const l=a,c=this.options.extensions.renderers[l.type].call({parser:this},l);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(l.type)){s+=c||"";continue}}const u=a;switch(u.type){case"space":{s+=this.renderer.space(u);continue}case"hr":{s+=this.renderer.hr(u);continue}case"heading":{s+=this.renderer.heading(u);continue}case"code":{s+=this.renderer.code(u);continue}case"table":{s+=this.renderer.table(u);continue}case"blockquote":{s+=this.renderer.blockquote(u);continue}case"list":{s+=this.renderer.list(u);continue}case"html":{s+=this.renderer.html(u);continue}case"paragraph":{s+=this.renderer.paragraph(u);continue}case"text":{let l=u,c=this.renderer.text(l);for(;o+1<e.length&&e[o+1].type==="text";)l=e[++o],c+=`
106
- `+this.renderer.text(l);n?s+=this.renderer.paragraph({type:"paragraph",raw:c,text:c,tokens:[{type:"text",raw:c,text:c,escaped:!0}]}):s+=c;continue}default:{const l='Token with "'+u.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return s}parseInline(e,n=this.renderer){var r,i;let s="";for(let o=0;o<e.length;o++){const a=e[o];if((i=(r=this.options.extensions)==null?void 0:r.renderers)!=null&&i[a.type]){const l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){s+=l||"";continue}}const u=a;switch(u.type){case"escape":{s+=n.text(u);break}case"html":{s+=n.html(u);break}case"link":{s+=n.link(u);break}case"image":{s+=n.image(u);break}case"strong":{s+=n.strong(u);break}case"em":{s+=n.em(u);break}case"codespan":{s+=n.codespan(u);break}case"br":{s+=n.br(u);break}case"del":{s+=n.del(u);break}case"text":{s+=n.text(u);break}default:{const l='Token with "'+u.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return s}},ve,ae=(ve=class{constructor(t){R(this,"options");R(this,"block");this.options=t||F}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}provideLexer(){return this.block?z.lex:z.lexInline}provideParser(){return this.block?H.parse:H.parseInline}},R(ve,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"])),ve),Dn=class{constructor(...t){R(this,"defaults",xe());R(this,"options",this.setOptions);R(this,"parse",this.parseMarkdown(!0));R(this,"parseInline",this.parseMarkdown(!1));R(this,"Parser",H);R(this,"Renderer",de);R(this,"TextRenderer",qe);R(this,"Lexer",z);R(this,"Tokenizer",ue);R(this,"Hooks",ae);this.use(...t)}walkTokens(t,e){var s,r;let n=[];for(const i of t)switch(n=n.concat(e.call(this,i)),i.type){case"table":{const o=i;for(const a of o.header)n=n.concat(this.walkTokens(a.tokens,e));for(const a of o.rows)for(const u of a)n=n.concat(this.walkTokens(u.tokens,e));break}case"list":{const o=i;n=n.concat(this.walkTokens(o.items,e));break}default:{const o=i;(r=(s=this.defaults.extensions)==null?void 0:s.childTokens)!=null&&r[o.type]?this.defaults.extensions.childTokens[o.type].forEach(a=>{const u=o[a].flat(1/0);n=n.concat(this.walkTokens(u,e))}):o.tokens&&(n=n.concat(this.walkTokens(o.tokens,e)))}}return n}use(...t){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{const s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){const i=e.renderers[r.name];i?e.renderers[r.name]=function(...o){let a=r.renderer.apply(this,o);return a===!1&&(a=i.apply(this,o)),a}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const i=e[r.level];i?i.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),s.extensions=e),n.renderer){const r=this.defaults.renderer||new de(this.defaults);for(const i in n.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;const o=i,a=n.renderer[o],u=r[o];r[o]=(...l)=>{let c=a.apply(r,l);return c===!1&&(c=u.apply(r,l)),c||""}}s.renderer=r}if(n.tokenizer){const r=this.defaults.tokenizer||new ue(this.defaults);for(const i in n.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;const o=i,a=n.tokenizer[o],u=r[o];r[o]=(...l)=>{let c=a.apply(r,l);return c===!1&&(c=u.apply(r,l)),c}}s.tokenizer=r}if(n.hooks){const r=this.defaults.hooks||new ae;for(const i in n.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;const o=i,a=n.hooks[o],u=r[o];ae.passThroughHooks.has(i)?r[o]=l=>{if(this.defaults.async)return Promise.resolve(a.call(r,l)).then(y=>u.call(r,y));const c=a.call(r,l);return u.call(r,c)}:r[o]=(...l)=>{let c=a.apply(r,l);return c===!1&&(c=u.apply(r,l)),c}}s.hooks=r}if(n.walkTokens){const r=this.defaults.walkTokens,i=n.walkTokens;s.walkTokens=function(o){let a=[];return a.push(i.call(this,o)),r&&(a=a.concat(r.call(this,o))),a}}this.defaults={...this.defaults,...s}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return z.lex(t,e??this.defaults)}parser(t,e){return H.parse(t,e??this.defaults)}parseMarkdown(t){return(n,s)=>{const r={...s},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof n>"u"||n===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=t);const a=i.hooks?i.hooks.provideLexer():t?z.lex:z.lexInline,u=i.hooks?i.hooks.provideParser():t?H.parse:H.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(n):n).then(l=>a(l,i)).then(l=>i.hooks?i.hooks.processAllTokens(l):l).then(l=>i.walkTokens?Promise.all(this.walkTokens(l,i.walkTokens)).then(()=>l):l).then(l=>u(l,i)).then(l=>i.hooks?i.hooks.postprocess(l):l).catch(o);try{i.hooks&&(n=i.hooks.preprocess(n));let l=a(n,i);i.hooks&&(l=i.hooks.processAllTokens(l)),i.walkTokens&&this.walkTokens(l,i.walkTokens);let c=u(l,i);return i.hooks&&(c=i.hooks.postprocess(c)),c}catch(l){return o(l)}}}onError(t,e){return n=>{if(n.message+=`
107
- Please report this to https://github.com/markedjs/marked.`,t){const s="<p>An error occurred:</p><pre>"+D(n.message+"",!0)+"</pre>";return e?Promise.resolve(s):s}if(e)return Promise.reject(n);throw n}}},U=new Dn;function T(t,e){return U.parse(t,e)}T.options=T.setOptions=function(t){return U.setOptions(t),T.defaults=U.defaults,st(T.defaults),T};T.getDefaults=xe;T.defaults=F;T.use=function(...t){return U.use(...t),T.defaults=U.defaults,st(T.defaults),T};T.walkTokens=function(t,e){return U.walkTokens(t,e)};T.parseInline=U.parseInline;T.Parser=H;T.parser=H.parse;T.Renderer=de;T.TextRenderer=qe;T.Lexer=z;T.lexer=z.lex;T.Tokenizer=ue;T.Hooks=ae;T.parse=T;T.options;T.setOptions;T.use;T.walkTokens;T.parseInline;H.parse;z.lex;function zn(t){if(!t)return null;if(t.startsWith("?slug=")||t.startsWith("/?slug=")){const e=t.includes("?")?t.slice(t.indexOf("?")):t,n=new URLSearchParams(e).get("slug");return(n==null?void 0:n.trim())||null}try{const n=new URL(t,"http://local").searchParams.get("slug");return(n==null?void 0:n.trim())||null}catch{return null}}function Ce(t){var e,n;return((n=(e=t.split("#")[0])==null?void 0:e.split("?")[0])==null?void 0:n.trim())??""}function gt(t){const e=t.replace(/\\/g,"/").replace(/^\/+/,"");return e?e.toLowerCase().endsWith(".md")?e:`${e}.md`:""}function Hn(t,e){const n=Ce(e);if(!n||n.startsWith("http://")||n.startsWith("https://")||n.startsWith("mailto:")||n.startsWith("#"))return null;const s=t.includes("/")?t.slice(0,t.lastIndexOf("/")):"",r=n.replace(/\\/g,"/").split("/"),i=s?s.split("/"):[];for(const o of r)if(!(!o||o===".")){if(o===".."){if(i.length===0)return null;i.pop();continue}i.push(o)}return gt(i.join("/"))}function Nn(t){let e=Ce(t).replace(/\\/g,"/");return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("mailto:")||e.startsWith("#")||(e.startsWith("/")&&(e=e.slice(1)),e.startsWith("docs/")&&(e=e.slice(5)),!e)?null:gt(e)}function Bn(t,e){const n=e.get(t);if(n)return n;const s=t.toLowerCase();for(const[r,i]of e.entries())if(r.toLowerCase()===s)return i;return null}function Wn(t,e,n){const s=zn(e);if(s){for(const i of n.values())if(i===s)return s;return null}const r=[Hn(t,e),Nn(e)].filter(i=>!!i);for(const i of r){const o=Bn(i,n);if(o)return o}return null}const jn=[".png",".jpg",".jpeg",".gif",".webp",".svg"];function Qe(t){const e=t.toLowerCase();return jn.some(n=>e.endsWith(n))}function On(t,e){const n=Ce(e);if(!n||n.startsWith("http://")||n.startsWith("https://")||n.startsWith("mailto:")||n.startsWith("#")||n.startsWith("data:"))return null;let s=n.replace(/\\/g,"/");if(s.startsWith("/")&&(s=s.slice(1)),s.startsWith("docs/")?s=s.slice(5):s="",s&&!s.split("/").includes("..")&&Qe(s))return s;const r=t.includes("/")?t.slice(0,t.lastIndexOf("/")):"",i=n.replace(/\\/g,"/").split("/"),o=r?r.split("/"):[];for(const u of i)if(!(!u||u===".")){if(u===".."){if(o.length===0)return null;o.pop();continue}o.push(u)}const a=o.join("/");return a&&Qe(a)?a:null}function Un(t,e){const n=On(t,e);return n?`/api/assets/${n.split("/").map(encodeURIComponent).join("/")}`:null}let Xe=!1,O=null;function G(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}const Fn=/\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/g;function Gn(t){return t.replace(Fn,(e,n,s)=>{const r=(s??n).trim(),i=n.trim(),o=encodeURIComponent(r);return`[${i}](#wikilink:${o})`})}function Zn(){Xe||(T.use({gfm:!0,renderer:{code({text:t,lang:e}){return e==="mermaid"?`<div class="mermaid-wrapper"><pre class="mermaid">${G(t.trim())}</pre></div>
108
- `:!1},list(t){if(!t.items.some(i=>i.task))return!1;const n=t.ordered?"ol":"ul",s=t.ordered&&t.start!==1&&t.start!=null?` start="${t.start}"`:"";let r="";for(const i of t.items)r+=this.listitem(i);return`<${n} class="contains-task-list"${s}>
109
- ${r}</${n}>
110
- `},listitem(t){if(!t.task)return!1;const e=`<input type="checkbox" class="task-list-item-checkbox"${t.checked?" checked":""} disabled>`,n=this.parser.parse(t.tokens,!!t.loose).trim();return`<li class="task-list-item"><label class="task-list-item-label">${e}<span class="task-list-item-content">${n}</span></label></li>
111
- `},image({href:t,text:e,title:n}){if(!t||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("data:"))return!1;if(O){const s=Un(O.docRelativePath,t);if(s){const r=G(e||n||"");return`<img src="${G(s)}" alt="${r}" loading="lazy" class="markdown-image">`}}return!1},link({href:t,text:e}){if(t!=null&&t.startsWith("#wikilink:")){const n=decodeURIComponent(t.slice(10));return`<a href="#" class="wikilink" data-slug="${G(n)}">${e}</a>`}if(O&&t){const n=Wn(O.docRelativePath,t,O.slugByRelative);if(n)return`<a href="#" class="wikilink" data-slug="${G(n)}">${e}</a>`}return t!=null&&t.startsWith("http://")||t!=null&&t.startsWith("https://")?`<a href="${G(t)}" target="_blank" rel="noopener noreferrer">${e}</a>`:t!=null&&t.startsWith("mailto:")||t!=null&&t.startsWith("#")?!1:t?`<a href="#" class="md-link-unresolved" title="Link not in docs index">${e}</a>`:!1}}}),Xe=!0)}function ft(t,e){Zn(),O=e??null;try{return T.parse(Gn(t),{async:!1})}finally{O=null}}let Je=null;async function mt(t){const e=t.querySelectorAll("pre.mermaid");if(e.length===0)return;const n=document.documentElement.dataset.theme==="dark"?"dark":"default",s=await Vt(()=>import("./mermaid.core-Bddhr0ku.js").then(r=>r.ba),__vite__mapDeps([0,1]));Je!==n&&(s.default.initialize({startOnLoad:!1,theme:n,securityLevel:"loose"}),Je=n);try{await s.default.run({nodes:[...e]})}catch{for(const r of e)if(!r.closest(".mermaid-error")){const i=r.parentElement;i==null||i.classList.add("mermaid-error")}}}const Ae="slug",vt="path";function _e(){const t=new URLSearchParams(window.location.search).get(Ae);return t!=null&&t.trim()?t.trim():null}function Kn(){const t=new URLSearchParams(window.location.search).get(vt);return t!=null&&t.trim()?t.trim().replace(/\\/g,"/"):null}function Qn(){const t=new URL(window.location.href),e=t.pathname;if(e==="/"||e==="/index.html")return;const n=_e();t.pathname="/",history.replaceState(n?{slug:n}:{},"",t)}function bt(){const t=new URL(window.location.href);return t.pathname="/",t}function Xn(t){const e=bt();return e.search="",e.searchParams.set(Ae,t),e.toString()}function Jn(t,e="push"){const n=bt();n.searchParams.delete(vt),n.searchParams.set(Ae,t);const s={slug:t};e==="replace"?history.replaceState(s,"",n):history.pushState(s,"",n)}function Yn(t){const e=()=>{t(_e())};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)}function Vn(t,e){if(e==="json")try{const n=JSON.parse(t);return JSON.stringify(n,null,2)}catch{return t}return t}function es(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function ts(t,e){const n=Vn(t,e);return`<pre class="structured-preview ${e==="json"?"structured-preview--json":"structured-preview--yaml"}"><code>${es(n)}</code></pre>`}const kt="repomind-page-info-hidden";function ns(){try{const t=localStorage.getItem(kt);return t===null?!0:t==="true"}catch{return!0}}function ss(t){try{localStorage.setItem(kt,t?"true":"false")}catch{}}function W(t,e,n={}){var k,E,d,f;if(t.className="workspace-main",!e||!e.found){t.innerHTML=`
112
- <div class="workspace-empty">
113
- <h1>Knowledge</h1>
114
- <p class="placeholder">Select a page from the tree or use the ⋯ menu to create one.</p>
115
- </div>
116
- `;return}const s=e.frontmatter??{},r=typeof s.title=="string"?s.title:e.slug??"",i=typeof s.status=="string"?s.status:"",o=typeof s.type=="string"?s.type:"",a=typeof s.domain=="string"?s.domain:"",u=Array.isArray(s.tags)?s.tags.filter(h=>typeof h=="string"):[],l=Array.isArray(s.related)?s.related.filter(h=>typeof h=="string"):[],c=le(o),y=ns(),p=e.contentKind??"markdown",b=p==="json"||p==="yaml",x=b?"":'<button type="button" id="edit-page" class="btn-primary">Edit</button>';t.innerHTML=`
117
- <nav class="breadcrumb" aria-label="Breadcrumb">
118
- <button type="button" class="crumb" data-crumb="root">Knowledge</button>
119
- <span class="crumb-sep">›</span>
120
- <button type="button" class="crumb" data-crumb="catalog">${q(c)}</button>
121
- <span class="crumb-sep">›</span>
122
- <span class="crumb current">${q(r)}</span>
123
- </nav>
124
- <div class="page-layout${y?" page-layout--focus":""}">
125
- <article class="page-content">
126
- <header class="page-header">
127
- <h1 class="doc-title">${q(r)}</h1>
128
- <div class="workspace-actions">
129
- <button type="button" id="toggle-focus" class="btn-ghost" aria-pressed="${y}">
130
- ${y?"Show info":"Hide info"}
131
- </button>
132
- ${x}
133
- <button type="button" id="copy-link" class="btn-ghost">Copy link</button>
134
- <button type="button" id="copy-path" class="btn-ghost">Copy path</button>
135
- </div>
136
- </header>
137
- <div id="tab-preview" class="markdown-preview reader-preview"></div>
138
- <section id="reader-backlinks" class="reader-backlinks hidden" aria-label="Backlinks"></section>
139
- </article>
140
- <aside class="page-info">
141
- <h2 class="page-info-title">Page info</h2>
142
- <dl class="info-list">
143
- <dt>Status</dt><dd><span class="status-chip status-${q(i)}">${q(i)}</span></dd>
144
- <dt>Type</dt><dd>${q(o)}</dd>
145
- ${a?`<dt>Domain</dt><dd>${q(a)}</dd>`:""}
146
- <dt>Format</dt><dd>${q(p)}</dd>
147
- ${u.length>0?`<dt>Tags</dt><dd>${u.map(h=>`<span class="tag-chip">${q(h)}</span>`).join(" ")}</dd>`:""}
148
- </dl>
149
- ${l.length>0?`<div class="info-block"><div class="info-block-label">Related</div>${l.map(h=>`<button type="button" class="related-chip" data-slug="${q(h)}">${q(h)}</button>`).join("")}</div>`:""}
150
- <div class="info-tabs tabs">
151
- <button class="tab active" data-tab="frontmatter">Frontmatter</button>
152
- <button class="tab" data-tab="agent">Agent JSON</button>
153
- </div>
154
- <div id="tab-frontmatter" class="tab-panel active"></div>
155
- <div id="tab-agent" class="tab-panel"></div>
156
- <footer class="page-info-footer">
157
- <code id="doc-path">${q(e.path??"")}</code>
158
- </footer>
159
- </aside>
160
- </div>
161
- `;const v=t.querySelector("#tab-preview");if(b)v.innerHTML=ts(e.body??"",p);else{const h=n.docRelativePath&&n.slugByRelative?{docRelativePath:n.docRelativePath,slugByRelative:n.slugByRelative}:void 0;v.innerHTML=ft(e.body??"",h),mt(v),v.querySelectorAll("a.wikilink").forEach(w=>{w.addEventListener("click",m=>{m.preventDefault();const L=w.dataset.slug;L&&t.dispatchEvent(new CustomEvent("navigate-slug",{detail:{slug:L}}))})}),v.querySelectorAll("a.md-link-unresolved").forEach(w=>{w.addEventListener("click",m=>{m.preventDefault()})})}const g=t.querySelector("#tab-frontmatter");g.innerHTML='<pre class="frontmatter-yaml"></pre>',g.querySelector("pre").textContent=JSON.stringify(s,null,2);const S=t.querySelector("#tab-agent");S.innerHTML='<pre class="agent-json"></pre>',S.querySelector("pre").textContent=JSON.stringify(e.agentShape,null,2),t.querySelectorAll(".info-tabs .tab").forEach(h=>{h.addEventListener("click",()=>{var m;const w=h.dataset.tab;t.querySelectorAll(".info-tabs .tab").forEach(L=>L.classList.remove("active")),t.querySelectorAll(".page-info .tab-panel").forEach(L=>L.classList.remove("active")),h.classList.add("active"),(m=t.querySelector(`#tab-${w}`))==null||m.classList.add("active")})}),(k=t.querySelector("#toggle-focus"))==null||k.addEventListener("click",()=>{const h=t.querySelector(".page-layout"),w=t.querySelector("#toggle-focus"),m=!(h!=null&&h.classList.contains("page-layout--focus"));h==null||h.classList.toggle("page-layout--focus",m),ss(m),w&&(w.setAttribute("aria-pressed",String(m)),w.textContent=m?"Show info":"Hide info")}),(E=t.querySelector("#copy-path"))==null||E.addEventListener("click",()=>{e.path&&navigator.clipboard.writeText(e.path)}),(d=t.querySelector("#copy-link"))==null||d.addEventListener("click",()=>{var h;e.slug&&(navigator.clipboard.writeText(Xn(e.slug)),(h=n.onCopyLink)==null||h.call(n))}),(f=t.querySelector("#edit-page"))==null||f.addEventListener("click",()=>{e.slug&&n.onEdit&&n.onEdit(e.slug)}),t.querySelectorAll(".related-chip").forEach(h=>{h.addEventListener("click",()=>{const w=h.dataset.slug;w&&t.dispatchEvent(new CustomEvent("navigate-slug",{detail:{slug:w}}))})}),e.slug&&!b&&Ct(e.slug).then(({backlinks:h})=>{const w=t.querySelector("#reader-backlinks");!w||h.length===0||(w.classList.remove("hidden"),w.innerHTML=`
162
- <h2 class="reader-backlinks-title">Backlinks</h2>
163
- <div class="reader-backlinks-list">
164
- ${h.map(m=>`<button type="button" class="related-chip" data-slug="${q(m.slug)}">${q(m.title)} <span class="backlink-kind">${q(m.kind)}</span></button>`).join("")}
165
- </div>
166
- `,w.querySelectorAll(".related-chip").forEach(m=>{m.addEventListener("click",()=>{const L=m.dataset.slug;L&&t.dispatchEvent(new CustomEvent("navigate-slug",{detail:{slug:L}}))})}))}).catch(()=>{})}function q(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}const rs={h1:{kind:"prefix",prefix:"# "},h2:{kind:"prefix",prefix:"## "},h3:{kind:"prefix",prefix:"### "},bold:{kind:"wrap",before:"**",after:"**"},italic:{kind:"wrap",before:"_",after:"_"},link:{kind:"link"},task:{kind:"prefix",prefix:"- [ ] "}};function is(t,e){const n=t.selectionStart,s=t.selectionEnd,r=t.value,i=r.slice(n,s);if(e.kind==="prefix"){const u=r.lastIndexOf(`
167
- `,n-1)+1,l=r.slice(0,u),c=r.slice(u);t.value=`${l}${e.prefix}${c}`;const y=u+e.prefix.length+(n-u);t.setSelectionRange(y,y);return}if(e.kind==="link"){const u=i||"link text",l=`[${u}](url)`;t.value=`${r.slice(0,n)}${l}${r.slice(s)}`;const c=n+u.length+3;t.setSelectionRange(c,c+3);return}const o=`${e.before}${i||"text"}${e.after}`;t.value=`${r.slice(0,n)}${o}${r.slice(s)}`;const a=n+e.before.length+(i?i.length:4);t.setSelectionRange(i?a:n+e.before.length,i?a:n+e.before.length+4)}function as(t,e,n,s={}){t.querySelectorAll("[data-md-action]").forEach(r=>{r.addEventListener("click",()=>{var a;const i=r.dataset.mdAction??"";if(i==="image"){(a=s.onInsertImage)==null||a.call(s);return}const o=rs[i];o&&(is(e,o),n(),e.focus())})})}function os(){return`
168
- <div class="editor-toolbar" role="toolbar" aria-label="Markdown formatting">
169
- <button type="button" data-md-action="h1" title="Heading 1">H1</button>
170
- <button type="button" data-md-action="h2" title="Heading 2">H2</button>
171
- <button type="button" data-md-action="h3" title="Heading 3">H3</button>
172
- <span class="editor-toolbar-sep" aria-hidden="true"></span>
173
- <button type="button" data-md-action="bold" title="Bold"><strong>B</strong></button>
174
- <button type="button" data-md-action="italic" title="Italic"><em>I</em></button>
175
- <button type="button" data-md-action="link" title="Link">Link</button>
176
- <button type="button" data-md-action="image" title="Insert image">Image</button>
177
- <button type="button" data-md-action="task" title="Task list">Task</button>
178
- </div>
179
- `}const ls=/\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/g;function cs(t){var n,s;const e=[];for(const r of t.matchAll(ls)){const i=((n=r[1])==null?void 0:n.trim())??"",o=((s=r[2])==null?void 0:s.trim())??i;o&&e.push(o)}return e}function us(t,e){const n=e.find(i=>i.slug===t);if(n)return n.slug;const s=t.toLowerCase(),r=e.find(i=>i.title.toLowerCase()===s);return(r==null?void 0:r.slug)??null}function ds(t,e,n){const s=new Set(e),r=[];for(const i of cs(t)){const o=us(i,n);!o||s.has(o)||r.includes(o)||r.push(o)}return r}function ps(t,e,n){const s=t.toLowerCase();if(!s)return 1;const r=e.toLowerCase(),i=n.toLowerCase();return r.startsWith(s)||i.startsWith(s)?3:r.includes(s)||i.includes(s)?2:0}function hs(t,e,n=12){return e.map(s=>({doc:s,score:ps(t,s.slug,s.title)})).filter(s=>s.score>0).sort((s,r)=>r.score-s.score||s.doc.slug.localeCompare(r.doc.slug)).slice(0,n).map(s=>s.doc)}function gs(t,e,n){const s=document.createElement("div");s.className="wikilink-menu hidden",document.body.appendChild(s);let r=-1,i="";function o(){s.classList.add("hidden"),s.innerHTML="",r=-1,i=""}function a(){const y=t.getBoundingClientRect();s.style.top=`${y.bottom+4}px`,s.style.left=`${y.left}px`,s.style.minWidth=`${Math.max(200,y.width*.5)}px`}function u(y){const p=hs(y,e);if(p.length===0){o();return}s.innerHTML=p.map(b=>`<button type="button" class="wikilink-option" data-slug="${fs(b.slug)}">
180
- <span class="wikilink-option-slug">${ye(b.slug)}</span>
181
- <span class="wikilink-option-title">${ye(b.title)}</span>
182
- </button>`).join(""),a(),s.classList.remove("hidden"),s.querySelectorAll(".wikilink-option").forEach(b=>{b.addEventListener("mousedown",x=>{x.preventDefault();const v=b.dataset.slug??"";l(v)})})}function l(y){if(r<0)return;const p=t.value.slice(0,r),b=t.value.slice(t.selectionStart);t.value=`${p}[[${y}]]${b}`;const x=p.length+y.length+4;t.setSelectionRange(x,x),o(),n(),t.focus()}function c(){const y=t.selectionStart,p=t.value.slice(0,y),b=/\[\[([^\]]*)$/.exec(p);if(!b){o();return}r=y-b[0].length,i=b[1]??"",u(i)}t.addEventListener("input",c),t.addEventListener("click",c),t.addEventListener("keyup",c),t.addEventListener("blur",()=>{setTimeout(o,120)})}function ye(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function fs(t){return ye(t).replace(/"/g,"&quot;")}let j=null,fe=null;function ms(t,e,n,s=[]){var te,Ie,Me,De,ze,He,Ne;const r=s.map($=>({slug:$.slug,title:$.title})),i=r.map($=>$.slug);t.className="workspace-main workspace-editor";const o=le(e.type);t.innerHTML=`
183
- <nav class="breadcrumb" aria-label="Breadcrumb">
184
- <span class="crumb">Knowledge</span>
185
- <span class="crumb-sep">›</span>
186
- <span class="crumb">Drafts</span>
187
- <span class="crumb-sep">›</span>
188
- <span class="crumb current">${J(e.title||e.slug)}</span>
189
- </nav>
190
- <div class="page-layout">
191
- <div class="page-content">
192
- <header class="page-header">
193
- <input id="ed-title" class="title-input doc-title" type="text" placeholder="Document title" />
194
- <div class="workspace-actions">
195
- <button type="button" id="ed-publish" class="btn-primary">Publish</button>
196
- <button type="button" id="ed-close" class="btn-ghost">Close</button>
197
- <button type="button" id="ed-discard" class="btn-ghost">Discard draft</button>
198
- </div>
199
- </header>
200
- <div class="split-editor">
201
- <div class="split-pane">
202
- <div class="pane-label">Markdown</div>
203
- ${os()}
204
- <textarea id="ed-body" spellcheck="false"></textarea>
205
- </div>
206
- <div class="split-pane">
207
- <div class="pane-label">Preview</div>
208
- <div id="ed-preview" class="markdown-preview pane-preview"></div>
209
- </div>
210
- </div>
211
- </div>
212
- <aside class="page-info">
213
- <h2 class="page-info-title">Page properties</h2>
214
- <div class="workspace-badges editor-badges">
215
- <span class="badge badge-draft">draft</span>
216
- ${e.forked_from?`<span class="badge">fork: ${J(e.forked_from)}</span>`:""}
217
- </div>
218
- <div class="meta-grid editor-meta">
219
- <div class="field"><label>Slug</label><input id="ed-slug" /></div>
220
- <div class="field"><label>Catalog</label><input id="ed-catalog" readonly value="${J(o)}" /></div>
221
- <div class="field"><label>Type</label>
222
- <select id="ed-type">
223
- <option value="adr">adr</option>
224
- <option value="feature-spec">feature-spec</option>
225
- <option value="glossary-term">glossary-term</option>
226
- <option value="open-question">open-question</option>
227
- <option value="agent-instruction">agent-instruction</option>
228
- <option value="wiki-page">wiki-page</option>
229
- </select>
230
- </div>
231
- <div class="field"><label>Status</label>
232
- <select id="ed-status">
233
- <option value="draft">draft</option>
234
- <option value="proposed">proposed</option>
235
- <option value="accepted">accepted</option>
236
- <option value="superseded">superseded</option>
237
- </select>
238
- </div>
239
- <div class="field field-wide"><label>Tags</label><input id="ed-tags" placeholder="comma-separated" /></div>
240
- <div class="field field-wide"><label>Related</label><input id="ed-related" list="ed-related-suggestions" placeholder="slug-one, slug-two" /></div>
241
- </div>
242
- <datalist id="ed-related-suggestions">
243
- ${i.map($=>`<option value="${$}"></option>`).join("")}
244
- </datalist>
245
- </aside>
246
- </div>
247
- <div id="publish-modal" class="modal hidden">
248
- <div class="modal-card modal-card-wide">
249
- <p>Publish to git as markdown?</p>
250
- <code id="publish-target"></code>
251
- <pre id="publish-diff" class="diff-preview"></pre>
252
- <div id="publish-related" class="publish-related hidden">
253
- <p id="publish-related-prompt"></p>
254
- <ul id="publish-related-list" class="publish-related-list"></ul>
255
- <div class="editor-actions">
256
- <button type="button" id="publish-related-apply" class="btn-primary">Add to related</button>
257
- <button type="button" id="publish-related-skip" class="btn-ghost">Skip</button>
258
- </div>
259
- </div>
260
- <div class="editor-actions">
261
- <button type="button" id="publish-confirm" class="btn-primary">Confirm</button>
262
- <button type="button" id="publish-cancel" class="btn-ghost">Cancel</button>
263
- </div>
264
- </div>
265
- </div>
266
- `;const a=t.querySelector("#ed-title"),u=t.querySelector("#ed-slug"),l=t.querySelector("#ed-type"),c=t.querySelector("#ed-status"),y=t.querySelector("#ed-tags"),p=t.querySelector("#ed-related"),b=t.querySelector("#ed-body"),x=t.querySelector("#ed-preview"),v=t.querySelector("#publish-modal");a.value=e.title,u.value=e.slug,l.value=e.type,c.value=e.status,y.value=e.tags.join(", "),p.value=e.related.join(", "),b.value=e.body;const g=e.target_path&&s.length>0?{docRelativePath:e.target_path,slugByRelative:new Map(s.map($=>[$.relativePath,$.slug]))}:void 0;function S(){x.innerHTML=ft(b.value,g),fe&&clearTimeout(fe),fe=setTimeout(()=>{mt(x)},350)}S();let k=[];function E($){return $.split(",").map(A=>A.trim()).filter(Boolean)}function d(){j&&clearTimeout(j),j=setTimeout(()=>{ge(e.id,{title:a.value,slug:u.value,type:l.value,status:c.value,tags:E(y.value),related:E(p.value),body:b.value}).catch($=>{n.onError($ instanceof Error?$.message:"Autosave failed")})},800)}const f=()=>{S();const $=t.querySelector("#ed-catalog");$&&($.value=le(l.value)),d()};for(const $ of[a,u,l,c,y,p,b])$.addEventListener("input",f),$.addEventListener("change",f);as(t,b,f,{onInsertImage:()=>{const $=document.createElement("input");$.type="file",$.accept="image/png,image/jpeg,image/gif,image/webp,image/svg+xml",$.addEventListener("change",()=>{var M;const A=(M=$.files)==null?void 0:M[0];A&&It(A,"assets").then(({relativePath:B})=>{const ne=b.selectionStart,se=b.selectionEnd,re=`![](${B})`;b.value=`${b.value.slice(0,ne)}${re}${b.value.slice(se)}`;const Be=ne+re.length;b.setSelectionRange(Be,Be),b.focus(),f()}).catch(B=>{n.onError(B instanceof Error?B.message:"Image upload failed")})}),$.click()}}),gs(b,r,f);function h(){const $=t.querySelector("#publish-related"),A=t.querySelector("#publish-related-prompt"),M=t.querySelector("#publish-related-list");if(k=ds(b.value,E(p.value),r),k.length===0){$.classList.add("hidden");return}A.textContent=`Add ${k.length} body link(s) to related?`,M.innerHTML=k.map(B=>{var se;const ne=((se=r.find(re=>re.slug===B))==null?void 0:se.title)??B;return`<li><code>${J(B)}</code> — ${J(ne)}</li>`}).join(""),$.classList.remove("hidden")}function w(){var A;if(k.length===0)return;const $=[...new Set([...E(p.value),...k])];p.value=$.join(", "),k=[],(A=t.querySelector("#publish-related"))==null||A.classList.add("hidden"),d()}(te=t.querySelector("#publish-related-apply"))==null||te.addEventListener("click",()=>{w()}),(Ie=t.querySelector("#publish-related-skip"))==null||Ie.addEventListener("click",()=>{var $;k=[],($=t.querySelector("#publish-related"))==null||$.classList.add("hidden")}),(Me=t.querySelector("#ed-publish"))==null||Me.addEventListener("click",()=>{(async()=>{j&&clearTimeout(j),await ge(e.id,{title:a.value,slug:u.value,type:l.value,status:c.value,tags:E(y.value),related:E(p.value),body:b.value}),N(),h();const $=t.querySelector("#publish-target"),A=t.querySelector("#publish-diff");$.textContent=`docs/.../${u.value}.md`,A.textContent="Loading diff…";try{const M=await At(e.id);M.targetPath&&($.textContent=M.targetPath),A.textContent=M.diff}catch(M){A.textContent=M instanceof Error?M.message:"Diff unavailable"}})().catch($=>{n.onError($ instanceof Error?$.message:"Failed to prepare publish")})}),(De=t.querySelector("#publish-cancel"))==null||De.addEventListener("click",()=>{L()}),v.addEventListener("click",$=>{$.target===v&&L()});let m=null;function L(){v.classList.add("hidden"),m&&(document.removeEventListener("keydown",m),m=null)}function N(){v.classList.remove("hidden"),m||(m=$=>{$.key==="Escape"&&L()},document.addEventListener("keydown",m))}(ze=t.querySelector("#publish-confirm"))==null||ze.addEventListener("click",()=>{(async()=>{j&&clearTimeout(j),await ge(e.id,{title:a.value,slug:u.value,type:l.value,status:c.value,tags:E(y.value),related:E(p.value),body:b.value});const{result:$}=await nt(e.id);L(),n.onPublished($.path)})().catch($=>{n.onError($ instanceof Error?$.message:"Publish failed")})}),(He=t.querySelector("#ed-close"))==null||He.addEventListener("click",()=>{n.onClosed()}),(Ne=t.querySelector("#ed-discard"))==null||Ne.addEventListener("click",()=>{confirm("Discard this draft?")&&_t(e.id).then(()=>n.onDeleted()).catch($=>{n.onError($ instanceof Error?$.message:"Delete failed")})})}function J(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Ye(t){const e=[];function n(s){s.indexPageSlug&&e.push(s.indexPageSlug);for(const r of s.children)r.kind==="page"?e.push(r.slug):n(r)}return n(t),e}function vs(t){if(!(t instanceof HTMLElement))return!1;const e=t.tagName;return e==="INPUT"||e==="TEXTAREA"||e==="SELECT"?!0:t.isContentEditable}function bs(t){const e=n=>{if(n.metaKey||n.ctrlKey||n.altKey)return;const s=vs(n.target);if(n.key==="/"&&!s){n.preventDefault(),t.onFocusSearch();return}if(!s)switch(n.key){case"j":n.preventDefault(),t.onNext();break;case"k":n.preventDefault(),t.onPrev();break;case"e":t.onEdit();break}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)}const wt="repomind-tree-expanded";function ks(){try{const t=localStorage.getItem(wt);return t?new Set(JSON.parse(t)):new Set([""])}catch{return new Set([""])}}function me(t){localStorage.setItem(wt,JSON.stringify([...t]))}function ws(t){return t.emoji?t.emoji:"📁"}function ys(t,e){if(e==="json")return"{ }";if(e==="yaml")return"Y";const n=Qt(t);return n.length===1?n:"📄"}function xs(){document.querySelectorAll(".tree-context-menu").forEach(t=>t.remove())}function yt(t){const e=[t.relativePath];for(const n of t.children??[])n.kind==="folder"&&e.push(...yt(n));return e}function Ve(){const t=window.prompt("Page name (without .md):");return t!=null&&t.trim()?t.trim():null}function et(t,e,n,s){Bt(t,e,void 0,n).then(({draft:r})=>{var i,o;(i=s.onTreeChanged)==null||i.call(s),(o=s.onSelectDraft)==null||o.call(s,r)}).catch(r=>{var i;(i=s.onError)==null||i.call(s,r instanceof Error?r.message:"Create page failed")})}function Ss(t,e,n){var x,v,g,S,k,E;xs();const{kind:s,parentPath:r,folderPath:i,page:o,tree:a,templates:u}=e,l=s==="page"&&o?yt(a).filter(d=>{const f=o.relativePath.includes("/")?o.relativePath.slice(0,o.relativePath.lastIndexOf("/")):"";return d!==f}):[],c=document.createElement("div");c.className="tree-create-menu tree-context-menu",c.innerHTML=`
267
- <div class="tree-menu-label">Create</div>
268
- <button type="button" data-action="page">New page</button>
269
- ${u.map(d=>`<button type="button" data-action="template" data-template="${tt(d.id)}">From template: ${Z(d.label)}</button>`).join("")}
270
- <button type="button" data-action="folder">New folder</button>
271
- ${s==="folder"&&i?'<button type="button" data-action="emoji">Set emoji</button>':""}
272
- ${s==="page"&&o?`
273
- <div class="tree-menu-label">Page</div>
274
- <button type="button" data-action="rename">Rename…</button>
275
- ${l.length>0?'<div class="tree-menu-label">Move to</div>':""}
276
- ${l.map(d=>`<button type="button" data-action="move" data-folder="${tt(d)}">${Z(d||"(root)")}</button>`).join("")}
277
- <button type="button" data-action="delete-page" class="tree-menu-danger">Delete page</button>
278
- `:""}
279
- ${s==="folder"&&i?'<button type="button" data-action="delete-folder" class="tree-menu-danger">Delete folder</button>':""}
280
- `;const y=t.getBoundingClientRect();c.style.top=`${y.bottom+4}px`,c.style.left=`${Math.max(8,y.left-160)}px`,document.body.appendChild(c);const p=()=>c.remove(),b=d=>{c.contains(d.target)||(p(),document.removeEventListener("click",b))};setTimeout(()=>document.addEventListener("click",b),0),(x=c.querySelector('[data-action="page"]'))==null||x.addEventListener("click",()=>{p();const d=Ve();d&&et(r,d,void 0,n)}),c.querySelectorAll('[data-action="template"]').forEach(d=>{d.addEventListener("click",()=>{p();const f=Ve();f&&et(r,f,d.dataset.template,n)})}),(v=c.querySelector('[data-action="folder"]'))==null||v.addEventListener("click",()=>{p();const d=window.prompt("Folder name:");d!=null&&d.trim()&&Dt(r,d.trim()).then(()=>{var f;return(f=n.onTreeChanged)==null?void 0:f.call(n)}).catch(f=>{var h;(h=n.onError)==null||h.call(n,f instanceof Error?f.message:"Create folder failed")})}),(g=c.querySelector('[data-action="emoji"]'))==null||g.addEventListener("click",()=>{p();const d=window.prompt("Emoji for this folder:");d!==null&&zt(i,d).then(()=>{var f;return(f=n.onTreeChanged)==null?void 0:f.call(n)}).catch(f=>{var h;(h=n.onError)==null||h.call(n,f instanceof Error?f.message:"Set emoji failed")})}),(S=c.querySelector('[data-action="rename"]'))==null||S.addEventListener("click",()=>{var h;if(p(),!o)return;const d=((h=o.relativePath.split("/").pop())==null?void 0:h.replace(/\.md$/,""))??o.name,f=window.prompt("New page name (without .md):",d);!(f!=null&&f.trim())||f.trim()===d||Ht(o.relativePath,f.trim()).then(({result:w})=>{var m,L,N;(m=n.onTreeChanged)==null||m.call(n),w.cascadeUpdated.length>0?(L=n.onNotify)==null||L.call(n,`Renamed to ${w.slug}; updated links in ${w.cascadeUpdated.length} file(s).`):w.slugChanged&&w.inboundWarnings.length>0&&((N=n.onError)==null||N.call(n,`Renamed to ${w.slug}; ${w.inboundWarnings.length} page(s) may still reference the old slug.`)),n.onSelectSlug(w.slug)}).catch(w=>{var m;(m=n.onError)==null||m.call(n,w instanceof Error?w.message:"Rename failed")})}),c.querySelectorAll('[data-action="move"]').forEach(d=>{d.addEventListener("click",()=>{if(p(),!o)return;const f=d.dataset.folder??"";Nt(o.relativePath,f).then(({result:h})=>{var w,m,L;(w=n.onTreeChanged)==null||w.call(n),h.cascadeUpdated.length>0?(m=n.onNotify)==null||m.call(n,`Moved to ${h.relativePath}; updated links in ${h.cascadeUpdated.length} file(s).`):h.slugChanged&&h.inboundWarnings.length>0&&((L=n.onError)==null||L.call(n,`Moved; slug is now ${h.slug}. ${h.inboundWarnings.length} page(s) still reference the old slug.`)),n.onSelectSlug(h.slug)}).catch(h=>{var w;(w=n.onError)==null||w.call(n,h instanceof Error?h.message:"Move failed")})})}),(k=c.querySelector('[data-action="delete-page"]'))==null||k.addEventListener("click",()=>{p(),o&&window.confirm(`Delete page "${o.title}"?`)&&We(o.relativePath,"page").then(({result:d})=>{var f,h,w,m;(f=n.onFsDeleted)==null||f.call(n,[d.slug]),(h=n.onTreeChanged)==null||h.call(n),d.cascadeUpdated.length>0?(w=n.onNotify)==null||w.call(n,`Deleted ${d.slug}; cleaned links in ${d.cascadeUpdated.length} file(s).`):d.inboundWarnings.length>0&&((m=n.onError)==null||m.call(n,`${d.inboundWarnings.length} page(s) still reference deleted slug "${d.slug}".`))}).catch(d=>{var f;(f=n.onError)==null||f.call(n,d instanceof Error?d.message:"Delete failed")})}),(E=c.querySelector('[data-action="delete-folder"]'))==null||E.addEventListener("click",()=>{p(),i&&window.confirm(`Delete folder "${i}" and all pages inside?`)&&We(i,"folder").then(({result:d})=>{var f,h,w,m;(f=n.onFsDeleted)==null||f.call(n,d.deletedSlugs),(h=n.onTreeChanged)==null||h.call(n),d.cascadeUpdated.length>0?(w=n.onNotify)==null||w.call(n,`Deleted folder; cleaned links in ${d.cascadeUpdated.length} file(s).`):d.inboundWarnings.length>0&&((m=n.onError)==null||m.call(n,`${d.inboundWarnings.length} page(s) still reference deleted page(s).`))}).catch(d=>{var f;(f=n.onError)==null||f.call(n,d instanceof Error?d.message:"Delete folder failed")})})}function $s(t,e,n,s){var v;t.innerHTML=`
281
- <nav id="docs-tree" class="docs-tree" aria-label="Documentation tree"></nav>
282
- <section class="catalog-section catalog-drafts">
283
- <button type="button" class="catalog-header" data-catalog="__drafts__" aria-expanded="true">
284
- <span class="catalog-chevron" aria-hidden="true">▾</span>
285
- <span class="catalog-icon catalog-icon--draft" aria-hidden="true">✎</span>
286
- <span class="catalog-label">Drafts</span>
287
- <span class="catalog-count">${n.length}</span>
288
- </button>
289
- <ul id="draft-list" class="catalog-pages"></ul>
290
- </section>
291
- `;const r=t.querySelector("#docs-tree"),i=t.querySelector("#draft-list"),o=ks();let a=null,u=null,l=null;async function c(g,S){var k;try{a||(a=(await Mt()).templates),Ss(g,{...S,templates:a},s)}catch(E){(k=s.onError)==null||k.call(s,E instanceof Error?E.message:"Failed to open menu")}}function y(g,S){var d,f;const k=document.createElement("div");k.className="tree-row",k.style.paddingLeft=`${S*12+8}px`,g.slug===u&&k.classList.add("active"),k.innerHTML=`
292
- <span class="tree-spacer" aria-hidden="true"></span>
293
- <button type="button" class="tree-label">
294
- <span class="tree-icon tree-icon--page">${ys(g.type,g.contentKind)}</span>
295
- <span class="tree-title">${Z(g.title)}</span>
296
- </button>
297
- <button type="button" class="tree-menu" title="Actions">⋯</button>
298
- `;const E=g.relativePath.includes("/")?g.relativePath.slice(0,g.relativePath.lastIndexOf("/")):"";return(d=k.querySelector(".tree-menu"))==null||d.addEventListener("click",h=>{h.stopPropagation(),c(h.currentTarget,{kind:"page",parentPath:E,folderPath:E,page:g,tree:e})}),(f=k.querySelector(".tree-label"))==null||f.addEventListener("click",()=>{u=g.slug,l=null,b(),x(),s.onSelectSlug(g.slug)}),k}function p(g,S){var f,h,w;const k=document.createElement("div");k.className="tree-folder";const E=o.has(g.relativePath),d=document.createElement("div");if(d.className="tree-row",d.style.paddingLeft=`${S*12+8}px`,d.innerHTML=`
299
- <button type="button" class="tree-toggle" aria-expanded="${E}">${E?"▾":"▸"}</button>
300
- <button type="button" class="tree-label">
301
- <span class="tree-icon tree-icon--folder">${ws(g)}</span>
302
- <span class="tree-title">${Z(g.name)}</span>
303
- </button>
304
- <button type="button" class="tree-menu" title="Actions">⋯</button>
305
- `,(f=d.querySelector(".tree-toggle"))==null||f.addEventListener("click",m=>{m.stopPropagation(),o.has(g.relativePath)?o.delete(g.relativePath):o.add(g.relativePath),me(o),b()}),(h=d.querySelector(".tree-label"))==null||h.addEventListener("click",()=>{if(g.indexPageSlug){u=g.indexPageSlug,l=null,b(),x(),s.onSelectSlug(g.indexPageSlug);return}o.has(g.relativePath)?o.delete(g.relativePath):o.add(g.relativePath),me(o),b()}),(w=d.querySelector(".tree-menu"))==null||w.addEventListener("click",m=>{m.stopPropagation(),c(m.currentTarget,{kind:"folder",parentPath:g.relativePath,folderPath:g.relativePath,tree:e})}),k.appendChild(d),E){const m=document.createElement("div");m.className="tree-children";for(const L of g.children??[])L.kind==="folder"?m.appendChild(p(L,S+1)):m.appendChild(y(L,S+1));k.appendChild(m)}return k}function b(){r.innerHTML="",r.appendChild(p(e,0))}function x(){if(i.innerHTML="",n.length===0){i.innerHTML='<li class="placeholder page-item">No drafts</li>';return}for(const g of n){const S=document.createElement("li");S.className="page-item",g.id===l&&S.classList.add("active"),S.innerHTML=`<span class="page-title">${Z(g.title||g.slug)}</span><span class="status-chip status-draft">draft</span>`,S.addEventListener("click",()=>{var k;l=g.id,u=null,b(),x(),(k=s.onSelectDraft)==null||k.call(s,g)}),i.appendChild(S)}}b(),x(),(v=t.querySelector('[data-catalog="__drafts__"]'))==null||v.addEventListener("click",()=>{const g=t.querySelector("#draft-list"),S=t.querySelector('[data-catalog="__drafts__"]'),k=(g==null?void 0:g.classList.toggle("hidden"))===!1;S==null||S.setAttribute("aria-expanded",String(k));const E=S==null?void 0:S.querySelector(".catalog-chevron");E&&(E.textContent=k?"▾":"▸")}),t.setActiveSlug=g=>{u=g,l=null,o.add(""),me(o),b(),x()},t.setActiveDraft=g=>{l=g,u=null,b(),x()},t.refreshDrafts=g=>{n.length=0,n.push(...g),x();const S=t.querySelector(".catalog-drafts .catalog-count");S&&(S.textContent=String(n.length))},t.refreshTree=(g,S)=>{e.children=g.children??[],e.emoji=g.emoji,e.indexPageSlug=g.indexPageSlug,e.name=g.name,n.length=0,n.push(...S??[]),b(),x()}}function Z(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function tt(t){return Z(t)}function Es(t){const e=new EventSource("/api/events");return e.onmessage=()=>{t()},()=>{e.close()}}Qn();Wt();function Ls(t){return new Map(t.map(e=>[e.relativePath,e.slug]))}function Ts(t,e){var n;return(n=t.find(s=>s.slug===e))==null?void 0:n.relativePath}function _(t,e=!1){const n=document.querySelector("#banner");n&&(n.textContent=t,n.classList.toggle("error",e),n.classList.remove("hidden"),setTimeout(()=>n.classList.add("hidden"),5e3))}async function Ps(t){var n;const{drafts:e}=await Y();return(n=t.refreshDrafts)==null||n.call(t,e),e}async function Rs(){var E;jt(document.querySelector("#theme-toggle"));const t=document.querySelector("#sidebar"),e=document.querySelector("#workspace"),n=document.querySelector("#health-toggle"),s=document.querySelector("#stats"),r=document.querySelector("#global-search"),i=document.querySelector("#search-dropdown");let o=[],a=null,u=[],l="workspace",c=null,y=null;async function p(d){var w;const[{tree:f},{drafts:h}]=await Promise.all([je(),Y()]);return(w=d.refreshTree)==null||w.call(d,f,h),u=Ye(f),f}function b(d){if(l=d,n.setAttribute("aria-pressed",String(d==="dashboard")),d==="dashboard"){c=Xt(e,{onOpenDraft:h=>{b("workspace"),g(h)},onPublished:h=>{(async()=>(await p(t),await x(),_(`Published: ${h}`)))()},onNotify:(h,w)=>_(h,w)}).refresh;return}c=null,W(e,null)}n.addEventListener("click",()=>{b(l==="dashboard"?"workspace":"dashboard")}),bs({onNext:()=>{if(l!=="workspace"||!a)return;const d=u.indexOf(a);d>=0&&d<u.length-1&&k(u[d+1])},onPrev:()=>{if(l!=="workspace"||!a)return;const d=u.indexOf(a);d>0&&k(u[d-1])},onFocusSearch:()=>{r.focus(),r.select()},onEdit:()=>{l==="workspace"&&a&&S(a)}});async function x(){const d=await Ft(),h=await(await fetch("/api/stats")).json(),{drafts:w}=await Y(),m=h.brokenRelatedCount>0?` · ${h.brokenRelatedCount} broken links`:"";s.textContent=`v${d.version} · ${d.docCount} pages · ${w.length} drafts${m}`}function v(d){if(d.length===0){i.innerHTML='<p class="search-empty">No matches</p>',i.classList.remove("hidden");return}const f=document.createElement("ul");f.className="search-results";for(const h of d){const w=o.find(L=>L.slug===h.slug),m=document.createElement("li");m.innerHTML=`
306
- <div class="search-result-title">${h.title}</div>
307
- <div class="search-result-meta">${le((w==null?void 0:w.type)??"")} · ${h.snippet}</div>
308
- `,m.addEventListener("click",()=>{i.classList.add("hidden"),r.value="",k(h.slug)}),f.appendChild(m)}i.innerHTML="",i.appendChild(f),i.classList.remove("hidden")}r.addEventListener("input",()=>{const d=r.value.trim();if(y&&clearTimeout(y),!d){i.classList.add("hidden"),i.innerHTML="";return}y=setTimeout(()=>{Ot(d).then(({results:f})=>v(f)).catch(f=>_(f instanceof Error?f.message:"Search failed",!0))},300)}),document.addEventListener("click",d=>{!i.contains(d.target)&&d.target!==r&&i.classList.add("hidden")});function g(d){var f;b("workspace"),(f=t.setActiveDraft)==null||f.call(t,d.id),ms(e,d,{onPublished:h=>{(async()=>(o=(await K()).docs,await p(t),await x(),c==null||c(),_(`Published: ${h}`),await k(d.slug)))()},onClosed:()=>{k(d.forked_from??d.slug).catch(()=>{W(e,null)})},onDeleted:()=>{(async()=>(await p(t),W(e,null)))()},onError:h=>_(h,!0)},o)}async function S(d){try{const{draft:f}=await Gt(d);await Ps(t),g(f)}catch(f){_(f instanceof Error?f.message:"Edit failed",!0)}}async function k(d,f={}){var m;const h=f.updateUrl??!0,w=f.urlMode??"push";l==="dashboard"&&b("workspace"),a=d,(m=t.setActiveSlug)==null||m.call(t,d);try{const L=await Ut(d),N=Ts(o,d);W(e,L,{onEdit:te=>{S(te)},docRelativePath:N,slugByRelative:Ls(o),onCopyLink:()=>_("Link copied")}),h&&Jn(d,w)}catch(L){_(L instanceof Error?L.message:"Failed to load doc",!0)}}e.addEventListener("navigate-slug",(d=>{k(d.detail.slug)}));try{await x();const[d,{tree:f},{drafts:h}]=await Promise.all([K(),je(),Y()]);o=d.docs,u=Ye(f),$s(t,f,h,{onSelectSlug:m=>{k(m)},onSelectDraft:m=>g(m),onTreeChanged:()=>{(async()=>(o=(await K()).docs,await p(t),await x()))()},onFsDeleted:m=>{(async()=>(o=(await K()).docs,a&&m.includes(a)&&(a=null,W(e,null)),await p(t),await x()))()},onError:m=>_(m,!0),onNotify:m=>_(m)}),Es(()=>{(async()=>{try{o=(await K()).docs,await p(t),await x(),a&&!o.some(L=>L.slug===a)&&(a=null,W(e,null))}catch{}})()}),Yn(m=>{if(!m){a=null,W(e,null);return}o.some(L=>L.slug===m)&&k(m,{updateUrl:!1})}),W(e,null);const w=_e();if(w)o.some(m=>m.slug===w)?await k(w,{updateUrl:!1}):_(`Unknown page: ${w}`,!0);else{const m=Kn(),L=m?(E=o.find(N=>N.relativePath===m))==null?void 0:E.slug:void 0;m&&L?await k(L,{updateUrl:!1}):m?_(`Unknown path: ${m}`,!0):f.indexPageSlug?await k(f.indexPageSlug,{urlMode:"replace"}):o.length>0&&o[0]&&await k(o[0].slug,{urlMode:"replace"})}}catch(d){_(d instanceof Error?d.message:"Failed to load workspace",!0)}}Rs();export{Vt as _};