@arborium/arborium 1.0.4 → 1.0.5

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.
@@ -1,3 +1,3 @@
1
- var arborium=(function(v){"use strict";class R extends Error{constructor(e){super(e),this.name="WasiError"}}class j{write(e){return BigInt(0)}blockingWriteAndFlush(e){}blockingFlush(){}checkWrite(){return BigInt(1048576)}subscribe(){}}class B{read(e){return new Uint8Array(0)}blockingRead(e){return new Uint8Array(0)}subscribe(){}}function tt(){const t=new j,e=new j,n=new B,s={getEnvironment:()=>[],getArguments:()=>[]},r={exit:i=>{if(i.tag==="err")throw new R(`WASI exit with error: ${i.val}`)}},o={getStdin:()=>n},c={getStdout:()=>t},u={getStderr:()=>e},y={now:()=>{const i=Date.now();return{seconds:BigInt(Math.floor(i/1e3)),nanoseconds:i%1e3*1e6}},resolution:()=>({seconds:BigInt(0),nanoseconds:1e6})},p={Descriptor:class{},DirectoryEntryStream:class{},filesystemErrorCode:()=>null},m={getDirectories:()=>[]},a={Error:R},l={InputStream:B,OutputStream:j},f={getRandomBytes:i=>{const d=new Uint8Array(Number(i));return crypto.getRandomValues(d),d},getRandomU64:()=>{const i=new Uint8Array(8);return crypto.getRandomValues(i),new DataView(i.buffer).getBigUint64(0,!0)}};return{"wasi:cli/environment":s,"wasi:cli/exit":r,"wasi:cli/stdin":o,"wasi:cli/stdout":c,"wasi:cli/stderr":u,"wasi:clocks/wall-clock":y,"wasi:filesystem/types":p,"wasi:filesystem/preopens":m,"wasi:io/error":a,"wasi:io/streams":l,"wasi:random/random":f,"wasi:cli/environment@0.2.3":s,"wasi:cli/exit@0.2.3":r,"wasi:cli/stdin@0.2.3":o,"wasi:cli/stdout@0.2.3":c,"wasi:cli/stderr@0.2.3":u,"wasi:clocks/wall-clock@0.2.3":y,"wasi:filesystem/types@0.2.3":p,"wasi:filesystem/preopens@0.2.3":m,"wasi:io/error@0.2.3":a,"wasi:io/streams@0.2.3":l,"wasi:random/random@0.2.3":f}}const et={"arborium:grammar/types@0.1.0":{}},W={entries:[]},nt={manual:!1,theme:"one-dark",selector:"pre code",cdn:"jsdelivr",version:"1",pluginsUrl:"",hostUrl:""};let k=null,$=null,g={...nt};const U=new Map;let C=W,L=null,E=new Set(W.entries.map(t=>t.language));async function st(){if(g.pluginsUrl)return L||(L=(async()=>{console.debug(`[arborium] Loading plugins manifest from: ${g.pluginsUrl}`);const t=await fetch(g.pluginsUrl);if(!t.ok)throw new Error(`Failed to load plugins.json: ${t.status}`);C=await t.json(),E=new Set(C.entries.map(e=>e.language)),console.debug(`[arborium] Available languages: ${Array.from(E).join(", ")}`)})(),L)}async function x(t){const e=U.get(t);if(e)return console.debug(`[arborium] Grammar '${t}' found in cache`),e;await st();const n=C.entries.find(s=>s.language===t);if(!n)return console.debug(`[arborium] Grammar '${t}' not found in manifest`),null;try{const s=g.pluginsUrl?n.local_js:n.cdn_js,r=s.substring(0,s.lastIndexOf("/"));console.debug(`[arborium] Loading grammar '${t}' from ${s}`);const o=await import(s),c=async l=>{const f=`${r}/${l}`,i=await fetch(f);if(!i.ok)throw new Error(`Failed to fetch WASM ${l}: ${i.status}`);const d=await i.arrayBuffer();return WebAssembly.compile(d)},y={...tt(),...et},p=await o.instantiate(c,y),m=p.plugin||p["arborium:grammar/plugin@0.1.0"];if(!m)return console.error(`Grammar '${t}' missing plugin interface`),null;const a={languageId:t,injectionLanguages:m.injectionLanguages?.()??[],parse:l=>{const f=m.createSession();try{m.setText(f,l);const i=m.parse(f);if(i.tag==="err"){const pt=i.val;return console.error(`[arborium] Parse error: ${pt?.message}`),{spans:[],injections:[]}}const d=i.tag==="ok"?i.val:i;if(!d||typeof d!="object")return console.error("[arborium] Unexpected parse result:",i),{spans:[],injections:[]};const Z=d;return{spans:Z.spans||[],injections:Z.injections||[]}}finally{m.freeSession(f)}}};return U.set(t,a),console.debug(`[arborium] Grammar '${t}' loaded successfully`),a}catch(s){return console.error(`[arborium] Failed to load grammar '${t}':`,s),null}}const T=new Map;let rt=1;function ot(){window.arboriumHost={isLanguageAvailable(t){return E.has(t)||U.has(t)},async loadGrammar(t){const e=await x(t);if(!e)return 0;for(const[s,r]of T)if(r===e)return s;const n=rt++;return T.set(n,e),n},parse(t,e){const n=T.get(t);return n?n.parse(e):{spans:[],injections:[]}}}}function it(){if(g.hostUrl)return g.hostUrl;const t=g.cdn,e=g.version;let n;t==="jsdelivr"?n="https://cdn.jsdelivr.net/npm":t==="unpkg"?n="https://unpkg.com":n=t;const s=e==="latest"?"":`@${e}`;return`${n}/@arborium/arborium${s}/dist`}async function at(){return k||$||($=(async()=>{ot();const t=it(),e=`${t}/arborium_host.js`,n=`${t}/arborium_host_bg.wasm`;console.debug(`[arborium] Loading host from ${e}`);try{const s=await import(e);return await s.default(n),k={highlight:s.highlight,isLanguageAvailable:s.isLanguageAvailable},console.debug("[arborium] Host loaded successfully"),k}catch(s){return console.error("[arborium] Failed to load host:",s),null}})(),$)}async function P(t,e,n){const s=await at();if(s)try{return s.highlight(t,e)}catch(c){console.warn("Host highlight failed, falling back to JS:",c)}const r=await x(t);if(!r)return S(e);const o=r.parse(e);return H(e,o.spans)}async function F(t,e){const n=await x(t);return n?{languageId:()=>n.languageId,injectionLanguages:()=>n.injectionLanguages,highlight:async s=>{const r=n.parse(s);return H(s,r.spans)},parse:s=>n.parse(s),dispose:()=>{}}:null}function H(t,e){const n=[...e].sort((o,c)=>o.start-c.start);let s="",r=0;for(const o of n){if(o.start<r)continue;o.start>r&&(s+=S(t.slice(r,o.start)));const c=ct(o.capture),u=S(t.slice(o.start,o.end));c?s+=`<a-${c}>${u}</a-${c}>`:s+=u,r=o.end}return r<t.length&&(s+=S(t.slice(r))),s}function ct(t){return t.startsWith("keyword")||t==="include"||t==="conditional"?"k":t.startsWith("function")||t.startsWith("method")?"f":t.startsWith("string")||t==="character"?"s":t.startsWith("comment")?"c":t.startsWith("type")?"t":t.startsWith("variable")?"v":t.startsWith("number")||t==="float"?"n":t.startsWith("operator")?"o":t.startsWith("punctuation")?"p":t.startsWith("tag")?"tg":t.startsWith("attribute")?"at":null}function S(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function I(t){return t?{...g,...t}:{...g}}function N(t){g={...g,...t}}const lt=[[/^#!.*\bpython[23]?\b/,"python"],[/^#!.*\bnode\b/,"javascript"],[/^#!.*\bdeno\b/,"typescript"],[/^#!.*\bbun\b/,"typescript"],[/^#!.*\bruby\b/,"ruby"],[/^#!.*\bperl\b/,"perl"],[/^#!.*\bphp\b/,"php"],[/^#!.*\bbash\b/,"bash"],[/^#!.*\bzsh\b/,"zsh"],[/^#!.*\bsh\b/,"bash"],[/^#!.*\blua\b/,"lua"],[/^#!.*\bawk\b/,"awk"]],ut=[[/\b(fn|impl|trait|pub\s+fn|let\s+mut|&mut|->)\b/,"rust"],[/\b(func|package\s+\w+|import\s+\(|go\s+func|chan\s+\w+)\b/,"go"],[/\b(def\s+\w+\s*\(|import\s+\w+|from\s+\w+\s+import|class\s+\w+:)\b/,"python"],[/:\s*(string|number|boolean|void)\b|\binterface\s+\w+\s*\{/,"typescript"],[/\b(const|let|var)\s+\w+\s*=|function\s+\w+\s*\(|=>\s*\{/,"javascript"],[/\b(def\s+\w+|end\b|do\s*\|.*\||puts\s+|require\s+['"])\b/,"ruby"],[/\b(public\s+class|private\s+\w+|System\.out\.println)\b/,"java"],[/\b(#include\s*<|std::|template\s*<|nullptr|cout\s*<<)\b/,"cpp"],[/\b(#include\s*[<"]|printf\s*\(|int\s+main\s*\(|void\s+\w+\s*\()\b/,"c"],[/\b(namespace\s+\w+|using\s+System|public\s+static\s+void)\b/,"c-sharp"],[/<\?php|\$\w+\s*=/,"php"],[/\b(func\s+\w+|var\s+\w+:\s*\w+|let\s+\w+:\s*\w+|@objc)\b/,"swift"],[/\b(fun\s+\w+|val\s+\w+|var\s+\w+:|data\s+class)\b/,"kotlin"],[/\b(def\s+\w+|val\s+\w+|var\s+\w+|object\s+\w+|case\s+class)\b/,"scala"],[/\b(module\s+\w+|import\s+qualified|data\s+\w+\s*=|::\s*\w+\s*->)\b/,"haskell"],[/\b(defmodule\s+\w+|def\s+\w+|defp\s+\w+|\|>)\b/,"elixir"],[/\b(local\s+\w+\s*=|function\s+\w+\.\w+|require\s*\()\b/,"lua"],[/\b(SELECT\s+.*\s+FROM|INSERT\s+INTO|CREATE\s+TABLE|ALTER\s+TABLE)\b/i,"sql"],[/\b(if\s+\[\s*|then\b|fi\b|echo\s+["']|export\s+\w+=)\b/,"bash"],[/^\s*[\w-]+:\s*[\w\-"'[{]|^---\s*$/,"yaml"],[/^\s*\{[\s\S]*"[\w-]+":\s*/,"json"],[/^\s*\[[\w.-]+\]\s*$|^\s*\w+\s*=\s*["'\d\[]/,"toml"],[/<(!DOCTYPE|html|head|body|div|span|p|a\s)/i,"html"],[/^\s*[\w.#@][\w\s,#.:>+~-]*\{[^}]*\}|@media\s|@import\s/,"css"],[/^#{1,6}\s+\w|^\s*[-*+]\s+\w|^\s*\d+\.\s+\w|```\w*\n/,"markdown"],[/<\?xml|<[\w:-]+\s+xmlns/,"xml"],[/^FROM\s+\w+|^RUN\s+|^COPY\s+|^ENTRYPOINT\s+/m,"dockerfile"],[/\b(server\s*\{|location\s+[\/~]|proxy_pass\s+)\b/,"nginx"],[/\b(pub\s+fn|const\s+\w+\s*=|@import\(|comptime)\b/,"zig"]];function _(t){const e=t.split(`
2
- `)[0];for(const[n,s]of lt)if(n.test(e))return s;for(const[n,s]of ut)if(n.test(t))return s;return null}function O(t){const e=t.match(/\blanguage-(\w+)\b/);if(e)return e[1];const n=t.match(/\blang-(\w+)\b/);if(n)return n[1];const s=new Set(["rust","javascript","typescript","python","ruby","go","java","c","cpp","csharp","php","swift","kotlin","scala","haskell","elixir","lua","sql","bash","shell","yaml","json","toml","html","css","xml","markdown","dockerfile","nginx","zig","text","plaintext","console","sh"]);for(const r of t.split(/\s+/))if(s.has(r.toLowerCase()))return r.toLowerCase();return null}function A(t){const e={js:"javascript",ts:"typescript",py:"python",rb:"ruby",rs:"rust",sh:"bash",shell:"bash",yml:"yaml",cs:"c-sharp",csharp:"c-sharp","c++":"cpp","c#":"c-sharp","f#":"fsharp",dockerfile:"dockerfile",docker:"dockerfile",makefile:"make",plaintext:"text",plain:"text",txt:"text"},n=t.toLowerCase();return e[n]||n}const h=document.currentScript;function mt(){if(!h?.src)return new URLSearchParams;try{return new URL(h.src).searchParams}catch{return new URLSearchParams}}function gt(){if(!h)return{};const t={},e=mt();h.hasAttribute("data-manual")&&(t.manual=!0);const n=h.getAttribute("data-theme");n&&(t.theme=n);const s=h.getAttribute("data-selector");s&&(t.selector=s);const r=h.getAttribute("data-cdn");r&&(t.cdn=r);const o=h.getAttribute("data-version");o&&(t.version=o);const c=e.get("pluginsUrl");c&&(t.pluginsUrl=c);const u=e.get("hostUrl");return u&&(t.hostUrl=u),t}function q(){return document.querySelector('meta[name="generator"]')?.getAttribute("content")==="rustdoc"}function ft(t){if(!t)return null;const e={light:"rustdoc-light",dark:"rustdoc-dark",ayu:"rustdoc-ayu"};return e[t]?e[t]:null}function D(){if(q()){const e=ft(document.documentElement.dataset.theme);if(e)return e}return window.matchMedia("(prefers-color-scheme: light)").matches?"github-light":"one-dark"}function b(){const t=window.Arborium||{},e=gt(),n={...t,...e};return n.theme||(n.theme=D()),N(n),I()}function dt(t){return Array.from(document.querySelectorAll(t))}function ht(t){const e=["hljs","highlighted","prism-code","shiki"];for(const r of e)if(t.classList.contains(r))return!0;const n=t.querySelectorAll("span[class]");return n.length>0&&Array.from(n).filter(o=>o.className&&o.className.length>0).length>=3||t.querySelectorAll("a").length>=2}function G(t){const e=t.getAttribute("data-lang");if(e)return A(e);const n=t.className,s=O(n);if(s)return A(s);const r=t.parentElement;if(r){const c=r.getAttribute("data-lang");if(c)return A(c);const u=O(r.className);if(u)return A(u)}const o=t.textContent||"";return _(o)}function z(){const t=b();if(t.hostUrl)return`${t.hostUrl}/themes`;const e=t.cdn,n=t.version;let s;e==="jsdelivr"?s="https://cdn.jsdelivr.net/npm":e==="unpkg"?s="https://unpkg.com":s=e;const r=n==="latest"?"":`@${n}`;return`${s}/@arborium/arborium${r}/dist/themes`}function bt(){const t="arborium-base";if(document.getElementById(t))return;const e=`${z()}/base-rustdoc.css`;console.debug(`[arborium] Loading base CSS: ${e}`);const n=document.createElement("link");n.id=t,n.rel="stylesheet",n.href=e,document.head.appendChild(n)}let w=null;function Y(t){if(w&&w!==t){const r=document.getElementById(`arborium-theme-${w}`);r&&(r.remove(),console.debug(`[arborium] Removed theme: ${w}`))}const e=`arborium-theme-${t}`;if(document.getElementById(e)){w=t;return}const n=`${z()}/${t}.css`;console.debug(`[arborium] Loading theme: ${n}`);const s=document.createElement("link");s.id=e,s.rel="stylesheet",s.href=n,document.head.appendChild(s),w=t}async function V(t,e,n){const s=t.textContent||"";if(s.trim())try{const r=await P(e,s,n);t.innerHTML=r,t.setAttribute("data-highlighted","true"),t.setAttribute("data-lang",e)}catch(r){console.warn(`[arborium] Failed to highlight ${e}:`,r)}}async function M(){const t=b();bt(),Y(t.theme);const e=dt(t.selector);if(e.length===0)return;const n=new Map,s=[];for(const a of e){if(a.hasAttribute("data-highlighted")||ht(a))continue;const l=G(a);if(l){const f=n.get(l)||[];f.push(a),n.set(l,f)}else s.push(a)}const r=Array.from(n.keys()),o=r.map(a=>F(a).catch(l=>(console.warn(`[arborium] Failed to load grammar for ${a}:`,l),null))),c=await Promise.all(o),u=[];for(let a=0;a<r.length;a++){const l=r[a];if(!c[a])continue;const i=n.get(l)||[];for(const d of i)u.push(V(d,l,t))}await Promise.all(u);const y=e.length,p=e.filter(a=>a.hasAttribute("data-highlighted")).length,m=s.length;(p>0||m>0)&&console.debug(`[arborium] Highlighted ${p}/${y} blocks`+(m>0?` (${m} unknown language)`:""))}async function J(t){I({...b(),...t}),await M()}async function K(t,e,n){const s=I({...b(),...n}),r=e||G(t);if(!r){console.warn("[arborium] Could not detect language for element");return}await V(t,r,s)}window.arborium={highlightAll:J,highlightElement:K,loadGrammar:F,highlight:P,detectLanguage:_,config:b()};async function Q(){const t=D();b().theme!==t&&(N({theme:t}),window.arborium.config=b(),Y(t),console.debug(`[arborium] Theme changed to: ${t}`))}function X(){new MutationObserver(e=>{for(const n of e)if(n.attributeName==="data-theme"&&q()){Q();break}}).observe(document.documentElement,{attributes:!0}),window.matchMedia("(prefers-color-scheme: light)").addEventListener("change",()=>Q())}return b().manual||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{M(),X()}):(M(),X())),v.highlightAll=J,v.highlightElement=K,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),v})({});
1
+ var arborium=(function(_){"use strict";class T extends Error{constructor(r){super(r),this.name="WasiError"}}class L{write(r){return BigInt(0)}blockingWriteAndFlush(r){}blockingFlush(){}checkWrite(){return BigInt(1048576)}subscribe(){}}class I{read(r){return new Uint8Array(0)}blockingRead(r){return new Uint8Array(0)}subscribe(){}}function aa(){const a=new L,r=new L,s=new I,n={getEnvironment:()=>[],getArguments:()=>[]},m={exit:o=>{if(o.tag==="err")throw new T(`WASI exit with error: ${o.val}`)}},e={getStdin:()=>s},l={getStdout:()=>a},i={getStderr:()=>r},v={now:()=>{const o=Date.now();return{seconds:BigInt(Math.floor(o/1e3)),nanoseconds:o%1e3*1e6}},resolution:()=>({seconds:BigInt(0),nanoseconds:1e6})},h={Descriptor:class{},DirectoryEntryStream:class{},filesystemErrorCode:()=>null},g={getDirectories:()=>[]},t={Error:T},c={InputStream:I,OutputStream:L},u={getRandomBytes:o=>{const d=new Uint8Array(Number(o));return crypto.getRandomValues(d),d},getRandomU64:()=>{const o=new Uint8Array(8);return crypto.getRandomValues(o),new DataView(o.buffer).getBigUint64(0,!0)}};return{"wasi:cli/environment":n,"wasi:cli/exit":m,"wasi:cli/stdin":e,"wasi:cli/stdout":l,"wasi:cli/stderr":i,"wasi:clocks/wall-clock":v,"wasi:filesystem/types":h,"wasi:filesystem/preopens":g,"wasi:io/error":t,"wasi:io/streams":c,"wasi:random/random":u,"wasi:cli/environment@0.2.3":n,"wasi:cli/exit@0.2.3":m,"wasi:cli/stdin@0.2.3":e,"wasi:cli/stdout@0.2.3":l,"wasi:cli/stderr@0.2.3":i,"wasi:clocks/wall-clock@0.2.3":v,"wasi:filesystem/types@0.2.3":h,"wasi:filesystem/preopens@0.2.3":g,"wasi:io/error@0.2.3":t,"wasi:io/streams@0.2.3":c,"wasi:random/random@0.2.3":u}}const ra={"arborium:grammar/types@0.1.0":{}},M={entries:[{language:"ada",package:"@arborium/ada",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ada@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ada@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/ada/npm/grammar.js",local_wasm:"/langs/group-moss/ada/npm/grammar.core.wasm"},{language:"agda",package:"@arborium/agda",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/agda@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/agda@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/agda/npm/grammar.js",local_wasm:"/langs/group-fern/agda/npm/grammar.core.wasm"},{language:"asciidoc",package:"@arborium/asciidoc",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/asciidoc@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/asciidoc@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/asciidoc/npm/grammar.js",local_wasm:"/langs/group-willow/asciidoc/npm/grammar.core.wasm"},{language:"asm",package:"@arborium/asm",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/asm@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/asm@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/asm/npm/grammar.js",local_wasm:"/langs/group-birch/asm/npm/grammar.core.wasm"},{language:"awk",package:"@arborium/awk",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/awk@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/awk@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/awk/npm/grammar.js",local_wasm:"/langs/group-hazel/awk/npm/grammar.core.wasm"},{language:"bash",package:"@arborium/bash",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/bash@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/bash@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/bash/npm/grammar.js",local_wasm:"/langs/group-hazel/bash/npm/grammar.core.wasm"},{language:"batch",package:"@arborium/batch",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/batch@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/batch@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/batch/npm/grammar.js",local_wasm:"/langs/group-hazel/batch/npm/grammar.core.wasm"},{language:"c",package:"@arborium/c",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/c@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/c@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/c/npm/grammar.js",local_wasm:"/langs/group-birch/c/npm/grammar.core.wasm"},{language:"c-sharp",package:"@arborium/c-sharp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/c-sharp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/c-sharp@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/c-sharp/npm/grammar.js",local_wasm:"/langs/group-sage/c-sharp/npm/grammar.core.wasm"},{language:"caddy",package:"@arborium/caddy",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/caddy@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/caddy@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/caddy/npm/grammar.js",local_wasm:"/langs/group-maple/caddy/npm/grammar.core.wasm"},{language:"capnp",package:"@arborium/capnp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/capnp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/capnp@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/capnp/npm/grammar.js",local_wasm:"/langs/group-pine/capnp/npm/grammar.core.wasm"},{language:"clojure",package:"@arborium/clojure",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/clojure@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/clojure@1.0.5/grammar.core.wasm",local_js:"/langs/group-cedar/clojure/npm/grammar.js",local_wasm:"/langs/group-cedar/clojure/npm/grammar.core.wasm"},{language:"cmake",package:"@arborium/cmake",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/cmake@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/cmake@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/cmake/npm/grammar.js",local_wasm:"/langs/group-maple/cmake/npm/grammar.core.wasm"},{language:"commonlisp",package:"@arborium/commonlisp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/commonlisp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/commonlisp@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/commonlisp/npm/grammar.js",local_wasm:"/langs/group-fern/commonlisp/npm/grammar.core.wasm"},{language:"cpp",package:"@arborium/cpp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/cpp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/cpp@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/cpp/npm/grammar.js",local_wasm:"/langs/group-birch/cpp/npm/grammar.core.wasm"},{language:"css",package:"@arborium/css",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/css@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/css@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/css/npm/grammar.js",local_wasm:"/langs/group-acorn/css/npm/grammar.core.wasm"},{language:"d",package:"@arborium/d",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/d@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/d@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/d/npm/grammar.js",local_wasm:"/langs/group-birch/d/npm/grammar.core.wasm"},{language:"dart",package:"@arborium/dart",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/dart@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/dart@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/dart/npm/grammar.js",local_wasm:"/langs/group-pine/dart/npm/grammar.core.wasm"},{language:"devicetree",package:"@arborium/devicetree",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/devicetree@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/devicetree@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/devicetree/npm/grammar.js",local_wasm:"/langs/group-pine/devicetree/npm/grammar.core.wasm"},{language:"diff",package:"@arborium/diff",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/diff@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/diff@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/diff/npm/grammar.js",local_wasm:"/langs/group-willow/diff/npm/grammar.core.wasm"},{language:"dockerfile",package:"@arborium/dockerfile",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/dockerfile@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/dockerfile@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/dockerfile/npm/grammar.js",local_wasm:"/langs/group-maple/dockerfile/npm/grammar.core.wasm"},{language:"dot",package:"@arborium/dot",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/dot@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/dot@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/dot/npm/grammar.js",local_wasm:"/langs/group-maple/dot/npm/grammar.core.wasm"},{language:"elisp",package:"@arborium/elisp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/elisp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/elisp@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/elisp/npm/grammar.js",local_wasm:"/langs/group-sage/elisp/npm/grammar.core.wasm"},{language:"elixir",package:"@arborium/elixir",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/elixir@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/elixir@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/elixir/npm/grammar.js",local_wasm:"/langs/group-fern/elixir/npm/grammar.core.wasm"},{language:"elm",package:"@arborium/elm",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/elm@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/elm@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/elm/npm/grammar.js",local_wasm:"/langs/group-fern/elm/npm/grammar.core.wasm"},{language:"erlang",package:"@arborium/erlang",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/erlang@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/erlang@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/erlang/npm/grammar.js",local_wasm:"/langs/group-fern/erlang/npm/grammar.core.wasm"},{language:"fish",package:"@arborium/fish",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/fish@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/fish@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/fish/npm/grammar.js",local_wasm:"/langs/group-hazel/fish/npm/grammar.core.wasm"},{language:"fsharp",package:"@arborium/fsharp",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/fsharp@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/fsharp@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/fsharp/npm/grammar.js",local_wasm:"/langs/group-sage/fsharp/npm/grammar.core.wasm"},{language:"gleam",package:"@arborium/gleam",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/gleam@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/gleam@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/gleam/npm/grammar.js",local_wasm:"/langs/group-fern/gleam/npm/grammar.core.wasm"},{language:"glsl",package:"@arborium/glsl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/glsl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/glsl@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/glsl/npm/grammar.js",local_wasm:"/langs/group-moss/glsl/npm/grammar.core.wasm"},{language:"go",package:"@arborium/go",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/go@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/go@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/go/npm/grammar.js",local_wasm:"/langs/group-birch/go/npm/grammar.core.wasm"},{language:"graphql",package:"@arborium/graphql",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/graphql@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/graphql@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/graphql/npm/grammar.js",local_wasm:"/langs/group-maple/graphql/npm/grammar.core.wasm"},{language:"haskell",package:"@arborium/haskell",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/haskell@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/haskell@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/haskell/npm/grammar.js",local_wasm:"/langs/group-fern/haskell/npm/grammar.core.wasm"},{language:"hcl",package:"@arborium/hcl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/hcl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/hcl@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/hcl/npm/grammar.js",local_wasm:"/langs/group-maple/hcl/npm/grammar.core.wasm"},{language:"hlsl",package:"@arborium/hlsl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/hlsl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/hlsl@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/hlsl/npm/grammar.js",local_wasm:"/langs/group-moss/hlsl/npm/grammar.core.wasm"},{language:"html",package:"@arborium/html",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/html@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/html@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/html/npm/grammar.js",local_wasm:"/langs/group-acorn/html/npm/grammar.core.wasm"},{language:"idris",package:"@arborium/idris",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/idris@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/idris@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/idris/npm/grammar.js",local_wasm:"/langs/group-fern/idris/npm/grammar.core.wasm"},{language:"ini",package:"@arborium/ini",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ini@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ini@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/ini/npm/grammar.js",local_wasm:"/langs/group-maple/ini/npm/grammar.core.wasm"},{language:"java",package:"@arborium/java",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/java@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/java@1.0.5/grammar.core.wasm",local_js:"/langs/group-cedar/java/npm/grammar.js",local_wasm:"/langs/group-cedar/java/npm/grammar.core.wasm"},{language:"javascript",package:"@arborium/javascript",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/javascript@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/javascript@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/javascript/npm/grammar.js",local_wasm:"/langs/group-acorn/javascript/npm/grammar.core.wasm"},{language:"jinja2",package:"@arborium/jinja2",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/jinja2@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/jinja2@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/jinja2/npm/grammar.js",local_wasm:"/langs/group-willow/jinja2/npm/grammar.core.wasm"},{language:"jq",package:"@arborium/jq",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/jq@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/jq@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/jq/npm/grammar.js",local_wasm:"/langs/group-maple/jq/npm/grammar.core.wasm"},{language:"json",package:"@arborium/json",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/json@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/json@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/json/npm/grammar.js",local_wasm:"/langs/group-acorn/json/npm/grammar.core.wasm"},{language:"julia",package:"@arborium/julia",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/julia@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/julia@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/julia/npm/grammar.js",local_wasm:"/langs/group-moss/julia/npm/grammar.core.wasm"},{language:"kdl",package:"@arborium/kdl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/kdl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/kdl@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/kdl/npm/grammar.js",local_wasm:"/langs/group-maple/kdl/npm/grammar.core.wasm"},{language:"kotlin",package:"@arborium/kotlin",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/kotlin@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/kotlin@1.0.5/grammar.core.wasm",local_js:"/langs/group-cedar/kotlin/npm/grammar.js",local_wasm:"/langs/group-cedar/kotlin/npm/grammar.core.wasm"},{language:"lean",package:"@arborium/lean",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/lean@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/lean@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/lean/npm/grammar.js",local_wasm:"/langs/group-fern/lean/npm/grammar.core.wasm"},{language:"lua",package:"@arborium/lua",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/lua@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/lua@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/lua/npm/grammar.js",local_wasm:"/langs/group-hazel/lua/npm/grammar.core.wasm"},{language:"markdown",package:"@arborium/markdown",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/markdown@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/markdown@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/markdown/npm/grammar.js",local_wasm:"/langs/group-willow/markdown/npm/grammar.core.wasm"},{language:"matlab",package:"@arborium/matlab",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/matlab@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/matlab@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/matlab/npm/grammar.js",local_wasm:"/langs/group-moss/matlab/npm/grammar.core.wasm"},{language:"meson",package:"@arborium/meson",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/meson@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/meson@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/meson/npm/grammar.js",local_wasm:"/langs/group-maple/meson/npm/grammar.core.wasm"},{language:"nginx",package:"@arborium/nginx",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/nginx@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/nginx@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/nginx/npm/grammar.js",local_wasm:"/langs/group-maple/nginx/npm/grammar.core.wasm"},{language:"ninja",package:"@arborium/ninja",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ninja@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ninja@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/ninja/npm/grammar.js",local_wasm:"/langs/group-maple/ninja/npm/grammar.core.wasm"},{language:"nix",package:"@arborium/nix",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/nix@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/nix@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/nix/npm/grammar.js",local_wasm:"/langs/group-maple/nix/npm/grammar.core.wasm"},{language:"objc",package:"@arborium/objc",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/objc@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/objc@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/objc/npm/grammar.js",local_wasm:"/langs/group-birch/objc/npm/grammar.core.wasm"},{language:"ocaml",package:"@arborium/ocaml",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ocaml@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ocaml@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/ocaml/npm/grammar.js",local_wasm:"/langs/group-fern/ocaml/npm/grammar.core.wasm"},{language:"perl",package:"@arborium/perl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/perl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/perl@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/perl/npm/grammar.js",local_wasm:"/langs/group-hazel/perl/npm/grammar.core.wasm"},{language:"php",package:"@arborium/php",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/php@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/php@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/php/npm/grammar.js",local_wasm:"/langs/group-hazel/php/npm/grammar.core.wasm"},{language:"postscript",package:"@arborium/postscript",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/postscript@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/postscript@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/postscript/npm/grammar.js",local_wasm:"/langs/group-sage/postscript/npm/grammar.core.wasm"},{language:"powershell",package:"@arborium/powershell",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/powershell@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/powershell@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/powershell/npm/grammar.js",local_wasm:"/langs/group-hazel/powershell/npm/grammar.core.wasm"},{language:"prolog",package:"@arborium/prolog",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/prolog@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/prolog@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/prolog/npm/grammar.js",local_wasm:"/langs/group-moss/prolog/npm/grammar.core.wasm"},{language:"python",package:"@arborium/python",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/python@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/python@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/python/npm/grammar.js",local_wasm:"/langs/group-hazel/python/npm/grammar.core.wasm"},{language:"query",package:"@arborium/query",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/query@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/query@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/query/npm/grammar.js",local_wasm:"/langs/group-maple/query/npm/grammar.core.wasm"},{language:"r",package:"@arborium/r",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/r@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/r@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/r/npm/grammar.js",local_wasm:"/langs/group-moss/r/npm/grammar.core.wasm"},{language:"rescript",package:"@arborium/rescript",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/rescript@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/rescript@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/rescript/npm/grammar.js",local_wasm:"/langs/group-pine/rescript/npm/grammar.core.wasm"},{language:"ron",package:"@arborium/ron",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ron@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ron@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/ron/npm/grammar.js",local_wasm:"/langs/group-maple/ron/npm/grammar.core.wasm"},{language:"ruby",package:"@arborium/ruby",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ruby@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ruby@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/ruby/npm/grammar.js",local_wasm:"/langs/group-hazel/ruby/npm/grammar.core.wasm"},{language:"rust",package:"@arborium/rust",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/rust@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/rust@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/rust/npm/grammar.js",local_wasm:"/langs/group-birch/rust/npm/grammar.core.wasm"},{language:"scala",package:"@arborium/scala",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/scala@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/scala@1.0.5/grammar.core.wasm",local_js:"/langs/group-cedar/scala/npm/grammar.js",local_wasm:"/langs/group-cedar/scala/npm/grammar.core.wasm"},{language:"scheme",package:"@arborium/scheme",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/scheme@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/scheme@1.0.5/grammar.core.wasm",local_js:"/langs/group-fern/scheme/npm/grammar.js",local_wasm:"/langs/group-fern/scheme/npm/grammar.core.wasm"},{language:"scss",package:"@arborium/scss",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/scss@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/scss@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/scss/npm/grammar.js",local_wasm:"/langs/group-acorn/scss/npm/grammar.core.wasm"},{language:"sparql",package:"@arborium/sparql",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/sparql@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/sparql@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/sparql/npm/grammar.js",local_wasm:"/langs/group-moss/sparql/npm/grammar.core.wasm"},{language:"sql",package:"@arborium/sql",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/sql@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/sql@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/sql/npm/grammar.js",local_wasm:"/langs/group-maple/sql/npm/grammar.core.wasm"},{language:"ssh-config",package:"@arborium/ssh-config",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/ssh-config@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/ssh-config@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/ssh-config/npm/grammar.js",local_wasm:"/langs/group-maple/ssh-config/npm/grammar.core.wasm"},{language:"starlark",package:"@arborium/starlark",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/starlark@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/starlark@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/starlark/npm/grammar.js",local_wasm:"/langs/group-pine/starlark/npm/grammar.core.wasm"},{language:"svelte",package:"@arborium/svelte",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/svelte@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/svelte@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/svelte/npm/grammar.js",local_wasm:"/langs/group-willow/svelte/npm/grammar.core.wasm"},{language:"swift",package:"@arborium/swift",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/swift@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/swift@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/swift/npm/grammar.js",local_wasm:"/langs/group-pine/swift/npm/grammar.core.wasm"},{language:"textproto",package:"@arborium/textproto",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/textproto@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/textproto@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/textproto/npm/grammar.js",local_wasm:"/langs/group-pine/textproto/npm/grammar.core.wasm"},{language:"thrift",package:"@arborium/thrift",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/thrift@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/thrift@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/thrift/npm/grammar.js",local_wasm:"/langs/group-pine/thrift/npm/grammar.core.wasm"},{language:"tlaplus",package:"@arborium/tlaplus",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/tlaplus@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/tlaplus@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/tlaplus/npm/grammar.js",local_wasm:"/langs/group-moss/tlaplus/npm/grammar.core.wasm"},{language:"toml",package:"@arborium/toml",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/toml@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/toml@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/toml/npm/grammar.js",local_wasm:"/langs/group-maple/toml/npm/grammar.core.wasm"},{language:"tsx",package:"@arborium/tsx",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/tsx@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/tsx@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/tsx/npm/grammar.js",local_wasm:"/langs/group-acorn/tsx/npm/grammar.core.wasm"},{language:"typescript",package:"@arborium/typescript",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/typescript@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/typescript@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/typescript/npm/grammar.js",local_wasm:"/langs/group-acorn/typescript/npm/grammar.core.wasm"},{language:"typst",package:"@arborium/typst",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/typst@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/typst@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/typst/npm/grammar.js",local_wasm:"/langs/group-willow/typst/npm/grammar.core.wasm"},{language:"uiua",package:"@arborium/uiua",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/uiua@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/uiua@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/uiua/npm/grammar.js",local_wasm:"/langs/group-pine/uiua/npm/grammar.core.wasm"},{language:"vb",package:"@arborium/vb",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/vb@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/vb@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/vb/npm/grammar.js",local_wasm:"/langs/group-sage/vb/npm/grammar.core.wasm"},{language:"verilog",package:"@arborium/verilog",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/verilog@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/verilog@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/verilog/npm/grammar.js",local_wasm:"/langs/group-moss/verilog/npm/grammar.core.wasm"},{language:"vhdl",package:"@arborium/vhdl",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/vhdl@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/vhdl@1.0.5/grammar.core.wasm",local_js:"/langs/group-moss/vhdl/npm/grammar.js",local_wasm:"/langs/group-moss/vhdl/npm/grammar.core.wasm"},{language:"vim",package:"@arborium/vim",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/vim@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/vim@1.0.5/grammar.core.wasm",local_js:"/langs/group-sage/vim/npm/grammar.js",local_wasm:"/langs/group-sage/vim/npm/grammar.core.wasm"},{language:"vue",package:"@arborium/vue",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/vue@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/vue@1.0.5/grammar.core.wasm",local_js:"/langs/group-willow/vue/npm/grammar.js",local_wasm:"/langs/group-willow/vue/npm/grammar.core.wasm"},{language:"x86asm",package:"@arborium/x86asm",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/x86asm@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/x86asm@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/x86asm/npm/grammar.js",local_wasm:"/langs/group-birch/x86asm/npm/grammar.core.wasm"},{language:"xml",package:"@arborium/xml",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/xml@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/xml@1.0.5/grammar.core.wasm",local_js:"/langs/group-acorn/xml/npm/grammar.js",local_wasm:"/langs/group-acorn/xml/npm/grammar.core.wasm"},{language:"yaml",package:"@arborium/yaml",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/yaml@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/yaml@1.0.5/grammar.core.wasm",local_js:"/langs/group-maple/yaml/npm/grammar.js",local_wasm:"/langs/group-maple/yaml/npm/grammar.core.wasm"},{language:"yuri",package:"@arborium/yuri",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/yuri@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/yuri@1.0.5/grammar.core.wasm",local_js:"/langs/group-pine/yuri/npm/grammar.js",local_wasm:"/langs/group-pine/yuri/npm/grammar.core.wasm"},{language:"zig",package:"@arborium/zig",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/zig@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/zig@1.0.5/grammar.core.wasm",local_js:"/langs/group-birch/zig/npm/grammar.js",local_wasm:"/langs/group-birch/zig/npm/grammar.core.wasm"},{language:"zsh",package:"@arborium/zsh",version:"1.0.5",cdn_js:"https://cdn.jsdelivr.net/npm/@arborium/zsh@1.0.5/grammar.js",cdn_wasm:"https://cdn.jsdelivr.net/npm/@arborium/zsh@1.0.5/grammar.core.wasm",local_js:"/langs/group-hazel/zsh/npm/grammar.js",local_wasm:"/langs/group-hazel/zsh/npm/grammar.core.wasm"}]},sa={manual:!1,theme:"one-dark",selector:"pre code",cdn:"jsdelivr",version:"1",pluginsUrl:"",hostUrl:""};let f=null,k=null,p={...sa};const S=new Map;let A=M,y=null,q=new Set(M.entries.map(a=>a.language));async function na(){if(p.pluginsUrl)return y||(y=(async()=>{console.debug(`[arborium] Loading plugins manifest from: ${p.pluginsUrl}`);const a=await fetch(p.pluginsUrl);if(!a.ok)throw new Error(`Failed to load plugins.json: ${a.status}`);A=await a.json(),q=new Set(A.entries.map(r=>r.language)),console.debug(`[arborium] Available languages: ${Array.from(q).join(", ")}`)})(),y)}async function z(a){const r=S.get(a);if(r)return console.debug(`[arborium] Grammar '${a}' found in cache`),r;await na();const s=A.entries.find(n=>n.language===a);if(!s)return console.debug(`[arborium] Grammar '${a}' not found in manifest`),null;try{const n=p.pluginsUrl?s.local_js:s.cdn_js,m=n.substring(0,n.lastIndexOf("/"));console.debug(`[arborium] Loading grammar '${a}' from ${n}`);const e=await import(n),l=async c=>{const u=`${m}/${c}`,o=await fetch(u);if(!o.ok)throw new Error(`Failed to fetch WASM ${c}: ${o.status}`);const d=await o.arrayBuffer();return WebAssembly.compile(d)},v={...aa(),...ra},h=await e.instantiate(l,v),g=h.plugin||h["arborium:grammar/plugin@0.1.0"];if(!g)return console.error(`Grammar '${a}' missing plugin interface`),null;const t={languageId:a,injectionLanguages:g.injectionLanguages?.()??[],parse:c=>{const u=g.createSession();try{g.setText(u,c);const o=g.parse(u);if(o.tag==="err"){const ha=o.val;return console.error(`[arborium] Parse error: ${ha?.message}`),{spans:[],injections:[]}}const d=o.tag==="ok"?o.val:o;if(!d||typeof d!="object")return console.error("[arborium] Unexpected parse result:",o),{spans:[],injections:[]};const Z=d;return{spans:Z.spans||[],injections:Z.injections||[]}}finally{g.freeSession(u)}}};return S.set(a,t),console.debug(`[arborium] Grammar '${a}' loaded successfully`),t}catch(n){return console.error(`[arborium] Failed to load grammar '${a}':`,n),null}}const U=new Map;let ma=1;function ea(){window.arboriumHost={isLanguageAvailable(a){return q.has(a)||S.has(a)},async loadGrammar(a){const r=await z(a);if(!r)return 0;for(const[n,m]of U)if(m===r)return n;const s=ma++;return U.set(s,r),s},parse(a,r){const s=U.get(a);return s?s.parse(r):{spans:[],injections:[]}}}}function oa(){if(p.hostUrl)return p.hostUrl;const a=p.cdn,r=p.version;let s;a==="jsdelivr"?s="https://cdn.jsdelivr.net/npm":a==="unpkg"?s="https://unpkg.com":s=a;const n=r==="latest"?"":`@${r}`;return`${s}/@arborium/arborium${n}/dist`}async function ta(){return f||k||(k=(async()=>{ea();const a=oa(),r=`${a}/arborium_host.js`,s=`${a}/arborium_host_bg.wasm`;console.debug(`[arborium] Loading host from ${r}`);try{const n=await import(r);return await n.default(s),f={highlight:n.highlight,isLanguageAvailable:n.isLanguageAvailable},console.debug("[arborium] Host loaded successfully"),f}catch(n){return console.error("[arborium] Failed to load host:",n),null}})(),k)}async function R(a,r,s){const n=await ta();if(n)try{return n.highlight(a,r)}catch(l){console.warn("Host highlight failed, falling back to JS:",l)}const m=await z(a);if(!m)return x(r);const e=m.parse(r);return W(r,e.spans)}async function B(a,r){const s=await z(a);return s?{languageId:()=>s.languageId,injectionLanguages:()=>s.injectionLanguages,highlight:async n=>{const m=s.parse(n);return W(n,m.spans)},parse:n=>s.parse(n),dispose:()=>{}}:null}function W(a,r){const s=[...r].sort((e,l)=>e.start-l.start);let n="",m=0;for(const e of s){if(e.start<m)continue;e.start>m&&(n+=x(a.slice(m,e.start)));const l=la(e.capture),i=x(a.slice(e.start,e.end));l?n+=`<a-${l}>${i}</a-${l}>`:n+=i,m=e.end}return m<a.length&&(n+=x(a.slice(m))),n}function la(a){return a.startsWith("keyword")||a==="include"||a==="conditional"?"k":a.startsWith("function")||a.startsWith("method")?"f":a.startsWith("string")||a==="character"?"s":a.startsWith("comment")?"c":a.startsWith("type")?"t":a.startsWith("variable")?"v":a.startsWith("number")||a==="float"?"n":a.startsWith("operator")?"o":a.startsWith("punctuation")?"p":a.startsWith("tag")?"tg":a.startsWith("attribute")?"at":null}function x(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function C(a){return a?{...p,...a}:{...p}}function P(a){p={...p,...a}}const ca=[[/^#!.*\bpython[23]?\b/,"python"],[/^#!.*\bnode\b/,"javascript"],[/^#!.*\bdeno\b/,"typescript"],[/^#!.*\bbun\b/,"typescript"],[/^#!.*\bruby\b/,"ruby"],[/^#!.*\bperl\b/,"perl"],[/^#!.*\bphp\b/,"php"],[/^#!.*\bbash\b/,"bash"],[/^#!.*\bzsh\b/,"zsh"],[/^#!.*\bsh\b/,"bash"],[/^#!.*\blua\b/,"lua"],[/^#!.*\bawk\b/,"awk"]],ia=[[/\b(fn|impl|trait|pub\s+fn|let\s+mut|&mut|->)\b/,"rust"],[/\b(func|package\s+\w+|import\s+\(|go\s+func|chan\s+\w+)\b/,"go"],[/\b(def\s+\w+\s*\(|import\s+\w+|from\s+\w+\s+import|class\s+\w+:)\b/,"python"],[/:\s*(string|number|boolean|void)\b|\binterface\s+\w+\s*\{/,"typescript"],[/\b(const|let|var)\s+\w+\s*=|function\s+\w+\s*\(|=>\s*\{/,"javascript"],[/\b(def\s+\w+|end\b|do\s*\|.*\||puts\s+|require\s+['"])\b/,"ruby"],[/\b(public\s+class|private\s+\w+|System\.out\.println)\b/,"java"],[/\b(#include\s*<|std::|template\s*<|nullptr|cout\s*<<)\b/,"cpp"],[/\b(#include\s*[<"]|printf\s*\(|int\s+main\s*\(|void\s+\w+\s*\()\b/,"c"],[/\b(namespace\s+\w+|using\s+System|public\s+static\s+void)\b/,"c-sharp"],[/<\?php|\$\w+\s*=/,"php"],[/\b(func\s+\w+|var\s+\w+:\s*\w+|let\s+\w+:\s*\w+|@objc)\b/,"swift"],[/\b(fun\s+\w+|val\s+\w+|var\s+\w+:|data\s+class)\b/,"kotlin"],[/\b(def\s+\w+|val\s+\w+|var\s+\w+|object\s+\w+|case\s+class)\b/,"scala"],[/\b(module\s+\w+|import\s+qualified|data\s+\w+\s*=|::\s*\w+\s*->)\b/,"haskell"],[/\b(defmodule\s+\w+|def\s+\w+|defp\s+\w+|\|>)\b/,"elixir"],[/\b(local\s+\w+\s*=|function\s+\w+\.\w+|require\s*\()\b/,"lua"],[/\b(SELECT\s+.*\s+FROM|INSERT\s+INTO|CREATE\s+TABLE|ALTER\s+TABLE)\b/i,"sql"],[/\b(if\s+\[\s*|then\b|fi\b|echo\s+["']|export\s+\w+=)\b/,"bash"],[/^\s*[\w-]+:\s*[\w\-"'[{]|^---\s*$/,"yaml"],[/^\s*\{[\s\S]*"[\w-]+":\s*/,"json"],[/^\s*\[[\w.-]+\]\s*$|^\s*\w+\s*=\s*["'\d\[]/,"toml"],[/<(!DOCTYPE|html|head|body|div|span|p|a\s)/i,"html"],[/^\s*[\w.#@][\w\s,#.:>+~-]*\{[^}]*\}|@media\s|@import\s/,"css"],[/^#{1,6}\s+\w|^\s*[-*+]\s+\w|^\s*\d+\.\s+\w|```\w*\n/,"markdown"],[/<\?xml|<[\w:-]+\s+xmlns/,"xml"],[/^FROM\s+\w+|^RUN\s+|^COPY\s+|^ENTRYPOINT\s+/m,"dockerfile"],[/\b(server\s*\{|location\s+[\/~]|proxy_pass\s+)\b/,"nginx"],[/\b(pub\s+fn|const\s+\w+\s*=|@import\(|comptime)\b/,"zig"]];function F(a){const r=a.split(`
2
+ `)[0];for(const[s,n]of ca)if(s.test(r))return n;for(const[s,n]of ia)if(s.test(a))return n;return null}function H(a){const r=a.match(/\blanguage-(\w+)\b/);if(r)return r[1];const s=a.match(/\blang-(\w+)\b/);if(s)return s[1];const n=new Set(["rust","javascript","typescript","python","ruby","go","java","c","cpp","csharp","php","swift","kotlin","scala","haskell","elixir","lua","sql","bash","shell","yaml","json","toml","html","css","xml","markdown","dockerfile","nginx","zig","text","plaintext","console","sh"]);for(const m of a.split(/\s+/))if(n.has(m.toLowerCase()))return m.toLowerCase();return null}function $(a){const r={js:"javascript",ts:"typescript",py:"python",rb:"ruby",rs:"rust",sh:"bash",shell:"bash",yml:"yaml",cs:"c-sharp",csharp:"c-sharp","c++":"cpp","c#":"c-sharp","f#":"fsharp",dockerfile:"dockerfile",docker:"dockerfile",makefile:"make",plaintext:"text",plain:"text",txt:"text"},s=a.toLowerCase();return r[s]||s}const j=document.currentScript;function ga(){if(!j?.src)return new URLSearchParams;try{return new URL(j.src).searchParams}catch{return new URLSearchParams}}function pa(){if(!j)return{};const a={},r=ga();j.hasAttribute("data-manual")&&(a.manual=!0);const s=j.getAttribute("data-theme");s&&(a.theme=s);const n=j.getAttribute("data-selector");n&&(a.selector=n);const m=j.getAttribute("data-cdn");m&&(a.cdn=m);const e=j.getAttribute("data-version");e&&(a.version=e);const l=r.get("pluginsUrl");l&&(a.pluginsUrl=l);const i=r.get("hostUrl");return i&&(a.hostUrl=i),a}function N(){return document.querySelector('meta[name="generator"]')?.getAttribute("content")==="rustdoc"}function ua(a){if(!a)return null;const r={light:"rustdoc-light",dark:"rustdoc-dark",ayu:"rustdoc-ayu"};return r[a]?r[a]:null}function O(){if(N()){const r=ua(document.documentElement.dataset.theme);if(r)return r}return window.matchMedia("(prefers-color-scheme: light)").matches?"github-light":"one-dark"}function w(){const a=window.Arborium||{},r=pa(),s={...a,...r};return s.theme||(s.theme=O()),P(s),C()}function da(a){return Array.from(document.querySelectorAll(a))}function ja(a){const r=["hljs","highlighted","prism-code","shiki"];for(const m of r)if(a.classList.contains(m))return!0;const s=a.querySelectorAll("span[class]");return s.length>0&&Array.from(s).filter(e=>e.className&&e.className.length>0).length>=3||a.querySelectorAll("a").length>=2}function D(a){const r=a.getAttribute("data-lang");if(r)return $(r);const s=a.className,n=H(s);if(n)return $(n);const m=a.parentElement;if(m){const l=m.getAttribute("data-lang");if(l)return $(l);const i=H(m.className);if(i)return $(i)}const e=a.textContent||"";return F(e)}function G(){const a=w();if(a.hostUrl)return`${a.hostUrl}/themes`;const r=a.cdn,s=a.version;let n;r==="jsdelivr"?n="https://cdn.jsdelivr.net/npm":r==="unpkg"?n="https://unpkg.com":n=r;const m=s==="latest"?"":`@${s}`;return`${n}/@arborium/arborium${m}/dist/themes`}function wa(){const a="arborium-base";if(document.getElementById(a))return;const r=`${G()}/base-rustdoc.css`;console.debug(`[arborium] Loading base CSS: ${r}`);const s=document.createElement("link");s.id=a,s.rel="stylesheet",s.href=r,document.head.appendChild(s)}let b=null;function Y(a){if(b&&b!==a){const m=document.getElementById(`arborium-theme-${b}`);m&&(m.remove(),console.debug(`[arborium] Removed theme: ${b}`))}const r=`arborium-theme-${a}`;if(document.getElementById(r)){b=a;return}const s=`${G()}/${a}.css`;console.debug(`[arborium] Loading theme: ${s}`);const n=document.createElement("link");n.id=r,n.rel="stylesheet",n.href=s,document.head.appendChild(n),b=a}async function V(a,r,s){const n=a.textContent||"";if(n.trim())try{const m=await R(r,n,s);a.innerHTML=m,a.setAttribute("data-highlighted","true"),a.setAttribute("data-lang",r)}catch(m){console.warn(`[arborium] Failed to highlight ${r}:`,m)}}async function E(){const a=w();wa(),Y(a.theme);const r=da(a.selector);if(r.length===0)return;const s=new Map,n=[];for(const t of r){if(t.hasAttribute("data-highlighted")||ja(t))continue;const c=D(t);if(c){const u=s.get(c)||[];u.push(t),s.set(c,u)}else n.push(t)}const m=Array.from(s.keys()),e=m.map(t=>B(t).catch(c=>(console.warn(`[arborium] Failed to load grammar for ${t}:`,c),null))),l=await Promise.all(e),i=[];for(let t=0;t<m.length;t++){const c=m[t];if(!l[t])continue;const o=s.get(c)||[];for(const d of o)i.push(V(d,c,a))}await Promise.all(i);const v=r.length,h=r.filter(t=>t.hasAttribute("data-highlighted")).length,g=n.length;(h>0||g>0)&&console.debug(`[arborium] Highlighted ${h}/${v} blocks`+(g>0?` (${g} unknown language)`:""))}async function J(a){C({...w(),...a}),await E()}async function K(a,r,s){const n=C({...w(),...s}),m=r||D(a);if(!m){console.warn("[arborium] Could not detect language for element");return}await V(a,m,n)}window.arborium={highlightAll:J,highlightElement:K,loadGrammar:B,highlight:R,detectLanguage:F,config:w()};async function Q(){const a=O();w().theme!==a&&(P({theme:a}),window.arborium.config=w(),Y(a),console.debug(`[arborium] Theme changed to: ${a}`))}function X(){new MutationObserver(r=>{for(const s of r)if(s.attributeName==="data-theme"&&N()){Q();break}}).observe(document.documentElement,{attributes:!0}),window.matchMedia("(prefers-color-scheme: light)").addEventListener("change",()=>Q())}return w().manual||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{E(),X()}):(E(),X())),_.highlightAll=J,_.highlightElement=K,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"}),_})({});
3
3
  //# sourceMappingURL=arborium.iife.js.map