@luutuankiet/gsd-reader 0.2.6 → 0.2.8

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 (54) hide show
  1. package/dist/assets/{_baseUniq-C0djjTxL.js → _baseUniq-DT4sUZ6G.js} +1 -1
  2. package/dist/assets/{arc-Cgt1vyh3.js → arc-DEXwphYx.js} +1 -1
  3. package/dist/assets/{architectureDiagram-VXUJARFQ-DbRcke_w.js → architectureDiagram-VXUJARFQ-D-5lHrHK.js} +1 -1
  4. package/dist/assets/{blockDiagram-VD42YOAC-Davq9UbB.js → blockDiagram-VD42YOAC-CmFUnNBM.js} +1 -1
  5. package/dist/assets/{c4Diagram-YG6GDRKO-MNMp3vkg.js → c4Diagram-YG6GDRKO-CjJlDzPv.js} +1 -1
  6. package/dist/assets/channel-DQvTf76f.js +1 -0
  7. package/dist/assets/{chunk-4BX2VUAB-CZTMC4IX.js → chunk-4BX2VUAB-DRFv9DYF.js} +1 -1
  8. package/dist/assets/{chunk-55IACEB6-h4uyFO12.js → chunk-55IACEB6-BoAnFPku.js} +1 -1
  9. package/dist/assets/{chunk-B4BG7PRW-Be4Ml465.js → chunk-B4BG7PRW-Cv8smO-3.js} +1 -1
  10. package/dist/assets/{chunk-DI55MBZ5-aZ47CnfX.js → chunk-DI55MBZ5-DGEpQy_S.js} +1 -1
  11. package/dist/assets/{chunk-FMBD7UC4-qIF2hO6k.js → chunk-FMBD7UC4-DWl5DPfd.js} +1 -1
  12. package/dist/assets/{chunk-QN33PNHL-B8r8fgmg.js → chunk-QN33PNHL-Bv0qqn6o.js} +1 -1
  13. package/dist/assets/{chunk-QZHKN3VN-ByjUvpG2.js → chunk-QZHKN3VN-BRVbbL6d.js} +1 -1
  14. package/dist/assets/{chunk-TZMSLE5B-DeQJWFxF.js → chunk-TZMSLE5B-DMFoCU1O.js} +1 -1
  15. package/dist/assets/classDiagram-2ON5EDUG-jZJOnOjv.js +1 -0
  16. package/dist/assets/classDiagram-v2-WZHVMYZB-jZJOnOjv.js +1 -0
  17. package/dist/assets/clone-fnANXALD.js +1 -0
  18. package/dist/assets/{cose-bilkent-S5V4N54A-DVDhbx8o.js → cose-bilkent-S5V4N54A-qLhVAZMS.js} +1 -1
  19. package/dist/assets/{dagre-6UL2VRFP-BfqYuuwG.js → dagre-6UL2VRFP-COFE67VA.js} +1 -1
  20. package/dist/assets/{diagram-PSM6KHXK-L4X42WN5.js → diagram-PSM6KHXK-K7MKxFv-.js} +1 -1
  21. package/dist/assets/{diagram-QEK2KX5R-BYJI8U52.js → diagram-QEK2KX5R-hTOFcTJS.js} +1 -1
  22. package/dist/assets/{diagram-S2PKOQOG-DWkcHI9G.js → diagram-S2PKOQOG-CHXj48iO.js} +1 -1
  23. package/dist/assets/{erDiagram-Q2GNP2WA-CTU0WcNb.js → erDiagram-Q2GNP2WA-CKKV_B41.js} +1 -1
  24. package/dist/assets/{flowDiagram-NV44I4VS-DhhRZyNN.js → flowDiagram-NV44I4VS-ColngeSd.js} +1 -1
  25. package/dist/assets/{ganttDiagram-JELNMOA3-DXB3tCPw.js → ganttDiagram-JELNMOA3-ju5ngivZ.js} +1 -1
  26. package/dist/assets/{gitGraphDiagram-NY62KEGX-D_t8USew.js → gitGraphDiagram-NY62KEGX-Dht53fKp.js} +1 -1
  27. package/dist/assets/{graph-COFxMtkm.js → graph-D6yc6jiI.js} +1 -1
  28. package/dist/assets/index-C7i-9_Iw.js +627 -0
  29. package/dist/assets/{infoDiagram-WHAUD3N6-CpBAmPjl.js → infoDiagram-WHAUD3N6-Bb1tNLer.js} +1 -1
  30. package/dist/assets/{journeyDiagram-XKPGCS4Q-CiwEdjx0.js → journeyDiagram-XKPGCS4Q-Cf3WS18C.js} +1 -1
  31. package/dist/assets/{kanban-definition-3W4ZIXB7-CgC4pOLB.js → kanban-definition-3W4ZIXB7-BB0c0G_o.js} +1 -1
  32. package/dist/assets/{layout-BIqXr7Es.js → layout-CAedQ5Zv.js} +1 -1
  33. package/dist/assets/{linear-DWLI0cIY.js → linear-C47M_lA8.js} +1 -1
  34. package/dist/assets/{mermaid.core-DJGWCtK1.js → mermaid.core-BCDr3kzN.js} +4 -4
  35. package/dist/assets/{min-qICCPIxg.js → min-t5_2AkJI.js} +1 -1
  36. package/dist/assets/{mindmap-definition-VGOIOE7T-Bo6wCOCT.js → mindmap-definition-VGOIOE7T-CL9nrq8b.js} +1 -1
  37. package/dist/assets/{pieDiagram-ADFJNKIX-DxSe4S4a.js → pieDiagram-ADFJNKIX-Bw83QuMc.js} +1 -1
  38. package/dist/assets/{quadrantDiagram-AYHSOK5B-t-zq9Q95.js → quadrantDiagram-AYHSOK5B-m9BpII_o.js} +1 -1
  39. package/dist/assets/{requirementDiagram-UZGBJVZJ-LPeAOQMC.js → requirementDiagram-UZGBJVZJ-o0d3284T.js} +1 -1
  40. package/dist/assets/{sankeyDiagram-TZEHDZUN-DZG1Ttgz.js → sankeyDiagram-TZEHDZUN-CDsdqttT.js} +1 -1
  41. package/dist/assets/{sequenceDiagram-WL72ISMW-CLpM4tkT.js → sequenceDiagram-WL72ISMW-GhybhflJ.js} +1 -1
  42. package/dist/assets/{stateDiagram-FKZM4ZOC-Dmfi6h74.js → stateDiagram-FKZM4ZOC-BJJ7mYg5.js} +1 -1
  43. package/dist/assets/stateDiagram-v2-4FDKWEC3-BoFkuHgM.js +1 -0
  44. package/dist/assets/{timeline-definition-IT6M3QCI-CXL0cTol.js → timeline-definition-IT6M3QCI-Czhwj00y.js} +1 -1
  45. package/dist/assets/{treemap-KMMF4GRG-Rsm2bGS8.js → treemap-KMMF4GRG-hNxY_TJQ.js} +1 -1
  46. package/dist/assets/{xychartDiagram-PRI3JC2R-BwU4AVNw.js → xychartDiagram-PRI3JC2R-Dvy-a20y.js} +1 -1
  47. package/dist/index.html +193 -2
  48. package/package.json +1 -1
  49. package/dist/assets/channel-DWxbYHyw.js +0 -1
  50. package/dist/assets/classDiagram-2ON5EDUG-BlIZ7EkI.js +0 -1
  51. package/dist/assets/classDiagram-v2-WZHVMYZB-BlIZ7EkI.js +0 -1
  52. package/dist/assets/clone-Dy_aFtEK.js +0 -1
  53. package/dist/assets/index-0FTRNrJ2.js +0 -600
  54. package/dist/assets/stateDiagram-v2-4FDKWEC3-CnIglbTh.js +0 -1
@@ -0,0 +1,627 @@
1
+ (function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))n(d);new MutationObserver(d=>{for(const l of d)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function i(d){const l={};return d.integrity&&(l.integrity=d.integrity),d.referrerPolicy&&(l.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?l.credentials="include":d.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function n(d){if(d.ep)return;d.ep=!0;const l=i(d);fetch(d.href,l)}})();const Rn="modulepreload",On=function(e){return"/"+e},mt={},Ln=function(s,i,n){let d=Promise.resolve();if(i&&i.length>0){let o=function(g){return Promise.all(g.map(x=>Promise.resolve(x).then(w=>({status:"fulfilled",value:w}),w=>({status:"rejected",reason:w}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),c=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));d=o(i.map(g=>{if(g=On(g),g in mt)return;mt[g]=!0;const x=g.endsWith(".css"),w=x?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${g}"]${w}`))return;const h=document.createElement("link");if(h.rel=x?"stylesheet":Rn,x||(h.as="script"),h.crossOrigin="",h.href=g,c&&h.setAttribute("nonce",c),document.head.appendChild(h),x)return new Promise((T,$)=>{h.addEventListener("load",T),h.addEventListener("error",()=>$(new Error(`Unable to preload CSS for ${g}`)))})}))}function l(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return d.then(o=>{for(const a of o||[])a.status==="rejected"&&l(a.reason);return s().catch(l)})},Mn=/^### \[LOG-(\d+)\] - \[([^\]]+)\] - (.+)$/,In=/^(#{2,5}) (.+)$/,Cn=/~~.+~~/;function $n(e){const s=performance.now(),i=e.split(`
2
+ `),n=[],d=[];let l="GSD-Lite Worklog";for(let h=0;h<Math.min(10,i.length);h++)if(i[h].startsWith("# ")){l=i[h].slice(2).trim();break}let o=null,a=null,c=[],g=[],x=!1;for(let h=0;h<i.length;h++){const T=i[h],$=h+1,R=T.trim();if(R.startsWith("```")||R.startsWith("~~~")){x=!x,(o||a)&&c.push(T);continue}if(x){(o||a)&&c.push(T);continue}const D=T.match(Mn);if(D){o&&(o.content=c.join(`
3
+ `).trimEnd()),a&&(a.content=c.join(`
4
+ `).trimEnd(),a=null);const F=`LOG-${D[1]}`,L=D[2],b=D[3],m=Cn.test(b),S=b.match(/- Task: ([A-Z0-9-]+)/),H=S?S[1]:void 0,M=S?b.replace(/\s*- Task: [A-Z0-9-]+/,"").trim():b;o={id:F,type:L,title:M,task:H,superseded:m,lineNumber:$,level:3,content:"",children:[]},n.push(o),c=[],g=[{level:3,node:o}];continue}const P=T.match(In);if(P){const L=P[1].length,b=P[2],m={level:L,title:b,lineNumber:$,children:[]};if(L===2){o&&(o.content=c.join(`
5
+ `).trimEnd()),a&&(a.content=c.join(`
6
+ `).trimEnd()),d.push(m),g=[{level:2,node:m}],o=null,a=m,c=[];continue}if(L===3&&o===null){a&&(a.content=c.join(`
7
+ `).trimEnd()),d.push(m),g=[{level:3,node:m}],a=m,c=[];continue}if(L===3&&o!==null&&!D){o.content=c.join(`
8
+ `).trimEnd(),d.push(m),g=[{level:3,node:m}],o=null,a=m,c=[];continue}if(g.length>0){for(;g.length>0&&g[g.length-1].level>=L;)g.pop();g.length>0&&g[g.length-1].node.children.push(m),g.push({level:L,node:m})}o&&L>=4&&c.push(T);continue}(o||a)&&c.push(T)}o&&(o.content=c.join(`
9
+ `).trimEnd()),a&&(a.content=c.join(`
10
+ `).trimEnd());const w=Math.round(performance.now()-s);return{title:l,sections:d,logs:n,metadata:{totalLines:i.length,totalLogs:n.length,parseTime:w}}}function _e(e){let s=e;return s=s.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),s=s.replace(/\*(.+?)\*/g,"<em>$1</em>"),s=s.replace(/`([^`]+)`/g,"<code>$1</code>"),s=s.replace(/~~(.+?)~~/g,"<del>$1</del>"),s=s.replace(/\[(.+?)\]\((.+?)\)/g,'<a href="$2" target="_blank" rel="noopener">$1</a>'),s}function oe(e){const s={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return e.replace(/[&<>"']/g,i=>s[i])}function ke(e,s=!1){const i=`line-${e.lineNumber}`,n=e.children&&e.children.length>0;if(s){const d=e,l=d.superseded?" superseded":"",o=n?" has-children collapsed":"",a=n?'<span class="toggle-btn">▼</span>':"",c=n?`<ul class="outline-children">${d.children.map(g=>ke(g,!1)).join("")}</ul>`:"";return`
11
+ <li class="outline-item log-item${l}${o}">
12
+ <div class="outline-row">
13
+ ${a}
14
+ <a href="#${i}" class="outline-link">
15
+ <span class="badge badge-${d.type}">${d.type}</span>
16
+ <span class="log-id">${d.id}</span>
17
+ <span class="log-title">${oe(d.title)}</span>
18
+ </a>
19
+ </div>
20
+ ${c}
21
+ </li>
22
+ `}else{const d=e,l=`indent-${d.level}`,o=n?" has-children collapsed":"",a=n?'<span class="toggle-btn">▼</span>':"",c=n?`<ul class="outline-children">${d.children.map(g=>ke(g,!1)).join("")}</ul>`:"";return`
23
+ <li class="outline-item section-item ${l}${o}">
24
+ <div class="outline-row">
25
+ ${a}
26
+ <a href="#${i}" class="outline-link">${oe(d.title)}</a>
27
+ </div>
28
+ ${c}
29
+ </li>
30
+ `}}function Bn(e){const s=e.sections.map(n=>ke(n,!1)).join(""),i=[...e.logs].reverse().map(n=>ke(n,!0)).join("");return`
31
+ <nav class="outline" id="outline">
32
+ <div class="outline-header">
33
+ <span>📋 Outline</span>
34
+ <div class="outline-header-buttons">
35
+ <button class="expand-all-btn" id="expandAllBtn" title="Expand/Collapse All">⊞</button>
36
+ <button class="outline-close" id="outlineClose">✕</button>
37
+ </div>
38
+ </div>
39
+ <div class="outline-content">
40
+ <h3 class="outline-section-title">Sections</h3>
41
+ <ul class="outline-list">${s}</ul>
42
+ <h3 class="outline-section-title">Logs (${e.logs.length})</h3>
43
+ <ul class="outline-list">${i}</ul>
44
+ </div>
45
+ </nav>
46
+ `}function Dn(e){const s=e.sections.map(n=>ke(n,!1)).join(""),i=[...e.logs].reverse().map(n=>ke(n,!0)).join("");return`
47
+ <div class="sheet-overlay" id="sheetOverlay"></div>
48
+ <!-- Peek handle: always visible at bottom edge when sheet is collapsed -->
49
+ <div class="sheet-peek-handle" id="sheetPeekHandle">
50
+ <div class="peek-bar"></div>
51
+ </div>
52
+ <div class="outline-sheet snap-collapsed" id="outlineSheet">
53
+ <div class="sheet-drag-handle" id="sheetDragHandle">
54
+ <div class="sheet-drag-bar"></div>
55
+ </div>
56
+ <div class="sheet-header">
57
+ <span class="sheet-title">📋 Outline</span>
58
+ <div class="sheet-header-buttons">
59
+ <button class="expand-all-btn" id="sheetExpandAllBtn" title="Expand/Collapse All">⊞</button>
60
+ <button class="sheet-close-btn" id="sheetClose">✕</button>
61
+ </div>
62
+ </div>
63
+ <div class="sheet-content">
64
+ <h3 class="outline-section-title">Sections</h3>
65
+ <ul class="outline-list">${s}</ul>
66
+ <h3 class="outline-section-title">Logs (${e.logs.length})</h3>
67
+ <ul class="outline-list">${i}</ul>
68
+ </div>
69
+ </div>
70
+ `}function Et(e,s=1){const i=e.split(`
71
+ `),n=[];let d=!1,l="",o=[],a=!1,c=!1,g="ul";for(let x=0;x<i.length;x++){const w=i[x],h=s+x,T=`id="line-${h}"`,$=w.trim();if($.startsWith("```")||$.startsWith("~~~")){if(!d)a&&(n.push("</tbody></table>"),a=!1),c&&(n.push(g==="ul"?"</ul>":"</ol>"),c=!1),d=!0,l=$.slice(3).trim(),o=[];else{d=!1;const L=oe(o.join(`
72
+ `));if(l==="mermaid"){const b=h-o.length;n.push(`
73
+ <div class="mermaid-wrapper" data-start-line="${b}">
74
+ <pre class="mermaid-source" style="display:none">${L}</pre>
75
+ </div>
76
+ `)}else{const b=l?` class="language-${l}"`:"";n.push(`<pre><code${b}>${L}</code></pre>`)}}continue}if(d){o.push(w);continue}const R=w.match(/^(#{1,5}) (.+)$/);if(R){a&&(n.push("</tbody></table>"),a=!1),c&&(n.push(g==="ul"?"</ul>":"</ol>"),c=!1);const L=R[1].length,b=R[2],m=_e(oe(b)),S=L>=4?` data-section-title="${oe(b)}"`:"";n.push(`<h${L} ${T}${S}>${m}</h${L}>`);continue}if(/^---+$/.test(w)){a&&(n.push("</tbody></table>"),a=!1),c&&(n.push(g==="ul"?"</ul>":"</ol>"),c=!1),n.push("<hr>");continue}if(!w.trim()){a&&(n.push("</tbody></table>"),a=!1),c&&(n.push(g==="ul"?"</ul>":"</ol>"),c=!1);continue}if(w.includes("|")&&w.trim().startsWith("|")){const L=w.split("|").slice(1,-1).map(b=>b.trim());if(L.every(b=>/^:?-+:?$/.test(b)))continue;if(a){const b=L.map(m=>`<td>${_e(oe(m))}</td>`).join("");n.push(`<tr>${b}</tr>`)}else{c&&(n.push(g==="ul"?"</ul>":"</ol>"),c=!1),n.push("<table><thead><tr>");const b=L.map(m=>`<th>${_e(oe(m))}</th>`).join("");n.push(`${b}</tr></thead><tbody>`),a=!0}continue}a&&(n.push("</tbody></table>"),a=!1);const D=w.match(/^(\s*)[-*+] (.+)$/);if(D){(!c||g!=="ul")&&(c&&n.push("</ol>"),n.push("<ul>"),c=!0,g="ul"),n.push(`<li>${_e(oe(D[2]))}</li>`);continue}const P=w.match(/^(\s*)\d+\. (.+)$/);if(P){(!c||g!=="ol")&&(c&&n.push("</ul>"),n.push("<ol>"),c=!0,g="ol"),n.push(`<li>${_e(oe(P[2]))}</li>`);continue}if(c&&(n.push(g==="ul"?"</ul>":"</ol>"),c=!1),w.startsWith("> ")){n.push(`<blockquote ${T}>${_e(oe(w.slice(2)))}</blockquote>`);continue}const F=_e(oe(w));n.push(`<p ${T}>${F}</p>`)}return a&&n.push("</tbody></table>"),c&&n.push(g==="ul"?"</ul>":"</ol>"),n.join(`
77
+ `)}function Pn(e){const s=e.content?Et(e.content,e.lineNumber+1):"";return`
78
+ <section class="worklog-section ${`section-h${e.level}`}" id="line-${e.lineNumber}" data-section-title="${oe(e.title)}">
79
+ <h${e.level} class="section-title">${_e(oe(e.title))}</h${e.level}>
80
+ <div class="section-content">
81
+ ${s}
82
+ </div>
83
+ </section>
84
+ `}function Un(e){const s=Et(e.content,e.lineNumber+1);return`
85
+ <article class="log-entry${e.superseded?" superseded":""}" id="line-${e.lineNumber}" data-section-title="${oe(e.id+": "+e.title)}">
86
+ <header class="log-header">
87
+ <span class="log-badge">${e.id}</span>
88
+ <span class="log-type badge-${e.type}">${e.type}</span>
89
+ ${e.task?`<span class="log-task">${e.task}</span>`:""}
90
+ </header>
91
+ <h2 class="log-title">${_e(oe(e.title))}</h2>
92
+ <div class="log-content">
93
+ ${s}
94
+ </div>
95
+ </article>
96
+ `}function zn(e){const s=Bn(e),i=Dn(e),n=[...e.sections.map(o=>({type:"section",lineNumber:o.lineNumber,item:o})),...e.logs.map(o=>({type:"log",lineNumber:o.lineNumber,item:o}))];n.sort((o,a)=>o.lineNumber-a.lineNumber);const d=n.map(({type:o,item:a})=>o==="section"?Pn(a):Un(a)).join("");return`
97
+ <!-- Top Bar -->
98
+ <header class="top-bar">
99
+ <button class="btn-outline-toggle" id="outlineToggle">📋</button>
100
+ <span class="top-bar-title">GSD-Lite Worklog</span>
101
+ <button class="btn-jump-latest" id="jumpLatest" data-line="${e.logs.length>0?e.logs[e.logs.length-1].lineNumber:1}">⬇ Latest</button>
102
+ </header>
103
+
104
+ <!-- Sticky Breadcrumb (shows current position while scrolling) -->
105
+ <nav class="breadcrumb" id="breadcrumb">
106
+ <span class="breadcrumb-text">GSD-Lite Worklog</span>
107
+ </nav>
108
+
109
+ <!-- Outline Panel (Desktop) -->
110
+ ${s}
111
+
112
+ <!-- Bottom Sheet (Mobile) -->
113
+ ${i}
114
+
115
+ <!-- Overlay (mobile - for desktop sidebar) -->
116
+ <div class="overlay" id="overlay"></div>
117
+
118
+ <!-- Main Content -->
119
+ <main class="content" id="content">
120
+ ${d}
121
+ </main>
122
+
123
+ <!-- Mobile Scroll Thumb -->
124
+ <div class="scroll-thumb" id="scrollThumb">
125
+ <div class="thumb-icon">↕</div>
126
+ </div>
127
+
128
+ <!-- Stats Footer -->
129
+ <div class="stats-footer">
130
+ ${e.metadata.totalLogs} logs · ${e.metadata.totalLines} lines · ${e.metadata.parseTime}ms
131
+ </div>
132
+ `}function Hn(){const e=document.getElementById("outline"),s=document.getElementById("overlay"),i=document.getElementById("content"),n=document.getElementById("breadcrumb"),d=document.getElementById("outlineToggle"),l=document.getElementById("outlineClose"),o=document.getElementById("expandAllBtn"),a=document.getElementById("jumpLatest"),c=document.getElementById("scrollThumb");if(!e||!s||!i)return;let g=!1;function x(){var M;const b=window.innerWidth<768,m=b?document.querySelector("#outlineSheet .sheet-content"):document.querySelector("#outline");if(!m)return;const S=m.querySelector(".outline-link.active");if(!S)return;let H=S.closest(".outline-item");for(;H;){const U=(M=H.parentElement)==null?void 0:M.closest(".outline-item");U&&U.classList.remove("collapsed"),H=U??null}setTimeout(()=>{const U=b?"start":"center";S.scrollIntoView({behavior:"instant",block:U})},50)}function w(){if(window.innerWidth>=768){const b=e.classList.contains("hidden");e.classList.toggle("hidden"),i.classList.toggle("full-width"),n==null||n.classList.toggle("full-width"),b&&setTimeout(()=>x(),350)}}if(l==null||l.addEventListener("click",w),s==null||s.addEventListener("click",w),a==null||a.addEventListener("click",()=>{var m;const b=a.dataset.line;b&&((m=document.getElementById(`line-${b}`))==null||m.scrollIntoView({behavior:"smooth"}))}),o==null||o.addEventListener("click",()=>{const b=document.querySelectorAll(".outline-item.has-children");g?(b.forEach(m=>m.classList.add("collapsed")),o.textContent="⊞",o.title="Expand All"):(b.forEach(m=>m.classList.remove("collapsed")),o.textContent="⊟",o.title="Collapse All"),g=!g}),document.querySelectorAll(".toggle-btn").forEach(b=>{b.addEventListener("click",m=>{m.stopPropagation();const S=b.closest(".outline-item");if(!S)return;S.classList.contains("collapsed")?S.classList.remove("collapsed"):(S.classList.add("collapsed"),S.querySelectorAll(".outline-item.has-children").forEach(M=>{M.classList.add("collapsed")}))}),b.addEventListener("dblclick",m=>{m.stopPropagation();const S=b.closest(".outline-item");S&&(S.classList.remove("collapsed"),S.querySelectorAll(".outline-item.has-children").forEach(H=>{H.classList.remove("collapsed")}))})}),document.querySelectorAll(".outline-link").forEach(b=>{b.addEventListener("click",()=>{window.innerWidth<768&&(e.classList.remove("open"),s.classList.remove("visible"))})}),c){let b=function(){if(!c)return;const M=window.scrollY,U=document.documentElement.scrollHeight-window.innerHeight,z=window.innerHeight-120,j=60+M/U*z;c.style.top=`${j}px`},m=!1,S=0,H=0;c.addEventListener("touchstart",M=>{m=!0,S=M.touches[0].clientY,H=window.scrollY,c.style.background="rgba(26, 26, 46, 0.95)"}),document.addEventListener("touchmove",M=>{if(!m)return;const U=M.touches[0].clientY-S,z=document.documentElement.scrollHeight-window.innerHeight,j=window.innerHeight-120,ie=U/j*z;window.scrollTo(0,H+ie)}),document.addEventListener("touchend",()=>{m=!1,c.style.background="rgba(26, 26, 46, 0.8)"}),window.addEventListener("scroll",b),b()}const h=document.getElementById("outlineSheet"),T=document.getElementById("sheetOverlay"),$=document.getElementById("sheetDragHandle"),R=document.getElementById("sheetClose"),D=document.getElementById("sheetExpandAllBtn"),P=document.getElementById("sheetPeekHandle");if(h&&T&&$){let b=function(z){const j=m==="collapsed";m=z,h.classList.remove("snap-collapsed","snap-half","snap-full"),h.classList.add(`snap-${z}`),T.classList.toggle("visible",z!=="collapsed"),P&&P.classList.toggle("hidden",z!=="collapsed"),j&&z!=="collapsed"&&setTimeout(()=>x(),350)},m="collapsed",S=!1;R==null||R.addEventListener("click",()=>b("collapsed")),T.addEventListener("click",()=>b("collapsed")),D==null||D.addEventListener("click",()=>{const z=h.querySelectorAll(".outline-item.has-children");S?(z.forEach(j=>j.classList.add("collapsed")),D.textContent="⊞"):(z.forEach(j=>j.classList.remove("collapsed")),D.textContent="⊟"),S=!S});let H=0,M=0,U=!1;$.addEventListener("touchstart",z=>{U=!0,H=z.touches[0].clientY,M=H,h.style.transition="none"}),P&&(P.addEventListener("touchstart",z=>{U=!0,H=z.touches[0].clientY,M=H,h.style.transition="none",h.style.transform="translateY(95%)"}),P.addEventListener("click",()=>{m==="collapsed"&&b("half")})),document.addEventListener("touchmove",z=>{if(!U)return;M=z.touches[0].clientY;const j=M-H;let ie;switch(m){case"collapsed":ie=100;break;case"half":ie=50;break;case"full":ie=15;break}const me=j/window.innerHeight*100,le=Math.max(15,Math.min(100,ie+me));h.style.transform=`translateY(${le}%)`}),document.addEventListener("touchend",()=>{if(!U)return;U=!1,h.style.transition="",h.style.transform="";const z=M-H,j=50;z<-j?m==="collapsed"?b("half"):m==="half"&&b("full"):z>j&&(m==="full"?b("half"):m==="half"&&b("collapsed"))}),d&&d.addEventListener("click",()=>{window.innerWidth<768?b(m==="collapsed"?"half":"collapsed"):w()})}const F=n==null?void 0:n.querySelector(".breadcrumb-text"),L=document.querySelectorAll("[data-section-title]");if(L.length>0&&F){let b=function(){let M=null;for(let K=0;K<L.length;K++){const re=L[K];if(re.getBoundingClientRect().top<=S)M=re;else break}if(!M&&L.length>0&&(M=L[0]),!M)return;const U=M.id;if(U===m)return;m=U;let z=M.dataset.sectionTitle||"GSD-Lite Worklog";const j=M.closest(".log-entry");j&&j!==M&&(z=j.dataset.sectionTitle||z),F.textContent=z,document.querySelectorAll(".outline-link").forEach(K=>{K.classList.remove("active")});let ie=document.querySelectorAll(`.outline-link[href="#${U}"]`);if(ie.length===0&&j){const K=j.id;ie=document.querySelectorAll(`.outline-link[href="#${K}"]`)}ie.forEach(K=>{var C;K.classList.add("active");let re=K.closest(".outline-item");for(;re;){const Q=(C=re.parentElement)==null?void 0:C.closest(".outline-item");Q&&Q.classList.remove("collapsed"),re=Q??null}});const me=document.querySelector("#outline:not(.hidden)"),le=document.querySelector("#outlineSheet:not(.snap-collapsed) .sheet-content"),he=me||le;if(he){const K=he.querySelector(".outline-link.active");if(K){const re=K.getBoundingClientRect(),C=he.getBoundingClientRect();(re.top<C.top||re.bottom>C.bottom)&&K.scrollIntoView({behavior:"smooth",block:"center"})}}},m=null;const S=96;let H=!1;window.addEventListener("scroll",()=>{H||(H=!0,requestAnimationFrame(()=>{b(),H=!1}))},{passive:!0}),b()}}const N={isOpen:!1,zoom:1,panX:0,panY:0,isDragging:!1,dragStartX:0,dragStartY:0,lastPanX:0,lastPanY:0},_t=.25,yt=4,Ue=.25;let ae=null,J=null,Le=null,Ve=null;function Gn(){ae||(ae=document.createElement("div"),ae.id="diagram-overlay",ae.innerHTML=`
133
+ <style>
134
+ #diagram-overlay {
135
+ position: fixed;
136
+ top: 0;
137
+ left: 0;
138
+ right: 0;
139
+ bottom: 0;
140
+ background: rgba(0, 0, 0, 0.9);
141
+ z-index: 3000;
142
+ display: none;
143
+ flex-direction: column;
144
+ opacity: 0;
145
+ transition: opacity 0.2s ease;
146
+ }
147
+ #diagram-overlay.visible {
148
+ display: flex;
149
+ opacity: 1;
150
+ }
151
+
152
+ /* Header bar */
153
+ .diagram-overlay-header {
154
+ display: flex;
155
+ align-items: center;
156
+ justify-content: space-between;
157
+ padding: 12px 16px;
158
+ background: rgba(0, 0, 0, 0.5);
159
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
160
+ }
161
+ .diagram-overlay-title {
162
+ color: white;
163
+ font-size: 14px;
164
+ font-weight: 500;
165
+ display: flex;
166
+ align-items: center;
167
+ gap: 8px;
168
+ }
169
+ .diagram-overlay-controls {
170
+ display: flex;
171
+ align-items: center;
172
+ gap: 8px;
173
+ }
174
+ .diagram-overlay-btn {
175
+ background: rgba(255, 255, 255, 0.1);
176
+ border: 1px solid rgba(255, 255, 255, 0.2);
177
+ color: white;
178
+ padding: 8px 12px;
179
+ border-radius: 6px;
180
+ cursor: pointer;
181
+ font-size: 14px;
182
+ transition: background 0.15s ease;
183
+ display: flex;
184
+ align-items: center;
185
+ gap: 4px;
186
+ }
187
+ .diagram-overlay-btn:hover {
188
+ background: rgba(255, 255, 255, 0.2);
189
+ }
190
+ .diagram-overlay-btn:active {
191
+ background: rgba(255, 255, 255, 0.3);
192
+ }
193
+ .diagram-overlay-btn.close {
194
+ background: rgba(233, 69, 96, 0.3);
195
+ border-color: rgba(233, 69, 96, 0.5);
196
+ }
197
+ .diagram-overlay-btn.close:hover {
198
+ background: rgba(233, 69, 96, 0.5);
199
+ }
200
+ .zoom-display {
201
+ color: rgba(255, 255, 255, 0.7);
202
+ font-size: 12px;
203
+ min-width: 50px;
204
+ text-align: center;
205
+ font-family: monospace;
206
+ }
207
+
208
+ /* Container */
209
+ .diagram-overlay-container {
210
+ flex: 1;
211
+ overflow: hidden;
212
+ cursor: grab;
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ }
217
+ .diagram-overlay-container.dragging {
218
+ cursor: grabbing;
219
+ }
220
+
221
+ /* SVG Wrapper */
222
+ .diagram-svg-wrapper {
223
+ transform-origin: center center;
224
+ transition: transform 0.1s ease;
225
+ background: white;
226
+ border-radius: 8px;
227
+ padding: 20px;
228
+ box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
229
+ }
230
+ .diagram-svg-wrapper svg {
231
+ display: block;
232
+ max-width: none !important;
233
+ max-height: none !important;
234
+ }
235
+
236
+ /* Help text */
237
+ .diagram-overlay-help {
238
+ position: absolute;
239
+ bottom: 16px;
240
+ left: 50%;
241
+ transform: translateX(-50%);
242
+ color: rgba(255, 255, 255, 0.5);
243
+ font-size: 12px;
244
+ pointer-events: none;
245
+ }
246
+
247
+ /* Mobile adjustments */
248
+ @media (max-width: 600px) {
249
+ .diagram-overlay-header {
250
+ padding: 8px 12px;
251
+ }
252
+ .diagram-overlay-btn {
253
+ padding: 6px 10px;
254
+ font-size: 12px;
255
+ }
256
+ .diagram-overlay-help {
257
+ font-size: 10px;
258
+ }
259
+ }
260
+ </style>
261
+
262
+ <div class="diagram-overlay-header">
263
+ <div class="diagram-overlay-title">
264
+ 📊 Diagram Viewer
265
+ </div>
266
+ <div class="diagram-overlay-controls">
267
+ <button class="diagram-overlay-btn" id="diagram-zoom-out" title="Zoom Out">−</button>
268
+ <span class="zoom-display" id="diagram-zoom-display">100%</span>
269
+ <button class="diagram-overlay-btn" id="diagram-zoom-in" title="Zoom In">+</button>
270
+ <button class="diagram-overlay-btn" id="diagram-reset" title="Reset View">⟲</button>
271
+ <button class="diagram-overlay-btn close" id="diagram-close" title="Close (ESC)">✕</button>
272
+ </div>
273
+ </div>
274
+
275
+ <div class="diagram-overlay-container" id="diagram-container">
276
+ <div class="diagram-svg-wrapper" id="diagram-svg-wrapper"></div>
277
+ </div>
278
+
279
+ <div class="diagram-overlay-help">
280
+ Scroll to zoom · Drag to pan · ESC to close
281
+ </div>
282
+ `,document.body.appendChild(ae),J=document.getElementById("diagram-container"),Le=document.getElementById("diagram-svg-wrapper"),Ve=document.getElementById("diagram-zoom-display"),jn())}function jn(){var s,i,n,d;if(!ae||!J)return;(s=document.getElementById("diagram-close"))==null||s.addEventListener("click",Ze),(i=document.getElementById("diagram-zoom-in"))==null||i.addEventListener("click",()=>qe(Ue)),(n=document.getElementById("diagram-zoom-out"))==null||n.addEventListener("click",()=>qe(-Ue)),(d=document.getElementById("diagram-reset"))==null||d.addEventListener("click",Kn),document.addEventListener("keydown",l=>{l.key==="Escape"&&N.isOpen&&Ze()}),ae.addEventListener("click",l=>{l.target===J&&Ze()}),J.addEventListener("wheel",l=>{l.preventDefault();const o=l.deltaY>0?-Ue:Ue;qe(o)},{passive:!1}),J.addEventListener("mousedown",Fn),document.addEventListener("mousemove",Wn),document.addEventListener("mouseup",Yn);let e=0;J.addEventListener("touchstart",l=>{if(l.touches.length===1){const o=l.touches[0];N.isDragging=!0,N.dragStartX=o.clientX,N.dragStartY=o.clientY,N.lastPanX=N.panX,N.lastPanY=N.panY,J==null||J.classList.add("dragging")}else if(l.touches.length===2){const o=l.touches[0].clientX-l.touches[1].clientX,a=l.touches[0].clientY-l.touches[1].clientY;e=Math.sqrt(o*o+a*a),(l.touches[0].clientX+l.touches[1].clientX)/2,(l.touches[0].clientY+l.touches[1].clientY)/2}},{passive:!0}),J.addEventListener("touchmove",l=>{if(l.touches.length===1&&N.isDragging){const o=l.touches[0],a=o.clientX-N.dragStartX,c=o.clientY-N.dragStartY;N.panX=N.lastPanX+a,N.panY=N.lastPanY+c,Re()}else if(l.touches.length===2){l.preventDefault();const o=l.touches[0].clientX-l.touches[1].clientX,a=l.touches[0].clientY-l.touches[1].clientY,c=Math.sqrt(o*o+a*a);if(e>0){const g=c/e,x=Math.max(_t,Math.min(yt,N.zoom*g));N.zoom=x,Re()}e=c}},{passive:!1}),J.addEventListener("touchend",()=>{N.isDragging=!1,e=0,J==null||J.classList.remove("dragging")})}function Fn(e){e.button===0&&(N.isDragging=!0,N.dragStartX=e.clientX,N.dragStartY=e.clientY,N.lastPanX=N.panX,N.lastPanY=N.panY,J==null||J.classList.add("dragging"))}function Wn(e){if(!N.isDragging)return;const s=e.clientX-N.dragStartX,i=e.clientY-N.dragStartY;N.panX=N.lastPanX+s,N.panY=N.lastPanY+i,Re()}function Yn(){N.isDragging=!1,J==null||J.classList.remove("dragging")}function qe(e){const s=Math.max(_t,Math.min(yt,N.zoom+e));N.zoom=s,Re()}function Kn(){N.zoom=1,N.panX=0,N.panY=0,Re()}function Re(){!Le||!Ve||(Le.style.transform=`translate(${N.panX}px, ${N.panY}px) scale(${N.zoom})`,Ve.textContent=`${Math.round(N.zoom*100)}%`)}function qn(e){Gn(),!(!ae||!Le)&&(N.zoom=1,N.panX=0,N.panY=0,N.isDragging=!1,Le.innerHTML=e,Re(),ae.style.display="flex",ae.offsetHeight,ae.classList.add("visible"),N.isOpen=!0,document.body.style.overflow="hidden")}function Ze(){ae&&(ae.classList.remove("visible"),N.isOpen=!1,document.body.style.overflow="",setTimeout(()=>{ae&&(ae.style.display="none")},200))}function Zn(){document.querySelectorAll(".mermaid-container").forEach(s=>{s.style.cursor="zoom-in",s.setAttribute("title","Click to expand"),s.addEventListener("click",()=>{const i=s.querySelector("svg");i&&qn(i.outerHTML)})})}function Xn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Xe,ht;function Vn(){if(ht)return Xe;ht=1;function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(r=>{const p=t[r],k=typeof p;(k==="object"||k==="function")&&!Object.isFrozen(p)&&e(p)}),t}class s{constructor(r){r.data===void 0&&(r.data={}),this.data=r.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function i(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function n(t,...r){const p=Object.create(null);for(const k in t)p[k]=t[k];return r.forEach(function(k){for(const q in k)p[q]=k[q]}),p}const d="</span>",l=t=>!!t.scope,o=(t,{prefix:r})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const p=t.split(".");return[`${r}${p.shift()}`,...p.map((k,q)=>`${k}${"_".repeat(q+1)}`)].join(" ")}return`${r}${t}`};class a{constructor(r,p){this.buffer="",this.classPrefix=p.classPrefix,r.walk(this)}addText(r){this.buffer+=i(r)}openNode(r){if(!l(r))return;const p=o(r.scope,{prefix:this.classPrefix});this.span(p)}closeNode(r){l(r)&&(this.buffer+=d)}value(){return this.buffer}span(r){this.buffer+=`<span class="${r}">`}}const c=(t={})=>{const r={children:[]};return Object.assign(r,t),r};class g{constructor(){this.rootNode=c(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(r){this.top.children.push(r)}openNode(r){const p=c({scope:r});this.add(p),this.stack.push(p)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(r){return this.constructor._walk(r,this.rootNode)}static _walk(r,p){return typeof p=="string"?r.addText(p):p.children&&(r.openNode(p),p.children.forEach(k=>this._walk(r,k)),r.closeNode(p)),r}static _collapse(r){typeof r!="string"&&r.children&&(r.children.every(p=>typeof p=="string")?r.children=[r.children.join("")]:r.children.forEach(p=>{g._collapse(p)}))}}class x extends g{constructor(r){super(),this.options=r}addText(r){r!==""&&this.add(r)}startScope(r){this.openNode(r)}endScope(){this.closeNode()}__addSublanguage(r,p){const k=r.root;p&&(k.scope=`language:${p}`),this.add(k)}toHTML(){return new a(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function w(t){return t?typeof t=="string"?t:t.source:null}function h(t){return R("(?=",t,")")}function T(t){return R("(?:",t,")*")}function $(t){return R("(?:",t,")?")}function R(...t){return t.map(p=>w(p)).join("")}function D(t){const r=t[t.length-1];return typeof r=="object"&&r.constructor===Object?(t.splice(t.length-1,1),r):{}}function P(...t){return"("+(D(t).capture?"":"?:")+t.map(k=>w(k)).join("|")+")"}function F(t){return new RegExp(t.toString()+"|").exec("").length-1}function L(t,r){const p=t&&t.exec(r);return p&&p.index===0}const b=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function m(t,{joinWith:r}){let p=0;return t.map(k=>{p+=1;const q=p;let Z=w(k),_="";for(;Z.length>0;){const E=b.exec(Z);if(!E){_+=Z;break}_+=Z.substring(0,E.index),Z=Z.substring(E.index+E[0].length),E[0][0]==="\\"&&E[1]?_+="\\"+String(Number(E[1])+q):(_+=E[0],E[0]==="("&&p++)}return _}).map(k=>`(${k})`).join(r)}const S=/\b\B/,H="[a-zA-Z]\\w*",M="[a-zA-Z_]\\w*",U="\\b\\d+(\\.\\d+)?",z="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",j="\\b(0b[01]+)",ie="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",me=(t={})=>{const r=/^#![ ]*\//;return t.binary&&(t.begin=R(r,/.*\b/,t.binary,/\b.*/)),n({scope:"meta",begin:r,end:/$/,relevance:0,"on:begin":(p,k)=>{p.index!==0&&k.ignoreMatch()}},t)},le={begin:"\\\\[\\s\\S]",relevance:0},he={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[le]},K={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[le]},re={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},C=function(t,r,p={}){const k=n({scope:"comment",begin:t,end:r,contains:[]},p);k.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const q=P("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return k.contains.push({begin:R(/[ ]+/,"(",q,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),k},Q=C("//","$"),ce=C("/\\*","\\*/"),ue=C("#","$"),be={scope:"number",begin:U,relevance:0},we={scope:"number",begin:z,relevance:0},Ut={scope:"number",begin:j,relevance:0},zt={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[le,{begin:/\[/,end:/\]/,relevance:0,contains:[le]}]},Ht={scope:"title",begin:H,relevance:0},Gt={scope:"title",begin:M,relevance:0},jt={begin:"\\.\\s*"+M,relevance:0};var Me=Object.freeze({__proto__:null,APOS_STRING_MODE:he,BACKSLASH_ESCAPE:le,BINARY_NUMBER_MODE:Ut,BINARY_NUMBER_RE:j,COMMENT:C,C_BLOCK_COMMENT_MODE:ce,C_LINE_COMMENT_MODE:Q,C_NUMBER_MODE:we,C_NUMBER_RE:z,END_SAME_AS_BEGIN:function(t){return Object.assign(t,{"on:begin":(r,p)=>{p.data._beginMatch=r[1]},"on:end":(r,p)=>{p.data._beginMatch!==r[1]&&p.ignoreMatch()}})},HASH_COMMENT_MODE:ue,IDENT_RE:H,MATCH_NOTHING_RE:S,METHOD_GUARD:jt,NUMBER_MODE:be,NUMBER_RE:U,PHRASAL_WORDS_MODE:re,QUOTE_STRING_MODE:K,REGEXP_MODE:zt,RE_STARTERS_RE:ie,SHEBANG:me,TITLE_MODE:Ht,UNDERSCORE_IDENT_RE:M,UNDERSCORE_TITLE_MODE:Gt});function Ft(t,r){t.input[t.index-1]==="."&&r.ignoreMatch()}function Wt(t,r){t.className!==void 0&&(t.scope=t.className,delete t.className)}function Yt(t,r){r&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=Ft,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function Kt(t,r){Array.isArray(t.illegal)&&(t.illegal=P(...t.illegal))}function qt(t,r){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function Zt(t,r){t.relevance===void 0&&(t.relevance=1)}const Xt=(t,r)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const p=Object.assign({},t);Object.keys(t).forEach(k=>{delete t[k]}),t.keywords=p.keywords,t.begin=R(p.beforeMatch,h(p.begin)),t.starts={relevance:0,contains:[Object.assign(p,{endsParent:!0})]},t.relevance=0,delete p.beforeMatch},Vt=["of","and","for","in","not","or","if","then","parent","list","value"],Jt="keyword";function Qe(t,r,p=Jt){const k=Object.create(null);return typeof t=="string"?q(p,t.split(" ")):Array.isArray(t)?q(p,t):Object.keys(t).forEach(function(Z){Object.assign(k,Qe(t[Z],r,Z))}),k;function q(Z,_){r&&(_=_.map(E=>E.toLowerCase())),_.forEach(function(E){const A=E.split("|");k[A[0]]=[Z,Qt(A[0],A[1])]})}}function Qt(t,r){return r?Number(r):en(t)?0:1}function en(t){return Vt.includes(t.toLowerCase())}const et={},Se=t=>{console.error(t)},tt=(t,...r)=>{console.log(`WARN: ${t}`,...r)},Te=(t,r)=>{et[`${t}/${r}`]||(console.log(`Deprecated as of ${t}. ${r}`),et[`${t}/${r}`]=!0)},Ie=new Error;function nt(t,r,{key:p}){let k=0;const q=t[p],Z={},_={};for(let E=1;E<=r.length;E++)_[E+k]=q[E],Z[E+k]=!0,k+=F(r[E-1]);t[p]=_,t[p]._emit=Z,t[p]._multi=!0}function tn(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw Se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ie;if(typeof t.beginScope!="object"||t.beginScope===null)throw Se("beginScope must be object"),Ie;nt(t,t.begin,{key:"beginScope"}),t.begin=m(t.begin,{joinWith:""})}}function nn(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw Se("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ie;if(typeof t.endScope!="object"||t.endScope===null)throw Se("endScope must be object"),Ie;nt(t,t.end,{key:"endScope"}),t.end=m(t.end,{joinWith:""})}}function sn(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function rn(t){sn(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),tn(t),nn(t)}function on(t){function r(_,E){return new RegExp(w(_),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(E?"g":""))}class p{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(E,A){A.position=this.position++,this.matchIndexes[this.matchAt]=A,this.regexes.push([A,E]),this.matchAt+=F(E)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const E=this.regexes.map(A=>A[1]);this.matcherRe=r(m(E,{joinWith:"|"}),!0),this.lastIndex=0}exec(E){this.matcherRe.lastIndex=this.lastIndex;const A=this.matcherRe.exec(E);if(!A)return null;const te=A.findIndex((Oe,Ge)=>Ge>0&&Oe!==void 0),V=this.matchIndexes[te];return A.splice(0,te),Object.assign(A,V)}}class k{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(E){if(this.multiRegexes[E])return this.multiRegexes[E];const A=new p;return this.rules.slice(E).forEach(([te,V])=>A.addRule(te,V)),A.compile(),this.multiRegexes[E]=A,A}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(E,A){this.rules.push([E,A]),A.type==="begin"&&this.count++}exec(E){const A=this.getMatcher(this.regexIndex);A.lastIndex=this.lastIndex;let te=A.exec(E);if(this.resumingScanAtSamePosition()&&!(te&&te.index===this.lastIndex)){const V=this.getMatcher(0);V.lastIndex=this.lastIndex+1,te=V.exec(E)}return te&&(this.regexIndex+=te.position+1,this.regexIndex===this.count&&this.considerAll()),te}}function q(_){const E=new k;return _.contains.forEach(A=>E.addRule(A.begin,{rule:A,type:"begin"})),_.terminatorEnd&&E.addRule(_.terminatorEnd,{type:"end"}),_.illegal&&E.addRule(_.illegal,{type:"illegal"}),E}function Z(_,E){const A=_;if(_.isCompiled)return A;[Wt,qt,rn,Xt].forEach(V=>V(_,E)),t.compilerExtensions.forEach(V=>V(_,E)),_.__beforeBegin=null,[Yt,Kt,Zt].forEach(V=>V(_,E)),_.isCompiled=!0;let te=null;return typeof _.keywords=="object"&&_.keywords.$pattern&&(_.keywords=Object.assign({},_.keywords),te=_.keywords.$pattern,delete _.keywords.$pattern),te=te||/\w+/,_.keywords&&(_.keywords=Qe(_.keywords,t.case_insensitive)),A.keywordPatternRe=r(te,!0),E&&(_.begin||(_.begin=/\B|\b/),A.beginRe=r(A.begin),!_.end&&!_.endsWithParent&&(_.end=/\B|\b/),_.end&&(A.endRe=r(A.end)),A.terminatorEnd=w(A.end)||"",_.endsWithParent&&E.terminatorEnd&&(A.terminatorEnd+=(_.end?"|":"")+E.terminatorEnd)),_.illegal&&(A.illegalRe=r(_.illegal)),_.contains||(_.contains=[]),_.contains=[].concat(..._.contains.map(function(V){return an(V==="self"?_:V)})),_.contains.forEach(function(V){Z(V,A)}),_.starts&&Z(_.starts,E),A.matcher=q(A),A}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=n(t.classNameAliases||{}),Z(t)}function it(t){return t?t.endsWithParent||it(t.starts):!1}function an(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(r){return n(t,{variants:null},r)})),t.cachedVariants?t.cachedVariants:it(t)?n(t,{starts:t.starts?n(t.starts):null}):Object.isFrozen(t)?n(t):t}var ln="11.11.1";class cn extends Error{constructor(r,p){super(r),this.name="HTMLInjectionError",this.html=p}}const He=i,st=n,rt=Symbol("nomatch"),dn=7,ot=function(t){const r=Object.create(null),p=Object.create(null),k=[];let q=!0;const Z="Could not find the language '{}', did you forget to load/include a language module?",_={disableAutodetect:!0,name:"Plain text",contains:[]};let E={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:x};function A(u){return E.noHighlightRe.test(u)}function te(u){let v=u.className+" ";v+=u.parentNode?u.parentNode.className:"";const B=E.languageDetectRe.exec(v);if(B){const W=ye(B[1]);return W||(tt(Z.replace("{}",B[1])),tt("Falling back to no-highlight mode for this block.",u)),W?B[1]:"no-highlight"}return v.split(/\s+/).find(W=>A(W)||ye(W))}function V(u,v,B){let W="",ee="";typeof v=="object"?(W=u,B=v.ignoreIllegals,ee=v.language):(Te("10.7.0","highlight(lang, code, ...args) has been deprecated."),Te("10.7.0",`Please use highlight(code, options) instead.
283
+ https://github.com/highlightjs/highlight.js/issues/2277`),ee=u,W=v),B===void 0&&(B=!0);const ge={code:W,language:ee};$e("before:highlight",ge);const ve=ge.result?ge.result:Oe(ge.language,ge.code,B);return ve.code=ge.code,$e("after:highlight",ve),ve}function Oe(u,v,B,W){const ee=Object.create(null);function ge(f,y){return f.keywords[y]}function ve(){if(!O.keywords){ne.addText(Y);return}let f=0;O.keywordPatternRe.lastIndex=0;let y=O.keywordPatternRe.exec(Y),I="";for(;y;){I+=Y.substring(f,y.index);const G=fe.case_insensitive?y[0].toLowerCase():y[0],se=ge(O,G);if(se){const[Ee,An]=se;if(ne.addText(I),I="",ee[G]=(ee[G]||0)+1,ee[G]<=dn&&(Pe+=An),Ee.startsWith("_"))I+=y[0];else{const kn=fe.classNameAliases[Ee]||Ee;pe(y[0],kn)}}else I+=y[0];f=O.keywordPatternRe.lastIndex,y=O.keywordPatternRe.exec(Y)}I+=Y.substring(f),ne.addText(I)}function Be(){if(Y==="")return;let f=null;if(typeof O.subLanguage=="string"){if(!r[O.subLanguage]){ne.addText(Y);return}f=Oe(O.subLanguage,Y,!0,ft[O.subLanguage]),ft[O.subLanguage]=f._top}else f=je(Y,O.subLanguage.length?O.subLanguage:null);O.relevance>0&&(Pe+=f.relevance),ne.__addSublanguage(f._emitter,f.language)}function de(){O.subLanguage!=null?Be():ve(),Y=""}function pe(f,y){f!==""&&(ne.startScope(y),ne.addText(f),ne.endScope())}function dt(f,y){let I=1;const G=y.length-1;for(;I<=G;){if(!f._emit[I]){I++;continue}const se=fe.classNameAliases[f[I]]||f[I],Ee=y[I];se?pe(Ee,se):(Y=Ee,ve(),Y=""),I++}}function ut(f,y){return f.scope&&typeof f.scope=="string"&&ne.openNode(fe.classNameAliases[f.scope]||f.scope),f.beginScope&&(f.beginScope._wrap?(pe(Y,fe.classNameAliases[f.beginScope._wrap]||f.beginScope._wrap),Y=""):f.beginScope._multi&&(dt(f.beginScope,y),Y="")),O=Object.create(f,{parent:{value:O}}),O}function gt(f,y,I){let G=L(f.endRe,I);if(G){if(f["on:end"]){const se=new s(f);f["on:end"](y,se),se.isMatchIgnored&&(G=!1)}if(G){for(;f.endsParent&&f.parent;)f=f.parent;return f}}if(f.endsWithParent)return gt(f.parent,y,I)}function wn(f){return O.matcher.regexIndex===0?(Y+=f[0],1):(Ke=!0,0)}function Sn(f){const y=f[0],I=f.rule,G=new s(I),se=[I.__beforeBegin,I["on:begin"]];for(const Ee of se)if(Ee&&(Ee(f,G),G.isMatchIgnored))return wn(y);return I.skip?Y+=y:(I.excludeBegin&&(Y+=y),de(),!I.returnBegin&&!I.excludeBegin&&(Y=y)),ut(I,f),I.returnBegin?0:y.length}function xn(f){const y=f[0],I=v.substring(f.index),G=gt(O,f,I);if(!G)return rt;const se=O;O.endScope&&O.endScope._wrap?(de(),pe(y,O.endScope._wrap)):O.endScope&&O.endScope._multi?(de(),dt(O.endScope,f)):se.skip?Y+=y:(se.returnEnd||se.excludeEnd||(Y+=y),de(),se.excludeEnd&&(Y=y));do O.scope&&ne.closeNode(),!O.skip&&!O.subLanguage&&(Pe+=O.relevance),O=O.parent;while(O!==G.parent);return G.starts&&ut(G.starts,f),se.returnEnd?0:y.length}function Nn(){const f=[];for(let y=O;y!==fe;y=y.parent)y.scope&&f.unshift(y.scope);f.forEach(y=>ne.openNode(y))}let De={};function pt(f,y){const I=y&&y[0];if(Y+=f,I==null)return de(),0;if(De.type==="begin"&&y.type==="end"&&De.index===y.index&&I===""){if(Y+=v.slice(y.index,y.index+1),!q){const G=new Error(`0 width match regex (${u})`);throw G.languageName=u,G.badRule=De.rule,G}return 1}if(De=y,y.type==="begin")return Sn(y);if(y.type==="illegal"&&!B){const G=new Error('Illegal lexeme "'+I+'" for mode "'+(O.scope||"<unnamed>")+'"');throw G.mode=O,G}else if(y.type==="end"){const G=xn(y);if(G!==rt)return G}if(y.type==="illegal"&&I==="")return Y+=`
284
+ `,1;if(Ye>1e5&&Ye>y.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Y+=I,I.length}const fe=ye(u);if(!fe)throw Se(Z.replace("{}",u)),new Error('Unknown language: "'+u+'"');const Tn=on(fe);let We="",O=W||Tn;const ft={},ne=new E.__emitter(E);Nn();let Y="",Pe=0,xe=0,Ye=0,Ke=!1;try{if(fe.__emitTokens)fe.__emitTokens(v,ne);else{for(O.matcher.considerAll();;){Ye++,Ke?Ke=!1:O.matcher.considerAll(),O.matcher.lastIndex=xe;const f=O.matcher.exec(v);if(!f)break;const y=v.substring(xe,f.index),I=pt(y,f);xe=f.index+I}pt(v.substring(xe))}return ne.finalize(),We=ne.toHTML(),{language:u,value:We,relevance:Pe,illegal:!1,_emitter:ne,_top:O}}catch(f){if(f.message&&f.message.includes("Illegal"))return{language:u,value:He(v),illegal:!0,relevance:0,_illegalBy:{message:f.message,index:xe,context:v.slice(xe-100,xe+100),mode:f.mode,resultSoFar:We},_emitter:ne};if(q)return{language:u,value:He(v),illegal:!1,relevance:0,errorRaised:f,_emitter:ne,_top:O};throw f}}function Ge(u){const v={value:He(u),illegal:!1,relevance:0,_top:_,_emitter:new E.__emitter(E)};return v._emitter.addText(u),v}function je(u,v){v=v||E.languages||Object.keys(r);const B=Ge(u),W=v.filter(ye).filter(ct).map(de=>Oe(de,u,!1));W.unshift(B);const ee=W.sort((de,pe)=>{if(de.relevance!==pe.relevance)return pe.relevance-de.relevance;if(de.language&&pe.language){if(ye(de.language).supersetOf===pe.language)return 1;if(ye(pe.language).supersetOf===de.language)return-1}return 0}),[ge,ve]=ee,Be=ge;return Be.secondBest=ve,Be}function un(u,v,B){const W=v&&p[v]||B;u.classList.add("hljs"),u.classList.add(`language-${W}`)}function Fe(u){let v=null;const B=te(u);if(A(B))return;if($e("before:highlightElement",{el:u,language:B}),u.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",u);return}if(u.children.length>0&&(E.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(u)),E.throwUnescapedHTML))throw new cn("One of your code blocks includes unescaped HTML.",u.innerHTML);v=u;const W=v.textContent,ee=B?V(W,{language:B,ignoreIllegals:!0}):je(W);u.innerHTML=ee.value,u.dataset.highlighted="yes",un(u,B,ee.language),u.result={language:ee.language,re:ee.relevance,relevance:ee.relevance},ee.secondBest&&(u.secondBest={language:ee.secondBest.language,relevance:ee.secondBest.relevance}),$e("after:highlightElement",{el:u,result:ee,text:W})}function gn(u){E=st(E,u)}const pn=()=>{Ce(),Te("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function fn(){Ce(),Te("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let at=!1;function Ce(){function u(){Ce()}if(document.readyState==="loading"){at||window.addEventListener("DOMContentLoaded",u,!1),at=!0;return}document.querySelectorAll(E.cssSelector).forEach(Fe)}function mn(u,v){let B=null;try{B=v(t)}catch(W){if(Se("Language definition for '{}' could not be registered.".replace("{}",u)),q)Se(W);else throw W;B=_}B.name||(B.name=u),r[u]=B,B.rawDefinition=v.bind(null,t),B.aliases&&lt(B.aliases,{languageName:u})}function hn(u){delete r[u];for(const v of Object.keys(p))p[v]===u&&delete p[v]}function bn(){return Object.keys(r)}function ye(u){return u=(u||"").toLowerCase(),r[u]||r[p[u]]}function lt(u,{languageName:v}){typeof u=="string"&&(u=[u]),u.forEach(B=>{p[B.toLowerCase()]=v})}function ct(u){const v=ye(u);return v&&!v.disableAutodetect}function En(u){u["before:highlightBlock"]&&!u["before:highlightElement"]&&(u["before:highlightElement"]=v=>{u["before:highlightBlock"](Object.assign({block:v.el},v))}),u["after:highlightBlock"]&&!u["after:highlightElement"]&&(u["after:highlightElement"]=v=>{u["after:highlightBlock"](Object.assign({block:v.el},v))})}function _n(u){En(u),k.push(u)}function yn(u){const v=k.indexOf(u);v!==-1&&k.splice(v,1)}function $e(u,v){const B=u;k.forEach(function(W){W[B]&&W[B](v)})}function vn(u){return Te("10.7.0","highlightBlock will be removed entirely in v12.0"),Te("10.7.0","Please use highlightElement now."),Fe(u)}Object.assign(t,{highlight:V,highlightAuto:je,highlightAll:Ce,highlightElement:Fe,highlightBlock:vn,configure:gn,initHighlighting:pn,initHighlightingOnLoad:fn,registerLanguage:mn,unregisterLanguage:hn,listLanguages:bn,getLanguage:ye,registerAliases:lt,autoDetection:ct,inherit:st,addPlugin:_n,removePlugin:yn}),t.debugMode=function(){q=!1},t.safeMode=function(){q=!0},t.versionString=ln,t.regex={concat:R,lookahead:h,either:P,optional:$,anyNumberOfTimes:T};for(const u in Me)typeof Me[u]=="object"&&e(Me[u]);return Object.assign(t,Me),t},Ae=ot({});return Ae.newInstance=()=>ot({}),Xe=Ae,Ae.HighlightJS=Ae,Ae.default=Ae,Xe}var Jn=Vn();const X=Xn(Jn),ze="[A-Za-z$_][0-9A-Za-z$_]*",vt=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],wt=["true","false","null","undefined","NaN","Infinity"],St=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],xt=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Nt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Tt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],At=[].concat(Nt,St,xt);function Qn(e){const s=e.regex,i=(C,{after:Q})=>{const ce="</"+C[0].slice(1);return C.input.indexOf(ce,Q)!==-1},n=ze,d={begin:"<>",end:"</>"},l=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(C,Q)=>{const ce=C[0].length+C.index,ue=C.input[ce];if(ue==="<"||ue===","){Q.ignoreMatch();return}ue===">"&&(i(C,{after:ce})||Q.ignoreMatch());let be;const we=C.input.substring(ce);if(be=we.match(/^\s*=/)){Q.ignoreMatch();return}if((be=we.match(/^\s+extends\s+/))&&be.index===0){Q.ignoreMatch();return}}},a={$pattern:ze,keyword:vt,literal:wt,built_in:At,"variable.language":Tt},c="[0-9](_?[0-9])*",g=`\\.(${c})`,x="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",w={className:"number",variants:[{begin:`(\\b(${x})((${g})|\\.)?|(${g}))[eE][+-]?(${c})\\b`},{begin:`\\b(${x})\\b((${g})\\b|\\.)?|(${g})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},T={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},$={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},R={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},D={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},F={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},L=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,T,$,R,D,{match:/\$\d+/},w];h.contains=L.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(L)});const b=[].concat(F,h.contains),m=b.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(b)}]),S={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:m},H={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,s.concat(n,"(",s.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},M={relevance:0,match:s.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...St,...xt]}},U={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[S],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ie(C){return s.concat("(?!",C.join("|"),")")}const me={match:s.concat(/\b/,ie([...Nt,"super","import"].map(C=>`${C}\\s*\\(`)),n,s.lookahead(/\s*\(/)),className:"title.function",relevance:0},le={begin:s.concat(/\./,s.lookahead(s.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},he={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},S]},K="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",re={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,s.lookahead(K)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:m,CLASS_REFERENCE:M},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),U,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,T,$,R,D,F,{match:/\$\d+/},w,M,{scope:"attr",match:n+s.lookahead(":"),relevance:0},re,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,e.REGEXP_MODE,{className:"function",begin:K,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:m}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:d.begin,end:d.end},{match:l},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[S,e.inherit(e.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},le,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[S]},me,j,H,he,{match:/\$[(.]/}]}}function kt(e){const s=e.regex,i=Qn(e),n=ze,d=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],l={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:d},contains:[i.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},c=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],g={$pattern:ze,keyword:vt.concat(c),literal:wt,built_in:At.concat(d),"variable.language":Tt},x={className:"meta",begin:"@"+n},w=(R,D,P)=>{const F=R.contains.findIndex(L=>L.label===D);if(F===-1)throw new Error("can not find mode to replace");R.contains.splice(F,1,P)};Object.assign(i.keywords,g),i.exports.PARAMS_CONTAINS.push(x);const h=i.contains.find(R=>R.scope==="attr"),T=Object.assign({},h,{match:s.concat(n,s.lookahead(/\s*\?:/))});i.exports.PARAMS_CONTAINS.push([i.exports.CLASS_REFERENCE,h,T]),i.contains=i.contains.concat([x,l,o,T]),w(i,"shebang",e.SHEBANG()),w(i,"use_strict",a);const $=i.contains.find(R=>R.label==="func.def");return $.relevance=0,Object.assign(i,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),i}const bt="[A-Za-z$_][0-9A-Za-z$_]*",ei=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],ti=["true","false","null","undefined","NaN","Infinity"],Rt=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Ot=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Lt=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ni=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ii=[].concat(Lt,Rt,Ot);function Mt(e){const s=e.regex,i=(C,{after:Q})=>{const ce="</"+C[0].slice(1);return C.input.indexOf(ce,Q)!==-1},n=bt,d={begin:"<>",end:"</>"},l=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(C,Q)=>{const ce=C[0].length+C.index,ue=C.input[ce];if(ue==="<"||ue===","){Q.ignoreMatch();return}ue===">"&&(i(C,{after:ce})||Q.ignoreMatch());let be;const we=C.input.substring(ce);if(be=we.match(/^\s*=/)){Q.ignoreMatch();return}if((be=we.match(/^\s+extends\s+/))&&be.index===0){Q.ignoreMatch();return}}},a={$pattern:bt,keyword:ei,literal:ti,built_in:ii,"variable.language":ni},c="[0-9](_?[0-9])*",g=`\\.(${c})`,x="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",w={className:"number",variants:[{begin:`(\\b(${x})((${g})|\\.)?|(${g}))[eE][+-]?(${c})\\b`},{begin:`\\b(${x})\\b((${g})\\b|\\.)?|(${g})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},T={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},$={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},R={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},D={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},F={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},L=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,T,$,R,D,{match:/\$\d+/},w];h.contains=L.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(L)});const b=[].concat(F,h.contains),m=b.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(b)}]),S={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:m},H={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,s.concat(n,"(",s.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},M={relevance:0,match:s.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Rt,...Ot]}},U={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[S],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ie(C){return s.concat("(?!",C.join("|"),")")}const me={match:s.concat(/\b/,ie([...Lt,"super","import"].map(C=>`${C}\\s*\\(`)),n,s.lookahead(/\s*\(/)),className:"title.function",relevance:0},le={begin:s.concat(/\./,s.lookahead(s.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},he={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},S]},K="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",re={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,s.lookahead(K)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:m,CLASS_REFERENCE:M},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),U,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,T,$,R,D,F,{match:/\$\d+/},w,M,{scope:"attr",match:n+s.lookahead(":"),relevance:0},re,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,e.REGEXP_MODE,{className:"function",begin:K,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:m}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:d.begin,end:d.end},{match:l},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[S,e.inherit(e.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},le,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[S]},me,j,H,he,{match:/\$[(.]/}]}}function It(e){const s=e.regex,i=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),n=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:n,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},c={className:"meta",begin:/^(>>>|\.\.\.) /},g={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},x={begin:/\{\{/,relevance:0},w={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,c],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,c],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,c,x,g]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,c,x,g]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,x,g]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,x,g]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",T=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,$=`\\b|${n.join("|")}`,R={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${T}))[eE][+-]?(${h})[jJ]?(?=${$})`},{begin:`(${T})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${$})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${$})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${$})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${$})`},{begin:`\\b(${h})[jJ](?=${$})`}]},D={className:"comment",begin:s.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},P={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",c,R,w,e.HASH_COMMENT_MODE]}]};return g.contains=[w,R,c],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[c,R,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},w,D,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,i],scope:{1:"keyword",3:"title.function"},contains:[P]},{variants:[{match:[/\bclass/,/\s+/,i,/\s*/,/\(\s*/,i,/\s*\)/]},{match:[/\bclass/,/\s+/,i]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[R,P,w]}]}}function si(e){const s=e.regex,i=e.COMMENT("--","$"),n={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},d={begin:/"/,end:/"/,contains:[{match:/""/}]},l=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],c=["add","asc","collation","desc","final","first","last","view"],g=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],x=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],w=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],T=x,$=[...g,...c].filter(m=>!x.includes(m)),R={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},D={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},P={match:s.concat(/\b/,s.either(...T),/\s*\(/),relevance:0,keywords:{built_in:T}};function F(m){return s.concat(/\b/,s.either(...m.map(S=>S.replace(/\s+/,"\\s+"))),/\b/)}const L={scope:"keyword",match:F(h),relevance:0};function b(m,{exceptions:S,when:H}={}){const M=H;return S=S||[],m.map(U=>U.match(/\|\d+$/)||S.includes(U)?U:M(U)?`${U}|0`:U)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:b($,{when:m=>m.length<3}),literal:l,type:a,built_in:w},contains:[{scope:"type",match:F(o)},L,P,R,n,d,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,i,D]}}function ri(e){const s={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},i={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],d={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:n},contains:[s,i,e.QUOTE_STRING_MODE,d,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function Ct(e){const s="true false yes no null",i="[\\w#;/?:@&=+$,.~*'()[\\]]+",n={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},d={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},l={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},o={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,d]},a=e.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},T={end:",",endsWithParent:!0,excludeEnd:!0,keywords:s,relevance:0},$={begin:/\{/,end:/\}/,contains:[T],illegal:"\\n",relevance:0},R={begin:"\\[",end:"\\]",contains:[T],illegal:"\\n",relevance:0},D=[n,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+i},{className:"type",begin:"!<"+i+">"},{className:"type",begin:"!"+i},{className:"type",begin:"!!"+i},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:s,keywords:{literal:s}},h,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},$,R,l,o],P=[...D];return P.pop(),P.push(a),T.contains=P,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:D}}function $t(e){const s=e.regex,i={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[i]}]};Object.assign(i,{className:"variable",variants:[{begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const d={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},l=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,d]};d.contains.push(a);const c={match:/\\"/},g={className:"string",begin:/'/,end:/'/},x={match:/\\'/},w={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,i]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],T=e.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),$={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},R=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],D=["true","false"],P={match:/(\/[a-z._-]+)+/},F=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],L=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],b=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],m=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:R,literal:D,built_in:[...F,...L,"set","shopt",...b,...m]},contains:[T,e.SHEBANG(),$,w,l,o,P,a,c,g,x,i]}}function oi(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function Bt(e){const s=e.regex,i={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={begin:"^[-\\*]{3,}",end:"$"},d={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},l={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,c={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:s.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},g={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},x={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},w=e.inherit(g,{contains:[]}),h=e.inherit(x,{contains:[]});g.contains.push(h),x.contains.push(w);let T=[i,c];return[g,x,w,h].forEach(P=>{P.contains=P.contains.concat(T)}),T=T.concat(g,x),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:T},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:T}]}]},i,l,g,x,{className:"quote",begin:"^>\\s+",contains:T,end:"$"},d,n,c,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Dt(e){const s=e.regex,i=s.concat(/[\p{L}_]/u,s.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),n=/[\p{L}0-9._:-]+/u,d={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},l={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(l,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),c=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),g={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:n,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[d]},{begin:/'/,end:/'/,contains:[d]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[l,c,a,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[l,o,c,a]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},d,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[g],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[g],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:s.concat(/</,s.lookahead(s.concat(i,s.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:i,relevance:0,starts:g}]},{className:"tag",begin:s.concat(/<\//,s.lookahead(s.concat(i,/>/))),contains:[{className:"name",begin:i,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}const ai=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),li=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ci=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],di=[...li,...ci],ui=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),gi=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),pi=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),fi=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function mi(e){const s=e.regex,i=ai(e),n={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},d="and or not only",l=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[i.BLOCK_COMMENT,n,i.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+gi.join("|")+")"},{begin:":(:)?("+pi.join("|")+")"}]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+fi.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[i.BLOCK_COMMENT,i.HEXCOLOR,i.IMPORTANT,i.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},i.FUNCTION_DISPATCH]},{begin:s.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:l},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:ui.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,i.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+di.join("|")+")\\b"}]}}function hi(e){const s=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:s.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:s.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}X.registerLanguage("typescript",kt);X.registerLanguage("ts",kt);X.registerLanguage("javascript",Mt);X.registerLanguage("js",Mt);X.registerLanguage("python",It);X.registerLanguage("py",It);X.registerLanguage("sql",si);X.registerLanguage("json",ri);X.registerLanguage("yaml",Ct);X.registerLanguage("yml",Ct);X.registerLanguage("bash",$t);X.registerLanguage("sh",$t);X.registerLanguage("shell",oi);X.registerLanguage("markdown",Bt);X.registerLanguage("md",Bt);X.registerLanguage("xml",Dt);X.registerLanguage("html",Dt);X.registerLanguage("css",mi);X.registerLanguage("diff",hi);function bi(){if(document.getElementById("hljs-styles"))return;const e=document.createElement("style");e.id="hljs-styles",e.textContent=`
285
+ /*
286
+ * Semantic Light Theme - High contrast with distinct token colors
287
+ * Designed for readability across all languages (TS, Python, YAML, SQL, etc.)
288
+ */
289
+ .hljs {
290
+ background: #fafafa !important;
291
+ color: #383a42 !important;
292
+ padding: 1rem;
293
+ border-radius: 6px;
294
+ border: 1px solid #e1e4e8 !important;
295
+ font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', 'Consolas', monospace;
296
+ font-size: 0.875rem;
297
+ line-height: 1.6;
298
+ overflow-x: auto;
299
+ }
300
+
301
+ /* Comments - muted italic gray */
302
+ .hljs-comment,
303
+ .hljs-quote {
304
+ color: #a0a1a7;
305
+ font-style: italic;
306
+ }
307
+
308
+ /* Keywords (if, else, return, const, let, from, import) - BOLD PURPLE */
309
+ .hljs-keyword,
310
+ .hljs-selector-tag {
311
+ color: #a626a4;
312
+ font-weight: 600;
313
+ }
314
+
315
+ /* Types & Built-ins - ORANGE */
316
+ .hljs-type,
317
+ .hljs-built_in,
318
+ .hljs-builtin-name,
319
+ .hljs-class .hljs-title {
320
+ color: #c18401;
321
+ }
322
+
323
+ /* Strings - GREEN */
324
+ .hljs-string,
325
+ .hljs-doctag,
326
+ .hljs-regexp {
327
+ color: #50a14f;
328
+ }
329
+
330
+ /* Numbers - DARK ORANGE */
331
+ .hljs-number {
332
+ color: #986801;
333
+ }
334
+
335
+ /* Booleans (true/false/null) - MAGENTA (distinct!) */
336
+ .hljs-literal {
337
+ color: #e45649;
338
+ font-weight: 600;
339
+ }
340
+
341
+ /* Variables - RED */
342
+ .hljs-variable,
343
+ .hljs-template-variable {
344
+ color: #e45649;
345
+ }
346
+
347
+ /* Functions - BLUE */
348
+ .hljs-title,
349
+ .hljs-title.function_,
350
+ .hljs-section {
351
+ color: #4078f2;
352
+ font-weight: 600;
353
+ }
354
+
355
+ /* Keys/Attributes (YAML keys, HTML attrs, JSON keys) - DARK BLUE */
356
+ .hljs-attr,
357
+ .hljs-attribute {
358
+ color: #4078f2;
359
+ }
360
+
361
+ /* Names/Tags (HTML tags, XML) - RED */
362
+ .hljs-name,
363
+ .hljs-tag {
364
+ color: #e45649;
365
+ }
366
+
367
+ /* Classes/Selectors - ORANGE */
368
+ .hljs-selector-id,
369
+ .hljs-selector-class {
370
+ color: #c18401;
371
+ }
372
+
373
+ /* Meta (decorators, preprocessor) - PURPLE */
374
+ .hljs-meta,
375
+ .hljs-meta .hljs-keyword {
376
+ color: #a626a4;
377
+ }
378
+
379
+ /* Symbols/Bullets/Punctuation - TEAL */
380
+ .hljs-symbol,
381
+ .hljs-bullet {
382
+ color: #0184bc;
383
+ }
384
+
385
+ /* Links - BLUE underlined */
386
+ .hljs-link {
387
+ color: #4078f2;
388
+ text-decoration: underline;
389
+ }
390
+
391
+ /* Additions (diff) - GREEN bg */
392
+ .hljs-addition {
393
+ color: #50a14f;
394
+ background-color: #e6ffec;
395
+ }
396
+
397
+ /* Deletions (diff) - RED bg */
398
+ .hljs-deletion {
399
+ color: #e45649;
400
+ background-color: #ffebe9;
401
+ }
402
+
403
+ /* Emphasis */
404
+ .hljs-emphasis {
405
+ font-style: italic;
406
+ }
407
+
408
+ /* Strong */
409
+ .hljs-strong {
410
+ font-weight: bold;
411
+ }
412
+
413
+ /* Code blocks in log entries - light subtle container */
414
+ .log-content pre {
415
+ margin: 1rem 0;
416
+ border: none !important;
417
+ background: transparent !important;
418
+ box-shadow: 0 1px 3px rgba(0,0,0,0.08);
419
+ }
420
+
421
+ .log-content pre code {
422
+ display: block;
423
+ padding: 0;
424
+ }
425
+
426
+ /* Language badge */
427
+ .log-content pre {
428
+ position: relative;
429
+ }
430
+
431
+ .log-content pre[data-language]::before {
432
+ content: attr(data-language);
433
+ position: absolute;
434
+ top: 0;
435
+ right: 0;
436
+ padding: 2px 8px;
437
+ font-size: 0.7rem;
438
+ color: #57606a;
439
+ background: #eaeef2;
440
+ border-bottom-left-radius: 4px;
441
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
442
+ text-transform: uppercase;
443
+ }
444
+ `,document.head.appendChild(e)}function Ei(){bi(),document.querySelectorAll("pre code:not(.mermaid-source)").forEach(s=>{const i=s,n=i.parentElement;if(i.classList.contains("hljs"))return;const d=Array.from(i.classList).find(o=>o.startsWith("language-")),l=d?d.replace("language-",""):null;if(l!=="mermaid")try{l&&X.getLanguage(l)?(X.highlightElement(i),n&&n.setAttribute("data-language",l)):(i.classList.add("hljs"),n&&l&&n.setAttribute("data-language",l))}catch(o){console.warn("[Syntax Highlight] Failed to highlight block:",o)}})}const _i="/_worklog";let Ne=[];async function Pt(){const e=document.getElementById("app");if(!e)return;Ne=[];const s=window.scrollY;console.log(`[GSD-Lite Reader] Saving scroll position: ${s}px`);try{let i;if(window.__WORKLOG_CONTENT_B64__){const d=atob(window.__WORKLOG_CONTENT_B64__),l=Uint8Array.from(d,o=>o.charCodeAt(0));i=new TextDecoder("utf-8").decode(l),console.log("[GSD-Lite Reader] Using embedded content (static mode)")}else if(window.__WORKLOG_CONTENT__)i=window.__WORKLOG_CONTENT__,console.log("[GSD-Lite Reader] Using embedded content (static mode, legacy)");else{const d=await fetch(_i);if(!d.ok)throw new Error(`Failed to load WORK.md: ${d.status} ${d.statusText}`);i=await d.text()}const n=$n(i);e.innerHTML=zn(n),Hn(),await Si(),Zn(),Ei(),yi(),s>0&&requestAnimationFrame(()=>{window.scrollTo(0,s),console.log(`[GSD-Lite Reader] Restored scroll to ${s}px`)}),console.log(`[GSD-Lite Reader] Loaded ${n.metadata.totalLogs} logs in ${n.metadata.parseTime}ms`)}catch(i){e.innerHTML=`
445
+ <div class="loading">
446
+ <div>⚠️ Failed to load worklog</div>
447
+ <div style="font-size: 0.875rem; color: #888;">
448
+ ${i instanceof Error?i.message:"Unknown error"}
449
+ </div>
450
+ <div style="font-size: 0.75rem; color: #aaa;">
451
+ Check that WORK.md exists and the dev server is running.
452
+ </div>
453
+ </div>
454
+ `}}function yi(){const e=document.getElementById("mermaid-error-panel");if(e&&e.remove(),Ne.length===0)return;const s=document.createElement("div");s.id="mermaid-error-panel",s.innerHTML=`
455
+ <style>
456
+ #mermaid-error-panel {
457
+ position: fixed;
458
+ top: 50px;
459
+ right: 16px;
460
+ width: 400px;
461
+ max-width: calc(100vw - 32px);
462
+ max-height: 60vh;
463
+ background: #fff5f5;
464
+ border: 2px solid #e94560;
465
+ border-radius: 8px;
466
+ box-shadow: 0 4px 20px rgba(0,0,0,0.15);
467
+ z-index: 2000;
468
+ overflow: hidden;
469
+ display: flex;
470
+ flex-direction: column;
471
+ }
472
+ #mermaid-error-panel.collapsed {
473
+ max-height: none;
474
+ height: auto;
475
+ }
476
+ #mermaid-error-panel.collapsed .error-panel-body {
477
+ display: none;
478
+ }
479
+ .error-panel-header {
480
+ display: flex;
481
+ align-items: center;
482
+ justify-content: space-between;
483
+ padding: 12px 16px;
484
+ background: #e94560;
485
+ color: white;
486
+ font-weight: 600;
487
+ cursor: pointer;
488
+ }
489
+ .error-panel-header:hover {
490
+ background: #d63050;
491
+ }
492
+ .error-panel-title {
493
+ display: flex;
494
+ align-items: center;
495
+ gap: 8px;
496
+ }
497
+ .error-panel-badge {
498
+ background: white;
499
+ color: #e94560;
500
+ padding: 2px 8px;
501
+ border-radius: 12px;
502
+ font-size: 12px;
503
+ }
504
+ .error-panel-actions {
505
+ display: flex;
506
+ gap: 8px;
507
+ }
508
+ .error-panel-btn {
509
+ background: rgba(255,255,255,0.2);
510
+ border: none;
511
+ color: white;
512
+ padding: 6px 12px;
513
+ border-radius: 4px;
514
+ cursor: pointer;
515
+ font-size: 12px;
516
+ display: flex;
517
+ align-items: center;
518
+ gap: 4px;
519
+ }
520
+ .error-panel-btn:hover {
521
+ background: rgba(255,255,255,0.3);
522
+ }
523
+ .error-panel-btn.copied {
524
+ background: #4CAF50;
525
+ }
526
+ .error-panel-body {
527
+ overflow-y: auto;
528
+ padding: 12px;
529
+ flex: 1;
530
+ }
531
+ .error-item {
532
+ background: white;
533
+ border: 1px solid #ffcccc;
534
+ border-radius: 6px;
535
+ padding: 12px;
536
+ margin-bottom: 8px;
537
+ }
538
+ .error-item:last-child {
539
+ margin-bottom: 0;
540
+ }
541
+ .error-item-header {
542
+ display: flex;
543
+ align-items: center;
544
+ justify-content: space-between;
545
+ margin-bottom: 8px;
546
+ }
547
+ .error-item-line {
548
+ font-weight: 600;
549
+ color: #e94560;
550
+ }
551
+ .error-item-jump {
552
+ background: #e94560;
553
+ color: white;
554
+ border: none;
555
+ padding: 4px 8px;
556
+ border-radius: 4px;
557
+ cursor: pointer;
558
+ font-size: 11px;
559
+ }
560
+ .error-item-jump:hover {
561
+ background: #d63050;
562
+ }
563
+ .error-item-msg {
564
+ font-size: 13px;
565
+ color: #333;
566
+ word-break: break-word;
567
+ }
568
+ @media (max-width: 500px) {
569
+ #mermaid-error-panel {
570
+ right: 8px;
571
+ width: calc(100vw - 16px);
572
+ }
573
+ }
574
+ </style>
575
+ <div class="error-panel-header" onclick="toggleErrorPanel()">
576
+ <div class="error-panel-title">
577
+ ⚠️ Mermaid Errors
578
+ <span class="error-panel-badge">${Ne.length}</span>
579
+ </div>
580
+ <div class="error-panel-actions">
581
+ <button class="error-panel-btn" onclick="event.stopPropagation(); copyAllErrors();" id="copy-errors-btn">
582
+ 📋 Copy All
583
+ </button>
584
+ <span style="font-size: 12px;">▼</span>
585
+ </div>
586
+ </div>
587
+ <div class="error-panel-body">
588
+ ${Ne.map((i,n)=>`
589
+ <div class="error-item">
590
+ <div class="error-item-header">
591
+ <span class="error-item-line">📍 Line ~${i.line}</span>
592
+ <button class="error-item-jump" onclick="jumpToLine(${i.line})">Jump</button>
593
+ </div>
594
+ <div class="error-item-msg">${wi(i.error)}</div>
595
+ </div>
596
+ `).join("")}
597
+ </div>
598
+ `,document.body.appendChild(s),window.toggleErrorPanel=()=>{s.classList.toggle("collapsed")},window.copyAllErrors=()=>{const i=vi();navigator.clipboard.writeText(i).then(()=>{const n=document.getElementById("copy-errors-btn");n&&(n.classList.add("copied"),n.innerHTML="✓ Copied!",setTimeout(()=>{n.classList.remove("copied"),n.innerHTML="📋 Copy All"},2e3))})},window.jumpToLine=i=>{const n=document.querySelector(`[id^="line-${i}"], [data-start-line="${i}"]`);n&&(n.scrollIntoView({behavior:"smooth",block:"center"}),n.style.outline="3px solid #e94560",setTimeout(()=>{n.style.outline=""},2e3))}}function vi(){const e=`## Mermaid Diagram Errors in WORK.md
599
+
600
+ Found ${Ne.length} broken diagram(s). Please fix:
601
+ `,s=Ne.map((i,n)=>`### Error ${n+1}: Line ~${i.line}
602
+
603
+ **Error:** ${i.error}
604
+
605
+ **Broken code:**
606
+ \`\`\`mermaid
607
+ ${i.code}
608
+ \`\`\`
609
+ `).join(`
610
+ ---
611
+
612
+ `);return e+`
613
+ `+s}function wi(e){const s=document.createElement("div");return s.textContent=e,s.innerHTML}async function Si(){const e=document.querySelectorAll(".mermaid-wrapper");if(e.length===0)return;const{default:s}=await Ln(async()=>{const{default:i}=await import("./mermaid.core-BCDr3kzN.js").then(n=>n.bA);return{default:i}},[]);s.initialize({startOnLoad:!1,theme:"default",suppressErrorRendering:!0,themeVariables:{primaryColor:"#e94560",primaryTextColor:"#1a1a2e",primaryBorderColor:"#6f42c1",lineColor:"#6c757d",secondaryColor:"#f8f9fa",tertiaryColor:"#ffffff"},flowchart:{useMaxWidth:!0,htmlLabels:!0},sequence:{useMaxWidth:!0}});for(let i=0;i<e.length;i++){const n=e[i],d=n.querySelector(".mermaid-source");if(!d)continue;const l=d.textContent||"",o=n.dataset.startLine||"?";try{const{svg:a}=await s.render(`mermaid-${i}`,l);n.innerHTML=`<div class="mermaid-container">${a}</div>`}catch(a){const c=a instanceof Error?a.message:"Unknown error";Ne.push({line:o,error:c,code:l}),console.error(`[Mermaid] Error at WORK.md line ~${o}:`,c),n.innerHTML=`
614
+ <div class="mermaid-error">
615
+ <strong>⚠️ Mermaid syntax error</strong>
616
+ <div style="margin-top: 0.25rem; font-size: 0.75rem; color: #666;">
617
+ 📍 WORK.md line ~${o}
618
+ </div>
619
+ <div style="margin-top: 0.5rem; font-size: 0.875rem; color: #c62828;">
620
+ ${c}
621
+ </div>
622
+ <details style="margin-top: 0.5rem;">
623
+ <summary style="cursor: pointer; font-size: 0.75rem; color: #666;">Show diagram source</summary>
624
+ <pre style="margin-top: 0.5rem; font-size: 0.75rem; background: #f5f5f5; padding: 0.5rem; border-radius: 4px; overflow-x: auto; white-space: pre-wrap;">${l}</pre>
625
+ </details>
626
+ </div>
627
+ `}}}function Je(){const s=`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}`;try{const i=new WebSocket(s);i.onopen=()=>{console.log("[GSD-Lite Reader] WebSocket connected")},i.onmessage=n=>{n.data==="reload"&&(console.log("[GSD-Lite Reader] WORK.md changed (WebSocket), reloading..."),Pt())},i.onclose=()=>{console.log("[GSD-Lite Reader] WebSocket disconnected, reconnecting in 2s..."),setTimeout(Je,2e3)},i.onerror=()=>{}}catch{console.warn("[GSD-Lite Reader] WebSocket connection failed, will retry"),setTimeout(Je,2e3)}}Pt();!window.__WORKLOG_CONTENT_B64__&&!window.__WORKLOG_CONTENT__&&Je();export{Ln as _,Xn as g};