@tensorix/metahub 0.1.11 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +21342 -17813
- package/dist/cli.js.map +76 -60
- package/dist/core/blobs-core.d.ts +106 -0
- package/dist/core/blobs-core.d.ts.map +1 -0
- package/dist/core/blobs.d.ts +100 -0
- package/dist/core/blobs.d.ts.map +1 -0
- package/dist/core/cache.d.ts +18 -1
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/compact.d.ts +4 -3
- package/dist/core/compact.d.ts.map +1 -1
- package/dist/core/config.d.ts +3 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/crdt.d.ts +25 -2
- package/dist/core/crdt.d.ts.map +1 -1
- package/dist/core/schema-init.d.ts +33 -2
- package/dist/core/schema-init.d.ts.map +1 -1
- package/dist/core/schema.d.ts +1 -1
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/sites-core.d.ts +35 -0
- package/dist/core/sites-core.d.ts.map +1 -1
- package/dist/core/sites.d.ts +4 -13
- package/dist/core/sites.d.ts.map +1 -1
- package/dist/core/sync/blob-routes.d.ts +12 -0
- package/dist/core/sync/blob-routes.d.ts.map +1 -0
- package/dist/core/sync/client.d.ts +2 -0
- package/dist/core/sync/client.d.ts.map +1 -1
- package/dist/core/sync/e2ee.d.ts +24 -0
- package/dist/core/sync/e2ee.d.ts.map +1 -0
- package/dist/core/sync/enroll.d.ts +21 -0
- package/dist/core/sync/enroll.d.ts.map +1 -0
- package/dist/core/sync/peers-routes.d.ts.map +1 -1
- package/dist/core/sync/peers.d.ts +75 -2
- package/dist/core/sync/peers.d.ts.map +1 -1
- package/dist/core/sync/publisher-lease.d.ts +8 -0
- package/dist/core/sync/publisher-lease.d.ts.map +1 -0
- package/dist/core/sync/routes.d.ts.map +1 -1
- package/dist/core/sync/server.d.ts +1 -0
- package/dist/core/sync/server.d.ts.map +1 -1
- package/dist/core/sync/sites-serve.d.ts.map +1 -1
- package/dist/core/sync/storage-s3-bun.d.ts +26 -0
- package/dist/core/sync/storage-s3-bun.d.ts.map +1 -0
- package/dist/core/sync/storage.d.ts +170 -0
- package/dist/core/sync/storage.d.ts.map +1 -0
- package/dist/db-worker.js +181 -65
- package/dist/index.js +16519 -13910
- package/dist/index.js.map +40 -28
- package/dist/sw.js +1 -1
- package/dist/webui/server/routes.d.ts.map +1 -1
- package/dist/webui.js +67 -61
- package/package.json +4 -1
package/dist/webui.js
CHANGED
|
@@ -1,115 +1,121 @@
|
|
|
1
|
-
var wJ=Object.create;var{getPrototypeOf:CJ,defineProperty:j8,getOwnPropertyNames:OJ}=Object;var _J=Object.prototype.hasOwnProperty;function AJ(Z){return this[Z]}var MJ,NJ,vJ=(Z,J,Q)=>{var $=Z!=null&&typeof Z==="object";if($){var X=J?MJ??=new WeakMap:NJ??=new WeakMap,q=X.get(Z);if(q)return q}Q=Z!=null?wJ(CJ(Z)):{};let W=J||!Z||!Z.__esModule?j8(Q,"default",{value:Z,enumerable:!0}):Q;for(let G of OJ(Z))if(!_J.call(W,G))j8(W,G,{get:AJ.bind(Z,G),enumerable:!0});if($)X.set(Z,W);return W};var _0=(Z,J)=>()=>(J||Z((J={exports:{}}).exports,J),J.exports);var G5=_0((tX,W5)=>{function a4(Z){if(Z instanceof Map)Z.clear=Z.delete=Z.set=function(){throw Error("map is read-only")};else if(Z instanceof Set)Z.add=Z.clear=Z.delete=function(){throw Error("set is read-only")};return Object.freeze(Z),Object.getOwnPropertyNames(Z).forEach((J)=>{let Q=Z[J],$=typeof Q;if(($==="object"||$==="function")&&!Object.isFrozen(Q))a4(Q)}),Z}class p1{constructor(Z){if(Z.data===void 0)Z.data={};this.data=Z.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function l4(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function P9(Z,...J){let Q=Object.create(null);for(let $ in Z)Q[$]=Z[$];return J.forEach(function($){for(let X in $)Q[X]=$[X]}),Q}var b3="</span>",u4=(Z)=>{return!!Z.scope},g3=(Z,{prefix:J})=>{if(Z.startsWith("language:"))return Z.replace("language:","language-");if(Z.includes(".")){let Q=Z.split(".");return[`${J}${Q.shift()}`,...Q.map(($,X)=>`${$}${"_".repeat(X+1)}`)].join(" ")}return`${J}${Z}`};class n4{constructor(Z,J){this.buffer="",this.classPrefix=J.classPrefix,Z.walk(this)}addText(Z){this.buffer+=l4(Z)}openNode(Z){if(!u4(Z))return;let J=g3(Z.scope,{prefix:this.classPrefix});this.span(J)}closeNode(Z){if(!u4(Z))return;this.buffer+=b3}value(){return this.buffer}span(Z){this.buffer+=`<span class="${Z}">`}}var E4=(Z={})=>{let J={children:[]};return Object.assign(J,Z),J};class c1{constructor(){this.rootNode=E4(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Z){this.top.children.push(Z)}openNode(Z){let J=E4({scope:Z});this.add(J),this.stack.push(J)}closeNode(){if(this.stack.length>1)return this.stack.pop();return}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Z){return this.constructor._walk(Z,this.rootNode)}static _walk(Z,J){if(typeof J==="string")Z.addText(J);else if(J.children)Z.openNode(J),J.children.forEach((Q)=>this._walk(Z,Q)),Z.closeNode(J);return Z}static _collapse(Z){if(typeof Z==="string")return;if(!Z.children)return;if(Z.children.every((J)=>typeof J==="string"))Z.children=[Z.children.join("")];else Z.children.forEach((J)=>{c1._collapse(J)})}}class r4 extends c1{constructor(Z){super();this.options=Z}addText(Z){if(Z==="")return;this.add(Z)}startScope(Z){this.openNode(Z)}endScope(){this.closeNode()}__addSublanguage(Z,J){let Q=Z.root;if(J)Q.scope=`language:${J}`;this.add(Q)}toHTML(){return new n4(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function XZ(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function o4(Z){return T9("(?=",Z,")")}function x3(Z){return T9("(?:",Z,")*")}function j3(Z){return T9("(?:",Z,")?")}function T9(...Z){return Z.map((Q)=>XZ(Q)).join("")}function D3(Z){let J=Z[Z.length-1];if(typeof J==="object"&&J.constructor===Object)return Z.splice(Z.length-1,1),J;else return{}}function i1(...Z){return"("+(D3(Z).capture?"":"?:")+Z.map(($)=>XZ($)).join("|")+")"}function t4(Z){return new RegExp(Z.toString()+"|").exec("").length-1}function h3(Z,J){let Q=Z&&Z.exec(J);return Q&&Q.index===0}var m3=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function d1(Z,{joinWith:J}){let Q=0;return Z.map(($)=>{Q+=1;let X=Q,q=XZ($),W="";while(q.length>0){let G=m3.exec(q);if(!G){W+=q;break}if(W+=q.substring(0,G.index),q=q.substring(G.index+G[0].length),G[0][0]==="\\"&&G[1])W+="\\"+String(Number(G[1])+X);else if(W+=G[0],G[0]==="(")Q++}return W}).map(($)=>`(${$})`).join(J)}var u3=/\b\B/,s4="[a-zA-Z]\\w*",a1="[a-zA-Z_]\\w*",e4="\\b\\d+(\\.\\d+)?",Z5="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",J5="\\b(0b[01]+)",E3="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",p3=(Z={})=>{let J=/^#![ ]*\//;if(Z.binary)Z.begin=T9(J,/.*\b/,Z.binary,/\b.*/);return P9({scope:"meta",begin:J,end:/$/,relevance:0,"on:begin":(Q,$)=>{if(Q.index!==0)$.ignoreMatch()}},Z)},qZ={begin:"\\\\[\\s\\S]",relevance:0},c3={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[qZ]},i3={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[qZ]},d3={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/},pZ=function(Z,J,Q={}){let $=P9({scope:"comment",begin:Z,end:J,contains:[]},Q);$.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let X=i1("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 $.contains.push({begin:T9(/[ ]+/,"(",X,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),$},a3=pZ("//","$"),l3=pZ("/\\*","\\*/"),n3=pZ("#","$"),r3={scope:"number",begin:e4,relevance:0},o3={scope:"number",begin:Z5,relevance:0},t3={scope:"number",begin:J5,relevance:0},s3={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[qZ,{begin:/\[/,end:/\]/,relevance:0,contains:[qZ]}]},e3={scope:"title",begin:s4,relevance:0},ZQ={scope:"title",begin:a1,relevance:0},JQ={begin:"\\.\\s*"+a1,relevance:0},QQ=function(Z){return Object.assign(Z,{"on:begin":(J,Q)=>{Q.data._beginMatch=J[1]},"on:end":(J,Q)=>{if(Q.data._beginMatch!==J[1])Q.ignoreMatch()}})},uZ=Object.freeze({__proto__:null,APOS_STRING_MODE:c3,BACKSLASH_ESCAPE:qZ,BINARY_NUMBER_MODE:t3,BINARY_NUMBER_RE:J5,COMMENT:pZ,C_BLOCK_COMMENT_MODE:l3,C_LINE_COMMENT_MODE:a3,C_NUMBER_MODE:o3,C_NUMBER_RE:Z5,END_SAME_AS_BEGIN:QQ,HASH_COMMENT_MODE:n3,IDENT_RE:s4,MATCH_NOTHING_RE:u3,METHOD_GUARD:JQ,NUMBER_MODE:r3,NUMBER_RE:e4,PHRASAL_WORDS_MODE:d3,QUOTE_STRING_MODE:i3,REGEXP_MODE:s3,RE_STARTERS_RE:E3,SHEBANG:p3,TITLE_MODE:e3,UNDERSCORE_IDENT_RE:a1,UNDERSCORE_TITLE_MODE:ZQ});function zQ(Z,J){if(Z.input[Z.index-1]===".")J.ignoreMatch()}function $Q(Z,J){if(Z.className!==void 0)Z.scope=Z.className,delete Z.className}function XQ(Z,J){if(!J)return;if(!Z.beginKeywords)return;if(Z.begin="\\b("+Z.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",Z.__beforeBegin=zQ,Z.keywords=Z.keywords||Z.beginKeywords,delete Z.beginKeywords,Z.relevance===void 0)Z.relevance=0}function qQ(Z,J){if(!Array.isArray(Z.illegal))return;Z.illegal=i1(...Z.illegal)}function WQ(Z,J){if(!Z.match)return;if(Z.begin||Z.end)throw Error("begin & end are not supported with match");Z.begin=Z.match,delete Z.match}function GQ(Z,J){if(Z.relevance===void 0)Z.relevance=1}var HQ=(Z,J)=>{if(!Z.beforeMatch)return;if(Z.starts)throw Error("beforeMatch cannot be used with starts");let Q=Object.assign({},Z);Object.keys(Z).forEach(($)=>{delete Z[$]}),Z.keywords=Q.keywords,Z.begin=T9(Q.beforeMatch,o4(Q.begin)),Z.starts={relevance:0,contains:[Object.assign(Q,{endsParent:!0})]},Z.relevance=0,delete Q.beforeMatch},KQ=["of","and","for","in","not","or","if","then","parent","list","value"],FQ="keyword";function Q5(Z,J,Q=FQ){let $=Object.create(null);if(typeof Z==="string")X(Q,Z.split(" "));else if(Array.isArray(Z))X(Q,Z);else Object.keys(Z).forEach(function(q){Object.assign($,Q5(Z[q],J,q))});return $;function X(q,W){if(J)W=W.map((G)=>G.toLowerCase());W.forEach(function(G){let K=G.split("|");$[K[0]]=[q,YQ(K[0],K[1])]})}}function YQ(Z,J){if(J)return Number(J);return UQ(Z)?0:1}function UQ(Z){return KQ.includes(Z.toLowerCase())}var p4={},R9=(Z)=>{console.error(Z)},c4=(Z,...J)=>{console.log(`WARN: ${Z}`,...J)},c9=(Z,J)=>{if(p4[`${Z}/${J}`])return;console.log(`Deprecated as of ${Z}. ${J}`),p4[`${Z}/${J}`]=!0},EZ=Error();function z5(Z,J,{key:Q}){let $=0,X=Z[Q],q={},W={};for(let G=1;G<=J.length;G++)W[G+$]=X[G],q[G+$]=!0,$+=t4(J[G-1]);Z[Q]=W,Z[Q]._emit=q,Z[Q]._multi=!0}function BQ(Z){if(!Array.isArray(Z.begin))return;if(Z.skip||Z.excludeBegin||Z.returnBegin)throw R9("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),EZ;if(typeof Z.beginScope!=="object"||Z.beginScope===null)throw R9("beginScope must be object"),EZ;z5(Z,Z.begin,{key:"beginScope"}),Z.begin=d1(Z.begin,{joinWith:""})}function LQ(Z){if(!Array.isArray(Z.end))return;if(Z.skip||Z.excludeEnd||Z.returnEnd)throw R9("skip, excludeEnd, returnEnd not compatible with endScope: {}"),EZ;if(typeof Z.endScope!=="object"||Z.endScope===null)throw R9("endScope must be object"),EZ;z5(Z,Z.end,{key:"endScope"}),Z.end=d1(Z.end,{joinWith:""})}function yQ(Z){if(Z.scope&&typeof Z.scope==="object"&&Z.scope!==null)Z.beginScope=Z.scope,delete Z.scope}function PQ(Z){if(yQ(Z),typeof Z.beginScope==="string")Z.beginScope={_wrap:Z.beginScope};if(typeof Z.endScope==="string")Z.endScope={_wrap:Z.endScope};BQ(Z),LQ(Z)}function wQ(Z){function J(W,G){return new RegExp(XZ(W),"m"+(Z.case_insensitive?"i":"")+(Z.unicodeRegex?"u":"")+(G?"g":""))}class Q{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(W,G){G.position=this.position++,this.matchIndexes[this.matchAt]=G,this.regexes.push([G,W]),this.matchAt+=t4(W)+1}compile(){if(this.regexes.length===0)this.exec=()=>null;let W=this.regexes.map((G)=>G[1]);this.matcherRe=J(d1(W,{joinWith:"|"}),!0),this.lastIndex=0}exec(W){this.matcherRe.lastIndex=this.lastIndex;let G=this.matcherRe.exec(W);if(!G)return null;let K=G.findIndex((F,Y)=>Y>0&&F!==void 0),H=this.matchIndexes[K];return G.splice(0,K),Object.assign(G,H)}}class ${constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(W){if(this.multiRegexes[W])return this.multiRegexes[W];let G=new Q;return this.rules.slice(W).forEach(([K,H])=>G.addRule(K,H)),G.compile(),this.multiRegexes[W]=G,G}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(W,G){if(this.rules.push([W,G]),G.type==="begin")this.count++}exec(W){let G=this.getMatcher(this.regexIndex);G.lastIndex=this.lastIndex;let K=G.exec(W);if(this.resumingScanAtSamePosition())if(K&&K.index===this.lastIndex);else{let H=this.getMatcher(0);H.lastIndex=this.lastIndex+1,K=H.exec(W)}if(K){if(this.regexIndex+=K.position+1,this.regexIndex===this.count)this.considerAll()}return K}}function X(W){let G=new $;if(W.contains.forEach((K)=>G.addRule(K.begin,{rule:K,type:"begin"})),W.terminatorEnd)G.addRule(W.terminatorEnd,{type:"end"});if(W.illegal)G.addRule(W.illegal,{type:"illegal"});return G}function q(W,G){let K=W;if(W.isCompiled)return K;[$Q,WQ,PQ,HQ].forEach((F)=>F(W,G)),Z.compilerExtensions.forEach((F)=>F(W,G)),W.__beforeBegin=null,[XQ,qQ,GQ].forEach((F)=>F(W,G)),W.isCompiled=!0;let H=null;if(typeof W.keywords==="object"&&W.keywords.$pattern)W.keywords=Object.assign({},W.keywords),H=W.keywords.$pattern,delete W.keywords.$pattern;if(H=H||/\w+/,W.keywords)W.keywords=Q5(W.keywords,Z.case_insensitive);if(K.keywordPatternRe=J(H,!0),G){if(!W.begin)W.begin=/\B|\b/;if(K.beginRe=J(K.begin),!W.end&&!W.endsWithParent)W.end=/\B|\b/;if(W.end)K.endRe=J(K.end);if(K.terminatorEnd=XZ(K.end)||"",W.endsWithParent&&G.terminatorEnd)K.terminatorEnd+=(W.end?"|":"")+G.terminatorEnd}if(W.illegal)K.illegalRe=J(W.illegal);if(!W.contains)W.contains=[];if(W.contains=[].concat(...W.contains.map(function(F){return CQ(F==="self"?W:F)})),W.contains.forEach(function(F){q(F,K)}),W.starts)q(W.starts,G);return K.matcher=X(K),K}if(!Z.compilerExtensions)Z.compilerExtensions=[];if(Z.contains&&Z.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return Z.classNameAliases=P9(Z.classNameAliases||{}),q(Z)}function $5(Z){if(!Z)return!1;return Z.endsWithParent||$5(Z.starts)}function CQ(Z){if(Z.variants&&!Z.cachedVariants)Z.cachedVariants=Z.variants.map(function(J){return P9(Z,{variants:null},J)});if(Z.cachedVariants)return Z.cachedVariants;if($5(Z))return P9(Z,{starts:Z.starts?P9(Z.starts):null});if(Object.isFrozen(Z))return P9(Z);return Z}var OQ="11.11.1";class X5 extends Error{constructor(Z,J){super(Z);this.name="HTMLInjectionError",this.html=J}}var E1=l4,i4=P9,d4=Symbol("nomatch"),_Q=7,q5=function(Z){let J=Object.create(null),Q=Object.create(null),$=[],X=!0,q="Could not find the language '{}', did you forget to load/include a language module?",W={disableAutodetect:!0,name:"Plain text",contains:[]},G={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:r4};function K(I){return G.noHighlightRe.test(I)}function H(I){let V=I.className+" ";V+=I.parentNode?I.parentNode.className:"";let g=G.languageDetectRe.exec(V);if(g){let j=v(g[1]);if(!j)c4(q.replace("{}",g[1])),c4("Falling back to no-highlight mode for this block.",I);return j?g[1]:"no-highlight"}return V.split(/\s+/).find((j)=>K(j)||v(j))}function F(I,V,g){let j="",e="";if(typeof V==="object")j=I,g=V.ignoreIllegals,e=V.language;else c9("10.7.0","highlight(lang, code, ...args) has been deprecated."),c9("10.7.0",`Please use highlight(code, options) instead.
|
|
2
|
-
https://github.com/highlightjs/highlight.js/issues/2277`),
|
|
3
|
-
`,1;if(f9>1e5&&f9>Q0.index*3)throw Error("potential infinite loop, way more iterations than matches");return C0+=y0,y0.length}let q0=v(I);if(!q0)throw R9(q.replace("{}",I)),Error('Unknown language: "'+I+'"');let D=wQ(q0),L0="",d=j||D,S0={},T0=new G.__emitter(G);S();let C0="",I9=0,r0=0,f9=0,b9=!1;try{if(!q0.__emitTokens){d.matcher.considerAll();for(;;){if(f9++,b9)b9=!1;else d.matcher.considerAll();d.matcher.lastIndex=r0;let a=d.matcher.exec(V);if(!a)break;let Q0=V.substring(r0,a.index),y0=h(Q0,a);r0=a.index+y0}h(V.substring(r0))}else q0.__emitTokens(V,T0);return T0.finalize(),L0=T0.toHTML(),{language:I,value:L0,relevance:I9,illegal:!1,_emitter:T0,_top:d}}catch(a){if(a.message&&a.message.includes("Illegal"))return{language:I,value:E1(V),illegal:!0,relevance:0,_illegalBy:{message:a.message,index:r0,context:V.slice(r0-100,r0+100),mode:a.mode,resultSoFar:L0},_emitter:T0};else if(X)return{language:I,value:E1(V),illegal:!1,relevance:0,errorRaised:a,_emitter:T0,_top:d};else throw a}}function C(I){let V={value:E1(I),illegal:!1,relevance:0,_top:W,_emitter:new G.__emitter(G)};return V._emitter.addText(I),V}function L(I,V){V=V||G.languages||Object.keys(J);let g=C(I),j=V.filter(v).filter(J0).map((k0)=>Y(k0,I,!1));j.unshift(g);let e=j.sort((k0,p)=>{if(k0.relevance!==p.relevance)return p.relevance-k0.relevance;if(k0.language&&p.language){if(v(k0.language).supersetOf===p.language)return 1;else if(v(p.language).supersetOf===k0.language)return-1}return 0}),[X0,W0]=e,P0=X0;return P0.secondBest=W0,P0}function B(I,V,g){let j=V&&Q[V]||g;I.classList.add("hljs"),I.classList.add(`language-${j}`)}function M(I){let V=null,g=H(I);if(K(g))return;if(B0("before:highlightElement",{el:I,language:g}),I.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",I);return}if(I.children.length>0){if(!G.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(I);if(G.throwUnescapedHTML)throw new X5("One of your code blocks includes unescaped HTML.",I.innerHTML)}V=I;let j=V.textContent,e=g?F(j,{language:g,ignoreIllegals:!0}):L(j);if(I.innerHTML=e.value,I.dataset.highlighted="yes",B(I,g,e.language),I.result={language:e.language,re:e.relevance,relevance:e.relevance},e.secondBest)I.secondBest={language:e.secondBest.language,relevance:e.secondBest.relevance};B0("after:highlightElement",{el:I,result:e,text:j})}function k(I){G=i4(G,I)}let T=()=>{_(),c9("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function O(){_(),c9("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let P=!1;function _(){function I(){_()}if(document.readyState==="loading"){if(!P)window.addEventListener("DOMContentLoaded",I,!1);P=!0;return}document.querySelectorAll(G.cssSelector).forEach(M)}function A(I,V){let g=null;try{g=V(Z)}catch(j){if(R9("Language definition for '{}' could not be registered.".replace("{}",I)),!X)throw j;else R9(j);g=W}if(!g.name)g.name=I;if(J[I]=g,g.rawDefinition=V.bind(null,Z),g.aliases)E(g.aliases,{languageName:I})}function y(I){delete J[I];for(let V of Object.keys(Q))if(Q[V]===I)delete Q[V]}function x(){return Object.keys(J)}function v(I){return I=(I||"").toLowerCase(),J[I]||J[Q[I]]}function E(I,{languageName:V}){if(typeof I==="string")I=[I];I.forEach((g)=>{Q[g.toLowerCase()]=V})}function J0(I){let V=v(I);return V&&!V.disableAutodetect}function l(I){if(I["before:highlightBlock"]&&!I["before:highlightElement"])I["before:highlightElement"]=(V)=>{I["before:highlightBlock"](Object.assign({block:V.el},V))};if(I["after:highlightBlock"]&&!I["after:highlightElement"])I["after:highlightElement"]=(V)=>{I["after:highlightBlock"](Object.assign({block:V.el},V))}}function A0(I){l(I),$.push(I)}function o(I){let V=$.indexOf(I);if(V!==-1)$.splice(V,1)}function B0(I,V){let g=I;$.forEach(function(j){if(j[g])j[g](V)})}function K0(I){return c9("10.7.0","highlightBlock will be removed entirely in v12.0"),c9("10.7.0","Please use highlightElement now."),M(I)}Object.assign(Z,{highlight:F,highlightAuto:L,highlightAll:_,highlightElement:M,highlightBlock:K0,configure:k,initHighlighting:T,initHighlightingOnLoad:O,registerLanguage:A,unregisterLanguage:y,listLanguages:x,getLanguage:v,registerAliases:E,autoDetection:J0,inherit:i4,addPlugin:A0,removePlugin:o}),Z.debugMode=function(){X=!1},Z.safeMode=function(){X=!0},Z.versionString=OQ,Z.regex={concat:T9,lookahead:o4,either:i1,optional:j3,anyNumberOfTimes:x3};for(let I in uZ)if(typeof uZ[I]==="object")a4(uZ[I]);return Object.assign(Z,uZ),Z},i9=q5({});i9.newInstance=()=>q5({});W5.exports=i9;i9.HighlightJS=i9;i9.default=i9});var K5=_0((sX,H5)=>{function AQ(Z){let J=Z.regex,Q=J.concat(/[\p{L}_]/u,J.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),$=/[\p{L}0-9._:-]+/u,X={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},q={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},W=Z.inherit(q,{begin:/\(/,end:/\)/}),G=Z.inherit(Z.APOS_STRING_MODE,{className:"string"}),K=Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),H={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:$,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[X]},{begin:/'/,end:/'/,contains:[X]},{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:[q,K,G,W,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[q,W,K,G]}]}]},Z.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},X,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[K]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[H],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[H],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:J.concat(/</,J.lookahead(J.concat(Q,J.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:Q,relevance:0,starts:H}]},{className:"tag",begin:J.concat(/<\//,J.lookahead(J.concat(Q,/>/))),contains:[{className:"name",begin:Q,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}H5.exports=AQ});var Y5=_0((eX,F5)=>{function MQ(Z){let J=Z.regex,Q={},$={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[Q]}]};Object.assign(Q,{className:"variable",variants:[{begin:J.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},$]});let X={className:"subst",begin:/\$\(/,end:/\)/,contains:[Z.BACKSLASH_ESCAPE]},q=Z.inherit(Z.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),W={begin:/<<-?\s*(?=\w+)/,starts:{contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},G={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,Q,X]};X.contains.push(G);let K={match:/\\"/},H={className:"string",begin:/'/,end:/'/},F={match:/\\'/},Y={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},Z.NUMBER_MODE,Q]},C=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],L=Z.SHEBANG({binary:`(${C.join("|")})`,relevance:10}),B={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[Z.inherit(Z.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},M=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],k=["true","false"],T={match:/(\/[a-z._-]+)+/},O=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],P=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],_=["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"],A=["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:M,literal:k,built_in:[...O,...P,"set","shopt",..._,...A]},contains:[L,Z.SHEBANG(),B,Y,q,W,T,G,K,H,F,Q]}}F5.exports=MQ});var B5=_0((Zq,U5)=>{function NQ(Z){let J=Z.regex,Q=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),$="decltype\\(auto\\)",X="[a-zA-Z_]\\w*::",q="<[^<>]+>",W="(decltype\\(auto\\)|"+J.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+J.optional("<[^<>]+>")+")",G={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},K="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",H={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},F={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},Y={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(H,{className:"string"}),{className:"string",begin:/<.*?>/},Q,Z.C_BLOCK_COMMENT_MODE]},C={className:"title",begin:J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},L=J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",k={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},T=[Y,G,Q,Z.C_BLOCK_COMMENT_MODE,F,H],O={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:k,contains:T.concat([{begin:/\(/,end:/\)/,keywords:k,contains:T.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+W+"[\\*&\\s]+)+"+L,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:k,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:k,relevance:0},{begin:L,returnBegin:!0,contains:[Z.inherit(C,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:[Q,Z.C_BLOCK_COMMENT_MODE,H,F,G,{begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:["self",Q,Z.C_BLOCK_COMMENT_MODE,H,F,G]}]},G,Q,Z.C_BLOCK_COMMENT_MODE,Y]};return{name:"C",aliases:["h"],keywords:k,disableAutodetect:!0,illegal:"</",contains:[].concat(O,P,T,[Y,{begin:Z.IDENT_RE+"::",keywords:k},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},Z.TITLE_MODE]}]),exports:{preprocessor:Y,strings:H,keywords:k}}}U5.exports=NQ});var y5=_0((Jq,L5)=>{function vQ(Z){let J=Z.regex,Q=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),$="decltype\\(auto\\)",X="[a-zA-Z_]\\w*::",q="<[^<>]+>",W="(?!struct)(decltype\\(auto\\)|"+J.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+J.optional("<[^<>]+>")+")",G={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},K="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",H={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},F={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},Y={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(H,{className:"string"}),{className:"string",begin:/<.*?>/},Q,Z.C_BLOCK_COMMENT_MODE]},C={className:"title",begin:J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},L=J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",B=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],M=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],k=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],T=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],_={type:M,keyword:B,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:k},A={className:"function.dispatch",relevance:0,keywords:{_hint:T},begin:J.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,Z.IDENT_RE,J.lookahead(/(<[^<>]+>|)\s*\(/))},y=[A,Y,G,Q,Z.C_BLOCK_COMMENT_MODE,F,H],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:_,contains:y.concat([{begin:/\(/,end:/\)/,keywords:_,contains:y.concat(["self"]),relevance:0}]),relevance:0},v={className:"function",begin:"("+W+"[\\*&\\s]+)+"+L,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:_,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:_,relevance:0},{begin:L,returnBegin:!0,contains:[C],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[H,F]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:_,relevance:0,contains:[Q,Z.C_BLOCK_COMMENT_MODE,H,F,G,{begin:/\(/,end:/\)/,keywords:_,relevance:0,contains:["self",Q,Z.C_BLOCK_COMMENT_MODE,H,F,G]}]},G,Q,Z.C_BLOCK_COMMENT_MODE,Y]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:_,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(x,v,A,y,[Y,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:_,contains:["self",G]},{begin:Z.IDENT_RE+"::",keywords:_},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}L5.exports=vQ});var w5=_0((Qq,P5)=>{function kQ(Z){let J=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],Q=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],$=["default","false","null","true"],X=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],q=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],W={keyword:X.concat(q),built_in:J,literal:$},G=Z.inherit(Z.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),K={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},H={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},F={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},Y=Z.inherit(F,{illegal:/\n/}),C={className:"subst",begin:/\{/,end:/\}/,keywords:W},L=Z.inherit(C,{illegal:/\n/}),B={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},Z.BACKSLASH_ESCAPE,L]},M={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},C]},k=Z.inherit(M,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},L]});C.contains=[M,B,F,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,K,Z.C_BLOCK_COMMENT_MODE],L.contains=[k,B,Y,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,K,Z.inherit(Z.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let T={variants:[H,M,B,F,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},O={begin:"<",end:">",contains:[{beginKeywords:"in out"},G]},P=Z.IDENT_RE+"(<"+Z.IDENT_RE+"(\\s*,\\s*"+Z.IDENT_RE+")*>)?(\\[\\])?",_={begin:"@"+Z.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:W,illegal:/::/,contains:[Z.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},T,K,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},G,O,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[G,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[G,O,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+P+"\\s+)+"+Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:W,contains:[{beginKeywords:Q.join(" "),relevance:0},{begin:Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[Z.TITLE_MODE,O],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:W,relevance:0,contains:[T,K,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},_]}}P5.exports=kQ});var O5=_0((zq,C5)=>{var RQ=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.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:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},TQ=["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"],VQ=["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"],SQ=[...TQ,...VQ],IQ=["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(),fQ=["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(),bQ=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),gQ=["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 xQ(Z){let J=Z.regex,Q=RQ(Z),$={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},X="and or not only",q=/@-?\w[\w]*(-\w+)*/,W="[a-zA-Z-][a-zA-Z0-9_-]*",G=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[Q.BLOCK_COMMENT,$,Q.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},Q.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+fQ.join("|")+")"},{begin:":(:)?("+bQ.join("|")+")"}]},Q.CSS_VARIABLE,{className:"attribute",begin:"\\b("+gQ.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[Q.BLOCK_COMMENT,Q.HEXCOLOR,Q.IMPORTANT,Q.CSS_NUMBER_MODE,...G,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...G,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},Q.FUNCTION_DISPATCH]},{begin:J.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:q},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:IQ.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...G,Q.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+SQ.join("|")+")\\b"}]}}C5.exports=xQ});var A5=_0(($q,_5)=>{function jQ(Z){let J=Z.regex,Q={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},$={begin:"^[-\\*]{3,}",end:"$"},X={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}]},q={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},W={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},G=/[A-Za-z][A-Za-z0-9+.-]*/,K={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:J.concat(/\[.+?\]\(/,G,/:\/\/.*?\)/),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}]},H={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},F={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},Y=Z.inherit(H,{contains:[]}),C=Z.inherit(F,{contains:[]});H.contains.push(C),F.contains.push(Y);let L=[Q,K];return[H,F,Y,C].forEach((T)=>{T.contains=T.contains.concat(L)}),L=L.concat(H,F),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:L},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:L}]}]},Q,q,H,F,{className:"quote",begin:"^>\\s+",contains:L,end:"$"},X,$,K,W,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}_5.exports=jQ});var N5=_0((Xq,M5)=>{function DQ(Z){let J=Z.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:J.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:J.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}M5.exports=DQ});var k5=_0((qq,v5)=>{function hQ(Z){let J=Z.regex,Q="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",$=J.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),X=J.concat($,/(::\w+)*/),W={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},G={className:"doctag",begin:"@[A-Za-z]+"},K={begin:"#<",end:">"},H=[Z.COMMENT("#","$",{contains:[G]}),Z.COMMENT("^=begin","^=end",{contains:[G],relevance:10}),Z.COMMENT("^__END__",Z.MATCH_NOTHING_RE)],F={className:"subst",begin:/#\{/,end:/\}/,keywords:W},Y={className:"string",contains:[Z.BACKSLASH_ESCAPE,F],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:J.concat(/<<[-~]?'?/,J.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[Z.BACKSLASH_ESCAPE,F]})]}]},C="[1-9](_?[0-9])*|0",L="[0-9](_?[0-9])*",B={className:"number",relevance:0,variants:[{begin:"\\b([1-9](_?[0-9])*|0)(\\.([0-9](_?[0-9])*))?([eE][+-]?([0-9](_?[0-9])*)|r)?i?\\b"},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},M={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:W}]},y=[Y,{variants:[{match:[/class\s+/,X,/\s+<\s+/,X]},{match:[/\b(class|module)\s+/,X]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:W},{match:[/(include|extend)\s+/,X],scope:{2:"title.class"},keywords:W},{relevance:0,match:[X,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:$,scope:"title.class"},{match:[/def/,/\s+/,"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"],scope:{1:"keyword",3:"title.function"},contains:[M]},{begin:Z.IDENT_RE+"::"},{className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[Y,{begin:"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"}],relevance:0},B,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:W},{begin:"("+Z.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[Z.BACKSLASH_ESCAPE,F],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(K,H),relevance:0}].concat(K,H);F.contains=y,M.contains=y;let x="[>?]>",v="[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]",E="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",J0=[{begin:/^\s*=>/,starts:{end:"$",contains:y}},{className:"meta.prompt",begin:"^("+x+"|"+v+"|"+E+")(?=[ ])",starts:{end:"$",keywords:W,contains:y}}];return H.unshift(K),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:W,illegal:/\/\*/,contains:[Z.SHEBANG({binary:"ruby"})].concat(J0).concat(H).concat(y)}}v5.exports=hQ});var T5=_0((Wq,R5)=>{function mQ(Z){let q={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:q,illegal:"</",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"string",variants:[Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[Z.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:q,illegal:/["']/}]}]}}R5.exports=mQ});var S5=_0((Gq,V5)=>{function uQ(Z){let J=Z.regex,Q=/[_A-Za-z][_0-9A-Za-z]*/;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],literal:["true","false","null"]},contains:[Z.HASH_COMMENT_MODE,Z.QUOTE_STRING_MODE,Z.NUMBER_MODE,{scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{scope:"symbol",begin:J.concat(Q,J.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}V5.exports=uQ});var f5=_0((Hq,I5)=>{function EQ(Z){let J=Z.regex,Q={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:Z.NUMBER_RE}]},$=Z.COMMENT();$.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let X={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},q={className:"literal",begin:/\bon|off|true|false|yes|no\b/},W={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},G={begin:/\[/,end:/\]/,contains:[$,q,X,W,Q,"self"],relevance:0},K=/[A-Za-z0-9_-]+/,H=/"(\\"|[^"])*"/,F=/'[^']*'/,Y=J.either(K,H,F),C=J.concat(Y,"(\\s*\\.\\s*",Y,")*",J.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[$,{className:"section",begin:/\[+/,end:/\]+/},{begin:C,className:"attr",starts:{end:/$/,contains:[$,G,q,X,W,Q]}}]}}I5.exports=EQ});var j5=_0((Kq,x5)=>{var d9="[0-9](_*[0-9])*",cZ=`\\.(${d9})`,iZ="[0-9a-fA-F](_*[0-9a-fA-F])*",b5={className:"number",variants:[{begin:`(\\b(${d9})((${cZ})|\\.)?|(${cZ}))[eE][+-]?(${d9})[fFdD]?\\b`},{begin:`\\b(${d9})((${cZ})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${cZ})[fFdD]?\\b`},{begin:`\\b(${d9})[fFdD]\\b`},{begin:`\\b0[xX]((${iZ})\\.?|(${iZ})?\\.(${iZ}))[pP][+-]?(${d9})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${iZ})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function g5(Z,J,Q){if(Q===-1)return"";return Z.replace(J,($)=>{return g5(Z,J,Q-1)})}function pQ(Z){let J=Z.regex,Q="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",$="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+g5("(?:<"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~(?:\\s*,\\s*"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~)*>)?",/~~~/g,2),K={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},H={className:"meta",begin:"@"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},F={className:"params",begin:/\(/,end:/\)/,keywords:K,relevance:0,contains:[Z.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:K,illegal:/<\/|#/,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[Z.BACKSLASH_ESCAPE]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[J.concat(/(?!else)/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"),/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"},contains:[F,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+$+"\\s+)",Z.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:K,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:K,relevance:0,contains:[H,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,b5,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},b5,H]}}x5.exports=pQ});var E5=_0((Fq,u5)=>{var cQ=["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"],iQ=["true","false","null","undefined","NaN","Infinity"],D5=["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"],h5=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],m5=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],dQ=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],aQ=[].concat(m5,D5,h5);function lQ(Z){let J=Z.regex,Q=(g,{after:j})=>{let e="</"+g[0].slice(1);return g.input.indexOf(e,j)!==-1},$="[A-Za-z$_][0-9A-Za-z$_]*",X={begin:"<>",end:"</>"},q=/<[A-Za-z0-9\\._:-]+\s*\/>/,W={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(g,j)=>{let e=g[0].length+g.index,X0=g.input[e];if(X0==="<"||X0===","){j.ignoreMatch();return}if(X0===">"){if(!Q(g,{after:e}))j.ignoreMatch()}let W0,P0=g.input.substring(e);if(W0=P0.match(/^\s*=/)){j.ignoreMatch();return}if(W0=P0.match(/^\s+extends\s+/)){if(W0.index===0){j.ignoreMatch();return}}}},G={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:cQ,literal:iQ,built_in:aQ,"variable.language":dQ},K="[0-9](_?[0-9])*",H="\\.([0-9](_?[0-9])*)",F="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",Y={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\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},C={className:"subst",begin:"\\$\\{",end:"\\}",keywords:G,contains:[]},L={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,C],subLanguage:"xml"}},B={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,C],subLanguage:"css"}},M={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,C],subLanguage:"graphql"}},k={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,C]},O={className:"comment",variants:[Z.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:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},P=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,L,B,M,k,{match:/\$\d+/},Y];C.contains=P.concat({begin:/\{/,end:/\}/,keywords:G,contains:["self"].concat(P)});let _=[].concat(O,C.contains),A=_.concat([{begin:/(\s*)\(/,end:/\)/,keywords:G,contains:["self"].concat(_)}]),y={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:G,contains:A},x={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,J.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",J.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},v={relevance:0,match:J.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:{_:[...D5,...h5]}},E={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},J0={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[y],illegal:/%/},l={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function A0(g){return J.concat("(?!",g.join("|"),")")}let o={match:J.concat(/\b/,A0([...m5,"super","import"].map((g)=>`${g}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\(/)),className:"title.function",relevance:0},B0={begin:J.concat(/\./,J.lookahead(J.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},K0={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},y]},I="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",V={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,J.lookahead(I)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[y]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:G,exports:{PARAMS_CONTAINS:A,CLASS_REFERENCE:v},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),E,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,L,B,M,k,O,{match:/\$\d+/},Y,v,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+J.lookahead(":"),relevance:0},V,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[O,Z.REGEXP_MODE,{className:"function",begin:I,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:G,contains:A}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:X.begin,end:X.end},{match:q},{begin:W.begin,"on:begin":W.isTrulyOpeningTag,end:W.end}],subLanguage:"xml",contains:[{begin:W.begin,end:W.end,skip:!0,contains:["self"]}]}]},J0,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[y,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},B0,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[y]},o,l,x,K0,{match:/\$[(.]/}]}}u5.exports=lQ});var c5=_0((Yq,p5)=>{function nQ(Z){let J={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},Q={match:/[{}[\],:]/,className:"punctuation",relevance:0},$=["true","false","null"],X={scope:"literal",beginKeywords:$.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:$},contains:[J,Q,Z.QUOTE_STRING_MODE,X,Z.C_NUMBER_MODE,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}p5.exports=nQ});var d5=_0((Uq,i5)=>{var a9="[0-9](_*[0-9])*",dZ=`\\.(${a9})`,aZ="[0-9a-fA-F](_*[0-9a-fA-F])*",rQ={className:"number",variants:[{begin:`(\\b(${a9})((${dZ})|\\.)?|(${dZ}))[eE][+-]?(${a9})[fFdD]?\\b`},{begin:`\\b(${a9})((${dZ})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${dZ})[fFdD]?\\b`},{begin:`\\b(${a9})[fFdD]\\b`},{begin:`\\b0[xX]((${aZ})\\.?|(${aZ})?\\.(${aZ}))[pP][+-]?(${a9})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${aZ})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function oQ(Z){let J={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},Q={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},$={className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"@"},X={className:"subst",begin:/\$\{/,end:/\}/,contains:[Z.C_NUMBER_MODE]},q={className:"variable",begin:"\\$"+Z.UNDERSCORE_IDENT_RE},W={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[q,X]},{begin:"'",end:"'",illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE,q,X]}]};X.contains.push(W);let G={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+Z.UNDERSCORE_IDENT_RE+")?"},K={className:"meta",begin:"@"+Z.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[Z.inherit(W,{className:"string"}),"self"]}]},H=rQ,F=Z.COMMENT("/\\*","\\*/",{contains:[Z.C_BLOCK_COMMENT_MODE]}),Y={variants:[{className:"type",begin:Z.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},C=Y;return C.variants[1].contains=[Y],Y.variants[1].contains=[C],{name:"Kotlin",aliases:["kt","kts"],keywords:J,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),Z.C_LINE_COMMENT_MODE,F,Q,$,G,K,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:J,relevance:5,contains:[{begin:Z.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[Z.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:J,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[Y,Z.C_LINE_COMMENT_MODE,F],relevance:0},Z.C_LINE_COMMENT_MODE,F,G,K,W,Z.C_NUMBER_MODE]},F]},{begin:[/class|interface|trait/,/\s+/,Z.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},Z.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},G,K]},W,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
|
|
4
|
-
`},H]}}i5.exports=oQ});var r5=_0((Bq,n5)=>{var tQ=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.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:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},sQ=["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"],eQ=["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"],Zz=[...sQ,...eQ],Jz=["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(),a5=["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(),l5=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Qz=["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(),zz=a5.concat(l5).sort().reverse();function $z(Z){let J=tQ(Z),Q=zz,$="and or not only",X="[\\w-]+",q="([\\w-]+|@\\{[\\w-]+\\})",W=[],G=[],K=function(P){return{className:"string",begin:"~?"+P+".*?"+P}},H=function(P,_,A){return{className:P,begin:_,relevance:A}},F={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Jz.join(" ")},Y={begin:"\\(",end:"\\)",contains:G,keywords:F,relevance:0};G.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,K("'"),K('"'),J.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},J.HEXCOLOR,Y,H("variable","@@?[\\w-]+",10),H("variable","@\\{[\\w-]+\\}"),H("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},J.IMPORTANT,{beginKeywords:"and not"},J.FUNCTION_DISPATCH);let C=G.concat({begin:/\{/,end:/\}/,contains:W}),L={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(G)},B={begin:q+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Qz.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:G}}]},M={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:F,returnEnd:!0,contains:G,relevance:0}},k={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:C}},T={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:q,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,L,H("keyword","all\\b"),H("variable","@\\{[\\w-]+\\}"),{begin:"\\b("+Zz.join("|")+")\\b",className:"selector-tag"},J.CSS_NUMBER_MODE,H("selector-tag",q,0),H("selector-id","#"+q),H("selector-class","\\."+q,0),H("selector-tag","&",0),J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+a5.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+l5.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:C},{begin:"!important"},J.FUNCTION_DISPATCH]},O={begin:`[\\w-]+:(:)?(${Q.join("|")})`,returnBegin:!0,contains:[T]};return W.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,M,k,O,B,T,L,J.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:W}}n5.exports=$z});var t5=_0((Lq,o5)=>{function Xz(Z){let $={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},X=[Z.COMMENT("--(?!\\[=*\\[)","$"),Z.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[$],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:Z.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:X.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[Z.inherit(Z.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:X}].concat(X)},Z.C_NUMBER_MODE,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[$],relevance:5}])}}o5.exports=Xz});var e5=_0((yq,s5)=>{function qz(Z){let J={className:"variable",variants:[{begin:"\\$\\("+Z.UNDERSCORE_IDENT_RE+"\\)",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},Q={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,J]},$={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[J,Q]},X={begin:"^"+Z.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},q={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},W={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[J]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[Z.HASH_COMMENT_MODE,J,Q,$,X,q,W]}}s5.exports=qz});var J6=_0((Pq,Z6)=>{function Wz(Z){let J=Z.regex,Q=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],$=/[dualxmsipngr]{0,12}/,X={$pattern:/[\w.]+/,keyword:Q.join(" ")},q={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:X},W={begin:/->\{/,end:/\}/},G={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},K={scope:"variable",variants:[{begin:/\$\d/},{begin:J.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[G]},H={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},F=[Z.BACKSLASH_ESCAPE,q,K],Y=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],C=(M,k,T="\\1")=>{let O=T==="\\1"?T:J.concat(T,k);return J.concat(J.concat("(?:",M,")"),k,/(?:\\.|[^\\\/])*?/,O,/(?:\\.|[^\\\/])*?/,T,$)},L=(M,k,T)=>{return J.concat(J.concat("(?:",M,")"),k,/(?:\\.|[^\\\/])*?/,T,$)},B=[K,Z.HASH_COMMENT_MODE,Z.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),W,{className:"string",contains:F,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},H,{begin:"(\\/\\/|"+Z.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[Z.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:C("s|tr|y",J.either(...Y,{capture:!0}))},{begin:C("s|tr|y","\\(","\\)")},{begin:C("s|tr|y","\\[","\\]")},{begin:C("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:L("(?:m|qr)?",/\//,/\//)},{begin:L("m|qr",J.either(...Y,{capture:!0}),/\1/)},{begin:L("m|qr",/\(/,/\)/)},{begin:L("m|qr",/\[/,/\]/)},{begin:L("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,G]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,G,H]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return q.contains=B,W.contains=B,{name:"Perl",aliases:["pl","pm"],keywords:X,contains:B}}Z6.exports=Wz});var z6=_0((wq,Q6)=>{function Gz(Z){let J={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},Q=/[a-zA-Z@][a-zA-Z0-9_]*/,G={"variable.language":["this","super"],$pattern:Q,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},K={$pattern:Q,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:G,illegal:"</",contains:[J,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,Z.C_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+K.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:K,contains:[Z.UNDERSCORE_TITLE_MODE]},{begin:"\\."+Z.UNDERSCORE_IDENT_RE,relevance:0}]}}Q6.exports=Gz});var X6=_0((Cq,$6)=>{function Hz(Z){let J=Z.regex,Q=/(?![A-Za-z0-9])(?![$])/,$=J.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,Q),X=J.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,Q),q=J.concat(/[A-Z]+/,Q),W={scope:"variable",match:"\\$+"+$},G={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:0.1},{begin:/\?>/}]},K={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},H=Z.inherit(Z.APOS_STRING_MODE,{illegal:null}),F=Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,contains:Z.QUOTE_STRING_MODE.contains.concat(K)}),Y={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:Z.QUOTE_STRING_MODE.contains.concat(K),"on:begin":(B0,K0)=>{K0.data._beginMatch=B0[1]||B0[2]},"on:end":(B0,K0)=>{if(K0.data._beginMatch!==B0[1])K0.ignoreMatch()}},C=Z.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),L=`[
|
|
5
|
-
]`,
|
|
6
|
-
]`,"+"),J.concat("(?!",
|
|
7
|
-
]`,"*"),J.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[J0]};J0.contains.push(l);let A0=[E,v,Z.C_BLOCK_COMMENT_MODE,B,M,y],o={begin:J.concat(/#\[\s*\\?/,J.either(X,q)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:k,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:k,keyword:["new","array"]},contains:["self",...A0]},...A0,{scope:"meta",variants:[{match:X},{match:q}]}]};return{case_insensitive:!1,keywords:_,contains:[o,Z.HASH_COMMENT_MODE,Z.COMMENT("//","$"),Z.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:Z.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},G,{scope:"variable.language",match:/\$this\b/},W,l,v,{match:[/const/,/\s/,$],scope:{1:"keyword",3:"variable.constant"}},y,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},Z.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:_,contains:["self",o,W,v,Z.C_BLOCK_COMMENT_MODE,B,M]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},Z.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[Z.inherit(Z.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},Z.UNDERSCORE_TITLE_MODE]},B,M]}}$6.exports=Hz});var W6=_0((Oq,q6)=>{function Kz(Z){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},Z.inherit(Z.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}q6.exports=Kz});var H6=_0((_q,G6)=>{function Fz(Z){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}G6.exports=Fz});var F6=_0((Aq,K6)=>{function Yz(Z){let J=Z.regex,Q=/[\p{XID_Start}_]\p{XID_Continue}*/u,$=["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"],G={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:$,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"]},K={className:"meta",begin:/^(>>>|\.\.\.) /},H={className:"subst",begin:/\{/,end:/\}/,keywords:G,illegal:/#/},F={begin:/\{\{/,relevance:0},Y={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,K],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,K],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,K,F,H]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,K,F,H]},{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:[Z.BACKSLASH_ESCAPE,F,H]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,F,H]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},C="[0-9](_?[0-9])*",L="(\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.",B=`\\b|${$.join("|")}`,M={className:"number",relevance:0,variants:[{begin:`(\\b([0-9](_?[0-9])*)|((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.))[eE][+-]?([0-9](_?[0-9])*)[jJ]?(?=${B})`},{begin:"((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.)[jJ]?"},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${B})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${B})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${B})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${B})`},{begin:`\\b([0-9](_?[0-9])*)[jJ](?=${B})`}]},k={className:"comment",begin:J.lookahead(/# type:/),end:/$/,keywords:G,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},T={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:G,contains:["self",K,M,Y,Z.HASH_COMMENT_MODE]}]};return H.contains=[Y,M,K],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:G,illegal:/(<\/|\?)|=>/,contains:[K,M,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},Y,k,Z.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,Q],scope:{1:"keyword",3:"title.function"},contains:[T]},{variants:[{match:[/\bclass/,/\s+/,Q,/\s*/,/\(\s*/,Q,/\s*\)/]},{match:[/\bclass/,/\s+/,Q]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[M,T,Y]}]}}K6.exports=Yz});var U6=_0((Mq,Y6)=>{function Uz(Z){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}Y6.exports=Uz});var L6=_0((Nq,B6)=>{function Bz(Z){let J=Z.regex,Q=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,$=J.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),X=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,q=J.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:Q,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[Z.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:J.lookahead(J.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:Q},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),Z.HASH_COMMENT_MODE,{scope:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[X,$]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,$]},{scope:{1:"punctuation",2:"number"},match:[q,$]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,$]}]},{scope:{3:"operator"},match:[Q,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:X},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:q},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}B6.exports=Bz});var P6=_0((vq,y6)=>{function Lz(Z){let J=Z.regex,Q=/(r#)?/,$=J.concat(Q,Z.UNDERSCORE_IDENT_RE),X=J.concat(Q,Z.IDENT_RE),q={className:"title.function.invoke",relevance:0,begin:J.concat(/\b/,/(?!let|for|while|if|else|match\b)/,X,J.lookahead(/\s*\(/))},W="([ui](8|16|32|64|128|size)|f(32|64))?",G=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],K=["true","false","Some","None","Ok","Err"],H=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],F=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:Z.IDENT_RE+"!?",type:F,keyword:G,literal:K,built_in:H},illegal:"</",contains:[Z.C_LINE_COMMENT_MODE,Z.COMMENT("/\\*","\\*/",{contains:["self"]}),Z.inherit(Z.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?"}],relevance:0},{begin:[/fn/,/\s+/,$],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,$],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,$,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,$],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,$],className:{1:"keyword",3:"title.class"}},{begin:Z.IDENT_RE+"::",keywords:{keyword:"Self",built_in:H,type:F}},{className:"punctuation",begin:"->"},q]}}y6.exports=Lz});var C6=_0((kq,w6)=>{var yz=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.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:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},Pz=["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"],wz=["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"],Cz=[...Pz,...wz],Oz=["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(),_z=["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(),Az=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Mz=["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 Nz(Z){let J=yz(Z),Q=Az,$=_z,X="@[a-z-]+",q="and or not only",W="[a-zA-Z-][a-zA-Z0-9_-]*",G={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,J.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+Cz.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+$.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Q.join("|")+")"},G,{begin:/\(/,end:/\)/,contains:[J.CSS_NUMBER_MODE]},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Mz.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[J.BLOCK_COMMENT,G,J.HEXCOLOR,J.CSS_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,J.IMPORTANT,J.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:"@[a-z-]+",keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Oz.join(" ")},contains:[{begin:"@[a-z-]+",className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},G,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,J.HEXCOLOR,J.CSS_NUMBER_MODE]},J.FUNCTION_DISPATCH]}}w6.exports=Nz});var _6=_0((Rq,O6)=>{function vz(Z){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}O6.exports=vz});var M6=_0((Tq,A6)=>{function kz(Z){let J=Z.regex,Q=Z.COMMENT("--","$"),$={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},X={begin:/"/,end:/"/,contains:[{match:/""/}]},q=["true","false","unknown"],W=["double precision","large object","with timezone","without timezone"],G=["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"],K=["add","asc","collation","desc","final","first","last","view"],H=["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"],F=["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"],Y=["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"],C=["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"],L=F,B=[...H,...K].filter((A)=>{return!F.includes(A)}),M={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},k={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},T={match:J.concat(/\b/,J.either(...L),/\s*\(/),relevance:0,keywords:{built_in:L}};function O(A){return J.concat(/\b/,J.either(...A.map((y)=>{return y.replace(/\s+/,"\\s+")})),/\b/)}let P={scope:"keyword",match:O(C),relevance:0};function _(A,{exceptions:y,when:x}={}){let v=x;return y=y||[],A.map((E)=>{if(E.match(/\|\d+$/)||y.includes(E))return E;else if(v(E))return`${E}|0`;else return E})}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:_(B,{when:(A)=>A.length<3}),literal:q,type:G,built_in:Y},contains:[{scope:"type",match:O(W)},P,T,M,$,X,Z.C_NUMBER_MODE,Z.C_BLOCK_COMMENT_MODE,Q,k]}}A6.exports=kz});var f6=_0((Vq,I6)=>{function R6(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function WZ(Z){return I0("(?=",Z,")")}function I0(...Z){return Z.map((Q)=>R6(Q)).join("")}function Rz(Z){let J=Z[Z.length-1];if(typeof J==="object"&&J.constructor===Object)return Z.splice(Z.length-1,1),J;else return{}}function a0(...Z){return"("+(Rz(Z).capture?"":"?:")+Z.map(($)=>R6($)).join("|")+")"}var r1=(Z)=>I0(/\b/,Z,/\w$/.test(Z)?/\b/:/\B/),Tz=["Protocol","Type"].map(r1),N6=["init","self"].map(r1),Vz=["Any","Self"],l1=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],v6=["false","nil","true"],Sz=["assignment","associativity","higherThan","left","lowerThan","none","right"],Iz=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],k6=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],T6=a0(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),V6=a0(T6,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),n1=I0(T6,V6,"*"),S6=a0(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),nZ=a0(S6,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),W9=I0(S6,nZ,"*"),lZ=I0(/[A-Z]/,nZ,"*"),fz=["attached","autoclosure",I0(/convention\(/,a0("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",I0(/objc\(/,W9,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],bz=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function gz(Z){let J={match:/\s+/,relevance:0},Q=Z.COMMENT("/\\*","\\*/",{contains:["self"]}),$=[Z.C_LINE_COMMENT_MODE,Q],X={match:[/\./,a0(...Tz,...N6)],className:{2:"keyword"}},q={match:I0(/\./,a0(...l1)),relevance:0},W=l1.filter((D)=>typeof D==="string").concat(["_|0"]),G=l1.filter((D)=>typeof D!=="string").concat(Vz).map(r1),K={variants:[{className:"keyword",match:a0(...G,...N6)}]},H={$pattern:a0(/\b\w+/,/#\w+/),keyword:W.concat(Iz),literal:v6},F=[X,q,K],Y={match:I0(/\./,a0(...k6)),relevance:0},C={className:"built_in",match:I0(/\b/,a0(...k6),/(?=\()/)},L=[Y,C],B={match:/->/,relevance:0},M={className:"operator",relevance:0,variants:[{match:n1},{match:`\\.(\\.|${V6})+`}]},k=[B,M],T="([0-9]_*)+",O="([0-9a-fA-F]_*)+",P={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:"\\b0x(([0-9a-fA-F]_*)+)(\\.(([0-9a-fA-F]_*)+))?([pP][+-]?(([0-9]_*)+))?\\b"},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},_=(D="")=>({className:"subst",variants:[{match:I0(/\\/,D,/[0\\tnr"']/)},{match:I0(/\\/,D,/u\{[0-9a-fA-F]{1,8}\}/)}]}),A=(D="")=>({className:"subst",match:I0(/\\/,D,/[\t ]*(?:[\r\n]|\r\n)/)}),y=(D="")=>({className:"subst",label:"interpol",begin:I0(/\\/,D,/\(/),end:/\)/}),x=(D="")=>({begin:I0(D,/"""/),end:I0(/"""/,D),contains:[_(D),A(D),y(D)]}),v=(D="")=>({begin:I0(D,/"/),end:I0(/"/,D),contains:[_(D),y(D)]}),E={className:"string",variants:[x(),x("#"),x("##"),x("###"),v(),v("#"),v("##"),v("###")]},J0=[Z.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[Z.BACKSLASH_ESCAPE]}],l={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:J0},A0=(D)=>{let L0=I0(D,/\//),d=I0(/\//,D);return{begin:L0,end:d,contains:[...J0,{scope:"comment",begin:`#(?!.*${d})`,end:/$/}]}},o={scope:"regexp",variants:[A0("###"),A0("##"),A0("#"),l]},B0={match:I0(/`/,W9,/`/)},K0={className:"variable",match:/\$\d+/},I={className:"variable",match:`\\$${nZ}+`},V=[B0,K0,I],g={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:bz,contains:[...k,P,E]}]}},j={scope:"keyword",match:I0(/@/,a0(...fz),WZ(a0(/\(/,/\s+/)))},e={scope:"meta",match:I0(/@/,W9)},X0=[g,j,e],W0={match:WZ(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:I0(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,nZ,"+")},{className:"type",match:lZ,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:I0(/\s+&\s+/,WZ(lZ)),relevance:0}]},P0={begin:/</,end:/>/,keywords:H,contains:[...$,...F,...X0,B,W0]};W0.contains.push(P0);let k0={match:I0(W9,/\s*:/),keywords:"_|0",relevance:0},p={begin:/\(/,end:/\)/,relevance:0,keywords:H,contains:["self",k0,...$,o,...F,...L,...k,P,E,...V,...X0,W0]},s={begin:/</,end:/>/,keywords:"repeat each",contains:[...$,W0]},Y0={begin:a0(WZ(I0(W9,/\s*:/)),WZ(I0(W9,/\s+/,W9,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:W9}]},U0={begin:/\(/,end:/\)/,keywords:H,contains:[Y0,...$,...F,...k,P,E,...X0,W0,p],endsParent:!0,illegal:/["']/},h0={match:[/(func|macro)/,/\s+/,a0(B0.match,W9,n1)],className:{1:"keyword",3:"title.function"},contains:[s,U0,J],illegal:[/\[/,/%/]},z0={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[s,U0,J],illegal:/\[|%/},N={match:[/operator/,/\s+/,n1],className:{1:"keyword",3:"title"}},S={begin:[/precedencegroup/,/\s+/,lZ],className:{1:"keyword",3:"title"},contains:[W0],keywords:[...Sz,...v6],end:/}/},c={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},h={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},q0={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,W9,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:H,contains:[s,...F,{begin:/:/,end:/\{/,keywords:H,contains:[{scope:"title.class.inherited",match:lZ},...F],relevance:0}]};for(let D of E.variants){let L0=D.contains.find((S0)=>S0.label==="interpol");L0.keywords=H;let d=[...F,...L,...k,P,E,...V];L0.contains=[...d,{begin:/\(/,end:/\)/,contains:["self",...d]}]}return{name:"Swift",keywords:H,contains:[...$,h0,z0,c,h,q0,N,S,{beginKeywords:"import",end:/$/,contains:[...$],relevance:0},o,...F,...L,...k,P,E,...V,...X0,W0,p]}}I6.exports=gz});var g6=_0((Sq,b6)=>{function xz(Z){let $={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},X={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},q={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},W={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[Z.BACKSLASH_ESCAPE,X]},G=Z.inherit(W,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),K="[0-9]{4}(-[0-9][0-9]){0,2}",H="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",F="(\\.[0-9]*)?",Y="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",C={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"},L={end:",",endsWithParent:!0,excludeEnd:!0,keywords:"true false yes no null",relevance:0},B={begin:/\{/,end:/\}/,contains:[L],illegal:"\\n",relevance:0},M={begin:"\\[",end:"\\]",contains:[L],illegal:"\\n",relevance:0},k=[$,{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+![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!<[\\w#;/?:@&=+$,.~*'()[\\]]+>"},{className:"type",begin:"![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"meta",begin:"&"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},Z.HASH_COMMENT_MODE,{beginKeywords:"true false yes no null",keywords:{literal:"true false yes no null"}},C,{className:"number",begin:Z.C_NUMBER_RE+"\\b",relevance:0},B,M,q,W],T=[...k];return T.pop(),T.push(G),L.contains=T,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:k}}b6.exports=xz});var c6=_0((Iq,p6)=>{var x6=["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"],j6=["true","false","null","undefined","NaN","Infinity"],D6=["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"],h6=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],m6=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],u6=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],E6=[].concat(m6,D6,h6);function jz(Z){let J=Z.regex,Q=(g,{after:j})=>{let e="</"+g[0].slice(1);return g.input.indexOf(e,j)!==-1},$="[A-Za-z$_][0-9A-Za-z$_]*",X={begin:"<>",end:"</>"},q=/<[A-Za-z0-9\\._:-]+\s*\/>/,W={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(g,j)=>{let e=g[0].length+g.index,X0=g.input[e];if(X0==="<"||X0===","){j.ignoreMatch();return}if(X0===">"){if(!Q(g,{after:e}))j.ignoreMatch()}let W0,P0=g.input.substring(e);if(W0=P0.match(/^\s*=/)){j.ignoreMatch();return}if(W0=P0.match(/^\s+extends\s+/)){if(W0.index===0){j.ignoreMatch();return}}}},G={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:x6,literal:j6,built_in:E6,"variable.language":u6},K="[0-9](_?[0-9])*",H="\\.([0-9](_?[0-9])*)",F="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",Y={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\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},C={className:"subst",begin:"\\$\\{",end:"\\}",keywords:G,contains:[]},L={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,C],subLanguage:"xml"}},B={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,C],subLanguage:"css"}},M={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,C],subLanguage:"graphql"}},k={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,C]},O={className:"comment",variants:[Z.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:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},P=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,L,B,M,k,{match:/\$\d+/},Y];C.contains=P.concat({begin:/\{/,end:/\}/,keywords:G,contains:["self"].concat(P)});let _=[].concat(O,C.contains),A=_.concat([{begin:/(\s*)\(/,end:/\)/,keywords:G,contains:["self"].concat(_)}]),y={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:G,contains:A},x={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,J.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",J.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},v={relevance:0,match:J.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:{_:[...D6,...h6]}},E={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},J0={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[y],illegal:/%/},l={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function A0(g){return J.concat("(?!",g.join("|"),")")}let o={match:J.concat(/\b/,A0([...m6,"super","import"].map((g)=>`${g}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\(/)),className:"title.function",relevance:0},B0={begin:J.concat(/\./,J.lookahead(J.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},K0={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},y]},I="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",V={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,J.lookahead(I)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[y]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:G,exports:{PARAMS_CONTAINS:A,CLASS_REFERENCE:v},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),E,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,L,B,M,k,O,{match:/\$\d+/},Y,v,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+J.lookahead(":"),relevance:0},V,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[O,Z.REGEXP_MODE,{className:"function",begin:I,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:G,contains:A}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:X.begin,end:X.end},{match:q},{begin:W.begin,"on:begin":W.isTrulyOpeningTag,end:W.end}],subLanguage:"xml",contains:[{begin:W.begin,end:W.end,skip:!0,contains:["self"]}]}]},J0,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[y,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},B0,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[y]},o,l,x,K0,{match:/\$[(.]/}]}}function Dz(Z){let J=Z.regex,Q=jz(Z),$="[A-Za-z$_][0-9A-Za-z$_]*",X=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],q={begin:[/namespace/,/\s+/,Z.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},W={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:X},contains:[Q.exports.CLASS_REFERENCE]},G={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},K=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],H={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:x6.concat(K),literal:j6,built_in:E6.concat(X),"variable.language":u6},F={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},Y=(M,k,T)=>{let O=M.contains.findIndex((P)=>P.label===k);if(O===-1)throw Error("can not find mode to replace");M.contains.splice(O,1,T)};Object.assign(Q.keywords,H),Q.exports.PARAMS_CONTAINS.push(F);let C=Q.contains.find((M)=>M.scope==="attr"),L=Object.assign({},C,{match:J.concat("[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\?:/))});Q.exports.PARAMS_CONTAINS.push([Q.exports.CLASS_REFERENCE,C,L]),Q.contains=Q.contains.concat([F,q,W,L]),Y(Q,"shebang",Z.SHEBANG()),Y(Q,"use_strict",G);let B=Q.contains.find((M)=>M.label==="func.def");return B.relevance=0,Object.assign(Q,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),Q}p6.exports=Dz});var d6=_0((fq,i6)=>{function hz(Z){let J=Z.regex,Q={className:"string",begin:/"(""|[^/n])"C\b/},$={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},X=/\d{1,2}\/\d{1,2}\/\d{4}/,q=/\d{4}-\d{1,2}-\d{1,2}/,W=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,G=/\d{1,2}(:\d{1,2}){1,2}/,K={className:"literal",variants:[{begin:J.concat(/# */,J.either(q,X),/ *#/)},{begin:J.concat(/# */,G,/ *#/)},{begin:J.concat(/# */,W,/ *#/)},{begin:J.concat(/# */,J.either(q,X),/ +/,J.either(W,G),/ *#/)}]},H={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},F={className:"label",begin:/^\w+:/},Y=Z.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),C=Z.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[Q,$,K,H,F,Y,C,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[C]}]}}i6.exports=hz});var l6=_0((bq,a6)=>{function mz(Z){Z.regex;let J=Z.COMMENT(/\(;/,/;\)/);J.contains.push("self");let Q=Z.COMMENT(/;;/,/$/),$=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],X={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},q={className:"variable",begin:/\$[\w_]+/},W={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},G={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},K={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},H={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:$},contains:[Q,J,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},q,W,X,Z.QUOTE_STRING_MODE,K,H,G]}}a6.exports=mz});var r6=_0((gq,n6)=>{var w0=G5();w0.registerLanguage("xml",K5());w0.registerLanguage("bash",Y5());w0.registerLanguage("c",B5());w0.registerLanguage("cpp",y5());w0.registerLanguage("csharp",w5());w0.registerLanguage("css",O5());w0.registerLanguage("markdown",A5());w0.registerLanguage("diff",N5());w0.registerLanguage("ruby",k5());w0.registerLanguage("go",T5());w0.registerLanguage("graphql",S5());w0.registerLanguage("ini",f5());w0.registerLanguage("java",j5());w0.registerLanguage("javascript",E5());w0.registerLanguage("json",c5());w0.registerLanguage("kotlin",d5());w0.registerLanguage("less",r5());w0.registerLanguage("lua",t5());w0.registerLanguage("makefile",e5());w0.registerLanguage("perl",J6());w0.registerLanguage("objectivec",z6());w0.registerLanguage("php",X6());w0.registerLanguage("php-template",W6());w0.registerLanguage("plaintext",H6());w0.registerLanguage("python",F6());w0.registerLanguage("python-repl",U6());w0.registerLanguage("r",L6());w0.registerLanguage("rust",P6());w0.registerLanguage("scss",C6());w0.registerLanguage("shell",_6());w0.registerLanguage("sql",M6());w0.registerLanguage("swift",f6());w0.registerLanguage("yaml",g6());w0.registerLanguage("typescript",c6());w0.registerLanguage("vbnet",d6());w0.registerLanguage("wasm",l6());w0.HighlightJS=w0;w0.default=w0;n6.exports=w0});var kZ,V0,E8,kJ,K9,D8,p8,c8,H1,OZ,t9,i8,U1,K1,F1,RJ,MZ={},NZ=[],TJ=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,RZ=Array.isArray;function G9(Z,J){for(var Q in J)Z[Q]=J[Q];return Z}function B1(Z){Z&&Z.parentNode&&Z.parentNode.removeChild(Z)}function VJ(Z,J,Q){var $,X,q,W={};for(q in J)q=="key"?$=J[q]:q=="ref"?X=J[q]:W[q]=J[q];if(arguments.length>2&&(W.children=arguments.length>3?kZ.call(arguments,2):Q),typeof Z=="function"&&Z.defaultProps!=null)for(q in Z.defaultProps)W[q]===void 0&&(W[q]=Z.defaultProps[q]);return _Z(Z,W,$,X,null)}function _Z(Z,J,Q,$,X){var q={type:Z,props:J,key:Q,ref:$,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:X==null?++E8:X,__i:-1,__u:0};return X==null&&V0.vnode!=null&&V0.vnode(q),q}function n(Z){return Z.children}function AZ(Z,J){this.props=Z,this.context=J}function g9(Z,J){if(J==null)return Z.__?g9(Z.__,Z.__i+1):null;for(var Q;J<Z.__k.length;J++)if((Q=Z.__k[J])!=null&&Q.__e!=null)return Q.__e;return typeof Z.type=="function"?g9(Z):null}function SJ(Z){if(Z.__P&&Z.__d){var J=Z.__v,Q=J.__e,$=[],X=[],q=G9({},J);q.__v=J.__v+1,V0.vnode&&V0.vnode(q),L1(Z.__P,q,J,Z.__n,Z.__P.namespaceURI,32&J.__u?[Q]:null,$,Q==null?g9(J):Q,!!(32&J.__u),X),q.__v=J.__v,q.__.__k[q.__i]=q,n8($,q,X),J.__e=J.__=null,q.__e!=Q&&d8(q)}}function d8(Z){if((Z=Z.__)!=null&&Z.__c!=null)return Z.__e=Z.__c.base=null,Z.__k.some(function(J){if(J!=null&&J.__e!=null)return Z.__e=Z.__c.base=J.__e}),d8(Z)}function h8(Z){(!Z.__d&&(Z.__d=!0)&&K9.push(Z)&&!vZ.__r++||D8!=V0.debounceRendering)&&((D8=V0.debounceRendering)||p8)(vZ)}function vZ(){try{for(var Z,J=1;K9.length;)K9.length>J&&K9.sort(c8),Z=K9.shift(),J=K9.length,SJ(Z)}finally{K9.length=vZ.__r=0}}function a8(Z,J,Q,$,X,q,W,G,K,H,F){var Y,C,L,B,M,k,T,O=$&&$.__k||NZ,P=J.length;for(K=IJ(Q,J,O,K,P),Y=0;Y<P;Y++)(L=Q.__k[Y])!=null&&(C=L.__i!=-1&&O[L.__i]||MZ,L.__i=Y,k=L1(Z,L,C,X,q,W,G,K,H,F),B=L.__e,L.ref&&C.ref!=L.ref&&(C.ref&&y1(C.ref,null,L),F.push(L.ref,L.__c||B,L)),M==null&&B!=null&&(M=B),(T=!!(4&L.__u))||C.__k===L.__k?(K=l8(L,K,Z,T),T&&C.__e&&(C.__e=null)):typeof L.type=="function"&&k!==void 0?K=k:B&&(K=B.nextSibling),L.__u&=-7);return Q.__e=M,K}function IJ(Z,J,Q,$,X){var q,W,G,K,H,F=Q.length,Y=F,C=0;for(Z.__k=Array(X),q=0;q<X;q++)(W=J[q])!=null&&typeof W!="boolean"&&typeof W!="function"?(typeof W=="string"||typeof W=="number"||typeof W=="bigint"||W.constructor==String?W=Z.__k[q]=_Z(null,W,null,null,null):RZ(W)?W=Z.__k[q]=_Z(n,{children:W},null,null,null):W.constructor===void 0&&W.__b>0?W=Z.__k[q]=_Z(W.type,W.props,W.key,W.ref?W.ref:null,W.__v):Z.__k[q]=W,K=q+C,W.__=Z,W.__b=Z.__b+1,G=null,(H=W.__i=fJ(W,Q,K,Y))!=-1&&(Y--,(G=Q[H])&&(G.__u|=2)),G==null||G.__v==null?(H==-1&&(X>F?C--:X<F&&C++),typeof W.type!="function"&&(W.__u|=4)):H!=K&&(H==K-1?C--:H==K+1?C++:(H>K?C--:C++,W.__u|=4))):Z.__k[q]=null;if(Y)for(q=0;q<F;q++)(G=Q[q])!=null&&(2&G.__u)==0&&(G.__e==$&&($=g9(G)),o8(G,G));return $}function l8(Z,J,Q,$){var X,q;if(typeof Z.type=="function"){for(X=Z.__k,q=0;X&&q<X.length;q++)X[q]&&(X[q].__=Z,J=l8(X[q],J,Q,$));return J}Z.__e!=J&&($&&(J&&Z.type&&!J.parentNode&&(J=g9(Z)),Q.insertBefore(Z.__e,J||null)),J=Z.__e);do J=J&&J.nextSibling;while(J!=null&&J.nodeType==8);return J}function fJ(Z,J,Q,$){var X,q,W,G=Z.key,K=Z.type,H=J[Q],F=H!=null&&(2&H.__u)==0;if(H===null&&G==null||F&&G==H.key&&K==H.type)return Q;if($>(F?1:0)){for(X=Q-1,q=Q+1;X>=0||q<J.length;)if((H=J[W=X>=0?X--:q++])!=null&&(2&H.__u)==0&&G==H.key&&K==H.type)return W}return-1}function m8(Z,J,Q){J[0]=="-"?Z.setProperty(J,Q==null?"":Q):Z[J]=Q==null?"":typeof Q!="number"||TJ.test(J)?Q:Q+"px"}function CZ(Z,J,Q,$,X){var q,W;Z:if(J=="style")if(typeof Q=="string")Z.style.cssText=Q;else{if(typeof $=="string"&&(Z.style.cssText=$=""),$)for(J in $)Q&&J in Q||m8(Z.style,J,"");if(Q)for(J in Q)$&&Q[J]==$[J]||m8(Z.style,J,Q[J])}else if(J[0]=="o"&&J[1]=="n")q=J!=(J=J.replace(i8,"$1")),W=J.toLowerCase(),J=W in Z||J=="onFocusOut"||J=="onFocusIn"?W.slice(2):J.slice(2),Z.l||(Z.l={}),Z.l[J+q]=Q,Q?$?Q[t9]=$[t9]:(Q[t9]=U1,Z.addEventListener(J,q?F1:K1,q)):Z.removeEventListener(J,q?F1:K1,q);else{if(X=="http://www.w3.org/2000/svg")J=J.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(J!="width"&&J!="height"&&J!="href"&&J!="list"&&J!="form"&&J!="tabIndex"&&J!="download"&&J!="rowSpan"&&J!="colSpan"&&J!="role"&&J!="popover"&&J in Z)try{Z[J]=Q==null?"":Q;break Z}catch(G){}typeof Q=="function"||(Q==null||Q===!1&&J[4]!="-"?Z.removeAttribute(J):Z.setAttribute(J,J=="popover"&&Q==1?"":Q))}}function u8(Z){return function(J){if(this.l){var Q=this.l[J.type+Z];if(J[OZ]==null)J[OZ]=U1++;else if(J[OZ]<Q[t9])return;return Q(V0.event?V0.event(J):J)}}}function L1(Z,J,Q,$,X,q,W,G,K,H){var F,Y,C,L,B,M,k,T,O,P,_,A,y,x,v,E=J.type;if(J.constructor!==void 0)return null;128&Q.__u&&(K=!!(32&Q.__u),q=[G=J.__e=Q.__e]),(F=V0.__b)&&F(J);Z:if(typeof E=="function")try{if(T=J.props,O=E.prototype&&E.prototype.render,P=(F=E.contextType)&&$[F.__c],_=F?P?P.props.value:F.__:$,Q.__c?k=(Y=J.__c=Q.__c).__=Y.__E:(O?J.__c=Y=new E(T,_):(J.__c=Y=new AZ(T,_),Y.constructor=E,Y.render=gJ),P&&P.sub(Y),Y.state||(Y.state={}),Y.__n=$,C=Y.__d=!0,Y.__h=[],Y._sb=[]),O&&Y.__s==null&&(Y.__s=Y.state),O&&E.getDerivedStateFromProps!=null&&(Y.__s==Y.state&&(Y.__s=G9({},Y.__s)),G9(Y.__s,E.getDerivedStateFromProps(T,Y.__s))),L=Y.props,B=Y.state,Y.__v=J,C)O&&E.getDerivedStateFromProps==null&&Y.componentWillMount!=null&&Y.componentWillMount(),O&&Y.componentDidMount!=null&&Y.__h.push(Y.componentDidMount);else{if(O&&E.getDerivedStateFromProps==null&&T!==L&&Y.componentWillReceiveProps!=null&&Y.componentWillReceiveProps(T,_),J.__v==Q.__v||!Y.__e&&Y.shouldComponentUpdate!=null&&Y.shouldComponentUpdate(T,Y.__s,_)===!1){J.__v!=Q.__v&&(Y.props=T,Y.state=Y.__s,Y.__d=!1),J.__e=Q.__e,J.__k=Q.__k,J.__k.some(function(J0){J0&&(J0.__=J)}),NZ.push.apply(Y.__h,Y._sb),Y._sb=[],Y.__h.length&&W.push(Y);break Z}Y.componentWillUpdate!=null&&Y.componentWillUpdate(T,Y.__s,_),O&&Y.componentDidUpdate!=null&&Y.__h.push(function(){Y.componentDidUpdate(L,B,M)})}if(Y.context=_,Y.props=T,Y.__P=Z,Y.__e=!1,A=V0.__r,y=0,O)Y.state=Y.__s,Y.__d=!1,A&&A(J),F=Y.render(Y.props,Y.state,Y.context),NZ.push.apply(Y.__h,Y._sb),Y._sb=[];else do Y.__d=!1,A&&A(J),F=Y.render(Y.props,Y.state,Y.context),Y.state=Y.__s;while(Y.__d&&++y<25);Y.state=Y.__s,Y.getChildContext!=null&&($=G9(G9({},$),Y.getChildContext())),O&&!C&&Y.getSnapshotBeforeUpdate!=null&&(M=Y.getSnapshotBeforeUpdate(L,B)),x=F!=null&&F.type===n&&F.key==null?r8(F.props.children):F,G=a8(Z,RZ(x)?x:[x],J,Q,$,X,q,W,G,K,H),Y.base=J.__e,J.__u&=-161,Y.__h.length&&W.push(Y),k&&(Y.__E=Y.__=null)}catch(J0){if(J.__v=null,K||q!=null)if(J0.then){for(J.__u|=K?160:128;G&&G.nodeType==8&&G.nextSibling;)G=G.nextSibling;q[q.indexOf(G)]=null,J.__e=G}else{for(v=q.length;v--;)B1(q[v]);Y1(J)}else J.__e=Q.__e,J.__k=Q.__k,J0.then||Y1(J);V0.__e(J0,J,Q)}else q==null&&J.__v==Q.__v?(J.__k=Q.__k,J.__e=Q.__e):G=J.__e=bJ(Q.__e,J,Q,$,X,q,W,K,H);return(F=V0.diffed)&&F(J),128&J.__u?void 0:G}function Y1(Z){Z&&(Z.__c&&(Z.__c.__e=!0),Z.__k&&Z.__k.some(Y1))}function n8(Z,J,Q){for(var $=0;$<Q.length;$++)y1(Q[$],Q[++$],Q[++$]);V0.__c&&V0.__c(J,Z),Z.some(function(X){try{Z=X.__h,X.__h=[],Z.some(function(q){q.call(X)})}catch(q){V0.__e(q,X.__v)}})}function r8(Z){return typeof Z!="object"||Z==null||Z.__b>0?Z:RZ(Z)?Z.map(r8):Z.constructor!==void 0?null:G9({},Z)}function bJ(Z,J,Q,$,X,q,W,G,K){var H,F,Y,C,L,B,M,k=Q.props||MZ,T=J.props,O=J.type;if(O=="svg"?X="http://www.w3.org/2000/svg":O=="math"?X="http://www.w3.org/1998/Math/MathML":X||(X="http://www.w3.org/1999/xhtml"),q!=null){for(H=0;H<q.length;H++)if((L=q[H])&&"setAttribute"in L==!!O&&(O?L.localName==O:L.nodeType==3)){Z=L,q[H]=null;break}}if(Z==null){if(O==null)return document.createTextNode(T);Z=document.createElementNS(X,O,T.is&&T),G&&(V0.__m&&V0.__m(J,q),G=!1),q=null}if(O==null)k===T||G&&Z.data==T||(Z.data=T);else{if(q=O=="textarea"&&T.defaultValue!=null?null:q&&kZ.call(Z.childNodes),!G&&q!=null)for(k={},H=0;H<Z.attributes.length;H++)k[(L=Z.attributes[H]).name]=L.value;for(H in k)L=k[H],H=="dangerouslySetInnerHTML"?Y=L:H=="children"||(H in T)||H=="value"&&("defaultValue"in T)||H=="checked"&&("defaultChecked"in T)||CZ(Z,H,null,L,X);for(H in T)L=T[H],H=="children"?C=L:H=="dangerouslySetInnerHTML"?F=L:H=="value"?B=L:H=="checked"?M=L:G&&typeof L!="function"||k[H]===L||CZ(Z,H,L,k[H],X);if(F)G||Y&&(F.__html==Y.__html||F.__html==Z.innerHTML)||(Z.innerHTML=F.__html),J.__k=[];else if(Y&&(Z.innerHTML=""),a8(J.type=="template"?Z.content:Z,RZ(C)?C:[C],J,Q,$,O=="foreignObject"?"http://www.w3.org/1999/xhtml":X,q,W,q?q[0]:Q.__k&&g9(Q,0),G,K),q!=null)for(H=q.length;H--;)B1(q[H]);G&&O!="textarea"||(H="value",O=="progress"&&B==null?Z.removeAttribute("value"):B!=null&&(B!==Z[H]||O=="progress"&&!B||O=="option"&&B!=k[H])&&CZ(Z,H,B,k[H],X),H="checked",M!=null&&M!=Z[H]&&CZ(Z,H,M,k[H],X))}return Z}function y1(Z,J,Q){try{if(typeof Z=="function"){var $=typeof Z.__u=="function";$&&Z.__u(),$&&J==null||(Z.__u=Z(J))}else Z.current=J}catch(X){V0.__e(X,Q)}}function o8(Z,J,Q){var $,X;if(V0.unmount&&V0.unmount(Z),($=Z.ref)&&($.current&&$.current!=Z.__e||y1($,null,J)),($=Z.__c)!=null){if($.componentWillUnmount)try{$.componentWillUnmount()}catch(q){V0.__e(q,J)}$.base=$.__P=null}if($=Z.__k)for(X=0;X<$.length;X++)$[X]&&o8($[X],J,Q||typeof Z.type!="function");Q||B1(Z.__e),Z.__c=Z.__=Z.__e=void 0}function gJ(Z,J,Q){return this.constructor(Z,Q)}function P1(Z,J,Q){var $,X,q,W;J==document&&(J=document.documentElement),V0.__&&V0.__(Z,J),X=($=typeof Q=="function")?null:Q&&Q.__k||J.__k,q=[],W=[],L1(J,Z=(!$&&Q||J).__k=VJ(n,null,[Z]),X||MZ,MZ,J.namespaceURI,!$&&Q?[Q]:X?null:J.firstChild?kZ.call(J.childNodes):null,q,!$&&Q?Q:X?X.__e:J.firstChild,$,W),n8(q,Z,W)}kZ=NZ.slice,V0={__e:function(Z,J,Q,$){for(var X,q,W;J=J.__;)if((X=J.__c)&&!X.__)try{if((q=X.constructor)&&q.getDerivedStateFromError!=null&&(X.setState(q.getDerivedStateFromError(Z)),W=X.__d),X.componentDidCatch!=null&&(X.componentDidCatch(Z,$||{}),W=X.__d),W)return X.__E=X}catch(G){Z=G}throw Z}},E8=0,kJ=function(Z){return Z!=null&&Z.constructor===void 0},AZ.prototype.setState=function(Z,J){var Q;Q=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=G9({},this.state),typeof Z=="function"&&(Z=Z(G9({},Q),this.props)),Z&&G9(Q,Z),Z!=null&&this.__v&&(J&&this._sb.push(J),h8(this))},AZ.prototype.forceUpdate=function(Z){this.__v&&(this.__e=!0,Z&&this.__h.push(Z),h8(this))},AZ.prototype.render=n,K9=[],p8=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,c8=function(Z,J){return Z.__v.__b-J.__v.__b},vZ.__r=0,H1=Math.random().toString(8),OZ="__d"+H1,t9="__a"+H1,i8=/(PointerCapture)$|Capture$/i,U1=0,K1=u8(!1),F1=u8(!0),RJ=0;var x9,x0,w1,t8,s9=0,X4=[],D0=V0,s8=D0.__b,e8=D0.__r,Z4=D0.diffed,J4=D0.__c,Q4=D0.unmount,z4=D0.__;function VZ(Z,J){D0.__h&&D0.__h(x0,Z,s9||J),s9=0;var Q=x0.__H||(x0.__H={__:[],__h:[]});return Z>=Q.__.length&&Q.__.push({}),Q.__[Z]}function b(Z){return s9=1,xJ(W4,Z)}function xJ(Z,J,Q){var $=VZ(x9++,2);if($.t=Z,!$.__c&&($.__=[Q?Q(J):W4(void 0,J),function(G){var K=$.__N?$.__N[0]:$.__[0],H=$.t(K,G);K!==H&&($.__N=[H,$.__[1]],$.__c.setState({}))}],$.__c=x0,!x0.__f)){var X=function(G,K,H){if(!$.__c.__H)return!0;var F=$.__c.__H.__.filter(function(C){return C.__c});if(F.every(function(C){return!C.__N}))return!q||q.call(this,G,K,H);var Y=$.__c.props!==G;return F.some(function(C){if(C.__N){var L=C.__[0];C.__=C.__N,C.__N=void 0,L!==C.__[0]&&(Y=!0)}}),q&&q.call(this,G,K,H)||Y};x0.__f=!0;var{shouldComponentUpdate:q,componentWillUpdate:W}=x0;x0.componentWillUpdate=function(G,K,H){if(this.__e){var F=q;q=void 0,X(G,K,H),q=F}W&&W.call(this,G,K,H)},x0.shouldComponentUpdate=X}return $.__N||$.__}function r(Z,J){var Q=VZ(x9++,3);!D0.__s&&O1(Q.__H,J)&&(Q.__=Z,Q.u=J,x0.__H.__h.push(Q))}function q4(Z,J){var Q=VZ(x9++,4);!D0.__s&&O1(Q.__H,J)&&(Q.__=Z,Q.u=J,x0.__h.push(Q))}function H0(Z){return s9=5,e9(function(){return{current:Z}},[])}function e9(Z,J){var Q=VZ(x9++,7);return O1(Q.__H,J)&&(Q.__=Z(),Q.__H=J,Q.__h=Z),Q.__}function O9(Z,J){return s9=8,e9(function(){return Z},J)}function jJ(){for(var Z;Z=X4.shift();){var J=Z.__H;if(Z.__P&&J)try{J.__h.some(TZ),J.__h.some(C1),J.__h=[]}catch(Q){J.__h=[],D0.__e(Q,Z.__v)}}}D0.__b=function(Z){x0=null,s8&&s8(Z)},D0.__=function(Z,J){Z&&J.__k&&J.__k.__m&&(Z.__m=J.__k.__m),z4&&z4(Z,J)},D0.__r=function(Z){e8&&e8(Z),x9=0;var J=(x0=Z.__c).__H;J&&(w1===x0?(J.__h=[],x0.__h=[],J.__.some(function(Q){Q.__N&&(Q.__=Q.__N),Q.u=Q.__N=void 0})):(J.__h.some(TZ),J.__h.some(C1),J.__h=[],x9=0)),w1=x0},D0.diffed=function(Z){Z4&&Z4(Z);var J=Z.__c;J&&J.__H&&(J.__H.__h.length&&(X4.push(J)!==1&&t8===D0.requestAnimationFrame||((t8=D0.requestAnimationFrame)||DJ)(jJ)),J.__H.__.some(function(Q){Q.u&&(Q.__H=Q.u),Q.u=void 0})),w1=x0=null},D0.__c=function(Z,J){J.some(function(Q){try{Q.__h.some(TZ),Q.__h=Q.__h.filter(function($){return!$.__||C1($)})}catch($){J.some(function(X){X.__h&&(X.__h=[])}),J=[],D0.__e($,Q.__v)}}),J4&&J4(Z,J)},D0.unmount=function(Z){Q4&&Q4(Z);var J,Q=Z.__c;Q&&Q.__H&&(Q.__H.__.some(function($){try{TZ($)}catch(X){J=X}}),Q.__H=void 0,J&&D0.__e(J,Q.__v))};var $4=typeof requestAnimationFrame=="function";function DJ(Z){var J,Q=function(){clearTimeout($),$4&&cancelAnimationFrame(J),setTimeout(Z)},$=setTimeout(Q,35);$4&&(J=requestAnimationFrame(Q))}function TZ(Z){var J=x0,Q=Z.__c;typeof Q=="function"&&(Z.__c=void 0,Q()),x0=J}function C1(Z){var J=x0;Z.__c=Z.__(),x0=J}function O1(Z,J){return!Z||Z.length!==J.length||J.some(function(Q,$){return Q!==Z[$]})}function W4(Z,J){return typeof J=="function"?J(Z):J}class _9 extends Error{code;constructor(Z,J){super(Z);this.code=J;this.name="BusError"}}class G4{ch=null;worker=null;started=!1;leader=!1;nextLocal=0;localPending=new Map;remotePending=new Map;listeners=new Set;start(){if(this.started)return;this.started=!0,this.ch=new BroadcastChannel("mh-replica-bus"),this.ch.onmessage=(J)=>this.onChannel(J.data);let Z=navigator.locks;if(Z)Z.request("mh-replica-leader",()=>{return this.becomeLeader(),new Promise(()=>{})}).catch(()=>{});else this.becomeLeader()}onEvent(Z){return this.listeners.add(Z),()=>this.listeners.delete(Z)}call(Z,...J){if(!this.started)this.start();if(this.leader)return this.workerCall(Z,J);return this.remoteCall(Z,J)}becomeLeader(){if(this.leader)return;this.leader=!0,this.spawnWorker();for(let[Z,J]of[...this.remotePending])this.remotePending.delete(Z),clearTimeout(J.timer),this.workerCall(J.op,J.args).then(J.resolve,J.reject)}spawnWorker(){if(this.worker)return;this.worker=new Worker("/db-worker.js",{type:"module"}),this.worker.onmessage=(Z)=>{let J=Z.data;if("id"in J){let Q=this.localPending.get(J.id);if(!Q)return;if(this.localPending.delete(J.id),J.ok)Q.resolve(J.result);else Q.reject(new _9(J.error.message,J.error.code));return}this.emit(J),this.ch?.postMessage({kind:"event",event:J})},this.worker.onerror=()=>{let Z={event:"status",status:{state:"error",paired:!1,node:null,error:"worker crashed"}};this.emit(Z),this.ch?.postMessage({kind:"event",event:Z})}}workerCall(Z,J){if(!this.worker)this.spawnWorker();let Q=++this.nextLocal;return new Promise(($,X)=>{this.localPending.set(Q,{resolve:$,reject:X}),this.worker.postMessage({id:Q,op:Z,args:J})})}remoteCall(Z,J){let Q=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;return new Promise(($,X)=>{let q=setTimeout(()=>{if(this.remotePending.delete(Q),this.leader){this.workerCall(Z,J).then($,X);return}X(new _9("replica leader unavailable","network"))},1e4);this.remotePending.set(Q,{resolve:$,reject:X,timer:q,op:Z,args:J}),this.ch?.postMessage({kind:"req",id:Q,op:Z,args:J})})}onChannel(Z){if(Z.kind==="req"){if(!this.leader)return;this.workerCall(Z.op,Z.args).then((J)=>this.ch?.postMessage({kind:"res",id:Z.id,ok:!0,result:J}),(J)=>this.ch?.postMessage({kind:"res",id:Z.id,ok:!1,error:{message:J.message,code:J.code}}));return}if(Z.kind==="res"){let J=this.remotePending.get(Z.id);if(!J)return;if(this.remotePending.delete(Z.id),clearTimeout(J.timer),Z.ok)J.resolve(Z.result);else J.reject(new _9(Z.error?.message??"replica error",Z.error?.code));return}if(Z.kind==="event"&&!this.leader)this.emit(Z.event)}emit(Z){for(let J of this.listeners)J(Z)}stopWorker(){this.worker?.terminate(),this.worker=null,this.localPending.forEach((Z)=>Z.reject(new _9("replica stopped",void 0))),this.localPending.clear()}}function SZ(){let Z=globalThis;return Z.__mhReplicaBus??=new G4}var M9="mh-synced",IZ="mh_replica",ZZ="mh_replica_hydrated";class Y9 extends Error{code;constructor(Z,J){super(Z);this.code=J;this.name="ReplicaError"}}var A9=!1,F9={state:"booting",paired:!1,node:null},_1=new Set;function K4(){return F9}function fZ(Z){return _1.add(Z),()=>_1.delete(Z)}function A1(Z){try{return localStorage.getItem(Z)==="1"}catch{return!1}}function j9(Z,J){try{J?localStorage.setItem(Z,"1"):localStorage.removeItem(Z)}catch{}}function bZ(){return A1(IZ)}function B9(){return bZ()&&A1(ZZ)&&A9&&F9.state!=="error"}function H4(Z){if(Z.event==="status"){if(F9=Z.status,F9.lastSync?.ok&&!A1(ZZ))j9(ZZ,!0),navigator.storage?.persist?.().catch(()=>{});for(let J of _1)J(F9);return}if(Z.event==="synced"){if(document.dispatchEvent(new CustomEvent(M9,{detail:Z})),Z.datasets.some((J)=>J==="databases"||J==="documents"))document.dispatchEvent(new CustomEvent(e0))}}function F4(){if(A9||typeof Worker>"u")return;A9=!0;let Z=SZ();Z.onEvent(H4),Z.start(),Z.call("status").then((J)=>H4({event:"status",status:J})).catch(()=>{}),hJ(),window.addEventListener("online",D9),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")D9()})}function U9(Z,...J){if(!A9)return Promise.reject(new Y9("replica not running",void 0));return SZ().call(Z,...J).catch((Q)=>{throw Q instanceof _9?new Y9(Q.message,Q.code):Q})}function D9(){if(A9&&F9.paired)U9("sync").catch(()=>{})}function Y4(Z=30000){if(F9.state==="ready")return Promise.resolve();return new Promise((J,Q)=>{let $=setTimeout(()=>{X(),Q(new Y9("本地副本启动超时",void 0))},Z),X=fZ((q)=>{if(q.state==="ready")clearTimeout($),X(),J();else if(q.state==="error")clearTimeout($),X(),Q(new Y9(q.error??"本地副本启动失败",void 0))})})}async function U4(){if(F4(),await Y4(),!F9.paired){let Z=await gZ("/api/pair/new",{method:"POST"});if(!Z.ok)throw new Y9(`无法获取配对码: ${Z.status}`,void 0);let{code:J}=await Z.json();await U9("pair",J)}j9(IZ,!0),D9()}async function B4(){j9(IZ,!1),j9(ZZ,!1);try{if(A9)await U9("unpair")}catch{}}async function L4(){j9(IZ,!1),j9(ZZ,!1);try{if(A9)await U9("unpair").catch(()=>{}),await U9("reset")}finally{SZ().stopWorker()}}function y4(){if(bZ())F4(),Y4().then(()=>D9()).catch(()=>{})}function hJ(){let Z=globalThis;if(Z.__mhSwBridge||!("serviceWorker"in navigator))return;Z.__mhSwBridge=!0,navigator.serviceWorker.addEventListener("message",(J)=>{let Q=J.data,$=J.ports?.[0];if(!Q||Q.kind!=="mh-rpc"||!$||!Q.op)return;if(!B9()){$.postMessage({ok:!1,error:{message:"replica unavailable",code:"unavailable"}});return}U9(Q.op,...Q.args??[]).then((X)=>$.postMessage({ok:!0,result:X}),(X)=>$.postMessage({ok:!1,error:{message:X.message,code:X.code}}))})}var mJ={invalid_input:400,not_found:404,ambiguous:400,stale:409,conflict:409,auth:401,network:502};function uJ(Z){return/^(create|update|delete|move|duplicate|revert)(Database|Document)/.test(Z)}async function M0(Z,...J){try{let Q=await U9(Z,...J);if(uJ(Z))document.dispatchEvent(new CustomEvent(e0));return Q}catch(Q){if(Q instanceof Y9)throw new L9(Q.message,Q.code,Q.code?mJ[Q.code]??400:0);throw Q}}var M1={listDatabases:()=>M0("listDatabases"),createDatabase:(Z)=>M0("createDatabase",Z),updateDatabase:(Z,J)=>M0("updateDatabase",Z,J),duplicateDatabase:(Z,J)=>M0("duplicateDatabase",Z,J),deleteDatabase:(Z)=>M0("deleteDatabase",Z),databaseActivity:(Z,J)=>M0("listDatabaseActivity",Z,J),listProperties:(Z)=>M0("listProperties",Z),createProperty:(Z)=>{let{db:J,...Q}=Z;return M0("addProperty",J,Q)},updateProperty:(Z,J)=>M0("updateProperty",Z,J),setColumnWidth:(Z,J)=>M0("setPropertyWidth",Z,J),deleteProperty:(Z)=>M0("removeProperty",Z),listRecords:(Z,J={})=>M0("listRecords",Z,J),createRecord:(Z,J)=>M0("createRecord",Z,J),getRecord:(Z)=>M0("getRecord",Z),updateRecord:(Z,J)=>M0("updateRecord",Z,J),moveRecord:(Z,J,Q)=>M0("moveRecord",Z,J,Q),deleteRecord:(Z)=>M0("deleteRecord",Z),recordHistory:(Z)=>M0("listRecordRevisions",Z),recordAt:(Z,J)=>M0("recordAtVersion",Z,J),revertRecord:(Z,J)=>M0("revertRecord",Z,J),listDocuments:(Z)=>M0("listDocuments",Z?{database_id:Z}:void 0),listDocumentsByParent:(Z)=>M0("listDocuments",{parent_id:Z}),createDocument:(Z)=>M0("createDocument",Z),getDocument:(Z)=>M0("getDocument",Z),updateDocument:(Z,J)=>{let{if_match:Q,...$}=J;return M0("updateDocument",Z,$,Q)},moveDocument:(Z,J,Q)=>M0("moveDocument",Z,J,Q),duplicateDocument:(Z,J)=>M0("duplicateDocument",Z,J),deleteDocument:(Z)=>M0("deleteDocument",Z),documentHistory:(Z)=>M0("listDocumentRevisions",Z),documentAt:(Z,J)=>M0("documentAtVersion",Z,J),revertDocument:(Z,J)=>M0("revertDocument",Z,J.to,J.if_match),nodes:()=>M0("nodes"),search:(Z,J)=>M0("search",Z,J)};class L9 extends Error{code;status;constructor(Z,J,Q){super(Z);this.code=J;this.status=Q;this.name="ApiError"}}var e0="mh-nav-invalidate";function EJ(Z,J){return Z!=="GET"&&(J.startsWith("/api/database")||J.startsWith("/api/document"))}var N1="mh_token",pJ="/auth/token";function cJ(){try{return localStorage.getItem(N1)}catch{return null}}function iJ(Z){try{localStorage.setItem(N1,Z)}catch{}document.cookie=`${N1}=${encodeURIComponent(Z)}; path=/; SameSite=Strict; Max-Age=31536000`}async function gZ(Z,J={}){let Q=cJ(),$=new Headers(J.headers);if(Q&&!$.has("authorization"))$.set("authorization",`Bearer ${Q}`);let X=await fetch(Z,{...J,headers:$});if(X.status!==401||!Q)return X;let q=await fetch(pJ,{headers:{authorization:`Bearer ${Q}`}}).catch(()=>null);if(!q?.ok)return X;let W=await q.json().catch(()=>null);if(!W?.token)return X;return iJ(W.token),$.set("authorization",`Bearer ${W.token}`),fetch(Z,{...J,headers:$})}async function F0(Z,J,Q){let $=await gZ(J,{method:Z,headers:Q!==void 0?{"content-type":"application/json"}:void 0,body:Q!==void 0?JSON.stringify(Q):void 0}),X=await $.json().catch(()=>null);if(!$.ok||X&&X.error)throw new L9(X&&X.error||`${$.status} ${$.statusText}`,X?.code,$.status);if(EJ(Z,J))document.dispatchEvent(new CustomEvent(e0));return X}var O0=(Z)=>encodeURIComponent(Z),dJ={listDatabases:()=>F0("GET","/api/databases"),createDatabase:(Z)=>F0("POST","/api/databases",Z),updateDatabase:(Z,J)=>F0("PATCH",`/api/database?id=${O0(Z)}`,J),duplicateDatabase:(Z,J)=>F0("POST",`/api/database/duplicate?id=${O0(Z)}`,J??{}),deleteDatabase:(Z)=>F0("DELETE",`/api/database?id=${O0(Z)}`),listProperties:(Z)=>F0("GET",`/api/properties?db=${O0(Z)}`),createProperty:(Z)=>F0("POST","/api/properties",Z),updateProperty:(Z,J)=>F0("PATCH",`/api/property?id=${O0(Z)}`,J),setColumnWidth:(Z,J)=>F0("PATCH",`/api/property/width?id=${O0(Z)}`,{width:J}),deleteProperty:(Z)=>F0("DELETE",`/api/property?id=${O0(Z)}`),listRecords:(Z,J={})=>{let Q=new URLSearchParams({db:Z});if(J.sort)Q.set("sort",J.sort);if(J.limit!=null)Q.set("limit",String(J.limit));return F0("GET",`/api/records?${Q}`)},createRecord:(Z,J)=>F0("POST",`/api/records?db=${O0(Z)}`,J),getRecord:(Z)=>F0("GET",`/api/record?id=${O0(Z)}`),updateRecord:(Z,J)=>F0("PATCH",`/api/record?id=${O0(Z)}`,J),moveRecord:(Z,J,Q)=>F0("PATCH",`/api/record/order?id=${O0(Z)}`,{target:J,where:Q}),deleteRecord:(Z)=>F0("DELETE",`/api/record?id=${O0(Z)}`),listDocuments:(Z)=>F0("GET",Z?`/api/documents?db=${O0(Z)}`:"/api/documents"),listDocumentsByParent:(Z)=>F0("GET",`/api/documents?parent=${O0(Z)}`),createDocument:(Z)=>F0("POST","/api/documents",Z),getDocument:(Z)=>F0("GET",`/api/document?id=${O0(Z)}`),updateDocument:(Z,J)=>F0("PATCH",`/api/document?id=${O0(Z)}`,J),moveDocument:(Z,J,Q)=>F0("PATCH",`/api/document/move?id=${O0(Z)}`,{target:J,where:Q}),duplicateDocument:(Z,J)=>F0("POST",`/api/document/duplicate?id=${O0(Z)}`,J??{}),deleteDocument:(Z)=>F0("DELETE",`/api/document?id=${O0(Z)}`),documentHistory:(Z)=>F0("GET",`/api/document/history?id=${O0(Z)}`),documentAt:(Z,J)=>F0("GET",`/api/document/at?id=${O0(Z)}&version=${O0(J)}`),revertDocument:(Z,J)=>F0("POST",`/api/document/revert?id=${O0(Z)}`,J),recordHistory:(Z)=>F0("GET",`/api/record/history?id=${O0(Z)}`),databaseActivity:(Z,J)=>F0("GET",`/api/database/activity?db=${O0(Z)}${J!=null?`&limit=${J}`:""}`),recordAt:(Z,J)=>F0("GET",`/api/record/at?id=${O0(Z)}&version=${O0(J)}`),revertRecord:(Z,J)=>F0("POST",`/api/record/revert?id=${O0(Z)}`,{to:J}),nodes:()=>F0("GET","/api/nodes"),search:(Z,J)=>{let Q=new URLSearchParams({q:Z});if(J!=null)Q.set("limit",String(J));return F0("GET",`/api/search?${Q}`)},listPeers:()=>F0("GET","/api/peers"),newPairingCode:()=>F0("POST","/api/pair/new"),addPeerByPairing:(Z)=>F0("POST","/api/peers/pair",Z),updatePeer:(Z,J)=>F0("PATCH",`/api/peer?url=${O0(Z)}`,J),removePeer:(Z)=>F0("DELETE",`/api/peer?url=${O0(Z)}`),syncPeer:(Z)=>F0("POST",`/api/peer/sync?url=${O0(Z)}`),listGrants:()=>F0("GET","/api/grants"),revokeGrant:(Z)=>F0("DELETE",`/api/grant?token=${O0(Z)}`),listSites:()=>F0("GET","/api/sites"),listSiteFiles:(Z)=>F0("GET",`/api/site/files?site=${O0(Z)}`),createSite:(Z)=>F0("POST","/api/sites",Z),updateSite:(Z,J)=>F0("PATCH",`/api/site?id=${O0(Z)}`,J),deleteSite:(Z)=>F0("DELETE",`/api/site?id=${O0(Z)}`),deleteSiteFile:(Z,J)=>F0("DELETE",`/api/site/file?site=${O0(Z)}&path=${O0(J)}`),uploadSiteFile:async(Z,J,Q)=>{let $=await gZ(`/api/site/file?site=${O0(Z)}&path=${O0(J)}`,{method:"POST",headers:{"content-type":Q.type||"application/octet-stream"},body:Q}),X=await $.json().catch(()=>null);if(!$.ok||X&&X.error)throw Error(X&&X.error||`${$.status} ${$.statusText}`);return X},version:()=>F0("GET","/api/version")},u=new Proxy(dJ,{get(Z,J,Q){if(B9()&&J in M1)return M1[J];return Reflect.get(Z,J,Q)}}),h9={text:{ic:"text",t:"文本"},number:{ic:"hash",t:"数字"},select:{ic:"select",t:"单选"},multi_select:{ic:"multi",t:"多选"},checkbox:{ic:"checkbox",t:"复选框"},date:{ic:"calendar",t:"日期"},url:{ic:"link",t:"链接"},relation:{ic:"relation",t:"关联"}};var aJ=0;function z(Z,J,Q,$,X,q){J||(J={});var W,G,K=J;if("ref"in K)for(G in K={},J)G=="ref"?W=J[G]:K[G]=J[G];var H={type:Z,props:K,key:Q,ref:W,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--aJ,__i:-1,__u:0,__source:X,__self:q};if(typeof Z=="function"&&(W=Z.defaultProps))for(G in W)K[G]===void 0&&(K[G]=W[G]);return V0.vnode&&V0.vnode(H),H}var lJ={cube:'<path d="M21 7.5 12 2 3 7.5v9L12 22l9-5.5z"/><path d="m3 7.5 9 5.5 9-5.5M12 22v-9"/>',chevron:'<path d="m9 6 6 6-6 6"/>',chevronDown:'<path d="m6 9 6 6 6-6"/>',arrowLeft:'<path d="M15 18l-6-6 6-6"/>',plus:'<path d="M12 5v14M5 12h14"/>',pin:'<path d="M9 4h6l-1 6 3 3v2H7v-2l3-3z"/><path d="M12 16v5"/>',search:'<circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2"/>',dots:'<circle cx="5" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="19" cy="12" r="1.4" fill="currentColor" stroke="none"/>',grip:'<circle cx="9" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="18" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="18" r="1.3" fill="currentColor" stroke="none"/>',trash:'<path d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M6 7l1 13a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-13M10 11v6M14 11v6"/>',filter:'<path d="M3 5h18l-7 8v6l-4-2v-4z"/>',sort:'<path d="M7 3v14M7 17l-3-3M7 17l3-3M17 21V7M17 7l-3 3M17 7l3 3"/>',group:'<rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/>',check:'<path d="M5 12.5 10 17l9-10"/>',x:'<path d="M6 6 18 18M18 6 6 18"/>',file:'<path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5"/>',database:'<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 1.66 3.58 3 8 3s8-1.34 8-3V5"/><path d="M4 12c0 1.66 3.58 3 8 3s8-1.34 8-3"/>',table:'<rect x="3" y="4" width="18" height="16" rx="1.5"/><path d="M3 10h18M3 15h18M9 4v16M15 4v16"/>',alignLeft:'<path d="M4 6h16M4 12h10M4 18h13"/>',alignCenter:'<path d="M4 6h16M7 12h10M5 18h14"/>',alignRight:'<path d="M4 6h16M10 12h10M7 18h13"/>',share:'<path d="M4 12v7a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-7"/><path d="M12 3v13M8 7l4-4 4 4"/>',download:'<path d="M12 3v12M8 11l4 4 4-4"/><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"/>',copy:'<rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/>',link:'<path d="M10 13a5 5 0 0 0 7 0l2-2a5 5 0 0 0-7-7l-1 1"/><path d="M14 11a5 5 0 0 0-7 0l-2 2a5 5 0 0 0 7 7l1-1"/>',calendar:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>',timeline:'<rect x="3" y="5" width="9" height="3" rx="1.5"/><rect x="8" y="10.5" width="11" height="3" rx="1.5"/><rect x="5" y="16" width="7" height="3" rx="1.5"/>',hash:'<path d="M4 9h16M4 15h16M10 3 8 21M16 3l-2 18"/>',text:'<path d="M4 6h16M4 6v-.5M8 6v13M4 19h8"/><path d="M14 11h6M17 11v8M14 19h6"/>',list:'<path d="M9 6h11M9 12h11M9 18h11M4.5 6h.01M4.5 12h.01M4.5 18h.01"/>',numList:'<path d="M10 6h10M10 12h10M10 18h10M4 5h1v4M4 9h2M4 13.5c0-.8 2-.8 2 0 0 .8-2 1.2-2 2.5h2"/>',checkbox:'<rect x="4" y="4" width="16" height="16" rx="3"/><path d="m9 12 2 2 4-4"/>',select:'<circle cx="12" cy="12" r="8"/><circle cx="12" cy="12" r="3" fill="currentColor" stroke="none"/>',multi:'<path d="M8 6h12M8 12h12M8 18h12M3 6h.01M3 12h.01M3 18h.01"/>',relation:'<path d="M7 7h4v4H7zM13 13h4v4h-4z"/><path d="M11 9h2a2 2 0 0 1 2 2v2"/>',quote:'<path d="M7 7c-2 1-3 3-3 6h3v4H4v-4M17 7c-2 1-3 3-3 6h3v4h-3v-4"/>',code:'<path d="m8 8-4 4 4 4M16 8l4 4-4 4M13 6l-2 12"/>',minus:'<path d="M5 12h14"/>',heading:'<path d="M6 4v16M18 4v16M6 12h12"/>',panelLeft:'<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M9 4v16"/>',cornerUpRight:'<path d="M5 19V11a4 4 0 0 1 4-4h10M15 3l4 4-4 4"/>',openPeek:'<rect x="3" y="5" width="18" height="14" rx="2.5"/><rect x="6" y="8" width="4" height="8" rx="1" fill="currentColor" stroke="none"/>',settings:'<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/>',eyeOff:'<path d="M4 4l16 16M9.5 9.5a3 3 0 0 0 4 4M6.5 6.7C4.5 8 3 10 2 12c2 4 6 7 10 7 1.6 0 3-.4 4.4-1.1M9.5 5.2A9.7 9.7 0 0 1 12 5c4 0 8 3 10 7-.6 1.3-1.5 2.5-2.5 3.5"/>',bold:'<path d="M6 4h7a4 4 0 0 1 0 8H6zM6 12h8a4 4 0 0 1 0 8H6z"/>',italic:'<path d="M19 4h-9M14 20H5M15 4 9 20"/>',underline:'<path d="M6 4v6a6 6 0 0 0 12 0V4M4 21h16"/>',strike:'<path d="M4 12h16M7 7a4 4 0 0 1 7-1M9 17a4 4 0 0 0 7-2"/>',sun:'<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/>',moon:'<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/>',history:'<path d="M3 12a9 9 0 1 0 2.6-6.4L3 8"/><path d="M3 3v5h5"/><path d="M12 7v5l3.5 2"/>',monitor:'<rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8M12 17v4"/>',globe:'<circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.4 2.5 3.7 5.7 3.7 9S14.4 18.5 12 21c-2.4-2.5-3.7-5.7-3.7-9S9.6 5.5 12 3z"/>',eye:'<path d="M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/>',lock:'<rect x="4.5" y="11" width="15" height="9" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/>',upload:'<path d="M12 16V4M8 8l4-4 4 4M5 20h14"/>',externalLink:'<path d="M14 4h6v6M20 4l-9 9M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5"/>'};function f({name:Z,cls:J="ico"}){return z("svg",{class:J,viewBox:"0 0 24 24",dangerouslySetInnerHTML:{__html:lJ[Z]??""}},void 0,!1,void 0,this)}var n0={text:"text",number:"hash",select:"select",multi_select:"multi",checkbox:"checkbox",date:"calendar",url:"link",relation:"relation"};function m9(Z,J){let Q=J.threshold??4,$=Q===0,X=(W)=>{if(W.pointerId!==Z.pointerId)return;if(!$){if(Math.hypot(W.clientX-Z.clientX,W.clientY-Z.clientY)<Q)return;$=!0,J.onStart?.(W)}W.preventDefault(),J.onMove(W)},q=(W)=>{if(W.pointerId!==Z.pointerId)return;removeEventListener("pointermove",X),removeEventListener("pointerup",q),removeEventListener("pointercancel",q),J.onEnd?.(W,$)};addEventListener("pointermove",X,{passive:!1}),addEventListener("pointerup",q),addEventListener("pointercancel",q)}function $9(){document.querySelectorAll(".drop-into,.drop-before,.drop-after").forEach((Z)=>Z.classList.remove("drop-into","drop-before","drop-after"))}function v1(Z,J,Q){$9();let $=Z.getBoundingClientRect(),X=Q==="y"?J.clientY<$.top+$.height/2?"before":"after":J.clientX<$.left+$.width/2?"before":"after";return Z.classList.add("drop-"+X),X}function nJ(Z,J,Q){let $=document.createElement("div");return $.className="drag-ghost "+Z,$.style.width=`${J.width}px`,$.style.height=`${J.height}px`,$.textContent=Q,document.body.appendChild($),$}function k1(Z,J,Q){if(!Z)return;Z.style.transform=`translate3d(${Math.round(J)}px, ${Math.round(Q)}px, 0)`}function R1(Z,J){let Q=J.source.getBoundingClientRect(),$=Z.clientX-Q.left,X=Z.clientY-Q.top,q=null,W=null,G="before";m9(Z,{onStart:()=>{q=nJ(J.ghostCls,Q,J.ghostText),J.source.classList.add("drag-source"),document.body.classList.add("table-dragging"),J.onActivate?.()},onMove:(K)=>{k1(q,K.clientX-$,K.clientY-X);let H=document.elementFromPoint(K.clientX,K.clientY)?.closest?.(J.targetSelector);if(!H||J.isSelf(H)){$9(),W=null;return}W=H,G=v1(H,K,J.axis)},onEnd:(K,H)=>{if(q?.remove(),J.source.classList.remove("drag-source"),document.body.classList.remove("table-dragging"),$9(),H&&W)J.onDrop(W,G);J.onFinish?.(H)}})}function xZ(Z,J){let Q=Z.currentTarget,$=J.startWidth,X=0;Q.classList.add("dragging"),document.body.classList.add("col-resizing");let q=Q.closest("table");if(q)Q.style.setProperty("--rz-guide-h",q.offsetHeight+"px");m9(Z,{threshold:0,onMove:(W)=>{if($=Math.max(J.min,J.startWidth+W.clientX-Z.clientX),!X)X=requestAnimationFrame(()=>{if(X=0,J.col)J.col.style.width=$+"px"})},onEnd:()=>{if(X)cancelAnimationFrame(X);if(J.col)J.col.style.width=$+"px";Q.classList.remove("dragging"),Q.style.removeProperty("--rz-guide-h"),document.body.classList.remove("col-resizing"),J.onDone($)}})}var jZ="(max-width: 768px) and (pointer: coarse)";function T1(Z){let J=Z,Q=new Set;return{get:()=>J,set:($)=>{J=$,Q.forEach((X)=>X($))},use(){let[$,X]=b(J);return r(()=>{return Q.add(X),()=>void Q.delete(X)},[]),$}}}var JZ=T1([]),rJ=0;function Z0(Z){let J=++rJ;JZ.set([...JZ.get(),{id:J,msg:Z}]),setTimeout(()=>JZ.set(JZ.get().filter((Q)=>Q.id!==J)),2600)}var V1=T1(null);function R0(Z,J,Q={}){V1.set({render:J,anchor:Z,minWidth:Q.minWidth})}function P4(){V1.set(null)}function oJ(Z){if(Z instanceof MouseEvent)return{x:Z.clientX,y:Z.clientY};if("rect"in Z)return{x:Z.rect.left,y:Z.rect.bottom,bottom:Z.rect.bottom};return{x:Z.x,y:Z.y}}function tJ(){let Z=V1.use(),J=H0(null),[Q,$]=b(null),X=matchMedia(jZ).matches;if(q4(()=>{if(!Z||!J.current||X)return $(null);let{x:q,y:W}=oJ(Z.anchor),G=J.current.getBoundingClientRect();$({left:Math.min(q,innerWidth-G.width-10),top:Math.min(W+4,innerHeight-G.height-10)})},[Z,X]),!Z)return null;return z("div",{class:"menu-layer",onMouseDown:(q)=>q.target===q.currentTarget&&P4(),children:z("div",{ref:J,class:"pop"+(X?" sheet":""),style:X?void 0:{left:Q?.left??-9999,top:Q?.top??-9999,minWidth:Z.minWidth},onMouseDown:(q)=>q.stopPropagation(),children:Z.render(P4)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function u0({children:Z}){return z("div",{class:"lbl",children:Z},void 0,!1,void 0,this)}function f0(){return z("div",{class:"sep"},void 0,!1,void 0,this)}function t({icon:Z,label:J,sublabel:Q,danger:$,checked:X,onClick:q}){return z("button",{class:"item"+($?" danger":""),onClick:q,children:[Z&&z("span",{class:"lico plain",children:z(f,{name:Z,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"meta",children:[z("span",{class:"t",children:J},void 0,!1,void 0,this),Q&&z("span",{class:"d",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X&&z("span",{class:"chk",children:z(f,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function N9(Z,J=240){let[Q,$]=b(!1);return r(()=>{let q=requestAnimationFrame(()=>$(!0));return()=>cancelAnimationFrame(q)},[]),{open:Q,close:()=>{$(!1),setTimeout(Z,J)}}}var S1=T1(null);function Z9(Z){S1.set(Z)}function i0(){S1.set(null)}function X9({title:Z,sub:J,children:Q,footer:$,width:X}){return z("div",{class:"modal",style:{width:X},onMouseDown:(q)=>q.stopPropagation(),children:[z("div",{class:"modal-head",children:[z("h3",{children:Z},void 0,!1,void 0,this),J&&z("p",{children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"modal-body",children:Q},void 0,!1,void 0,this),$&&z("div",{class:"modal-foot",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function sJ(){let Z=S1.use();return r(()=>{if(!Z)return;let J=(Q)=>Q.key==="Escape"&&i0();return addEventListener("keydown",J),()=>removeEventListener("keydown",J)},[Z]),z("div",{class:"modal-scrim"+(Z?" open":""),onMouseDown:(J)=>J.target===J.currentTarget&&i0(),children:Z},void 0,!1,void 0,this)}function b0(Z){return new Promise((J)=>{let Q=($)=>{i0(),J($)};Z9(z(X9,{title:Z.title,footer:z(n,{children:[z("button",{class:"btn btn-secondary",onClick:()=>Q(!1),children:"取消"},void 0,!1,void 0,this),z("button",{class:"btn "+(Z.danger?"btn-danger":"btn-primary"),onClick:()=>Q(!0),children:Z.confirmLabel??"确定"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:z("div",{class:"muted",children:Z.message},void 0,!1,void 0,this)},void 0,!1,void 0,this))})}function q9(Z){return new Promise((J)=>{let Q=Z.value??"",$=(X)=>{i0(),J(X)};Z9(z(X9,{title:Z.title,footer:z(n,{children:[z("button",{class:"btn btn-secondary",onClick:()=>$(null),children:"取消"},void 0,!1,void 0,this),z("button",{class:"btn btn-primary",onClick:()=>$(Q.trim()||(Z.value??"")),children:Z.confirmLabel??"保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[Z.label&&z("div",{class:"field-label",children:Z.label},void 0,!1,void 0,this),z("input",{class:"text-input",autofocus:!0,value:Z.value??"",placeholder:Z.placeholder,onInput:(X)=>Q=X.target.value,onKeyDown:(X)=>{if(X.key==="Enter")$(Q.trim()||(Z.value??""))}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))})}function DZ(){let Z=JZ.use();return z(n,{children:[z(tJ,{},void 0,!1,void 0,this),z(sJ,{},void 0,!1,void 0,this),z("div",{class:"toasts",children:Z.map((J)=>z("div",{class:"toast",children:[z(f,{name:"check",cls:"ico sm"},void 0,!1,void 0,this),z("span",{children:J.msg},void 0,!1,void 0,this)]},J.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var I1=null,eJ=/mac/i.test(navigator.userAgentData?.platform??navigator.platform);function C4(Z){let{view:J,navigate:Q}=Z,[$,X]=b(new Set),[q,W]=b(""),[G,K]=b(!1),H=H0(null),[F,Y]=b(null),C=Q3(Z.onResize);r(()=>{u.version().then((A)=>Y(A.version)).catch(()=>Y(null))},[]),r(()=>{if(G)H.current?.focus()},[G]);let L=(A)=>{let y=new Set($);y.has(A)?y.delete(A):y.add(A),X(y)},B=(A)=>A().catch((y)=>Z.onError(String(y.message))),M=(A)=>{if("id"in J&&J.id===A)Q({kind:"empty"},{replace:!0})},k=(A)=>B(async()=>{let y=await u.createDocument({title:"",...A?{parent_id:A}:{}});if(A)$.add(A);Q({kind:"doc",id:y.id})}),T=(A,y,x)=>B(async()=>{if(A===y.id)return;if(J3(Z.docs,A,y.id))return;if(await u.moveDocument(A,y.id,x),x==="into")$.add(y.id)}),O=(A,y)=>{A.stopPropagation(),R0(A,(x)=>z(n,{children:[z(t,{icon:"settings",label:"重命名…",onClick:async()=>{x();let v=await q9({title:"重命名数据库",value:y.name});if(v&&v!==y.name)B(async()=>{await u.updateDatabase(y.id,{name:v})})}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除数据库",danger:!0,onClick:async()=>{if(x(),await b0({title:"删除数据库?",message:`「${y.name}」及其所有记录将被永久删除。`,confirmLabel:"删除",danger:!0}))B(async()=>{await u.deleteDatabase(y.id),M(y.id)})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},P=(A,y)=>{A.stopPropagation();let x=Z.docs.filter((v)=>v.parent_id===y.id).length;R0(A,(v)=>z(n,{children:[z(t,{icon:"plus",label:"新建子页",onClick:()=>{v(),k(y.id)}},void 0,!1,void 0,this),z(t,{icon:"settings",label:"重命名…",onClick:async()=>{v();let E=await q9({title:"重命名文档",value:y.title});if(E)B(async()=>{await u.updateDocument(y.id,{title:E})})}},void 0,!1,void 0,this),y.parent_id&&z(t,{icon:"cornerUpRight",label:"移到顶层",onClick:()=>{v(),B(async()=>{await u.updateDocument(y.id,{parent_id:null})})}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除",danger:!0,onClick:async()=>{if(v(),await b0({title:"删除文档?",message:x?`「${y.title||"无标题"}」及其 ${x} 个子页将被删除。`:`「${y.title||"无标题"}」将被删除。`,confirmLabel:"删除",danger:!0}))B(async()=>{await _4(Z.docs,y.id),M(y.id)})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},_=(A,y=0)=>{return Z.docs.filter((v)=>v.parent_id===A).map((v)=>{let E=Z.docs.filter((l)=>l.parent_id===v.id),J0=E.length>0&&$.has(v.id);return z("div",{class:y?"navchildren":"",children:[z("div",{class:"navitem"+(J.kind==="doc"&&J.id===v.id?" active":""),draggable:!0,onClick:()=>Q({kind:"doc",id:v.id}),onDragStart:(l)=>{l.stopPropagation(),I1=v.id,l.currentTarget.classList.add("dragging")},onDragEnd:(l)=>{l.currentTarget.classList.remove("dragging"),f1()},onDragOver:(l)=>{l.preventDefault(),l.stopPropagation(),Z3(l.currentTarget,l)},onDrop:(l)=>{l.preventDefault(),l.stopPropagation();let A0=O4(l.currentTarget,l),o=I1;if(I1=null,f1(),o)T(o,v,A0)},children:[z("span",{class:"tw"+(J0?" open":""),onClick:(l)=>{if(l.stopPropagation(),E.length)L(v.id)},children:E.length>0&&z(f,{name:"chevron",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"emoji",children:z(f,{name:"file",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"label",children:v.title||"无标题"},void 0,!1,void 0,this),z("span",{class:"acts",children:[z("button",{title:"新建子页",onClick:(l)=>{l.stopPropagation(),k(v.id)},children:z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{title:"更多",onClick:(l)=>P(l,v),children:z(f,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),J0&&_(v.id,y+1)]},v.id,!0,void 0,this)})};return z("div",{class:"sidebar"+(Z.collapsed?" collapsed":""),style:{width:Z.width,marginLeft:Z.collapsed?-Z.width:void 0},children:[z("div",{class:"sb-head",children:[z("div",{class:"brand",children:[z("span",{class:"mark",children:z(f,{name:"cube"},void 0,!1,void 0,this)},void 0,!1,void 0,this),"Metahub"]},void 0,!0,void 0,this),z("button",{class:"sb-act"+(G?" active":""),title:"搜索","aria-label":"搜索",onClick:()=>K((A)=>!A),children:z(f,{name:"search",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{class:"sb-act"+(J.kind==="sites"?" active":""),title:"站点","aria-label":"站点",onClick:()=>Q({kind:"sites"}),children:z(f,{name:"globe",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{class:"sb-act"+(J.kind==="settings"?" active":""),title:"设置","aria-label":"设置",onClick:()=>Q({kind:"settings"}),children:[z(f,{name:"settings",cls:"ico"},void 0,!1,void 0,this),Z.updatePending&&z("span",{class:"nav-dot",title:"有可用更新"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"iconbtn",title:"收起侧栏",onClick:Z.onCollapse,children:z(f,{name:"panelLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"sb-search"+(G?" open":""),onClick:(A)=>A.currentTarget.querySelector("input")?.focus(),children:[z(f,{name:"search",cls:"ico sm"},void 0,!1,void 0,this),z("input",{ref:H,placeholder:"搜索…",value:q,onInput:(A)=>W(A.target.value),onKeyDown:(A)=>{if(A.key==="Enter"&&q.trim())Q({kind:"search",q:q.trim()},{replace:J.kind==="search"})}},void 0,!1,void 0,this),z("kbd",{children:eJ?"⌘K":"Ctrl K"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"sb-scroll",children:[z("div",{class:"sb-section",children:[z("div",{class:"sb-section-head",children:[z("span",{children:"数据库"},void 0,!1,void 0,this),z("button",{class:"add",title:"新建数据库",onClick:()=>z3((A)=>Q({kind:"db",id:A}),Z.onError),children:z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z.databases.map((A)=>z("div",{class:"navitem"+(J.kind==="db"&&J.id===A.id?" active":""),onClick:()=>Q({kind:"db",id:A.id}),children:[z("span",{class:"emoji",children:A.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),z("span",{class:"label",children:A.name},void 0,!1,void 0,this),z("span",{class:"acts",children:z("button",{title:"更多",onClick:(y)=>O(y,A),children:z(f,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},A.id,!0,void 0,this)),Z.databases.length===0&&z("div",{class:"navitem muted",children:"暂无"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"sb-section",children:[z("div",{class:"sb-section-head",children:[z("span",{children:"文档"},void 0,!1,void 0,this),z("button",{class:"add",title:"新建文档",onClick:()=>k(null),children:z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_(null),Z.docs.length===0&&z("div",{class:"navitem muted",children:"暂无"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"sb-footer",children:[z("button",{class:"sb-act"+(J.kind==="settings"?" active":""),title:"设置","aria-label":"设置",onClick:()=>Q({kind:"settings"}),children:[z(f,{name:"settings",cls:"ico sm"},void 0,!1,void 0,this),Z.updatePending&&z("span",{class:"nav-dot",title:"有可用更新"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"sb-act"+(J.kind==="sites"?" active":""),title:"站点","aria-label":"站点",onClick:()=>Q({kind:"sites"}),children:z(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),F&&z("span",{class:"sbf-ver",title:`Metahub Core v${F}`,children:["v",F]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"sb-resizer",onMouseDown:C},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var f1=$9;function O4(Z,J){let Q=Z.getBoundingClientRect(),$=J.clientY-Q.top;return $<Q.height*0.28?"before":$>Q.height*0.72?"after":"into"}function Z3(Z,J){f1(),Z.classList.add("drop-"+O4(Z,J))}function J3(Z,J,Q){let $=Z.find((X)=>X.id===Q);while($){if($.parent_id===J)return!0;$=Z.find((X)=>X.id===$.parent_id)}return!1}async function _4(Z,J){for(let Q of Z.filter(($)=>$.parent_id===J))await _4(Z,Q.id);await u.deleteDocument(J)}function Q3(Z){return(J)=>{J.preventDefault();let Q=J.currentTarget;Q.classList.add("dragging"),document.body.classList.add("col-resizing");let $=(q)=>Z(Math.max(210,Math.min(460,q.clientX))),X=()=>{Q.classList.remove("dragging"),document.body.classList.remove("col-resizing"),removeEventListener("mousemove",$),removeEventListener("mouseup",X)};addEventListener("mousemove",$),addEventListener("mouseup",X)}}var w4={blank:[{name:"名称",type:"text"}],tasks:[{name:"名称",type:"text"},{name:"状态",type:"select",config:{options:["待办","进行中","已完成"]}},{name:"优先级",type:"select",config:{options:["高","中","低"]}},{name:"截止",type:"date"}],crm:[{name:"姓名",type:"text"},{name:"公司",type:"text"},{name:"分类",type:"select",config:{options:["客户","合作","潜在"]}},{name:"邮箱",type:"url"}]};function z3(Z,J){Z9(z($3,{onOpenDb:Z,onError:J},void 0,!1,void 0,this))}function $3(Z){let J=["\uD83D\uDDC2️","\uD83C\uDFAF","\uD83E\uDD1D","\uD83D\uDCE6","\uD83D\uDCDA","\uD83D\uDCA1","\uD83E\uDDE9","\uD83D\uDCCA","\uD83D\uDDD3️","✅"],Q=[["blank","空白","仅一个「名称」列"],["tasks","任务","状态·优先级·截止"],["crm","联系人","公司·分类·邮箱"]],[$,X]=b(""),[q,W]=b(J[0]),[G,K]=b("blank"),H=H0(!1),F=async()=>{if(H.current)return;H.current=!0;try{let Y=await u.createDatabase({name:$.trim()||"未命名数据库",icon:q});for(let C of w4[G]??w4.blank)await u.createProperty({db:Y.id,name:C.name,type:C.type,config:C.config});i0(),Z.onOpenDb(Y.id),Z0(`已创建数据库「${Y.name}」`)}catch(Y){Z.onError(String(Y.message))}finally{H.current=!1}};return z(X9,{title:"新建数据库",sub:"创建一个带属性列的结构化数据表。",footer:z(n,{children:[z("button",{class:"btn btn-secondary",onClick:i0,children:"取消"},void 0,!1,void 0,this),z("button",{class:"btn btn-primary",onClick:F,children:"创建"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[z("div",{class:"field-label",children:"名称"},void 0,!1,void 0,this),z("input",{class:"text-input",autofocus:!0,placeholder:"例如:项目、客户、库存…",value:$,onInput:(Y)=>X(Y.target.value),onKeyDown:(Y)=>Y.key==="Enter"&&F()},void 0,!1,void 0,this),z("div",{class:"field-label",children:"图标"},void 0,!1,void 0,this),z("div",{class:"icon-pick",children:J.map((Y)=>z("button",{class:Y===q?"sel":"",onClick:()=>W(Y),children:Y},Y,!1,void 0,this))},void 0,!1,void 0,this),z("div",{class:"field-label",children:"模板"},void 0,!1,void 0,this),z("div",{class:"tmpl",children:Q.map(([Y,C,L])=>z("button",{class:Y===G?"sel":"",onClick:()=>K(Y),children:[z("div",{class:"tt",children:C},void 0,!1,void 0,this),z("div",{class:"td",children:L},void 0,!1,void 0,this)]},Y,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var A4=[4,28,45,130,165,200,220,255,290,330];function b1(Z){let J=0;for(let Q=0;Q<Z.length;Q++)J=J*31+Z.charCodeAt(Q)>>>0;return`hsl(${A4[J%A4.length]} 65% 45%)`}function v9({text:Z}){return z("span",{class:"chip",style:{["--c"]:b1(Z)},children:Z},void 0,!1,void 0,this)}function u9({prop:Z,val:J}){if(J==null||J===""||Array.isArray(J)&&J.length===0)return z("span",{class:"muted",children:" "},void 0,!1,void 0,this);if(Z.type==="select")return z(v9,{text:String(J)},void 0,!1,void 0,this);if(Z.type==="multi_select"||Z.type==="relation")return z(n,{children:J.map((Q)=>z(v9,{text:String(Q)},String(Q),!1,void 0,this))},void 0,!1,void 0,this);if(Z.type==="url")return z("a",{href:String(J),target:"_blank",rel:"noreferrer",onClick:(Q)=>Q.stopPropagation(),children:String(J)},void 0,!1,void 0,this);return z("span",{children:String(J)},void 0,!1,void 0,this)}function M4(Z,J){if(Z==="relation")return J.split(",").map((Q)=>Q.trim()).filter(Boolean);return J}function N4(Z,J){if(J==null)return"";if(Array.isArray(J))return J.join(", ");return String(J)}var X3={user:"",repair:"修复",revert:"回滚"};function x1(Z){let J=Date.now()-new Date(Z).getTime();if(J<60000)return"刚刚";if(J<3600000)return`${Math.floor(J/60000)} 分钟前`;if(J<86400000)return`${Math.floor(J/3600000)} 小时前`;if(J<2592000000)return`${Math.floor(J/86400000)} 天前`;return new Date(Z).toLocaleDateString()}function j1(){let[Z,J]=b([]);return r(()=>{u.nodes().then(J).catch(()=>{})},[]),(Q)=>{let $=Z.find((X)=>X.node_id===Q);if($?.self)return"本设备";return $?.label||Q.slice(0,8)}}function D1({kind:Z}){if(Z==="user")return null;return z("span",{class:"hist-kind "+Z,children:X3[Z]},void 0,!1,void 0,this)}function q3(Z,J){let Q=Array.from({length:Z.length+1},()=>Array(J.length+1).fill(0));for(let W=Z.length-1;W>=0;W--)for(let G=J.length-1;G>=0;G--)Q[W][G]=Z[W]===J[G]?Q[W+1][G+1]+1:Math.max(Q[W+1][G],Q[W][G+1]);let $=[],X=0,q=0;while(X<Z.length&&q<J.length)if(Z[X]===J[q])$.push([X,q]),X++,q++;else if(Q[X+1][q]>=Q[X][q+1])X++;else q++;return $}var W3=(Z)=>Z?Z.split(/\n{2,}/):[],v4=(Z)=>Z?Z.split(`
|
|
8
|
-
`).filter((J)=>J.trim()!==""):[];function G3(Z,J){for(let Q=0;Q<Math.min(Z.length,J.length);Q++){let $=Z[Q].text,X=J[Q].text,q=0;while(q<$.length&&q<X.length&&$[q]===X[q])q++;let W=0;while(W<$.length-q&&W<X.length-q&&$[$.length-1-W]===X[X.length-1-W])W++;if(q+W<Math.max($.length,X.length)*0.3)continue;Z[Q].seg=[$.slice(0,q),$.slice(q,$.length-W),$.slice($.length-W)],J[Q].seg=[X.slice(0,q),X.slice(q,X.length-W),X.slice(X.length-W)]}}function H3(Z,J){let Q=v4(Z),$=v4(J),X=q3(Q,$),q=[],W=0,G=0;for(let[K,H]of[...X,[Q.length,$.length]]){let F=[],Y=[];for(;W<K;W++)F.push({kind:"del",text:Q[W]});for(;G<H;G++)Y.push({kind:"add",text:$[G]});if(G3(F,Y),q.push(...F,...Y),K<Q.length)q.push({kind:"same",text:Q[K]});W=K+1,G=H+1}return q}function K3(Z){let J=[];if(Z.created)J.push("创建");if(Z.deleted)J.push("删除");if(Z.title_changed)J.push("标题");if(Z.blocks_changed)J.push(`${Z.blocks_changed} 块修改`);if(Z.blocks_deleted)J.push(`${Z.blocks_deleted} 块删除`);return J.join("、")||"元数据"}function k4({docId:Z,onClose:J,onReverted:Q}){let{open:$,close:X}=N9(J),[q,W]=b(null),[G,K]=b(null),[H,F]=b(null),[Y,C]=b(null),[L,B]=b(!1),[M,k]=b(!1),[T,O]=b(!1),P=j1(),_=()=>Promise.all([u.documentHistory(Z),u.getDocument(Z)]).then(([v,E])=>{W(v),K(E),F((J0)=>J0??v[0]?.version??null)}).catch((v)=>Z0(String(v.message)));r(()=>{_()},[Z]),r(()=>{if(!H)return C(null);u.documentAt(Z,H).then(C).catch(()=>C(null))},[Z,H]);let A=e9(()=>(q??[]).filter((v)=>L||v.kind!=="repair"),[q,L]),y=H!=null&&q?.[0]?.version===H,x=async()=>{if(!H||!Y)return;if(!await b0({title:"恢复到此版本?",message:`标题和正文将恢复到 ${new Date(Y.version?F3(Y.version):Date.now()).toLocaleString()} 的状态。此操作会作为一次新修订记录,任何版本都仍可从历史找回。`,confirmLabel:"恢复"}))return;O(!0);try{await u.revertDocument(Z,{to:H,if_match:G?.version}),Z0("已恢复"),Q(),X()}catch(E){if(E instanceof L9&&E.code==="stale")Z0("文档刚被其他端修改,已刷新,请重试"),await _();else Z0(String(E.message))}finally{O(!1)}};return z(n,{children:[z("div",{class:"scrim"+($?" open":""),onClick:X},void 0,!1,void 0,this),z("div",{class:"peek hist-peek"+($?" open":""),children:[z("div",{class:"peek-head",children:[z("button",{class:"iconbtn",onClick:X,children:z(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"hist-title",children:[z(f,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"版本历史"]},void 0,!0,void 0,this),z("div",{style:{flex:1}},void 0,!1,void 0,this),z("label",{class:"hist-toggle",children:[z("input",{type:"checkbox",checked:M,onInput:()=>k(!M)},void 0,!1,void 0,this),"对比当前"]},void 0,!0,void 0,this),z("label",{class:"hist-toggle",children:[z("input",{type:"checkbox",checked:L,onInput:()=>B(!L)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"hist-split",children:[z("div",{class:"hist-list",children:[q===null&&z("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),A.map((v)=>z("div",{class:"hist-item"+(H===v.version?" sel":""),onClick:()=>F(v.version),children:[z("div",{class:"row1",children:[z("span",{class:"when",title:new Date(v.at).toLocaleString(),children:x1(v.at)},void 0,!1,void 0,this),z(D1,{kind:v.kind},void 0,!1,void 0,this),q?.[0]?.version===v.version&&z("span",{class:"hist-now",children:"当前"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"row2",children:[z("span",{class:"who",children:P(v.node_id)},void 0,!1,void 0,this),z("span",{class:"what",children:K3(v)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},v.version,!0,void 0,this))]},void 0,!0,void 0,this),z("div",{class:"hist-preview",children:[Y&&z(n,{children:[z("div",{class:"hist-doc-title",children:Y.title||"无标题"},void 0,!1,void 0,this),M&&!y?H3(G?.body??"",Y.body).map((v,E)=>z("div",{class:"hist-line "+v.kind,children:v.seg?z(n,{children:[v.seg[0],z("span",{class:"seg",children:v.seg[1]},void 0,!1,void 0,this),v.seg[2]]},void 0,!0,void 0,this):v.text},E,!1,void 0,this)):W3(Y.body).map((v,E)=>z("div",{class:"hist-block",children:v},E,!1,void 0,this)),!Y.body&&z("div",{class:"muted",children:"(空文档)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!Y&&H&&z("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"hist-foot",children:z("button",{class:"btn btn-primary",disabled:!H||y||T,onClick:x,children:"恢复到此版本"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function F3(Z){return Number(Z.slice(0,15))||Date.now()}function Y3(Z){if(Z.deleted)return"已删除";if(Z.created)return"创建";if(Z.moved&&!Z.diffs.length)return"调整排序";return""}var g1=3;function R4({dbId:Z,onClose:J}){let{open:Q,close:$}=N9(J),[X,q]=b(null),[W,G]=b(new Map),[K,H]=b(!1),[F,Y]=b(new Set),C=j1();r(()=>{Promise.all([u.databaseActivity(Z),u.listProperties(Z)]).then(([B,M])=>{q(B),G(new Map(M.map((k)=>[k.id,k.name])))}).catch((B)=>Z0(String(B.message)))},[Z]);let L=(X??[]).filter((B)=>K||B.kind!=="repair");return z(n,{children:[z("div",{class:"scrim"+(Q?" open":""),onClick:$},void 0,!1,void 0,this),z("div",{class:"peek"+(Q?" open":""),children:[z("div",{class:"peek-head",children:[z("button",{class:"iconbtn",onClick:$,children:z(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"hist-title",children:[z(f,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"最近动态"]},void 0,!0,void 0,this),z("div",{style:{flex:1}},void 0,!1,void 0,this),z("label",{class:"hist-toggle",children:[z("input",{type:"checkbox",checked:K,onInput:()=>H(!K)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"peek-body hist-feed",children:[X===null&&z("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),X!==null&&L.length===0&&z("div",{class:"muted pad",children:"暂无动态。"},void 0,!1,void 0,this),L.map((B)=>{let M=B.record_id+B.version,k=F.has(M),T=k?B.diffs:B.diffs.slice(0,g1),O=Y3(B);return z("div",{class:"hist-item static",children:[z("div",{class:"row1",children:[z("span",{class:"when",title:new Date(B.at).toLocaleString(),children:x1(B.at)},void 0,!1,void 0,this),z(D1,{kind:B.kind},void 0,!1,void 0,this),z("span",{class:"hist-recname",children:B.record_title||B.record_id},void 0,!1,void 0,this),O&&z("span",{class:"hist-status",children:O},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"row2",children:z("span",{class:"who",children:C(B.node_id)},void 0,!1,void 0,this)},void 0,!1,void 0,this),T.length>0&&z("div",{class:"hist-fields",children:[T.map((P)=>z("div",{class:"hist-field",children:[z("span",{class:"fname",children:W.get(P.prop)??"(已删字段)"},void 0,!1,void 0,this),!B.created&&z("span",{class:"old",title:E9(P.before),children:E9(P.before)},void 0,!1,void 0,this),!B.created&&z("span",{class:"arr",children:"→"},void 0,!1,void 0,this),z("span",{class:"new",title:E9(P.after),children:E9(P.after)},void 0,!1,void 0,this)]},P.prop,!0,void 0,this)),B.diffs.length>g1&&!k&&z("button",{class:"hist-more",onClick:()=>Y(new Set(F).add(M)),children:["…还有 ",B.diffs.length-g1," 项"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},M,!0,void 0,this)})]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function U3(Z,J){let Q=[];if(Z.created)Q.push("创建");if(Z.deleted)Q.push("删除");if(Z.fields.length)Q.push(Z.fields.map(($)=>J.get($)??"(已删字段)").join("、"));if(Z.moved&&!Q.length)Q.push("排序");return Q.join(";")||"元数据"}function E9(Z){if(Z===void 0)return"(空)";if(Z===null)return"(空)";if(typeof Z==="string")return Z===""?"(空)":Z;return JSON.stringify(Z)}function T4({rec:Z,props:J,onReverted:Q}){let[$,X]=b(null),[q,W]=b(null),[G,K]=b(!1),H=H0(new Map),[,F]=b(0),Y=j1(),C=e9(()=>new Map(J.map((O)=>[O.id,O.name])),[J]),L=()=>u.recordHistory(Z.id).then(X).catch((O)=>Z0(String(O.message)));r(()=>{L()},[Z.id]);let B=async(O)=>{let P=H.current.get(O);if(P)return P;let _=await u.recordAt(Z.id,O);return H.current.set(O,_),F((A)=>A+1),_},M=(O,P)=>{if(q===O.version)return W(null);if(W(O.version),B(O.version),P)B(P.version)},k=async(O)=>{if(!await b0({title:"恢复到此版本?",message:"记录字段将恢复到该修订时的值。此操作会作为一次新修订记录。",confirmLabel:"恢复"}))return;try{await u.revertRecord(Z.id,O.version),Z0("已恢复"),H.current.clear(),Q(),await L()}catch(_){Z0(String(_.message))}},T=($??[]).filter((O)=>G||O.kind!=="repair");return z("div",{class:"hist-rec",children:[z("div",{class:"hist-rec-head",children:[z("span",{class:"hist-title",children:[z(f,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"修改历史"]},void 0,!0,void 0,this),z("label",{class:"hist-toggle",children:[z("input",{type:"checkbox",checked:G,onInput:()=>K(!G)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$===null&&z("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),$!==null&&T.length===0&&z("div",{class:"muted pad",children:"暂无历史。"},void 0,!1,void 0,this),T.map((O,P)=>{let _=T[P+1],A=H.current.get(O.version),y=_?H.current.get(_.version):void 0,x=O.created&&A?Object.keys(A.data):O.fields;return z("div",{class:"hist-item static",children:[z("div",{class:"row1",onClick:()=>M(O,_),children:[z("span",{class:"when",title:new Date(O.at).toLocaleString(),children:x1(O.at)},void 0,!1,void 0,this),z(D1,{kind:O.kind},void 0,!1,void 0,this),P===0&&z("span",{class:"hist-now",children:"当前"},void 0,!1,void 0,this),z("div",{style:{flex:1}},void 0,!1,void 0,this),z(f,{name:q===O.version?"chevronDown":"chevron",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"row2",onClick:()=>M(O,_),children:[z("span",{class:"who",children:Y(O.node_id)},void 0,!1,void 0,this),z("span",{class:"what",children:U3(O,C)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q===O.version&&z("div",{class:"hist-fields",children:[!A&&z("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this),A&&x.map((v)=>{let E=y?y.data[v]:void 0,J0=A.data[v];return z("div",{class:"hist-field",children:[z("span",{class:"fname",children:C.get(v)??"(已删字段)"},void 0,!1,void 0,this),_&&z("span",{class:"old",children:E9(E)},void 0,!1,void 0,this),_&&z("span",{class:"arr",children:"→"},void 0,!1,void 0,this),z("span",{class:"new",children:E9(J0)},void 0,!1,void 0,this)]},v,!0,void 0,this)}),A&&P!==0&&z("button",{class:"btn btn-secondary hist-restore",onClick:()=>k(O),children:"恢复到此版本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},O.version,!0,void 0,this)})]},void 0,!0,void 0,this)}var k9="\x00__ungrouped__";function V4({props:Z,records:J,onCommitValue:Q,onCreate:$,onOpenRecord:X,onMove:q}){let W=Z.filter((O)=>O.type==="select"||O.type==="multi_select"),[G,K]=b(null),H=Z.find((O)=>O.id===G)??W.find((O)=>O.type==="select")??W[0]??null;if(!H)return z("div",{class:"view-placeholder",children:"看板视图需要一个「单选」或「多选」属性来分组。请在表格视图中添加一个单选列后再切换到看板。"},void 0,!1,void 0,this);let F=Z[0],Y=H.type==="multi_select",C=H.config?.options??[],L=(O)=>{let P=O.cells[H.id];if(Y){let A=(Array.isArray(P)?P:[]).map(String).filter((y)=>C.includes(y));return A.length?A:[k9]}let _=P==null?"":String(P);return _&&C.includes(_)?[_]:[k9]},B=new Map;for(let O of C)B.set(O,[]);B.set(k9,[]);for(let O of J)for(let P of L(O))B.get(P)?.push(O);let M=[...C];if((B.get(k9)?.length??0)>0)M.push(k9);let k=(O,P)=>{if(O.button!==0)return;if(O.target.closest("button,a,input"))return;let _=O.currentTarget.closest(".kcard");if(!_)return;let A=_.getBoundingClientRect();O.preventDefault();let y=O.clientX-A.left,x=O.clientY-A.top,v=null;m9(O,{onStart:()=>{v=_.cloneNode(!0),v.classList.add("dragging-ghost"),v.style.width=`${A.width}px`,document.body.appendChild(v),_.classList.add("drag-source"),document.body.classList.add("table-dragging")},onMove:(E)=>{k1(v,E.clientX-y,E.clientY-x),$9(),document.elementFromPoint(E.clientX,E.clientY)?.closest?.(".board-col")?.classList.add("drop-into")},onEnd:(E,J0)=>{if(v?.remove(),_.classList.remove("drag-source"),document.body.classList.remove("table-dragging"),$9(),!J0){X(P.id);return}let l=document.elementFromPoint(E.clientX,E.clientY)?.closest?.(".board-col");if(!l)return;if(!Y){let B0=l.dataset.colKey,K0=String(P.cells[H.id]??""),I=B0===k9?null:B0;if(String(I??"")!==K0)Q(P,H,I)}let A0=document.elementFromPoint(E.clientX,E.clientY)?.closest?.(".kcard"),o=A0?.dataset.recId;if(o&&o!==P.id){let B0=A0.getBoundingClientRect();q(P.id,o,E.clientY<B0.top+B0.height/2?"before":"after")}}})};return z("div",{class:"board-wrap",children:[z("div",{class:"board-bar",children:[z("button",{class:"tbtn",onClick:(O)=>R0(O,(P)=>z(n,{children:[z(u0,{children:"按属性分组"},void 0,!1,void 0,this),W.map((_)=>z(t,{icon:n0[_.type],label:_.name,onClick:()=>{K(_.id),P()}},_.id,!1,void 0,this))]},void 0,!0,void 0,this)),children:[z(f,{name:"group",cls:"ico sm"},void 0,!1,void 0,this),"分组:",H.name]},void 0,!0,void 0,this),Y&&z("span",{class:"muted",style:{fontSize:12},children:"多选分组不支持拖拽改值"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"board",children:M.map((O)=>{let P=B.get(O)??[],_=O===k9;return z("div",{class:"board-col","data-col-key":O,children:[z("div",{class:"board-col-head",children:[_?z("span",{class:"muted",style:{fontWeight:600},children:"未分组"},void 0,!1,void 0,this):z(v9,{text:O},void 0,!1,void 0,this),z("span",{class:"board-count",children:P.length},void 0,!1,void 0,this),z("div",{class:"spacer"},void 0,!1,void 0,this),z("button",{class:"iconbtn sm",title:"新建记录",onClick:()=>$(_?{}:{[H.id]:O}),children:z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"board-col-body",children:[P.map((A)=>z("div",{class:"kcard","data-rec-id":A.id,onPointerDown:(y)=>k(y,A),children:[z("div",{class:"kcard-title",children:B3(A,F)||z("span",{class:"muted",children:"无标题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Z.filter((y)=>y!==F&&y.id!==H.id&&!L3(A.cells[y.id])).slice(0,4).map((y)=>z("div",{class:"kcard-field",children:[z(f,{name:n0[y.type]??"text",cls:"ico sm"},void 0,!1,void 0,this),z(u9,{prop:y,val:A.cells[y.id]},void 0,!1,void 0,this)]},y.id,!0,void 0,this))]},A.id,!0,void 0,this)),z("button",{class:"board-add",onClick:()=>$(_?{}:{[H.id]:O}),children:[z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},O,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function B3(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}function L3(Z){return Z==null||Z===""||Array.isArray(Z)&&Z.length===0}function QZ(Z){if(Z==null)return null;let J=String(Z).trim();if(!J)return null;let Q=/^(\d{4})-(\d{2})-(\d{2})/.exec(J);if(Q)return new Date(Number(Q[1]),Number(Q[2])-1,Number(Q[3]));let $=new Date(J);return Number.isNaN($.getTime())?null:new Date($.getFullYear(),$.getMonth(),$.getDate())}function J9(Z){let J=Z.getFullYear(),Q=String(Z.getMonth()+1).padStart(2,"0"),$=String(Z.getDate()).padStart(2,"0");return`${J}-${Q}-${$}`}function p0(Z,J){return new Date(Z.getFullYear(),Z.getMonth(),Z.getDate()+J)}function h1(Z,J){return Z.getFullYear()===J.getFullYear()&&Z.getMonth()===J.getMonth()&&Z.getDate()===J.getDate()}function y3(Z,J){return new Date(Z,J,1)}function P3(Z,J){return new Date(Z,J+1,0)}function p9(Z,J){let Q=Date.UTC(Z.getFullYear(),Z.getMonth(),Z.getDate()),$=Date.UTC(J.getFullYear(),J.getMonth(),J.getDate());return Math.round(($-Q)/86400000)}function hZ(){let Z=new Date;return new Date(Z.getFullYear(),Z.getMonth(),Z.getDate())}function w3(Z){let J=(Z.getDay()+6)%7;return p0(Z,-J)}function S4(Z,J){let Q=w3(y3(Z,J)),$=P3(Z,J),X=[],q=Q;while(q<=$||X.length===0||q.getDay()!==1){let W=[];for(let G=0;G<7;G++)W.push(p0(q,G));if(X.push(W),q=p0(q,7),X.length>=6)break}return X}var C3=["一","二","三","四","五","六","日"],m1=3;function I4({props:Z,records:J,onCommitValue:Q,onCreate:$,onOpenRecord:X}){let q=Z.filter((y)=>y.type==="date"),[W,G]=b(null),K=Z.find((y)=>y.id===W)??q[0]??null,H=hZ(),[F,Y]=b({y:H.getFullYear(),m:H.getMonth()}),C=H0(null);if(!K)return z("div",{class:"view-placeholder",children:"日历视图需要一个「日期」属性。请在表格视图中添加一个日期列后再切换到日历。"},void 0,!1,void 0,this);let L=Z[0],B=S4(F.y,F.m),M=J.map((y)=>({rec:y,date:QZ(y.cells[K.id])})).filter((y)=>y.date!=null),k=(y)=>M.filter((x)=>h1(x.date,y)),T=(y)=>{let x=F.m+y;Y({y:F.y+Math.floor(x/12),m:(x%12+12)%12})},O=()=>Y({y:H.getFullYear(),m:H.getMonth()}),P=()=>document.querySelectorAll(".cal-day.drop-into").forEach((y)=>y.classList.remove("drop-into")),_=(y,x)=>{if(y.button!==0)return;y.preventDefault(),y.stopPropagation(),C.current={id:x.id,pointerId:y.pointerId,startX:y.clientX,startY:y.clientY,active:!1,ghost:null};let v=(J0)=>{let l=C.current;if(!l||l.pointerId!==J0.pointerId)return;if(!l.active){if(Math.hypot(J0.clientX-l.startX,J0.clientY-l.startY)<4)return;l.active=!0,l.ghost=O3(mZ(x,L)),document.body.classList.add("table-dragging")}if(J0.preventDefault(),l.ghost)l.ghost.style.transform=`translate3d(${Math.round(J0.clientX+8)}px, ${Math.round(J0.clientY+8)}px, 0)`;P(),document.elementFromPoint(J0.clientX,J0.clientY)?.closest?.(".cal-day")?.classList.add("drop-into")},E=(J0)=>{let l=C.current;if(!l||l.pointerId!==J0.pointerId)return;if(removeEventListener("pointermove",v),removeEventListener("pointerup",E),removeEventListener("pointercancel",E),l.ghost?.remove(),document.body.classList.remove("table-dragging"),P(),C.current=null,!l.active){X(x.id);return}let o=document.elementFromPoint(J0.clientX,J0.clientY)?.closest?.(".cal-day")?.dataset.iso;if(o&&o!==String(x.cells[K.id]??""))Q(x,K,o)};addEventListener("pointermove",v,{passive:!1}),addEventListener("pointerup",E),addEventListener("pointercancel",E)},A=(y)=>R0(y,(x)=>z(n,{children:[z(u0,{children:"按日期属性"},void 0,!1,void 0,this),q.map((v)=>z(t,{icon:n0[v.type],label:v.name,onClick:()=>{G(v.id),x()}},v.id,!1,void 0,this))]},void 0,!0,void 0,this));return z("div",{class:"cal",children:[z("div",{class:"cal-nav",children:[z("button",{class:"iconbtn",title:"上个月",onClick:()=>T(-1),children:z(f,{name:"chevron",cls:"ico flip"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("div",{class:"cal-title",children:[F.y," 年 ",F.m+1," 月"]},void 0,!0,void 0,this),z("button",{class:"iconbtn",title:"下个月",onClick:()=>T(1),children:z(f,{name:"chevron",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{class:"tbtn",onClick:O,children:"今天"},void 0,!1,void 0,this),z("div",{class:"spacer"},void 0,!1,void 0,this),q.length>1&&z("button",{class:"tbtn",onClick:A,children:[z(f,{name:"calendar",cls:"ico sm"},void 0,!1,void 0,this),K.name]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"cal-grid cal-head",children:C3.map((y)=>z("div",{class:"cal-wd",children:y},y,!1,void 0,this))},void 0,!1,void 0,this),z("div",{class:"cal-body",children:B.map((y,x)=>z("div",{class:"cal-grid cal-week",children:y.map((v)=>{let E=v.getMonth()!==F.m,J0=h1(v,H),l=k(v),A0=J9(v);return z("div",{class:"cal-day"+(E?" dim":"")+(J0?" today":""),"data-iso":A0,onClick:(o)=>{if(o.target.closest(".cal-ev,.cal-add,.cal-more"))return;$({[K.id]:A0})},children:[z("div",{class:"cal-daynum",children:[z("span",{children:v.getDate()},void 0,!1,void 0,this),z("button",{class:"cal-add",title:"新建记录",onClick:(o)=>{o.stopPropagation(),$({[K.id]:A0})},children:z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"cal-events",children:[l.slice(0,m1).map(({rec:o})=>z("div",{class:"cal-ev",style:{["--c"]:b1(mZ(o,L)||o.id)},onPointerDown:(B0)=>_(B0,o),children:mZ(o,L)||"无标题"},o.id,!1,void 0,this)),l.length>m1&&z("button",{class:"cal-more",onClick:(o)=>{o.stopPropagation(),R0(o,(B0)=>z(n,{children:[z(u0,{children:[A0," · ",l.length," 条记录"]},void 0,!0,void 0,this),l.map(({rec:K0})=>z(t,{label:mZ(K0,L)||"无标题",onClick:()=>{B0(),X(K0.id)}},K0.id,!1,void 0,this))]},void 0,!0,void 0,this))},children:["+",l.length-m1," 更多"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},A0,!0,void 0,this)})},x,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function mZ(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}function O3(Z){let J=document.createElement("div");return J.className="drag-ghost",J.textContent=Z||"移动记录",document.body.appendChild(J),J}var y9=200,zZ=36,$Z=44,d0=28,f4=3;function g4({props:Z,records:J,onCommitValue:Q,onOpenRecord:$}){let X=Z.filter((V)=>V.type==="date"),[q,W]=b(null),[G,K]=b(null),H=Z.find((V)=>V.id===q)??X[0]??null,F=G==="none"?null:Z.find((V)=>V.id===G)??X.find((V)=>V!==H)??null,Y=H0(null),C=H0(null);if(!H)return z("div",{class:"view-placeholder",children:"时间轴视图需要一个「日期」属性作为开始日期。请在表格视图中添加一个日期列后再切换到时间轴。"},void 0,!1,void 0,this);let L=Z[0],B=hZ(),M=J.map((V)=>{let g=QZ(V.cells[H.id]),j=F?QZ(V.cells[F.id]):null;return{rec:V,s:g,e:j&&g&&j<g?g:j}}),k=M.filter((V)=>V.s),T=B,O=B;if(k.length){T=k[0].s,O=k[0].s;for(let V of k){if(V.s<T)T=V.s;let g=V.e??V.s;if(g>O)O=g}}else T=p0(B,-10),O=p0(B,14);let P=p0(T,-f4),_=p0(O,f4),A=p9(P,_)+1,y=y9+A*d0,x=(V)=>y9+V*d0,v=p9(P,B),E=[];for(let V=0;V<A;V++)E.push(p0(P,V));let J0=(V,g,j,e,X0)=>{if(X0===0)return;if(e==="move"){if(g)Q(V,H,J9(p0(g,X0)));if(F&&j)Q(V,F,J9(p0(j,X0)))}else if(e==="l"&&g){let W0=p0(g,X0);Q(V,H,J9(j&&W0>j?j:W0))}else if(e==="r"&&F&&j){let W0=p0(j,X0);Q(V,F,J9(g&&W0<g?g:W0))}},l=(V,g)=>{let j=C.current;if(!j)return;j.style.left=V+"px",j.style.display="block";let e=j.firstElementChild;if(e)e.textContent=g},A0=()=>{if(C.current)C.current.style.display="none"},o=(V,g,j,e,X0,W0)=>{if(V.button!==0||!j)return;V.preventDefault(),V.stopPropagation();let{offsetLeft:P0,offsetWidth:k0}=W0,p=!1,s=X0==="move"?null:V.currentTarget;s?.classList.add("dragging"),Y.current={pointerId:V.pointerId,startX:V.clientX};let Y0=(h0)=>{let z0=Y.current;if(!z0||z0.pointerId!==h0.pointerId)return;let N=Math.round((h0.clientX-z0.startX)/d0);if(Math.abs(h0.clientX-z0.startX)>3)p=!0;let S,c;if(X0==="move"){let h=P0+N*d0;W0.style.left=h+"px",S=h,c=p0(j,N)}else if(X0==="l"){let h=P0+N*d0;W0.style.left=h+"px",W0.style.width=Math.max(d0,k0-N*d0)+"px",S=h,c=p0(j,N)}else{let h=Math.max(d0,k0+N*d0);W0.style.width=h+"px",S=P0+h,c=p0(j,Math.round(h/d0)-1)}l(S,J9(c))},U0=(h0)=>{let z0=Y.current;if(!z0||z0.pointerId!==h0.pointerId)return;removeEventListener("pointermove",Y0),removeEventListener("pointerup",U0),removeEventListener("pointercancel",U0),Y.current=null,s?.classList.remove("dragging"),A0();let N=Math.round((h0.clientX-z0.startX)/d0);if(!p){$(g.id);return}J0(g,j,e,X0,N)};addEventListener("pointermove",Y0,{passive:!1}),addEventListener("pointerup",U0),addEventListener("pointercancel",U0)},B0=(V,g)=>{if(Q(V,H,J9(g)),F)Q(V,F,J9(g))},K0=(V,g)=>{let j=V.currentTarget.closest(".tl-row");if(!j)return;let e=V.clientX-j.getBoundingClientRect().left;if(e<y9)return;let X0=Math.max(0,Math.min(A-1,Math.round((e-y9)/d0)));B0(g,p0(P,X0))};return z("div",{class:"tl",children:[z("div",{class:"tl-toolbar",children:z("button",{class:"tbtn",onClick:(V)=>R0(V,(g)=>z(n,{children:[z(u0,{children:"开始日期"},void 0,!1,void 0,this),X.map((j)=>z(t,{icon:n0[j.type],label:j.name,checked:j===H,onClick:()=>{W(j.id),g()}},j.id,!1,void 0,this)),z(f0,{},void 0,!1,void 0,this),z(u0,{children:"结束日期(可选)"},void 0,!1,void 0,this),z(t,{icon:"x",label:"无(里程碑)",checked:!F,onClick:()=>{K("none"),g()}},void 0,!1,void 0,this),X.map((j)=>z(t,{icon:n0[j.type],label:j.name,checked:j===F,onClick:()=>{K(j.id),g()}},j.id,!1,void 0,this))]},void 0,!0,void 0,this)),children:[z(f,{name:"timeline",cls:"ico sm"},void 0,!1,void 0,this),H.name,F?` → ${F.name}`:"(里程碑)"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),z("div",{class:"tl-scroll",children:z("div",{class:"tl-canvas",style:{width:y,height:$Z+M.length*zZ+8},children:[z("div",{class:"tl-axis",style:{height:$Z},children:[z("div",{class:"tl-corner",style:{width:y9},children:"记录"},void 0,!1,void 0,this),E.map((V,g)=>{let j=V.getDate()===1;return z("div",{class:"tl-tick"+(j?" mstart":"")+(p9(V,B)===0?" today":""),style:{left:x(g),width:d0},children:[j&&z("span",{class:"tl-month",children:[V.getMonth()+1,"月"]},void 0,!0,void 0,this),z("span",{class:"tl-dnum",children:V.getDate()},void 0,!1,void 0,this)]},g,!0,void 0,this)})]},void 0,!0,void 0,this),M.map(({rec:V,s:g,e:j},e)=>{let X0=g?p9(P,g):0,W0=g&&j?p9(g,j)+1:1;return z("div",{class:"tl-row",style:{top:$Z+e*zZ,height:zZ},children:[z("div",{class:"tl-rowlabel",style:{width:y9},children:b4(V,L)||z("span",{class:"muted",children:"无标题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!g?z("div",{class:"tl-track-empty",style:{left:y9},onClick:(P0)=>K0(P0,V),title:"点击空白处排期",children:z("button",{class:"tl-schedule",style:{left:y9+8},onClick:(P0)=>{P0.stopPropagation(),B0(V,B)},children:"未排期 · 排到今天"},void 0,!1,void 0,this)},void 0,!1,void 0,this):j?z("div",{class:"tl-item",style:{left:x(X0),width:W0*d0},onPointerDown:(P0)=>o(P0,V,g,j,"move",P0.currentTarget),children:[z("span",{class:"tl-h l",onPointerDown:(P0)=>o(P0,V,g,j,"l",P0.currentTarget.parentElement)},void 0,!1,void 0,this),z("span",{class:"tl-label",children:b4(V,L)},void 0,!1,void 0,this),z("span",{class:"tl-h r",onPointerDown:(P0)=>o(P0,V,g,j,"r",P0.currentTarget.parentElement)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):z("div",{class:"tl-milestone",style:{left:x(X0)},title:J9(g),onPointerDown:(P0)=>o(P0,V,g,null,"move",P0.currentTarget)},void 0,!1,void 0,this)]},V.id,!0,void 0,this)}),v>=0&&v<A&&z("div",{class:"tl-today",style:{left:x(v)+d0/2,height:$Z+M.length*zZ}},void 0,!1,void 0,this),z("div",{class:"tl-guide",ref:C,style:{display:"none",height:$Z+M.length*zZ},children:z("span",{class:"tl-guide-label"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function b4(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}var _3=[["表格","list"],["看板","group"],["日历","calendar"],["时间轴","timeline"]];function u1(Z){return{r0:Math.min(Z.a.r,Z.b.r),r1:Math.max(Z.a.r,Z.b.r),c0:Math.min(Z.a.c,Z.b.c),c1:Math.max(Z.a.c,Z.b.c)}}function j4({db:Z,onError:J}){let[Q,$]=b([]),[X,q]=b([]),[W,G]=b(0),[K,H]=b(new Set),[F,Y]=b(null),[C,L]=b(null),B=H0(C);B.current=C;let[M,k]=b(null),[T,O]=b(null),P=(N)=>N.config?.width??180,_=H0(!1),A=(N)=>N().catch((S)=>J(String(S.message))),y=async()=>{let[N,S]=await Promise.all([u.listProperties(Z.id),u.listRecords(Z.id)]);$(N),q(S)};r(()=>{H(new Set),k(null),G(0),O(null),L(null),y().catch((N)=>J(String(N.message)))},[Z.id]),r(()=>{let N=(S)=>{if(!S.detail?.datasets?.some((h)=>h==="records"||h==="properties"))return;if(B.current)return;y().catch(()=>{})};return document.addEventListener(M9,N),()=>document.removeEventListener(M9,N)},[Z.id]);let x=(N,S,c)=>{L(null),q((h)=>h.map((q0)=>q0.id===N.id?{...q0,cells:{...q0.cells,[S.id]:c},values:{...q0.values,[S.name]:c}}:q0)),u.updateRecord(N.id,{[S.id]:c}).then((h)=>q((q0)=>q0.map((D)=>D.id===h.id?h:D))).catch((h)=>{J(String(h.message)),y().catch((q0)=>J(String(q0.message)))})},v=(N)=>A(async()=>{let S=await u.createRecord(Z.id,N);q((c)=>[...c,S])}),E=()=>v({}),J0=(N)=>A(async()=>{if(await Promise.all(N.map((S)=>u.deleteRecord(S))),q((S)=>S.filter((c)=>!N.includes(c.id))),H(new Set),M&&N.includes(M))k(null)}),l=(N)=>A(async()=>{let S=await u.createRecord(Z.id,N.cells);q((c)=>{let h=c.findIndex((q0)=>q0.id===N.id);return[...c.slice(0,h+1),S,...c.slice(h+1)]})}),A0=(N,S,c)=>{if(N===S||F)return;q((h)=>x4(h,N,S,c))},o=(N,S,c)=>{if(N===S||F)return;A0(N,S,c),u.moveRecord(N,S,c).catch((h)=>{J(String(h.message)),y().catch((q0)=>J(String(q0.message)))})},B0=(N,S,c)=>{if(N===S)return;$((h)=>{let q0=x4(h,N,S,c).map((d,S0)=>({...d,position:S0+1})),D=new Map(h.map((d)=>[d.id,d.position])),L0=q0.filter((d)=>D.get(d.id)!==d.position);if(L0.length)Promise.all(L0.map((d)=>u.updateProperty(d.id,{position:d.position}))).catch((d)=>{J(String(d.message)),y().catch((S0)=>J(String(S0.message)))});return q0})},K0=(N,S)=>{if(F||N.button!==0)return;let c=N.currentTarget.closest("tr");if(!c)return;N.preventDefault(),R1(N,{source:c,axis:"y",ghostCls:"row-ghost",ghostText:M3(c),targetSelector:"tr[data-row-id]",isSelf:(h)=>h.dataset.rowId===S.id,onDrop:(h,q0)=>o(S.id,h.dataset.rowId,q0)})},I=(N,S)=>{if(N.button!==0)return;let c=N.currentTarget.closest("th");if(!c)return;R1(N,{source:c,axis:"x",ghostCls:"col-ghost",ghostText:c.textContent?.trim()||"移动属性",targetSelector:"th[data-col-id]",isSelf:(h)=>h.dataset.colId===S.id,onActivate:()=>{_.current=!0},onDrop:(h,q0)=>B0(S.id,h.dataset.colId,q0),onFinish:(h)=>{if(h)setTimeout(()=>{_.current=!1},0)}})},V=(N,S,c)=>{if(N.button!==0)return;if(N.target.closest("input,button,a"))return;let h=N.shiftKey&&T?T.a:{r:S,c};O({a:h,b:{r:S,c}}),m9(N,{onStart:()=>document.body.classList.add("cell-selecting"),onMove:(q0)=>{let D=document.elementFromPoint(q0.clientX,q0.clientY)?.closest?.("td.cell-td");if(!D||D.dataset.r==null)return;O({a:h,b:{r:Number(D.dataset.r),c:Number(D.dataset.c)}})},onEnd:()=>document.body.classList.remove("cell-selecting")})},g=(N)=>N!=="checkbox"&&N!=="select"&&N!=="multi_select",j=(N,S,c)=>Math.max(S,Math.min(c,N)),e=(N,S)=>requestAnimationFrame(()=>{document.querySelector(`td.cell-td[data-r="${N}"][data-c="${S}"]`)?.scrollIntoView({block:"nearest",inline:"nearest"})}),X0=(N,S)=>{O({a:{r:N,c:S},b:{r:N,c:S}}),e(N,S)},W0=(N,S,c)=>{let h=U0[N],q0=Q[S];if(!h||!q0)return;if(X0(N,S),g(q0.type))L({rec:h.id,prop:q0.id,seed:c})},P0=(N,S,c)=>{let h=S+c;if(h<0||h>=Q.length){X0(N,S);return}W0(N,h)},k0=(N)=>A(async()=>{if(!T)return;let{r0:S,r1:c,c0:h,c1:q0}=u1(T),D=Q.slice(h,q0+1),L0=U0.slice(S,c+1),d=await Promise.all(L0.map((S0)=>{let T0={};for(let C0 of D)T0[C0.id]=N(C0);return u.updateRecord(S0.id,T0)}));q((S0)=>S0.map((T0)=>d.find((C0)=>C0.id===T0.id)??T0))}),p=async()=>{if(!T)return;let{r0:N,r1:S,c0:c,c1:h}=u1(T),q0=Q.slice(c,h+1),D=U0.slice(N,S+1).map((L0)=>q0.map((d)=>N4(d,L0.cells[d.id])).join("\t")).join(`
|
|
9
|
-
`);try{await navigator.clipboard.writeText(D)}catch{}},s=F?Q.find((N)=>N.id===F.id):void 0,Y0=(N)=>{let S=N==null||N===""?NaN:Number(N);return Number.isFinite(S)?S:Number.NEGATIVE_INFINITY},U0=F?[...X].sort((N,S)=>{let c=N.cells[F.id],h=S.cells[F.id],q0=s?.type==="number"?Y0(c)-Y0(h):String(c??"").localeCompare(String(h??""),"zh");return(F.desc?-1:1)*q0}):X,h0=X.find((N)=>N.id===M)??null,z0=T?u1(T):null;return r(()=>{let N=(S)=>{if(!T||C)return;let c=document.activeElement,h=(c?.tagName||"").toLowerCase();if(h==="input"||h==="textarea"||c?.isContentEditable)return;let q0=T.a.r===T.b.r&&T.a.c===T.b.c,{r:D,c:L0}=T.b,d={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]};if(S.key in d){S.preventDefault();let[S0,T0]=d[S.key],C0={r:j(D+S0,0,U0.length-1),c:j(L0+T0,0,Q.length-1)};O(S.shiftKey?{a:T.a,b:C0}:{a:C0,b:C0}),e(C0.r,C0.c)}else if((S.metaKey||S.ctrlKey)&&S.key.toLowerCase()==="c")S.preventDefault(),p();else if(S.key==="Escape")O(null);else if(S.key==="Delete"||S.key==="Backspace")S.preventDefault(),k0(()=>null);else if(q0&&(S.key==="Enter"||S.key==="F2"))S.preventDefault(),W0(D,L0);else if(q0&&S.key.length===1&&!S.metaKey&&!S.ctrlKey&&!S.altKey&&!S.isComposing&&S.keyCode!==229){let S0=Q[L0];if(!S0||!g(S0.type)||S0.type==="date")return;if(S0.type==="number"&&!/[0-9.+-]/.test(S.key))return;S.preventDefault(),W0(D,L0,S.key)}};return addEventListener("keydown",N),()=>removeEventListener("keydown",N)},[T,C,X,Q,F]),z("div",{class:"db",onPointerDown:(N)=>{if(!N.target.closest("td.cell-td, .cellselbar"))O(null)},children:[z("div",{class:"db-head",children:[z("div",{class:"db-icon",children:Z.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),z("div",{children:z("div",{class:"db-title",contentEditable:!0,onBlur:(N)=>{let S=N.target.textContent?.trim()||Z.name;if(S!==Z.name)A(async()=>{await u.updateDatabase(Z.id,{name:S})})},children:Z.name},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"views",children:[_3.map(([N,S],c)=>z("div",{class:"view-tab"+(c===W?" active":""),onClick:()=>G(c),children:[z(f,{name:S},void 0,!1,void 0,this),N]},N,!0,void 0,this)),z("div",{class:"spacer",style:{flex:1}},void 0,!1,void 0,this),z("button",{class:"btn btn-primary",onClick:E,children:[z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W===0&&z("div",{class:"toolbar",children:z("button",{class:"tbtn",onClick:(N)=>V3(N,Q,F,Y),children:[z(f,{name:"sort",cls:"ico sm"},void 0,!1,void 0,this),"排序"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),W===1?z(V4,{props:Q,records:X,onCommitValue:x,onCreate:v,onOpenRecord:k,onMove:o},void 0,!1,void 0,this):W===2?z(I4,{props:Q,records:X,onCommitValue:x,onCreate:v,onOpenRecord:k},void 0,!1,void 0,this):W===3?z(g4,{props:Q,records:X,onCommitValue:x,onCreate:v,onOpenRecord:k},void 0,!1,void 0,this):z("div",{class:"tablewrap",children:[z("div",{class:"tablescroll",children:z("table",{class:"grid",children:[z("colgroup",{children:[z("col",{style:{width:38}},void 0,!1,void 0,this),z("col",{style:{width:26}},void 0,!1,void 0,this),Q.map((N)=>z("col",{"data-col-id":N.id,style:{width:P(N)}},N.id,!1,void 0,this)),z("col",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("thead",{children:z("tr",{children:[z("th",{class:"selcell",children:z("input",{type:"checkbox",checked:K.size>0&&K.size===X.length,onChange:(N)=>H(N.target.checked?new Set(X.map((S)=>S.id)):new Set)},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("th",{class:"gripcol"},void 0,!1,void 0,this),Q.map((N)=>z("th",{"data-col-id":N.id,children:[z("div",{class:"colhead",onPointerDown:(S)=>I(S,N),onClick:(S)=>{if(_.current){_.current=!1,S.preventDefault(),S.stopPropagation();return}k3(S,N,Z.id,y,Q)},children:[z("span",{class:"ti",children:z(f,{name:n0[N.type]??"text",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"nm",children:N.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z(N3,{colId:N.id,startWidth:P(N),onCommit:(S)=>{$((c)=>c.map((h)=>h.id===N.id?{...h,config:{...h.config??{},width:S}}:h)),u.setColumnWidth(N.id,S).catch((c)=>{J(String(c.message)),y().catch(()=>{})})}},void 0,!1,void 0,this)]},N.id,!0,void 0,this)),z("th",{class:"addcol",children:z("div",{class:"colhead",title:"新建属性",onClick:(N)=>T3(N,Z.id,Q,y),children:z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),z("tbody",{children:U0.map((N,S)=>z("tr",{"data-row-id":N.id,class:K.has(N.id)?"sel":"",children:[z("td",{class:"selcell",children:z("input",{type:"checkbox",checked:K.has(N.id),onChange:()=>H((c)=>{let h=new Set(c);return h.has(N.id)?h.delete(N.id):h.add(N.id),h})},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("td",{class:"rowgrip",title:F?"清除排序后可拖拽移动":"拖拽移动","aria-disabled":F?"true":void 0,onPointerDown:(c)=>K0(c,N),children:z(f,{name:"grip",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q.map((c,h)=>{let q0=z0!=null&&S>=z0.r0&&S<=z0.r1&&h>=z0.c0&&h<=z0.c1,D;if(q0&&z0){let L0=[];if(S===z0.r0)L0.push("inset 0 2px 0 0 var(--accent)");if(S===z0.r1)L0.push("inset 0 -2px 0 0 var(--accent)");if(h===z0.c0)L0.push("inset 2px 0 0 0 var(--accent)");if(h===z0.c1)L0.push("inset -2px 0 0 0 var(--accent)");D=L0.join(",")||void 0}return z("td",{class:"cell-td"+(q0?" cellsel":""),"data-r":S,"data-c":h,style:D?{boxShadow:D}:void 0,onPointerDown:(L0)=>V(L0,S,h),children:z(A3,{rec:N,prop:c,first:h===0,editing:C?.rec===N.id&&C?.prop===c.id,seed:C?.rec===N.id&&C?.prop===c.id?C.seed:void 0,onEdit:()=>{X0(S,h),L({rec:N.id,prop:c.id})},onCommit:(L0)=>x(N,c,L0),onDone:(L0)=>{if(L(null),L0.reason!=="cancel"&&L0.changed)x(N,c,L0.value);if(L0.reason==="tab")P0(S,h,1);else if(L0.reason==="shifttab")P0(S,h,-1);else if(L0.reason==="enter")X0(j(S+1,0,U0.length-1),h)},onOpen:()=>k(N.id),onRowMenu:(L0)=>S3(L0,N,()=>k(N.id),()=>l(N),()=>J0([N.id]))},void 0,!1,void 0,this)},c.id,!1,void 0,this)}),z("td",{class:"filler"},void 0,!1,void 0,this)]},N.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),z("div",{class:"addrow",onClick:E,children:[z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建记录"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"gridfoot",children:[z("span",{children:["共 ",X.length," 条记录"]},void 0,!0,void 0,this),z("span",{children:[Q.length," 个属性"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K.size>0&&z("div",{class:"selbar",children:[z("span",{class:"cnt",children:[K.size," 已选"]},void 0,!0,void 0,this),z("button",{onClick:()=>A(async()=>{for(let N of K)await l(X.find((S)=>S.id===N))}),children:[z(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"复制"]},void 0,!0,void 0,this),z("button",{class:"del",onClick:async()=>{if(await b0({title:"删除记录?",message:`确定删除选中的 ${K.size} 条记录?`,confirmLabel:"删除",danger:!0}))J0([...K])},children:[z(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"删除"]},void 0,!0,void 0,this),z("button",{onClick:()=>H(new Set),children:z(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z0&&(z0.r0!==z0.r1||z0.c0!==z0.c1)&&z("div",{class:"selbar cellselbar",children:[z("span",{class:"cnt",children:[(z0.r1-z0.r0+1)*(z0.c1-z0.c0+1)," 个单元格"]},void 0,!0,void 0,this),z("button",{onClick:p,children:[z(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"复制"]},void 0,!0,void 0,this),z("button",{onClick:()=>k0((N)=>U0[z0.r0].cells[N.id]??null),children:[z(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"填充"]},void 0,!0,void 0,this),z("button",{class:"del",onClick:()=>k0(()=>null),children:[z(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"清空"]},void 0,!0,void 0,this),z("button",{onClick:()=>O(null),children:z(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h0&&z(I3,{db:Z,props:Q,rec:h0,onClose:()=>k(null),onCommit:(N,S)=>x(h0,N,S),onDelete:()=>J0([h0.id]),onDuplicate:()=>l(h0),onReverted:()=>y().catch((N)=>J(String(N.message)))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function D4({prop:Z,val:J,seed:Q,captureTab:$,onDone:X}){let q=Array.isArray(J)?J.join(", "):J==null?"":String(J),W=H0(null),G=H0(!1);r(()=>{let H=W.current;H.value=Q??q,H.focus();try{H.setSelectionRange(H.value.length,H.value.length)}catch{}},[]);let K=(H)=>{if(G.current)return;if(G.current=!0,H==="cancel")return X({reason:"cancel"});let F=W.current.value;X({reason:H,changed:F!==q,value:M4(Z.type,F)})};return z("input",{ref:W,class:"inlineedit",type:Z.type==="number"?"number":Z.type==="date"?"date":"text",onBlur:()=>K("blur"),onKeyDown:(H)=>{if(H.isComposing||H.keyCode===229)return;if(H.key==="Enter")H.preventDefault(),K("enter");else if(H.key==="Escape")H.preventDefault(),H.stopPropagation(),K("cancel");else if(H.key==="Tab"&&$)H.preventDefault(),K(H.shiftKey?"shifttab":"tab")}},void 0,!1,void 0,this)}function A3({rec:Z,prop:J,first:Q,editing:$,seed:X,onEdit:q,onCommit:W,onDone:G,onOpen:K,onRowMenu:H}){let F=Z.cells[J.id];if(J.type==="checkbox")return z("div",{class:"cell center",children:z("input",{type:"checkbox",checked:!!F,style:{width:16,height:16,accentColor:"var(--accent)"},onChange:()=>W(!F)},void 0,!1,void 0,this)},void 0,!1,void 0,this);let Y=(B)=>{if(J.type==="select"||J.type==="multi_select")h4(B,J,F,W);else q()},C=z(u9,{prop:J,val:F},void 0,!1,void 0,this);return z(n,{children:[Q?z("div",{class:"cell",onDblClick:Y,onContextMenu:(B)=>{B.preventDefault(),H(B)},children:z("div",{class:"firstcell",children:[C,z("div",{class:"rowactions",children:z("button",{class:"rowopen",title:"打开",onClick:(B)=>{B.stopPropagation(),K()},children:z(f,{name:"openPeek",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):z("div",{class:"cell",onDblClick:Y,children:C},void 0,!1,void 0,this),$&&J.type!=="select"&&J.type!=="multi_select"&&z("div",{class:"celledit",children:z(D4,{prop:J,val:F,seed:X,captureTab:!0,onDone:G},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function x4(Z,J,Q,$){let X=[...Z],q=X.findIndex((K)=>K.id===J);if(q<0)return Z;let W=X.splice(q,1)[0],G=X.findIndex((K)=>K.id===Q);if(G<0)return Z;if($==="after")G+=1;return X.splice(G,0,W),X}function M3(Z){return Array.from(Z.querySelectorAll("td")).map((Q)=>(Q.textContent??"").trim()).filter(Boolean).join(" ")||"移动记录"}function N3({colId:Z,startWidth:J,onCommit:Q}){return z("div",{class:"col-resizer",onPointerDown:(X)=>{X.preventDefault(),X.stopPropagation(),xZ(X,{col:document.querySelector(`col[data-col-id="${CSS.escape(Z)}"]`),startWidth:J,min:80,onDone:Q})}},void 0,!1,void 0,this)}function h4(Z,J,Q,$){Z.stopPropagation();let X=J.type==="multi_select",q=J.config?.options??[];R0(Z,(W)=>z(v3,{multi:X,options:q,value:Q,onPick:(G)=>{if($(G),!X)W()}},void 0,!1,void 0,this))}function v3({multi:Z,options:J,value:Q,onPick:$}){let[X,q]=b(Q),W=(K)=>Z?Array.isArray(X)?X.includes(K):!1:X===K,G=(K)=>{if(Z){let H=new Set(Array.isArray(X)?X:[]);H.has(K)?H.delete(K):H.add(K);let F=[...H];q(F),$(F)}else q(K),$(K)};return z(n,{children:[z(u0,{children:Z?"多选 — 点选切换":"单选"},void 0,!1,void 0,this),J.map((K)=>z("button",{class:"item",onClick:()=>G(K),children:[z(v9,{text:K},void 0,!1,void 0,this),W(K)&&z("span",{class:"chk",children:z(f,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},K,!0,void 0,this)),Z&&Array.isArray(X)&&X.length>0&&z(n,{children:[z(f0,{},void 0,!1,void 0,this),z(t,{icon:"x",label:"清空",onClick:()=>{q([]),$([])}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function k3(Z,J,Q,$,X){Z.stopPropagation(),R0(Z,(q)=>z(R3,{prop:J,dbId:Q,reload:$,close:q,allProps:X},void 0,!1,void 0,this),{minWidth:252})}function R3({prop:Z,dbId:J,reload:Q,close:$,allProps:X}){let[q,W]=b(Z.name),[G,K]=b(Z.type),[H,F]=b(Z.config?.options??[]),Y=(B)=>u.updateProperty(Z.id,B).then(Q).catch((M)=>Z0(`更新属性失败:${M.message}`)),C=(B)=>{K(B);let M=H;if((B==="select"||B==="multi_select")&&M.length===0)M=["选项 1","选项 2"],F(M);Y({type:B,...B==="select"||B==="multi_select"?{config:{options:M}}:{}})},L=(B)=>{F(B),Y({config:{options:B}})};return z(n,{children:[z("input",{class:"field",value:q,onInput:(B)=>W(B.target.value),onBlur:()=>q&&q!==Z.name&&Y({name:q}),onKeyDown:(B)=>{if(B.key==="Enter")B.target.blur(),$()}},void 0,!1,void 0,this),z(u0,{children:"属性类型"},void 0,!1,void 0,this),z("div",{class:"typegrid",children:Object.keys(h9).map((B)=>z("button",{class:"item"+(B===G?" sel":""),onClick:()=>C(B),children:[z("span",{class:"lico",children:z(f,{name:n0[B],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"d",children:h9[B].t},void 0,!1,void 0,this)]},B,!0,void 0,this))},void 0,!1,void 0,this),(G==="select"||G==="multi_select")&&z(n,{children:[z(f0,{},void 0,!1,void 0,this),z(u0,{children:"选项"},void 0,!1,void 0,this),H.map((B,M)=>z("div",{class:"optrow",children:[z(v9,{text:B},void 0,!1,void 0,this),z("button",{class:"x",onClick:()=>L(H.filter((k,T)=>T!==M)),children:z(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},B+M,!0,void 0,this)),z(t,{icon:"plus",label:"添加选项",onClick:()=>L([...H,"选项 "+(H.length+1)])},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"cornerUpRight",label:"在右侧插入列",onClick:()=>{$(),u.createProperty({db:J,name:m4("新属性",X),type:"text"}).then(Q).catch((B)=>Z0(`新建属性失败:${B.message}`))}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除属性",danger:!0,onClick:async()=>{if($(),await b0({title:"删除属性?",message:`「${Z.name}」及其所有单元格数据将被移除。`,confirmLabel:"删除",danger:!0}))u.deleteProperty(Z.id).then(Q)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function m4(Z,J){let Q=new Set(J.map(($)=>$.name.toLowerCase()));if(!Q.has(Z.toLowerCase()))return Z;for(let $=2;;$++){let X=`${Z} ${$}`;if(!Q.has(X.toLowerCase()))return X}}function T3(Z,J,Q,$){Z.stopPropagation(),R0(Z,(X)=>z(n,{children:[z(u0,{children:"新建属性 · 选择类型"},void 0,!1,void 0,this),z("div",{class:"typegrid",children:Object.keys(h9).map((q)=>z("button",{class:"item",onClick:()=>{X();let W=q==="select"||q==="multi_select"?{options:["选项 1","选项 2"]}:void 0;u.createProperty({db:J,name:m4(h9[q].t,Q),type:q,config:W}).then($).catch((G)=>Z0(`新建属性失败:${G.message}`))},children:[z("span",{class:"lico",children:z(f,{name:n0[q],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"d",children:h9[q].t},void 0,!1,void 0,this)]},q,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}function V3(Z,J,Q,$){R0(Z,(X)=>z(n,{children:[z(u0,{children:"排序依据"},void 0,!1,void 0,this),J.map((q)=>z(t,{icon:n0[q.type],label:q.name,onClick:()=>{$({id:q.id,desc:Q?.id===q.id?!Q.desc:!1}),X()}},q.id,!1,void 0,this)),Q&&z(n,{children:[z(f0,{},void 0,!1,void 0,this),z(t,{icon:"x",label:"清除排序",onClick:()=>{$(null),X()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this))}function S3(Z,J,Q,$,X){Z.stopPropagation(),R0(Z,(q)=>z(n,{children:[z(t,{icon:"cornerUpRight",label:"打开记录",onClick:()=>{q(),Q()}},void 0,!1,void 0,this),z(t,{icon:"copy",label:"复制记录",onClick:()=>{q(),$()}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除记录",danger:!0,onClick:async()=>{if(q(),await b0({title:"删除记录?",message:"确定删除这条记录?",confirmLabel:"删除",danger:!0}))X()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}function I3({db:Z,props:J,rec:Q,onClose:$,onCommit:X,onDelete:q,onDuplicate:W,onReverted:G}){let[K,H]=b(null),[F,Y]=b(!1),{open:C,close:L}=N9($),B=J[0];return z(n,{children:[z("div",{class:"scrim"+(C?" open":""),onClick:L},void 0,!1,void 0,this),z("div",{class:"peek"+(C?" open":""),children:[z("div",{class:"peek-head",children:[z("button",{class:"iconbtn",onClick:L,children:z(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),F&&z("button",{class:"iconbtn",title:"返回字段",onClick:()=>Y(!1),children:z(f,{name:"arrowLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("div",{style:{flex:1}},void 0,!1,void 0,this),z("button",{class:"iconbtn",title:"更多",onClick:(M)=>R0(M,(k)=>z(n,{children:[z(t,{icon:"history",label:"版本历史",checked:F,onClick:()=>{k(),Y(!F)}},void 0,!1,void 0,this),z(t,{icon:"copy",label:"复制记录",onClick:()=>{k(),W()}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除记录",danger:!0,onClick:async()=>{if(k(),await b0({title:"删除记录?",message:"确定删除这条记录?",confirmLabel:"删除",danger:!0}))q()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)),children:z(f,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"peek-body",children:F?z(T4,{rec:Q,props:J,onReverted:G},void 0,!1,void 0,this):z(n,{children:[z("h2",{contentEditable:!0,onBlur:(M)=>B&&X(B,M.target.textContent??""),children:B?String(Q.cells[B.id]??"无标题"):"无标题"},void 0,!1,void 0,this),J.map((M)=>z("div",{class:"proprow",children:[z("div",{class:"k",children:[z(f,{name:n0[M.type]??"text",cls:"ico sm"},void 0,!1,void 0,this),z("span",{children:M.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z(f3,{prop:M,rec:Q,editing:K===M.id,onEdit:()=>H(M.id),onCommit:(k)=>{X(M,k),H(null)},onCloseEdit:()=>H(null)},void 0,!1,void 0,this)]},M.id,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function f3({prop:Z,rec:J,editing:Q,onEdit:$,onCommit:X,onCloseEdit:q}){let W=J.cells[Z.id];if(Z.type==="checkbox")return z("div",{class:"v",children:z("input",{type:"checkbox",checked:!!W,style:{width:16,height:16,accentColor:"var(--accent)"},onChange:()=>X(!W)},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(Z.type==="select"||Z.type==="multi_select")return z("div",{class:"v",onClick:(G)=>h4(G,Z,W,X),children:z(u9,{prop:Z,val:W},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(Q)return z("div",{class:"v",children:z(D4,{prop:Z,val:W,onDone:(G)=>{if(G.reason!=="cancel"&&G.changed)X(G.value);else q()}},void 0,!1,void 0,this)},void 0,!1,void 0,this);return z("div",{class:"v",onClick:$,children:z(u9,{prop:Z,val:W},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var o6=vJ(r6(),1);var rZ=o6.default;function uz(Z){for(var J=1;J<arguments.length;J++){var Q=arguments[J];for(var $ in Q)if(Object.prototype.hasOwnProperty.call(Q,$))Z[$]=Q[$]}return Z}function e1(Z,J){return Array(J+1).join(Z)}function e6(Z){return Z.replace(/^\n*/,"")}function Z7(Z){var J=Z.length;while(J>0&&Z[J-1]===`
|
|
10
|
-
`)J--;return Z.substring(0,J)}function
|
|
1
|
+
var w3=Object.create;var{getPrototypeOf:A3,defineProperty:F6,getOwnPropertyNames:C3}=Object;var N3=Object.prototype.hasOwnProperty;function y3(Z){return this[Z]}var M3,_3,v3=(Z,J,Q)=>{var X=Z!=null&&typeof Z==="object";if(X){var z=J?M3??=new WeakMap:_3??=new WeakMap,G=z.get(Z);if(G)return G}Q=Z!=null?w3(A3(Z)):{};let W=J||!Z||!Z.__esModule?F6(Q,"default",{value:Z,enumerable:!0}):Q;for(let q of C3(Z))if(!N3.call(W,q))F6(W,q,{get:y3.bind(Z,q),enumerable:!0});if(X)z.set(Z,W);return W};var M0=(Z,J)=>()=>(J||Z((J={exports:{}}).exports,J),J.exports);var tJ=M0((uG,oJ)=>{function jJ(Z){if(Z instanceof Map)Z.clear=Z.delete=Z.set=function(){throw Error("map is read-only")};else if(Z instanceof Set)Z.add=Z.clear=Z.delete=function(){throw Error("set is read-only")};return Object.freeze(Z),Object.getOwnPropertyNames(Z).forEach((J)=>{let Q=Z[J],X=typeof Q;if((X==="object"||X==="function")&&!Object.isFrozen(Q))jJ(Q)}),Z}class w1{constructor(Z){if(Z.data===void 0)Z.data={};this.data=Z.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function xJ(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function R9(Z,...J){let Q=Object.create(null);for(let X in Z)Q[X]=Z[X];return J.forEach(function(X){for(let z in X)Q[z]=X[z]}),Q}var c$="</span>",IJ=(Z)=>{return!!Z.scope},d$=(Z,{prefix:J})=>{if(Z.startsWith("language:"))return Z.replace("language:","language-");if(Z.includes(".")){let Q=Z.split(".");return[`${J}${Q.shift()}`,...Q.map((X,z)=>`${X}${"_".repeat(z+1)}`)].join(" ")}return`${J}${Z}`};class DJ{constructor(Z,J){this.buffer="",this.classPrefix=J.classPrefix,Z.walk(this)}addText(Z){this.buffer+=xJ(Z)}openNode(Z){if(!IJ(Z))return;let J=d$(Z.scope,{prefix:this.classPrefix});this.span(J)}closeNode(Z){if(!IJ(Z))return;this.buffer+=c$}value(){return this.buffer}span(Z){this.buffer+=`<span class="${Z}">`}}var SJ=(Z={})=>{let J={children:[]};return Object.assign(J,Z),J};class A1{constructor(){this.rootNode=SJ(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Z){this.top.children.push(Z)}openNode(Z){let J=SJ({scope:Z});this.add(J),this.stack.push(J)}closeNode(){if(this.stack.length>1)return this.stack.pop();return}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Z){return this.constructor._walk(Z,this.rootNode)}static _walk(Z,J){if(typeof J==="string")Z.addText(J);else if(J.children)Z.openNode(J),J.children.forEach((Q)=>this._walk(Z,Q)),Z.closeNode(J);return Z}static _collapse(Z){if(typeof Z==="string")return;if(!Z.children)return;if(Z.children.every((J)=>typeof J==="string"))Z.children=[Z.children.join("")];else Z.children.forEach((J)=>{A1._collapse(J)})}}class hJ extends A1{constructor(Z){super();this.options=Z}addText(Z){if(Z==="")return;this.add(Z)}startScope(Z){this.openNode(Z)}endScope(){this.closeNode()}__addSublanguage(Z,J){let Q=Z.root;if(J)Q.scope=`language:${J}`;this.add(Q)}toHTML(){return new DJ(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function vZ(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function mJ(Z){return d9("(?=",Z,")")}function i$(Z){return d9("(?:",Z,")*")}function a$(Z){return d9("(?:",Z,")?")}function d9(...Z){return Z.map((Q)=>vZ(Q)).join("")}function l$(Z){let J=Z[Z.length-1];if(typeof J==="object"&&J.constructor===Object)return Z.splice(Z.length-1,1),J;else return{}}function C1(...Z){return"("+(l$(Z).capture?"":"?:")+Z.map((X)=>vZ(X)).join("|")+")"}function uJ(Z){return new RegExp(Z.toString()+"|").exec("").length-1}function n$(Z,J){let Q=Z&&Z.exec(J);return Q&&Q.index===0}var r$=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function N1(Z,{joinWith:J}){let Q=0;return Z.map((X)=>{Q+=1;let z=Q,G=vZ(X),W="";while(G.length>0){let q=r$.exec(G);if(!q){W+=G;break}if(W+=G.substring(0,q.index),G=G.substring(q.index+q[0].length),q[0][0]==="\\"&&q[1])W+="\\"+String(Number(q[1])+z);else if(W+=q[0],q[0]==="(")Q++}return W}).map((X)=>`(${X})`).join(J)}var o$=/\b\B/,EJ="[a-zA-Z]\\w*",y1="[a-zA-Z_]\\w*",pJ="\\b\\d+(\\.\\d+)?",cJ="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",dJ="\\b(0b[01]+)",t$="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",s$=(Z={})=>{let J=/^#![ ]*\//;if(Z.binary)Z.begin=d9(J,/.*\b/,Z.binary,/\b.*/);return R9({scope:"meta",begin:J,end:/$/,relevance:0,"on:begin":(Q,X)=>{if(Q.index!==0)X.ignoreMatch()}},Z)},kZ={begin:"\\\\[\\s\\S]",relevance:0},e$={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[kZ]},Z2={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[kZ]},J2={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/},F8=function(Z,J,Q={}){let X=R9({scope:"comment",begin:Z,end:J,contains:[]},Q);X.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let z=C1("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 X.contains.push({begin:d9(/[ ]+/,"(",z,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),X},$2=F8("//","$"),Q2=F8("/\\*","\\*/"),X2=F8("#","$"),z2={scope:"number",begin:pJ,relevance:0},W2={scope:"number",begin:cJ,relevance:0},G2={scope:"number",begin:dJ,relevance:0},q2={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[kZ,{begin:/\[/,end:/\]/,relevance:0,contains:[kZ]}]},Y2={scope:"title",begin:EJ,relevance:0},H2={scope:"title",begin:y1,relevance:0},K2={begin:"\\.\\s*"+y1,relevance:0},F2=function(Z){return Object.assign(Z,{"on:begin":(J,Q)=>{Q.data._beginMatch=J[1]},"on:end":(J,Q)=>{if(Q.data._beginMatch!==J[1])Q.ignoreMatch()}})},H8=Object.freeze({__proto__:null,APOS_STRING_MODE:e$,BACKSLASH_ESCAPE:kZ,BINARY_NUMBER_MODE:G2,BINARY_NUMBER_RE:dJ,COMMENT:F8,C_BLOCK_COMMENT_MODE:Q2,C_LINE_COMMENT_MODE:$2,C_NUMBER_MODE:W2,C_NUMBER_RE:cJ,END_SAME_AS_BEGIN:F2,HASH_COMMENT_MODE:X2,IDENT_RE:EJ,MATCH_NOTHING_RE:o$,METHOD_GUARD:K2,NUMBER_MODE:z2,NUMBER_RE:pJ,PHRASAL_WORDS_MODE:J2,QUOTE_STRING_MODE:Z2,REGEXP_MODE:q2,RE_STARTERS_RE:t$,SHEBANG:s$,TITLE_MODE:Y2,UNDERSCORE_IDENT_RE:y1,UNDERSCORE_TITLE_MODE:H2});function U2(Z,J){if(Z.input[Z.index-1]===".")J.ignoreMatch()}function L2(Z,J){if(Z.className!==void 0)Z.scope=Z.className,delete Z.className}function B2(Z,J){if(!J)return;if(!Z.beginKeywords)return;if(Z.begin="\\b("+Z.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",Z.__beforeBegin=U2,Z.keywords=Z.keywords||Z.beginKeywords,delete Z.beginKeywords,Z.relevance===void 0)Z.relevance=0}function P2(Z,J){if(!Array.isArray(Z.illegal))return;Z.illegal=C1(...Z.illegal)}function O2(Z,J){if(!Z.match)return;if(Z.begin||Z.end)throw Error("begin & end are not supported with match");Z.begin=Z.match,delete Z.match}function w2(Z,J){if(Z.relevance===void 0)Z.relevance=1}var A2=(Z,J)=>{if(!Z.beforeMatch)return;if(Z.starts)throw Error("beforeMatch cannot be used with starts");let Q=Object.assign({},Z);Object.keys(Z).forEach((X)=>{delete Z[X]}),Z.keywords=Q.keywords,Z.begin=d9(Q.beforeMatch,mJ(Q.begin)),Z.starts={relevance:0,contains:[Object.assign(Q,{endsParent:!0})]},Z.relevance=0,delete Q.beforeMatch},C2=["of","and","for","in","not","or","if","then","parent","list","value"],N2="keyword";function iJ(Z,J,Q=N2){let X=Object.create(null);if(typeof Z==="string")z(Q,Z.split(" "));else if(Array.isArray(Z))z(Q,Z);else Object.keys(Z).forEach(function(G){Object.assign(X,iJ(Z[G],J,G))});return X;function z(G,W){if(J)W=W.map((q)=>q.toLowerCase());W.forEach(function(q){let Y=q.split("|");X[Y[0]]=[G,y2(Y[0],Y[1])]})}}function y2(Z,J){if(J)return Number(J);return M2(Z)?0:1}function M2(Z){return C2.includes(Z.toLowerCase())}var VJ={},c9=(Z)=>{console.error(Z)},fJ=(Z,...J)=>{console.log(`WARN: ${Z}`,...J)},zZ=(Z,J)=>{if(VJ[`${Z}/${J}`])return;console.log(`Deprecated as of ${Z}. ${J}`),VJ[`${Z}/${J}`]=!0},K8=Error();function aJ(Z,J,{key:Q}){let X=0,z=Z[Q],G={},W={};for(let q=1;q<=J.length;q++)W[q+X]=z[q],G[q+X]=!0,X+=uJ(J[q-1]);Z[Q]=W,Z[Q]._emit=G,Z[Q]._multi=!0}function _2(Z){if(!Array.isArray(Z.begin))return;if(Z.skip||Z.excludeBegin||Z.returnBegin)throw c9("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),K8;if(typeof Z.beginScope!=="object"||Z.beginScope===null)throw c9("beginScope must be object"),K8;aJ(Z,Z.begin,{key:"beginScope"}),Z.begin=N1(Z.begin,{joinWith:""})}function v2(Z){if(!Array.isArray(Z.end))return;if(Z.skip||Z.excludeEnd||Z.returnEnd)throw c9("skip, excludeEnd, returnEnd not compatible with endScope: {}"),K8;if(typeof Z.endScope!=="object"||Z.endScope===null)throw c9("endScope must be object"),K8;aJ(Z,Z.end,{key:"endScope"}),Z.end=N1(Z.end,{joinWith:""})}function k2(Z){if(Z.scope&&typeof Z.scope==="object"&&Z.scope!==null)Z.beginScope=Z.scope,delete Z.scope}function T2(Z){if(k2(Z),typeof Z.beginScope==="string")Z.beginScope={_wrap:Z.beginScope};if(typeof Z.endScope==="string")Z.endScope={_wrap:Z.endScope};_2(Z),v2(Z)}function R2(Z){function J(W,q){return new RegExp(vZ(W),"m"+(Z.case_insensitive?"i":"")+(Z.unicodeRegex?"u":"")+(q?"g":""))}class Q{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(W,q){q.position=this.position++,this.matchIndexes[this.matchAt]=q,this.regexes.push([q,W]),this.matchAt+=uJ(W)+1}compile(){if(this.regexes.length===0)this.exec=()=>null;let W=this.regexes.map((q)=>q[1]);this.matcherRe=J(N1(W,{joinWith:"|"}),!0),this.lastIndex=0}exec(W){this.matcherRe.lastIndex=this.lastIndex;let q=this.matcherRe.exec(W);if(!q)return null;let Y=q.findIndex((F,K)=>K>0&&F!==void 0),H=this.matchIndexes[Y];return q.splice(0,Y),Object.assign(q,H)}}class X{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(W){if(this.multiRegexes[W])return this.multiRegexes[W];let q=new Q;return this.rules.slice(W).forEach(([Y,H])=>q.addRule(Y,H)),q.compile(),this.multiRegexes[W]=q,q}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(W,q){if(this.rules.push([W,q]),q.type==="begin")this.count++}exec(W){let q=this.getMatcher(this.regexIndex);q.lastIndex=this.lastIndex;let Y=q.exec(W);if(this.resumingScanAtSamePosition())if(Y&&Y.index===this.lastIndex);else{let H=this.getMatcher(0);H.lastIndex=this.lastIndex+1,Y=H.exec(W)}if(Y){if(this.regexIndex+=Y.position+1,this.regexIndex===this.count)this.considerAll()}return Y}}function z(W){let q=new X;if(W.contains.forEach((Y)=>q.addRule(Y.begin,{rule:Y,type:"begin"})),W.terminatorEnd)q.addRule(W.terminatorEnd,{type:"end"});if(W.illegal)q.addRule(W.illegal,{type:"illegal"});return q}function G(W,q){let Y=W;if(W.isCompiled)return Y;[L2,O2,T2,A2].forEach((F)=>F(W,q)),Z.compilerExtensions.forEach((F)=>F(W,q)),W.__beforeBegin=null,[B2,P2,w2].forEach((F)=>F(W,q)),W.isCompiled=!0;let H=null;if(typeof W.keywords==="object"&&W.keywords.$pattern)W.keywords=Object.assign({},W.keywords),H=W.keywords.$pattern,delete W.keywords.$pattern;if(H=H||/\w+/,W.keywords)W.keywords=iJ(W.keywords,Z.case_insensitive);if(Y.keywordPatternRe=J(H,!0),q){if(!W.begin)W.begin=/\B|\b/;if(Y.beginRe=J(Y.begin),!W.end&&!W.endsWithParent)W.end=/\B|\b/;if(W.end)Y.endRe=J(Y.end);if(Y.terminatorEnd=vZ(Y.end)||"",W.endsWithParent&&q.terminatorEnd)Y.terminatorEnd+=(W.end?"|":"")+q.terminatorEnd}if(W.illegal)Y.illegalRe=J(W.illegal);if(!W.contains)W.contains=[];if(W.contains=[].concat(...W.contains.map(function(F){return I2(F==="self"?W:F)})),W.contains.forEach(function(F){G(F,Y)}),W.starts)G(W.starts,q);return Y.matcher=z(Y),Y}if(!Z.compilerExtensions)Z.compilerExtensions=[];if(Z.contains&&Z.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return Z.classNameAliases=R9(Z.classNameAliases||{}),G(Z)}function lJ(Z){if(!Z)return!1;return Z.endsWithParent||lJ(Z.starts)}function I2(Z){if(Z.variants&&!Z.cachedVariants)Z.cachedVariants=Z.variants.map(function(J){return R9(Z,{variants:null},J)});if(Z.cachedVariants)return Z.cachedVariants;if(lJ(Z))return R9(Z,{starts:Z.starts?R9(Z.starts):null});if(Object.isFrozen(Z))return R9(Z);return Z}var S2="11.11.1";class nJ extends Error{constructor(Z,J){super(Z);this.name="HTMLInjectionError",this.html=J}}var O1=xJ,bJ=R9,gJ=Symbol("nomatch"),V2=7,rJ=function(Z){let J=Object.create(null),Q=Object.create(null),X=[],z=!0,G="Could not find the language '{}', did you forget to load/include a language module?",W={disableAutodetect:!0,name:"Plain text",contains:[]},q={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:hJ};function Y(g){return q.noHighlightRe.test(g)}function H(g){let I=g.className+" ";I+=g.parentNode?g.parentNode.className:"";let h=q.languageDetectRe.exec(I);if(h){let m=B(h[1]);if(!m)fJ(G.replace("{}",h[1])),fJ("Falling back to no-highlight mode for this block.",g);return m?h[1]:"no-highlight"}return I.split(/\s+/).find((m)=>Y(m)||B(m))}function F(g,I,h){let m="",z0="";if(typeof I==="object")m=g,h=I.ignoreIllegals,z0=I.language;else zZ("10.7.0","highlight(lang, code, ...args) has been deprecated."),zZ("10.7.0",`Please use highlight(code, options) instead.
|
|
2
|
+
https://github.com/highlightjs/highlight.js/issues/2277`),z0=g,m=I;if(h===void 0)h=!0;let X0={code:m,language:z0};t("before:highlight",X0);let Y0=X0.result?X0.result:K(X0.language,X0.code,h);return Y0.code=X0.code,t("after:highlight",Y0),Y0}function K(g,I,h,m){let z0=Object.create(null);function X0(J0,K0){return J0.keywords[K0]}function Y0(){if(!s.keywords){T0.addText(w0);return}let J0=0;s.keywordPatternRe.lastIndex=0;let K0=s.keywordPatternRe.exec(w0),A0="";while(K0){A0+=w0.substring(J0,K0.index);let R0=F0.case_insensitive?K0[0].toLowerCase():K0[0],c0=X0(s,R0);if(c0){let[G9,_9]=c0;if(T0.addText(A0),A0="",z0[R0]=(z0[R0]||0)+1,z0[R0]<=V2)Z0+=_9;if(G9.startsWith("_"))A0+=K0[0];else{let EZ=F0.classNameAliases[G9]||G9;j0(K0[0],EZ)}}else A0+=K0[0];J0=s.keywordPatternRe.lastIndex,K0=s.keywordPatternRe.exec(w0)}A0+=w0.substring(J0),T0.addText(A0)}function p(){if(w0==="")return;let J0=null;if(typeof s.subLanguage==="string"){if(!J[s.subLanguage]){T0.addText(w0);return}J0=K(s.subLanguage,w0,!0,k0[s.subLanguage]),k0[s.subLanguage]=J0._top}else J0=A(w0,s.subLanguage.length?s.subLanguage:null);if(s.relevance>0)Z0+=J0.relevance;T0.__addSublanguage(J0._emitter,J0.language)}function Q0(){if(s.subLanguage!=null)p();else Y0();w0=""}function j0(J0,K0){if(J0==="")return;T0.startScope(K0),T0.addText(J0),T0.endScope()}function r0(J0,K0){let A0=1,R0=K0.length-1;while(A0<=R0){if(!J0._emit[A0]){A0++;continue}let c0=F0.classNameAliases[J0[A0]]||J0[A0],G9=K0[A0];if(c0)j0(G9,c0);else w0=G9,Y0(),w0="";A0++}}function a0(J0,K0){if(J0.scope&&typeof J0.scope==="string")T0.openNode(F0.classNameAliases[J0.scope]||J0.scope);if(J0.beginScope){if(J0.beginScope._wrap)j0(w0,F0.classNameAliases[J0.beginScope._wrap]||J0.beginScope._wrap),w0="";else if(J0.beginScope._multi)r0(J0.beginScope,K0),w0=""}return s=Object.create(J0,{parent:{value:s}}),s}function O0(J0,K0,A0){let R0=n$(J0.endRe,A0);if(R0){if(J0["on:end"]){let c0=new w1(J0);if(J0["on:end"](K0,c0),c0.isMatchIgnored)R0=!1}if(R0){while(J0.endsParent&&J0.parent)J0=J0.parent;return J0}}if(J0.endsWithParent)return O0(J0.parent,K0,A0)}function h0(J0){if(s.matcher.regexIndex===0)return w0+=J0[0],1;else return Z9=!0,0}function G0(J0){let K0=J0[0],A0=J0.rule,R0=new w1(A0),c0=[A0.__beforeBegin,A0["on:begin"]];for(let G9 of c0){if(!G9)continue;if(G9(J0,R0),R0.isMatchIgnored)return h0(K0)}if(A0.skip)w0+=K0;else{if(A0.excludeBegin)w0+=K0;if(Q0(),!A0.returnBegin&&!A0.excludeBegin)w0=K0}return a0(A0,J0),A0.returnBegin?0:K0.length}function b(J0){let K0=J0[0],A0=I.substring(J0.index),R0=O0(s,J0,A0);if(!R0)return gJ;let c0=s;if(s.endScope&&s.endScope._wrap)Q0(),j0(K0,s.endScope._wrap);else if(s.endScope&&s.endScope._multi)Q0(),r0(s.endScope,J0);else if(c0.skip)w0+=K0;else{if(!(c0.returnEnd||c0.excludeEnd))w0+=K0;if(Q0(),c0.excludeEnd)w0=K0}do{if(s.scope)T0.closeNode();if(!s.skip&&!s.subLanguage)Z0+=s.relevance;s=s.parent}while(s!==R0.parent);if(R0.starts)a0(R0.starts,J0);return c0.returnEnd?0:K0.length}function x(){let J0=[];for(let K0=s;K0!==F0;K0=K0.parent)if(K0.scope)J0.unshift(K0.scope);J0.forEach((K0)=>T0.openNode(K0))}let r={};function l(J0,K0){let A0=K0&&K0[0];if(w0+=J0,A0==null)return Q0(),0;if(r.type==="begin"&&K0.type==="end"&&r.index===K0.index&&A0===""){if(w0+=I.slice(K0.index,K0.index+1),!z){let R0=Error(`0 width match regex (${g})`);throw R0.languageName=g,R0.badRule=r.rule,R0}return 1}if(r=K0,K0.type==="begin")return G0(K0);else if(K0.type==="illegal"&&!h){let R0=Error('Illegal lexeme "'+A0+'" for mode "'+(s.scope||"<unnamed>")+'"');throw R0.mode=s,R0}else if(K0.type==="end"){let R0=b(K0);if(R0!==gJ)return R0}if(K0.type==="illegal"&&A0==="")return w0+=`
|
|
3
|
+
`,1;if(v0>1e5&&v0>K0.index*3)throw Error("potential infinite loop, way more iterations than matches");return w0+=A0,A0.length}let F0=B(g);if(!F0)throw c9(G.replace("{}",g)),Error('Unknown language: "'+g+'"');let d=R2(F0),P0="",s=m||d,k0={},T0=new q.__emitter(q);x();let w0="",Z0=0,H0=0,v0=0,Z9=!1;try{if(!F0.__emitTokens){s.matcher.considerAll();for(;;){if(v0++,Z9)Z9=!1;else s.matcher.considerAll();s.matcher.lastIndex=H0;let J0=s.matcher.exec(I);if(!J0)break;let K0=I.substring(H0,J0.index),A0=l(K0,J0);H0=J0.index+A0}l(I.substring(H0))}else F0.__emitTokens(I,T0);return T0.finalize(),P0=T0.toHTML(),{language:g,value:P0,relevance:Z0,illegal:!1,_emitter:T0,_top:s}}catch(J0){if(J0.message&&J0.message.includes("Illegal"))return{language:g,value:O1(I),illegal:!0,relevance:0,_illegalBy:{message:J0.message,index:H0,context:I.slice(H0-100,H0+100),mode:J0.mode,resultSoFar:P0},_emitter:T0};else if(z)return{language:g,value:O1(I),illegal:!1,relevance:0,errorRaised:J0,_emitter:T0,_top:s};else throw J0}}function P(g){let I={value:O1(g),illegal:!1,relevance:0,_top:W,_emitter:new q.__emitter(q)};return I._emitter.addText(g),I}function A(g,I){I=I||q.languages||Object.keys(J);let h=P(g),m=I.filter(B).filter(_).map((Q0)=>K(Q0,g,!1));m.unshift(h);let z0=m.sort((Q0,j0)=>{if(Q0.relevance!==j0.relevance)return j0.relevance-Q0.relevance;if(Q0.language&&j0.language){if(B(Q0.language).supersetOf===j0.language)return 1;else if(B(j0.language).supersetOf===Q0.language)return-1}return 0}),[X0,Y0]=z0,p=X0;return p.secondBest=Y0,p}function L(g,I,h){let m=I&&Q[I]||h;g.classList.add("hljs"),g.classList.add(`language-${m}`)}function y(g){let I=null,h=H(g);if(Y(h))return;if(t("before:highlightElement",{el:g,language:h}),g.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",g);return}if(g.children.length>0){if(!q.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(g);if(q.throwUnescapedHTML)throw new nJ("One of your code blocks includes unescaped HTML.",g.innerHTML)}I=g;let m=I.textContent,z0=h?F(m,{language:h,ignoreIllegals:!0}):A(m);if(g.innerHTML=z0.value,g.dataset.highlighted="yes",L(g,h,z0.language),g.result={language:z0.language,re:z0.relevance,relevance:z0.relevance},z0.secondBest)g.secondBest={language:z0.secondBest.language,relevance:z0.secondBest.relevance};t("after:highlightElement",{el:g,result:z0,text:m})}function V(g){q=bJ(q,g)}let S=()=>{k(),zZ("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function M(){k(),zZ("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let N=!1;function k(){function g(){k()}if(document.readyState==="loading"){if(!N)window.addEventListener("DOMContentLoaded",g,!1);N=!0;return}document.querySelectorAll(q.cssSelector).forEach(y)}function v(g,I){let h=null;try{h=I(Z)}catch(m){if(c9("Language definition for '{}' could not be registered.".replace("{}",g)),!z)throw m;else c9(m);h=W}if(!h.name)h.name=g;if(J[g]=h,h.rawDefinition=I.bind(null,Z),h.aliases)C(h.aliases,{languageName:g})}function O(g){delete J[g];for(let I of Object.keys(Q))if(Q[I]===g)delete Q[I]}function U(){return Object.keys(J)}function B(g){return g=(g||"").toLowerCase(),J[g]||J[Q[g]]}function C(g,{languageName:I}){if(typeof g==="string")g=[g];g.forEach((h)=>{Q[h.toLowerCase()]=I})}function _(g){let I=B(g);return I&&!I.disableAutodetect}function T(g){if(g["before:highlightBlock"]&&!g["before:highlightElement"])g["before:highlightElement"]=(I)=>{g["before:highlightBlock"](Object.assign({block:I.el},I))};if(g["after:highlightBlock"]&&!g["after:highlightElement"])g["after:highlightElement"]=(I)=>{g["after:highlightBlock"](Object.assign({block:I.el},I))}}function u(g){T(g),X.push(g)}function E(g){let I=X.indexOf(g);if(I!==-1)X.splice(I,1)}function t(g,I){let h=g;X.forEach(function(m){if(m[h])m[h](I)})}function $0(g){return zZ("10.7.0","highlightBlock will be removed entirely in v12.0"),zZ("10.7.0","Please use highlightElement now."),y(g)}Object.assign(Z,{highlight:F,highlightAuto:A,highlightAll:k,highlightElement:y,highlightBlock:$0,configure:V,initHighlighting:S,initHighlightingOnLoad:M,registerLanguage:v,unregisterLanguage:O,listLanguages:U,getLanguage:B,registerAliases:C,autoDetection:_,inherit:bJ,addPlugin:u,removePlugin:E}),Z.debugMode=function(){z=!1},Z.safeMode=function(){z=!0},Z.versionString=S2,Z.regex={concat:d9,lookahead:mJ,either:C1,optional:a$,anyNumberOfTimes:i$};for(let g in H8)if(typeof H8[g]==="object")jJ(H8[g]);return Object.assign(Z,H8),Z},WZ=rJ({});WZ.newInstance=()=>rJ({});oJ.exports=WZ;WZ.HighlightJS=WZ;WZ.default=WZ});var eJ=M0((EG,sJ)=>{function f2(Z){let J=Z.regex,Q=J.concat(/[\p{L}_]/u,J.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),X=/[\p{L}0-9._:-]+/u,z={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},G={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},W=Z.inherit(G,{begin:/\(/,end:/\)/}),q=Z.inherit(Z.APOS_STRING_MODE,{className:"string"}),Y=Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),H={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:X,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[z]},{begin:/'/,end:/'/,contains:[z]},{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:[G,Y,q,W,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[G,W,Y,q]}]}]},Z.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},z,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[Y]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[H],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[H],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:J.concat(/</,J.lookahead(J.concat(Q,J.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:Q,relevance:0,starts:H}]},{className:"tag",begin:J.concat(/<\//,J.lookahead(J.concat(Q,/>/))),contains:[{className:"name",begin:Q,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}sJ.exports=f2});var J4=M0((pG,Z4)=>{function b2(Z){let J=Z.regex,Q={},X={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[Q]}]};Object.assign(Q,{className:"variable",variants:[{begin:J.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},X]});let z={className:"subst",begin:/\$\(/,end:/\)/,contains:[Z.BACKSLASH_ESCAPE]},G=Z.inherit(Z.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),W={begin:/<<-?\s*(?=\w+)/,starts:{contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},q={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,Q,z]};z.contains.push(q);let Y={match:/\\"/},H={className:"string",begin:/'/,end:/'/},F={match:/\\'/},K={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},Z.NUMBER_MODE,Q]},P=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],A=Z.SHEBANG({binary:`(${P.join("|")})`,relevance:10}),L={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[Z.inherit(Z.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},y=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],V=["true","false"],S={match:/(\/[a-z._-]+)+/},M=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],N=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],k=["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"],v=["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:y,literal:V,built_in:[...M,...N,"set","shopt",...k,...v]},contains:[A,Z.SHEBANG(),L,K,G,W,S,q,Y,H,F,Q]}}Z4.exports=b2});var Q4=M0((cG,$4)=>{function g2(Z){let J=Z.regex,Q=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),X="decltype\\(auto\\)",z="[a-zA-Z_]\\w*::",G="<[^<>]+>",W="(decltype\\(auto\\)|"+J.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+J.optional("<[^<>]+>")+")",q={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},Y="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",H={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},F={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},K={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(H,{className:"string"}),{className:"string",begin:/<.*?>/},Q,Z.C_BLOCK_COMMENT_MODE]},P={className:"title",begin:J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},A=J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",V={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},S=[K,q,Q,Z.C_BLOCK_COMMENT_MODE,F,H],M={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:V,contains:S.concat([{begin:/\(/,end:/\)/,keywords:V,contains:S.concat(["self"]),relevance:0}]),relevance:0},N={begin:"("+W+"[\\*&\\s]+)+"+A,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:V,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:V,relevance:0},{begin:A,returnBegin:!0,contains:[Z.inherit(P,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:V,relevance:0,contains:[Q,Z.C_BLOCK_COMMENT_MODE,H,F,q,{begin:/\(/,end:/\)/,keywords:V,relevance:0,contains:["self",Q,Z.C_BLOCK_COMMENT_MODE,H,F,q]}]},q,Q,Z.C_BLOCK_COMMENT_MODE,K]};return{name:"C",aliases:["h"],keywords:V,disableAutodetect:!0,illegal:"</",contains:[].concat(M,N,S,[K,{begin:Z.IDENT_RE+"::",keywords:V},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},Z.TITLE_MODE]}]),exports:{preprocessor:K,strings:H,keywords:V}}}$4.exports=g2});var z4=M0((dG,X4)=>{function j2(Z){let J=Z.regex,Q=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),X="decltype\\(auto\\)",z="[a-zA-Z_]\\w*::",G="<[^<>]+>",W="(?!struct)(decltype\\(auto\\)|"+J.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+J.optional("<[^<>]+>")+")",q={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},Y="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",H={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},F={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},K={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(H,{className:"string"}),{className:"string",begin:/<.*?>/},Q,Z.C_BLOCK_COMMENT_MODE]},P={className:"title",begin:J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},A=J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",L=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],y=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],V=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],S=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],k={type:y,keyword:L,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:V},v={className:"function.dispatch",relevance:0,keywords:{_hint:S},begin:J.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,Z.IDENT_RE,J.lookahead(/(<[^<>]+>|)\s*\(/))},O=[v,K,q,Q,Z.C_BLOCK_COMMENT_MODE,F,H],U={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:k,contains:O.concat([{begin:/\(/,end:/\)/,keywords:k,contains:O.concat(["self"]),relevance:0}]),relevance:0},B={className:"function",begin:"("+W+"[\\*&\\s]+)+"+A,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:k,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:k,relevance:0},{begin:A,returnBegin:!0,contains:[P],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[H,F]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:[Q,Z.C_BLOCK_COMMENT_MODE,H,F,q,{begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:["self",Q,Z.C_BLOCK_COMMENT_MODE,H,F,q]}]},q,Q,Z.C_BLOCK_COMMENT_MODE,K]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:k,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(U,B,v,O,[K,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:k,contains:["self",q]},{begin:Z.IDENT_RE+"::",keywords:k},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}X4.exports=j2});var G4=M0((iG,W4)=>{function x2(Z){let J=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],Q=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],X=["default","false","null","true"],z=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],G=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],W={keyword:z.concat(G),built_in:J,literal:X},q=Z.inherit(Z.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),Y={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},H={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},F={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},K=Z.inherit(F,{illegal:/\n/}),P={className:"subst",begin:/\{/,end:/\}/,keywords:W},A=Z.inherit(P,{illegal:/\n/}),L={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},Z.BACKSLASH_ESCAPE,A]},y={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},P]},V=Z.inherit(y,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},A]});P.contains=[y,L,F,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,Y,Z.C_BLOCK_COMMENT_MODE],A.contains=[V,L,K,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,Y,Z.inherit(Z.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let S={variants:[H,y,L,F,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},M={begin:"<",end:">",contains:[{beginKeywords:"in out"},q]},N=Z.IDENT_RE+"(<"+Z.IDENT_RE+"(\\s*,\\s*"+Z.IDENT_RE+")*>)?(\\[\\])?",k={begin:"@"+Z.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:W,illegal:/::/,contains:[Z.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},S,Y,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},q,M,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[q,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[q,M,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+N+"\\s+)+"+Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:W,contains:[{beginKeywords:Q.join(" "),relevance:0},{begin:Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[Z.TITLE_MODE,M],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:W,relevance:0,contains:[S,Y,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},k]}}W4.exports=x2});var Y4=M0((aG,q4)=>{var D2=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.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:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},h2=["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"],m2=["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"],u2=[...h2,...m2],E2=["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(),p2=["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(),c2=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d2=["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 i2(Z){let J=Z.regex,Q=D2(Z),X={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},z="and or not only",G=/@-?\w[\w]*(-\w+)*/,W="[a-zA-Z-][a-zA-Z0-9_-]*",q=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[Q.BLOCK_COMMENT,X,Q.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},Q.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+p2.join("|")+")"},{begin:":(:)?("+c2.join("|")+")"}]},Q.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d2.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[Q.BLOCK_COMMENT,Q.HEXCOLOR,Q.IMPORTANT,Q.CSS_NUMBER_MODE,...q,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...q,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},Q.FUNCTION_DISPATCH]},{begin:J.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:G},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:E2.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...q,Q.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+u2.join("|")+")\\b"}]}}q4.exports=i2});var K4=M0((lG,H4)=>{function a2(Z){let J=Z.regex,Q={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},X={begin:"^[-\\*]{3,}",end:"$"},z={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}]},G={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},W={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},q=/[A-Za-z][A-Za-z0-9+.-]*/,Y={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:J.concat(/\[.+?\]\(/,q,/:\/\/.*?\)/),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}]},H={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},F={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},K=Z.inherit(H,{contains:[]}),P=Z.inherit(F,{contains:[]});H.contains.push(P),F.contains.push(K);let A=[Q,Y];return[H,F,K,P].forEach((S)=>{S.contains=S.contains.concat(A)}),A=A.concat(H,F),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:A},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:A}]}]},Q,G,H,F,{className:"quote",begin:"^>\\s+",contains:A,end:"$"},z,X,Y,W,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}H4.exports=a2});var U4=M0((nG,F4)=>{function l2(Z){let J=Z.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:J.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:J.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}F4.exports=l2});var B4=M0((rG,L4)=>{function n2(Z){let J=Z.regex,Q="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",X=J.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),z=J.concat(X,/(::\w+)*/),W={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},q={className:"doctag",begin:"@[A-Za-z]+"},Y={begin:"#<",end:">"},H=[Z.COMMENT("#","$",{contains:[q]}),Z.COMMENT("^=begin","^=end",{contains:[q],relevance:10}),Z.COMMENT("^__END__",Z.MATCH_NOTHING_RE)],F={className:"subst",begin:/#\{/,end:/\}/,keywords:W},K={className:"string",contains:[Z.BACKSLASH_ESCAPE,F],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:J.concat(/<<[-~]?'?/,J.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[Z.BACKSLASH_ESCAPE,F]})]}]},P="[1-9](_?[0-9])*|0",A="[0-9](_?[0-9])*",L={className:"number",relevance:0,variants:[{begin:"\\b([1-9](_?[0-9])*|0)(\\.([0-9](_?[0-9])*))?([eE][+-]?([0-9](_?[0-9])*)|r)?i?\\b"},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},y={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:W}]},O=[K,{variants:[{match:[/class\s+/,z,/\s+<\s+/,z]},{match:[/\b(class|module)\s+/,z]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:W},{match:[/(include|extend)\s+/,z],scope:{2:"title.class"},keywords:W},{relevance:0,match:[z,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:X,scope:"title.class"},{match:[/def/,/\s+/,"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"],scope:{1:"keyword",3:"title.function"},contains:[y]},{begin:Z.IDENT_RE+"::"},{className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[K,{begin:"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"}],relevance:0},L,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:W},{begin:"("+Z.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[Z.BACKSLASH_ESCAPE,F],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(Y,H),relevance:0}].concat(Y,H);F.contains=O,y.contains=O;let U="[>?]>",B="[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]",C="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",_=[{begin:/^\s*=>/,starts:{end:"$",contains:O}},{className:"meta.prompt",begin:"^("+U+"|"+B+"|"+C+")(?=[ ])",starts:{end:"$",keywords:W,contains:O}}];return H.unshift(Y),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:W,illegal:/\/\*/,contains:[Z.SHEBANG({binary:"ruby"})].concat(_).concat(H).concat(O)}}L4.exports=n2});var O4=M0((oG,P4)=>{function r2(Z){let G={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:G,illegal:"</",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"string",variants:[Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[Z.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:G,illegal:/["']/}]}]}}P4.exports=r2});var A4=M0((tG,w4)=>{function o2(Z){let J=Z.regex,Q=/[_A-Za-z][_0-9A-Za-z]*/;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],literal:["true","false","null"]},contains:[Z.HASH_COMMENT_MODE,Z.QUOTE_STRING_MODE,Z.NUMBER_MODE,{scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{scope:"symbol",begin:J.concat(Q,J.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}w4.exports=o2});var N4=M0((sG,C4)=>{function t2(Z){let J=Z.regex,Q={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:Z.NUMBER_RE}]},X=Z.COMMENT();X.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let z={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},G={className:"literal",begin:/\bon|off|true|false|yes|no\b/},W={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},q={begin:/\[/,end:/\]/,contains:[X,G,z,W,Q,"self"],relevance:0},Y=/[A-Za-z0-9_-]+/,H=/"(\\"|[^"])*"/,F=/'[^']*'/,K=J.either(Y,H,F),P=J.concat(K,"(\\s*\\.\\s*",K,")*",J.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[X,{className:"section",begin:/\[+/,end:/\]+/},{begin:P,className:"attr",starts:{end:/$/,contains:[X,q,G,z,W,Q]}}]}}C4.exports=t2});var v4=M0((eG,_4)=>{var GZ="[0-9](_*[0-9])*",U8=`\\.(${GZ})`,L8="[0-9a-fA-F](_*[0-9a-fA-F])*",y4={className:"number",variants:[{begin:`(\\b(${GZ})((${U8})|\\.)?|(${U8}))[eE][+-]?(${GZ})[fFdD]?\\b`},{begin:`\\b(${GZ})((${U8})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${U8})[fFdD]?\\b`},{begin:`\\b(${GZ})[fFdD]\\b`},{begin:`\\b0[xX]((${L8})\\.?|(${L8})?\\.(${L8}))[pP][+-]?(${GZ})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${L8})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function M4(Z,J,Q){if(Q===-1)return"";return Z.replace(J,(X)=>{return M4(Z,J,Q-1)})}function s2(Z){let J=Z.regex,Q="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",X="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+M4("(?:<"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~(?:\\s*,\\s*"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~)*>)?",/~~~/g,2),Y={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},H={className:"meta",begin:"@"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},F={className:"params",begin:/\(/,end:/\)/,keywords:Y,relevance:0,contains:[Z.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:Y,illegal:/<\/|#/,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[Z.BACKSLASH_ESCAPE]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[J.concat(/(?!else)/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"),/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"},contains:[F,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+X+"\\s+)",Z.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:Y,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:Y,relevance:0,contains:[H,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,y4,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},y4,H]}}_4.exports=s2});var S4=M0((Zq,I4)=>{var e2=["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"],ZQ=["true","false","null","undefined","NaN","Infinity"],k4=["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"],T4=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],R4=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],JQ=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],$Q=[].concat(R4,k4,T4);function QQ(Z){let J=Z.regex,Q=(h,{after:m})=>{let z0="</"+h[0].slice(1);return h.input.indexOf(z0,m)!==-1},X="[A-Za-z$_][0-9A-Za-z$_]*",z={begin:"<>",end:"</>"},G=/<[A-Za-z0-9\\._:-]+\s*\/>/,W={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(h,m)=>{let z0=h[0].length+h.index,X0=h.input[z0];if(X0==="<"||X0===","){m.ignoreMatch();return}if(X0===">"){if(!Q(h,{after:z0}))m.ignoreMatch()}let Y0,p=h.input.substring(z0);if(Y0=p.match(/^\s*=/)){m.ignoreMatch();return}if(Y0=p.match(/^\s+extends\s+/)){if(Y0.index===0){m.ignoreMatch();return}}}},q={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e2,literal:ZQ,built_in:$Q,"variable.language":JQ},Y="[0-9](_?[0-9])*",H="\\.([0-9](_?[0-9])*)",F="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",K={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\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},P={className:"subst",begin:"\\$\\{",end:"\\}",keywords:q,contains:[]},A={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,P],subLanguage:"xml"}},L={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,P],subLanguage:"css"}},y={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,P],subLanguage:"graphql"}},V={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,P]},M={className:"comment",variants:[Z.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:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},N=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,A,L,y,V,{match:/\$\d+/},K];P.contains=N.concat({begin:/\{/,end:/\}/,keywords:q,contains:["self"].concat(N)});let k=[].concat(M,P.contains),v=k.concat([{begin:/(\s*)\(/,end:/\)/,keywords:q,contains:["self"].concat(k)}]),O={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:v},U={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,J.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",J.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},B={relevance:0,match:J.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:{_:[...k4,...T4]}},C={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},_={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[O],illegal:/%/},T={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function u(h){return J.concat("(?!",h.join("|"),")")}let E={match:J.concat(/\b/,u([...R4,"super","import"].map((h)=>`${h}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\(/)),className:"title.function",relevance:0},t={begin:J.concat(/\./,J.lookahead(J.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},$0={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},O]},g="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",I={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,J.lookahead(g)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[O]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:q,exports:{PARAMS_CONTAINS:v,CLASS_REFERENCE:B},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),C,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,A,L,y,V,M,{match:/\$\d+/},K,B,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+J.lookahead(":"),relevance:0},I,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[M,Z.REGEXP_MODE,{className:"function",begin:g,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:z.begin,end:z.end},{match:G},{begin:W.begin,"on:begin":W.isTrulyOpeningTag,end:W.end}],subLanguage:"xml",contains:[{begin:W.begin,end:W.end,skip:!0,contains:["self"]}]}]},_,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[O,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},t,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[O]},E,T,U,$0,{match:/\$[(.]/}]}}I4.exports=QQ});var f4=M0((Jq,V4)=>{function XQ(Z){let J={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},Q={match:/[{}[\],:]/,className:"punctuation",relevance:0},X=["true","false","null"],z={scope:"literal",beginKeywords:X.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:X},contains:[J,Q,Z.QUOTE_STRING_MODE,z,Z.C_NUMBER_MODE,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}V4.exports=XQ});var g4=M0(($q,b4)=>{var qZ="[0-9](_*[0-9])*",B8=`\\.(${qZ})`,P8="[0-9a-fA-F](_*[0-9a-fA-F])*",zQ={className:"number",variants:[{begin:`(\\b(${qZ})((${B8})|\\.)?|(${B8}))[eE][+-]?(${qZ})[fFdD]?\\b`},{begin:`\\b(${qZ})((${B8})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${B8})[fFdD]?\\b`},{begin:`\\b(${qZ})[fFdD]\\b`},{begin:`\\b0[xX]((${P8})\\.?|(${P8})?\\.(${P8}))[pP][+-]?(${qZ})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${P8})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function WQ(Z){let J={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},Q={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},X={className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"@"},z={className:"subst",begin:/\$\{/,end:/\}/,contains:[Z.C_NUMBER_MODE]},G={className:"variable",begin:"\\$"+Z.UNDERSCORE_IDENT_RE},W={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[G,z]},{begin:"'",end:"'",illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE,G,z]}]};z.contains.push(W);let q={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+Z.UNDERSCORE_IDENT_RE+")?"},Y={className:"meta",begin:"@"+Z.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[Z.inherit(W,{className:"string"}),"self"]}]},H=zQ,F=Z.COMMENT("/\\*","\\*/",{contains:[Z.C_BLOCK_COMMENT_MODE]}),K={variants:[{className:"type",begin:Z.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},P=K;return P.variants[1].contains=[K],K.variants[1].contains=[P],{name:"Kotlin",aliases:["kt","kts"],keywords:J,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),Z.C_LINE_COMMENT_MODE,F,Q,X,q,Y,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:J,relevance:5,contains:[{begin:Z.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[Z.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:J,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[K,Z.C_LINE_COMMENT_MODE,F],relevance:0},Z.C_LINE_COMMENT_MODE,F,q,Y,W,Z.C_NUMBER_MODE]},F]},{begin:[/class|interface|trait/,/\s+/,Z.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},Z.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},q,Y]},W,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
|
|
4
|
+
`},H]}}b4.exports=WQ});var h4=M0((Qq,D4)=>{var GQ=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.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:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},qQ=["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"],YQ=["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"],HQ=[...qQ,...YQ],KQ=["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(),j4=["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(),x4=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),FQ=["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(),UQ=j4.concat(x4).sort().reverse();function LQ(Z){let J=GQ(Z),Q=UQ,X="and or not only",z="[\\w-]+",G="([\\w-]+|@\\{[\\w-]+\\})",W=[],q=[],Y=function(N){return{className:"string",begin:"~?"+N+".*?"+N}},H=function(N,k,v){return{className:N,begin:k,relevance:v}},F={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:KQ.join(" ")},K={begin:"\\(",end:"\\)",contains:q,keywords:F,relevance:0};q.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,Y("'"),Y('"'),J.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},J.HEXCOLOR,K,H("variable","@@?[\\w-]+",10),H("variable","@\\{[\\w-]+\\}"),H("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},J.IMPORTANT,{beginKeywords:"and not"},J.FUNCTION_DISPATCH);let P=q.concat({begin:/\{/,end:/\}/,contains:W}),A={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(q)},L={begin:G+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+FQ.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:q}}]},y={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:F,returnEnd:!0,contains:q,relevance:0}},V={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:P}},S={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:G,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,A,H("keyword","all\\b"),H("variable","@\\{[\\w-]+\\}"),{begin:"\\b("+HQ.join("|")+")\\b",className:"selector-tag"},J.CSS_NUMBER_MODE,H("selector-tag",G,0),H("selector-id","#"+G),H("selector-class","\\."+G,0),H("selector-tag","&",0),J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+j4.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+x4.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:P},{begin:"!important"},J.FUNCTION_DISPATCH]},M={begin:`[\\w-]+:(:)?(${Q.join("|")})`,returnBegin:!0,contains:[S]};return W.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,y,V,M,L,S,A,J.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:W}}D4.exports=LQ});var u4=M0((Xq,m4)=>{function BQ(Z){let X={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},z=[Z.COMMENT("--(?!\\[=*\\[)","$"),Z.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[X],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:Z.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:z.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[Z.inherit(Z.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:z}].concat(z)},Z.C_NUMBER_MODE,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[X],relevance:5}])}}m4.exports=BQ});var p4=M0((zq,E4)=>{function PQ(Z){let J={className:"variable",variants:[{begin:"\\$\\("+Z.UNDERSCORE_IDENT_RE+"\\)",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},Q={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,J]},X={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[J,Q]},z={begin:"^"+Z.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},G={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},W={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[J]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[Z.HASH_COMMENT_MODE,J,Q,X,z,G,W]}}E4.exports=PQ});var d4=M0((Wq,c4)=>{function OQ(Z){let J=Z.regex,Q=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],X=/[dualxmsipngr]{0,12}/,z={$pattern:/[\w.]+/,keyword:Q.join(" ")},G={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:z},W={begin:/->\{/,end:/\}/},q={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},Y={scope:"variable",variants:[{begin:/\$\d/},{begin:J.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[q]},H={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},F=[Z.BACKSLASH_ESCAPE,G,Y],K=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],P=(y,V,S="\\1")=>{let M=S==="\\1"?S:J.concat(S,V);return J.concat(J.concat("(?:",y,")"),V,/(?:\\.|[^\\\/])*?/,M,/(?:\\.|[^\\\/])*?/,S,X)},A=(y,V,S)=>{return J.concat(J.concat("(?:",y,")"),V,/(?:\\.|[^\\\/])*?/,S,X)},L=[Y,Z.HASH_COMMENT_MODE,Z.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),W,{className:"string",contains:F,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},H,{begin:"(\\/\\/|"+Z.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[Z.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:P("s|tr|y",J.either(...K,{capture:!0}))},{begin:P("s|tr|y","\\(","\\)")},{begin:P("s|tr|y","\\[","\\]")},{begin:P("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:A("(?:m|qr)?",/\//,/\//)},{begin:A("m|qr",J.either(...K,{capture:!0}),/\1/)},{begin:A("m|qr",/\(/,/\)/)},{begin:A("m|qr",/\[/,/\]/)},{begin:A("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,q]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,q,H]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return G.contains=L,W.contains=L,{name:"Perl",aliases:["pl","pm"],keywords:z,contains:L}}c4.exports=OQ});var a4=M0((Gq,i4)=>{function wQ(Z){let J={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},Q=/[a-zA-Z@][a-zA-Z0-9_]*/,q={"variable.language":["this","super"],$pattern:Q,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},Y={$pattern:Q,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:q,illegal:"</",contains:[J,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,Z.C_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+Y.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:Y,contains:[Z.UNDERSCORE_TITLE_MODE]},{begin:"\\."+Z.UNDERSCORE_IDENT_RE,relevance:0}]}}i4.exports=wQ});var n4=M0((qq,l4)=>{function AQ(Z){let J=Z.regex,Q=/(?![A-Za-z0-9])(?![$])/,X=J.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,Q),z=J.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,Q),G=J.concat(/[A-Z]+/,Q),W={scope:"variable",match:"\\$+"+X},q={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:0.1},{begin:/\?>/}]},Y={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},H=Z.inherit(Z.APOS_STRING_MODE,{illegal:null}),F=Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,contains:Z.QUOTE_STRING_MODE.contains.concat(Y)}),K={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:Z.QUOTE_STRING_MODE.contains.concat(Y),"on:begin":(t,$0)=>{$0.data._beginMatch=t[1]||t[2]},"on:end":(t,$0)=>{if($0.data._beginMatch!==t[1])$0.ignoreMatch()}},P=Z.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),A=`[
|
|
5
|
+
]`,L={scope:"string",variants:[F,H,K,P]},y={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},V=["false","null","true"],S=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],M=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],k={keyword:S,literal:((t)=>{let $0=[];return t.forEach((g)=>{if($0.push(g),g.toLowerCase()===g)$0.push(g.toUpperCase());else $0.push(g.toLowerCase())}),$0})(V),built_in:M},v=(t)=>{return t.map(($0)=>{return $0.replace(/\|\d+$/,"")})},O={variants:[{match:[/new/,J.concat(`[
|
|
6
|
+
]`,"+"),J.concat("(?!",v(M).join("\\b|"),"\\b)"),z],scope:{1:"keyword",4:"title.class"}}]},U=J.concat(X,"\\b(?!\\()"),B={variants:[{match:[J.concat(/::/,J.lookahead(/(?!class\b)/)),U],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[z,J.concat(/::/,J.lookahead(/(?!class\b)/)),U],scope:{1:"title.class",3:"variable.constant"}},{match:[z,J.concat("::",J.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[z,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},C={scope:"attr",match:J.concat(X,J.lookahead(":"),J.lookahead(/(?!::)/))},_={relevance:0,begin:/\(/,end:/\)/,keywords:k,contains:[C,W,B,Z.C_BLOCK_COMMENT_MODE,L,y,O]},T={relevance:0,match:[/\b/,J.concat("(?!fn\\b|function\\b|",v(S).join("\\b|"),"|",v(M).join("\\b|"),"\\b)"),X,J.concat(`[
|
|
7
|
+
]`,"*"),J.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[_]};_.contains.push(T);let u=[C,B,Z.C_BLOCK_COMMENT_MODE,L,y,O],E={begin:J.concat(/#\[\s*\\?/,J.either(z,G)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:V,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:V,keyword:["new","array"]},contains:["self",...u]},...u,{scope:"meta",variants:[{match:z},{match:G}]}]};return{case_insensitive:!1,keywords:k,contains:[E,Z.HASH_COMMENT_MODE,Z.COMMENT("//","$"),Z.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:Z.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},q,{scope:"variable.language",match:/\$this\b/},W,T,B,{match:[/const/,/\s/,X],scope:{1:"keyword",3:"variable.constant"}},O,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},Z.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:k,contains:["self",E,W,B,Z.C_BLOCK_COMMENT_MODE,L,y]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},Z.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[Z.inherit(Z.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},Z.UNDERSCORE_TITLE_MODE]},L,y]}}l4.exports=AQ});var o4=M0((Yq,r4)=>{function CQ(Z){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},Z.inherit(Z.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}r4.exports=CQ});var s4=M0((Hq,t4)=>{function NQ(Z){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}t4.exports=NQ});var Z5=M0((Kq,e4)=>{function yQ(Z){let J=Z.regex,Q=/[\p{XID_Start}_]\p{XID_Continue}*/u,X=["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"],q={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:X,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"]},Y={className:"meta",begin:/^(>>>|\.\.\.) /},H={className:"subst",begin:/\{/,end:/\}/,keywords:q,illegal:/#/},F={begin:/\{\{/,relevance:0},K={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,Y],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,Y],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,Y,F,H]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,Y,F,H]},{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:[Z.BACKSLASH_ESCAPE,F,H]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,F,H]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},P="[0-9](_?[0-9])*",A="(\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.",L=`\\b|${X.join("|")}`,y={className:"number",relevance:0,variants:[{begin:`(\\b([0-9](_?[0-9])*)|((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.))[eE][+-]?([0-9](_?[0-9])*)[jJ]?(?=${L})`},{begin:"((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.)[jJ]?"},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${L})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${L})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${L})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${L})`},{begin:`\\b([0-9](_?[0-9])*)[jJ](?=${L})`}]},V={className:"comment",begin:J.lookahead(/# type:/),end:/$/,keywords:q,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},S={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:["self",Y,y,K,Z.HASH_COMMENT_MODE]}]};return H.contains=[K,y,Y],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:q,illegal:/(<\/|\?)|=>/,contains:[Y,y,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},K,V,Z.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,Q],scope:{1:"keyword",3:"title.function"},contains:[S]},{variants:[{match:[/\bclass/,/\s+/,Q,/\s*/,/\(\s*/,Q,/\s*\)/]},{match:[/\bclass/,/\s+/,Q]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[y,S,K]}]}}e4.exports=yQ});var $5=M0((Fq,J5)=>{function MQ(Z){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}J5.exports=MQ});var X5=M0((Uq,Q5)=>{function _Q(Z){let J=Z.regex,Q=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,X=J.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),z=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,G=J.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:Q,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[Z.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:J.lookahead(J.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:Q},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),Z.HASH_COMMENT_MODE,{scope:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[z,X]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,X]},{scope:{1:"punctuation",2:"number"},match:[G,X]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,X]}]},{scope:{3:"operator"},match:[Q,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:z},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:G},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}Q5.exports=_Q});var W5=M0((Lq,z5)=>{function vQ(Z){let J=Z.regex,Q=/(r#)?/,X=J.concat(Q,Z.UNDERSCORE_IDENT_RE),z=J.concat(Q,Z.IDENT_RE),G={className:"title.function.invoke",relevance:0,begin:J.concat(/\b/,/(?!let|for|while|if|else|match\b)/,z,J.lookahead(/\s*\(/))},W="([ui](8|16|32|64|128|size)|f(32|64))?",q=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],Y=["true","false","Some","None","Ok","Err"],H=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],F=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:Z.IDENT_RE+"!?",type:F,keyword:q,literal:Y,built_in:H},illegal:"</",contains:[Z.C_LINE_COMMENT_MODE,Z.COMMENT("/\\*","\\*/",{contains:["self"]}),Z.inherit(Z.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?"}],relevance:0},{begin:[/fn/,/\s+/,X],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,X],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,X,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,X],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,X],className:{1:"keyword",3:"title.class"}},{begin:Z.IDENT_RE+"::",keywords:{keyword:"Self",built_in:H,type:F}},{className:"punctuation",begin:"->"},G]}}z5.exports=vQ});var q5=M0((Bq,G5)=>{var kQ=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.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:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.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_-]*/}}},TQ=["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"],RQ=["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"],IQ=[...TQ,...RQ],SQ=["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(),VQ=["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(),fQ=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),bQ=["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 gQ(Z){let J=kQ(Z),Q=fQ,X=VQ,z="@[a-z-]+",G="and or not only",W="[a-zA-Z-][a-zA-Z0-9_-]*",q={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,J.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+IQ.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+X.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Q.join("|")+")"},q,{begin:/\(/,end:/\)/,contains:[J.CSS_NUMBER_MODE]},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+bQ.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[J.BLOCK_COMMENT,q,J.HEXCOLOR,J.CSS_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,J.IMPORTANT,J.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:"@[a-z-]+",keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:SQ.join(" ")},contains:[{begin:"@[a-z-]+",className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},q,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,J.HEXCOLOR,J.CSS_NUMBER_MODE]},J.FUNCTION_DISPATCH]}}G5.exports=gQ});var H5=M0((Pq,Y5)=>{function jQ(Z){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}Y5.exports=jQ});var F5=M0((Oq,K5)=>{function xQ(Z){let J=Z.regex,Q=Z.COMMENT("--","$"),X={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},z={begin:/"/,end:/"/,contains:[{match:/""/}]},G=["true","false","unknown"],W=["double precision","large object","with timezone","without timezone"],q=["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"],Y=["add","asc","collation","desc","final","first","last","view"],H=["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"],F=["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"],K=["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"],P=["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"],A=F,L=[...H,...Y].filter((v)=>{return!F.includes(v)}),y={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},V={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},S={match:J.concat(/\b/,J.either(...A),/\s*\(/),relevance:0,keywords:{built_in:A}};function M(v){return J.concat(/\b/,J.either(...v.map((O)=>{return O.replace(/\s+/,"\\s+")})),/\b/)}let N={scope:"keyword",match:M(P),relevance:0};function k(v,{exceptions:O,when:U}={}){let B=U;return O=O||[],v.map((C)=>{if(C.match(/\|\d+$/)||O.includes(C))return C;else if(B(C))return`${C}|0`;else return C})}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:k(L,{when:(v)=>v.length<3}),literal:G,type:q,built_in:K},contains:[{scope:"type",match:M(W)},N,S,y,X,z,Z.C_NUMBER_MODE,Z.C_BLOCK_COMMENT_MODE,Q,V]}}K5.exports=xQ});var N5=M0((wq,C5)=>{function P5(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function TZ(Z){return V0("(?=",Z,")")}function V0(...Z){return Z.map((Q)=>P5(Q)).join("")}function DQ(Z){let J=Z[Z.length-1];if(typeof J==="object"&&J.constructor===Object)return Z.splice(Z.length-1,1),J;else return{}}function s0(...Z){return"("+(DQ(Z).capture?"":"?:")+Z.map((X)=>P5(X)).join("|")+")"}var v1=(Z)=>V0(/\b/,Z,/\w$/.test(Z)?/\b/:/\B/),hQ=["Protocol","Type"].map(v1),U5=["init","self"].map(v1),mQ=["Any","Self"],M1=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],L5=["false","nil","true"],uQ=["assignment","associativity","higherThan","left","lowerThan","none","right"],EQ=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],B5=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],O5=s0(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),w5=s0(O5,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),_1=V0(O5,w5,"*"),A5=s0(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),w8=s0(A5,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),B9=V0(A5,w8,"*"),O8=V0(/[A-Z]/,w8,"*"),pQ=["attached","autoclosure",V0(/convention\(/,s0("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",V0(/objc\(/,B9,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],cQ=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function dQ(Z){let J={match:/\s+/,relevance:0},Q=Z.COMMENT("/\\*","\\*/",{contains:["self"]}),X=[Z.C_LINE_COMMENT_MODE,Q],z={match:[/\./,s0(...hQ,...U5)],className:{2:"keyword"}},G={match:V0(/\./,s0(...M1)),relevance:0},W=M1.filter((d)=>typeof d==="string").concat(["_|0"]),q=M1.filter((d)=>typeof d!=="string").concat(mQ).map(v1),Y={variants:[{className:"keyword",match:s0(...q,...U5)}]},H={$pattern:s0(/\b\w+/,/#\w+/),keyword:W.concat(EQ),literal:L5},F=[z,G,Y],K={match:V0(/\./,s0(...B5)),relevance:0},P={className:"built_in",match:V0(/\b/,s0(...B5),/(?=\()/)},A=[K,P],L={match:/->/,relevance:0},y={className:"operator",relevance:0,variants:[{match:_1},{match:`\\.(\\.|${w5})+`}]},V=[L,y],S="([0-9]_*)+",M="([0-9a-fA-F]_*)+",N={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:"\\b0x(([0-9a-fA-F]_*)+)(\\.(([0-9a-fA-F]_*)+))?([pP][+-]?(([0-9]_*)+))?\\b"},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},k=(d="")=>({className:"subst",variants:[{match:V0(/\\/,d,/[0\\tnr"']/)},{match:V0(/\\/,d,/u\{[0-9a-fA-F]{1,8}\}/)}]}),v=(d="")=>({className:"subst",match:V0(/\\/,d,/[\t ]*(?:[\r\n]|\r\n)/)}),O=(d="")=>({className:"subst",label:"interpol",begin:V0(/\\/,d,/\(/),end:/\)/}),U=(d="")=>({begin:V0(d,/"""/),end:V0(/"""/,d),contains:[k(d),v(d),O(d)]}),B=(d="")=>({begin:V0(d,/"/),end:V0(/"/,d),contains:[k(d),O(d)]}),C={className:"string",variants:[U(),U("#"),U("##"),U("###"),B(),B("#"),B("##"),B("###")]},_=[Z.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[Z.BACKSLASH_ESCAPE]}],T={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:_},u=(d)=>{let P0=V0(d,/\//),s=V0(/\//,d);return{begin:P0,end:s,contains:[..._,{scope:"comment",begin:`#(?!.*${s})`,end:/$/}]}},E={scope:"regexp",variants:[u("###"),u("##"),u("#"),T]},t={match:V0(/`/,B9,/`/)},$0={className:"variable",match:/\$\d+/},g={className:"variable",match:`\\$${w8}+`},I=[t,$0,g],h={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:cQ,contains:[...V,N,C]}]}},m={scope:"keyword",match:V0(/@/,s0(...pQ),TZ(s0(/\(/,/\s+/)))},z0={scope:"meta",match:V0(/@/,B9)},X0=[h,m,z0],Y0={match:TZ(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:V0(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,w8,"+")},{className:"type",match:O8,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:V0(/\s+&\s+/,TZ(O8)),relevance:0}]},p={begin:/</,end:/>/,keywords:H,contains:[...X,...F,...X0,L,Y0]};Y0.contains.push(p);let Q0={match:V0(B9,/\s*:/),keywords:"_|0",relevance:0},j0={begin:/\(/,end:/\)/,relevance:0,keywords:H,contains:["self",Q0,...X,E,...F,...A,...V,N,C,...I,...X0,Y0]},r0={begin:/</,end:/>/,keywords:"repeat each",contains:[...X,Y0]},a0={begin:s0(TZ(V0(B9,/\s*:/)),TZ(V0(B9,/\s+/,B9,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:B9}]},O0={begin:/\(/,end:/\)/,keywords:H,contains:[a0,...X,...F,...V,N,C,...X0,Y0,j0],endsParent:!0,illegal:/["']/},h0={match:[/(func|macro)/,/\s+/,s0(t.match,B9,_1)],className:{1:"keyword",3:"title.function"},contains:[r0,O0,J],illegal:[/\[/,/%/]},G0={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[r0,O0,J],illegal:/\[|%/},b={match:[/operator/,/\s+/,_1],className:{1:"keyword",3:"title"}},x={begin:[/precedencegroup/,/\s+/,O8],className:{1:"keyword",3:"title"},contains:[Y0],keywords:[...uQ,...L5],end:/}/},r={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},l={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},F0={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,B9,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:H,contains:[r0,...F,{begin:/:/,end:/\{/,keywords:H,contains:[{scope:"title.class.inherited",match:O8},...F],relevance:0}]};for(let d of C.variants){let P0=d.contains.find((k0)=>k0.label==="interpol");P0.keywords=H;let s=[...F,...A,...V,N,C,...I];P0.contains=[...s,{begin:/\(/,end:/\)/,contains:["self",...s]}]}return{name:"Swift",keywords:H,contains:[...X,h0,G0,r,l,F0,b,x,{beginKeywords:"import",end:/$/,contains:[...X],relevance:0},E,...F,...A,...V,N,C,...I,...X0,Y0,j0]}}C5.exports=dQ});var M5=M0((Aq,y5)=>{function iQ(Z){let X={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},z={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},G={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},W={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[Z.BACKSLASH_ESCAPE,z]},q=Z.inherit(W,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),Y="[0-9]{4}(-[0-9][0-9]){0,2}",H="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",F="(\\.[0-9]*)?",K="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",P={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"},A={end:",",endsWithParent:!0,excludeEnd:!0,keywords:"true false yes no null",relevance:0},L={begin:/\{/,end:/\}/,contains:[A],illegal:"\\n",relevance:0},y={begin:"\\[",end:"\\]",contains:[A],illegal:"\\n",relevance:0},V=[X,{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+![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!<[\\w#;/?:@&=+$,.~*'()[\\]]+>"},{className:"type",begin:"![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"meta",begin:"&"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},Z.HASH_COMMENT_MODE,{beginKeywords:"true false yes no null",keywords:{literal:"true false yes no null"}},P,{className:"number",begin:Z.C_NUMBER_RE+"\\b",relevance:0},L,y,G,W],S=[...V];return S.pop(),S.push(q),A.contains=S,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:V}}y5.exports=iQ});var f5=M0((Cq,V5)=>{var _5=["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"],v5=["true","false","null","undefined","NaN","Infinity"],k5=["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"],T5=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],R5=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],I5=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],S5=[].concat(R5,k5,T5);function aQ(Z){let J=Z.regex,Q=(h,{after:m})=>{let z0="</"+h[0].slice(1);return h.input.indexOf(z0,m)!==-1},X="[A-Za-z$_][0-9A-Za-z$_]*",z={begin:"<>",end:"</>"},G=/<[A-Za-z0-9\\._:-]+\s*\/>/,W={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(h,m)=>{let z0=h[0].length+h.index,X0=h.input[z0];if(X0==="<"||X0===","){m.ignoreMatch();return}if(X0===">"){if(!Q(h,{after:z0}))m.ignoreMatch()}let Y0,p=h.input.substring(z0);if(Y0=p.match(/^\s*=/)){m.ignoreMatch();return}if(Y0=p.match(/^\s+extends\s+/)){if(Y0.index===0){m.ignoreMatch();return}}}},q={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:_5,literal:v5,built_in:S5,"variable.language":I5},Y="[0-9](_?[0-9])*",H="\\.([0-9](_?[0-9])*)",F="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",K={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\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},P={className:"subst",begin:"\\$\\{",end:"\\}",keywords:q,contains:[]},A={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,P],subLanguage:"xml"}},L={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,P],subLanguage:"css"}},y={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,P],subLanguage:"graphql"}},V={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,P]},M={className:"comment",variants:[Z.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:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},N=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,A,L,y,V,{match:/\$\d+/},K];P.contains=N.concat({begin:/\{/,end:/\}/,keywords:q,contains:["self"].concat(N)});let k=[].concat(M,P.contains),v=k.concat([{begin:/(\s*)\(/,end:/\)/,keywords:q,contains:["self"].concat(k)}]),O={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:v},U={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,J.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",J.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},B={relevance:0,match:J.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:{_:[...k5,...T5]}},C={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},_={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[O],illegal:/%/},T={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function u(h){return J.concat("(?!",h.join("|"),")")}let E={match:J.concat(/\b/,u([...R5,"super","import"].map((h)=>`${h}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\(/)),className:"title.function",relevance:0},t={begin:J.concat(/\./,J.lookahead(J.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},$0={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},O]},g="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",I={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,J.lookahead(g)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[O]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:q,exports:{PARAMS_CONTAINS:v,CLASS_REFERENCE:B},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),C,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,A,L,y,V,M,{match:/\$\d+/},K,B,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+J.lookahead(":"),relevance:0},I,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[M,Z.REGEXP_MODE,{className:"function",begin:g,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:z.begin,end:z.end},{match:G},{begin:W.begin,"on:begin":W.isTrulyOpeningTag,end:W.end}],subLanguage:"xml",contains:[{begin:W.begin,end:W.end,skip:!0,contains:["self"]}]}]},_,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[O,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},t,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[O]},E,T,U,$0,{match:/\$[(.]/}]}}function lQ(Z){let J=Z.regex,Q=aQ(Z),X="[A-Za-z$_][0-9A-Za-z$_]*",z=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],G={begin:[/namespace/,/\s+/,Z.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},W={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:z},contains:[Q.exports.CLASS_REFERENCE]},q={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},Y=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],H={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:_5.concat(Y),literal:v5,built_in:S5.concat(z),"variable.language":I5},F={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},K=(y,V,S)=>{let M=y.contains.findIndex((N)=>N.label===V);if(M===-1)throw Error("can not find mode to replace");y.contains.splice(M,1,S)};Object.assign(Q.keywords,H),Q.exports.PARAMS_CONTAINS.push(F);let P=Q.contains.find((y)=>y.scope==="attr"),A=Object.assign({},P,{match:J.concat("[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\?:/))});Q.exports.PARAMS_CONTAINS.push([Q.exports.CLASS_REFERENCE,P,A]),Q.contains=Q.contains.concat([F,G,W,A]),K(Q,"shebang",Z.SHEBANG()),K(Q,"use_strict",q);let L=Q.contains.find((y)=>y.label==="func.def");return L.relevance=0,Object.assign(Q,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),Q}V5.exports=lQ});var g5=M0((Nq,b5)=>{function nQ(Z){let J=Z.regex,Q={className:"string",begin:/"(""|[^/n])"C\b/},X={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},z=/\d{1,2}\/\d{1,2}\/\d{4}/,G=/\d{4}-\d{1,2}-\d{1,2}/,W=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,q=/\d{1,2}(:\d{1,2}){1,2}/,Y={className:"literal",variants:[{begin:J.concat(/# */,J.either(G,z),/ *#/)},{begin:J.concat(/# */,q,/ *#/)},{begin:J.concat(/# */,W,/ *#/)},{begin:J.concat(/# */,J.either(G,z),/ +/,J.either(W,q),/ *#/)}]},H={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},F={className:"label",begin:/^\w+:/},K=Z.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),P=Z.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[Q,X,Y,H,F,K,P,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[P]}]}}b5.exports=nQ});var x5=M0((yq,j5)=>{function rQ(Z){Z.regex;let J=Z.COMMENT(/\(;/,/;\)/);J.contains.push("self");let Q=Z.COMMENT(/;;/,/$/),X=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],z={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},G={className:"variable",begin:/\$[\w_]+/},W={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},q={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},Y={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},H={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:X},contains:[Q,J,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},G,W,z,Z.QUOTE_STRING_MODE,Y,H,q]}}j5.exports=rQ});var h5=M0((Mq,D5)=>{var C0=tJ();C0.registerLanguage("xml",eJ());C0.registerLanguage("bash",J4());C0.registerLanguage("c",Q4());C0.registerLanguage("cpp",z4());C0.registerLanguage("csharp",G4());C0.registerLanguage("css",Y4());C0.registerLanguage("markdown",K4());C0.registerLanguage("diff",U4());C0.registerLanguage("ruby",B4());C0.registerLanguage("go",O4());C0.registerLanguage("graphql",A4());C0.registerLanguage("ini",N4());C0.registerLanguage("java",v4());C0.registerLanguage("javascript",S4());C0.registerLanguage("json",f4());C0.registerLanguage("kotlin",g4());C0.registerLanguage("less",h4());C0.registerLanguage("lua",u4());C0.registerLanguage("makefile",p4());C0.registerLanguage("perl",d4());C0.registerLanguage("objectivec",a4());C0.registerLanguage("php",n4());C0.registerLanguage("php-template",o4());C0.registerLanguage("plaintext",s4());C0.registerLanguage("python",Z5());C0.registerLanguage("python-repl",$5());C0.registerLanguage("r",X5());C0.registerLanguage("rust",W5());C0.registerLanguage("scss",q5());C0.registerLanguage("shell",H5());C0.registerLanguage("sql",F5());C0.registerLanguage("swift",N5());C0.registerLanguage("yaml",M5());C0.registerLanguage("typescript",f5());C0.registerLanguage("vbnet",g5());C0.registerLanguage("wasm",x5());C0.HighlightJS=C0;C0.default=C0;D5.exports=C0});var tZ,S0,O6,k3,v9,U6,w6,A6,g8,iZ,LZ,C6,h8,j8,x8,T3,nZ={},rZ=[],R3=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,sZ=Array.isArray;function O9(Z,J){for(var Q in J)Z[Q]=J[Q];return Z}function m8(Z){Z&&Z.parentNode&&Z.parentNode.removeChild(Z)}function I3(Z,J,Q){var X,z,G,W={};for(G in J)G=="key"?X=J[G]:G=="ref"?z=J[G]:W[G]=J[G];if(arguments.length>2&&(W.children=arguments.length>3?tZ.call(arguments,2):Q),typeof Z=="function"&&Z.defaultProps!=null)for(G in Z.defaultProps)W[G]===void 0&&(W[G]=Z.defaultProps[G]);return aZ(Z,W,X,z,null)}function aZ(Z,J,Q,X,z){var G={type:Z,props:J,key:Q,ref:X,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:z==null?++O6:z,__i:-1,__u:0};return z==null&&S0.vnode!=null&&S0.vnode(G),G}function n(Z){return Z.children}function lZ(Z,J){this.props=Z,this.context=J}function r9(Z,J){if(J==null)return Z.__?r9(Z.__,Z.__i+1):null;for(var Q;J<Z.__k.length;J++)if((Q=Z.__k[J])!=null&&Q.__e!=null)return Q.__e;return typeof Z.type=="function"?r9(Z):null}function S3(Z){if(Z.__P&&Z.__d){var J=Z.__v,Q=J.__e,X=[],z=[],G=O9({},J);G.__v=J.__v+1,S0.vnode&&S0.vnode(G),u8(Z.__P,G,J,Z.__n,Z.__P.namespaceURI,32&J.__u?[Q]:null,X,Q==null?r9(J):Q,!!(32&J.__u),z),G.__v=J.__v,G.__.__k[G.__i]=G,_6(X,G,z),J.__e=J.__=null,G.__e!=Q&&N6(G)}}function N6(Z){if((Z=Z.__)!=null&&Z.__c!=null)return Z.__e=Z.__c.base=null,Z.__k.some(function(J){if(J!=null&&J.__e!=null)return Z.__e=Z.__c.base=J.__e}),N6(Z)}function L6(Z){(!Z.__d&&(Z.__d=!0)&&v9.push(Z)&&!oZ.__r++||U6!=S0.debounceRendering)&&((U6=S0.debounceRendering)||w6)(oZ)}function oZ(){try{for(var Z,J=1;v9.length;)v9.length>J&&v9.sort(A6),Z=v9.shift(),J=v9.length,S3(Z)}finally{v9.length=oZ.__r=0}}function y6(Z,J,Q,X,z,G,W,q,Y,H,F){var K,P,A,L,y,V,S,M=X&&X.__k||rZ,N=J.length;for(Y=V3(Q,J,M,Y,N),K=0;K<N;K++)(A=Q.__k[K])!=null&&(P=A.__i!=-1&&M[A.__i]||nZ,A.__i=K,V=u8(Z,A,P,z,G,W,q,Y,H,F),L=A.__e,A.ref&&P.ref!=A.ref&&(P.ref&&E8(P.ref,null,A),F.push(A.ref,A.__c||L,A)),y==null&&L!=null&&(y=L),(S=!!(4&A.__u))||P.__k===A.__k?(Y=M6(A,Y,Z,S),S&&P.__e&&(P.__e=null)):typeof A.type=="function"&&V!==void 0?Y=V:L&&(Y=L.nextSibling),A.__u&=-7);return Q.__e=y,Y}function V3(Z,J,Q,X,z){var G,W,q,Y,H,F=Q.length,K=F,P=0;for(Z.__k=Array(z),G=0;G<z;G++)(W=J[G])!=null&&typeof W!="boolean"&&typeof W!="function"?(typeof W=="string"||typeof W=="number"||typeof W=="bigint"||W.constructor==String?W=Z.__k[G]=aZ(null,W,null,null,null):sZ(W)?W=Z.__k[G]=aZ(n,{children:W},null,null,null):W.constructor===void 0&&W.__b>0?W=Z.__k[G]=aZ(W.type,W.props,W.key,W.ref?W.ref:null,W.__v):Z.__k[G]=W,Y=G+P,W.__=Z,W.__b=Z.__b+1,q=null,(H=W.__i=f3(W,Q,Y,K))!=-1&&(K--,(q=Q[H])&&(q.__u|=2)),q==null||q.__v==null?(H==-1&&(z>F?P--:z<F&&P++),typeof W.type!="function"&&(W.__u|=4)):H!=Y&&(H==Y-1?P--:H==Y+1?P++:(H>Y?P--:P++,W.__u|=4))):Z.__k[G]=null;if(K)for(G=0;G<F;G++)(q=Q[G])!=null&&(2&q.__u)==0&&(q.__e==X&&(X=r9(q)),k6(q,q));return X}function M6(Z,J,Q,X){var z,G;if(typeof Z.type=="function"){for(z=Z.__k,G=0;z&&G<z.length;G++)z[G]&&(z[G].__=Z,J=M6(z[G],J,Q,X));return J}Z.__e!=J&&(X&&(J&&Z.type&&!J.parentNode&&(J=r9(Z)),Q.insertBefore(Z.__e,J||null)),J=Z.__e);do J=J&&J.nextSibling;while(J!=null&&J.nodeType==8);return J}function f3(Z,J,Q,X){var z,G,W,q=Z.key,Y=Z.type,H=J[Q],F=H!=null&&(2&H.__u)==0;if(H===null&&q==null||F&&q==H.key&&Y==H.type)return Q;if(X>(F?1:0)){for(z=Q-1,G=Q+1;z>=0||G<J.length;)if((H=J[W=z>=0?z--:G++])!=null&&(2&H.__u)==0&&q==H.key&&Y==H.type)return W}return-1}function B6(Z,J,Q){J[0]=="-"?Z.setProperty(J,Q==null?"":Q):Z[J]=Q==null?"":typeof Q!="number"||R3.test(J)?Q:Q+"px"}function dZ(Z,J,Q,X,z){var G,W;Z:if(J=="style")if(typeof Q=="string")Z.style.cssText=Q;else{if(typeof X=="string"&&(Z.style.cssText=X=""),X)for(J in X)Q&&J in Q||B6(Z.style,J,"");if(Q)for(J in Q)X&&Q[J]==X[J]||B6(Z.style,J,Q[J])}else if(J[0]=="o"&&J[1]=="n")G=J!=(J=J.replace(C6,"$1")),W=J.toLowerCase(),J=W in Z||J=="onFocusOut"||J=="onFocusIn"?W.slice(2):J.slice(2),Z.l||(Z.l={}),Z.l[J+G]=Q,Q?X?Q[LZ]=X[LZ]:(Q[LZ]=h8,Z.addEventListener(J,G?x8:j8,G)):Z.removeEventListener(J,G?x8:j8,G);else{if(z=="http://www.w3.org/2000/svg")J=J.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(J!="width"&&J!="height"&&J!="href"&&J!="list"&&J!="form"&&J!="tabIndex"&&J!="download"&&J!="rowSpan"&&J!="colSpan"&&J!="role"&&J!="popover"&&J in Z)try{Z[J]=Q==null?"":Q;break Z}catch(q){}typeof Q=="function"||(Q==null||Q===!1&&J[4]!="-"?Z.removeAttribute(J):Z.setAttribute(J,J=="popover"&&Q==1?"":Q))}}function P6(Z){return function(J){if(this.l){var Q=this.l[J.type+Z];if(J[iZ]==null)J[iZ]=h8++;else if(J[iZ]<Q[LZ])return;return Q(S0.event?S0.event(J):J)}}}function u8(Z,J,Q,X,z,G,W,q,Y,H){var F,K,P,A,L,y,V,S,M,N,k,v,O,U,B,C=J.type;if(J.constructor!==void 0)return null;128&Q.__u&&(Y=!!(32&Q.__u),G=[q=J.__e=Q.__e]),(F=S0.__b)&&F(J);Z:if(typeof C=="function")try{if(S=J.props,M=C.prototype&&C.prototype.render,N=(F=C.contextType)&&X[F.__c],k=F?N?N.props.value:F.__:X,Q.__c?V=(K=J.__c=Q.__c).__=K.__E:(M?J.__c=K=new C(S,k):(J.__c=K=new lZ(S,k),K.constructor=C,K.render=g3),N&&N.sub(K),K.state||(K.state={}),K.__n=X,P=K.__d=!0,K.__h=[],K._sb=[]),M&&K.__s==null&&(K.__s=K.state),M&&C.getDerivedStateFromProps!=null&&(K.__s==K.state&&(K.__s=O9({},K.__s)),O9(K.__s,C.getDerivedStateFromProps(S,K.__s))),A=K.props,L=K.state,K.__v=J,P)M&&C.getDerivedStateFromProps==null&&K.componentWillMount!=null&&K.componentWillMount(),M&&K.componentDidMount!=null&&K.__h.push(K.componentDidMount);else{if(M&&C.getDerivedStateFromProps==null&&S!==A&&K.componentWillReceiveProps!=null&&K.componentWillReceiveProps(S,k),J.__v==Q.__v||!K.__e&&K.shouldComponentUpdate!=null&&K.shouldComponentUpdate(S,K.__s,k)===!1){J.__v!=Q.__v&&(K.props=S,K.state=K.__s,K.__d=!1),J.__e=Q.__e,J.__k=Q.__k,J.__k.some(function(_){_&&(_.__=J)}),rZ.push.apply(K.__h,K._sb),K._sb=[],K.__h.length&&W.push(K);break Z}K.componentWillUpdate!=null&&K.componentWillUpdate(S,K.__s,k),M&&K.componentDidUpdate!=null&&K.__h.push(function(){K.componentDidUpdate(A,L,y)})}if(K.context=k,K.props=S,K.__P=Z,K.__e=!1,v=S0.__r,O=0,M)K.state=K.__s,K.__d=!1,v&&v(J),F=K.render(K.props,K.state,K.context),rZ.push.apply(K.__h,K._sb),K._sb=[];else do K.__d=!1,v&&v(J),F=K.render(K.props,K.state,K.context),K.state=K.__s;while(K.__d&&++O<25);K.state=K.__s,K.getChildContext!=null&&(X=O9(O9({},X),K.getChildContext())),M&&!P&&K.getSnapshotBeforeUpdate!=null&&(y=K.getSnapshotBeforeUpdate(A,L)),U=F!=null&&F.type===n&&F.key==null?v6(F.props.children):F,q=y6(Z,sZ(U)?U:[U],J,Q,X,z,G,W,q,Y,H),K.base=J.__e,J.__u&=-161,K.__h.length&&W.push(K),V&&(K.__E=K.__=null)}catch(_){if(J.__v=null,Y||G!=null)if(_.then){for(J.__u|=Y?160:128;q&&q.nodeType==8&&q.nextSibling;)q=q.nextSibling;G[G.indexOf(q)]=null,J.__e=q}else{for(B=G.length;B--;)m8(G[B]);D8(J)}else J.__e=Q.__e,J.__k=Q.__k,_.then||D8(J);S0.__e(_,J,Q)}else G==null&&J.__v==Q.__v?(J.__k=Q.__k,J.__e=Q.__e):q=J.__e=b3(Q.__e,J,Q,X,z,G,W,Y,H);return(F=S0.diffed)&&F(J),128&J.__u?void 0:q}function D8(Z){Z&&(Z.__c&&(Z.__c.__e=!0),Z.__k&&Z.__k.some(D8))}function _6(Z,J,Q){for(var X=0;X<Q.length;X++)E8(Q[X],Q[++X],Q[++X]);S0.__c&&S0.__c(J,Z),Z.some(function(z){try{Z=z.__h,z.__h=[],Z.some(function(G){G.call(z)})}catch(G){S0.__e(G,z.__v)}})}function v6(Z){return typeof Z!="object"||Z==null||Z.__b>0?Z:sZ(Z)?Z.map(v6):Z.constructor!==void 0?null:O9({},Z)}function b3(Z,J,Q,X,z,G,W,q,Y){var H,F,K,P,A,L,y,V=Q.props||nZ,S=J.props,M=J.type;if(M=="svg"?z="http://www.w3.org/2000/svg":M=="math"?z="http://www.w3.org/1998/Math/MathML":z||(z="http://www.w3.org/1999/xhtml"),G!=null){for(H=0;H<G.length;H++)if((A=G[H])&&"setAttribute"in A==!!M&&(M?A.localName==M:A.nodeType==3)){Z=A,G[H]=null;break}}if(Z==null){if(M==null)return document.createTextNode(S);Z=document.createElementNS(z,M,S.is&&S),q&&(S0.__m&&S0.__m(J,G),q=!1),G=null}if(M==null)V===S||q&&Z.data==S||(Z.data=S);else{if(G=M=="textarea"&&S.defaultValue!=null?null:G&&tZ.call(Z.childNodes),!q&&G!=null)for(V={},H=0;H<Z.attributes.length;H++)V[(A=Z.attributes[H]).name]=A.value;for(H in V)A=V[H],H=="dangerouslySetInnerHTML"?K=A:H=="children"||(H in S)||H=="value"&&("defaultValue"in S)||H=="checked"&&("defaultChecked"in S)||dZ(Z,H,null,A,z);for(H in S)A=S[H],H=="children"?P=A:H=="dangerouslySetInnerHTML"?F=A:H=="value"?L=A:H=="checked"?y=A:q&&typeof A!="function"||V[H]===A||dZ(Z,H,A,V[H],z);if(F)q||K&&(F.__html==K.__html||F.__html==Z.innerHTML)||(Z.innerHTML=F.__html),J.__k=[];else if(K&&(Z.innerHTML=""),y6(J.type=="template"?Z.content:Z,sZ(P)?P:[P],J,Q,X,M=="foreignObject"?"http://www.w3.org/1999/xhtml":z,G,W,G?G[0]:Q.__k&&r9(Q,0),q,Y),G!=null)for(H=G.length;H--;)m8(G[H]);q&&M!="textarea"||(H="value",M=="progress"&&L==null?Z.removeAttribute("value"):L!=null&&(L!==Z[H]||M=="progress"&&!L||M=="option"&&L!=V[H])&&dZ(Z,H,L,V[H],z),H="checked",y!=null&&y!=Z[H]&&dZ(Z,H,y,V[H],z))}return Z}function E8(Z,J,Q){try{if(typeof Z=="function"){var X=typeof Z.__u=="function";X&&Z.__u(),X&&J==null||(Z.__u=Z(J))}else Z.current=J}catch(z){S0.__e(z,Q)}}function k6(Z,J,Q){var X,z;if(S0.unmount&&S0.unmount(Z),(X=Z.ref)&&(X.current&&X.current!=Z.__e||E8(X,null,J)),(X=Z.__c)!=null){if(X.componentWillUnmount)try{X.componentWillUnmount()}catch(G){S0.__e(G,J)}X.base=X.__P=null}if(X=Z.__k)for(z=0;z<X.length;z++)X[z]&&k6(X[z],J,Q||typeof Z.type!="function");Q||m8(Z.__e),Z.__c=Z.__=Z.__e=void 0}function g3(Z,J,Q){return this.constructor(Z,Q)}function p8(Z,J,Q){var X,z,G,W;J==document&&(J=document.documentElement),S0.__&&S0.__(Z,J),z=(X=typeof Q=="function")?null:Q&&Q.__k||J.__k,G=[],W=[],u8(J,Z=(!X&&Q||J).__k=I3(n,null,[Z]),z||nZ,nZ,J.namespaceURI,!X&&Q?[Q]:z?null:J.firstChild?tZ.call(J.childNodes):null,G,!X&&Q?Q:z?z.__e:J.firstChild,X,W),_6(G,Z,W)}tZ=rZ.slice,S0={__e:function(Z,J,Q,X){for(var z,G,W;J=J.__;)if((z=J.__c)&&!z.__)try{if((G=z.constructor)&&G.getDerivedStateFromError!=null&&(z.setState(G.getDerivedStateFromError(Z)),W=z.__d),z.componentDidCatch!=null&&(z.componentDidCatch(Z,X||{}),W=z.__d),W)return z.__E=z}catch(q){Z=q}throw Z}},O6=0,k3=function(Z){return Z!=null&&Z.constructor===void 0},lZ.prototype.setState=function(Z,J){var Q;Q=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=O9({},this.state),typeof Z=="function"&&(Z=Z(O9({},Q),this.props)),Z&&O9(Q,Z),Z!=null&&this.__v&&(J&&this._sb.push(J),L6(this))},lZ.prototype.forceUpdate=function(Z){this.__v&&(this.__e=!0,Z&&this.__h.push(Z),L6(this))},lZ.prototype.render=n,v9=[],w6=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,A6=function(Z,J){return Z.__v.__b-J.__v.__b},oZ.__r=0,g8=Math.random().toString(8),iZ="__d"+g8,LZ="__a"+g8,C6=/(PointerCapture)$|Capture$/i,h8=0,j8=P6(!1),x8=P6(!0),T3=0;var o9,m0,c8,T6,BZ=0,j6=[],E0=S0,R6=E0.__b,I6=E0.__r,S6=E0.diffed,V6=E0.__c,f6=E0.unmount,b6=E0.__;function Z8(Z,J){E0.__h&&E0.__h(m0,Z,BZ||J),BZ=0;var Q=m0.__H||(m0.__H={__:[],__h:[]});return Z>=Q.__.length&&Q.__.push({}),Q.__[Z]}function f(Z){return BZ=1,j3(D6,Z)}function j3(Z,J,Q){var X=Z8(o9++,2);if(X.t=Z,!X.__c&&(X.__=[Q?Q(J):D6(void 0,J),function(q){var Y=X.__N?X.__N[0]:X.__[0],H=X.t(Y,q);Y!==H&&(X.__N=[H,X.__[1]],X.__c.setState({}))}],X.__c=m0,!m0.__f)){var z=function(q,Y,H){if(!X.__c.__H)return!0;var F=X.__c.__H.__.filter(function(P){return P.__c});if(F.every(function(P){return!P.__N}))return!G||G.call(this,q,Y,H);var K=X.__c.props!==q;return F.some(function(P){if(P.__N){var A=P.__[0];P.__=P.__N,P.__N=void 0,A!==P.__[0]&&(K=!0)}}),G&&G.call(this,q,Y,H)||K};m0.__f=!0;var{shouldComponentUpdate:G,componentWillUpdate:W}=m0;m0.componentWillUpdate=function(q,Y,H){if(this.__e){var F=G;G=void 0,z(q,Y,H),G=F}W&&W.call(this,q,Y,H)},m0.shouldComponentUpdate=z}return X.__N||X.__}function e(Z,J){var Q=Z8(o9++,3);!E0.__s&&i8(Q.__H,J)&&(Q.__=Z,Q.u=J,m0.__H.__h.push(Q))}function x6(Z,J){var Q=Z8(o9++,4);!E0.__s&&i8(Q.__H,J)&&(Q.__=Z,Q.u=J,m0.__h.push(Q))}function L0(Z){return BZ=5,PZ(function(){return{current:Z}},[])}function PZ(Z,J){var Q=Z8(o9++,7);return i8(Q.__H,J)&&(Q.__=Z(),Q.__H=J,Q.__h=Z),Q.__}function g9(Z,J){return BZ=8,PZ(function(){return Z},J)}function x3(){for(var Z;Z=j6.shift();){var J=Z.__H;if(Z.__P&&J)try{J.__h.some(eZ),J.__h.some(d8),J.__h=[]}catch(Q){J.__h=[],E0.__e(Q,Z.__v)}}}E0.__b=function(Z){m0=null,R6&&R6(Z)},E0.__=function(Z,J){Z&&J.__k&&J.__k.__m&&(Z.__m=J.__k.__m),b6&&b6(Z,J)},E0.__r=function(Z){I6&&I6(Z),o9=0;var J=(m0=Z.__c).__H;J&&(c8===m0?(J.__h=[],m0.__h=[],J.__.some(function(Q){Q.__N&&(Q.__=Q.__N),Q.u=Q.__N=void 0})):(J.__h.some(eZ),J.__h.some(d8),J.__h=[],o9=0)),c8=m0},E0.diffed=function(Z){S6&&S6(Z);var J=Z.__c;J&&J.__H&&(J.__H.__h.length&&(j6.push(J)!==1&&T6===E0.requestAnimationFrame||((T6=E0.requestAnimationFrame)||D3)(x3)),J.__H.__.some(function(Q){Q.u&&(Q.__H=Q.u),Q.u=void 0})),c8=m0=null},E0.__c=function(Z,J){J.some(function(Q){try{Q.__h.some(eZ),Q.__h=Q.__h.filter(function(X){return!X.__||d8(X)})}catch(X){J.some(function(z){z.__h&&(z.__h=[])}),J=[],E0.__e(X,Q.__v)}}),V6&&V6(Z,J)},E0.unmount=function(Z){f6&&f6(Z);var J,Q=Z.__c;Q&&Q.__H&&(Q.__H.__.some(function(X){try{eZ(X)}catch(z){J=z}}),Q.__H=void 0,J&&E0.__e(J,Q.__v))};var g6=typeof requestAnimationFrame=="function";function D3(Z){var J,Q=function(){clearTimeout(X),g6&&cancelAnimationFrame(J),setTimeout(Z)},X=setTimeout(Q,35);g6&&(J=requestAnimationFrame(Q))}function eZ(Z){var J=m0,Q=Z.__c;typeof Q=="function"&&(Z.__c=void 0,Q()),m0=J}function d8(Z){var J=m0;Z.__c=Z.__(),m0=J}function i8(Z,J){return!Z||Z.length!==J.length||J.some(function(Q,X){return Q!==Z[X]})}function D6(Z,J){return typeof J=="function"?J(Z):J}class j9 extends Error{code;constructor(Z,J){super(Z);this.code=J;this.name="BusError"}}class h6{ch=null;worker=null;started=!1;leader=!1;nextLocal=0;localPending=new Map;remotePending=new Map;listeners=new Set;start(){if(this.started)return;this.started=!0,this.ch=new BroadcastChannel("mh-replica-bus"),this.ch.onmessage=(J)=>this.onChannel(J.data);let Z=navigator.locks;if(Z)Z.request("mh-replica-leader",()=>{return this.becomeLeader(),new Promise(()=>{})}).catch(()=>{});else this.becomeLeader()}onEvent(Z){return this.listeners.add(Z),()=>this.listeners.delete(Z)}call(Z,...J){if(!this.started)this.start();if(this.leader)return this.workerCall(Z,J);return this.remoteCall(Z,J)}becomeLeader(){if(this.leader)return;this.leader=!0,this.spawnWorker();for(let[Z,J]of[...this.remotePending])this.remotePending.delete(Z),clearTimeout(J.timer),this.workerCall(J.op,J.args).then(J.resolve,J.reject)}spawnWorker(){if(this.worker)return;this.worker=new Worker("/db-worker.js",{type:"module"}),this.worker.onmessage=(Z)=>{let J=Z.data;if("id"in J){let Q=this.localPending.get(J.id);if(!Q)return;if(this.localPending.delete(J.id),J.ok)Q.resolve(J.result);else Q.reject(new j9(J.error.message,J.error.code));return}this.emit(J),this.ch?.postMessage({kind:"event",event:J})},this.worker.onerror=()=>{let Z={event:"status",status:{state:"error",paired:!1,node:null,error:"worker crashed"}};this.emit(Z),this.ch?.postMessage({kind:"event",event:Z})}}workerCall(Z,J){if(!this.worker)this.spawnWorker();let Q=++this.nextLocal;return new Promise((X,z)=>{this.localPending.set(Q,{resolve:X,reject:z}),this.worker.postMessage({id:Q,op:Z,args:J})})}remoteCall(Z,J){let Q=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;return new Promise((X,z)=>{let G=setTimeout(()=>{if(this.remotePending.delete(Q),this.leader){this.workerCall(Z,J).then(X,z);return}z(new j9("replica leader unavailable","network"))},1e4);this.remotePending.set(Q,{resolve:X,reject:z,timer:G,op:Z,args:J}),this.ch?.postMessage({kind:"req",id:Q,op:Z,args:J})})}onChannel(Z){if(Z.kind==="req"){if(!this.leader)return;this.workerCall(Z.op,Z.args).then((J)=>this.ch?.postMessage({kind:"res",id:Z.id,ok:!0,result:J}),(J)=>this.ch?.postMessage({kind:"res",id:Z.id,ok:!1,error:{message:J.message,code:J.code}}));return}if(Z.kind==="res"){let J=this.remotePending.get(Z.id);if(!J)return;if(this.remotePending.delete(Z.id),clearTimeout(J.timer),Z.ok)J.resolve(Z.result);else J.reject(new j9(Z.error?.message??"replica error",Z.error?.code));return}if(Z.kind==="event"&&!this.leader)this.emit(Z.event)}emit(Z){for(let J of this.listeners)J(Z)}stopWorker(){this.worker?.terminate(),this.worker=null,this.localPending.forEach((Z)=>Z.reject(new j9("replica stopped",void 0))),this.localPending.clear()}}function J8(){let Z=globalThis;return Z.__mhReplicaBus??=new h6}function h3(Z,J){if(Z===null)return"unknown";if(Z.status>=500)return"unknown";if(Z.ok)return J?.ok===!0?"server":"none";return"none"}async function m6(){let Z=null,J=null;try{Z=await fetch("/health",{cache:"no-store"}),J=Z.ok?await Z.json().catch(()=>null):null}catch{Z=null}return h3(Z,J)}var h9="mh-synced",wZ="mh_replica",OZ="mh_replica_hydrated",p6="mh_origin_mode";class A9 extends Error{code;constructor(Z,J){super(Z);this.code=J;this.name="ReplicaError"}}var C9=!1,w9={state:"booting",paired:!1,node:null},$8=new Set;function AZ(){return w9}function N9(Z){return $8.add(Z),()=>$8.delete(Z)}function a8(Z){try{return localStorage.getItem(Z)==="1"}catch{return!1}}function x9(Z,J){try{J?localStorage.setItem(Z,"1"):localStorage.removeItem(Z)}catch{}}function Q9(){return a8(wZ)}function o0(){return Q9()&&a8(OZ)&&C9&&w9.state!=="error"}var t9=(()=>{try{let Z=localStorage.getItem(p6);return Z==="server"||Z==="none"?Z:null}catch{return null}})();function q9(){return t9==="none"}function m3(){let Z=q9();return{dataHome:Z?"local":"server",hold:Z||Q9()?"replica":"window"}}async function l8(){if(t9)return t9;let Z=await m6();if(Z==="unknown")return"server";t9=Z;try{localStorage.setItem(p6,t9)}catch{}return t9}function u6(Z){if(Z.event==="status"){if(w9=Z.status,w9.lastSync?.ok&&!a8(OZ))x9(OZ,!0),navigator.storage?.persist?.().catch(()=>{});for(let J of $8)J(w9);return}if(Z.event==="synced"){if(document.dispatchEvent(new CustomEvent(h9,{detail:Z})),Z.datasets.some((J)=>J==="databases"||J==="documents"))document.dispatchEvent(new CustomEvent(Y9))}}function CZ(){if(C9||typeof Worker>"u")return;C9=!0;let Z=J8();Z.onEvent(u6),Z.start(),Z.call("status").then((J)=>u6({event:"status",status:J})).catch(()=>{}),u3(),window.addEventListener("online",D9),document.addEventListener("visibilitychange",D9)}function D0(Z,...J){if(!C9)return Promise.reject(new A9("replica not running",void 0));return J8().call(Z,...J).catch((Q)=>{throw Q instanceof j9?new A9(Q.message,Q.code):Q})}function D9(){if(C9)D0("sync").catch(()=>{})}function c6(){if(!C9)return Promise.reject(new A9("replica not running",void 0));return D0("sync")}function n8(Z=30000){if(w9.state==="ready")return Promise.resolve();return new Promise((J,Q)=>{let X=setTimeout(()=>{z(),Q(new A9("本地副本启动超时",void 0))},Z),z=N9((G)=>{if(G.state==="ready")clearTimeout(X),z(),J();else if(G.state==="error")clearTimeout(X),z(),Q(new A9(G.error??"本地副本启动失败",void 0))})})}async function d6(){if(CZ(),await n8(),!w9.paired){let Z=await s9("/api/pair/new",{method:"POST"});if(!Z.ok)throw new A9(`无法获取配对码: ${Z.status}`,void 0);let{code:J}=await Z.json();await D0("pair",J)}x9(wZ,!0),Q8(),D9()}async function i6(Z,J){CZ(),await n8();let Q=await D0("addStorageReplica",Z,J);return x9(wZ,!0),Q8(),D9(),Q}async function a6(){x9(wZ,!1),x9(OZ,!1);try{if(C9)await D0("unpair")}catch{}await r8()}async function l6(){x9(wZ,!1),x9(OZ,!1);try{if(C9)await D0("unpair").catch(()=>{}),await D0("reset")}finally{J8().stopWorker(),r8(),C9=!1,w9={state:"booting",paired:!1,node:null};for(let Z of $8)Z(w9)}}function n6(){if(Q9())CZ(),n8().then(()=>D9()).catch(()=>{})}function u3(){let Z=globalThis;if(Z.__mhSwBridge||!("serviceWorker"in navigator))return;Z.__mhSwBridge=!0,navigator.serviceWorker.addEventListener("message",(J)=>{let Q=J.data,X=J.ports?.[0];if(!Q||Q.kind!=="mh-rpc"||!X||!Q.op)return;if(!o0()){X.postMessage({ok:!1,error:{message:"replica unavailable",code:"unavailable"}});return}D0(Q.op,...Q.args??[]).then((z)=>X.postMessage({ok:!0,result:z}),(z)=>X.postMessage({ok:!1,error:{message:z.message,code:z.code}}))})}var E6=!1;async function r8(){try{if("serviceWorker"in navigator){let Z=await navigator.serviceWorker.getRegistrations();await Promise.all(Z.map((J)=>J.unregister().catch(()=>!1)))}}catch{}try{if("caches"in globalThis){for(let Z of await caches.keys())if(Z.startsWith("mh-shell-")||Z==="mh-api-v1"||Z==="mh-blob-v1")await caches.delete(Z)}}catch{}}function Q8(){if(typeof navigator>"u"||!("serviceWorker"in navigator))return;if(typeof window>"u"||!window.isSecureContext)return;if(window.metahubDesktop||m3().hold!=="replica"){r8();return}if(navigator.serviceWorker.register("/sw.js").catch((Q)=>{console.warn("[webui] service worker registration failed —",Q)}),E6)return;E6=!0;let Z=navigator.serviceWorker.controller!=null,J=!1;navigator.serviceWorker.addEventListener("controllerchange",()=>{if(!Z){Z=!0;return}if(J)return;J=!0,location.reload()})}var E3={invalid_input:400,not_found:404,ambiguous:400,stale:409,conflict:409,auth:401,network:502};function p3(Z){return/^(create|update|delete|move|duplicate|revert)(Database|Document)/.test(Z)}async function N0(Z,...J){try{let Q=await D0(Z,...J);if(p3(Z))document.dispatchEvent(new CustomEvent(Y9));return Q}catch(Q){if(Q instanceof A9)throw new k9(Q.message,Q.code,Q.code?E3[Q.code]??400:0);throw Q}}var o8={listDatabases:()=>N0("listDatabases"),createDatabase:(Z)=>N0("createDatabase",Z),updateDatabase:(Z,J)=>N0("updateDatabase",Z,J),duplicateDatabase:(Z,J)=>N0("duplicateDatabase",Z,J),deleteDatabase:(Z)=>N0("deleteDatabase",Z),databaseActivity:(Z,J)=>N0("listDatabaseActivity",Z,J),listProperties:(Z)=>N0("listProperties",Z),createProperty:(Z)=>{let{db:J,...Q}=Z;return N0("addProperty",J,Q)},updateProperty:(Z,J)=>N0("updateProperty",Z,J),setColumnWidth:(Z,J)=>N0("setPropertyWidth",Z,J),deleteProperty:(Z)=>N0("removeProperty",Z),listRecords:(Z,J={})=>N0("listRecords",Z,J),createRecord:(Z,J)=>N0("createRecord",Z,J),getRecord:(Z)=>N0("getRecord",Z),updateRecord:(Z,J)=>N0("updateRecord",Z,J),moveRecord:(Z,J,Q)=>N0("moveRecord",Z,J,Q),deleteRecord:(Z)=>N0("deleteRecord",Z),recordHistory:(Z)=>N0("listRecordRevisions",Z),recordAt:(Z,J)=>N0("recordAtVersion",Z,J),revertRecord:(Z,J)=>N0("revertRecord",Z,J),listDocuments:(Z)=>N0("listDocuments",Z?{database_id:Z}:void 0),listDocumentsByParent:(Z)=>N0("listDocuments",{parent_id:Z}),createDocument:(Z)=>N0("createDocument",Z),getDocument:(Z)=>N0("getDocument",Z),updateDocument:(Z,J)=>{let{if_match:Q,...X}=J;return N0("updateDocument",Z,X,Q)},moveDocument:(Z,J,Q)=>N0("moveDocument",Z,J,Q),duplicateDocument:(Z,J)=>N0("duplicateDocument",Z,J),deleteDocument:(Z)=>N0("deleteDocument",Z),documentHistory:(Z)=>N0("listDocumentRevisions",Z),documentAt:(Z,J)=>N0("documentAtVersion",Z,J),revertDocument:(Z,J)=>N0("revertDocument",Z,J.to,J.if_match),nodes:()=>N0("nodes"),search:(Z,J)=>N0("search",Z,J)},t8={listSites:()=>N0("listSites"),listSiteFiles:(Z)=>N0("listSiteFiles",Z),createSite:(Z)=>N0("createSite",Z),updateSite:(Z,J)=>N0("updateSite",Z,J),deleteSite:(Z)=>N0("deleteSite",Z),deleteSiteFile:(Z,J)=>N0("deleteSiteFile",Z,J),uploadSiteFile:async(Z,J,Q)=>N0("putSiteFile",Z,J,await Q.arrayBuffer(),Q.type||void 0)};var c3=Math.floor(167772160);function d3(Z){if(Z instanceof ArrayBuffer)return Z;let J=new Uint8Array(Z.byteLength);return J.set(Z),J.buffer}async function i3(Z){let J=await crypto.subtle.digest("SHA-256",d3(Z));return[...new Uint8Array(J)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}async function r6(Z){return(await i3(Z)).slice(0,32)}var a3={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif",svg:"image/svg+xml",pdf:"application/pdf"};function o6(Z){let J=Z.toLowerCase().split(";")[0].trim();for(let[Q,X]of Object.entries(a3))if(X===J&&Q!=="jpeg")return Q;return""}var X8=null;function l3(){if(X8)return X8;return X8=new Promise((Z,J)=>{let Q=indexedDB.open("mh-blobs",1);Q.onupgradeneeded=()=>{let X=Q.result;if(!X.objectStoreNames.contains("spool"))X.createObjectStore("spool",{keyPath:"hash"});if(!X.objectStoreNames.contains("meta"))X.createObjectStore("meta",{keyPath:"hash"})},Q.onsuccess=()=>Z(Q.result),Q.onerror=()=>J(Q.error)}),X8}function m9(Z,J,Q){return l3().then((X)=>new Promise((z,G)=>{let W=Q(X.transaction(Z,J).objectStore(Z));W.onsuccess=()=>z(W.result),W.onerror=()=>G(W.error)}))}async function t6(Z,J,Q){let X={hash:Z,bytes:J,content_type:Q,created:Date.now(),durable:0};await m9("spool","readwrite",(z)=>z.put(X))}async function s6(){return(await m9("spool","readonly",(J)=>J.getAll())??[]).filter((J)=>!J.durable)}async function e6(Z){await m9("spool","readwrite",(J)=>J.delete(Z))}var ZJ=(Z)=>`/blob/${Z}`;async function n3(Z,J){let Q=await m9("meta","readonly",(z)=>z.get(Z)),X={hash:Z,size:J,accessed:Date.now(),pinned:Q?.pinned??0};await m9("meta","readwrite",(z)=>z.put(X))}async function JJ(Z,J,Q){await(await caches.open("mh-blob-v1")).put(ZJ(Z),new Response(J,{headers:{"content-type":Q,"cache-control":"public, max-age=31536000, immutable"}})),await n3(Z,J.byteLength),await r3()}async function r3(){let Z=await m9("meta","readonly",(z)=>z.getAll())??[],J=Z.reduce((z,G)=>z+G.size,0);if(J<=209715200)return;let Q=await caches.open("mh-blob-v1"),X=Z.filter((z)=>!z.pinned).sort((z,G)=>z.accessed-G.accessed);for(let z of X){if(J<=c3)break;await Q.delete(ZJ(z.hash)),await m9("meta","readwrite",(G)=>G.delete(z.hash)),J-=z.size}}class k9 extends Error{code;status;constructor(Z,J,Q){super(Z);this.code=J;this.status=Q;this.name="ApiError"}}var Y9="mh-nav-invalidate";function o3(Z,J){return Z!=="GET"&&(J.startsWith("/api/database")||J.startsWith("/api/document"))}var e8="mh_token",t3="/auth/token";function $J(){try{return localStorage.getItem(e8)}catch{return null}}function s3(Z){try{localStorage.setItem(e8,Z)}catch{}document.cookie=`${e8}=${encodeURIComponent(Z)}; path=/; SameSite=Strict; Max-Age=31536000`}function QJ(){return $J()}async function s9(Z,J={}){let Q=$J(),X=new Headers(J.headers);if(Q&&!X.has("authorization"))X.set("authorization",`Bearer ${Q}`);let z=await fetch(Z,{...J,headers:X});if(z.status!==401||!Q)return z;let G=await fetch(t3,{headers:{authorization:`Bearer ${Q}`}}).catch(()=>null);if(!G?.ok)return z;let W=await G.json().catch(()=>null);if(!W?.token)return z;return s3(W.token),X.set("authorization",`Bearer ${W.token}`),fetch(Z,{...J,headers:X})}async function U0(Z,J,Q){let X=await s9(J,{method:Z,headers:Q!==void 0?{"content-type":"application/json"}:void 0,body:Q!==void 0?JSON.stringify(Q):void 0}),z=await X.json().catch(()=>null);if(!X.ok||z&&z.error)throw new k9(z&&z.error||`${X.status} ${X.statusText}`,z?.code,X.status);if(o3(Z,J))document.dispatchEvent(new CustomEvent(Y9));return z}var y0=(Z)=>encodeURIComponent(Z),s8=!1;async function XJ(){if(s8||q9())return;s8=!0;try{for(let Z of await s6()){let J;try{J=await s9("/api/blob",{method:"POST",headers:{"content-type":Z.content_type},body:Z.bytes})}catch{break}if(!J.ok)break;await JJ(Z.hash,Z.bytes,Z.content_type).catch(()=>{}),await e6(Z.hash).catch(()=>{})}}finally{s8=!1}}if(typeof window<"u")window.addEventListener("online",()=>void XJ());var e3={listDatabases:()=>U0("GET","/api/databases"),createDatabase:(Z)=>U0("POST","/api/databases",Z),updateDatabase:(Z,J)=>U0("PATCH",`/api/database?id=${y0(Z)}`,J),duplicateDatabase:(Z,J)=>U0("POST",`/api/database/duplicate?id=${y0(Z)}`,J??{}),deleteDatabase:(Z)=>U0("DELETE",`/api/database?id=${y0(Z)}`),listProperties:(Z)=>U0("GET",`/api/properties?db=${y0(Z)}`),createProperty:(Z)=>U0("POST","/api/properties",Z),updateProperty:(Z,J)=>U0("PATCH",`/api/property?id=${y0(Z)}`,J),setColumnWidth:(Z,J)=>U0("PATCH",`/api/property/width?id=${y0(Z)}`,{width:J}),deleteProperty:(Z)=>U0("DELETE",`/api/property?id=${y0(Z)}`),listRecords:(Z,J={})=>{let Q=new URLSearchParams({db:Z});if(J.sort)Q.set("sort",J.sort);if(J.limit!=null)Q.set("limit",String(J.limit));return U0("GET",`/api/records?${Q}`)},createRecord:(Z,J)=>U0("POST",`/api/records?db=${y0(Z)}`,J),getRecord:(Z)=>U0("GET",`/api/record?id=${y0(Z)}`),updateRecord:(Z,J)=>U0("PATCH",`/api/record?id=${y0(Z)}`,J),moveRecord:(Z,J,Q)=>U0("PATCH",`/api/record/order?id=${y0(Z)}`,{target:J,where:Q}),deleteRecord:(Z)=>U0("DELETE",`/api/record?id=${y0(Z)}`),listDocuments:(Z)=>U0("GET",Z?`/api/documents?db=${y0(Z)}`:"/api/documents"),listDocumentsByParent:(Z)=>U0("GET",`/api/documents?parent=${y0(Z)}`),createDocument:(Z)=>U0("POST","/api/documents",Z),getDocument:(Z)=>U0("GET",`/api/document?id=${y0(Z)}`),updateDocument:(Z,J)=>U0("PATCH",`/api/document?id=${y0(Z)}`,J),moveDocument:(Z,J,Q)=>U0("PATCH",`/api/document/move?id=${y0(Z)}`,{target:J,where:Q}),duplicateDocument:(Z,J)=>U0("POST",`/api/document/duplicate?id=${y0(Z)}`,J??{}),deleteDocument:(Z)=>U0("DELETE",`/api/document?id=${y0(Z)}`),documentHistory:(Z)=>U0("GET",`/api/document/history?id=${y0(Z)}`),documentAt:(Z,J)=>U0("GET",`/api/document/at?id=${y0(Z)}&version=${y0(J)}`),revertDocument:(Z,J)=>U0("POST",`/api/document/revert?id=${y0(Z)}`,J),recordHistory:(Z)=>U0("GET",`/api/record/history?id=${y0(Z)}`),databaseActivity:(Z,J)=>U0("GET",`/api/database/activity?db=${y0(Z)}${J!=null?`&limit=${J}`:""}`),recordAt:(Z,J)=>U0("GET",`/api/record/at?id=${y0(Z)}&version=${y0(J)}`),revertRecord:(Z,J)=>U0("POST",`/api/record/revert?id=${y0(Z)}`,{to:J}),nodes:()=>U0("GET","/api/nodes"),search:(Z,J)=>{let Q=new URLSearchParams({q:Z});if(J!=null)Q.set("limit",String(J));return U0("GET",`/api/search?${Q}`)},listPeers:()=>U0("GET","/api/peers"),newPairingCode:()=>U0("POST","/api/pair/new"),addPeerByPairing:(Z)=>U0("POST","/api/peers/pair",Z),updatePeer:(Z,J)=>U0("PATCH",`/api/peer?url=${y0(Z)}`,J),removePeer:(Z)=>U0("DELETE",`/api/peer?url=${y0(Z)}`),syncPeer:(Z)=>U0("POST",`/api/peer/sync?url=${y0(Z)}`),listServerS3Peers:()=>U0("GET","/api/peers/s3"),addServerS3Peer:(Z)=>U0("POST","/api/peer/s3",Z),serverS3Config:(Z)=>U0("GET",`/api/peer/s3/config?url=${y0(Z)}`),listGrants:()=>U0("GET","/api/grants"),revokeGrant:(Z)=>U0("DELETE",`/api/grant?token=${y0(Z)}`),listSites:()=>U0("GET","/api/sites"),listSiteFiles:(Z)=>U0("GET",`/api/site/files?site=${y0(Z)}`),createSite:(Z)=>U0("POST","/api/sites",Z),updateSite:(Z,J)=>U0("PATCH",`/api/site?id=${y0(Z)}`,J),deleteSite:(Z)=>U0("DELETE",`/api/site?id=${y0(Z)}`),deleteSiteFile:(Z,J)=>U0("DELETE",`/api/site/file?site=${y0(Z)}&path=${y0(J)}`),uploadSiteFile:async(Z,J,Q)=>{let X=await s9(`/api/site/file?site=${y0(Z)}&path=${y0(J)}`,{method:"POST",headers:{"content-type":Q.type||"application/octet-stream"},body:Q}),z=await X.json().catch(()=>null);if(!X.ok||z&&z.error)throw Error(z&&z.error||`${X.status} ${X.statusText}`);return z},uploadDocImage:async(Z)=>{try{let J=await s9("/api/blob",{method:"POST",headers:{"content-type":Z.type||"application/octet-stream"},body:Z}),Q=await J.json().catch(()=>null);if(J.ok&&Q&&!Q.error)return XJ(),Q;throw Error(Q&&Q.error||`${J.status} ${J.statusText}`)}catch(J){if(!(o0()||q9()))throw J;let Q=await Z.arrayBuffer(),X=await r6(Q),z=Z.type||"application/octet-stream";await t6(X,Q,z);let G=o6(z);return{hash:X,size:Q.byteLength,content_type:z,url:`/blob/${X}${G?"."+G:""}`}}},blobCache:()=>U0("GET","/api/blob-cache"),verifyBlobCache:()=>U0("POST","/api/blob-cache/verify"),clearBlobCache:()=>U0("POST","/api/blob-cache/clear"),setBlobPolicy:(Z)=>U0("POST","/api/blob-policy",Z),pinBlob:(Z,J)=>U0("POST","/api/blob-cache/pin",{hash:Z,pinned:J}),version:()=>U0("GET","/api/version")},c=new Proxy(e3,{get(Z,J,Q){if(o0()){if(J in o8)return o8[J];if(q9()&&J in t8)return t8[J]}return Reflect.get(Z,J,Q)}}),e9={text:{ic:"text",t:"文本"},number:{ic:"hash",t:"数字"},select:{ic:"select",t:"单选"},multi_select:{ic:"multi",t:"多选"},checkbox:{ic:"checkbox",t:"复选框"},date:{ic:"calendar",t:"日期"},url:{ic:"link",t:"链接"},relation:{ic:"relation",t:"关联"}};class ZZ extends Error{code;constructor(Z,J){super(J);this.code=Z;this.name="MhError"}}function Z$(Z){let J=new TextEncoder().encode(Z),Q="";for(let X=0;X<J.length;X++)Q+=String.fromCharCode(J[X]);return btoa(Q).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function J$(Z){let J=Z.replace(/-/g,"+").replace(/_/g,"/"),Q=atob(J),X=new Uint8Array(Q.length);for(let z=0;z<Q.length;z++)X[z]=Q.charCodeAt(z);return new TextDecoder().decode(X)}function Z1(Z){let J={endpoint:Z.endpoint,region:Z.region,bucket:Z.bucket,prefix:Z.prefix,accessKeyId:Z.accessKeyId,secretAccessKey:Z.secretAccessKey,encrypt:Z.encrypt,virtualHostedStyle:Z.virtualHostedStyle};return Z$(JSON.stringify(J))}function zJ(Z){let J=(Z??"").trim();if(!J)throw new ZZ("invalid_input","empty enroll code");let Q=/(?:[#&?]|^)enroll=([^&\s]+)/.exec(J),X=Q?Q[1]:J,z;try{z=JSON.parse(J$(X))}catch{throw new ZZ("invalid_input","invalid enroll code (could not decode)")}if(!z||typeof z!=="object")throw new ZZ("invalid_input","invalid enroll code (not an object)");let G=z,W=(q)=>{let Y=G[q];if(typeof Y!=="string"||Y.trim()==="")throw new ZZ("invalid_input",`enroll code missing '${q}'`);return Y};return{endpoint:W("endpoint"),bucket:W("bucket"),accessKeyId:W("accessKeyId"),secretAccessKey:W("secretAccessKey"),region:typeof G.region==="string"?G.region:void 0,prefix:typeof G.prefix==="string"?G.prefix:void 0,encrypt:typeof G.encrypt==="boolean"?G.encrypt:void 0,virtualHostedStyle:typeof G.virtualHostedStyle==="boolean"?G.virtualHostedStyle:void 0}}var $$=0;function $(Z,J,Q,X,z,G){J||(J={});var W,q,Y=J;if("ref"in Y)for(q in Y={},J)q=="ref"?W=J[q]:Y[q]=J[q];var H={type:Z,props:Y,key:Q,ref:W,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--$$,__i:-1,__u:0,__source:z,__self:G};if(typeof Z=="function"&&(W=Z.defaultProps))for(q in W)Y[q]===void 0&&(Y[q]=W[q]);return S0.vnode&&S0.vnode(H),H}var Q$={cube:'<path d="M21 7.5 12 2 3 7.5v9L12 22l9-5.5z"/><path d="m3 7.5 9 5.5 9-5.5M12 22v-9"/>',chevron:'<path d="m9 6 6 6-6 6"/>',chevronDown:'<path d="m6 9 6 6 6-6"/>',arrowLeft:'<path d="M15 18l-6-6 6-6"/>',plus:'<path d="M12 5v14M5 12h14"/>',pin:'<path d="M9 4h6l-1 6 3 3v2H7v-2l3-3z"/><path d="M12 16v5"/>',search:'<circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2"/>',dots:'<circle cx="5" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="19" cy="12" r="1.4" fill="currentColor" stroke="none"/>',grip:'<circle cx="9" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="18" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="18" r="1.3" fill="currentColor" stroke="none"/>',trash:'<path d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M6 7l1 13a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-13M10 11v6M14 11v6"/>',filter:'<path d="M3 5h18l-7 8v6l-4-2v-4z"/>',sort:'<path d="M7 3v14M7 17l-3-3M7 17l3-3M17 21V7M17 7l-3 3M17 7l3 3"/>',group:'<rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/>',check:'<path d="M5 12.5 10 17l9-10"/>',x:'<path d="M6 6 18 18M18 6 6 18"/>',file:'<path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5"/>',database:'<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 1.66 3.58 3 8 3s8-1.34 8-3V5"/><path d="M4 12c0 1.66 3.58 3 8 3s8-1.34 8-3"/>',table:'<rect x="3" y="4" width="18" height="16" rx="1.5"/><path d="M3 10h18M3 15h18M9 4v16M15 4v16"/>',alignLeft:'<path d="M4 6h16M4 12h10M4 18h13"/>',alignCenter:'<path d="M4 6h16M7 12h10M5 18h14"/>',alignRight:'<path d="M4 6h16M10 12h10M7 18h13"/>',share:'<path d="M4 12v7a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-7"/><path d="M12 3v13M8 7l4-4 4 4"/>',download:'<path d="M12 3v12M8 11l4 4 4-4"/><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"/>',copy:'<rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/>',link:'<path d="M10 13a5 5 0 0 0 7 0l2-2a5 5 0 0 0-7-7l-1 1"/><path d="M14 11a5 5 0 0 0-7 0l-2 2a5 5 0 0 0 7 7l1-1"/>',calendar:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>',timeline:'<rect x="3" y="5" width="9" height="3" rx="1.5"/><rect x="8" y="10.5" width="11" height="3" rx="1.5"/><rect x="5" y="16" width="7" height="3" rx="1.5"/>',hash:'<path d="M4 9h16M4 15h16M10 3 8 21M16 3l-2 18"/>',text:'<path d="M4 6h16M4 6v-.5M8 6v13M4 19h8"/><path d="M14 11h6M17 11v8M14 19h6"/>',list:'<path d="M9 6h11M9 12h11M9 18h11M4.5 6h.01M4.5 12h.01M4.5 18h.01"/>',numList:'<path d="M10 6h10M10 12h10M10 18h10M4 5h1v4M4 9h2M4 13.5c0-.8 2-.8 2 0 0 .8-2 1.2-2 2.5h2"/>',checkbox:'<rect x="4" y="4" width="16" height="16" rx="3"/><path d="m9 12 2 2 4-4"/>',select:'<circle cx="12" cy="12" r="8"/><circle cx="12" cy="12" r="3" fill="currentColor" stroke="none"/>',multi:'<path d="M8 6h12M8 12h12M8 18h12M3 6h.01M3 12h.01M3 18h.01"/>',relation:'<path d="M7 7h4v4H7zM13 13h4v4h-4z"/><path d="M11 9h2a2 2 0 0 1 2 2v2"/>',quote:'<path d="M7 7c-2 1-3 3-3 6h3v4H4v-4M17 7c-2 1-3 3-3 6h3v4h-3v-4"/>',code:'<path d="m8 8-4 4 4 4M16 8l4 4-4 4M13 6l-2 12"/>',minus:'<path d="M5 12h14"/>',heading:'<path d="M6 4v16M18 4v16M6 12h12"/>',panelLeft:'<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M9 4v16"/>',cornerUpRight:'<path d="M5 19V11a4 4 0 0 1 4-4h10M15 3l4 4-4 4"/>',openPeek:'<rect x="3" y="5" width="18" height="14" rx="2.5"/><rect x="6" y="8" width="4" height="8" rx="1" fill="currentColor" stroke="none"/>',settings:'<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/>',eyeOff:'<path d="M4 4l16 16M9.5 9.5a3 3 0 0 0 4 4M6.5 6.7C4.5 8 3 10 2 12c2 4 6 7 10 7 1.6 0 3-.4 4.4-1.1M9.5 5.2A9.7 9.7 0 0 1 12 5c4 0 8 3 10 7-.6 1.3-1.5 2.5-2.5 3.5"/>',bold:'<path d="M6 4h7a4 4 0 0 1 0 8H6zM6 12h8a4 4 0 0 1 0 8H6z"/>',italic:'<path d="M19 4h-9M14 20H5M15 4 9 20"/>',underline:'<path d="M6 4v6a6 6 0 0 0 12 0V4M4 21h16"/>',strike:'<path d="M4 12h16M7 7a4 4 0 0 1 7-1M9 17a4 4 0 0 0 7-2"/>',sun:'<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/>',moon:'<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/>',history:'<path d="M3 12a9 9 0 1 0 2.6-6.4L3 8"/><path d="M3 3v5h5"/><path d="M12 7v5l3.5 2"/>',monitor:'<rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8M12 17v4"/>',globe:'<circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.4 2.5 3.7 5.7 3.7 9S14.4 18.5 12 21c-2.4-2.5-3.7-5.7-3.7-9S9.6 5.5 12 3z"/>',eye:'<path d="M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/>',lock:'<rect x="4.5" y="11" width="15" height="9" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/>',upload:'<path d="M12 16V4M8 8l4-4 4 4M5 20h14"/>',spinner:'<path d="M21 12a9 9 0 1 1-6.219-8.56"/>',cloudUp:'<path d="M12 13v8"/><path d="m8 17 4-4 4 4"/><path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"/>',cloudCheck:'<path d="M17 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 0 1 2.86 8"/><path d="m9 14 2 2 4-4"/>',cloudOff:'<path d="m2 2 20 20"/><path d="M5.78 5.78A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.3-.2"/><path d="M21.4 14.4A4.5 4.5 0 0 0 17.5 8h-1.8A7 7 0 0 0 9.4 4.6"/>',externalLink:'<path d="M14 4h6v6M20 4l-9 9M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5"/>'};function D({name:Z,cls:J="ico"}){return $("svg",{class:J,viewBox:"0 0 24 24",dangerouslySetInnerHTML:{__html:Q$[Z]??""}},void 0,!1,void 0,this)}var J9={text:"text",number:"hash",select:"select",multi_select:"multi",checkbox:"checkbox",date:"calendar",url:"link",relation:"relation"};function JZ(Z,J){let Q=J.threshold??4,X=Q===0,z=(W)=>{if(W.pointerId!==Z.pointerId)return;if(!X){if(Math.hypot(W.clientX-Z.clientX,W.clientY-Z.clientY)<Q)return;X=!0,J.onStart?.(W)}W.preventDefault(),J.onMove(W)},G=(W)=>{if(W.pointerId!==Z.pointerId)return;removeEventListener("pointermove",z),removeEventListener("pointerup",G),removeEventListener("pointercancel",G),J.onEnd?.(W,X)};addEventListener("pointermove",z,{passive:!1}),addEventListener("pointerup",G),addEventListener("pointercancel",G)}function U9(){document.querySelectorAll(".drop-into,.drop-before,.drop-after").forEach((Z)=>Z.classList.remove("drop-into","drop-before","drop-after"))}function J1(Z,J,Q){U9();let X=Z.getBoundingClientRect(),z=Q==="y"?J.clientY<X.top+X.height/2?"before":"after":J.clientX<X.left+X.width/2?"before":"after";return Z.classList.add("drop-"+z),z}function X$(Z,J,Q){let X=document.createElement("div");return X.className="drag-ghost "+Z,X.style.width=`${J.width}px`,X.style.height=`${J.height}px`,X.textContent=Q,document.body.appendChild(X),X}function $1(Z,J,Q){if(!Z)return;Z.style.transform=`translate3d(${Math.round(J)}px, ${Math.round(Q)}px, 0)`}function Q1(Z,J){let Q=J.source.getBoundingClientRect(),X=Z.clientX-Q.left,z=Z.clientY-Q.top,G=null,W=null,q="before";JZ(Z,{onStart:()=>{G=X$(J.ghostCls,Q,J.ghostText),J.source.classList.add("drag-source"),document.body.classList.add("table-dragging"),J.onActivate?.()},onMove:(Y)=>{$1(G,Y.clientX-X,Y.clientY-z);let H=document.elementFromPoint(Y.clientX,Y.clientY)?.closest?.(J.targetSelector);if(!H||J.isSelf(H)){U9(),W=null;return}W=H,q=J1(H,Y,J.axis)},onEnd:(Y,H)=>{if(G?.remove(),J.source.classList.remove("drag-source"),document.body.classList.remove("table-dragging"),U9(),H&&W)J.onDrop(W,q);J.onFinish?.(H)}})}function z8(Z,J){let Q=Z.currentTarget,X=J.startWidth,z=0;Q.classList.add("dragging"),document.body.classList.add("col-resizing");let G=Q.closest("table");if(G)Q.style.setProperty("--rz-guide-h",G.offsetHeight+"px");JZ(Z,{threshold:0,onMove:(W)=>{if(X=Math.max(J.min,J.startWidth+W.clientX-Z.clientX),!z)z=requestAnimationFrame(()=>{if(z=0,J.col)J.col.style.width=X+"px"})},onEnd:()=>{if(z)cancelAnimationFrame(z);if(J.col)J.col.style.width=X+"px";Q.classList.remove("dragging"),Q.style.removeProperty("--rz-guide-h"),document.body.classList.remove("col-resizing"),J.onDone(X)}})}var W8="(max-width: 768px) and (pointer: coarse)";function X1(Z){let J=Z,Q=new Set;return{get:()=>J,set:(X)=>{J=X,Q.forEach((z)=>z(X))},use(){let[X,z]=f(J);return e(()=>{return Q.add(z),()=>void Q.delete(z)},[]),X}}}var NZ=X1([]),z$=0;function o(Z){let J=++z$;NZ.set([...NZ.get(),{id:J,msg:Z}]),setTimeout(()=>NZ.set(NZ.get().filter((Q)=>Q.id!==J)),2600)}var z1=X1(null);function I0(Z,J,Q={}){z1.set({render:J,anchor:Z,minWidth:Q.minWidth})}function WJ(){z1.set(null)}function W$(Z){if(Z instanceof MouseEvent)return{x:Z.clientX,y:Z.clientY};if("rect"in Z)return{x:Z.rect.left,y:Z.rect.bottom,bottom:Z.rect.bottom};return{x:Z.x,y:Z.y}}function G$(){let Z=z1.use(),J=L0(null),[Q,X]=f(null),z=matchMedia(W8).matches;if(x6(()=>{if(!Z||!J.current||z)return X(null);let{x:G,y:W}=W$(Z.anchor),q=J.current.getBoundingClientRect();X({left:Math.min(G,innerWidth-q.width-10),top:Math.min(W+4,innerHeight-q.height-10)})},[Z,z]),!Z)return null;return $("div",{class:"menu-layer",onMouseDown:(G)=>G.target===G.currentTarget&&WJ(),children:$("div",{ref:J,class:"pop"+(z?" sheet":""),style:z?void 0:{left:Q?.left??-9999,top:Q?.top??-9999,minWidth:Z.minWidth},onMouseDown:(G)=>G.stopPropagation(),children:Z.render(WJ)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function p0({children:Z}){return $("div",{class:"lbl",children:Z},void 0,!1,void 0,this)}function f0(){return $("div",{class:"sep"},void 0,!1,void 0,this)}function W0({icon:Z,label:J,sublabel:Q,danger:X,checked:z,onClick:G}){return $("button",{class:"item"+(X?" danger":""),onClick:G,children:[Z&&$("span",{class:"lico plain",children:$(D,{name:Z,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"meta",children:[$("span",{class:"t",children:J},void 0,!1,void 0,this),Q&&$("span",{class:"d",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z&&$("span",{class:"chk",children:$(D,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function u9(Z,J=240){let[Q,X]=f(!1);return e(()=>{let G=requestAnimationFrame(()=>X(!0));return()=>cancelAnimationFrame(G)},[]),{open:Q,close:()=>{X(!1),setTimeout(Z,J)}}}var W1=X1(null);function X9(Z){W1.set(Z)}function d0(){W1.set(null)}function H9({title:Z,sub:J,children:Q,footer:X,width:z}){return $("div",{class:"modal",style:{width:z},onMouseDown:(G)=>G.stopPropagation(),children:[$("div",{class:"modal-head",children:[$("h3",{children:Z},void 0,!1,void 0,this),J&&$("p",{children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"modal-body",children:Q},void 0,!1,void 0,this),X&&$("div",{class:"modal-foot",children:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function q$(){let Z=W1.use();return e(()=>{if(!Z)return;let J=(Q)=>Q.key==="Escape"&&d0();return addEventListener("keydown",J),()=>removeEventListener("keydown",J)},[Z]),$("div",{class:"modal-scrim"+(Z?" open":""),onMouseDown:(J)=>J.target===J.currentTarget&&d0(),children:Z},void 0,!1,void 0,this)}function b0(Z){return new Promise((J)=>{let Q=(X)=>{d0(),J(X)};X9($(H9,{title:Z.title,footer:$(n,{children:[$("button",{class:"btn btn-secondary",onClick:()=>Q(!1),children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn "+(Z.danger?"btn-danger":"btn-primary"),onClick:()=>Q(!0),children:Z.confirmLabel??"确定"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:$("div",{class:"muted",children:Z.message},void 0,!1,void 0,this)},void 0,!1,void 0,this))})}function L9(Z){return new Promise((J)=>{let Q=Z.value??"",X=(z)=>{d0(),J(z)};X9($(H9,{title:Z.title,footer:$(n,{children:[$("button",{class:"btn btn-secondary",onClick:()=>X(null),children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:()=>X(Q.trim()||(Z.value??"")),children:Z.confirmLabel??"保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[Z.label&&$("div",{class:"field-label",children:Z.label},void 0,!1,void 0,this),$("input",{class:"text-input",autofocus:!0,value:Z.value??"",placeholder:Z.placeholder,onInput:(z)=>Q=z.target.value,onKeyDown:(z)=>{if(z.key==="Enter")X(Q.trim()||(Z.value??""))}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))})}function G8(){let Z=NZ.use();return $(n,{children:[$(G$,{},void 0,!1,void 0,this),$(q$,{},void 0,!1,void 0,this),$("div",{class:"toasts",children:Z.map((J)=>$("div",{class:"toast",children:[$(D,{name:"check",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:J.msg},void 0,!1,void 0,this)]},J.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var G1=null,Y$=/mac/i.test(navigator.userAgentData?.platform??navigator.platform);function qJ(Z){let{view:J,navigate:Q}=Z,[X,z]=f(new Set),[G,W]=f(""),[q,Y]=f(!1),H=L0(null),[F,K]=f(null),P=F$(Z.onResize);e(()=>{c.version().then((v)=>K(v.version)).catch(()=>K(null))},[]),e(()=>{if(q)H.current?.focus()},[q]);let A=(v)=>{let O=new Set(X);O.has(v)?O.delete(v):O.add(v),z(O)},L=(v)=>v().catch((O)=>Z.onError(String(O.message))),y=(v)=>{if("id"in J&&J.id===v)Q({kind:"empty"},{replace:!0})},V=(v)=>L(async()=>{let O=await c.createDocument({title:"",...v?{parent_id:v}:{}});if(v)X.add(v);Q({kind:"doc",id:O.id})}),S=(v,O,U)=>L(async()=>{if(v===O.id)return;if(K$(Z.docs,v,O.id))return;if(await c.moveDocument(v,O.id,U),U==="into")X.add(O.id)}),M=(v,O)=>{v.stopPropagation(),I0(v,(U)=>$(n,{children:[$(W0,{icon:"settings",label:"重命名…",onClick:async()=>{U();let B=await L9({title:"重命名数据库",value:O.name});if(B&&B!==O.name)L(async()=>{await c.updateDatabase(O.id,{name:B})})}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除数据库",danger:!0,onClick:async()=>{if(U(),await b0({title:"删除数据库?",message:`「${O.name}」及其所有记录将被永久删除。`,confirmLabel:"删除",danger:!0}))L(async()=>{await c.deleteDatabase(O.id),y(O.id)})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},N=(v,O)=>{v.stopPropagation();let U=Z.docs.filter((B)=>B.parent_id===O.id).length;I0(v,(B)=>$(n,{children:[$(W0,{icon:"plus",label:"新建子页",onClick:()=>{B(),V(O.id)}},void 0,!1,void 0,this),$(W0,{icon:"settings",label:"重命名…",onClick:async()=>{B();let C=await L9({title:"重命名文档",value:O.title});if(C)L(async()=>{await c.updateDocument(O.id,{title:C})})}},void 0,!1,void 0,this),O.parent_id&&$(W0,{icon:"cornerUpRight",label:"移到顶层",onClick:()=>{B(),L(async()=>{await c.updateDocument(O.id,{parent_id:null})})}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除",danger:!0,onClick:async()=>{if(B(),await b0({title:"删除文档?",message:U?`「${O.title||"无标题"}」及其 ${U} 个子页将被删除。`:`「${O.title||"无标题"}」将被删除。`,confirmLabel:"删除",danger:!0}))L(async()=>{await HJ(Z.docs,O.id),y(O.id)})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},k=(v,O=0)=>{return Z.docs.filter((B)=>B.parent_id===v).map((B)=>{let C=Z.docs.filter((T)=>T.parent_id===B.id),_=C.length>0&&X.has(B.id);return $("div",{class:O?"navchildren":"",children:[$("div",{class:"navitem"+(J.kind==="doc"&&J.id===B.id?" active":""),draggable:!0,onClick:()=>Q({kind:"doc",id:B.id}),onDragStart:(T)=>{T.stopPropagation(),G1=B.id,T.currentTarget.classList.add("dragging")},onDragEnd:(T)=>{T.currentTarget.classList.remove("dragging"),q1()},onDragOver:(T)=>{T.preventDefault(),T.stopPropagation(),H$(T.currentTarget,T)},onDrop:(T)=>{T.preventDefault(),T.stopPropagation();let u=YJ(T.currentTarget,T),E=G1;if(G1=null,q1(),E)S(E,B,u)},children:[$("span",{class:"tw"+(_?" open":""),onClick:(T)=>{if(T.stopPropagation(),C.length)A(B.id)},children:C.length>0&&$(D,{name:"chevron",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"emoji",children:$(D,{name:"file",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"label",children:B.title||"无标题"},void 0,!1,void 0,this),$("span",{class:"acts",children:[$("button",{title:"新建子页",onClick:(T)=>{T.stopPropagation(),V(B.id)},children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{title:"更多",onClick:(T)=>N(T,B),children:$(D,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),_&&k(B.id,O+1)]},B.id,!0,void 0,this)})};return $("div",{class:"sidebar"+(Z.collapsed?" collapsed":""),style:{width:Z.width,marginLeft:Z.collapsed?-Z.width:void 0},children:[$("div",{class:"sb-head",children:[$("div",{class:"brand",children:[$("span",{class:"mark",children:$(D,{name:"cube"},void 0,!1,void 0,this)},void 0,!1,void 0,this),"Metahub"]},void 0,!0,void 0,this),$("button",{class:"sb-act"+(q?" active":""),title:"搜索","aria-label":"搜索",onClick:()=>Y((v)=>!v),children:$(D,{name:"search",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"sb-act"+(J.kind==="sites"?" active":""),title:"站点","aria-label":"站点",onClick:()=>Q({kind:"sites"}),children:$(D,{name:"globe",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"sb-act"+(J.kind==="settings"?" active":""),title:"设置","aria-label":"设置",onClick:()=>Q({kind:"settings"}),children:[$(D,{name:"settings",cls:"ico"},void 0,!1,void 0,this),Z.updatePending&&$("span",{class:"nav-dot",title:"有可用更新"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"iconbtn",title:"收起侧栏",onClick:Z.onCollapse,children:$(D,{name:"panelLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-search"+(q?" open":""),onClick:(v)=>v.currentTarget.querySelector("input")?.focus(),children:[$(D,{name:"search",cls:"ico sm"},void 0,!1,void 0,this),$("input",{ref:H,placeholder:"搜索…",value:G,onInput:(v)=>W(v.target.value),onKeyDown:(v)=>{if(v.key==="Enter"&&G.trim())Q({kind:"search",q:G.trim()},{replace:J.kind==="search"})}},void 0,!1,void 0,this),$("kbd",{children:Y$?"⌘K":"Ctrl K"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-scroll",children:[$("div",{class:"sb-section",children:[$("div",{class:"sb-section-head",children:[$("span",{children:"数据库"},void 0,!1,void 0,this),$("button",{class:"add",title:"新建数据库",onClick:()=>U$((v)=>Q({kind:"db",id:v}),Z.onError),children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z.databases.map((v)=>$("div",{class:"navitem"+(J.kind==="db"&&J.id===v.id?" active":""),onClick:()=>Q({kind:"db",id:v.id}),children:[$("span",{class:"emoji",children:v.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),$("span",{class:"label",children:v.name},void 0,!1,void 0,this),$("span",{class:"acts",children:$("button",{title:"更多",onClick:(O)=>M(O,v),children:$(D,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},v.id,!0,void 0,this)),Z.databases.length===0&&$("div",{class:"navitem muted",children:"暂无"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-section",children:[$("div",{class:"sb-section-head",children:[$("span",{children:"文档"},void 0,!1,void 0,this),$("button",{class:"add",title:"新建文档",onClick:()=>V(null),children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),k(null),Z.docs.length===0&&$("div",{class:"navitem muted",children:"暂无"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-footer",children:[$("button",{class:"sb-act"+(J.kind==="settings"?" active":""),title:"设置","aria-label":"设置",onClick:()=>Q({kind:"settings"}),children:[$(D,{name:"settings",cls:"ico sm"},void 0,!1,void 0,this),Z.updatePending&&$("span",{class:"nav-dot",title:"有可用更新"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"sb-act"+(J.kind==="sites"?" active":""),title:"站点","aria-label":"站点",onClick:()=>Q({kind:"sites"}),children:$(D,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),F&&$("span",{class:"sbf-ver",title:`Metahub Core v${F}`,children:["v",F]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-resizer",onMouseDown:P},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var q1=U9;function YJ(Z,J){let Q=Z.getBoundingClientRect(),X=J.clientY-Q.top;return X<Q.height*0.28?"before":X>Q.height*0.72?"after":"into"}function H$(Z,J){q1(),Z.classList.add("drop-"+YJ(Z,J))}function K$(Z,J,Q){let X=Z.find((z)=>z.id===Q);while(X){if(X.parent_id===J)return!0;X=Z.find((z)=>z.id===X.parent_id)}return!1}async function HJ(Z,J){for(let Q of Z.filter((X)=>X.parent_id===J))await HJ(Z,Q.id);await c.deleteDocument(J)}function F$(Z){return(J)=>{J.preventDefault();let Q=J.currentTarget;Q.classList.add("dragging"),document.body.classList.add("col-resizing");let X=(G)=>Z(Math.max(210,Math.min(460,G.clientX))),z=()=>{Q.classList.remove("dragging"),document.body.classList.remove("col-resizing"),removeEventListener("mousemove",X),removeEventListener("mouseup",z)};addEventListener("mousemove",X),addEventListener("mouseup",z)}}var GJ={blank:[{name:"名称",type:"text"}],tasks:[{name:"名称",type:"text"},{name:"状态",type:"select",config:{options:["待办","进行中","已完成"]}},{name:"优先级",type:"select",config:{options:["高","中","低"]}},{name:"截止",type:"date"}],crm:[{name:"姓名",type:"text"},{name:"公司",type:"text"},{name:"分类",type:"select",config:{options:["客户","合作","潜在"]}},{name:"邮箱",type:"url"}]};function U$(Z,J){X9($(L$,{onOpenDb:Z,onError:J},void 0,!1,void 0,this))}function L$(Z){let J=["\uD83D\uDDC2️","\uD83C\uDFAF","\uD83E\uDD1D","\uD83D\uDCE6","\uD83D\uDCDA","\uD83D\uDCA1","\uD83E\uDDE9","\uD83D\uDCCA","\uD83D\uDDD3️","✅"],Q=[["blank","空白","仅一个「名称」列"],["tasks","任务","状态·优先级·截止"],["crm","联系人","公司·分类·邮箱"]],[X,z]=f(""),[G,W]=f(J[0]),[q,Y]=f("blank"),H=L0(!1),F=async()=>{if(H.current)return;H.current=!0;try{let K=await c.createDatabase({name:X.trim()||"未命名数据库",icon:G});for(let P of GJ[q]??GJ.blank)await c.createProperty({db:K.id,name:P.name,type:P.type,config:P.config});d0(),Z.onOpenDb(K.id),o(`已创建数据库「${K.name}」`)}catch(K){Z.onError(String(K.message))}finally{H.current=!1}};return $(H9,{title:"新建数据库",sub:"创建一个带属性列的结构化数据表。",footer:$(n,{children:[$("button",{class:"btn btn-secondary",onClick:d0,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:F,children:"创建"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{class:"field-label",children:"名称"},void 0,!1,void 0,this),$("input",{class:"text-input",autofocus:!0,placeholder:"例如:项目、客户、库存…",value:X,onInput:(K)=>z(K.target.value),onKeyDown:(K)=>K.key==="Enter"&&F()},void 0,!1,void 0,this),$("div",{class:"field-label",children:"图标"},void 0,!1,void 0,this),$("div",{class:"icon-pick",children:J.map((K)=>$("button",{class:K===G?"sel":"",onClick:()=>W(K),children:K},K,!1,void 0,this))},void 0,!1,void 0,this),$("div",{class:"field-label",children:"模板"},void 0,!1,void 0,this),$("div",{class:"tmpl",children:Q.map(([K,P,A])=>$("button",{class:K===q?"sel":"",onClick:()=>Y(K),children:[$("div",{class:"tt",children:P},void 0,!1,void 0,this),$("div",{class:"td",children:A},void 0,!1,void 0,this)]},K,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var KJ=[4,28,45,130,165,200,220,255,290,330];function Y1(Z){let J=0;for(let Q=0;Q<Z.length;Q++)J=J*31+Z.charCodeAt(Q)>>>0;return`hsl(${KJ[J%KJ.length]} 65% 45%)`}function E9({text:Z}){return $("span",{class:"chip",style:{["--c"]:Y1(Z)},children:Z},void 0,!1,void 0,this)}function $Z({prop:Z,val:J}){if(J==null||J===""||Array.isArray(J)&&J.length===0)return $("span",{class:"muted",children:" "},void 0,!1,void 0,this);if(Z.type==="select")return $(E9,{text:String(J)},void 0,!1,void 0,this);if(Z.type==="multi_select"||Z.type==="relation")return $(n,{children:J.map((Q)=>$(E9,{text:String(Q)},String(Q),!1,void 0,this))},void 0,!1,void 0,this);if(Z.type==="url")return $("a",{href:String(J),target:"_blank",rel:"noreferrer",onClick:(Q)=>Q.stopPropagation(),children:String(J)},void 0,!1,void 0,this);return $("span",{children:String(J)},void 0,!1,void 0,this)}function FJ(Z,J){if(Z==="relation")return J.split(",").map((Q)=>Q.trim()).filter(Boolean);return J}function UJ(Z,J){if(J==null)return"";if(Array.isArray(J))return J.join(", ");return String(J)}var B$={user:"",repair:"修复",revert:"回滚"};function K1(Z){let J=Date.now()-new Date(Z).getTime();if(J<60000)return"刚刚";if(J<3600000)return`${Math.floor(J/60000)} 分钟前`;if(J<86400000)return`${Math.floor(J/3600000)} 小时前`;if(J<2592000000)return`${Math.floor(J/86400000)} 天前`;return new Date(Z).toLocaleDateString()}function F1(){let[Z,J]=f([]);return e(()=>{c.nodes().then(J).catch(()=>{})},[]),(Q)=>{let X=Z.find((z)=>z.node_id===Q);if(X?.self)return"本设备";return X?.label||Q.slice(0,8)}}function U1({kind:Z}){if(Z==="user")return null;return $("span",{class:"hist-kind "+Z,children:B$[Z]},void 0,!1,void 0,this)}function P$(Z,J){let Q=Array.from({length:Z.length+1},()=>Array(J.length+1).fill(0));for(let W=Z.length-1;W>=0;W--)for(let q=J.length-1;q>=0;q--)Q[W][q]=Z[W]===J[q]?Q[W+1][q+1]+1:Math.max(Q[W+1][q],Q[W][q+1]);let X=[],z=0,G=0;while(z<Z.length&&G<J.length)if(Z[z]===J[G])X.push([z,G]),z++,G++;else if(Q[z+1][G]>=Q[z][G+1])z++;else G++;return X}var O$=(Z)=>Z?Z.split(/\n{2,}/):[],LJ=(Z)=>Z?Z.split(`
|
|
8
|
+
`).filter((J)=>J.trim()!==""):[];function w$(Z,J){for(let Q=0;Q<Math.min(Z.length,J.length);Q++){let X=Z[Q].text,z=J[Q].text,G=0;while(G<X.length&&G<z.length&&X[G]===z[G])G++;let W=0;while(W<X.length-G&&W<z.length-G&&X[X.length-1-W]===z[z.length-1-W])W++;if(G+W<Math.max(X.length,z.length)*0.3)continue;Z[Q].seg=[X.slice(0,G),X.slice(G,X.length-W),X.slice(X.length-W)],J[Q].seg=[z.slice(0,G),z.slice(G,z.length-W),z.slice(z.length-W)]}}function A$(Z,J){let Q=LJ(Z),X=LJ(J),z=P$(Q,X),G=[],W=0,q=0;for(let[Y,H]of[...z,[Q.length,X.length]]){let F=[],K=[];for(;W<Y;W++)F.push({kind:"del",text:Q[W]});for(;q<H;q++)K.push({kind:"add",text:X[q]});if(w$(F,K),G.push(...F,...K),Y<Q.length)G.push({kind:"same",text:Q[Y]});W=Y+1,q=H+1}return G}function C$(Z){let J=[];if(Z.created)J.push("创建");if(Z.deleted)J.push("删除");if(Z.title_changed)J.push("标题");if(Z.blocks_changed)J.push(`${Z.blocks_changed} 块修改`);if(Z.blocks_deleted)J.push(`${Z.blocks_deleted} 块删除`);return J.join("、")||"元数据"}function BJ({docId:Z,onClose:J,onReverted:Q}){let{open:X,close:z}=u9(J),[G,W]=f(null),[q,Y]=f(null),[H,F]=f(null),[K,P]=f(null),[A,L]=f(!1),[y,V]=f(!1),[S,M]=f(!1),N=F1(),k=()=>Promise.all([c.documentHistory(Z),c.getDocument(Z)]).then(([B,C])=>{W(B),Y(C),F((_)=>_??B[0]?.version??null)}).catch((B)=>o(String(B.message)));e(()=>{k()},[Z]),e(()=>{if(!H)return P(null);c.documentAt(Z,H).then(P).catch(()=>P(null))},[Z,H]);let v=PZ(()=>(G??[]).filter((B)=>A||B.kind!=="repair"),[G,A]),O=H!=null&&G?.[0]?.version===H,U=async()=>{if(!H||!K)return;if(!await b0({title:"恢复到此版本?",message:`标题和正文将恢复到 ${new Date(K.version?N$(K.version):Date.now()).toLocaleString()} 的状态。此操作会作为一次新修订记录,任何版本都仍可从历史找回。`,confirmLabel:"恢复"}))return;M(!0);try{await c.revertDocument(Z,{to:H,if_match:q?.version}),o("已恢复"),Q(),z()}catch(C){if(C instanceof k9&&C.code==="stale")o("文档刚被其他端修改,已刷新,请重试"),await k();else o(String(C.message))}finally{M(!1)}};return $(n,{children:[$("div",{class:"scrim"+(X?" open":""),onClick:z},void 0,!1,void 0,this),$("div",{class:"peek hist-peek"+(X?" open":""),children:[$("div",{class:"peek-head",children:[$("button",{class:"iconbtn",onClick:z,children:$(D,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"hist-title",children:[$(D,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"版本历史"]},void 0,!0,void 0,this),$("div",{style:{flex:1}},void 0,!1,void 0,this),$("label",{class:"hist-toggle",children:[$("input",{type:"checkbox",checked:y,onInput:()=>V(!y)},void 0,!1,void 0,this),"对比当前"]},void 0,!0,void 0,this),$("label",{class:"hist-toggle",children:[$("input",{type:"checkbox",checked:A,onInput:()=>L(!A)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"hist-split",children:[$("div",{class:"hist-list",children:[G===null&&$("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),v.map((B)=>$("div",{class:"hist-item"+(H===B.version?" sel":""),onClick:()=>F(B.version),children:[$("div",{class:"row1",children:[$("span",{class:"when",title:new Date(B.at).toLocaleString(),children:K1(B.at)},void 0,!1,void 0,this),$(U1,{kind:B.kind},void 0,!1,void 0,this),G?.[0]?.version===B.version&&$("span",{class:"hist-now",children:"当前"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"row2",children:[$("span",{class:"who",children:N(B.node_id)},void 0,!1,void 0,this),$("span",{class:"what",children:C$(B)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},B.version,!0,void 0,this))]},void 0,!0,void 0,this),$("div",{class:"hist-preview",children:[K&&$(n,{children:[$("div",{class:"hist-doc-title",children:K.title||"无标题"},void 0,!1,void 0,this),y&&!O?A$(q?.body??"",K.body).map((B,C)=>$("div",{class:"hist-line "+B.kind,children:B.seg?$(n,{children:[B.seg[0],$("span",{class:"seg",children:B.seg[1]},void 0,!1,void 0,this),B.seg[2]]},void 0,!0,void 0,this):B.text},C,!1,void 0,this)):O$(K.body).map((B,C)=>$("div",{class:"hist-block",children:B},C,!1,void 0,this)),!K.body&&$("div",{class:"muted",children:"(空文档)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!K&&H&&$("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"hist-foot",children:$("button",{class:"btn btn-primary",disabled:!H||O||S,onClick:U,children:"恢复到此版本"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function N$(Z){return Number(Z.slice(0,15))||Date.now()}function y$(Z){if(Z.deleted)return"已删除";if(Z.created)return"创建";if(Z.moved&&!Z.diffs.length)return"调整排序";return""}var H1=3;function PJ({dbId:Z,onClose:J}){let{open:Q,close:X}=u9(J),[z,G]=f(null),[W,q]=f(new Map),[Y,H]=f(!1),[F,K]=f(new Set),P=F1();e(()=>{Promise.all([c.databaseActivity(Z),c.listProperties(Z)]).then(([L,y])=>{G(L),q(new Map(y.map((V)=>[V.id,V.name])))}).catch((L)=>o(String(L.message)))},[Z]);let A=(z??[]).filter((L)=>Y||L.kind!=="repair");return $(n,{children:[$("div",{class:"scrim"+(Q?" open":""),onClick:X},void 0,!1,void 0,this),$("div",{class:"peek"+(Q?" open":""),children:[$("div",{class:"peek-head",children:[$("button",{class:"iconbtn",onClick:X,children:$(D,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"hist-title",children:[$(D,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"最近动态"]},void 0,!0,void 0,this),$("div",{style:{flex:1}},void 0,!1,void 0,this),$("label",{class:"hist-toggle",children:[$("input",{type:"checkbox",checked:Y,onInput:()=>H(!Y)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peek-body hist-feed",children:[z===null&&$("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),z!==null&&A.length===0&&$("div",{class:"muted pad",children:"暂无动态。"},void 0,!1,void 0,this),A.map((L)=>{let y=L.record_id+L.version,V=F.has(y),S=V?L.diffs:L.diffs.slice(0,H1),M=y$(L);return $("div",{class:"hist-item static",children:[$("div",{class:"row1",children:[$("span",{class:"when",title:new Date(L.at).toLocaleString(),children:K1(L.at)},void 0,!1,void 0,this),$(U1,{kind:L.kind},void 0,!1,void 0,this),$("span",{class:"hist-recname",children:L.record_title||L.record_id},void 0,!1,void 0,this),M&&$("span",{class:"hist-status",children:M},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"row2",children:$("span",{class:"who",children:P(L.node_id)},void 0,!1,void 0,this)},void 0,!1,void 0,this),S.length>0&&$("div",{class:"hist-fields",children:[S.map((N)=>$("div",{class:"hist-field",children:[$("span",{class:"fname",children:W.get(N.prop)??"(已删字段)"},void 0,!1,void 0,this),!L.created&&$("span",{class:"old",title:QZ(N.before),children:QZ(N.before)},void 0,!1,void 0,this),!L.created&&$("span",{class:"arr",children:"→"},void 0,!1,void 0,this),$("span",{class:"new",title:QZ(N.after),children:QZ(N.after)},void 0,!1,void 0,this)]},N.prop,!0,void 0,this)),L.diffs.length>H1&&!V&&$("button",{class:"hist-more",onClick:()=>K(new Set(F).add(y)),children:["…还有 ",L.diffs.length-H1," 项"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},y,!0,void 0,this)})]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function M$(Z,J){let Q=[];if(Z.created)Q.push("创建");if(Z.deleted)Q.push("删除");if(Z.fields.length)Q.push(Z.fields.map((X)=>J.get(X)??"(已删字段)").join("、"));if(Z.moved&&!Q.length)Q.push("排序");return Q.join(";")||"元数据"}function QZ(Z){if(Z===void 0)return"(空)";if(Z===null)return"(空)";if(typeof Z==="string")return Z===""?"(空)":Z;return JSON.stringify(Z)}function OJ({rec:Z,props:J,onReverted:Q}){let[X,z]=f(null),[G,W]=f(null),[q,Y]=f(!1),H=L0(new Map),[,F]=f(0),K=F1(),P=PZ(()=>new Map(J.map((M)=>[M.id,M.name])),[J]),A=()=>c.recordHistory(Z.id).then(z).catch((M)=>o(String(M.message)));e(()=>{A()},[Z.id]);let L=async(M)=>{let N=H.current.get(M);if(N)return N;let k=await c.recordAt(Z.id,M);return H.current.set(M,k),F((v)=>v+1),k},y=(M,N)=>{if(G===M.version)return W(null);if(W(M.version),L(M.version),N)L(N.version)},V=async(M)=>{if(!await b0({title:"恢复到此版本?",message:"记录字段将恢复到该修订时的值。此操作会作为一次新修订记录。",confirmLabel:"恢复"}))return;try{await c.revertRecord(Z.id,M.version),o("已恢复"),H.current.clear(),Q(),await A()}catch(k){o(String(k.message))}},S=(X??[]).filter((M)=>q||M.kind!=="repair");return $("div",{class:"hist-rec",children:[$("div",{class:"hist-rec-head",children:[$("span",{class:"hist-title",children:[$(D,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"修改历史"]},void 0,!0,void 0,this),$("label",{class:"hist-toggle",children:[$("input",{type:"checkbox",checked:q,onInput:()=>Y(!q)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),X===null&&$("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),X!==null&&S.length===0&&$("div",{class:"muted pad",children:"暂无历史。"},void 0,!1,void 0,this),S.map((M,N)=>{let k=S[N+1],v=H.current.get(M.version),O=k?H.current.get(k.version):void 0,U=M.created&&v?Object.keys(v.data):M.fields;return $("div",{class:"hist-item static",children:[$("div",{class:"row1",onClick:()=>y(M,k),children:[$("span",{class:"when",title:new Date(M.at).toLocaleString(),children:K1(M.at)},void 0,!1,void 0,this),$(U1,{kind:M.kind},void 0,!1,void 0,this),N===0&&$("span",{class:"hist-now",children:"当前"},void 0,!1,void 0,this),$("div",{style:{flex:1}},void 0,!1,void 0,this),$(D,{name:G===M.version?"chevronDown":"chevron",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"row2",onClick:()=>y(M,k),children:[$("span",{class:"who",children:K(M.node_id)},void 0,!1,void 0,this),$("span",{class:"what",children:M$(M,P)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G===M.version&&$("div",{class:"hist-fields",children:[!v&&$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this),v&&U.map((B)=>{let C=O?O.data[B]:void 0,_=v.data[B];return $("div",{class:"hist-field",children:[$("span",{class:"fname",children:P.get(B)??"(已删字段)"},void 0,!1,void 0,this),k&&$("span",{class:"old",children:QZ(C)},void 0,!1,void 0,this),k&&$("span",{class:"arr",children:"→"},void 0,!1,void 0,this),$("span",{class:"new",children:QZ(_)},void 0,!1,void 0,this)]},B,!0,void 0,this)}),v&&N!==0&&$("button",{class:"btn btn-secondary hist-restore",onClick:()=>V(M),children:"恢复到此版本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},M.version,!0,void 0,this)})]},void 0,!0,void 0,this)}var p9="\x00__ungrouped__";function wJ({props:Z,records:J,onCommitValue:Q,onCreate:X,onOpenRecord:z,onMove:G}){let W=Z.filter((M)=>M.type==="select"||M.type==="multi_select"),[q,Y]=f(null),H=Z.find((M)=>M.id===q)??W.find((M)=>M.type==="select")??W[0]??null;if(!H)return $("div",{class:"view-placeholder",children:"看板视图需要一个「单选」或「多选」属性来分组。请在表格视图中添加一个单选列后再切换到看板。"},void 0,!1,void 0,this);let F=Z[0],K=H.type==="multi_select",P=H.config?.options??[],A=(M)=>{let N=M.cells[H.id];if(K){let v=(Array.isArray(N)?N:[]).map(String).filter((O)=>P.includes(O));return v.length?v:[p9]}let k=N==null?"":String(N);return k&&P.includes(k)?[k]:[p9]},L=new Map;for(let M of P)L.set(M,[]);L.set(p9,[]);for(let M of J)for(let N of A(M))L.get(N)?.push(M);let y=[...P];if((L.get(p9)?.length??0)>0)y.push(p9);let V=(M,N)=>{if(M.button!==0)return;if(M.target.closest("button,a,input"))return;let k=M.currentTarget.closest(".kcard");if(!k)return;let v=k.getBoundingClientRect();M.preventDefault();let O=M.clientX-v.left,U=M.clientY-v.top,B=null;JZ(M,{onStart:()=>{B=k.cloneNode(!0),B.classList.add("dragging-ghost"),B.style.width=`${v.width}px`,document.body.appendChild(B),k.classList.add("drag-source"),document.body.classList.add("table-dragging")},onMove:(C)=>{$1(B,C.clientX-O,C.clientY-U),U9(),document.elementFromPoint(C.clientX,C.clientY)?.closest?.(".board-col")?.classList.add("drop-into")},onEnd:(C,_)=>{if(B?.remove(),k.classList.remove("drag-source"),document.body.classList.remove("table-dragging"),U9(),!_){z(N.id);return}let T=document.elementFromPoint(C.clientX,C.clientY)?.closest?.(".board-col");if(!T)return;if(!K){let t=T.dataset.colKey,$0=String(N.cells[H.id]??""),g=t===p9?null:t;if(String(g??"")!==$0)Q(N,H,g)}let u=document.elementFromPoint(C.clientX,C.clientY)?.closest?.(".kcard"),E=u?.dataset.recId;if(E&&E!==N.id){let t=u.getBoundingClientRect();G(N.id,E,C.clientY<t.top+t.height/2?"before":"after")}}})};return $("div",{class:"board-wrap",children:[$("div",{class:"board-bar",children:[$("button",{class:"tbtn",onClick:(M)=>I0(M,(N)=>$(n,{children:[$(p0,{children:"按属性分组"},void 0,!1,void 0,this),W.map((k)=>$(W0,{icon:J9[k.type],label:k.name,onClick:()=>{Y(k.id),N()}},k.id,!1,void 0,this))]},void 0,!0,void 0,this)),children:[$(D,{name:"group",cls:"ico sm"},void 0,!1,void 0,this),"分组:",H.name]},void 0,!0,void 0,this),K&&$("span",{class:"muted",style:{fontSize:12},children:"多选分组不支持拖拽改值"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"board",children:y.map((M)=>{let N=L.get(M)??[],k=M===p9;return $("div",{class:"board-col","data-col-key":M,children:[$("div",{class:"board-col-head",children:[k?$("span",{class:"muted",style:{fontWeight:600},children:"未分组"},void 0,!1,void 0,this):$(E9,{text:M},void 0,!1,void 0,this),$("span",{class:"board-count",children:N.length},void 0,!1,void 0,this),$("div",{class:"spacer"},void 0,!1,void 0,this),$("button",{class:"iconbtn sm",title:"新建记录",onClick:()=>X(k?{}:{[H.id]:M}),children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"board-col-body",children:[N.map((v)=>$("div",{class:"kcard","data-rec-id":v.id,onPointerDown:(O)=>V(O,v),children:[$("div",{class:"kcard-title",children:_$(v,F)||$("span",{class:"muted",children:"无标题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Z.filter((O)=>O!==F&&O.id!==H.id&&!v$(v.cells[O.id])).slice(0,4).map((O)=>$("div",{class:"kcard-field",children:[$(D,{name:J9[O.type]??"text",cls:"ico sm"},void 0,!1,void 0,this),$($Z,{prop:O,val:v.cells[O.id]},void 0,!1,void 0,this)]},O.id,!0,void 0,this))]},v.id,!0,void 0,this)),$("button",{class:"board-add",onClick:()=>X(k?{}:{[H.id]:M}),children:[$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},M,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function _$(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}function v$(Z){return Z==null||Z===""||Array.isArray(Z)&&Z.length===0}function yZ(Z){if(Z==null)return null;let J=String(Z).trim();if(!J)return null;let Q=/^(\d{4})-(\d{2})-(\d{2})/.exec(J);if(Q)return new Date(Number(Q[1]),Number(Q[2])-1,Number(Q[3]));let X=new Date(J);return Number.isNaN(X.getTime())?null:new Date(X.getFullYear(),X.getMonth(),X.getDate())}function K9(Z){let J=Z.getFullYear(),Q=String(Z.getMonth()+1).padStart(2,"0"),X=String(Z.getDate()).padStart(2,"0");return`${J}-${Q}-${X}`}function i0(Z,J){return new Date(Z.getFullYear(),Z.getMonth(),Z.getDate()+J)}function L1(Z,J){return Z.getFullYear()===J.getFullYear()&&Z.getMonth()===J.getMonth()&&Z.getDate()===J.getDate()}function k$(Z,J){return new Date(Z,J,1)}function T$(Z,J){return new Date(Z,J+1,0)}function XZ(Z,J){let Q=Date.UTC(Z.getFullYear(),Z.getMonth(),Z.getDate()),X=Date.UTC(J.getFullYear(),J.getMonth(),J.getDate());return Math.round((X-Q)/86400000)}function q8(){let Z=new Date;return new Date(Z.getFullYear(),Z.getMonth(),Z.getDate())}function R$(Z){let J=(Z.getDay()+6)%7;return i0(Z,-J)}function AJ(Z,J){let Q=R$(k$(Z,J)),X=T$(Z,J),z=[],G=Q;while(G<=X||z.length===0||G.getDay()!==1){let W=[];for(let q=0;q<7;q++)W.push(i0(G,q));if(z.push(W),G=i0(G,7),z.length>=6)break}return z}var I$=["一","二","三","四","五","六","日"],B1=3;function CJ({props:Z,records:J,onCommitValue:Q,onCreate:X,onOpenRecord:z}){let G=Z.filter((O)=>O.type==="date"),[W,q]=f(null),Y=Z.find((O)=>O.id===W)??G[0]??null,H=q8(),[F,K]=f({y:H.getFullYear(),m:H.getMonth()}),P=L0(null);if(!Y)return $("div",{class:"view-placeholder",children:"日历视图需要一个「日期」属性。请在表格视图中添加一个日期列后再切换到日历。"},void 0,!1,void 0,this);let A=Z[0],L=AJ(F.y,F.m),y=J.map((O)=>({rec:O,date:yZ(O.cells[Y.id])})).filter((O)=>O.date!=null),V=(O)=>y.filter((U)=>L1(U.date,O)),S=(O)=>{let U=F.m+O;K({y:F.y+Math.floor(U/12),m:(U%12+12)%12})},M=()=>K({y:H.getFullYear(),m:H.getMonth()}),N=()=>document.querySelectorAll(".cal-day.drop-into").forEach((O)=>O.classList.remove("drop-into")),k=(O,U)=>{if(O.button!==0)return;O.preventDefault(),O.stopPropagation(),P.current={id:U.id,pointerId:O.pointerId,startX:O.clientX,startY:O.clientY,active:!1,ghost:null};let B=(_)=>{let T=P.current;if(!T||T.pointerId!==_.pointerId)return;if(!T.active){if(Math.hypot(_.clientX-T.startX,_.clientY-T.startY)<4)return;T.active=!0,T.ghost=S$(Y8(U,A)),document.body.classList.add("table-dragging")}if(_.preventDefault(),T.ghost)T.ghost.style.transform=`translate3d(${Math.round(_.clientX+8)}px, ${Math.round(_.clientY+8)}px, 0)`;N(),document.elementFromPoint(_.clientX,_.clientY)?.closest?.(".cal-day")?.classList.add("drop-into")},C=(_)=>{let T=P.current;if(!T||T.pointerId!==_.pointerId)return;if(removeEventListener("pointermove",B),removeEventListener("pointerup",C),removeEventListener("pointercancel",C),T.ghost?.remove(),document.body.classList.remove("table-dragging"),N(),P.current=null,!T.active){z(U.id);return}let E=document.elementFromPoint(_.clientX,_.clientY)?.closest?.(".cal-day")?.dataset.iso;if(E&&E!==String(U.cells[Y.id]??""))Q(U,Y,E)};addEventListener("pointermove",B,{passive:!1}),addEventListener("pointerup",C),addEventListener("pointercancel",C)},v=(O)=>I0(O,(U)=>$(n,{children:[$(p0,{children:"按日期属性"},void 0,!1,void 0,this),G.map((B)=>$(W0,{icon:J9[B.type],label:B.name,onClick:()=>{q(B.id),U()}},B.id,!1,void 0,this))]},void 0,!0,void 0,this));return $("div",{class:"cal",children:[$("div",{class:"cal-nav",children:[$("button",{class:"iconbtn",title:"上个月",onClick:()=>S(-1),children:$(D,{name:"chevron",cls:"ico flip"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"cal-title",children:[F.y," 年 ",F.m+1," 月"]},void 0,!0,void 0,this),$("button",{class:"iconbtn",title:"下个月",onClick:()=>S(1),children:$(D,{name:"chevron",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"tbtn",onClick:M,children:"今天"},void 0,!1,void 0,this),$("div",{class:"spacer"},void 0,!1,void 0,this),G.length>1&&$("button",{class:"tbtn",onClick:v,children:[$(D,{name:"calendar",cls:"ico sm"},void 0,!1,void 0,this),Y.name]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"cal-grid cal-head",children:I$.map((O)=>$("div",{class:"cal-wd",children:O},O,!1,void 0,this))},void 0,!1,void 0,this),$("div",{class:"cal-body",children:L.map((O,U)=>$("div",{class:"cal-grid cal-week",children:O.map((B)=>{let C=B.getMonth()!==F.m,_=L1(B,H),T=V(B),u=K9(B);return $("div",{class:"cal-day"+(C?" dim":"")+(_?" today":""),"data-iso":u,onClick:(E)=>{if(E.target.closest(".cal-ev,.cal-add,.cal-more"))return;X({[Y.id]:u})},children:[$("div",{class:"cal-daynum",children:[$("span",{children:B.getDate()},void 0,!1,void 0,this),$("button",{class:"cal-add",title:"新建记录",onClick:(E)=>{E.stopPropagation(),X({[Y.id]:u})},children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"cal-events",children:[T.slice(0,B1).map(({rec:E})=>$("div",{class:"cal-ev",style:{["--c"]:Y1(Y8(E,A)||E.id)},onPointerDown:(t)=>k(t,E),children:Y8(E,A)||"无标题"},E.id,!1,void 0,this)),T.length>B1&&$("button",{class:"cal-more",onClick:(E)=>{E.stopPropagation(),I0(E,(t)=>$(n,{children:[$(p0,{children:[u," · ",T.length," 条记录"]},void 0,!0,void 0,this),T.map(({rec:$0})=>$(W0,{label:Y8($0,A)||"无标题",onClick:()=>{t(),z($0.id)}},$0.id,!1,void 0,this))]},void 0,!0,void 0,this))},children:["+",T.length-B1," 更多"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},u,!0,void 0,this)})},U,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Y8(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}function S$(Z){let J=document.createElement("div");return J.className="drag-ghost",J.textContent=Z||"移动记录",document.body.appendChild(J),J}var T9=200,MZ=36,_Z=44,t0=28,NJ=3;function MJ({props:Z,records:J,onCommitValue:Q,onOpenRecord:X}){let z=Z.filter((I)=>I.type==="date"),[G,W]=f(null),[q,Y]=f(null),H=Z.find((I)=>I.id===G)??z[0]??null,F=q==="none"?null:Z.find((I)=>I.id===q)??z.find((I)=>I!==H)??null,K=L0(null),P=L0(null);if(!H)return $("div",{class:"view-placeholder",children:"时间轴视图需要一个「日期」属性作为开始日期。请在表格视图中添加一个日期列后再切换到时间轴。"},void 0,!1,void 0,this);let A=Z[0],L=q8(),y=J.map((I)=>{let h=yZ(I.cells[H.id]),m=F?yZ(I.cells[F.id]):null;return{rec:I,s:h,e:m&&h&&m<h?h:m}}),V=y.filter((I)=>I.s),S=L,M=L;if(V.length){S=V[0].s,M=V[0].s;for(let I of V){if(I.s<S)S=I.s;let h=I.e??I.s;if(h>M)M=h}}else S=i0(L,-10),M=i0(L,14);let N=i0(S,-NJ),k=i0(M,NJ),v=XZ(N,k)+1,O=T9+v*t0,U=(I)=>T9+I*t0,B=XZ(N,L),C=[];for(let I=0;I<v;I++)C.push(i0(N,I));let _=(I,h,m,z0,X0)=>{if(X0===0)return;if(z0==="move"){if(h)Q(I,H,K9(i0(h,X0)));if(F&&m)Q(I,F,K9(i0(m,X0)))}else if(z0==="l"&&h){let Y0=i0(h,X0);Q(I,H,K9(m&&Y0>m?m:Y0))}else if(z0==="r"&&F&&m){let Y0=i0(m,X0);Q(I,F,K9(h&&Y0<h?h:Y0))}},T=(I,h)=>{let m=P.current;if(!m)return;m.style.left=I+"px",m.style.display="block";let z0=m.firstElementChild;if(z0)z0.textContent=h},u=()=>{if(P.current)P.current.style.display="none"},E=(I,h,m,z0,X0,Y0)=>{if(I.button!==0||!m)return;I.preventDefault(),I.stopPropagation();let{offsetLeft:p,offsetWidth:Q0}=Y0,j0=!1,r0=X0==="move"?null:I.currentTarget;r0?.classList.add("dragging"),K.current={pointerId:I.pointerId,startX:I.clientX};let a0=(h0)=>{let G0=K.current;if(!G0||G0.pointerId!==h0.pointerId)return;let b=Math.round((h0.clientX-G0.startX)/t0);if(Math.abs(h0.clientX-G0.startX)>3)j0=!0;let x,r;if(X0==="move"){let l=p+b*t0;Y0.style.left=l+"px",x=l,r=i0(m,b)}else if(X0==="l"){let l=p+b*t0;Y0.style.left=l+"px",Y0.style.width=Math.max(t0,Q0-b*t0)+"px",x=l,r=i0(m,b)}else{let l=Math.max(t0,Q0+b*t0);Y0.style.width=l+"px",x=p+l,r=i0(m,Math.round(l/t0)-1)}T(x,K9(r))},O0=(h0)=>{let G0=K.current;if(!G0||G0.pointerId!==h0.pointerId)return;removeEventListener("pointermove",a0),removeEventListener("pointerup",O0),removeEventListener("pointercancel",O0),K.current=null,r0?.classList.remove("dragging"),u();let b=Math.round((h0.clientX-G0.startX)/t0);if(!j0){X(h.id);return}_(h,m,z0,X0,b)};addEventListener("pointermove",a0,{passive:!1}),addEventListener("pointerup",O0),addEventListener("pointercancel",O0)},t=(I,h)=>{if(Q(I,H,K9(h)),F)Q(I,F,K9(h))},$0=(I,h)=>{let m=I.currentTarget.closest(".tl-row");if(!m)return;let z0=I.clientX-m.getBoundingClientRect().left;if(z0<T9)return;let X0=Math.max(0,Math.min(v-1,Math.round((z0-T9)/t0)));t(h,i0(N,X0))};return $("div",{class:"tl",children:[$("div",{class:"tl-toolbar",children:$("button",{class:"tbtn",onClick:(I)=>I0(I,(h)=>$(n,{children:[$(p0,{children:"开始日期"},void 0,!1,void 0,this),z.map((m)=>$(W0,{icon:J9[m.type],label:m.name,checked:m===H,onClick:()=>{W(m.id),h()}},m.id,!1,void 0,this)),$(f0,{},void 0,!1,void 0,this),$(p0,{children:"结束日期(可选)"},void 0,!1,void 0,this),$(W0,{icon:"x",label:"无(里程碑)",checked:!F,onClick:()=>{Y("none"),h()}},void 0,!1,void 0,this),z.map((m)=>$(W0,{icon:J9[m.type],label:m.name,checked:m===F,onClick:()=>{Y(m.id),h()}},m.id,!1,void 0,this))]},void 0,!0,void 0,this)),children:[$(D,{name:"timeline",cls:"ico sm"},void 0,!1,void 0,this),H.name,F?` → ${F.name}`:"(里程碑)"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"tl-scroll",children:$("div",{class:"tl-canvas",style:{width:O,height:_Z+y.length*MZ+8},children:[$("div",{class:"tl-axis",style:{height:_Z},children:[$("div",{class:"tl-corner",style:{width:T9},children:"记录"},void 0,!1,void 0,this),C.map((I,h)=>{let m=I.getDate()===1;return $("div",{class:"tl-tick"+(m?" mstart":"")+(XZ(I,L)===0?" today":""),style:{left:U(h),width:t0},children:[m&&$("span",{class:"tl-month",children:[I.getMonth()+1,"月"]},void 0,!0,void 0,this),$("span",{class:"tl-dnum",children:I.getDate()},void 0,!1,void 0,this)]},h,!0,void 0,this)})]},void 0,!0,void 0,this),y.map(({rec:I,s:h,e:m},z0)=>{let X0=h?XZ(N,h):0,Y0=h&&m?XZ(h,m)+1:1;return $("div",{class:"tl-row",style:{top:_Z+z0*MZ,height:MZ},children:[$("div",{class:"tl-rowlabel",style:{width:T9},children:yJ(I,A)||$("span",{class:"muted",children:"无标题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!h?$("div",{class:"tl-track-empty",style:{left:T9},onClick:(p)=>$0(p,I),title:"点击空白处排期",children:$("button",{class:"tl-schedule",style:{left:T9+8},onClick:(p)=>{p.stopPropagation(),t(I,L)},children:"未排期 · 排到今天"},void 0,!1,void 0,this)},void 0,!1,void 0,this):m?$("div",{class:"tl-item",style:{left:U(X0),width:Y0*t0},onPointerDown:(p)=>E(p,I,h,m,"move",p.currentTarget),children:[$("span",{class:"tl-h l",onPointerDown:(p)=>E(p,I,h,m,"l",p.currentTarget.parentElement)},void 0,!1,void 0,this),$("span",{class:"tl-label",children:yJ(I,A)},void 0,!1,void 0,this),$("span",{class:"tl-h r",onPointerDown:(p)=>E(p,I,h,m,"r",p.currentTarget.parentElement)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):$("div",{class:"tl-milestone",style:{left:U(X0)},title:K9(h),onPointerDown:(p)=>E(p,I,h,null,"move",p.currentTarget)},void 0,!1,void 0,this)]},I.id,!0,void 0,this)}),B>=0&&B<v&&$("div",{class:"tl-today",style:{left:U(B)+t0/2,height:_Z+y.length*MZ}},void 0,!1,void 0,this),$("div",{class:"tl-guide",ref:P,style:{display:"none",height:_Z+y.length*MZ},children:$("span",{class:"tl-guide-label"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function yJ(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}var V$=[["表格","list"],["看板","group"],["日历","calendar"],["时间轴","timeline"]];function P1(Z){return{r0:Math.min(Z.a.r,Z.b.r),r1:Math.max(Z.a.r,Z.b.r),c0:Math.min(Z.a.c,Z.b.c),c1:Math.max(Z.a.c,Z.b.c)}}function vJ({db:Z,onError:J}){let[Q,X]=f([]),[z,G]=f([]),[W,q]=f(0),[Y,H]=f(new Set),[F,K]=f(null),[P,A]=f(null),L=L0(P);L.current=P;let[y,V]=f(null),[S,M]=f(null),N=(b)=>b.config?.width??180,k=L0(!1),v=(b)=>b().catch((x)=>J(String(x.message))),O=async()=>{let[b,x]=await Promise.all([c.listProperties(Z.id),c.listRecords(Z.id)]);X(b),G(x)};e(()=>{H(new Set),V(null),q(0),M(null),A(null),O().catch((b)=>J(String(b.message)))},[Z.id]),e(()=>{let b=(x)=>{if(!x.detail?.datasets?.some((l)=>l==="records"||l==="properties"))return;if(L.current)return;O().catch(()=>{})};return document.addEventListener(h9,b),()=>document.removeEventListener(h9,b)},[Z.id]);let U=(b,x,r)=>{A(null),G((l)=>l.map((F0)=>F0.id===b.id?{...F0,cells:{...F0.cells,[x.id]:r},values:{...F0.values,[x.name]:r}}:F0)),c.updateRecord(b.id,{[x.id]:r}).then((l)=>G((F0)=>F0.map((d)=>d.id===l.id?l:d))).catch((l)=>{J(String(l.message)),O().catch((F0)=>J(String(F0.message)))})},B=(b)=>v(async()=>{let x=await c.createRecord(Z.id,b);G((r)=>[...r,x])}),C=()=>B({}),_=(b)=>v(async()=>{if(await Promise.all(b.map((x)=>c.deleteRecord(x))),G((x)=>x.filter((r)=>!b.includes(r.id))),H(new Set),y&&b.includes(y))V(null)}),T=(b)=>v(async()=>{let x=await c.createRecord(Z.id,b.cells);G((r)=>{let l=r.findIndex((F0)=>F0.id===b.id);return[...r.slice(0,l+1),x,...r.slice(l+1)]})}),u=(b,x,r)=>{if(b===x||F)return;G((l)=>_J(l,b,x,r))},E=(b,x,r)=>{if(b===x||F)return;u(b,x,r),c.moveRecord(b,x,r).catch((l)=>{J(String(l.message)),O().catch((F0)=>J(String(F0.message)))})},t=(b,x,r)=>{if(b===x)return;X((l)=>{let F0=_J(l,b,x,r).map((s,k0)=>({...s,position:k0+1})),d=new Map(l.map((s)=>[s.id,s.position])),P0=F0.filter((s)=>d.get(s.id)!==s.position);if(P0.length)Promise.all(P0.map((s)=>c.updateProperty(s.id,{position:s.position}))).catch((s)=>{J(String(s.message)),O().catch((k0)=>J(String(k0.message)))});return F0})},$0=(b,x)=>{if(F||b.button!==0)return;let r=b.currentTarget.closest("tr");if(!r)return;b.preventDefault(),Q1(b,{source:r,axis:"y",ghostCls:"row-ghost",ghostText:b$(r),targetSelector:"tr[data-row-id]",isSelf:(l)=>l.dataset.rowId===x.id,onDrop:(l,F0)=>E(x.id,l.dataset.rowId,F0)})},g=(b,x)=>{if(b.button!==0)return;let r=b.currentTarget.closest("th");if(!r)return;Q1(b,{source:r,axis:"x",ghostCls:"col-ghost",ghostText:r.textContent?.trim()||"移动属性",targetSelector:"th[data-col-id]",isSelf:(l)=>l.dataset.colId===x.id,onActivate:()=>{k.current=!0},onDrop:(l,F0)=>t(x.id,l.dataset.colId,F0),onFinish:(l)=>{if(l)setTimeout(()=>{k.current=!1},0)}})},I=(b,x,r)=>{if(b.button!==0)return;if(b.target.closest("input,button,a"))return;let l=b.shiftKey&&S?S.a:{r:x,c:r};M({a:l,b:{r:x,c:r}}),JZ(b,{onStart:()=>document.body.classList.add("cell-selecting"),onMove:(F0)=>{let d=document.elementFromPoint(F0.clientX,F0.clientY)?.closest?.("td.cell-td");if(!d||d.dataset.r==null)return;M({a:l,b:{r:Number(d.dataset.r),c:Number(d.dataset.c)}})},onEnd:()=>document.body.classList.remove("cell-selecting")})},h=(b)=>b!=="checkbox"&&b!=="select"&&b!=="multi_select",m=(b,x,r)=>Math.max(x,Math.min(r,b)),z0=(b,x)=>requestAnimationFrame(()=>{document.querySelector(`td.cell-td[data-r="${b}"][data-c="${x}"]`)?.scrollIntoView({block:"nearest",inline:"nearest"})}),X0=(b,x)=>{M({a:{r:b,c:x},b:{r:b,c:x}}),z0(b,x)},Y0=(b,x,r)=>{let l=O0[b],F0=Q[x];if(!l||!F0)return;if(X0(b,x),h(F0.type))A({rec:l.id,prop:F0.id,seed:r})},p=(b,x,r)=>{let l=x+r;if(l<0||l>=Q.length){X0(b,x);return}Y0(b,l)},Q0=(b)=>v(async()=>{if(!S)return;let{r0:x,r1:r,c0:l,c1:F0}=P1(S),d=Q.slice(l,F0+1),P0=O0.slice(x,r+1),s=await Promise.all(P0.map((k0)=>{let T0={};for(let w0 of d)T0[w0.id]=b(w0);return c.updateRecord(k0.id,T0)}));G((k0)=>k0.map((T0)=>s.find((w0)=>w0.id===T0.id)??T0))}),j0=async()=>{if(!S)return;let{r0:b,r1:x,c0:r,c1:l}=P1(S),F0=Q.slice(r,l+1),d=O0.slice(b,x+1).map((P0)=>F0.map((s)=>UJ(s,P0.cells[s.id])).join("\t")).join(`
|
|
9
|
+
`);try{await navigator.clipboard.writeText(d)}catch{}},r0=F?Q.find((b)=>b.id===F.id):void 0,a0=(b)=>{let x=b==null||b===""?NaN:Number(b);return Number.isFinite(x)?x:Number.NEGATIVE_INFINITY},O0=F?[...z].sort((b,x)=>{let r=b.cells[F.id],l=x.cells[F.id],F0=r0?.type==="number"?a0(r)-a0(l):String(r??"").localeCompare(String(l??""),"zh");return(F.desc?-1:1)*F0}):z,h0=z.find((b)=>b.id===y)??null,G0=S?P1(S):null;return e(()=>{let b=(x)=>{if(!S||P)return;let r=document.activeElement,l=(r?.tagName||"").toLowerCase();if(l==="input"||l==="textarea"||r?.isContentEditable)return;let F0=S.a.r===S.b.r&&S.a.c===S.b.c,{r:d,c:P0}=S.b,s={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]};if(x.key in s){x.preventDefault();let[k0,T0]=s[x.key],w0={r:m(d+k0,0,O0.length-1),c:m(P0+T0,0,Q.length-1)};M(x.shiftKey?{a:S.a,b:w0}:{a:w0,b:w0}),z0(w0.r,w0.c)}else if((x.metaKey||x.ctrlKey)&&x.key.toLowerCase()==="c")x.preventDefault(),j0();else if(x.key==="Escape")M(null);else if(x.key==="Delete"||x.key==="Backspace")x.preventDefault(),Q0(()=>null);else if(F0&&(x.key==="Enter"||x.key==="F2"))x.preventDefault(),Y0(d,P0);else if(F0&&x.key.length===1&&!x.metaKey&&!x.ctrlKey&&!x.altKey&&!x.isComposing&&x.keyCode!==229){let k0=Q[P0];if(!k0||!h(k0.type)||k0.type==="date")return;if(k0.type==="number"&&!/[0-9.+-]/.test(x.key))return;x.preventDefault(),Y0(d,P0,x.key)}};return addEventListener("keydown",b),()=>removeEventListener("keydown",b)},[S,P,z,Q,F]),$("div",{class:"db",onPointerDown:(b)=>{if(!b.target.closest("td.cell-td, .cellselbar"))M(null)},children:[$("div",{class:"db-head",children:[$("div",{class:"db-icon",children:Z.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),$("div",{children:$("div",{class:"db-title",contentEditable:!0,onBlur:(b)=>{let x=b.target.textContent?.trim()||Z.name;if(x!==Z.name)v(async()=>{await c.updateDatabase(Z.id,{name:x})})},children:Z.name},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"views",children:[V$.map(([b,x],r)=>$("div",{class:"view-tab"+(r===W?" active":""),onClick:()=>q(r),children:[$(D,{name:x},void 0,!1,void 0,this),b]},b,!0,void 0,this)),$("div",{class:"spacer",style:{flex:1}},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:C,children:[$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W===0&&$("div",{class:"toolbar",children:$("button",{class:"tbtn",onClick:(b)=>m$(b,Q,F,K),children:[$(D,{name:"sort",cls:"ico sm"},void 0,!1,void 0,this),"排序"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),W===1?$(wJ,{props:Q,records:z,onCommitValue:U,onCreate:B,onOpenRecord:V,onMove:E},void 0,!1,void 0,this):W===2?$(CJ,{props:Q,records:z,onCommitValue:U,onCreate:B,onOpenRecord:V},void 0,!1,void 0,this):W===3?$(MJ,{props:Q,records:z,onCommitValue:U,onCreate:B,onOpenRecord:V},void 0,!1,void 0,this):$("div",{class:"tablewrap",children:[$("div",{class:"tablescroll",children:$("table",{class:"grid",children:[$("colgroup",{children:[$("col",{style:{width:38}},void 0,!1,void 0,this),$("col",{style:{width:26}},void 0,!1,void 0,this),Q.map((b)=>$("col",{"data-col-id":b.id,style:{width:N(b)}},b.id,!1,void 0,this)),$("col",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("thead",{children:$("tr",{children:[$("th",{class:"selcell",children:$("input",{type:"checkbox",checked:Y.size>0&&Y.size===z.length,onChange:(b)=>H(b.target.checked?new Set(z.map((x)=>x.id)):new Set)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("th",{class:"gripcol"},void 0,!1,void 0,this),Q.map((b)=>$("th",{"data-col-id":b.id,children:[$("div",{class:"colhead",onPointerDown:(x)=>g(x,b),onClick:(x)=>{if(k.current){k.current=!1,x.preventDefault(),x.stopPropagation();return}x$(x,b,Z.id,O,Q)},children:[$("span",{class:"ti",children:$(D,{name:J9[b.type]??"text",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"nm",children:b.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(g$,{colId:b.id,startWidth:N(b),onCommit:(x)=>{X((r)=>r.map((l)=>l.id===b.id?{...l,config:{...l.config??{},width:x}}:l)),c.setColumnWidth(b.id,x).catch((r)=>{J(String(r.message)),O().catch(()=>{})})}},void 0,!1,void 0,this)]},b.id,!0,void 0,this)),$("th",{class:"addcol",children:$("div",{class:"colhead",title:"新建属性",onClick:(b)=>h$(b,Z.id,Q,O),children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("tbody",{children:O0.map((b,x)=>$("tr",{"data-row-id":b.id,class:Y.has(b.id)?"sel":"",children:[$("td",{class:"selcell",children:$("input",{type:"checkbox",checked:Y.has(b.id),onChange:()=>H((r)=>{let l=new Set(r);return l.has(b.id)?l.delete(b.id):l.add(b.id),l})},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("td",{class:"rowgrip",title:F?"清除排序后可拖拽移动":"拖拽移动","aria-disabled":F?"true":void 0,onPointerDown:(r)=>$0(r,b),children:$(D,{name:"grip",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q.map((r,l)=>{let F0=G0!=null&&x>=G0.r0&&x<=G0.r1&&l>=G0.c0&&l<=G0.c1,d;if(F0&&G0){let P0=[];if(x===G0.r0)P0.push("inset 0 2px 0 0 var(--accent)");if(x===G0.r1)P0.push("inset 0 -2px 0 0 var(--accent)");if(l===G0.c0)P0.push("inset 2px 0 0 0 var(--accent)");if(l===G0.c1)P0.push("inset -2px 0 0 0 var(--accent)");d=P0.join(",")||void 0}return $("td",{class:"cell-td"+(F0?" cellsel":""),"data-r":x,"data-c":l,style:d?{boxShadow:d}:void 0,onPointerDown:(P0)=>I(P0,x,l),children:$(f$,{rec:b,prop:r,first:l===0,editing:P?.rec===b.id&&P?.prop===r.id,seed:P?.rec===b.id&&P?.prop===r.id?P.seed:void 0,onEdit:()=>{X0(x,l),A({rec:b.id,prop:r.id})},onCommit:(P0)=>U(b,r,P0),onDone:(P0)=>{if(A(null),P0.reason!=="cancel"&&P0.changed)U(b,r,P0.value);if(P0.reason==="tab")p(x,l,1);else if(P0.reason==="shifttab")p(x,l,-1);else if(P0.reason==="enter")X0(m(x+1,0,O0.length-1),l)},onOpen:()=>V(b.id),onRowMenu:(P0)=>u$(P0,b,()=>V(b.id),()=>T(b),()=>_([b.id]))},void 0,!1,void 0,this)},r.id,!1,void 0,this)}),$("td",{class:"filler"},void 0,!1,void 0,this)]},b.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"addrow",onClick:C,children:[$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建记录"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"gridfoot",children:[$("span",{children:["共 ",z.length," 条记录"]},void 0,!0,void 0,this),$("span",{children:[Q.length," 个属性"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y.size>0&&$("div",{class:"selbar",children:[$("span",{class:"cnt",children:[Y.size," 已选"]},void 0,!0,void 0,this),$("button",{onClick:()=>v(async()=>{for(let b of Y)await T(z.find((x)=>x.id===b))}),children:[$(D,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"复制"]},void 0,!0,void 0,this),$("button",{class:"del",onClick:async()=>{if(await b0({title:"删除记录?",message:`确定删除选中的 ${Y.size} 条记录?`,confirmLabel:"删除",danger:!0}))_([...Y])},children:[$(D,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"删除"]},void 0,!0,void 0,this),$("button",{onClick:()=>H(new Set),children:$(D,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G0&&(G0.r0!==G0.r1||G0.c0!==G0.c1)&&$("div",{class:"selbar cellselbar",children:[$("span",{class:"cnt",children:[(G0.r1-G0.r0+1)*(G0.c1-G0.c0+1)," 个单元格"]},void 0,!0,void 0,this),$("button",{onClick:j0,children:[$(D,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"复制"]},void 0,!0,void 0,this),$("button",{onClick:()=>Q0((b)=>O0[G0.r0].cells[b.id]??null),children:[$(D,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"填充"]},void 0,!0,void 0,this),$("button",{class:"del",onClick:()=>Q0(()=>null),children:[$(D,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"清空"]},void 0,!0,void 0,this),$("button",{onClick:()=>M(null),children:$(D,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h0&&$(E$,{db:Z,props:Q,rec:h0,onClose:()=>V(null),onCommit:(b,x)=>U(h0,b,x),onDelete:()=>_([h0.id]),onDuplicate:()=>T(h0),onReverted:()=>O().catch((b)=>J(String(b.message)))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function kJ({prop:Z,val:J,seed:Q,captureTab:X,onDone:z}){let G=Array.isArray(J)?J.join(", "):J==null?"":String(J),W=L0(null),q=L0(!1);e(()=>{let H=W.current;H.value=Q??G,H.focus();try{H.setSelectionRange(H.value.length,H.value.length)}catch{}},[]);let Y=(H)=>{if(q.current)return;if(q.current=!0,H==="cancel")return z({reason:"cancel"});let F=W.current.value;z({reason:H,changed:F!==G,value:FJ(Z.type,F)})};return $("input",{ref:W,class:"inlineedit",type:Z.type==="number"?"number":Z.type==="date"?"date":"text",onBlur:()=>Y("blur"),onKeyDown:(H)=>{if(H.isComposing||H.keyCode===229)return;if(H.key==="Enter")H.preventDefault(),Y("enter");else if(H.key==="Escape")H.preventDefault(),H.stopPropagation(),Y("cancel");else if(H.key==="Tab"&&X)H.preventDefault(),Y(H.shiftKey?"shifttab":"tab")}},void 0,!1,void 0,this)}function f$({rec:Z,prop:J,first:Q,editing:X,seed:z,onEdit:G,onCommit:W,onDone:q,onOpen:Y,onRowMenu:H}){let F=Z.cells[J.id];if(J.type==="checkbox")return $("div",{class:"cell center",children:$("input",{type:"checkbox",checked:!!F,style:{width:16,height:16,accentColor:"var(--accent)"},onChange:()=>W(!F)},void 0,!1,void 0,this)},void 0,!1,void 0,this);let K=(L)=>{if(J.type==="select"||J.type==="multi_select")TJ(L,J,F,W);else G()},P=$($Z,{prop:J,val:F},void 0,!1,void 0,this);return $(n,{children:[Q?$("div",{class:"cell",onDblClick:K,onContextMenu:(L)=>{L.preventDefault(),H(L)},children:$("div",{class:"firstcell",children:[P,$("div",{class:"rowactions",children:$("button",{class:"rowopen",title:"打开",onClick:(L)=>{L.stopPropagation(),Y()},children:$(D,{name:"openPeek",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):$("div",{class:"cell",onDblClick:K,children:P},void 0,!1,void 0,this),X&&J.type!=="select"&&J.type!=="multi_select"&&$("div",{class:"celledit",children:$(kJ,{prop:J,val:F,seed:z,captureTab:!0,onDone:q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function _J(Z,J,Q,X){let z=[...Z],G=z.findIndex((Y)=>Y.id===J);if(G<0)return Z;let W=z.splice(G,1)[0],q=z.findIndex((Y)=>Y.id===Q);if(q<0)return Z;if(X==="after")q+=1;return z.splice(q,0,W),z}function b$(Z){return Array.from(Z.querySelectorAll("td")).map((Q)=>(Q.textContent??"").trim()).filter(Boolean).join(" ")||"移动记录"}function g$({colId:Z,startWidth:J,onCommit:Q}){return $("div",{class:"col-resizer",onPointerDown:(z)=>{z.preventDefault(),z.stopPropagation(),z8(z,{col:document.querySelector(`col[data-col-id="${CSS.escape(Z)}"]`),startWidth:J,min:80,onDone:Q})}},void 0,!1,void 0,this)}function TJ(Z,J,Q,X){Z.stopPropagation();let z=J.type==="multi_select",G=J.config?.options??[];I0(Z,(W)=>$(j$,{multi:z,options:G,value:Q,onPick:(q)=>{if(X(q),!z)W()}},void 0,!1,void 0,this))}function j$({multi:Z,options:J,value:Q,onPick:X}){let[z,G]=f(Q),W=(Y)=>Z?Array.isArray(z)?z.includes(Y):!1:z===Y,q=(Y)=>{if(Z){let H=new Set(Array.isArray(z)?z:[]);H.has(Y)?H.delete(Y):H.add(Y);let F=[...H];G(F),X(F)}else G(Y),X(Y)};return $(n,{children:[$(p0,{children:Z?"多选 — 点选切换":"单选"},void 0,!1,void 0,this),J.map((Y)=>$("button",{class:"item",onClick:()=>q(Y),children:[$(E9,{text:Y},void 0,!1,void 0,this),W(Y)&&$("span",{class:"chk",children:$(D,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},Y,!0,void 0,this)),Z&&Array.isArray(z)&&z.length>0&&$(n,{children:[$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"x",label:"清空",onClick:()=>{G([]),X([])}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function x$(Z,J,Q,X,z){Z.stopPropagation(),I0(Z,(G)=>$(D$,{prop:J,dbId:Q,reload:X,close:G,allProps:z},void 0,!1,void 0,this),{minWidth:252})}function D$({prop:Z,dbId:J,reload:Q,close:X,allProps:z}){let[G,W]=f(Z.name),[q,Y]=f(Z.type),[H,F]=f(Z.config?.options??[]),K=(L)=>c.updateProperty(Z.id,L).then(Q).catch((y)=>o(`更新属性失败:${y.message}`)),P=(L)=>{Y(L);let y=H;if((L==="select"||L==="multi_select")&&y.length===0)y=["选项 1","选项 2"],F(y);K({type:L,...L==="select"||L==="multi_select"?{config:{options:y}}:{}})},A=(L)=>{F(L),K({config:{options:L}})};return $(n,{children:[$("input",{class:"field",value:G,onInput:(L)=>W(L.target.value),onBlur:()=>G&&G!==Z.name&&K({name:G}),onKeyDown:(L)=>{if(L.key==="Enter")L.target.blur(),X()}},void 0,!1,void 0,this),$(p0,{children:"属性类型"},void 0,!1,void 0,this),$("div",{class:"typegrid",children:Object.keys(e9).map((L)=>$("button",{class:"item"+(L===q?" sel":""),onClick:()=>P(L),children:[$("span",{class:"lico",children:$(D,{name:J9[L],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"d",children:e9[L].t},void 0,!1,void 0,this)]},L,!0,void 0,this))},void 0,!1,void 0,this),(q==="select"||q==="multi_select")&&$(n,{children:[$(f0,{},void 0,!1,void 0,this),$(p0,{children:"选项"},void 0,!1,void 0,this),H.map((L,y)=>$("div",{class:"optrow",children:[$(E9,{text:L},void 0,!1,void 0,this),$("button",{class:"x",onClick:()=>A(H.filter((V,S)=>S!==y)),children:$(D,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},L+y,!0,void 0,this)),$(W0,{icon:"plus",label:"添加选项",onClick:()=>A([...H,"选项 "+(H.length+1)])},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"cornerUpRight",label:"在右侧插入列",onClick:()=>{X(),c.createProperty({db:J,name:RJ("新属性",z),type:"text"}).then(Q).catch((L)=>o(`新建属性失败:${L.message}`))}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除属性",danger:!0,onClick:async()=>{if(X(),await b0({title:"删除属性?",message:`「${Z.name}」及其所有单元格数据将被移除。`,confirmLabel:"删除",danger:!0}))c.deleteProperty(Z.id).then(Q)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function RJ(Z,J){let Q=new Set(J.map((X)=>X.name.toLowerCase()));if(!Q.has(Z.toLowerCase()))return Z;for(let X=2;;X++){let z=`${Z} ${X}`;if(!Q.has(z.toLowerCase()))return z}}function h$(Z,J,Q,X){Z.stopPropagation(),I0(Z,(z)=>$(n,{children:[$(p0,{children:"新建属性 · 选择类型"},void 0,!1,void 0,this),$("div",{class:"typegrid",children:Object.keys(e9).map((G)=>$("button",{class:"item",onClick:()=>{z();let W=G==="select"||G==="multi_select"?{options:["选项 1","选项 2"]}:void 0;c.createProperty({db:J,name:RJ(e9[G].t,Q),type:G,config:W}).then(X).catch((q)=>o(`新建属性失败:${q.message}`))},children:[$("span",{class:"lico",children:$(D,{name:J9[G],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"d",children:e9[G].t},void 0,!1,void 0,this)]},G,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}function m$(Z,J,Q,X){I0(Z,(z)=>$(n,{children:[$(p0,{children:"排序依据"},void 0,!1,void 0,this),J.map((G)=>$(W0,{icon:J9[G.type],label:G.name,onClick:()=>{X({id:G.id,desc:Q?.id===G.id?!Q.desc:!1}),z()}},G.id,!1,void 0,this)),Q&&$(n,{children:[$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"x",label:"清除排序",onClick:()=>{X(null),z()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this))}function u$(Z,J,Q,X,z){Z.stopPropagation(),I0(Z,(G)=>$(n,{children:[$(W0,{icon:"cornerUpRight",label:"打开记录",onClick:()=>{G(),Q()}},void 0,!1,void 0,this),$(W0,{icon:"copy",label:"复制记录",onClick:()=>{G(),X()}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除记录",danger:!0,onClick:async()=>{if(G(),await b0({title:"删除记录?",message:"确定删除这条记录?",confirmLabel:"删除",danger:!0}))z()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}function E$({db:Z,props:J,rec:Q,onClose:X,onCommit:z,onDelete:G,onDuplicate:W,onReverted:q}){let[Y,H]=f(null),[F,K]=f(!1),{open:P,close:A}=u9(X),L=J[0];return $(n,{children:[$("div",{class:"scrim"+(P?" open":""),onClick:A},void 0,!1,void 0,this),$("div",{class:"peek"+(P?" open":""),children:[$("div",{class:"peek-head",children:[$("button",{class:"iconbtn",onClick:A,children:$(D,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),F&&$("button",{class:"iconbtn",title:"返回字段",onClick:()=>K(!1),children:$(D,{name:"arrowLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{style:{flex:1}},void 0,!1,void 0,this),$("button",{class:"iconbtn",title:"更多",onClick:(y)=>I0(y,(V)=>$(n,{children:[$(W0,{icon:"history",label:"版本历史",checked:F,onClick:()=>{V(),K(!F)}},void 0,!1,void 0,this),$(W0,{icon:"copy",label:"复制记录",onClick:()=>{V(),W()}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除记录",danger:!0,onClick:async()=>{if(V(),await b0({title:"删除记录?",message:"确定删除这条记录?",confirmLabel:"删除",danger:!0}))G()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)),children:$(D,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peek-body",children:F?$(OJ,{rec:Q,props:J,onReverted:q},void 0,!1,void 0,this):$(n,{children:[$("h2",{contentEditable:!0,onBlur:(y)=>L&&z(L,y.target.textContent??""),children:L?String(Q.cells[L.id]??"无标题"):"无标题"},void 0,!1,void 0,this),J.map((y)=>$("div",{class:"proprow",children:[$("div",{class:"k",children:[$(D,{name:J9[y.type]??"text",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:y.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(p$,{prop:y,rec:Q,editing:Y===y.id,onEdit:()=>H(y.id),onCommit:(V)=>{z(y,V),H(null)},onCloseEdit:()=>H(null)},void 0,!1,void 0,this)]},y.id,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function p$({prop:Z,rec:J,editing:Q,onEdit:X,onCommit:z,onCloseEdit:G}){let W=J.cells[Z.id];if(Z.type==="checkbox")return $("div",{class:"v",children:$("input",{type:"checkbox",checked:!!W,style:{width:16,height:16,accentColor:"var(--accent)"},onChange:()=>z(!W)},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(Z.type==="select"||Z.type==="multi_select")return $("div",{class:"v",onClick:(q)=>TJ(q,Z,W,z),children:$($Z,{prop:Z,val:W},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(Q)return $("div",{class:"v",children:$(kJ,{prop:Z,val:W,onDone:(q)=>{if(q.reason!=="cancel"&&q.changed)z(q.value);else G()}},void 0,!1,void 0,this)},void 0,!1,void 0,this);return $("div",{class:"v",onClick:X,children:$($Z,{prop:Z,val:W},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var m5=v3(h5(),1);var A8=m5.default;function oQ(Z){for(var J=1;J<arguments.length;J++){var Q=arguments[J];for(var X in Q)if(Object.prototype.hasOwnProperty.call(Q,X))Z[X]=Q[X]}return Z}function I1(Z,J){return Array(J+1).join(Z)}function p5(Z){return Z.replace(/^\n*/,"")}function c5(Z){var J=Z.length;while(J>0&&Z[J-1]===`
|
|
10
|
+
`)J--;return Z.substring(0,J)}function d5(Z){return c5(p5(Z))}var tQ=["ADDRESS","ARTICLE","ASIDE","AUDIO","BLOCKQUOTE","BODY","CANVAS","CENTER","DD","DIR","DIV","DL","DT","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAMESET","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","HTML","ISINDEX","LI","MAIN","MENU","NAV","NOFRAMES","NOSCRIPT","OL","OUTPUT","P","PRE","SECTION","TABLE","TBODY","TD","TFOOT","TH","THEAD","TR","UL"];function S1(Z){return V1(Z,tQ)}var i5=["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","META","PARAM","SOURCE","TRACK","WBR"];function a5(Z){return V1(Z,i5)}function sQ(Z){return n5(Z,i5)}var l5=["A","TABLE","THEAD","TBODY","TFOOT","TH","TD","IFRAME","SCRIPT","AUDIO","VIDEO"];function eQ(Z){return V1(Z,l5)}function ZX(Z){return n5(Z,l5)}function V1(Z,J){return J.indexOf(Z.nodeName)>=0}function n5(Z,J){return Z.getElementsByTagName&&J.some(function(Q){return Z.getElementsByTagName(Q).length})}var JX=[[/\\/g,"\\\\"],[/\*/g,"\\*"],[/^-/g,"\\-"],[/^\+ /g,"\\+ "],[/^(=+)/g,"\\$1"],[/^(#{1,6}) /g,"\\$1 "],[/`/g,"\\`"],[/^~~~/g,"\\~~~"],[/\[/g,"\\["],[/\]/g,"\\]"],[/^>/g,"\\>"],[/_/g,"\\_"],[/^(\d+)\. /g,"$1\\. "]];function r5(Z){return JX.reduce(function(J,Q){return J.replace(Q[0],Q[1])},Z)}var l0={};l0.paragraph={filter:"p",replacement:function(Z){return`
|
|
11
11
|
|
|
12
12
|
`+Z+`
|
|
13
13
|
|
|
14
|
-
`}};
|
|
15
|
-
`}};
|
|
14
|
+
`}};l0.lineBreak={filter:"br",replacement:function(Z,J,Q){return Q.br+`
|
|
15
|
+
`}};l0.heading={filter:["h1","h2","h3","h4","h5","h6"],replacement:function(Z,J,Q){var X=Number(J.nodeName.charAt(1));if(Q.headingStyle==="setext"&&X<3){var z=I1(X===1?"=":"-",Z.length);return`
|
|
16
16
|
|
|
17
17
|
`+Z+`
|
|
18
|
-
`+
|
|
18
|
+
`+z+`
|
|
19
19
|
|
|
20
20
|
`}else return`
|
|
21
21
|
|
|
22
|
-
`+
|
|
22
|
+
`+I1("#",X)+" "+Z+`
|
|
23
23
|
|
|
24
|
-
`}};
|
|
24
|
+
`}};l0.blockquote={filter:"blockquote",replacement:function(Z){return Z=d5(Z).replace(/^/gm,"> "),`
|
|
25
25
|
|
|
26
26
|
`+Z+`
|
|
27
27
|
|
|
28
|
-
`}};
|
|
28
|
+
`}};l0.list={filter:["ul","ol"],replacement:function(Z,J){var Q=J.parentNode;if(Q.nodeName==="LI"&&Q.lastElementChild===J)return`
|
|
29
29
|
`+Z;else return`
|
|
30
30
|
|
|
31
31
|
`+Z+`
|
|
32
32
|
|
|
33
|
-
`}};
|
|
33
|
+
`}};l0.listItem={filter:"li",replacement:function(Z,J,Q){var X=Q.bulletListMarker+" ",z=J.parentNode;if(z.nodeName==="OL"){var G=z.getAttribute("start"),W=Array.prototype.indexOf.call(z.children,J);X=(G?Number(G)+W:W+1)+". "}var q=/\n$/.test(Z);return Z=d5(Z)+(q?`
|
|
34
34
|
`:""),Z=Z.replace(/\n/gm,`
|
|
35
|
-
`+" ".repeat(
|
|
36
|
-
`:"")}};
|
|
35
|
+
`+" ".repeat(X.length)),X+Z+(J.nextSibling?`
|
|
36
|
+
`:"")}};l0.indentedCodeBlock={filter:function(Z,J){return J.codeBlockStyle==="indented"&&Z.nodeName==="PRE"&&Z.firstChild&&Z.firstChild.nodeName==="CODE"},replacement:function(Z,J,Q){return`
|
|
37
37
|
|
|
38
38
|
`+J.firstChild.textContent.replace(/\n/g,`
|
|
39
39
|
`)+`
|
|
40
40
|
|
|
41
|
-
`}};
|
|
41
|
+
`}};l0.fencedCodeBlock={filter:function(Z,J){return J.codeBlockStyle==="fenced"&&Z.nodeName==="PRE"&&Z.firstChild&&Z.firstChild.nodeName==="CODE"},replacement:function(Z,J,Q){var X=J.firstChild.getAttribute("class")||"",z=(X.match(/language-(\S+)/)||[null,""])[1],G=J.firstChild.textContent,W=Q.fence.charAt(0),q=3,Y=new RegExp("^"+W+"{3,}","gm"),H;while(H=Y.exec(G))if(H[0].length>=q)q=H[0].length+1;var F=I1(W,q);return`
|
|
42
42
|
|
|
43
|
-
`+F+
|
|
44
|
-
`+
|
|
43
|
+
`+F+z+`
|
|
44
|
+
`+G.replace(/\n$/,"")+`
|
|
45
45
|
`+F+`
|
|
46
46
|
|
|
47
|
-
`}};
|
|
47
|
+
`}};l0.horizontalRule={filter:"hr",replacement:function(Z,J,Q){return`
|
|
48
48
|
|
|
49
49
|
`+Q.hr+`
|
|
50
50
|
|
|
51
|
-
`}};
|
|
51
|
+
`}};l0.inlineLink={filter:function(Z,J){return J.linkStyle==="inlined"&&Z.nodeName==="A"&&Z.getAttribute("href")},replacement:function(Z,J){var Q=f1(J.getAttribute("href")),X=b1(C8(J.getAttribute("title"))),z=X?' "'+X+'"':"";return"["+Z+"]("+Q+z+")"}};l0.referenceLink={filter:function(Z,J){return J.linkStyle==="referenced"&&Z.nodeName==="A"&&Z.getAttribute("href")},replacement:function(Z,J,Q){var X=f1(J.getAttribute("href")),z=C8(J.getAttribute("title"));if(z)z=' "'+b1(z)+'"';var G,W;switch(Q.linkReferenceStyle){case"collapsed":G="["+Z+"][]",W="["+Z+"]: "+X+z;break;case"shortcut":G="["+Z+"]",W="["+Z+"]: "+X+z;break;default:var q=this.references.length+1;G="["+Z+"]["+q+"]",W="["+q+"]: "+X+z}return this.references.push(W),G},references:[],append:function(Z){var J="";if(this.references.length)J=`
|
|
52
52
|
|
|
53
53
|
`+this.references.join(`
|
|
54
54
|
`)+`
|
|
55
55
|
|
|
56
|
-
`,this.references=[];return J}};
|
|
57
|
-
`):""}function
|
|
56
|
+
`,this.references=[];return J}};l0.emphasis={filter:["em","i"],replacement:function(Z,J,Q){if(!Z.trim())return"";return Q.emDelimiter+Z+Q.emDelimiter}};l0.strong={filter:["strong","b"],replacement:function(Z,J,Q){if(!Z.trim())return"";return Q.strongDelimiter+Z+Q.strongDelimiter}};l0.code={filter:function(Z){var J=Z.previousSibling||Z.nextSibling,Q=Z.parentNode.nodeName==="PRE"&&!J;return Z.nodeName==="CODE"&&!Q},replacement:function(Z){if(!Z)return"";Z=Z.replace(/\r?\n|\r/g," ");var J=/^`|^ .*?[^ ].* $|`$/.test(Z)?" ":"",Q="`",X=Z.match(/`+/gm)||[];while(X.indexOf(Q)!==-1)Q=Q+"`";return Q+J+Z+J+Q}};l0.image={filter:"img",replacement:function(Z,J){var Q=r5(C8(J.getAttribute("alt"))),X=f1(J.getAttribute("src")||""),z=C8(J.getAttribute("title")),G=z?' "'+b1(z)+'"':"";return X?"":""}};function C8(Z){return Z?Z.replace(/(\n+\s*)+/g,`
|
|
57
|
+
`):""}function f1(Z){var J=Z.replace(/([<>()])/g,"\\$1");return J.indexOf(" ")>=0?"<"+J+">":J}function b1(Z){return Z.replace(/"/g,"\\\"")}function o5(Z){this.options=Z,this._keep=[],this._remove=[],this.blankRule={replacement:Z.blankReplacement},this.keepReplacement=Z.keepReplacement,this.defaultRule={replacement:Z.defaultReplacement},this.array=[];for(var J in Z.rules)this.array.push(Z.rules[J])}o5.prototype={add:function(Z,J){this.array.unshift(J)},keep:function(Z){this._keep.unshift({filter:Z,replacement:this.keepReplacement})},remove:function(Z){this._remove.unshift({filter:Z,replacement:function(){return""}})},forNode:function(Z){if(Z.isBlank)return this.blankRule;var J;if(J=k1(this.array,Z,this.options))return J;if(J=k1(this._keep,Z,this.options))return J;if(J=k1(this._remove,Z,this.options))return J;return this.defaultRule},forEach:function(Z){for(var J=0;J<this.array.length;J++)Z(this.array[J],J)}};function k1(Z,J,Q){for(var X=0;X<Z.length;X++){var z=Z[X];if($X(z,J,Q))return z}return}function $X(Z,J,Q){var X=Z.filter;if(typeof X==="string"){if(X===J.nodeName.toLowerCase())return!0}else if(Array.isArray(X)){if(X.indexOf(J.nodeName.toLowerCase())>-1)return!0}else if(typeof X==="function"){if(X.call(Z,J,Q))return!0}else throw TypeError("`filter` needs to be a string, array, or function")}function QX(Z){var{element:J,isBlock:Q,isVoid:X}=Z,z=Z.isPre||function(K){return K.nodeName==="PRE"};if(!J.firstChild||z(J))return;var G=null,W=!1,q=null,Y=u5(q,J,z);while(Y!==J){if(Y.nodeType===3||Y.nodeType===4){var H=Y.data.replace(/[ \r\n\t]+/g," ");if((!G||/ $/.test(G.data))&&!W&&H[0]===" ")H=H.substr(1);if(!H){Y=T1(Y);continue}Y.data=H,G=Y}else if(Y.nodeType===1){if(Q(Y)||Y.nodeName==="BR"){if(G)G.data=G.data.replace(/ $/,"");G=null,W=!1}else if(X(Y)||z(Y))G=null,W=!0;else if(G)W=!1}else{Y=T1(Y);continue}var F=u5(q,Y,z);q=Y,Y=F}if(G){if(G.data=G.data.replace(/ $/,""),!G.data)T1(G)}}function T1(Z){var J=Z.nextSibling||Z.parentNode;return Z.parentNode.removeChild(Z),J}function u5(Z,J,Q){if(Z&&Z.parentNode===J||Q(J))return J.nextSibling||J.parentNode;return J.firstChild||J.nextSibling||J.parentNode}var g1=typeof window<"u"?window:{};function XX(){var Z=g1.DOMParser,J=!1;try{if(new Z().parseFromString("","text/html"))J=!0}catch(Q){}return J}function zX(){var Z=function(){};if(WX())Z.prototype.parseFromString=function(J){var Q=new window.ActiveXObject("htmlfile");return Q.designMode="on",Q.open(),Q.write(J),Q.close(),Q};else Z.prototype.parseFromString=function(J){var Q=document.implementation.createHTMLDocument("");return Q.open(),Q.write(J),Q.close(),Q};return Z}function WX(){var Z=!1;try{document.implementation.createHTMLDocument("").open()}catch(J){if(g1.ActiveXObject)Z=!0}return Z}var GX=XX()?g1.DOMParser:zX();function qX(Z,J){var Q;if(typeof Z==="string"){var X=YX().parseFromString('<x-turndown id="turndown-root">'+Z+"</x-turndown>","text/html");Q=X.getElementById("turndown-root")}else Q=Z.cloneNode(!0);return QX({element:Q,isBlock:S1,isVoid:a5,isPre:J.preformattedCode?HX:null}),Q}var R1;function YX(){return R1=R1||new GX,R1}function HX(Z){return Z.nodeName==="PRE"||Z.nodeName==="CODE"}function KX(Z,J){return Z.isBlock=S1(Z),Z.isCode=Z.nodeName==="CODE"||Z.parentNode.isCode,Z.isBlank=FX(Z),Z.flankingWhitespace=UX(Z,J),Z}function FX(Z){return!a5(Z)&&!eQ(Z)&&/^\s*$/i.test(Z.textContent)&&!sQ(Z)&&!ZX(Z)}function UX(Z,J){if(Z.isBlock||J.preformattedCode&&Z.isCode)return{leading:"",trailing:""};var Q=LX(Z.textContent);if(Q.leadingAscii&&E5("left",Z,J))Q.leading=Q.leadingNonAscii;if(Q.trailingAscii&&E5("right",Z,J))Q.trailing=Q.trailingNonAscii;return{leading:Q.leading,trailing:Q.trailing}}function LX(Z){var J=Z.match(/^(([ \t\r\n]*)(\s*))(?:(?=\S)[\s\S]*\S)?((\s*?)([ \t\r\n]*))$/);return{leading:J[1],leadingAscii:J[2],leadingNonAscii:J[3],trailing:J[4],trailingNonAscii:J[5],trailingAscii:J[6]}}function E5(Z,J,Q){var X,z,G;if(Z==="left")X=J.previousSibling,z=/ $/;else X=J.nextSibling,z=/^ /;if(X){if(X.nodeType===3)G=z.test(X.nodeValue);else if(Q.preformattedCode&&X.nodeName==="CODE")G=!1;else if(X.nodeType===1&&!S1(X))G=z.test(X.textContent)}return G}var BX=Array.prototype.reduce;function RZ(Z){if(!(this instanceof RZ))return new RZ(Z);var J={rules:l0,headingStyle:"setext",hr:"* * *",bulletListMarker:"*",codeBlockStyle:"indented",fence:"```",emDelimiter:"_",strongDelimiter:"**",linkStyle:"inlined",linkReferenceStyle:"full",br:" ",preformattedCode:!1,blankReplacement:function(Q,X){return X.isBlock?`
|
|
58
58
|
|
|
59
|
-
`:""},keepReplacement:function(Q
|
|
59
|
+
`:""},keepReplacement:function(Q,X){return X.isBlock?`
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
`+X.outerHTML+`
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
`:X.outerHTML},defaultReplacement:function(Q,X){return X.isBlock?`
|
|
64
64
|
|
|
65
65
|
`+Q+`
|
|
66
66
|
|
|
67
|
-
`:Q}};this.options=
|
|
67
|
+
`:Q}};this.options=oQ({},J,Z),this.rules=new o5(this.options)}RZ.prototype={turndown:function(Z){if(!wX(Z))throw TypeError(Z+" is not a string, or an element/document/fragment node.");if(Z==="")return"";var J=t5.call(this,new qX(Z,this.options));return PX.call(this,J)},use:function(Z){if(Array.isArray(Z))for(var J=0;J<Z.length;J++)this.use(Z[J]);else if(typeof Z==="function")Z(this);else throw TypeError("plugin must be a Function or an Array of Functions");return this},addRule:function(Z,J){return this.rules.add(Z,J),this},keep:function(Z){return this.rules.keep(Z),this},remove:function(Z){return this.rules.remove(Z),this},escape:function(Z){return r5(Z)}};function t5(Z){var J=this;return BX.call(Z.childNodes,function(Q,X){X=new KX(X,J.options);var z="";if(X.nodeType===3)z=X.isCode?X.nodeValue:J.escape(X.nodeValue);else if(X.nodeType===1)z=OX.call(J,X);return s5(Q,z)},"")}function PX(Z){var J=this;return this.rules.forEach(function(Q){if(typeof Q.append==="function")Z=s5(Z,Q.append(J.options))}),Z.replace(/^[\t\r\n]+/,"").replace(/[\t\r\n\s]+$/,"")}function OX(Z){var J=this.rules.forNode(Z),Q=t5.call(this,Z),X=Z.flankingWhitespace;if(X.leading||X.trailing)Q=Q.trim();return X.leading+J.replacement(Q,Z,this.options)+X.trailing}function s5(Z,J){var Q=c5(Z),X=p5(J),z=Math.max(Z.length-Q.length,J.length-X.length),G=`
|
|
68
68
|
|
|
69
|
-
`.substring(0,
|
|
69
|
+
`.substring(0,z);return Q+G+X}function wX(Z){return Z!=null&&(typeof Z==="string"||Z.nodeType&&(Z.nodeType===1||Z.nodeType===9||Z.nodeType===11))}var e5=/highlight-(?:text|source)-([a-z0-9]+)/;function AX(Z){Z.addRule("highlightedCodeBlock",{filter:function(J){var Q=J.firstChild;return J.nodeName==="DIV"&&e5.test(J.className)&&Q&&Q.nodeName==="PRE"},replacement:function(J,Q,X){var z=Q.className||"",G=(z.match(e5)||[null,""])[1];return`
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
`+X.fence+G+`
|
|
72
72
|
`+Q.firstChild.textContent+`
|
|
73
|
-
|
|
73
|
+
`+X.fence+`
|
|
74
74
|
|
|
75
|
-
`}})}function
|
|
75
|
+
`}})}function CX(Z){Z.addRule("strikethrough",{filter:["del","s","strike"],replacement:function(J){return"~"+J+"~"}})}var NX=Array.prototype.indexOf,yX=Array.prototype.every,YZ={};YZ.tableCell={filter:["th","td"],replacement:function(Z,J){return Z7(Z,J)}};YZ.tableRow={filter:"tr",replacement:function(Z,J){var Q="",X={left:":--",right:"--:",center:":-:"};if(j1(J))for(var z=0;z<J.childNodes.length;z++){var G="---",W=(J.childNodes[z].getAttribute("align")||"").toLowerCase();if(W)G=X[W]||G;Q+=Z7(G,J.childNodes[z])}return`
|
|
76
76
|
`+Z+(Q?`
|
|
77
|
-
`+Q:"")}};
|
|
77
|
+
`+Q:"")}};YZ.table={filter:function(Z){return Z.nodeName==="TABLE"&&j1(Z.rows[0])},replacement:function(Z){return Z=Z.replace(`
|
|
78
78
|
|
|
79
79
|
`,`
|
|
80
80
|
`),`
|
|
81
81
|
|
|
82
82
|
`+Z+`
|
|
83
83
|
|
|
84
|
-
`}};
|
|
84
|
+
`}};YZ.tableSection={filter:["thead","tbody","tfoot"],replacement:function(Z){return Z}};function j1(Z){var J=Z.parentNode;return J.nodeName==="THEAD"||J.firstChild===Z&&(J.nodeName==="TABLE"||MX(J))&&yX.call(Z.childNodes,function(Q){return Q.nodeName==="TH"})}function MX(Z){var J=Z.previousSibling;return Z.nodeName==="TBODY"&&(!J||J.nodeName==="THEAD"&&/^\s*$/i.test(J.textContent))}function Z7(Z,J){var Q=NX.call(J.parentNode.childNodes,J),X=" ";if(Q===0)X="| ";return X+Z+" |"}function _X(Z){Z.keep(function(Q){return Q.nodeName==="TABLE"&&!j1(Q.rows[0])});for(var J in YZ)Z.addRule(J,YZ[J])}function vX(Z){Z.addRule("taskListItems",{filter:function(J){return J.type==="checkbox"&&J.parentNode.nodeName==="LI"},replacement:function(J,Q){return(Q.checked?"[x]":"[ ]")+" "}})}function J7(Z){Z.use([AX,CX,_X,vX])}function kX(Z){let J=Z.match(/(?:language|lang)-(\S+)/);return J?J[1]:""}function TX(){let Z=new RZ({codeBlockStyle:"fenced",headingStyle:"atx",bulletListMarker:"-",emDelimiter:"*",strongDelimiter:"**"});return Z.use(J7),Z.remove(["style","script","title"]),Z.escape=(J)=>J,Z.addRule("fencedCodeWithLang",{filter:(J)=>J.nodeName==="PRE"&&!!J.querySelector("code"),replacement:(J,Q)=>{let X=Q.querySelector("code"),z=(X?.textContent??Q.textContent??"").replace(/\n$/,""),G=X?kX(X.className):"",W="```";return`
|
|
85
85
|
|
|
86
|
-
\`\`\`${
|
|
87
|
-
${
|
|
86
|
+
\`\`\`${G}
|
|
87
|
+
${z}
|
|
88
88
|
\`\`\`
|
|
89
89
|
|
|
90
|
-
`}}),Z}var
|
|
91
|
-
`)
|
|
90
|
+
`}}),Z}var $7=null;function Q7(Z){return $7??=TX(),$7.turndown(Z)}var RX=0;function z9(){return`blk_${Date.now().toString(36)}_${(RX++).toString(36)}`}var IX=new Set(["bullet","numbered","todo"]),y9={fenceOpen:/^\s*(`{3,}|~{3,})\s*([^\s`]*)?.*$/,h:/^(#{1,3})\s+(.*)$/,todo:/^\s*[-*+]\s+\[([ xX])\]\s*(.*)$/,bullet:/^\s*[-*+]\s+(.*)$/,numbered:/^\s*(\d+)[.)]\s+(.*)$/,quote:/^>\s?(.*)$/,divider:/^\s*(?:-{3,}|\*{3,}|_{3,})\s*$/};function e0(Z){return IX.has(Z)}function SX(){return[["",""],["",""]]}function D1(Z,J,Q){if(Z.type=J,Z.content=Q.content??"",J==="todo")Z.checked=Q.checked??!1;else delete Z.checked;if(J==="code")Z.lang=Q.lang??"";else delete Z.lang;if(J==="numbered"&&Q.start!=null&&Q.start>1)Z.start=Q.start;else delete Z.start;if(J==="table")Z.rows=Q.rows?Q.rows.map((X)=>[...X]):SX(),Z.align=Q.align?[...Q.align]:Array(Z.rows[0].length).fill(null);else delete Z.rows,delete Z.align}function IZ(Z,J={}){let Q={id:z9(),type:Z,content:""};if(D1(Q,Z,J),e0(Z)&&J.children?.length)Q.children=J.children;return Q}function X7(Z){let J=y8(Z.filter((Q)=>!i9(Q)));return Z.map((Q)=>U7(Q,0,J.get(Q.id)??1).join(`
|
|
91
|
+
`)).join(`
|
|
92
|
+
`)}function a9(Z){let J=(Z??"").replace(/\r\n?/g,`
|
|
92
93
|
`),Q=J?J.split(`
|
|
93
|
-
`):[]
|
|
94
|
-
`)}function
|
|
95
|
-
`),lang:
|
|
96
|
-
`)},next:
|
|
97
|
-
`)},next:
|
|
98
|
-
`).map((
|
|
99
|
-
`).map((W)=>`${
|
|
100
|
-
`).map((
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
`;else if($==="strong"||$==="b")J+=X?`**${X}**`:"";else if($==="em"||$==="i")J+=X?`*${X}*`:"";else if($==="code")J+=X?"`"+X+"`":"";else if($==="a"){let q=Q.getAttribute("href")||"";J+=q?`[${X}](${q})`:X}else if($==="div"||$==="p")J+=(J&&!J.endsWith(`
|
|
94
|
+
`):[],X=Y7(Q,0,0).blocks;z7(X);let z=J.length-J.replace(/\n+$/,"").length;for(let G=1;G<z;G++)X.push({id:z9(),type:"p",content:""});return X}function i9(Z){return Z.type==="p"&&Z.content.trim()===""&&!Z.children?.length}function y8(Z){let J=new Map,Q=null;for(let X of Z)if(X.type==="numbered")Q=Q===null?Math.max(1,X.start??1):Q+1,J.set(X.id,Q);else Q=null;return J}function z7(Z){let J=!0;for(let Q of Z){if(Q.type==="numbered")if(J){if((Q.start??1)<=1)delete Q.start;J=!1}else delete Q.start;else J=!0;if(Q.children)z7(Q.children)}}function W7(Z){return G7(Z,0,!0).join(`
|
|
95
|
+
`)}function G7(Z,J,Q){let X=y8(Z.filter((q)=>!i9(q))),z=[],G=null,W=0;for(let q of Z){if(i9(q)){if(z.length)W++;continue}if(!L7(q))continue;if(z.length){let Y=iX(G,q)||W>0?1:0;for(let H=0;H<Y+W;H++)z.push("")}z.push(...U7(q,J,X.get(q.id)??1)),G=q,W=0}if(z.length&&W>0)for(let q=0;q<W+(Q?1:0);q++)z.push("");return z}function h1(Z,J){if(J===" "){if(Z==="# ")return{type:"h1",content:""};if(Z==="## ")return{type:"h2",content:""};if(Z==="### ")return{type:"h3",content:""};if(Z==="> ")return{type:"quote",content:""};if(/^[-*+] $/.test(Z))return{type:"bullet",content:""};let X=Z.match(/^(\d+)[.)] $/);if(X)return{type:"numbered",content:"",start:parseInt(X[1],10)};let z=Z.match(/^[-*+]\s+\[([ xX])\]\s*$/);if(z)return{type:"todo",content:"",checked:z[1].toLowerCase()==="x"};return null}let Q=Z.match(/^```([A-Za-z0-9_+.#-]*)$/);if(Q)return{type:"code",content:"",lang:m1(Q[1]??"")};return null}function q7(Z){let J=Z.match(/^\[([ xX])\]$/);return J?{checked:J[1].toLowerCase()==="x"}:null}function Y7(Z,J,Q){let X=[],z=J,G=0;while(z<Z.length){let W=Z[z];if(W.trim()===""){let Y=z;while(Y<Z.length&&Z[Y].trim()==="")Y++;if(Y>=Z.length||I9(Z[Y])<Q)break;G+=Y-z,z=Y;continue}if(I9(W)<Q)break;if(X.length&&G>1)for(let Y=1;Y<G;Y++)X.push({id:z9(),type:"p",content:""});G=0;let q=VX(Z,z,Q)??DX(Z,z,Q)??fX(Z,z,Q);X.push(q.block),z=q.next}return{blocks:X,next:z}}function VX(Z,J,Q){let X=F7(Z[J],Q);if(!X)return null;let z={id:z9(),type:X.type,content:X.content};if(X.type==="todo")z.checked=!!X.checked;if(X.type==="numbered"&&X.num!=null)z.start=X.num;let G=Y7(Z,J+1,X.indent+2);if(G.blocks.length)z.children=G.blocks;return{block:z,next:G.next}}function fX(Z,J,Q){let X=F9(Z[J],Q),z=X.match(y9.fenceOpen);if(z){let W=bX(Z,J,Q,z);if(W)return W}if(y9.divider.test(X.trim()))return{block:{id:z9(),type:"divider",content:""},next:J+1};let G=X.match(y9.h);if(G)return{block:{id:z9(),type:`h${G[1].length}`,content:G[2]},next:J+1};if(y9.quote.test(X))return gX(Z,J,Q);return pX(Z,J,Q)}function bX(Z,J,Q,X){let z=X[1],G=[],W=J+1,q=!1;for(;W<Z.length;W++){let Y=Z[W],H=F9(Y,Q);if(aX(H,z[0],z.length)){q=!0,W++;break}G.push(H)}if(!q)return null;return{block:{id:z9(),type:"code",content:G.join(`
|
|
96
|
+
`),lang:m1(X[2]??"")},next:W}}function gX(Z,J,Q){let X=[],z=J;for(;z<Z.length;z++){let G=Z[z];if(G.trim()===""||I9(G)<Q)break;let W=F9(G,Q).match(y9.quote);if(!W)break;X.push(W[1]??"")}return{block:{id:z9(),type:"quote",content:X.join(`
|
|
97
|
+
`)},next:z}}var jX=/^\s*:?-+:?\s*$/;function H7(Z,J,Q){let X=Z[J],z=Z[J+1];if(X==null||z==null)return!1;if(I9(X)<Q||I9(z)<Q)return!1;let G=F9(X,Q),W=F9(z,Q);if(!G.includes("|")||!W.includes("|"))return!1;let q=N8(W);return q.length>0&&q.every((Y)=>jX.test(Y))}function N8(Z){let J=[],Q="";for(let X=0;X<Z.length;X++){let z=Z[X];if(z==="\\"&&Z[X+1]==="|"){Q+="|",X++;continue}if(z==="|"){J.push(Q),Q="";continue}Q+=z}if(J.push(Q),J.length&&J[0].trim()==="")J.shift();if(J.length&&J[J.length-1].trim()==="")J.pop();return J.map((X)=>X.trim())}function xX(Z){let J=Z.trim(),Q=J.startsWith(":"),X=J.endsWith(":");if(Q&&X)return"center";if(X)return"right";if(Q)return"left";return null}function x1(Z,J){let Q=Z.slice(0,J);while(Q.length<J)Q.push("");return Q}function DX(Z,J,Q){if(!H7(Z,J,Q))return null;let X=N8(F9(Z[J],Q)),z=Math.max(1,X.length),G=N8(F9(Z[J+1],Q)).map(xX),W=[x1(X,z)],q=J+2;for(;q<Z.length;q++){let Y=Z[q];if(Y.trim()===""||I9(Y)<Q)break;let H=F9(Y,Q);if(!H.includes("|"))break;W.push(x1(N8(H),z))}while(G.length<z)G.push(null);return G.length=z,{block:{id:z9(),type:"table",content:"",rows:W,align:G},next:q}}function hX(Z){switch(Z){case"left":return":---";case"center":return":---:";case"right":return"---:";default:return"---"}}function mX(Z,J){let Q=" ".repeat(J),X=Z.rows??[],z=Math.max(1,...X.map((F)=>F.length)),G=Z.align??[],W=(F)=>F.replace(/\|/g,"\\|").replace(/\n/g," "),q=(F)=>`${Q}| ${x1(F,z).map(W).join(" | ")} |`,Y=`${Q}| ${Array.from({length:z},(F,K)=>hX(G[K]??null)).join(" | ")} |`,H=X[0]??Array.from({length:z},()=>"");return[q(H),Y,...X.slice(1).map(q)]}var K7=/^\\*(?:`{3,}|~{3,})/;function uX(Z){return K7.test(Z)?`\\${Z}`:Z}function EX(Z){return Z.startsWith("\\")&&K7.test(Z.slice(1))?Z.slice(1):Z}function pX(Z,J,Q){let X=[],z=J;for(;z<Z.length;z++){let G=Z[z];if(G.trim()===""||I9(G)<Q)break;if(X.length&&(cX(G,Q)||H7(Z,z,Q)))break;X.push(EX(F9(G,Q)))}return{block:{id:z9(),type:"p",content:X.join(`
|
|
98
|
+
`)},next:z}}function cX(Z,J){if(F7(Z,J))return!0;let Q=F9(Z,J);return!!Q.match(y9.fenceOpen)||!!Q.match(y9.h)||y9.divider.test(Q.trim())||y9.quote.test(Q)}function F7(Z,J){let Q=I9(Z);if(Q<J)return null;let X=F9(Z,Q),z=X.match(/^[-*+]\s+\[([ xX])\]\s*(.*)$/);if(z)return{indent:Q,type:"todo",checked:z[1].toLowerCase()==="x",content:z[2]};if(z=X.match(/^(\d+)[.)](?:\s+(.*))?$/),z)return{indent:Q,type:"numbered",content:z[2]??"",num:parseInt(z[1],10)};if(z=X.match(/^[-*+](?:\s+(.*))?$/),z)return{indent:Q,type:"bullet",content:z[1]??""};return null}function U7(Z,J,Q){let X=" ".repeat(J);switch(Z.type){case"h1":return[`${X}# ${Z.content}`];case"h2":return[`${X}## ${Z.content}`];case"h3":return[`${X}### ${Z.content}`];case"bullet":case"numbered":case"todo":return dX(Z,J,Q);case"quote":return Z.content.split(`
|
|
99
|
+
`).map((z)=>`${X}>${z?` ${z}`:""}`);case"code":{let z=`${X}\`\`\`${Z.lang?m1(Z.lang):""}`,G=Z.content.split(`
|
|
100
|
+
`).map((W)=>`${X}${W}`);return[z,...G,`${X}\`\`\``]}case"table":return mX(Z,J);case"divider":return[`${X}---`];default:return Z.content.split(`
|
|
101
|
+
`).map((z)=>`${X}${uX(z)}`)}}function dX(Z,J,Q){let X=" ".repeat(J),z=Z.type==="numbered"?`${Q}. `:Z.type==="todo"?`- [${Z.checked?"x":" "}] `:"- ",G=[`${X}${z}${Z.content}`],W=Z.children??[],q=W.find((Y)=>!i9(Y)&&L7(Y));if(q){if(!e0(q.type)&&Z.content.trim()!=="")G.push("");G.push(...G7(W,J+2,!1))}return G}function iX(Z,J){if(!Z)return!1;return!(e0(Z.type)&&e0(J.type))}function L7(Z){if(Z.type==="divider")return!0;if(e0(Z.type))return!0;if(Z.type==="code")return Z.content.trim()!==""||!!Z.lang?.trim();if(Z.type==="table")return(Z.rows??[]).some((J)=>J.some((Q)=>Q.trim()!==""));return Z.content.trim()!==""}function I9(Z){let J=0;for(let Q of Z)if(Q===" ")J++;else if(Q==="\t")J+=4;else break;return J}function F9(Z,J){let Q=0,X=0;for(;X<Z.length&&Q<J;X++){let z=Z[X];if(z===" ")Q++;else if(z==="\t")Q+=4;else break}return Z.slice(X)}function aX(Z,J,Q){let X=Z.trim();if(!X||X[0]!==J)return!1;for(let z of X)if(z!==J)return!1;return X.length>=Q}function m1(Z){return Z.trim().replace(/[^A-Za-z0-9_+.#-]/g,"")}var u1=[{id:"",label:"纯文本"},{id:"bash",label:"Bash"},{id:"shell",label:"Shell"},{id:"javascript",label:"JavaScript"},{id:"typescript",label:"TypeScript"},{id:"json",label:"JSON"},{id:"python",label:"Python"},{id:"go",label:"Go"},{id:"rust",label:"Rust"},{id:"java",label:"Java"},{id:"c",label:"C"},{id:"cpp",label:"C++"},{id:"csharp",label:"C#"},{id:"sql",label:"SQL"},{id:"yaml",label:"YAML"},{id:"xml",label:"HTML / XML"},{id:"css",label:"CSS"},{id:"scss",label:"SCSS"},{id:"markdown",label:"Markdown"},{id:"php",label:"PHP"},{id:"ruby",label:"Ruby"},{id:"swift",label:"Swift"},{id:"kotlin",label:"Kotlin"},{id:"objectivec",label:"Objective-C"},{id:"perl",label:"Perl"},{id:"lua",label:"Lua"},{id:"makefile",label:"Makefile"},{id:"ini",label:"INI / TOML"},{id:"diff",label:"Diff"}],E1=[{type:"p",ic:"text",t:"文本",d:"普通段落"},{type:"h1",ic:"heading",t:"标题 1",d:"大号标题"},{type:"h2",ic:"heading",t:"标题 2",d:"中号标题"},{type:"h3",ic:"heading",t:"标题 3",d:"小号标题"},{type:"bullet",ic:"list",t:"无序列表",d:"项目符号"},{type:"numbered",ic:"numList",t:"有序列表",d:"编号列表"},{type:"todo",ic:"checkbox",t:"待办清单",d:"复选项"},{type:"quote",ic:"quote",t:"引用",d:"引用块"},{type:"code",ic:"code",t:"代码",d:"代码块"},{type:"table",ic:"table",t:"表格",d:"插入表格"},{type:"divider",ic:"minus",t:"分隔线",d:"水平分隔"}];function x0(Z,J,Q=null){for(let X=0;X<Z.length;X++){let z=Z[X];if(z.id===J)return{block:z,parent:Z,index:X,parentBlock:Q};let G=z.children?x0(z.children,J,z):null;if(G)return G}return null}function p1(Z){let J=0;for(let Q of Z)J+=1+p1(Q.children??[]);return J}function M8(Z){return{...Z,id:z9(),children:Z.children?.map(M8)}}function c1(Z,J){for(let Q of Z??[])if(Q.id===J||c1(Q.children,J))return!0;return!1}function W9(Z,J=[]){for(let Q of Z)if(J.push(Q),Q.children)W9(Q.children,J);return J}function SZ(Z,J){let Q=null,X=null,z=(G)=>{for(let W of G){if(W.id===J){X=Q;return}if(Q=W,W.children)z(W.children);if(X)return}};return z(Z),X}function d1(Z,J){let Q=W9(Z),X=Q.findIndex((z)=>z.id===J);return X>=0&&X+1<Q.length?Q[X+1]:null}function _8(Z,J){let Q=x0(Z,J);if(!Q)return null;let[X]=Q.parent.splice(Q.index,1);if(Q.parent.length===0&&Q.parentBlock)delete Q.parentBlock.children;return X??null}function B7(Z,J,Q,X){if(J===Q)return!1;let z=x0(Z,J),G=x0(Z,Q);if(!z||!G||c1(z.block.children,Q))return!1;let W=z.parent.splice(z.index,1)[0],q=x0(Z,Q);if(!q)return z.parent.splice(z.index,0,W),!1;if(z.parent.length===0&&z.parentBlock)delete z.parentBlock.children;return q.parent.splice(q.index+(X==="after"?1:0),0,W),!0}function i1(Z,J){let Q=x0(Z,J);if(!Q||Q.index===0)return!1;let X=Q.parent[Q.index-1];if(!e0(X.type))return!1;let z=Q.parent.splice(Q.index,1)[0];return X.children??=[],X.children.push(z),!0}function a1(Z,J){let Q=x0(Z,J);if(!Q?.parentBlock)return!1;let X=x0(Z,Q.parentBlock.id);if(!X)return!1;let z=Q.parent.splice(Q.index);if(!z.length)return!1;if(Q.parent.length===0)delete Q.parentBlock.children;return X.parent.splice(X.index+1,0,...z),!0}function HZ(Z,J){let Q=new Set(J),X=[],z=(G,W)=>{for(let q of G){let Y=Q.has(q.id);if(Y&&!W)X.push(q.id);if(q.children)z(q.children,W||Y)}};return z(Z,!1),X}function P7(Z,J,Q){let X=W9(Z),z=X.findIndex((Y)=>Y.id===J),G=X.findIndex((Y)=>Y.id===Q);if(z<0||G<0)return[];let[W,q]=z<=G?[z,G]:[G,z];return X.slice(W,q+1).map((Y)=>Y.id)}function O7(Z,J){if(!J.length)return null;let Q=new Set(J),X=W9(Z),z=X.findIndex((W)=>Q.has(W.id));if(z<0)return null;let G=null;for(let W=z-1;W>=0;W--)if(!Q.has(X[W].id)){G=X[W].id;break}if(!G){for(let W=z+1;W<X.length;W++)if(!Q.has(X[W].id)){G=X[W].id;break}}for(let W of HZ(Z,J))_8(Z,W);if(G&&!x0(Z,G))G=null;return G??W9(Z)[0]?.id??null}function w7(Z,J){let Q=HZ(Z,J);if(!Q.length)return[];let X=[];for(let G of Q){let W=x0(Z,G);if(W)X.push(M8(W.block))}let z=x0(Z,Q[Q.length-1]);if(!z||!X.length)return[];return z.parent.splice(z.index+1,0,...X),X.map((G)=>G.id)}function A7(Z,J,Q,X){let z=HZ(Z,J);if(!z.length||z.includes(Q))return!1;for(let q of z){let Y=x0(Z,q);if(Y&&c1(Y.block.children,Q))return!1}let G=[];for(let q of z){let Y=_8(Z,q);if(Y)G.push(Y)}let W=x0(Z,Q);if(!W)return Z.push(...G),!1;return W.parent.splice(W.index+(X==="after"?1:0),0,...G),!0}function C7(Z,J){let Q=HZ(Z,J).map((X)=>x0(Z,X)?.block).filter((X)=>!!X);return X7(Q)}function N7(Z,J){let Q=[];for(let X of HZ(Z,J))if(i1(Z,X))Q.push(X);return Q}function y7(Z,J){let Q=[];for(let X of HZ(Z,J))if(a1(Z,X))Q.push(X);return Q}function VZ(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var M7=String.fromCharCode(57344),_7=String.fromCharCode(57345),lX=new RegExp(M7+"(\\d+)"+_7,"g");function fZ(Z){let J=[],Q=Z.replace(/`([^`]+)`/g,(X,z)=>{return J.push(z),M7+(J.length-1)+_7});return Q=VZ(Q),Q=Q.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g,(X,z,G)=>{return`<img src="${String(G).replace(/"/g,""")}" alt="${z}" class="doc-img" loading="lazy">`}),Q=Q.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(X,z,G)=>{return`<a href="${String(G).replace(/"/g,""")}" target="_blank" rel="noreferrer">${z}</a>`}),Q=Q.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),Q=Q.replace(/(^|[^*])\*([^*\n]+)\*/g,"$1<em>$2</em>"),Q=Q.replace(/\n/g,"<br>"),Q=Q.replace(lX,(X,z)=>`<code>${VZ(J[+z]??"")}</code>`),Q}function l9(Z){let J=document.createElement("div");return J.innerHTML=Z,v7(J).replace(/\n{3,}/g,`
|
|
102
|
+
|
|
103
|
+
`).replace(/\n$/,"")}function v7(Z){let J="";return Z.childNodes.forEach((Q)=>{if(Q.nodeType===Node.TEXT_NODE){J+=(Q.textContent??"").replace(/\u00a0/g," ");return}if(!(Q instanceof HTMLElement))return;let X=Q.tagName.toLowerCase();if(X==="img"){let G=Q.getAttribute("src")||"";J+=G?``:"";return}let z=v7(Q);if(X==="br")J+=`
|
|
104
|
+
`;else if(X==="strong"||X==="b")J+=z?`**${z}**`:"";else if(X==="em"||X==="i")J+=z?`*${z}*`:"";else if(X==="code")J+=z?"`"+z+"`":"";else if(X==="a"){let G=Q.getAttribute("href")||"";J+=G?`[${z}](${G})`:z}else if(X==="div"||X==="p")J+=(J&&!J.endsWith(`
|
|
105
105
|
`)?`
|
|
106
|
-
`:"")+
|
|
106
|
+
`:"")+z;else J+=z}),J}function T7(){return typeof CSS<"u"&&!!CSS.highlights&&typeof globalThis.Highlight==="function"}function v8(Z){return/[A-Za-z0-9_]/.test(Z)}function nX(Z,J,Q){let X=Z[J]??"",z=Z[Q-1]??"",G=J>0?Z[J-1]:"",W=Q<Z.length?Z[Q]:"",q=!v8(X)||!v8(G),Y=!v8(z)||!v8(W);return q&&Y}function l1(Z,J,Q){let X=[];if(!J)return X;let z=Q.caseSensitive?Z:Z.toLowerCase(),G=Q.caseSensitive?J:J.toLowerCase(),W=0;for(;;){let q=z.indexOf(G,W);if(q<0)break;let Y=q+G.length;if(!Q.wholeWord||nX(Z,q,Y))X.push([q,Y]);W=Y>q?Y:q+1}return X}function k7(Z,J,Q){for(let X=Z.length-1;X>=0;X--)if(Q>=J[X])return{node:Z[X],offset:Q-J[X]};return null}function R7(Z,J,Q){let X=[];if(!J)return X;let z=Array.from(Z.querySelectorAll(".doc-title, .editable, .doc-td, pre.code-hl > code.hljs"));for(let G of z){let W=[],q=document.createTreeWalker(G,NodeFilter.SHOW_TEXT),Y;while(Y=q.nextNode())W.push(Y);if(!W.length)continue;let H="",F=[];for(let K of W)F.push(H.length),H+=K.data;for(let[K,P]of l1(H,J,Q)){let A=k7(W,F,K),L=k7(W,F,P);if(!A||!L)continue;let y=document.createRange();y.setStart(A.node,A.offset),y.setEnd(L.node,L.offset),X.push(y)}}return X}function I7(Z,J){if(!T7())return;let Q=globalThis.Highlight,X=CSS.highlights;if(Z.length)X.set("mh-find-all",new Q(...Z));else X.delete("mh-find-all");if(J){let z=new Q(J);z.priority=1,X.set("mh-find-current",z)}else X.delete("mh-find-current")}function k8(){if(!T7())return;let Z=CSS.highlights;Z.delete("mh-find-all"),Z.delete("mh-find-current")}function rX(Z,J){let Q;try{Q=J&&A8.getLanguage(J)?A8.highlight(Z,{language:J,ignoreIllegals:!0}).value:A8.highlightAuto(Z).value}catch{Q=VZ(Z)}return Z.endsWith(`
|
|
107
107
|
`)?Q+`
|
|
108
|
-
`:Q}function
|
|
109
|
-
`);if(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
`).length,k="1";
|
|
114
|
-
`+T;G.current.textContent=k}let B=q.current;if(B)B.style.height="auto",B.style.height=B.scrollHeight+"px"};r(()=>{let L=q.current;if(L&&L.value!==Z.content)L.value=Z.content;F(Z.content)},[J,Z.lang]);let Y=Z.lang??"",C=F8.some((L)=>L.id===Y);return z("div",{class:"codeblock",children:[z("div",{class:"code-body",children:[z("div",{ref:G,class:"code-gutter","aria-hidden":"true",children:"1"},void 0,!1,void 0,this),z("div",{class:"code-scroll",children:[z("pre",{class:"code-hl","aria-hidden":"true",children:z("code",{ref:W,class:"hljs"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("textarea",{ref:q,class:"code-input",rows:1,spellcheck:!1,wrap:"off",placeholder:"输入代码…",onInput:(L)=>{let B=L.currentTarget;Q(B.value),F(B.value)},onKeyDown:(L)=>X(L,L.currentTarget),onScroll:(L)=>{let B=W.current?.parentElement;if(B)B.scrollLeft=L.currentTarget.scrollLeft}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"code-tools",children:[z("span",{class:"code-lang",children:[z("select",{value:Y,onChange:(L)=>$(L.currentTarget.value),children:[!C&&z("option",{value:Y,children:Y||"纯文本"},void 0,!1,void 0,this),F8.map((L)=>z("option",{value:L.id,children:L.label},L.id,!1,void 0,this))]},void 0,!0,void 0,this),z(f,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"code-copy"+(K?" ok":""),title:"复制代码",onClick:()=>{let L=q.current?.value??Z.content;navigator.clipboard?.writeText(L).then(()=>{H(!0),setTimeout(()=>H(!1),1400)}).catch(()=>{})},children:[z(f,{name:K?"check":"copy",cls:"ico sm"},void 0,!1,void 0,this),K?"已复制":"复制"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function a$({block:Z,renderKey:J,onCellInput:Q,onTableChange:$}){let X=Z.rows??[],q=X[0]?.length??0,W=Z.align??[],G=H0(null),K=H0([]);if(K.current.length!==q)K.current=Array.from({length:q},(P,_)=>K.current[_]??160);let H=()=>{Z.rows=[...X,Array(q).fill("")],$()},F=()=>{Z.rows=X.map((P)=>[...P,""]),Z.align=[...W,null],$()},Y=(P)=>{Z.rows=X.map((A)=>{let y=[...A];return y.splice(P,0,""),y});let _=[...W];_.splice(P,0,null),Z.align=_,$()},C=(P)=>{if(q<=1)return;Z.rows=X.map((_)=>_.filter((A,y)=>y!==P)),Z.align=W.filter((_,A)=>A!==P),$()},L=(P)=>{if(P===0||X.length<=2)return;Z.rows=X.filter((_,A)=>A!==P),$()},B=(P,_)=>{let A=Array.from({length:q},(y,x)=>W[x]??null);A[P]=_,Z.align=A,$()},M=(P,_)=>{let A=G.current?.querySelector(`.doc-td[data-r="${P}"][data-c="${_}"]`);if(!A)return!1;A.focus();let y=document.createRange();y.selectNodeContents(A),y.collapse(!1);let x=getSelection();return x?.removeAllRanges(),x?.addRange(y),!0},k=(P,_,A)=>{if(P.isComposing||P.keyCode===229)return;if(P.key==="Tab"){if(P.preventDefault(),P.shiftKey){if(A>0)M(_,A-1);else if(_>0)M(_-1,q-1)}else if(A<q-1)M(_,A+1);else if(_<X.length-1)M(_+1,0);else H(),requestAnimationFrame(()=>M(X.length,0));return}if(P.key==="Enter"){if(P.preventDefault(),_<X.length-1)M(_+1,A);else H(),requestAnimationFrame(()=>M(X.length,A));return}},T=(P,_)=>{P.preventDefault(),P.stopPropagation(),xZ(P,{col:G.current?.querySelector(`col[data-tcol="${_}"]`)??null,startWidth:K.current[_]??160,min:60,onDone:(A)=>{K.current[_]=A}})},O=(P,_)=>{P.preventDefault(),P.stopPropagation(),R0(P,(A)=>z(n,{children:[z(u0,{children:"对齐方式"},void 0,!1,void 0,this),z(t,{icon:"alignLeft",label:"左对齐",checked:(W[_]??null)===null||W[_]==="left",onClick:()=>{B(_,"left"),A()}},void 0,!1,void 0,this),z(t,{icon:"alignCenter",label:"居中",checked:W[_]==="center",onClick:()=>{B(_,"center"),A()}},void 0,!1,void 0,this),z(t,{icon:"alignRight",label:"右对齐",checked:W[_]==="right",onClick:()=>{B(_,"right"),A()}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"plus",label:"在左侧插入列",onClick:()=>{Y(_),A()}},void 0,!1,void 0,this),z(t,{icon:"cornerUpRight",label:"在右侧插入列",onClick:()=>{Y(_+1),A()}},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除列",danger:!0,onClick:()=>{C(_),A()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return z("div",{class:"doc-table-wrap",children:z("div",{class:"doc-table-scroll",children:z("div",{class:"doc-table-inner",children:[z("div",{class:"doc-table-row",children:[z("table",{ref:G,class:"doc-table",children:[z("colgroup",{children:Array.from({length:q},(P,_)=>z("col",{"data-tcol":_,style:{width:K.current[_]}},_,!1,void 0,this))},void 0,!1,void 0,this),z("tbody",{children:X.map((P,_)=>z("tr",{children:P.map((A,y)=>z("td",{class:_===0?"doc-th":void 0,children:[z(l$,{value:A,renderKey:J,r:_,c:y,align:W[y]??null,onInput:(x)=>Q(_,y,x),onKeyDown:(x)=>k(x,_,y)},void 0,!1,void 0,this),_===0&&z(n,{children:[z("button",{class:"doc-col-menu",title:"列选项",onMouseDown:(x)=>O(x,y),children:z(f,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("div",{class:"doc-col-resizer",onPointerDown:(x)=>T(x,y)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),y===0&&_>0&&X.length>2&&z("button",{class:"doc-row-del",title:"删除行",onMouseDown:(x)=>{x.preventDefault(),x.stopPropagation(),L(_)},children:z(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},y,!0,void 0,this))},_,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"doc-table-addcol",title:"新增列",onMouseDown:(P)=>{P.preventDefault(),F()},children:z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"doc-table-addrow",title:"新增行",onMouseDown:(P)=>{P.preventDefault(),H()},children:z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function l$({value:Z,renderKey:J,r:Q,c:$,align:X,onInput:q,onKeyDown:W}){let G=H0(null);return r(()=>{let K=G.current;if(K){let H=YZ(Z);if(K.innerHTML!==H&&V9(K.innerHTML)!==Z)K.innerHTML=H}},[J]),z("div",{ref:G,class:"doc-td","data-r":Q,"data-c":$,contentEditable:!0,"data-ph":Q===0?"表头":"",style:X?{textAlign:X}:void 0,onInput:(K)=>q(V9(K.currentTarget.innerHTML)),onKeyDown:(K)=>W(K)},void 0,!1,void 0,this)}function n$({term:Z,caseSensitive:J,wholeWord:Q,idx:$,total:X,onTerm:q,onToggleCase:W,onToggleWord:G,onStep:K,onClose:H}){let F=(Y)=>Y.preventDefault();return z("div",{class:"find-bar",role:"search",children:[z(f,{name:"search",cls:"ico sm find-ico"},void 0,!1,void 0,this),z("input",{type:"text",placeholder:"在文档中查找",value:Z,autoFocus:!0,onInput:(Y)=>q(Y.currentTarget.value),onKeyDown:(Y)=>{if(Y.key==="Enter")Y.preventDefault(),K(Y.shiftKey?-1:1);else if(Y.key==="Escape")Y.preventDefault(),H()}},void 0,!1,void 0,this),z("span",{class:"find-count",children:X?`${$+1} / ${X}`:Z?"无结果":""},void 0,!1,void 0,this),z("button",{class:"find-opt"+(J?" on":""),title:"区分大小写",onMouseDown:F,onClick:W,children:"Aa"},void 0,!1,void 0,this),z("button",{class:"find-opt"+(Q?" on":""),title:"全词匹配",onMouseDown:F,onClick:G,children:"全词"},void 0,!1,void 0,this),z("button",{class:"find-nav",title:"上一个 (Shift+Enter)",disabled:!X,onMouseDown:F,onClick:()=>K(-1),children:z(f,{name:"chevronDown",cls:"ico sm find-prev"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{class:"find-nav",title:"下一个 (Enter)",disabled:!X,onMouseDown:F,onClick:()=>K(1),children:z(f,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{class:"find-nav find-close",title:"关闭 (Esc)",onClick:H,children:z(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function r$({x:Z,y:J,onCommand:Q}){let $=(X)=>(q)=>{q.preventDefault(),Q(X)};return z("div",{class:"pop",style:{left:Math.max(8,Math.min(Z,innerWidth-220)),top:J-46,minWidth:0,padding:3,display:"flex",gap:1},children:[["bold","bold"],["italic","italic"],["underline","underline"],["strikeThrough","strike"],["code","code"],["createLink","link"]].map(([X,q])=>z("button",{class:"item",style:{width:34,justifyContent:"center",padding:"7px 0"},onMouseDown:$(X),children:z(f,{name:q,cls:"ico sm"},void 0,!1,void 0,this)},X,!1,void 0,this))},void 0,!1,void 0,this)}function o$(){let Z=getSelection();if(!Z||Z.isCollapsed)return;document.execCommand("insertHTML",!1,`<code>${FZ(Z.toString())}</code>`)}function o9(Z){document.querySelectorAll(".doc .block[data-bid]").forEach((J)=>t$(Z,J))}function t$(Z,J){let Q=J.matches(".block[data-bid]")?J:J.closest(".block[data-bid]"),$=Q?.getAttribute("data-bid"),X=$?j0(Z,$)?.block:null;if(!X||!Q)return;let q=Q.querySelector(".editable"),W=Q.querySelector(".code-input");if(q)X.content=UZ(X,q);else if(W)X.content=W.value}function s$(Z){return(Z instanceof HTMLElement?Z:Z.parentElement)?.closest(".block[data-bid]")??null}function E7(){return document.activeElement?.closest?.(".doc .block[data-bid]")?.getAttribute("data-bid")??null}function A8(Z){document.querySelector(".doc")?.classList.toggle("selecting",Z)}function z1(){getSelection()?.removeAllRanges(),document.activeElement?.blur?.(),A8(!0)}function C8(Z){let J=getSelection();if(!J||J.isCollapsed||!J.rangeCount)return Z(null);if(!J.anchorNode?.parentElement?.closest?.(".editable"))return Z(null);let $=J.getRangeAt(0),X=$.getBoundingClientRect(),q=X.width||X.height?X:$.getClientRects()[0];if(!q)return Z(null);Z({x:q.left,y:q.top})}function e$(Z){let J=getSelection()?.anchorNode?.parentElement?.closest?.(".editable"),$=J?.closest(".block")?.getAttribute("data-bid"),X=$?j0(Z,$)?.block:null;if(X&&J)X.content=UZ(X,J)}function UZ(Z,J){return V9(J.innerHTML)}function O8(){let Z=getSelection();return!!Z&&!Z.isCollapsed}function Z2(Z){let J=getSelection();if(!J||!J.rangeCount)return 0;let Q=J.getRangeAt(0);if(!Z.contains(Q.startContainer))return 0;let $=document.createRange();return $.selectNodeContents(Z),$.setEnd(Q.startContainer,Q.startOffset),$.toString().length}function $1(Z){let J=document.querySelector(`.block[data-bid="${Z}"]`),Q=document.activeElement;if(!J||!Q||!J.contains(Q))return null;if(Q instanceof HTMLTextAreaElement)return Q.selectionStart;let $=J.querySelector(".editable");return $?Z2($):null}function X1(Z,J){let Q=document.querySelector(`.block[data-bid="${Z}"] .code-input`);if(Q){Q.focus();let $=Math.min(J,Q.value.length);Q.setSelectionRange($,$);return}M8(Z,J)}function J2(Z){let J=getSelection();if(!J||!J.rangeCount||!J.isCollapsed)return!1;let Q=J.getRangeAt(0);if(!Z.contains(Q.startContainer))return!1;let $=document.createRange();return $.selectNodeContents(Z),$.setEnd(Q.startContainer,Q.startOffset),$.toString().length===0}function Q2(){let Z=getSelection();if(!Z||!Z.rangeCount)return{x:80,y:120};let J=Z.getRangeAt(0).getBoundingClientRect();return{x:J.left||80,y:J.top||120}}function z2(Z){let J=getSelection();if(!J||!J.rangeCount)return{first:!0,last:!0};let Q=J.getRangeAt(0).getBoundingClientRect(),$=Z.getBoundingClientRect();if(!Q.height&&!Q.top)return{first:!0,last:!0};let X=parseFloat(getComputedStyle(Z).lineHeight)||Q.height||20;return{first:Q.top-$.top<X*0.5,last:$.bottom-Q.bottom<X*0.5}}function $2(Z){let J=Z.textContent??"";if(J.trim()==="")return!0;let Q=getSelection();if(!Q||!Q.rangeCount||Q.isCollapsed)return!1;if(!Z.contains(Q.anchorNode)||!Z.contains(Q.focusNode))return!1;return Q.toString().length>=J.length}function _8(Z){let J=getSelection();if(!J||!J.rangeCount||!Z.contains(J.getRangeAt(0).startContainer))return{before:V9(Z.innerHTML),after:""};let Q=J.getRangeAt(0),$=(X)=>{let q=document.createRange();q.selectNodeContents(Z),X(q);let W=document.createElement("div");return W.appendChild(q.cloneContents()),V9(W.innerHTML)};return{before:$((X)=>X.setEnd(Q.startContainer,Q.startOffset)),after:$((X)=>X.setStart(Q.endContainer,Q.endOffset))}}function p7(Z){let J=document.createElement("div");return J.innerHTML=YZ(Z),(J.textContent??"").length}function M8(Z,J){let Q=document.querySelector(`.block[data-bid="${Z}"] .editable`);if(!Q)return;Q.focus();let $=document.createTreeWalker(Q,NodeFilter.SHOW_TEXT),X=J,q=null;for(let K=$.nextNode();K;K=$.nextNode()){if(q=K,X<=K.data.length)break;X-=K.data.length}let W=document.createRange();if(q)W.setStart(q,Math.min(X,q.data.length));else W.selectNodeContents(Q);W.collapse(!0);let G=getSelection();G?.removeAllRanges(),G?.addRange(W)}function E0(Z,J=!1){let Q=`.block[data-bid="${Z}"] .editable, .block[data-bid="${Z}"] .code-input`,$=document.querySelector(Q);if(!$)return;if($.focus(),$ instanceof HTMLTextAreaElement){let W=J?$.value.length:0;$.setSelectionRange(W,W);return}let X=document.createRange();X.selectNodeContents($),X.collapse(!J);let q=getSelection();q?.removeAllRanges(),q?.addRange(X)}function c7(Z){Z.style.height="auto",Z.style.height=Z.scrollHeight+"px"}var i7=$9;function X2(Z,J){v1(Z,J,"y")}function N8(){let Z=localStorage.getItem("mh-theme");return Z==="light"||Z==="dark"||Z==="system"?Z:"system"}function v8(){let Z=N8(),J=Z==="dark"||Z!=="light"&&matchMedia("(prefers-color-scheme: dark)").matches;document.documentElement.dataset.resolved=J?"dark":"light"}function a7(Z){localStorage.setItem("mh-theme",Z),v8(),W1()}function W1(){let Z=document.getElementById("theme-color-meta");if(!Z)return;let J=document.body.classList.contains("mobile")&&!document.body.classList.contains("mobile-content"),Q=getComputedStyle(document.documentElement).getPropertyValue(J?"--sidebar":"--bg").trim();if(Q)Z.setAttribute("content",Q)}function S9(Z,J){let Q=Z.replace(/^v/,"").split(".").map((X)=>parseInt(X,10)||0),$=J.replace(/^v/,"").split(".").map((X)=>parseInt(X,10)||0);for(let X=0;X<Math.max(Q.length,$.length);X++){let q=(Q[X]??0)-($[X]??0);if(q!==0)return q}return 0}var q2=[{value:"light",icon:"sun",name:"浅色",desc:"始终使用明亮界面"},{value:"dark",icon:"moon",name:"深色",desc:"始终使用暗色界面"},{value:"system",icon:"monitor",name:"跟随系统",desc:"随操作系统外观自动切换"}];function n7({onUpdatePending:Z}={}){let[J,Q]=b(N8()),$=(X)=>{a7(X),Q(X)};return z("div",{class:"set-page",children:[z("div",{class:"set-title",children:"设置"},void 0,!1,void 0,this),z("div",{class:"set-sub",children:"个性化你的 Metahub 工作区。"},void 0,!1,void 0,this),z("div",{class:"set-section",children:[z("div",{class:"set-section-head",children:"外观"},void 0,!1,void 0,this),z("div",{class:"set-section-desc",children:"选择界面的颜色主题。"},void 0,!1,void 0,this),z("div",{class:"theme-grid",children:q2.map((X)=>z("button",{class:"theme-card"+(J===X.value?" sel":""),"aria-pressed":J===X.value,onClick:()=>$(X.value),children:[z("span",{class:"tc-check",children:z(f,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"tc-ico",children:z(f,{name:X.icon},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"tc-name",children:X.name},void 0,!1,void 0,this),z("span",{class:"tc-desc",children:X.desc},void 0,!1,void 0,this)]},X.value,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),typeof window<"u"&&window.metahubDesktop?.quicknote&&z(F2,{},void 0,!1,void 0,this),z(G2,{},void 0,!1,void 0,this),z(Y2,{},void 0,!1,void 0,this),z(U2,{},void 0,!1,void 0,this),z(H2,{onUpdatePending:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function W2(){if(typeof Worker>"u"||typeof navigator>"u")return"此浏览器不支持 Web Worker。";if(!window.isSecureContext)return"需要 HTTPS(安全上下文)。当前是 http:// 访问,浏览器不开放离线所需的 OPFS 与 Service Worker——给服务器配置 TLS(--tls-cert/--tls-key,或 Caddy / Tailscale Serve 反代;iPhone 需要受信任的证书),或在本机用 localhost 访问。";if(!navigator.storage?.getDirectory)return"此浏览器不支持 OPFS 本地存储(需要 Safari 17+ / Chrome / Firefox 较新版本)。";return null}function G2(){let Z=W2(),[J,Q]=b(bZ()),[$,X]=b(K4()),[q,W]=b(!1),[G,K]=b(null);r(()=>fZ((L)=>X({...L})),[]),r(()=>{if(!J||!navigator.storage?.estimate)return;let L=!0,B=()=>navigator.storage.estimate().then((k)=>{if(L&&k.usage!=null)K((k.usage/1024/1024).toFixed(1))});B();let M=fZ(()=>void B());return()=>{L=!1,M()}},[J]);let H=async()=>{if(!await b0({title:"重置本地副本",message:"将删除此浏览器里的全部本地数据(服务器数据不受影响),并停用离线副本。未同步的本地修改会丢失——建议先「立即同步」。",confirmLabel:"删除并重置",danger:!0}))return;W(!0);try{await L4(),Q(!1),Z0("本地副本已重置")}catch(B){Z0(`重置失败:${B.message}`)}finally{W(!1)}},F=async()=>{W(!0);try{await U4(),Q(!0),Z0("离线副本已启用,正在下载数据…")}catch(L){Z0(`启用失败:${L.message}`)}finally{W(!1)}},Y=async()=>{if(!await b0({title:"停用离线副本",message:"此浏览器将恢复纯在线模式。已下载的本地数据保留在浏览器里,重新启用后从断点续传。",confirmLabel:"停用",danger:!0}))return;W(!0);try{await B4(),Q(!1),Z0("已停用离线副本")}finally{W(!1)}},C=()=>{if(!J)return"未启用 — 此浏览器为纯在线客户端,断网不可用。";if($.state==="error")return`副本异常(已自动回退在线模式):${$.error??"未知错误"}`;if($.state==="hydrating")return`正在下载数据… 已接收 ${$.hydrated??0} 条变更`;if($.lastSync){let L=R8($.lastSync.at);return $.lastSync.ok?`本地优先已生效 · 上次同步 ${L}(推送 ${$.lastSync.pushed} / 拉取 ${$.lastSync.pulled})`:`上次同步失败(${L}):${$.lastSync.error??""} — 本地读写不受影响,恢复网络后自动重试`}return"等待首次同步…"};if(Z)return z("div",{class:"set-section",children:[z("div",{class:"set-section-head",children:"离线副本"},void 0,!1,void 0,this),z("div",{class:"set-section-desc",children:"让此浏览器持有完整的本地数据副本:弱网/离线也能查看和编辑全部内容,恢复连接后自动同步。"},void 0,!1,void 0,this),z("div",{class:"peer-sub",children:["⚠ 当前环境不可用:",Z]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);return z("div",{class:"set-section",children:[z("div",{class:"set-section-head",children:"离线副本"},void 0,!1,void 0,this),z("div",{class:"set-section-desc",children:"让此浏览器持有完整的本地数据副本:弱网/离线也能查看和编辑全部内容,恢复连接后自动同步。 启用即与服务器配对,凭据可在「已授权设备」中单独吊销。"},void 0,!1,void 0,this),z("div",{class:"peer-actions",children:J?z(n,{children:[z("button",{class:"btn btn-secondary",disabled:q,onClick:()=>D9(),children:[z(f,{name:"share",cls:"ico sm"},void 0,!1,void 0,this)," 立即同步"]},void 0,!0,void 0,this),z("button",{class:"btn btn-ghost",disabled:q,onClick:Y,children:"停用"},void 0,!1,void 0,this),z("button",{class:"btn btn-ghost",disabled:q,onClick:H,children:"重置本地副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):z("button",{class:"btn btn-primary",disabled:q,onClick:F,children:[z(f,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)," ",q?"启用中…":"启用离线副本"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),z("div",{class:"peer-sub",style:"margin-top:8px",children:[C(),J&&$.node?` · 节点 ${$.node}`:"",J&&G?` · 本地占用 ${G} MB`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function H2({onUpdatePending:Z}){let J=typeof window<"u"?window.metahubDesktop?.coreUpdate:void 0,[Q,$]=b(null),[X,q]=b(null),[W,G]=b(null),[K,H]=b(null),[F,Y]=b("idle"),[C,L]=b("");r(()=>{u.version().then((_)=>q(_.version)).catch(()=>q(null)),(typeof window<"u"?window.metahubDesktop:void 0)?.appVersion?.().then($).catch(()=>$(null)),J?.installedVersion().then(G).catch(()=>G(null))},[]),r(()=>{if(F==="idle"&&X&&W&&S9(W,X)>0)Y("staged"),Z?.(!0)},[X,W]);let B=()=>{if(X&&W)return S9(W,X)>0?W:X;return W??X},M=()=>!!(X&&W&&S9(W,X)>0),k=async()=>{Y("checking"),L("");try{let{latest:P}=await J.check(),_=B();if(P&&(!_||S9(P,_)>0))H(P),Y("available"),Z?.(!0);else Z0("已是最新版本"),Y(M()?"staged":"idle")}catch(P){L(P.message),Y("error")}},T=async()=>{Y("downloading"),L("");try{let P=await J.download();if(P)G(P),Y("staged"),Z?.(!0),Z0(`已下载 v${P}`);else Z0("已是最新版本"),Y(M()?"staged":"idle")}catch(P){L(P.message),Y("error")}},O=null;if(J)switch(F){case"checking":O=z("span",{class:"ver-act","aria-disabled":"true",children:"检查中…"},void 0,!1,void 0,this);break;case"downloading":O=z("span",{class:"ver-act","aria-disabled":"true",children:"下载中…"},void 0,!1,void 0,this);break;case"available":O=z("span",{class:"ver-up",children:[z("span",{class:"ver-dot pulse"},void 0,!1,void 0,this),z("span",{children:["新版本 ",z("span",{class:"ver-num",children:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"ver-act accent",onClick:T,title:`下载并更新到 v${K}`,children:"下载"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;case"staged":O=z("span",{class:"ver-up",children:[z("span",{class:"ver-dot pulse"},void 0,!1,void 0,this),z("span",{children:[z("span",{class:"ver-num",children:W},void 0,!1,void 0,this)," 待重启"]},void 0,!0,void 0,this),z("button",{class:"ver-act accent",onClick:()=>void J.restart(),title:`重启应用以更新到 v${W}`,children:"重启"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;case"error":O=z("span",{class:"ver-up err",children:[z("span",{class:"ver-msg",children:"检查失败"},void 0,!1,void 0,this),z("button",{class:"ver-act",onClick:k,title:C||"重试",children:"重试"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;default:O=z("button",{class:"ver-act",onClick:k,children:"检查更新"},void 0,!1,void 0,this)}return z("div",{class:"set-footer",children:[Q&&z("span",{children:["App ",z("span",{class:"ver-num",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q&&X&&z("span",{class:"set-footer-sep",children:"·"},void 0,!1,void 0,this),X&&z("span",{children:["Core ",z("span",{class:"ver-num",children:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this),O&&(X||Q)&&z("span",{class:"set-footer-sep",children:"·"},void 0,!1,void 0,this),O]},void 0,!0,void 0,this)}var k8="CommandOrControl+Shift+Space";function K2(Z){if(["Control","Meta","Alt","Shift"].includes(Z.key))return null;let J=[];if(Z.metaKey||Z.ctrlKey)J.push("CommandOrControl");if(Z.altKey)J.push("Alt");if(Z.shiftKey)J.push("Shift");let Q=Z.key;if(Q===" ")Q="Space";else if(Q.startsWith("Arrow"))Q=Q.slice(5);else if(Q.length===1)Q=Q.toUpperCase();if(J.length===0)return null;return J.push(Q),J.join("+")}function l7(Z){let J=typeof window<"u"&&window.metahubDesktop?.platform==="darwin";return Z.replace("CommandOrControl",J?"⌘":"Ctrl").replace("Alt",J?"⌥":"Alt").replace("Shift",J?"⇧":"Shift").split("+").join(J?" ":"+")}function F2(){let Z=window.metahubDesktop.quicknote,[J,Q]=b(k8),[$,X]=b(!1),[q,W]=b(!1);r(()=>{Z.getSettings().then((F)=>{Q(F.shortcut),X(F.alwaysOnTop)}).catch((F)=>Z0(`加载失败:${F.message}`))},[]);let G=async(F)=>{try{let Y=await Z.setShortcut(F);Q(Y.shortcut),Z0(`快捷键已设为 ${l7(Y.shortcut)}`)}catch(Y){Z0(`设置失败:${Y.message}`)}},K=(F)=>{if(F.preventDefault(),F.key==="Escape"){W(!1);return}let Y=K2(F);if(!Y)return;W(!1),G(Y)},H=async()=>{let F=!$;X(F);try{X(await Z.setAlwaysOnTop(F))}catch(Y){X(!F),Z0(`设置失败:${Y.message}`)}};return z("div",{class:"set-section",children:[z("div",{class:"set-section-head",children:"快速笔记"},void 0,!1,void 0,this),z("div",{class:"set-section-desc",children:"用全局快捷键随时唤起小窗记录想法。小窗也可从菜单栏图标打开。"},void 0,!1,void 0,this),z("div",{class:"qn-set-row",children:[z("div",{class:"qn-set-main",children:[z("div",{class:"qn-set-name",children:"唤起快捷键"},void 0,!1,void 0,this),z("div",{class:"qn-set-desc",children:"点击下方按钮,然后按下你想用的组合键。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"btn btn-secondary qn-shortcut"+(q?" capturing":""),onClick:()=>W(!0),onBlur:()=>W(!1),onKeyDown:q?K:void 0,children:q?"按下组合键…":l7(J)},void 0,!1,void 0,this),J!==k8&&z("button",{class:"btn btn-ghost",title:"重置默认",onClick:()=>void G(k8),children:"重置"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"qn-set-row",children:[z("div",{class:"qn-set-main",children:[z("div",{class:"qn-set-name",children:"默认始终置顶"},void 0,!1,void 0,this),z("div",{class:"qn-set-desc",children:"小窗浮在其他窗口之上;也可在小窗内用 \uD83D\uDCCC 按钮切换。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"btn "+($?"btn-primary":"btn-secondary"),"aria-pressed":$,onClick:()=>void H(),children:$?"已开启":"已关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function R8(Z){if(!Z)return"从未";return new Date(Z).toLocaleString()}function Y2(){let[Z,J]=b(null),Q=()=>u.listPeers().then(J).catch((H)=>Z0(`加载失败:${H.message}`));r(()=>{Q()},[]);let $=async()=>{try{let H=await u.newPairingCode();Z9(z(B2,{code:H.code,exp:H.exp},void 0,!1,void 0,this))}catch(H){Z0(`生成失败:${H.message}`)}},X=()=>Z9(z(L2,{onDone:()=>{i0(),Q()}},void 0,!1,void 0,this)),q=async(H)=>{try{let F=await u.syncPeer(H.url);Z0(F.ok?`已同步:推送 ${F.pushed},拉取 ${F.pulled}`:`同步失败:${F.error}`),Q()}catch(F){Z0(`同步失败:${F.message}`)}},W=async(H)=>{await u.updatePeer(H.url,{enabled:!H.enabled}).catch((F)=>Z0(F.message)),Q()},G=async(H)=>{if(!await b0({title:"移除同步设备",message:`确定移除 ${H.url}?将停止与该设备的数据同步。`,confirmLabel:"移除",danger:!0}))return;await u.removePeer(H.url).catch((Y)=>Z0(Y.message)),Q()},K=(H,F)=>R0(H,(Y)=>z(n,{children:[z(t,{icon:"share",label:"立即同步",onClick:()=>{Y(),q(F)}},void 0,!1,void 0,this),z(t,{icon:F.enabled?"eyeOff":"check",label:F.enabled?"禁用":"启用",onClick:()=>{Y(),W(F)}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"移除",danger:!0,onClick:()=>{Y(),G(F)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this));return z("div",{class:"set-section",children:[z("div",{class:"set-section-head",children:"同步设备"},void 0,!1,void 0,this),z("div",{class:"set-section-desc",children:"与其他设备配对,自动双向同步数据。在对方设备生成配对码,然后在此添加。"},void 0,!1,void 0,this),z("div",{class:"peer-actions",children:[z("button",{class:"btn btn-primary",onClick:X,children:[z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)," 添加设备"]},void 0,!0,void 0,this),z("button",{class:"btn btn-secondary",onClick:$,children:[z(f,{name:"link",cls:"ico sm"},void 0,!1,void 0,this)," 生成本机配对码"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"peer-list",children:Z==null?z("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):Z.length===0?z("div",{class:"muted",children:"还没有配对的设备。"},void 0,!1,void 0,this):Z.map((H)=>z("div",{class:"peer-row",children:[z("span",{class:"peer-dot"+(H.enabled?H.last_status==="error"?" err":" on":" off")},void 0,!1,void 0,this),z("div",{class:"peer-main",children:[z("div",{class:"peer-url",children:H.label||H.url},void 0,!1,void 0,this),z("div",{class:"peer-sub",children:[H.enabled?"已启用":"已禁用"," · 最近同步 ",R8(H.last_sync_at),H.last_status==="error"&&H.last_error?` · 错误:${H.last_error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"btn btn-ghost peer-menu",onClick:(F)=>K(F,H),children:z(f,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},H.url,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function U2(){let[Z,J]=b(null),Q=()=>u.listGrants().then(J).catch((X)=>Z0(`加载失败:${X.message}`));r(()=>{Q()},[]);let $=async(X)=>{if(!await b0({title:"吊销凭据",message:`吊销后,持有此凭据的设备${X.peer_url?`(${X.peer_url})`:""}将无法再同步进本机。`,confirmLabel:"吊销",danger:!0}))return;await u.revokeGrant(X.token).catch((W)=>Z0(W.message)),Q()};return z("div",{class:"set-section",children:[z("div",{class:"set-section-head",children:"已授权设备"},void 0,!1,void 0,this),z("div",{class:"set-section-desc",children:"本机签发、允许其他设备同步进来的凭据。吊销即断开对方的入站访问。"},void 0,!1,void 0,this),z("div",{class:"peer-list",children:Z==null?z("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):Z.length===0?z("div",{class:"muted",children:"还没有签发任何凭据。"},void 0,!1,void 0,this):Z.map((X)=>z("div",{class:"peer-row",children:[z("span",{class:"peer-dot on"},void 0,!1,void 0,this),z("div",{class:"peer-main",children:[z("div",{class:"peer-url",children:X.peer_url||"(未知地址)"},void 0,!1,void 0,this),z("div",{class:"peer-sub",children:[X.token.slice(0,8),"… · 签发于 ",R8(X.created_at)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"btn btn-ghost peer-menu",title:"吊销",onClick:()=>$(X),children:z(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},X.token,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function B2({code:Z,exp:J}){let[Q,$]=b(Math.max(0,Math.round((J-Date.now())/1000)));r(()=>{let W=setInterval(()=>$(Math.max(0,Math.round((J-Date.now())/1000))),1000);return()=>clearInterval(W)},[J]);let X=Math.floor(Q/60),q=String(Q%60).padStart(2,"0");return z(X9,{title:"本机配对码",sub:"在另一台设备上输入此服务器地址和下面的配对码即可配对。配对码一次性使用。",footer:z("button",{class:"btn btn-primary",onClick:i0,children:"完成"},void 0,!1,void 0,this),children:[z("div",{class:"pair-code",children:Z},void 0,!1,void 0,this),z("div",{class:"muted",style:{textAlign:"center",marginTop:8},children:Q>0?`${X}:${q} 后过期`:"已过期,请重新生成"},void 0,!1,void 0,this),z("button",{class:"btn btn-secondary",style:{width:"100%",marginTop:12},onClick:()=>{navigator.clipboard?.writeText(Z),Z0("已复制配对码")},children:[z(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)," 复制"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function L2({onDone:Z}){let[J,Q]=b(""),[$,X]=b(""),[q,W]=b(location.origin),[G,K]=b(!1),H=async()=>{if(!J.trim()||!$.trim()){Z0("地址和配对码必填");return}K(!0);try{let F=await u.addPeerByPairing({url:J.trim(),code:$.trim(),self_url:q.trim()||void 0});await u.syncPeer(F.url).catch(()=>{}),Z0(`已配对 ${F.url}`),Z()}catch(F){Z0(`配对失败:${F.message}`),K(!1)}};return z(X9,{title:"添加同步设备",sub:"输入对方 Metahub 服务器的地址,以及它生成的一次性配对码。",footer:z(n,{children:[z("button",{class:"btn btn-secondary",onClick:i0,disabled:G,children:"取消"},void 0,!1,void 0,this),z("button",{class:"btn btn-primary",onClick:H,disabled:G,children:G?"配对中…":"配对"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[z("div",{class:"field-label",children:"对方服务器地址"},void 0,!1,void 0,this),z("input",{class:"text-input",autofocus:!0,placeholder:"http://192.168.1.10:7777",value:J,onInput:(F)=>Q(F.target.value)},void 0,!1,void 0,this),z("div",{class:"field-label",children:"配对码"},void 0,!1,void 0,this),z("input",{class:"text-input",placeholder:"对方「生成本机配对码」得到的码",value:$,onInput:(F)=>X(F.target.value),onKeyDown:(F)=>F.key==="Enter"&&H()},void 0,!1,void 0,this),z("div",{class:"field-label",children:"本机可达地址(可选)"},void 0,!1,void 0,this),z("input",{class:"text-input",placeholder:"留空则仅本机主动同步",value:q,onInput:(F)=>W(F.target.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var BZ=(Z)=>location.origin+"/sites/"+Z+"/",y2=(Z)=>(/\.([a-z0-9]+)$/i.exec(Z)?.[1]??"").toLowerCase(),o7=(Z)=>Z.startsWith("image/");function t7(Z){let J=Number(Z.split("-")[0]);if(!Number.isFinite(J)||J<=0)return"—";return new Date(J).toISOString().slice(0,10)}function P2(Z){let J=y2(Z.path);if(["html","htm","js","mjs","css","json","xml"].includes(J))return"code";if(o7(Z.content_type))return"file";if(["md","txt"].includes(J))return"text";return"file"}function LZ(Z){navigator.clipboard?.writeText(Z).catch(()=>{}),Z0("已复制")}function s7(){let[Z,J]=b(null),[Q,$]=b(null),[X,q]=b(null),W=()=>u.listSites().then((H)=>{J(H),$((F)=>F?H.find((Y)=>Y.id===F.id)??null:null)}).catch((H)=>Z0(`加载失败:${H.message}`));r(()=>{W()},[]);let G=()=>Z9(z(w2,{onCreated:(H)=>{W(),$(H)}},void 0,!1,void 0,this)),K=(H,F,Y)=>{R0(H,(C)=>z(n,{children:[z(t,{icon:"externalLink",label:"复制访问地址",onClick:()=>{C(),LZ(BZ(F.name))}},void 0,!1,void 0,this),z(t,{icon:"settings",label:"修改标题…",onClick:async()=>{C();let L=await q9({title:"修改标题",label:"标题",value:F.title??F.name});if(L==null)return;try{await u.updateSite(F.id,{title:L})}catch(B){return Z0(B.message)}W()}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除站点",danger:!0,onClick:async()=>{if(C(),!await b0({title:"删除站点?",message:`「${F.name}」及其 ${F.file_count} 个文件将被删除。`,confirmLabel:"删除",danger:!0}))return;try{await u.deleteSite(F.id)}catch(B){return Z0(B.message)}if(Y)$(null);W()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return z("div",{class:"db",children:[z("div",{class:"db-head",children:[z("div",{class:"db-icon",children:"\uD83C\uDF10"},void 0,!1,void 0,this),z("div",{children:[z("div",{class:"db-title",children:"站点管理"},void 0,!1,void 0,this),z("div",{class:"db-desc",children:"静态文件站点 · 通过 /sites/<name>/ 对外提供,随同步无冲突复制"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"toolbar",children:[z("div",{class:"spacer",style:{flex:1}},void 0,!1,void 0,this),z("button",{class:"btn btn-primary",onClick:G,children:[z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建站点"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z==null?z("div",{class:"muted",style:{padding:20},children:"加载中…"},void 0,!1,void 0,this):Z.length===0?z("div",{class:"site-empty",children:[z("div",{class:"ei",children:"\uD83C\uDF10"},void 0,!1,void 0,this),z("div",{class:"et",children:"还没有站点"},void 0,!1,void 0,this),z("div",{class:"ed",children:"站点是一个命名文件桶,发布后可通过 /sites/<name>/ 直接访问。"},void 0,!1,void 0,this),z("button",{class:"btn btn-primary",onClick:G,children:[z(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建站点"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):z(n,{children:[z("div",{class:"sites-grid",children:Z.map((H)=>z("div",{class:"site-card",onClick:()=>$(H),children:[z("div",{class:"site-card-head",children:[z("span",{class:"si",children:z(f,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("div",{class:"site-card-id",children:[z("div",{class:"slug",children:H.name},void 0,!1,void 0,this),z("div",{class:"ttl"+(H.title?"":" muted"),children:H.title||"未命名站点"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"site-addr",title:"点击复制访问地址",onClick:(F)=>{F.stopPropagation(),LZ(BZ(H.name))},children:[z(f,{name:"link",cls:"ico sm"},void 0,!1,void 0,this),z("span",{children:BZ(H.name)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"site-card-meta",children:[z("span",{children:[z("b",{children:H.file_count},void 0,!1,void 0,this)," 文件"]},void 0,!0,void 0,this),z("span",{class:"dot",children:"·"},void 0,!1,void 0,this),z("span",{children:t7(H.created_hlc)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"site-card-foot",children:[z("button",{class:"btn btn-secondary",style:{flex:1},onClick:(F)=>{F.stopPropagation(),q(H)},children:[z(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this),"访问"]},void 0,!0,void 0,this),z("button",{class:"iconbtn",title:"更多",onClick:(F)=>{F.stopPropagation(),K(F,H)},children:z(f,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},H.id,!0,void 0,this))},void 0,!1,void 0,this),z("div",{class:"gridfoot",children:[z("span",{children:["共 ",Z.length," 个站点"]},void 0,!0,void 0,this),z("span",{children:[Z.reduce((H,F)=>H+F.file_count,0)," 个文件"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&z(C2,{site:Q,onClose:()=>$(null),onVisit:()=>q(Q),onMenu:(H)=>K(H,Q,!0),onChanged:W},void 0,!1,void 0,this),X&&z(O2,{site:X,onClose:()=>q(null)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function w2({onCreated:Z}){let[J,Q]=b(""),[$,X]=b(""),q=async()=>{let W=J.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"");if(!W)return Z0("请填写站点名称");try{let G=await u.createSite({name:W,title:$.trim()||void 0});i0(),Z0(`已创建站点「${W}」`),Z(G)}catch(G){Z0(G.message)}};return z(X9,{title:"新建站点",sub:"创建一个命名文件桶,随同步无冲突复制。",footer:z(n,{children:[z("button",{class:"btn btn-secondary",onClick:i0,children:"取消"},void 0,!1,void 0,this),z("button",{class:"btn btn-primary",onClick:q,children:"创建"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[z("div",{class:"field-label",children:"名称(slug)"},void 0,!1,void 0,this),z("input",{class:"text-input",autofocus:!0,value:J,placeholder:"例如:docs、demo、status",onInput:(W)=>Q(W.target.value),onKeyDown:(W)=>{if(W.key==="Enter")q()}},void 0,!1,void 0,this),z("div",{class:"field-label",children:"标题(可选)"},void 0,!1,void 0,this),z("input",{class:"text-input",value:$,placeholder:"人类可读的标题",onInput:(W)=>X(W.target.value),onKeyDown:(W)=>{if(W.key==="Enter")q()}},void 0,!1,void 0,this),z("div",{class:"muted",style:{fontSize:12,marginTop:10},children:["将通过 ",z("span",{style:{fontFamily:"var(--mono)"},children:"/sites/<名称>/"},void 0,!1,void 0,this)," 对外提供。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function C2({site:Z,onClose:J,onVisit:Q,onMenu:$,onChanged:X}){let[q,W]=b(null),G=H0(null),{open:K,close:H}=N9(J),F=()=>u.listSiteFiles(Z.id).then(W).catch((B)=>Z0(B.message));r(()=>{let B=!1;return W(null),u.listSiteFiles(Z.id).then((M)=>!B&&W(M)).catch((M)=>!B&&Z0(M.message)),()=>{B=!0}},[Z.id]);let Y=async(B)=>{let M=B.target,k=Array.from(M.files??[]);if(M.value="",!k.length)return;let T=0;try{for(let O of k)await u.uploadSiteFile(Z.id,O.name,O),T++;Z0(`已上传 ${T} 个文件`)}catch(O){Z0(`已上传 ${T}/${k.length} 个,其余失败:${O.message}`)}finally{F(),X()}},C=async(B)=>{if(!await b0({title:"删除文件?",message:`「${B.path}」将从站点「${Z.name}」中删除。`,confirmLabel:"删除",danger:!0}))return;try{await u.deleteSiteFile(Z.id,B.path)}catch(k){return Z0(k.message)}F(),X()},L=BZ(Z.name);return z(n,{children:[z("div",{class:"scrim"+(K?" open":""),onClick:H},void 0,!1,void 0,this),z("div",{class:"peek"+(K?" open":""),children:[z("div",{class:"peek-head",children:[z("button",{class:"iconbtn",onClick:H,children:z(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("div",{style:{flex:1,display:"flex",alignItems:"center",gap:8,minWidth:0,fontWeight:600,fontSize:14},children:[z(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this),z("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Z.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"btn btn-secondary",onClick:()=>G.current?.click(),children:[z(f,{name:"upload",cls:"ico sm"},void 0,!1,void 0,this),"上传文件"]},void 0,!0,void 0,this),z("button",{class:"iconbtn",title:"更多",onClick:(B)=>$(B),children:z(f,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("input",{ref:G,type:"file",multiple:!0,style:{display:"none"},onChange:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"peek-body",children:[z("h2",{style:{margin:"0 0 20px"},children:Z.title||Z.name},void 0,!1,void 0,this),z("div",{class:"acc-link",children:[z("span",{class:"url",children:L},void 0,!1,void 0,this),z("button",{title:"复制地址",onClick:()=>LZ(L),children:z(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{class:"accent",title:"访问站点",onClick:Q,children:z(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"site-meta",children:[z("span",{children:[z("b",{children:q?.length??Z.file_count},void 0,!1,void 0,this)," 个文件"]},void 0,!0,void 0,this),z("span",{children:["创建于 ",t7(Z.created_hlc)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"files-head",children:[z("span",{children:"文件"},void 0,!1,void 0,this),z("span",{children:q?.length??""},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q==null?z("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):q.length===0?z("div",{class:"site-empty",style:{marginTop:4},children:[z("div",{class:"ei",children:"\uD83D\uDCC1"},void 0,!1,void 0,this),z("div",{class:"et",children:"站点还没有文件"},void 0,!1,void 0,this),z("div",{class:"ed",children:"上传文件后即可通过站点地址访问。"},void 0,!1,void 0,this),z("button",{class:"btn btn-secondary",onClick:()=>G.current?.click(),children:[z(f,{name:"upload",cls:"ico sm"},void 0,!1,void 0,this),"上传文件"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):z("div",{children:q.map((B)=>z("div",{class:"filerow",onClick:()=>Z9(z(r7,{site:Z,file:B},void 0,!1,void 0,this)),children:[z("span",{class:"fi",children:z(f,{name:P2(B),cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{class:"fpath",children:B.path},void 0,!1,void 0,this),z("span",{class:"enc-badge"+(B.encoding==="blob"?" blob":""),children:B.encoding},void 0,!1,void 0,this),z("div",{class:"facts",children:[z("button",{title:"预览",onClick:(M)=>{M.stopPropagation(),Z9(z(r7,{site:Z,file:B},void 0,!1,void 0,this))},children:z(f,{name:"eye",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{title:"复制路径",onClick:(M)=>{M.stopPropagation(),LZ("/sites/"+Z.name+"/"+B.path)},children:z(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{class:"del",title:"删除",onClick:(M)=>{M.stopPropagation(),C(B)},children:z(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},B.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function r7({site:Z,file:J}){let Q="/sites/"+Z.name+"/"+J.path,[$,X]=b(null),q=o7(J.content_type),W=!q&&(J.encoding==="utf8"||/text\/|json|javascript|xml/.test(J.content_type));return r(()=>{if(!W)return;fetch(Q).then((G)=>G.text()).then(X).catch(()=>X("(无法加载内容)"))},[Q]),z(X9,{title:J.path,sub:Q,width:680,footer:z(n,{children:[z("button",{class:"btn btn-secondary",onClick:()=>LZ(Q),children:"复制路径"},void 0,!1,void 0,this),z("button",{class:"btn btn-primary",onClick:i0,children:"关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[z("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center",color:"var(--muted)",fontSize:12,marginBottom:12},children:[z("span",{children:J.content_type},void 0,!1,void 0,this),z("span",{class:"enc-badge"+(J.encoding==="blob"?" blob":""),children:J.encoding},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q?z("img",{src:Q,style:{maxWidth:"100%",borderRadius:"var(--radius)",border:"1px solid var(--line)"}},void 0,!1,void 0,this):W?$==null?z("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):z("div",{class:"preview-box",children:$},void 0,!1,void 0,this):z("div",{class:"preview-bin",children:[z("div",{class:"pi",children:"\uD83D\uDCE6"},void 0,!1,void 0,this),z("div",{class:"pt",children:"二进制文件 · 在新标签打开查看"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function O2({site:Z,onClose:J}){r(()=>{let $=(X)=>{if(X.key==="Escape")J()};return addEventListener("keydown",$),()=>removeEventListener("keydown",$)},[]);let Q="/sites/"+Z.name+"/";return z("div",{class:"spv-scrim open",onClick:($)=>{if($.target===$.currentTarget)J()},children:z("div",{class:"spv",children:[z("div",{class:"spv-chrome",children:[z("div",{class:"spv-dots",children:[z("i",{},void 0,!1,void 0,this),z("i",{},void 0,!1,void 0,this),z("i",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("div",{class:"spv-url",children:[z(f,{name:"lock",cls:"ico sm"},void 0,!1,void 0,this),z("span",{children:BZ(Z.name)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("button",{class:"spv-btn",title:"在新标签打开",onClick:()=>window.open(Q,"_blank"),children:[z(f,{name:"externalLink",cls:"ico sm"},void 0,!1,void 0,this),"新标签"]},void 0,!0,void 0,this),z("button",{class:"spv-btn icon",title:"关闭",onClick:J,children:z(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("iframe",{class:"spv-frame",src:Q,sandbox:"allow-scripts allow-same-origin"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function T8(Z){switch(Z.kind){case"db":return`#/db/${encodeURIComponent(Z.id)}`;case"doc":return`#/doc/${encodeURIComponent(Z.id)}`;case"search":return`#/search?q=${encodeURIComponent(Z.q)}`;case"settings":return"#/settings";case"sites":return"#/sites";case"empty":return"#/"}}function V8(Z){if(!Z.startsWith("#/"))return{kind:"empty"};let[J="",Q=""]=Z.slice(2).split("?",2),[$,X=""]=J.split("/",2);try{if($==="db"&&X)return{kind:"db",id:decodeURIComponent(X)};if($==="doc"&&X)return{kind:"doc",id:decodeURIComponent(X)};if($==="search"){let q=new URLSearchParams(Q).get("q");if(q)return{kind:"search",q}}if($==="settings")return{kind:"settings"};if($==="sites")return{kind:"sites"}}catch{}return{kind:"empty"}}var e7="mh-quicknote-last",ZJ="mh-quicknote-parent",JJ="Quick Notes";function _2(Z,J){return(J.created_hlc??"").localeCompare(Z.created_hlc??"")}async function A2(){let Z=localStorage.getItem(ZJ);if(Z)try{return await u.getDocument(Z),Z}catch{}let $=(await u.listDocuments()).find((X)=>X.parent_id==null&&X.title===JJ)?.id??(await u.createDocument({title:JJ})).id;return localStorage.setItem(ZJ,$),$}function QJ(){let[Z,J]=b(null),[Q,$]=b([]),[X,q]=b(null),[W,G]=b(""),[K,H]=b(!1),F=H0(null),Y=typeof window<"u"?window.metahubDesktop?.quicknote:void 0,C=O9(async(P)=>{let _=(await u.listDocumentsByParent(P)).sort(_2);return $(_),_},[]);r(()=>{if(!Z)return;let P,_=()=>{clearTimeout(P),P=setTimeout(()=>void C(Z),80)};return document.addEventListener(e0,_),()=>{clearTimeout(P),document.removeEventListener(e0,_)}},[Z,C]);let L=O9(async(P)=>{let _=await u.createDocument({title:"",parent_id:P});return await C(P),_.id},[C]);r(()=>{(async()=>{try{let P=await A2();J(P);let _=await C(P),A=localStorage.getItem(e7),y=A&&_.some((x)=>x.id===A)&&A||_[0]?.id||await L(P);q(y)}catch(P){G(String(P.message))}})()},[C,L]),r(()=>{if(X)localStorage.setItem(e7,X)},[X]),r(()=>{Y?.getAlwaysOnTop().then(H).catch(()=>{})},[Y]),r(()=>{if(!Y)return;let P=(_)=>{if(_.key==="Escape")Y.hide()};return addEventListener("keydown",P),()=>removeEventListener("keydown",P)},[Y]);let B=async()=>{if(!Z)return;try{q(await L(Z))}catch(P){G(String(P.message))}},M=async()=>{if(!Y)return;let P=!K;H(P);try{H(await Y.setAlwaysOnTop(P))}catch{H(!P)}},k=async()=>{if(!X||!Z)return;if(!await b0({title:"删除笔记?",message:"该快速笔记将被删除。",confirmLabel:"删除",danger:!0}))return;await u.deleteDocument(X);let _=await C(Z);q(_[0]?.id??await L(Z))},T=(P)=>{R0(P,(_)=>z(n,{children:[z(u0,{children:"快速笔记"},void 0,!1,void 0,this),Q.length===0&&z("div",{class:"lbl",children:"还没有笔记"},void 0,!1,void 0,this),Q.map((A)=>z(t,{icon:"file",label:A.title||"无标题",checked:A.id===X,onClick:()=>{_(),q(A.id)}},A.id,!1,void 0,this)),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"plus",label:"新建笔记",onClick:()=>{_(),B()}},void 0,!1,void 0,this),X&&z(t,{icon:"trash",label:"删除当前笔记",danger:!0,onClick:()=>{_(),k()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),{minWidth:220})},O=Q.find((P)=>P.id===X)?.title;return z("div",{class:"qn",children:[z("div",{class:"qn-bar",children:[z("span",{class:"qn-brand",children:O||"快速笔记"},void 0,!1,void 0,this),z("div",{class:"qn-actions",children:[z("button",{class:"iconbtn",title:"新建笔记",onClick:()=>void B(),children:z(f,{name:"plus"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("button",{class:"iconbtn",title:"笔记列表",onClick:T,children:z(f,{name:"list"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Y&&z("button",{class:"iconbtn"+(K?" active":""),title:K?"取消置顶":"始终置顶",onClick:()=>void M(),children:z(f,{name:"pin"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W&&z("div",{class:"error-bar",onClick:()=>G(""),children:["⚠ ",W,"(点击关闭)"]},void 0,!0,void 0,this),z("div",{class:"qn-body",children:X?z(q1,{docId:X,onError:G,onHandle:(P)=>F.current=P},X,!1,void 0,this):z("div",{class:"empty",children:z("div",{children:"加载中…"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),z(DZ,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var M2=/[",\r\n]/;function N2(Z){return M2.test(Z)?`"${Z.replace(/"/g,'""')}"`:Z}function zJ(Z){return Z.map((J)=>J.map(N2).join(",")).join(`
|
|
115
|
-
`)}function S8(Z,J){let Q=J.startsWith(".")?J:"."+J,$=Z.trim().replace(/[\\/:*?"<>|\x00-\x1f]/g,"-").replace(/\s+/g," ").replace(/^\.+$/,"").slice(0,90)||"untitled";return $.toLowerCase().endsWith(Q.toLowerCase())?$:$+Q}function I8(Z,J,Q){let $=URL.createObjectURL(new Blob([J],{type:Q})),X=document.createElement("a");X.href=$,X.download=Z,document.body.appendChild(X),X.click(),X.remove(),setTimeout(()=>URL.revokeObjectURL($),0)}function $J(Z,J){let Q=["id",...Z.map((X)=>X.name)],$=J.map((X)=>[X.id,...Z.map((q)=>v2(X.cells[q.id]))]);return zJ([Q,...$])}function v2(Z){if(Z==null)return"";if(typeof Z==="boolean")return Z?"true":"false";if(typeof Z==="object")return JSON.stringify(Z);return String(Z)}function k2(){let[Z,J]=b(()=>typeof window<"u"&&window.matchMedia(jZ).matches);return r(()=>{let Q=window.matchMedia(jZ),$=()=>J(Q.matches);return Q.addEventListener("change",$),()=>Q.removeEventListener("change",$)},[]),Z}function R2(){let[Z,J]=b([]),[Q,$]=b([]),[X,q]=b(()=>V8(location.hash)),[W,G]=b(""),[K,H]=b(!1),[F,Y]=b(268),[C,L]=b("blocks"),[B,M]=b(!1),[k,T]=b(!1),[O,P]=b(!1),[_,A]=b(!1),y=H0(null),x=k2(),v=O9((p)=>G(p),[]),E=O9((p)=>{y.current=p},[]),J0=O9(async()=>{let[p,s]=await Promise.all([u.listDatabases(),u.listDocuments()]);J(p),$(s),M(!0)},[]);r(()=>{J0().catch((p)=>v(String(p.message)))},[J0]),r(()=>{let p,s=()=>{clearTimeout(p),p=setTimeout(()=>J0().catch((Y0)=>v(String(Y0.message))),80)};return document.addEventListener(e0,s),()=>{clearTimeout(p),document.removeEventListener(e0,s)}},[J0,v]),r(()=>{y4()},[]),r(()=>{if(typeof navigator>"u"||!("serviceWorker"in navigator))return;if(!window.isSecureContext)return;let p=navigator.serviceWorker.controller!=null,s=!1;navigator.serviceWorker.register("/sw.js").catch((U0)=>{console.warn("[webui] service worker registration failed —",U0)});let Y0=()=>{if(!p||s)return;s=!0,Z0("界面已更新,刷新页面生效")};return navigator.serviceWorker.addEventListener("controllerchange",Y0),()=>navigator.serviceWorker.removeEventListener("controllerchange",Y0)},[]);let[l,A0]=b(typeof navigator<"u"&&!navigator.onLine);r(()=>{let p=()=>A0(!1),s=()=>A0(!0);return window.addEventListener("online",p),window.addEventListener("offline",s),()=>{window.removeEventListener("online",p),window.removeEventListener("offline",s)}},[]),r(()=>{let p=typeof window<"u"?window.metahubDesktop?.coreUpdate:void 0;if(!p)return;Promise.all([u.version().then((s)=>s.version).catch(()=>null),p.installedVersion().catch(()=>null)]).then(([s,Y0])=>{if(s&&Y0&&S9(Y0,s)>0)T(!0)})},[]);let o=(p,s)=>{let Y0=T8(p);if(location.hash!==Y0)history[s?.replace?"replaceState":"pushState"](null,"",Y0);q(p)};r(()=>{if(location.hash&&!location.hash.startsWith("#/"))history.replaceState(null,"","#/");let p=()=>q(V8(location.hash));return window.addEventListener("hashchange",p),()=>window.removeEventListener("hashchange",p)},[]);let B0=()=>u.createDocument({title:""}).then((p)=>o({kind:"doc",id:p.id})).catch((p)=>v(String(p.message))),K0=X.kind==="db"?Z.find((p)=>p.id===X.id):void 0,I=X.kind==="doc"?Q.find((p)=>p.id===X.id):void 0,V=X.kind==="doc"?X.id:null,g=X.kind==="db"?X.id:null;r(()=>{L("blocks"),P(!1)},[V]),r(()=>{A(!1)},[g]);let j=X.kind!=="empty",e=H0(0);r(()=>{let p=x&&j;if(p&&!document.body.classList.contains("mobile-content"))e.current=window.scrollY;if(document.body.classList.toggle("mobile",x),document.body.classList.toggle("mobile-content",p),W1(),x)window.scrollTo(0,p?0:e.current)},[x,j,X]),r(()=>{let p=(s)=>{if((s.metaKey||s.ctrlKey)&&s.key.toLowerCase()==="k")s.preventDefault(),document.querySelector(".sb-search input")?.focus()};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[]),r(()=>{let p=window.matchMedia("(prefers-color-scheme: dark)"),s=()=>{v8(),W1()};return p.addEventListener("change",s),()=>p.removeEventListener("change",s)},[]);let X0=(p)=>{let s=y.current?.snapshotMarkdown();y.current?.flushSave(),(s==null?u.getDocument(p.id).then((U0)=>U0.body??""):Promise.resolve(s)).then((U0)=>I8(S8(p.title||p.id,".md"),U0,"text/markdown;charset=utf-8")).catch((U0)=>v(String(U0.message)))},W0=(p)=>{Promise.all([u.listProperties(p.id),u.listRecords(p.id)]).then(([s,Y0])=>I8(S8(p.name||p.id,".csv"),$J(s,Y0),"text/csv;charset=utf-8")).catch((s)=>v(String(s.message)))},P0=(p)=>{R0(p,(s)=>z(n,{children:[z(t,{icon:"link",label:"复制链接",onClick:()=>{s(),navigator.clipboard.writeText(location.origin+location.pathname+T8(X)).then(()=>Z0("链接已复制")).catch((Y0)=>v(String(Y0.message)))}},void 0,!1,void 0,this),X.kind==="doc"&&I&&z(t,{icon:"download",label:"导出 Markdown",onClick:()=>{s(),X0(I)}},void 0,!1,void 0,this),X.kind==="db"&&K0&&z(t,{icon:"download",label:"导出 CSV",onClick:()=>{s(),W0(K0)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},k0=(p)=>{if(X.kind==="doc"&&I)R0(p,(s)=>z(n,{children:[z(t,{icon:"code",label:C==="source"?"块方式显示":"代码方式显示",checked:C==="source",onClick:()=>{s(),y.current?.setMode(C==="source"?"blocks":"source")}},void 0,!1,void 0,this),z(t,{icon:"copy",label:"创建副本",onClick:async()=>{s(),y.current?.flushSave();try{let Y0=await u.duplicateDocument(I.id,{title:`${I.title||"无标题"} 副本`});o({kind:"doc",id:Y0.id}),Z0("已创建副本")}catch(Y0){v(String(Y0.message))}}},void 0,!1,void 0,this),z(t,{icon:"history",label:"版本历史",onClick:()=>{s(),y.current?.flushSave(),P(!0)}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"settings",label:"重命名…",onClick:async()=>{s();let Y0=await q9({title:"重命名文档",value:I.title});if(Y0)await u.updateDocument(I.id,{title:Y0})}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除文档",danger:!0,onClick:async()=>{if(s(),await b0({title:"删除文档?",message:`「${I.title||"无标题"}」将被删除。`,confirmLabel:"删除",danger:!0}))await u.deleteDocument(I.id),o({kind:"empty"},{replace:!0})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this));else if(X.kind==="db"&&K0)R0(p,(s)=>z(n,{children:[z(t,{icon:"copy",label:"创建副本",onClick:async()=>{s();try{let Y0=await u.duplicateDatabase(K0.id,{name:`${K0.name} 副本`});o({kind:"db",id:Y0.id}),Z0("已创建副本")}catch(Y0){v(String(Y0.message))}}},void 0,!1,void 0,this),z(t,{icon:"history",label:"最近动态",onClick:()=>{s(),A(!0)}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"settings",label:"重命名…",onClick:async()=>{s();let Y0=await q9({title:"重命名数据库",value:K0.name});if(Y0&&Y0!==K0.name)await u.updateDatabase(K0.id,{name:Y0})}},void 0,!1,void 0,this),z(f0,{},void 0,!1,void 0,this),z(t,{icon:"trash",label:"删除数据库",danger:!0,onClick:async()=>{if(s(),await b0({title:"删除数据库?",message:`「${K0.name}」及其所有记录将被永久删除。`,confirmLabel:"删除",danger:!0}))await u.deleteDatabase(K0.id),o({kind:"empty"},{replace:!0})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return z(n,{children:[z(C4,{databases:Z,docs:Q,view:X,navigate:o,width:F,collapsed:K,onResize:Y,onCollapse:()=>H(!0),updatePending:k,onError:v},void 0,!1,void 0,this),z("div",{class:"main",children:[z("div",{class:"topbar"+(X.kind==="empty"?" bare":""),children:[z("button",{class:"iconbtn hamburger"+(K?" show-collapsed":""),title:x?"返回":K?"展开侧栏":"菜单",onClick:()=>x?o({kind:"empty"}):H(!1),children:z(f,{name:x?"arrowLeft":"panelLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("div",{class:"crumb",children:[X.kind==="doc"&&z(n,{children:[z("span",{class:"emoji",children:z(f,{name:"file",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{children:I?.title||"无标题"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.kind==="db"&&z(n,{children:[z("span",{class:"emoji",children:K0?.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),z("span",{children:K0?.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.kind==="search"&&z("span",{children:["搜索:“",X.q,"”"]},void 0,!0,void 0,this),X.kind==="settings"&&z(n,{children:[z("span",{class:"emoji",children:z(f,{name:"settings",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{children:"设置"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.kind==="sites"&&z(n,{children:[z("span",{class:"emoji",children:z(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("span",{children:"站点管理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),(X.kind==="doc"||X.kind==="db")&&z(n,{children:[z("button",{class:"btn btn-ghost",onClick:P0,children:[z(f,{name:"share",cls:"ico sm"},void 0,!1,void 0,this),"分享"]},void 0,!0,void 0,this),z("button",{class:"iconbtn",onClick:k0,children:z(f,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),l&&z("div",{class:"offline-bar",children:B9()?"⚡ 离线 — 本地副本模式:可正常查看和编辑全部内容,恢复连接后自动同步":"⚡ 离线 — 可浏览已缓存的内容,修改会失败;恢复网络后自动恢复"},void 0,!1,void 0,this),W&&z("div",{class:"error-bar",onClick:()=>G(""),children:["⚠ ",W,"(点击关闭)"]},void 0,!0,void 0,this),z("div",{class:"content",children:[X.kind==="empty"&&z(T2,{onNewDoc:B0},void 0,!1,void 0,this),X.kind==="db"&&K0&&z(j4,{db:K0,onError:v},K0.id,!1,void 0,this),X.kind==="db"&&!K0&&z("div",{class:"empty",children:B?"数据库不存在或已被删除。":"加载中…"},void 0,!1,void 0,this),X.kind==="doc"&&z(q1,{docId:X.id,onError:v,onModeChange:L,onHandle:E},X.id,!1,void 0,this),X.kind==="search"&&z(S2,{q:X.q,onOpenDoc:(p)=>o({kind:"doc",id:p}),onOpenDb:(p)=>o({kind:"db",id:p})},void 0,!1,void 0,this),X.kind==="settings"&&z(n7,{onUpdatePending:T},void 0,!1,void 0,this),X.kind==="sites"&&z(s7,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),O&&X.kind==="doc"&&z(k4,{docId:X.id,onClose:()=>P(!1),onReverted:()=>y.current?.reload()},void 0,!1,void 0,this),_&&X.kind==="db"&&z(R4,{dbId:X.id,onClose:()=>A(!1)},void 0,!1,void 0,this),z(DZ,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function T2({onNewDoc:Z}){return z("div",{class:"empty",children:[z("svg",{class:"estate-art",viewBox:"0 0 220 190",fill:"none","aria-hidden":"true",children:[z("ellipse",{class:"kg-ground ground",cx:"110",cy:"176",rx:"62",ry:"8"},void 0,!1,void 0,this),z("circle",{class:"kg-glow fill-soft",cx:"116",cy:"88",r:"42"},void 0,!1,void 0,this),z("g",{class:"kg-plant",children:[z("path",{class:"kg-stem stroke-a draw",pathLength:"100",d:"M110 134 C110 117 108 106 113 92 C116 83 122 77 128 72"},void 0,!1,void 0,this),z("g",{class:"kg-leaf l1",children:z("g",{class:"kg-grow",children:z("path",{class:"fill-a",d:"M108 108 C90 100 86 88 88 80 C102 80 111 90 108 108 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("g",{class:"kg-leaf l2",children:z("g",{class:"kg-grow",children:z("path",{class:"fill-a",d:"M118 90 C133 83 144 86 150 94 C139 105 125 104 118 90 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),z("g",{class:"kg-leaf l3",children:z("g",{class:"kg-grow",children:z("path",{class:"fill-a",d:"M128 72 C128 57 136 48 146 45 C150 58 144 69 128 72 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("rect",{class:"kg-cardB fill-soft",x:"76",y:"124",width:"68",height:"44",rx:"8",transform:"rotate(7 110 146)"},void 0,!1,void 0,this),z("g",{class:"kg-cardA",children:[z("rect",{class:"fill-surface stroke",x:"66",y:"128",width:"76",height:"46",rx:"9",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),z("rect",{class:"fill-a",x:"74",y:"136",width:"18",height:"18",rx:"5",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),z("rect",{class:"fill-soft",x:"98",y:"139",width:"34",height:"6",rx:"3",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),z("rect",{class:"fill-soft",x:"98",y:"150",width:"24",height:"6",rx:"3",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("circle",{class:"kg-particle p1 fill-a",cx:"44",cy:"62",r:"2.6"},void 0,!1,void 0,this),z("circle",{class:"kg-particle p2 fill-soft",cx:"178",cy:"74",r:"3"},void 0,!1,void 0,this),z("circle",{class:"kg-particle p3 fill-a",cx:"40",cy:"120",r:"2"},void 0,!1,void 0,this),z("circle",{class:"kg-particle p4 fill-soft",cx:"182",cy:"126",r:"2.4"},void 0,!1,void 0,this),z("circle",{class:"kg-particle p5 fill-a",cx:"150",cy:"44",r:"2.2"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z("p",{class:"estate-title",children:"空空如也"},void 0,!1,void 0,this),z("p",{class:"estate-hint",children:"从左侧选择一个数据库或文档,或新建一个开始。"},void 0,!1,void 0,this),z("button",{class:"estate-link",onClick:Z,children:"+ 新建文档"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function V2({text:Z}){let J=Z.split(/\[([^\[\]]*)\]/g);return z(n,{children:J.map((Q,$)=>$%2?z("mark",{children:Q},$,!1,void 0,this):Q)},void 0,!1,void 0,this)}function S2({q:Z,onOpenDoc:J,onOpenDb:Q}){let[$,X]=b(null);return r(()=>{X(null),u.search(Z).then(X).catch(()=>X([]))},[Z]),z("div",{class:"db",children:[z("div",{class:"db-title",style:{marginBottom:14},children:["搜索:“",Z,"”"]},void 0,!0,void 0,this),$===null&&z("p",{class:"muted",children:"搜索中…"},void 0,!1,void 0,this),$?.length===0&&z("p",{class:"muted",children:"没有匹配结果。"},void 0,!1,void 0,this),$?.map((q)=>z("div",{class:"search-hit",onClick:()=>q.type==="document"?J(q.id):q.database_id&&Q(q.database_id),children:[z("strong",{children:q.title||q.id},void 0,!1,void 0,this)," ",z("span",{class:"muted",children:q.type==="document"?"文档":"记录"},void 0,!1,void 0,this),z("div",{class:"muted",children:z(V2,{text:q.snippet},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},q.id,!0,void 0,this))]},void 0,!0,void 0,this)}if(typeof window<"u"&&window.metahubDesktop){if(document.body.classList.add("desktop"),window.metahubDesktop.platform==="darwin")document.body.classList.add("desktop-mac")}if(location.hash==="#quick"&&typeof window<"u"&&window.metahubDesktop)document.body.classList.add("quicknote"),P1(z(QJ,{},void 0,!1,void 0,this),document.getElementById("app"));else P1(z(R2,{},void 0,!1,void 0,this),document.getElementById("app"));
|
|
108
|
+
`:Q}function oX(Z){return Z.replace(/`([^`]+)`/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/(\*|_)([^*_]+)\1/g,"$2").replace(/~~([^~]+)~~/g,"$1").replace(/\[([^\]]+)\]\([^)]*\)/g,"$1").trim()}function tX({blocks:Z}){let J=W9(Z).filter((W)=>W.type==="h1"||W.type==="h2"||W.type==="h3").map((W)=>({id:W.id,level:Number(W.type.slice(1)),text:oX(W.content)||"无标题"})),[Q,X]=f(null),z=J.map((W)=>W.id).join("|");if(e(()=>{if(!J.length)return;let W=document.querySelector(".content"),q=0,Y=()=>{let K=Math.max(W?W.getBoundingClientRect().top:0,0)+100,P=J[0].id;for(let A of J){let L=document.querySelector(`.block[data-bid="${A.id}"]`);if(!L)continue;if(L.getBoundingClientRect().top-K<=1)P=A.id;else break}X(P)},H=()=>{if(q)return;q=requestAnimationFrame(()=>{q=0,Y()})};Y();let F=new IntersectionObserver(Y,{root:W,rootMargin:"-90px 0px -70% 0px",threshold:[0,1]});for(let K of J){let P=document.querySelector(`.block[data-bid="${K.id}"]`);if(P)F.observe(P)}return W?.addEventListener("scroll",H,{passive:!0}),window.addEventListener("scroll",H,{passive:!0}),()=>{if(F.disconnect(),W?.removeEventListener("scroll",H),window.removeEventListener("scroll",H),q)cancelAnimationFrame(q)}},[z]),!J.length)return null;let G=(W)=>{document.querySelector(`.block[data-bid="${W}"]`)?.scrollIntoView({behavior:"smooth",block:"start"})};return $("nav",{class:"doc-toc","aria-label":"文档目录",children:J.map((W)=>$("button",{class:"toc-row lvl-"+W.level+(W.id===Q?" active":""),title:W.text,onClick:()=>G(W.id),children:[$("span",{class:"toc-tick"},void 0,!1,void 0,this),$("span",{class:"toc-label",children:W.text},void 0,!1,void 0,this)]},W.id,!0,void 0,this))},void 0,!1,void 0,this)}function V8({docId:Z,onError:J,onModeChange:Q,onHandle:X}){let z=L0([]),G=L0(""),W=L0(null),q=L0(""),[Y,H]=f("blocks"),[F,K]=f(0),[P,A]=f(!0),[L,y]=f(null),V=L0(null),[S,M]=f(null),[N,k]=f(null),v=L0(),O=L0(null),U=L0(!1),B=L0(0),C=L0(Promise.resolve()),[_,T]=f(!1),u=L0(null),[E,t]=f(null),[$0,g]=f(0),[I,h]=f(0),m=L0(0),z0=L0([]),X0=L0([]),Y0=L0({past:[],future:[],present:null,lastKey:null,lastTime:0}),p=()=>({blocks:structuredClone(z.current),title:q.current,focusId:V7()}),Q0=(w)=>{let R=Y0.current;if(!R.present){R.present=p(),R.lastKey=w,R.lastTime=Date.now();return}let i=Date.now();if(w&&w===R.lastKey&&i-R.lastTime<600){R.present=p(),R.lastTime=i;return}if(R.past.push(R.present),R.past.length>200)R.past.shift();R.present=p(),R.future=[],R.lastKey=w,R.lastTime=i},j0=(w)=>{if(z.current=structuredClone(w.blocks),q.current=w.title,k(null),K((R)=>R+1),G0(),w.focusId)requestAnimationFrame(()=>u0(w.focusId,!0))},r0=()=>{let w=Y0.current;if(!w.past.length)return;if(w.present)w.future.push(w.present);let R=w.past.pop();w.present=R,w.lastKey=null,j0(R)},a0=()=>{let w=Y0.current;if(!w.future.length)return;if(w.present)w.past.push(w.present);let R=w.future.pop();w.present=R,w.lastKey=null,j0(R)},O0=()=>{Q0(null),K((w)=>w+1)},h0=()=>{A(!0),y(null),T(!1),Y0.current={past:[],future:[],present:null,lastKey:null,lastTime:0},c.getDocument(Z).then((w)=>{q.current=w.title??"",G.current=w.body??"",z.current=a9(w.body),O.current=w.version??null,U.current=!1,A(!1),O0()}).catch((w)=>J(String(w.message)))};e(()=>{return h0(),()=>clearTimeout(v.current)},[Z]),e(()=>{let w=(R)=>{if(!U.current)return;R.preventDefault(),R.returnValue=""};return window.addEventListener("beforeunload",w),()=>window.removeEventListener("beforeunload",w)},[]),e(()=>{let w=(R)=>{if(!R.detail?.datasets?.some((j)=>j==="documents"||j==="doc_blocks"))return;(async()=>{try{if(U.current)await l();let j=await c.getDocument(Z);if(j.version!=null&&j.version===O.current)return;let a=V7(),q0=a?W9(z.current).findIndex((_0)=>_0.id===a):-1,B0=a?R8(a):null;if(q.current=j.title??"",G.current=j.body??"",z.current=a9(j.body),O.current=j.version??null,U.current=!1,T(!1),K((_0)=>_0+1),q0>=0)requestAnimationFrame(()=>{let _0=W9(z.current),g0=_0[Math.min(q0,_0.length-1)];if(g0)I8(g0.id,B0??0)});o("已合并其他设备的修改")}catch{}})()};return document.addEventListener(h9,w),()=>document.removeEventListener(h9,w)},[Z]);let G0=()=>{U.current=!0,clearTimeout(v.current),v.current=setTimeout(r,700)},b=()=>{if(Y==="source")return G.current=W.current?.value??G.current,G.current;return KZ(z.current),W7(z.current)},x=(w={})=>c.updateDocument(Z,{title:q.current,body:b(),...w.force||O.current==null||o0()?{}:{if_match:O.current}}).then((R)=>{O.current=R.version??null,U.current=!1,B.current=0,T(!1)}).catch((R)=>{if(R instanceof k9&&R.code==="stale"){T(!0);return}J(String(R.message)),B.current=Math.min(Math.max(B.current*2,1000),30000),clearTimeout(v.current),v.current=setTimeout(r,B.current)}),r=(w={})=>C.current=C.current.then(()=>x(w)),l=async()=>{clearTimeout(v.current),await r()},F0=(w)=>{if(w===Y)return;if(w==="source"){G.current=b(),y(null),M(null),k(null),H("source"),Q?.("source"),requestAnimationFrame(()=>{if(W.current)W.current.value=G.current,b7(W.current),W.current.focus()});return}G.current=W.current?.value??G.current,z.current=a9(G.current),H("blocks"),Q?.("blocks"),K((R)=>R+1),requestAnimationFrame(()=>{let R=W9(z.current)[0];if(R)u0(R.id)})};e(()=>{return X?.({getMode:()=>Y,setMode:F0,snapshotMarkdown:b,flushSave:l,reload:h0}),()=>X?.(null)},[X,Y]);let d=z.current,P0=N?P7(d,N.anchorId,N.focusId):[],s=(w,R="p",i={})=>{let j=IZ(R,i);if(!w)d.push(j);else{let a=x0(d,w);if(a)a.parent.splice(a.index+1,0,j);else d.push(j)}return O0(),requestAnimationFrame(()=>u0(j.id)),G0(),j},k0=(w,R,i={})=>{let a=x0(d,w)?.block;if(!a)return;let q0=i.content===void 0||i.content===a.content?R8(w):null,B0=e0(R)?a.children:void 0;if(D1(a,R,i),B0?.length)a.children=B0;else delete a.children;if(O0(),R!=="divider"&&R!=="table")requestAnimationFrame(()=>q0!=null?I8(w,q0):u0(w));G0()},T0=(w)=>{if(!_8(d,w))return;O0(),G0()},w0=(w,R)=>{w.content=bZ(w,R),Q0("text:"+w.id);let i=R.textContent??"";if(i.startsWith("/")){let j=Fz();y((a)=>({blockId:w.id,x:j.x,y:j.y,query:i.slice(1),idx:a?.blockId===w.id?a.idx:0}))}else if(L)y(null);G0()},Z0=(w,R,i)=>{let j=j7(w.clipboardData);if(j.length){w.preventDefault(),H0(R,i,j);return}let a=w.clipboardData?.getData("text/html"),B0=(a?Q7(a):w.clipboardData?.getData("text/plain")??"").replace(/\r\n?/g,`
|
|
109
|
+
`);if(!B0.trim())return;w.preventDefault();let _0=a9(B0);if(!_0.length)return;let g0=x0(d,R.id);if(!g0)return;let{before:$9,after:P9}=S8(i);if(_0.length===1&&_0[0].type==="p"&&($9.trim()!==""||P9.trim()!=="")){R.content=$9+_0[0].content+P9;let O3=f7($9+_0[0].content);O0(),G0(),requestAnimationFrame(()=>t1(R.id,O3));return}let b9=[..._0],cZ=P9.trim()!==""?IZ("p",{content:P9}):null;if(cZ)b9.push(cZ);if($9.trim()===""&&!g0.block.children?.length)g0.parent.splice(g0.index,1,...b9);else R.content=$9,g0.parent.splice(g0.index+1,0,...b9);O0(),G0();let P3=cZ??b9[b9.length-1];requestAnimationFrame(()=>u0(P3.id,!cZ))},H0=async(w,R,i)=>{let j=x0(d,w.id);if(!j)return;let{before:a,after:q0}=S8(R),B0=[];for(let P9 of i)try{B0.push(S7(P9.name,(await c.uploadDocImage(P9)).url))}catch(b9){o(`图片上传失败:${b9.message}`)}if(!B0.length)return;let _0=[...a9(B0.join(`
|
|
110
|
+
|
|
111
|
+
`))],g0=q0.trim()!==""?IZ("p",{content:q0}):null;if(g0)_0.push(g0);if(a.trim()===""&&!j.block.children?.length)j.parent.splice(j.index,1,..._0);else w.content=a,j.parent.splice(j.index+1,0,..._0);O0(),G0();let $9=g0??_0[_0.length-1];requestAnimationFrame(()=>u0($9.id,!g0))},v0=async(w,R)=>{let i=[];for(let q0 of R)try{i.push(S7(q0.name,(await c.uploadDocImage(q0)).url))}catch(B0){o(`图片上传失败:${B0.message}`)}if(!i.length)return;let j=x0(d,w.id);if(!j)return;let a=a9(i.join(`
|
|
112
|
+
|
|
113
|
+
`));j.parent.splice(j.index+1,0,...a),O0(),G0(),requestAnimationFrame(()=>u0(a[a.length-1].id,!1))},Z9=L?E1.filter((w)=>(w.t+w.type+w.d).toLowerCase().includes(L.query.toLowerCase())):[],J0=(w)=>{if(!L)return;k0(L.blockId,w.type),y(null)},K0=(w,R)=>{k0(w.id,R.type,R),y(null)},A0=(w,R)=>{w.content="",w.children??=[];let i=IZ(R.type,R);w.children.unshift(i),y(null),O0(),requestAnimationFrame(()=>u0(i.id)),G0()},R0=(w)=>{KZ(d);let R=R8(w);if(!i1(d,w))return;O0(),requestAnimationFrame(()=>R!=null?I8(w,R):u0(w)),G0()},c0=(w)=>{KZ(d);let R=R8(w);if(!a1(d,w))return;O0(),requestAnimationFrame(()=>R!=null?I8(w,R):u0(w)),G0()},G9=async(w)=>{if(w==="createLink"){let R=getSelection(),i=R&&R.rangeCount?R.getRangeAt(0).cloneRange():null;if(!i||i.collapsed)return;M(null);let j=(await L9({title:"插入链接",label:"链接地址",placeholder:"https://…"}))?.trim();if(!j)return;i.startContainer.parentElement?.closest?.(".editable")?.focus();let q0=getSelection();q0?.removeAllRanges(),q0?.addRange(i),document.execCommand("createLink",!1,j)}else if(w==="code")Wz();else document.execCommand(w,!1,void 0);Yz(d),G0(),n1(M)},_9=()=>k(null),EZ=()=>{let w=W9(d);if(!w.length)return;T8(),k({anchorId:w[0].id,focusId:w[w.length-1].id})},G6=(w)=>{KZ(d);let R=O7(d,w);if(_9(),O0(),R)requestAnimationFrame(()=>u0(R,!0));G0()},X3=(w,R)=>{if(KZ(d),!(R==="indent"?N7(d,w):y7(d,w)).length)return;O0(),G0()},z3=(w)=>{KZ(d);let R=w7(d,w);if(R.length)k({anchorId:R[0],focusId:R[R.length-1]});O0(),G0()},W3=(w)=>{let R=C7(d,w);if(R)navigator.clipboard?.writeText(R).catch(()=>{})},q6=(w)=>{if(w.target?.closest?.(".doc-source"))return;let i=w.metaKey||w.ctrlKey;if(i&&(w.key==="z"||w.key==="Z")){if(w.preventDefault(),w.shiftKey)a0();else r0();return}if(i&&w.key==="y"){w.preventDefault(),a0();return}if(!N)return;let j=P0;if(!j.length)return;if(w.key==="Escape"){w.preventDefault();let a=N.anchorId;_9(),u0(a,!0);return}if(w.key==="Tab"){w.preventDefault(),X3(j,w.shiftKey?"outdent":"indent");return}if(w.key==="Backspace"||w.key==="Delete"){w.preventDefault(),G6(j);return}if(i&&w.key==="d"){w.preventDefault(),z3(j);return}if(i&&(w.key==="c"||w.key==="x")){if(w.preventDefault(),W3(j),w.key==="x")G6(j);return}if(i&&w.key==="a"){w.preventDefault(),EZ();return}if(w.key==="ArrowDown"||w.key==="ArrowUp"){w.preventDefault();let a=W9(d),q0=a.findIndex((B0)=>B0.id===N.focusId);if(q0<0)return;if(w.shiftKey){let B0=w.key==="ArrowDown"?Math.min(q0+1,a.length-1):Math.max(q0-1,0);k({anchorId:N.anchorId,focusId:a[B0].id})}else{let B0=w.key==="ArrowDown"?j[j.length-1]:j[0];_9(),u0(B0,w.key==="ArrowDown")}return}if(w.key.length===1&&!i){let a=j[j.length-1];_9(),u0(a,!0)}},pZ=L0(null),G3=(w)=>{if(w.button!==0)return;let R=w.target;if(R.closest(".gutter")||R.closest(".pop")||R.closest(".doc-col-resizer")||R.closest("input, button, select, a"))return;let j=qz(w.target)?.getAttribute("data-bid")??null;if(!j){let q0=R.classList.contains("doc")?R:null;if(Y==="blocks"&&q0){let B0=q0.querySelectorAll(".block"),_0=B0.length?B0[B0.length-1]:q0.querySelector(".doc-meta"),g0=_0?_0.getBoundingClientRect().bottom:0;if(w.clientY>g0){w.preventDefault();let $9=d[d.length-1];if($9&&i9($9))u0($9.id,!0);else s(null);return}}_9();return}if(w.shiftKey&&N){w.preventDefault(),T8(),k({anchorId:N.anchorId,focusId:j});return}if(!!R.closest(".editable, .code-input, .doc-td")){if(pZ.current={anchorId:j,started:!1,sx:w.clientX,sy:w.clientY,mode:"text"},N)_9()}else w.preventDefault(),T8(),k({anchorId:j,focusId:j}),pZ.current={anchorId:j,started:!0,sx:w.clientX,sy:w.clientY,mode:"block"}};e(()=>{let w=(i)=>{let j=pZ.current;if(!j)return;let q0=document.elementFromPoint(i.clientX,i.clientY)?.closest(".block[data-bid]")?.getAttribute("data-bid")??null;if(j.mode==="text"){if(q0&&q0!==j.anchorId)j.mode="block",T8(),k({anchorId:j.anchorId,focusId:q0});return}if(!j.started&&Math.abs(i.clientX-j.sx)+Math.abs(i.clientY-j.sy)<4)return;if(j.started=!0,o1(!0),q0)k({anchorId:j.anchorId,focusId:q0})},R=()=>{pZ.current=null,o1(!1)};return window.addEventListener("mousemove",w),window.addEventListener("mouseup",R),()=>{window.removeEventListener("mousemove",w),window.removeEventListener("mouseup",R)}},[]);let Y6=L0(q6);Y6.current=q6,e(()=>{let w=(R)=>Y6.current(R);return document.addEventListener("keydown",w,!0),()=>document.removeEventListener("keydown",w,!0)},[]),e(()=>{if(!L)return;V.current?.querySelector(".item.sel")?.scrollIntoView({block:"nearest"})},[L?.idx,L?.blockId]),e(()=>{if(!L)return;let w=()=>y(null);return document.addEventListener("focusout",w),()=>document.removeEventListener("focusout",w)},[!!L]);let q3=(w,R,i)=>{if(w.isComposing||w.keyCode===229)return;if(L&&L.blockId===R.id){if(w.key==="ArrowDown"){w.preventDefault(),y({...L,idx:Math.min(L.idx+1,Z9.length-1)});return}if(w.key==="ArrowUp"){w.preventDefault(),y({...L,idx:Math.max(L.idx-1,0)});return}if(w.key==="Enter"){w.preventDefault();let j=Z9[L.idx];if(j)J0(j);return}if(w.key==="Escape"){y(null);return}}if((w.metaKey||w.ctrlKey)&&(w.key==="a"||w.key==="A")){if(Lz(i))w.preventDefault(),EZ();return}if(w.key==="Tab"){w.preventDefault(),(w.shiftKey?c0:R0)(R.id);return}if((w.key==="ArrowUp"||w.key==="ArrowDown")&&!w.shiftKey&&!r1()){let j=Uz(i);if(w.key==="ArrowUp"&&j.first){let a=SZ(d,R.id);if(a){w.preventDefault(),u0(a.id,!0);return}}else if(w.key==="ArrowDown"&&j.last){let a=d1(d,R.id);if(a){w.preventDefault(),u0(a.id);return}}}if(w.key===" "&&!r1()&&(R.type==="p"||R.type==="bullet")){let{before:j,after:a}=S8(i);if(R.type==="p"){let q0=h1(j+" "," ");if(q0){w.preventDefault(),K0(R,{...q0,content:a});return}}else{let q0=q7(j);if(q0){w.preventDefault(),k0(R.id,"todo",{content:a,checked:q0.checked});return}}}if(w.key==="Enter"&&!w.shiftKey&&R.type!=="code"){let j=h1((i.textContent??"").trim(),"Enter");if(j){if(w.preventDefault(),e0(R.type)&&j.type==="code"){A0(R,j);return}K0(R,j);return}w.preventDefault();let a=(i.textContent??"").trim()==="";if(e0(R.type)&&a&&!(R.children??[]).length){k0(R.id,"p");return}let{before:q0,after:B0}=S8(i);R.content=q0,s(R.id,e0(R.type)?R.type:"p",{content:B0})}else if(w.key==="Backspace"){if((i.textContent??"")==="")if(w.preventDefault(),R.type!=="p")k0(R.id,"p");else{let j=SZ(d,R.id);if(j)T0(R.id),requestAnimationFrame(()=>u0(j.id,!0))}else if(!r1()&&Kz(i))if(e0(R.type))w.preventDefault(),k0(R.id,"p",{content:bZ(R,i)});else{let j=SZ(d,R.id);if(j&&j.type!=="code"&&j.type!=="table"&&j.type!=="divider"){w.preventDefault();let a=f7(j.content);j.content+=bZ(R,i),T0(R.id),requestAnimationFrame(()=>{let q0=document.querySelector(`.block[data-bid="${j.id}"] .editable`);if(q0){let B0=fZ(j.content);if(q0.innerHTML!==B0)q0.innerHTML=B0}t1(j.id,a)})}}}},Y3=(w,R,i)=>{if(w.isComposing||w.keyCode===229)return;let{value:j,selectionStart:a,selectionEnd:q0}=i;if(w.key==="Tab"){if(w.preventDefault(),w.shiftKey){c0(R.id);return}document.execCommand("insertText",!1," ");return}if(w.key==="ArrowDown"&&a===q0&&j.indexOf(`
|
|
114
|
+
`,a)===-1){w.preventDefault();let B0=d1(d,R.id);if(B0)u0(B0.id);else s(R.id,"p");return}if(w.key==="ArrowUp"&&a===q0&&j.lastIndexOf(`
|
|
115
|
+
`,a-1)===-1){w.preventDefault();let B0=SZ(d,R.id);if(B0)u0(B0.id,!0);return}if(w.key==="Backspace"&&j===""){w.preventDefault();let B0=x0(d,R.id),_0=B0?.parentBlock;if(B0&&_0&&e0(_0.type)&&_0.content.trim()===""){if(B0.parent.splice(B0.index,1),B0.parent.length===0)delete _0.children;O0(),requestAnimationFrame(()=>u0(_0.id)),G0();return}k0(R.id,"p")}},H3=(w,R)=>{w.stopPropagation(),I0(w,(i)=>$(n,{children:[$(p0,{children:"转换为"},void 0,!1,void 0,this),E1.filter((j)=>j.type!=="divider").map((j)=>$(W0,{icon:j.ic,label:j.t,checked:R.type===j.type,onClick:()=>{k0(R.id,j.type,{content:R.content}),i()}},j.type,!1,void 0,this)),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"copy",label:"复制块",onClick:()=>{let j=x0(d,R.id);if(j)j.parent.splice(j.index+1,0,M8(R));O0(),G0(),i()}},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除块",danger:!0,onClick:()=>{T0(R.id),i()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},K3=L0(null),F3=(w)=>{let R=w.parentElement;while(R){let i=getComputedStyle(R).overflowY;if((i==="auto"||i==="scroll")&&R.scrollHeight>R.clientHeight)return R;R=R.parentElement}return null},H6=(w)=>{if(Y==="source"){let R=W.current,i=X0.current[w];if(!R||!i)return;R.setSelectionRange(i[0],i[1]);let j=R.value.slice(0,i[0]).split(`
|
|
116
|
+
`).length-1,a=getComputedStyle(R),q0=parseFloat(a.lineHeight)||20,B0=(parseFloat(a.paddingTop)||0)+j*q0,_0=F3(R);if(_0){let g0=R.getBoundingClientRect().top-_0.getBoundingClientRect().top+_0.scrollTop;_0.scrollTo({top:Math.max(0,g0+B0-_0.clientHeight/2),behavior:"smooth"})}else{let g0=R.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:Math.max(0,g0+B0-innerHeight/2),behavior:"smooth"})}}else{let R=z0.current,i=R[w]??null;if(I7(R,i),i){let j=i.startContainer;(j.nodeType===3?j.parentElement:j)?.scrollIntoView({block:"center",inline:"nearest",behavior:"smooth"})}}};e(()=>{if(!E){k8(),z0.current=[],X0.current=[],h(0);return}let w={caseSensitive:E.caseSensitive,wholeWord:E.wholeWord},R=setTimeout(()=>{let i;if(Y==="source"){let a=W.current?.value??G.current;X0.current=l1(a,E.term,w),z0.current=[],k8(),i=X0.current.length}else{let a=u.current;z0.current=a?R7(a,E.term,w):[],X0.current=[],i=z0.current.length}let j=i?Math.min(m.current,i-1):0;m.current=j,g(j),h(i),H6(j)},110);return()=>clearTimeout(R)},[E,F,Y]),e(()=>()=>k8(),[]),e(()=>{let w=(R)=>{if((R.metaKey||R.ctrlKey)&&!R.altKey&&R.key.toLowerCase()==="f")R.preventDefault(),t((i)=>i??{term:"",caseSensitive:!1,wholeWord:!1}),requestAnimationFrame(()=>{let i=u.current?.parentElement?.querySelector(".find-bar input")??document.querySelector(".find-bar input");i?.focus(),i?.select()})};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);let U3=(w)=>{let R=Y==="source"?X0.current.length:z0.current.length;if(!R)return;let i=(m.current+w+R)%R;m.current=i,g(i),H6(i)},L3=()=>t(null);if(P)return $("div",{class:"empty",children:"加载中…"},void 0,!1,void 0,this);let B3=new Set(P0),K6=(w,R=0)=>{let i=y8(w.filter((j)=>!i9(j)));return w.map((j)=>$(sX,{renderKey:F,block:j,depth:R,selected:B3.has(j.id),number:j.type==="numbered"?i.get(j.id)??1:0,onInput:(a)=>w0(j,a),onPaste:(a,q0)=>Z0(a,j,q0),onLangInput:(a)=>{j.lang=a,O0(),G0()},onKeyDown:(a,q0)=>q3(a,j,q0),onCodeInput:(a)=>{j.content=a,Q0("text:"+j.id),G0()},onCodeKeyDown:(a,q0)=>Y3(a,j,q0),onCellInput:(a,q0,B0)=>{if(!j.rows?.[a])return;j.rows[a][q0]=B0,Q0("table:"+j.id+":"+a+":"+q0),G0()},onTableChange:()=>{O0(),G0()},onAdd:()=>s(j.id),onMenu:(a)=>H3(a,j),onToggle:()=>{j.checked=!j.checked,O0(),G0()},onDropFiles:(a)=>void v0(j,a),dragRef:K3,onReorder:(a,q0)=>{let B0=P0;if(B0.length>1&&B0.includes(a)?A7(d,B0,j.id,q0):B7(d,a,j.id,q0))O0(),G0()},children:j.children?.length?K6(j.children,R+1):null},j.id,!1,void 0,this))};return $(n,{children:[Y==="blocks"&&$(tX,{blocks:d},F,!1,void 0,this),E&&$(Xz,{term:E.term,caseSensitive:E.caseSensitive,wholeWord:E.wholeWord,idx:$0,total:I,onTerm:(w)=>{m.current=0,t((R)=>R?{...R,term:w}:R)},onToggleCase:()=>t((w)=>w?{...w,caseSensitive:!w.caseSensitive}:w),onToggleWord:()=>t((w)=>w?{...w,wholeWord:!w.wholeWord}:w),onStep:U3,onClose:L3},void 0,!1,void 0,this),$("div",{ref:u,class:"doc"+(Y==="source"?" source-mode":""),onMouseDown:(w)=>G3(w),onMouseUp:()=>n1(M),onKeyUp:(w)=>{if(w.shiftKey||w.key.startsWith("Arrow"))n1(M)},children:[_&&$("div",{class:"doc-conflict",role:"alert",children:[$("span",{class:"doc-conflict-msg",children:"文档已被其他端修改,自动保存已暂停。"},void 0,!1,void 0,this),$("button",{class:"btn btn-secondary",onClick:()=>h0(),children:"载入最新(弃本地改动)"},void 0,!1,void 0,this),$("button",{class:"btn btn-danger",onClick:()=>void r({force:!0}),children:"用本地版本覆盖"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"doc-title",contentEditable:!0,onInput:(w)=>{q.current=w.target.textContent??"",Q0("title"),G0()},onKeyDown:(w)=>{if(w.isComposing||w.keyCode===229)return;if(w.key==="Enter")if(w.preventDefault(),!d.length)s(null);else u0(d[0].id)},dangerouslySetInnerHTML:{__html:q.current}},void 0,!1,void 0,this),$("div",{class:"doc-meta",children:[$("span",{children:[$(D,{name:"file",cls:"ico sm"},void 0,!1,void 0,this),p1(d)," 个块"]},void 0,!0,void 0,this),$("span",{children:"实时同步"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y==="source"?$("textarea",{ref:W,class:"doc-source",spellcheck:!1,defaultValue:G.current,onInput:(w)=>{let R=w.currentTarget;G.current=R.value,b7(R),G0()}},void 0,!1,void 0,this):K6(d),Y==="blocks"&&d.length===0&&$("div",{class:"editable",style:{color:"var(--muted)",cursor:"text"},onClick:()=>s(null),children:"点此书写,或输入 “/” 选择块类型…"},void 0,!1,void 0,this),L&&Z9.length>0&&(()=>{let i=innerHeight-(L.y+22)-8,j=L.y-8,a=i>=240||i>=j,q0=Math.min(L.x,innerWidth-270),B0=Math.min(a?i:j,Math.round(innerHeight*0.7)),_0=a?{left:q0,top:L.y+22,maxHeight:B0,minWidth:260}:{left:q0,bottom:innerHeight-L.y+6,maxHeight:B0,minWidth:260};return $("div",{class:"pop",style:_0,ref:V,children:[$(p0,{children:"基础块"},void 0,!1,void 0,this),Z9.map((g0,$9)=>$("button",{class:"item"+($9===L.idx?" sel":""),onMouseDown:(P9)=>{P9.preventDefault(),J0(g0)},children:[$("span",{class:"lico",children:$(D,{name:g0.ic,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"meta",children:[$("span",{class:"t",children:g0.t},void 0,!1,void 0,this),$("span",{class:"d",children:g0.d},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},g0.type,!0,void 0,this))]},void 0,!0,void 0,this)})(),S&&!N&&$(zz,{x:S.x,y:S.y,onCommand:G9},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function j7(Z){if(!Z)return[];let J=[];for(let Q=0;Q<(Z.items?.length??0);Q++){let X=Z.items[Q];if(X.kind==="file"&&X.type.startsWith("image/")){let z=X.getAsFile();if(z)J.push(z)}}if(!J.length)for(let Q=0;Q<(Z.files?.length??0);Q++){let X=Z.files[Q];if(X.type.startsWith("image/"))J.push(X)}return J}function S7(Z,J){return`![${(Z||"image").replace(/[[\]()]/g,"").trim()}](${J})`}function sX({block:Z,number:J,depth:Q,renderKey:X,selected:z,onInput:G,onPaste:W,onLangInput:q,onKeyDown:Y,onCodeInput:H,onCodeKeyDown:F,onCellInput:K,onTableChange:P,onAdd:A,onMenu:L,onToggle:y,onDropFiles:V,dragRef:S,onReorder:M,children:N}){let k=L0(null);e(()=>{let U=k.current;if(U&&Z.type!=="code"){let B=fZ(Z.content);if(U.innerHTML!==B&&l9(U.innerHTML)!==Z.content)U.innerHTML=B}},[X,Z.type]);let v=e0(Z.type)&&Z.content.trim()===""&&Z.children?.[0]?.type==="code",O="block b-"+Z.type+(Z.type==="todo"&&Z.checked?" b-done":"")+(v?" list-code-host":"")+(z?" selected":"");return $("div",{class:"block-wrap"+(Q?" nested":""),children:[$("div",{class:O,"data-bid":Z.id,onDragOver:(U)=>{if(S.current&&S.current!==Z.id){if(U.preventDefault(),U.dataTransfer)U.dataTransfer.dropEffect="move";Bz(U.currentTarget,U)}else if(!S.current&&Array.from(U.dataTransfer?.items??[]).some((B)=>B.kind==="file")){if(U.preventDefault(),U.dataTransfer)U.dataTransfer.dropEffect="copy"}},onDrop:(U)=>{if(S.current){U.preventDefault();let C=U.currentTarget.classList.contains("drop-after")?"after":"before",_=S.current;S.current=null,g7(),M(_,C);return}let B=j7(U.dataTransfer);if(B.length)U.preventDefault(),V(B)},children:[$("div",{class:"gutter",children:[$("button",{title:"在下方插入",onClick:A,children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"grip",title:"拖拽移动 · 点击菜单",draggable:!0,onClick:L,onDragStart:(U)=>{if(S.current=Z.id,U.dataTransfer)U.dataTransfer.effectAllowed="move",U.dataTransfer.setData("text/plain",Z.id);U.currentTarget.closest(".block").classList.add("dragging")},onDragEnd:(U)=>{U.currentTarget.closest(".block").classList.remove("dragging"),g7()},children:$(D,{name:"grip",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z.type==="divider"?$("hr",{},void 0,!1,void 0,this):Z.type==="table"?$($z,{block:Z,renderKey:X,onCellInput:K,onTableChange:P},void 0,!1,void 0,this):$(n,{children:[Z.type==="bullet"&&$("div",{class:"marker",children:"•"},void 0,!1,void 0,this),Z.type==="numbered"&&$("div",{class:"marker",children:[J,"."]},void 0,!0,void 0,this),Z.type==="todo"&&$("div",{class:"marker",children:$("input",{type:"checkbox",checked:!!Z.checked,onChange:y},void 0,!1,void 0,this)},void 0,!1,void 0,this),v?null:Z.type==="code"?$(Jz,{block:Z,renderKey:X,onInput:H,onLangChange:q,onKeyDown:F},void 0,!1,void 0,this):$("div",{ref:k,class:"editable",contentEditable:!0,"data-ph":eX(Z.type),"data-ph-hint":Zz(Z.type)?"slash":"kind",onInput:(U)=>G(U.currentTarget),onPaste:(U)=>W(U,U.currentTarget),onKeyDown:(U)=>Y(U,U.currentTarget)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),N]},void 0,!0,void 0,this)}var x7={h1:"标题 1",h2:"标题 2",h3:"标题 3",code:"输入代码…",quote:"引用"};function eX(Z){return x7[Z]??"输入文本,“/” 唤出命令"}function Zz(Z){return!(Z in x7)}function Jz({block:Z,renderKey:J,onInput:Q,onLangChange:X,onKeyDown:z}){let G=L0(null),W=L0(null),q=L0(null),[Y,H]=f(!1),F=(A)=>{if(W.current)W.current.innerHTML=rX(A,Z.lang);if(q.current){let y=A.split(`
|
|
117
|
+
`).length,V="1";for(let S=2;S<=y;S++)V+=`
|
|
118
|
+
`+S;q.current.textContent=V}let L=G.current;if(L)L.style.height="auto",L.style.height=L.scrollHeight+"px"};e(()=>{let A=G.current;if(A&&A.value!==Z.content)A.value=Z.content;F(Z.content)},[J,Z.lang]);let K=Z.lang??"",P=u1.some((A)=>A.id===K);return $("div",{class:"codeblock",children:[$("div",{class:"code-body",children:[$("div",{ref:q,class:"code-gutter","aria-hidden":"true",children:"1"},void 0,!1,void 0,this),$("div",{class:"code-scroll",children:[$("pre",{class:"code-hl","aria-hidden":"true",children:$("code",{ref:W,class:"hljs"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("textarea",{ref:G,class:"code-input",rows:1,spellcheck:!1,wrap:"off",placeholder:"输入代码…",onInput:(A)=>{let L=A.currentTarget;Q(L.value),F(L.value)},onKeyDown:(A)=>z(A,A.currentTarget),onScroll:(A)=>{let L=W.current?.parentElement;if(L)L.scrollLeft=A.currentTarget.scrollLeft}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"code-tools",children:[$("span",{class:"code-lang",children:[$("select",{value:K,onChange:(A)=>X(A.currentTarget.value),children:[!P&&$("option",{value:K,children:K||"纯文本"},void 0,!1,void 0,this),u1.map((A)=>$("option",{value:A.id,children:A.label},A.id,!1,void 0,this))]},void 0,!0,void 0,this),$(D,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"code-copy"+(Y?" ok":""),title:"复制代码",onClick:()=>{let A=G.current?.value??Z.content;navigator.clipboard?.writeText(A).then(()=>{H(!0),setTimeout(()=>H(!1),1400)}).catch(()=>{})},children:[$(D,{name:Y?"check":"copy",cls:"ico sm"},void 0,!1,void 0,this),Y?"已复制":"复制"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function $z({block:Z,renderKey:J,onCellInput:Q,onTableChange:X}){let z=Z.rows??[],G=z[0]?.length??0,W=Z.align??[],q=L0(null),Y=L0([]);if(Y.current.length!==G)Y.current=Array.from({length:G},(N,k)=>Y.current[k]??160);let H=()=>{Z.rows=[...z,Array(G).fill("")],X()},F=()=>{Z.rows=z.map((N)=>[...N,""]),Z.align=[...W,null],X()},K=(N)=>{Z.rows=z.map((v)=>{let O=[...v];return O.splice(N,0,""),O});let k=[...W];k.splice(N,0,null),Z.align=k,X()},P=(N)=>{if(G<=1)return;Z.rows=z.map((k)=>k.filter((v,O)=>O!==N)),Z.align=W.filter((k,v)=>v!==N),X()},A=(N)=>{if(N===0||z.length<=2)return;Z.rows=z.filter((k,v)=>v!==N),X()},L=(N,k)=>{let v=Array.from({length:G},(O,U)=>W[U]??null);v[N]=k,Z.align=v,X()},y=(N,k)=>{let v=q.current?.querySelector(`.doc-td[data-r="${N}"][data-c="${k}"]`);if(!v)return!1;v.focus();let O=document.createRange();O.selectNodeContents(v),O.collapse(!1);let U=getSelection();return U?.removeAllRanges(),U?.addRange(O),!0},V=(N,k,v)=>{if(N.isComposing||N.keyCode===229)return;if(N.key==="Tab"){if(N.preventDefault(),N.shiftKey){if(v>0)y(k,v-1);else if(k>0)y(k-1,G-1)}else if(v<G-1)y(k,v+1);else if(k<z.length-1)y(k+1,0);else H(),requestAnimationFrame(()=>y(z.length,0));return}if(N.key==="Enter"){if(N.preventDefault(),k<z.length-1)y(k+1,v);else H(),requestAnimationFrame(()=>y(z.length,v));return}},S=(N,k)=>{N.preventDefault(),N.stopPropagation(),z8(N,{col:q.current?.querySelector(`col[data-tcol="${k}"]`)??null,startWidth:Y.current[k]??160,min:60,onDone:(v)=>{Y.current[k]=v}})},M=(N,k)=>{N.preventDefault(),N.stopPropagation(),I0(N,(v)=>$(n,{children:[$(p0,{children:"对齐方式"},void 0,!1,void 0,this),$(W0,{icon:"alignLeft",label:"左对齐",checked:(W[k]??null)===null||W[k]==="left",onClick:()=>{L(k,"left"),v()}},void 0,!1,void 0,this),$(W0,{icon:"alignCenter",label:"居中",checked:W[k]==="center",onClick:()=>{L(k,"center"),v()}},void 0,!1,void 0,this),$(W0,{icon:"alignRight",label:"右对齐",checked:W[k]==="right",onClick:()=>{L(k,"right"),v()}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"plus",label:"在左侧插入列",onClick:()=>{K(k),v()}},void 0,!1,void 0,this),$(W0,{icon:"cornerUpRight",label:"在右侧插入列",onClick:()=>{K(k+1),v()}},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除列",danger:!0,onClick:()=>{P(k),v()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return $("div",{class:"doc-table-wrap",children:$("div",{class:"doc-table-scroll",children:$("div",{class:"doc-table-inner",children:[$("div",{class:"doc-table-row",children:[$("table",{ref:q,class:"doc-table",children:[$("colgroup",{children:Array.from({length:G},(N,k)=>$("col",{"data-tcol":k,style:{width:Y.current[k]}},k,!1,void 0,this))},void 0,!1,void 0,this),$("tbody",{children:z.map((N,k)=>$("tr",{children:N.map((v,O)=>$("td",{class:k===0?"doc-th":void 0,children:[$(Qz,{value:v,renderKey:J,r:k,c:O,align:W[O]??null,onInput:(U)=>Q(k,O,U),onKeyDown:(U)=>V(U,k,O)},void 0,!1,void 0,this),k===0&&$(n,{children:[$("button",{class:"doc-col-menu",title:"列选项",onMouseDown:(U)=>M(U,O),children:$(D,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"doc-col-resizer",onPointerDown:(U)=>S(U,O)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),O===0&&k>0&&z.length>2&&$("button",{class:"doc-row-del",title:"删除行",onMouseDown:(U)=>{U.preventDefault(),U.stopPropagation(),A(k)},children:$(D,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},O,!0,void 0,this))},k,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"doc-table-addcol",title:"新增列",onMouseDown:(N)=>{N.preventDefault(),F()},children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"doc-table-addrow",title:"新增行",onMouseDown:(N)=>{N.preventDefault(),H()},children:$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function Qz({value:Z,renderKey:J,r:Q,c:X,align:z,onInput:G,onKeyDown:W}){let q=L0(null);return e(()=>{let Y=q.current;if(Y){let H=fZ(Z);if(Y.innerHTML!==H&&l9(Y.innerHTML)!==Z)Y.innerHTML=H}},[J]),$("div",{ref:q,class:"doc-td","data-r":Q,"data-c":X,contentEditable:!0,"data-ph":Q===0?"表头":"",style:z?{textAlign:z}:void 0,onInput:(Y)=>G(l9(Y.currentTarget.innerHTML)),onKeyDown:(Y)=>W(Y)},void 0,!1,void 0,this)}function Xz({term:Z,caseSensitive:J,wholeWord:Q,idx:X,total:z,onTerm:G,onToggleCase:W,onToggleWord:q,onStep:Y,onClose:H}){let F=(K)=>K.preventDefault();return $("div",{class:"find-bar",role:"search",children:[$(D,{name:"search",cls:"ico sm find-ico"},void 0,!1,void 0,this),$("input",{type:"text",placeholder:"在文档中查找",value:Z,autoFocus:!0,onInput:(K)=>G(K.currentTarget.value),onKeyDown:(K)=>{if(K.key==="Enter")K.preventDefault(),Y(K.shiftKey?-1:1);else if(K.key==="Escape")K.preventDefault(),H()}},void 0,!1,void 0,this),$("span",{class:"find-count",children:z?`${X+1} / ${z}`:Z?"无结果":""},void 0,!1,void 0,this),$("button",{class:"find-opt"+(J?" on":""),title:"区分大小写",onMouseDown:F,onClick:W,children:"Aa"},void 0,!1,void 0,this),$("button",{class:"find-opt"+(Q?" on":""),title:"全词匹配",onMouseDown:F,onClick:q,children:"全词"},void 0,!1,void 0,this),$("button",{class:"find-nav",title:"上一个 (Shift+Enter)",disabled:!z,onMouseDown:F,onClick:()=>Y(-1),children:$(D,{name:"chevronDown",cls:"ico sm find-prev"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"find-nav",title:"下一个 (Enter)",disabled:!z,onMouseDown:F,onClick:()=>Y(1),children:$(D,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"find-nav find-close",title:"关闭 (Esc)",onClick:H,children:$(D,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function zz({x:Z,y:J,onCommand:Q}){let X=(z)=>(G)=>{G.preventDefault(),Q(z)};return $("div",{class:"pop",style:{left:Math.max(8,Math.min(Z,innerWidth-220)),top:J-46,minWidth:0,padding:3,display:"flex",gap:1},children:[["bold","bold"],["italic","italic"],["underline","underline"],["strikeThrough","strike"],["code","code"],["createLink","link"]].map(([z,G])=>$("button",{class:"item",style:{width:34,justifyContent:"center",padding:"7px 0"},onMouseDown:X(z),children:$(D,{name:G,cls:"ico sm"},void 0,!1,void 0,this)},z,!1,void 0,this))},void 0,!1,void 0,this)}function Wz(){let Z=getSelection();if(!Z||Z.isCollapsed)return;document.execCommand("insertHTML",!1,`<code>${VZ(Z.toString())}</code>`)}function KZ(Z){document.querySelectorAll(".doc .block[data-bid]").forEach((J)=>Gz(Z,J))}function Gz(Z,J){let Q=J.matches(".block[data-bid]")?J:J.closest(".block[data-bid]"),X=Q?.getAttribute("data-bid"),z=X?x0(Z,X)?.block:null;if(!z||!Q)return;let G=Q.querySelector(".editable"),W=Q.querySelector(".code-input");if(G)z.content=bZ(z,G);else if(W)z.content=W.value}function qz(Z){return(Z instanceof HTMLElement?Z:Z.parentElement)?.closest(".block[data-bid]")??null}function V7(){return document.activeElement?.closest?.(".doc .block[data-bid]")?.getAttribute("data-bid")??null}function o1(Z){document.querySelector(".doc")?.classList.toggle("selecting",Z)}function T8(){getSelection()?.removeAllRanges(),document.activeElement?.blur?.(),o1(!0)}function n1(Z){let J=getSelection();if(!J||J.isCollapsed||!J.rangeCount)return Z(null);if(!J.anchorNode?.parentElement?.closest?.(".editable"))return Z(null);let X=J.getRangeAt(0),z=X.getBoundingClientRect(),G=z.width||z.height?z:X.getClientRects()[0];if(!G)return Z(null);Z({x:G.left,y:G.top})}function Yz(Z){let J=getSelection()?.anchorNode?.parentElement?.closest?.(".editable"),X=J?.closest(".block")?.getAttribute("data-bid"),z=X?x0(Z,X)?.block:null;if(z&&J)z.content=bZ(z,J)}function bZ(Z,J){return l9(J.innerHTML)}function r1(){let Z=getSelection();return!!Z&&!Z.isCollapsed}function Hz(Z){let J=getSelection();if(!J||!J.rangeCount)return 0;let Q=J.getRangeAt(0);if(!Z.contains(Q.startContainer))return 0;let X=document.createRange();return X.selectNodeContents(Z),X.setEnd(Q.startContainer,Q.startOffset),X.toString().length}function R8(Z){let J=document.querySelector(`.block[data-bid="${Z}"]`),Q=document.activeElement;if(!J||!Q||!J.contains(Q))return null;if(Q instanceof HTMLTextAreaElement)return Q.selectionStart;let X=J.querySelector(".editable");return X?Hz(X):null}function I8(Z,J){let Q=document.querySelector(`.block[data-bid="${Z}"] .code-input`);if(Q){Q.focus();let X=Math.min(J,Q.value.length);Q.setSelectionRange(X,X);return}t1(Z,J)}function Kz(Z){let J=getSelection();if(!J||!J.rangeCount||!J.isCollapsed)return!1;let Q=J.getRangeAt(0);if(!Z.contains(Q.startContainer))return!1;let X=document.createRange();return X.selectNodeContents(Z),X.setEnd(Q.startContainer,Q.startOffset),X.toString().length===0}function Fz(){let Z=getSelection();if(!Z||!Z.rangeCount)return{x:80,y:120};let J=Z.getRangeAt(0).getBoundingClientRect();return{x:J.left||80,y:J.top||120}}function Uz(Z){let J=getSelection();if(!J||!J.rangeCount)return{first:!0,last:!0};let Q=J.getRangeAt(0).getBoundingClientRect(),X=Z.getBoundingClientRect();if(!Q.height&&!Q.top)return{first:!0,last:!0};let z=parseFloat(getComputedStyle(Z).lineHeight)||Q.height||20;return{first:Q.top-X.top<z*0.5,last:X.bottom-Q.bottom<z*0.5}}function Lz(Z){let J=Z.textContent??"";if(J.trim()==="")return!0;let Q=getSelection();if(!Q||!Q.rangeCount||Q.isCollapsed)return!1;if(!Z.contains(Q.anchorNode)||!Z.contains(Q.focusNode))return!1;return Q.toString().length>=J.length}function S8(Z){let J=getSelection();if(!J||!J.rangeCount||!Z.contains(J.getRangeAt(0).startContainer))return{before:l9(Z.innerHTML),after:""};let Q=J.getRangeAt(0),X=(z)=>{let G=document.createRange();G.selectNodeContents(Z),z(G);let W=document.createElement("div");return W.appendChild(G.cloneContents()),l9(W.innerHTML)};return{before:X((z)=>z.setEnd(Q.startContainer,Q.startOffset)),after:X((z)=>z.setStart(Q.endContainer,Q.endOffset))}}function f7(Z){let J=document.createElement("div");return J.innerHTML=fZ(Z),(J.textContent??"").length}function t1(Z,J){let Q=document.querySelector(`.block[data-bid="${Z}"] .editable`);if(!Q)return;Q.focus();let X=document.createTreeWalker(Q,NodeFilter.SHOW_TEXT),z=J,G=null;for(let Y=X.nextNode();Y;Y=X.nextNode()){if(G=Y,z<=Y.data.length)break;z-=Y.data.length}let W=document.createRange();if(G)W.setStart(G,Math.min(z,G.data.length));else W.selectNodeContents(Q);W.collapse(!0);let q=getSelection();q?.removeAllRanges(),q?.addRange(W)}function u0(Z,J=!1){let Q=`.block[data-bid="${Z}"] .editable, .block[data-bid="${Z}"] .code-input`,X=document.querySelector(Q);if(!X)return;if(X.focus(),X instanceof HTMLTextAreaElement){let W=J?X.value.length:0;X.setSelectionRange(W,W);return}let z=document.createRange();z.selectNodeContents(X),z.collapse(!J);let G=getSelection();G?.removeAllRanges(),G?.addRange(z)}function b7(Z){Z.style.height="auto",Z.style.height=Z.scrollHeight+"px"}var g7=U9;function Bz(Z,J){J1(Z,J,"y")}var FZ=function(Z,J){let z=Z,G=gZ[J],W=null,q=0,Y=null,H=[],F={},K=function(U,B){if(q=z*4+17,W=function(C){let _=Array(C);for(let T=0;T<C;T+=1){_[T]=Array(C);for(let u=0;u<C;u+=1)_[T][u]=null}return _}(q),P(0,0),P(q-7,0),P(0,q-7),y(),L(),S(U,B),z>=7)V(U);if(Y==null)Y=k(z,G,H);M(Y,B)},P=function(U,B){for(let C=-1;C<=7;C+=1){if(U+C<=-1||q<=U+C)continue;for(let _=-1;_<=7;_+=1){if(B+_<=-1||q<=B+_)continue;if(0<=C&&C<=6&&(_==0||_==6)||0<=_&&_<=6&&(C==0||C==6)||2<=C&&C<=4&&2<=_&&_<=4)W[U+C][B+_]=!0;else W[U+C][B+_]=!1}}},A=function(){let U=0,B=0;for(let C=0;C<8;C+=1){K(!0,C);let _=V9.getLostPoint(F);if(C==0||U>_)U=_,B=C}return B},L=function(){for(let U=8;U<q-8;U+=1){if(W[U][6]!=null)continue;W[U][6]=U%2==0}for(let U=8;U<q-8;U+=1){if(W[6][U]!=null)continue;W[6][U]=U%2==0}},y=function(){let U=V9.getPatternPosition(z);for(let B=0;B<U.length;B+=1)for(let C=0;C<U.length;C+=1){let _=U[B],T=U[C];if(W[_][T]!=null)continue;for(let u=-2;u<=2;u+=1)for(let E=-2;E<=2;E+=1)if(u==-2||u==2||E==-2||E==2||u==0&&E==0)W[_+u][T+E]=!0;else W[_+u][T+E]=!1}},V=function(U){let B=V9.getBCHTypeNumber(z);for(let C=0;C<18;C+=1){let _=!U&&(B>>C&1)==1;W[Math.floor(C/3)][C%3+q-8-3]=_}for(let C=0;C<18;C+=1){let _=!U&&(B>>C&1)==1;W[C%3+q-8-3][Math.floor(C/3)]=_}},S=function(U,B){let C=G<<3|B,_=V9.getBCHTypeInfo(C);for(let T=0;T<15;T+=1){let u=!U&&(_>>T&1)==1;if(T<6)W[T][8]=u;else if(T<8)W[T+1][8]=u;else W[q-15+T][8]=u}for(let T=0;T<15;T+=1){let u=!U&&(_>>T&1)==1;if(T<8)W[8][q-T-1]=u;else if(T<9)W[8][15-T-1+1]=u;else W[8][15-T-1]=u}W[q-8][8]=!U},M=function(U,B){let C=-1,_=q-1,T=7,u=0,E=V9.getMaskFunction(B);for(let t=q-1;t>0;t-=2){if(t==6)t-=1;while(!0){for(let $0=0;$0<2;$0+=1)if(W[_][t-$0]==null){let g=!1;if(u<U.length)g=(U[u]>>>T&1)==1;if(E(_,t-$0))g=!g;if(W[_][t-$0]=g,T-=1,T==-1)u+=1,T=7}if(_+=C,_<0||q<=_){_-=C,C=-C;break}}}},N=function(U,B){let C=0,_=0,T=0,u=Array(B.length),E=Array(B.length);for(let I=0;I<B.length;I+=1){let h=B[I].dataCount,m=B[I].totalCount-h;_=Math.max(_,h),T=Math.max(T,m),u[I]=Array(h);for(let p=0;p<u[I].length;p+=1)u[I][p]=255&U.getBuffer()[p+C];C+=h;let z0=V9.getErrorCorrectPolynomial(m),Y0=jZ(u[I],z0.getLength()-1).mod(z0);E[I]=Array(z0.getLength()-1);for(let p=0;p<E[I].length;p+=1){let Q0=p+Y0.getLength()-E[I].length;E[I][p]=Q0>=0?Y0.getAt(Q0):0}}let t=0;for(let I=0;I<B.length;I+=1)t+=B[I].totalCount;let $0=Array(t),g=0;for(let I=0;I<_;I+=1)for(let h=0;h<B.length;h+=1)if(I<u[h].length)$0[g]=u[h][I],g+=1;for(let I=0;I<T;I+=1)for(let h=0;h<B.length;h+=1)if(I<E[h].length)$0[g]=E[h][I],g+=1;return $0},k=function(U,B,C){let _=D7.getRSBlocks(U,B),T=h7();for(let E=0;E<C.length;E+=1){let t=C[E];T.put(t.getMode(),4),T.put(t.getLength(),V9.getLengthInBits(t.getMode(),U)),t.write(T)}let u=0;for(let E=0;E<_.length;E+=1)u+=_[E].dataCount;if(T.getLengthInBits()>u*8)throw"code length overflow. ("+T.getLengthInBits()+">"+u*8+")";if(T.getLengthInBits()+4<=u*8)T.put(0,4);while(T.getLengthInBits()%8!=0)T.putBit(!1);while(!0){if(T.getLengthInBits()>=u*8)break;if(T.put(236,8),T.getLengthInBits()>=u*8)break;T.put(17,8)}return N(T,_)};F.addData=function(U,B){B=B||"Byte";let C=null;switch(B){case"Numeric":C=Pz(U);break;case"Alphanumeric":C=Oz(U);break;case"Byte":C=wz(U);break;case"Kanji":C=Az(U);break;default:throw"mode:"+B}H.push(C),Y=null},F.isDark=function(U,B){if(U<0||q<=U||B<0||q<=B)throw U+","+B;return W[U][B]},F.getModuleCount=function(){return q},F.make=function(){if(z<1){let U=1;for(;U<40;U++){let B=D7.getRSBlocks(U,G),C=h7();for(let T=0;T<H.length;T++){let u=H[T];C.put(u.getMode(),4),C.put(u.getLength(),V9.getLengthInBits(u.getMode(),U)),u.write(C)}let _=0;for(let T=0;T<B.length;T++)_+=B[T].dataCount;if(C.getLengthInBits()<=_*8)break}z=U}K(!1,A())},F.createTableTag=function(U,B){U=U||2,B=typeof B>"u"?U*4:B;let C="";C+='<table style="',C+=" border-width: 0px; border-style: none;",C+=" border-collapse: collapse;",C+=" padding: 0px; margin: "+B+"px;",C+='">',C+="<tbody>";for(let _=0;_<F.getModuleCount();_+=1){C+="<tr>";for(let T=0;T<F.getModuleCount();T+=1)C+='<td style="',C+=" border-width: 0px; border-style: none;",C+=" border-collapse: collapse;",C+=" padding: 0px; margin: 0px;",C+=" width: "+U+"px;",C+=" height: "+U+"px;",C+=" background-color: ",C+=F.isDark(_,T)?"#000000":"#ffffff",C+=";",C+='"/>';C+="</tr>"}return C+="</tbody>",C+="</table>",C},F.createSvgTag=function(U,B,C,_){let T={};if(typeof arguments[0]=="object")T=arguments[0],U=T.cellSize,B=T.margin,C=T.alt,_=T.title;U=U||2,B=typeof B>"u"?U*4:B,C=typeof C==="string"?{text:C}:C||{},C.text=C.text||null,C.id=C.text?C.id||"qrcode-description":null,_=typeof _==="string"?{text:_}:_||{},_.text=_.text||null,_.id=_.text?_.id||"qrcode-title":null;let u=F.getModuleCount()*U+B*2,E,t,$0,g,I="",h;h="l"+U+",0 0,"+U+" -"+U+",0 0,-"+U+"z ",I+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',I+=!T.scalable?' width="'+u+'px" height="'+u+'px"':"",I+=' viewBox="0 0 '+u+" "+u+'" ',I+=' preserveAspectRatio="xMinYMin meet"',I+=_.text||C.text?' role="img" aria-labelledby="'+v([_.id,C.id].join(" ").trim())+'"':"",I+=">",I+=_.text?'<title id="'+v(_.id)+'">'+v(_.text)+"</title>":"",I+=C.text?'<description id="'+v(C.id)+'">'+v(C.text)+"</description>":"",I+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',I+='<path d="';for($0=0;$0<F.getModuleCount();$0+=1){g=$0*U+B;for(E=0;E<F.getModuleCount();E+=1)if(F.isDark($0,E))t=E*U+B,I+="M"+t+","+g+h}return I+='" stroke="transparent" fill="black"/>',I+="</svg>",I},F.createDataURL=function(U,B){U=U||2,B=typeof B>"u"?U*4:B;let C=F.getModuleCount()*U+B*2,_=B,T=C-B;return Mz(C,C,function(u,E){if(_<=u&&u<T&&_<=E&&E<T){let t=Math.floor((u-_)/U),$0=Math.floor((E-_)/U);return F.isDark($0,t)?0:1}else return 1})},F.createImgTag=function(U,B,C){U=U||2,B=typeof B>"u"?U*4:B;let _=F.getModuleCount()*U+B*2,T="";if(T+="<img",T+=' src="',T+=F.createDataURL(U,B),T+='"',T+=' width="',T+=_,T+='"',T+=' height="',T+=_,T+='"',C)T+=' alt="',T+=v(C),T+='"';return T+="/>",T};let v=function(U){let B="";for(let C=0;C<U.length;C+=1){let _=U.charAt(C);switch(_){case"<":B+="<";break;case">":B+=">";break;case"&":B+="&";break;case'"':B+=""";break;default:B+=_;break}}return B},O=function(U){U=typeof U>"u"?2:U;let C=F.getModuleCount()*1+U*2,_=U,T=C-U,u,E,t,$0,g,I={"██":"█","█ ":"▀"," █":"▄"," ":" "},h={"██":"▀","█ ":"▀"," █":" "," ":" "},m="";for(u=0;u<C;u+=2){t=Math.floor((u-_)/1),$0=Math.floor((u+1-_)/1);for(E=0;E<C;E+=1){if(g="█",_<=E&&E<T&&_<=u&&u<T&&F.isDark(t,Math.floor((E-_)/1)))g=" ";if(_<=E&&E<T&&_<=u+1&&u+1<T&&F.isDark($0,Math.floor((E-_)/1)))g+=" ";else g+="█";m+=U<1&&u+1>=T?h[g]:I[g]}m+=`
|
|
119
|
+
`}if(C%2&&U>0)return m.substring(0,m.length-C-1)+Array(C+1).join("▀");return m.substring(0,m.length-1)};return F.createASCII=function(U,B){if(U=U||1,U<2)return O(B);U-=1,B=typeof B>"u"?U*2:B;let C=F.getModuleCount()*U+B*2,_=B,T=C-B,u,E,t,$0,g=Array(U+1).join("██"),I=Array(U+1).join(" "),h="",m="";for(u=0;u<C;u+=1){t=Math.floor((u-_)/U),m="";for(E=0;E<C;E+=1){if($0=1,_<=E&&E<T&&_<=u&&u<T&&F.isDark(t,Math.floor((E-_)/U)))$0=0;m+=$0?g:I}for(t=0;t<U;t+=1)h+=m+`
|
|
120
|
+
`}return h.substring(0,h.length-1)},F.renderTo2dContext=function(U,B){B=B||2;let C=F.getModuleCount();for(let _=0;_<C;_++)for(let T=0;T<C;T++)U.fillStyle=F.isDark(_,T)?"black":"white",U.fillRect(T*B,_*B,B,B)},F};FZ.stringToBytes=function(Z){let J=[];for(let Q=0;Q<Z.length;Q+=1){let X=Z.charCodeAt(Q);J.push(X&255)}return J};FZ.createStringToBytes=function(Z,J){let Q=function(){let z=Nz(Z),G=function(){let Y=z.read();if(Y==-1)throw"eof";return Y},W=0,q={};while(!0){let Y=z.read();if(Y==-1)break;let H=G(),F=G(),K=G(),P=String.fromCharCode(Y<<8|H),A=F<<8|K;q[P]=A,W+=1}if(W!=J)throw W+" != "+J;return q}(),X=63;return function(z){let G=[];for(let W=0;W<z.length;W+=1){let q=z.charCodeAt(W);if(q<128)G.push(q);else{let Y=Q[z.charAt(W)];if(typeof Y=="number")if((Y&255)==Y)G.push(Y);else G.push(Y>>>8),G.push(Y&255);else G.push(63)}}return G}};var n0={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},gZ={L:1,M:0,Q:3,H:2},S9={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},V9=function(){let Z=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],J=1335,Q=7973,X=21522,z={},G=function(W){let q=0;while(W!=0)q+=1,W>>>=1;return q};return z.getBCHTypeInfo=function(W){let q=W<<10;while(G(q)-G(1335)>=0)q^=1335<<G(q)-G(1335);return(W<<10|q)^21522},z.getBCHTypeNumber=function(W){let q=W<<12;while(G(q)-G(7973)>=0)q^=7973<<G(q)-G(7973);return W<<12|q},z.getPatternPosition=function(W){return Z[W-1]},z.getMaskFunction=function(W){switch(W){case S9.PATTERN000:return function(q,Y){return(q+Y)%2==0};case S9.PATTERN001:return function(q,Y){return q%2==0};case S9.PATTERN010:return function(q,Y){return Y%3==0};case S9.PATTERN011:return function(q,Y){return(q+Y)%3==0};case S9.PATTERN100:return function(q,Y){return(Math.floor(q/2)+Math.floor(Y/3))%2==0};case S9.PATTERN101:return function(q,Y){return q*Y%2+q*Y%3==0};case S9.PATTERN110:return function(q,Y){return(q*Y%2+q*Y%3)%2==0};case S9.PATTERN111:return function(q,Y){return(q*Y%3+(q+Y)%2)%2==0};default:throw"bad maskPattern:"+W}},z.getErrorCorrectPolynomial=function(W){let q=jZ([1],0);for(let Y=0;Y<W;Y+=1)q=q.multiply(jZ([1,f9.gexp(Y)],0));return q},z.getLengthInBits=function(W,q){if(1<=q&&q<10)switch(W){case n0.MODE_NUMBER:return 10;case n0.MODE_ALPHA_NUM:return 9;case n0.MODE_8BIT_BYTE:return 8;case n0.MODE_KANJI:return 8;default:throw"mode:"+W}else if(q<27)switch(W){case n0.MODE_NUMBER:return 12;case n0.MODE_ALPHA_NUM:return 11;case n0.MODE_8BIT_BYTE:return 16;case n0.MODE_KANJI:return 10;default:throw"mode:"+W}else if(q<41)switch(W){case n0.MODE_NUMBER:return 14;case n0.MODE_ALPHA_NUM:return 13;case n0.MODE_8BIT_BYTE:return 16;case n0.MODE_KANJI:return 12;default:throw"mode:"+W}else throw"type:"+q},z.getLostPoint=function(W){let q=W.getModuleCount(),Y=0;for(let K=0;K<q;K+=1)for(let P=0;P<q;P+=1){let A=0,L=W.isDark(K,P);for(let y=-1;y<=1;y+=1){if(K+y<0||q<=K+y)continue;for(let V=-1;V<=1;V+=1){if(P+V<0||q<=P+V)continue;if(y==0&&V==0)continue;if(L==W.isDark(K+y,P+V))A+=1}}if(A>5)Y+=3+A-5}for(let K=0;K<q-1;K+=1)for(let P=0;P<q-1;P+=1){let A=0;if(W.isDark(K,P))A+=1;if(W.isDark(K+1,P))A+=1;if(W.isDark(K,P+1))A+=1;if(W.isDark(K+1,P+1))A+=1;if(A==0||A==4)Y+=3}for(let K=0;K<q;K+=1)for(let P=0;P<q-6;P+=1)if(W.isDark(K,P)&&!W.isDark(K,P+1)&&W.isDark(K,P+2)&&W.isDark(K,P+3)&&W.isDark(K,P+4)&&!W.isDark(K,P+5)&&W.isDark(K,P+6))Y+=40;for(let K=0;K<q;K+=1)for(let P=0;P<q-6;P+=1)if(W.isDark(P,K)&&!W.isDark(P+1,K)&&W.isDark(P+2,K)&&W.isDark(P+3,K)&&W.isDark(P+4,K)&&!W.isDark(P+5,K)&&W.isDark(P+6,K))Y+=40;let H=0;for(let K=0;K<q;K+=1)for(let P=0;P<q;P+=1)if(W.isDark(P,K))H+=1;let F=Math.abs(100*H/q/q-50)/5;return Y+=F*10,Y},z}(),f9=function(){let Z=Array(256),J=Array(256);for(let X=0;X<8;X+=1)Z[X]=1<<X;for(let X=8;X<256;X+=1)Z[X]=Z[X-4]^Z[X-5]^Z[X-6]^Z[X-8];for(let X=0;X<255;X+=1)J[Z[X]]=X;let Q={};return Q.glog=function(X){if(X<1)throw"glog("+X+")";return J[X]},Q.gexp=function(X){while(X<0)X+=255;while(X>=256)X-=255;return Z[X]},Q}(),jZ=function(Z,J){if(typeof Z.length>"u")throw Z.length+"/"+J;let Q=function(){let z=0;while(z<Z.length&&Z[z]==0)z+=1;let G=Array(Z.length-z+J);for(let W=0;W<Z.length-z;W+=1)G[W]=Z[W+z];return G}(),X={};return X.getAt=function(z){return Q[z]},X.getLength=function(){return Q.length},X.multiply=function(z){let G=Array(X.getLength()+z.getLength()-1);for(let W=0;W<X.getLength();W+=1)for(let q=0;q<z.getLength();q+=1)G[W+q]^=f9.gexp(f9.glog(X.getAt(W))+f9.glog(z.getAt(q)));return jZ(G,0)},X.mod=function(z){if(X.getLength()-z.getLength()<0)return X;let G=f9.glog(X.getAt(0))-f9.glog(z.getAt(0)),W=Array(X.getLength());for(let q=0;q<X.getLength();q+=1)W[q]=X.getAt(q);for(let q=0;q<z.getLength();q+=1)W[q]^=f9.gexp(f9.glog(z.getAt(q))+G);return jZ(W,0).mod(z)},X},D7=function(){let Z=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],J=function(z,G){let W={};return W.totalCount=z,W.dataCount=G,W},Q={},X=function(z,G){switch(G){case gZ.L:return Z[(z-1)*4+0];case gZ.M:return Z[(z-1)*4+1];case gZ.Q:return Z[(z-1)*4+2];case gZ.H:return Z[(z-1)*4+3];default:return}};return Q.getRSBlocks=function(z,G){let W=X(z,G);if(typeof W>"u")throw"bad rs block @ typeNumber:"+z+"/errorCorrectionLevel:"+G;let q=W.length/3,Y=[];for(let H=0;H<q;H+=1){let F=W[H*3+0],K=W[H*3+1],P=W[H*3+2];for(let A=0;A<F;A+=1)Y.push(J(K,P))}return Y},Q}(),h7=function(){let Z=[],J=0,Q={};return Q.getBuffer=function(){return Z},Q.getAt=function(X){let z=Math.floor(X/8);return(Z[z]>>>7-X%8&1)==1},Q.put=function(X,z){for(let G=0;G<z;G+=1)Q.putBit((X>>>z-G-1&1)==1)},Q.getLengthInBits=function(){return J},Q.putBit=function(X){let z=Math.floor(J/8);if(Z.length<=z)Z.push(0);if(X)Z[z]|=128>>>J%8;J+=1},Q},Pz=function(Z){let J=n0.MODE_NUMBER,Q=Z,X={};X.getMode=function(){return J},X.getLength=function(W){return Q.length},X.write=function(W){let q=Q,Y=0;while(Y+2<q.length)W.put(z(q.substring(Y,Y+3)),10),Y+=3;if(Y<q.length){if(q.length-Y==1)W.put(z(q.substring(Y,Y+1)),4);else if(q.length-Y==2)W.put(z(q.substring(Y,Y+2)),7)}};let z=function(W){let q=0;for(let Y=0;Y<W.length;Y+=1)q=q*10+G(W.charAt(Y));return q},G=function(W){if("0"<=W&&W<="9")return W.charCodeAt(0)-48;throw"illegal char :"+W};return X},Oz=function(Z){let J=n0.MODE_ALPHA_NUM,Q=Z,X={};X.getMode=function(){return J},X.getLength=function(G){return Q.length},X.write=function(G){let W=Q,q=0;while(q+1<W.length)G.put(z(W.charAt(q))*45+z(W.charAt(q+1)),11),q+=2;if(q<W.length)G.put(z(W.charAt(q)),6)};let z=function(G){if("0"<=G&&G<="9")return G.charCodeAt(0)-48;else if("A"<=G&&G<="Z")return G.charCodeAt(0)-65+10;else switch(G){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+G}};return X},wz=function(Z){let J=n0.MODE_8BIT_BYTE,Q=Z,X=FZ.stringToBytes(Z),z={};return z.getMode=function(){return J},z.getLength=function(G){return X.length},z.write=function(G){for(let W=0;W<X.length;W+=1)G.put(X[W],8)},z},Az=function(Z){let J=n0.MODE_KANJI,Q=Z,X=FZ.stringToBytes;(function(W,q){let Y=X(W);if(Y.length!=2||(Y[0]<<8|Y[1])!=q)throw"sjis not supported."})("友",38726);let z=X(Z),G={};return G.getMode=function(){return J},G.getLength=function(W){return~~(z.length/2)},G.write=function(W){let q=z,Y=0;while(Y+1<q.length){let H=(255&q[Y])<<8|255&q[Y+1];if(33088<=H&&H<=40956)H-=33088;else if(57408<=H&&H<=60351)H-=49472;else throw"illegal char at "+(Y+1)+"/"+H;H=(H>>>8&255)*192+(H&255),W.put(H,13),Y+=2}if(Y<q.length)throw"illegal char at "+(Y+1)},G},m7=function(){let Z=[],J={};return J.writeByte=function(Q){Z.push(Q&255)},J.writeShort=function(Q){J.writeByte(Q),J.writeByte(Q>>>8)},J.writeBytes=function(Q,X,z){X=X||0,z=z||Q.length;for(let G=0;G<z;G+=1)J.writeByte(Q[G+X])},J.writeString=function(Q){for(let X=0;X<Q.length;X+=1)J.writeByte(Q.charCodeAt(X))},J.toByteArray=function(){return Z},J.toString=function(){let Q="";Q+="[";for(let X=0;X<Z.length;X+=1){if(X>0)Q+=",";Q+=Z[X]}return Q+="]",Q},J},Cz=function(){let Z=0,J=0,Q=0,X="",z={},G=function(q){X+=String.fromCharCode(W(q&63))},W=function(q){if(q<0)throw"n:"+q;else if(q<26)return 65+q;else if(q<52)return 97+(q-26);else if(q<62)return 48+(q-52);else if(q==62)return 43;else if(q==63)return 47;else throw"n:"+q};return z.writeByte=function(q){Z=Z<<8|q&255,J+=8,Q+=1;while(J>=6)G(Z>>>J-6),J-=6},z.flush=function(){if(J>0)G(Z<<6-J),Z=0,J=0;if(Q%3!=0){let q=3-Q%3;for(let Y=0;Y<q;Y+=1)X+="="}},z.toString=function(){return X},z},Nz=function(Z){let J=Z,Q=0,X=0,z=0,G={};G.read=function(){while(z<8){if(Q>=J.length){if(z==0)return-1;throw"unexpected end of file./"+z}let Y=J.charAt(Q);if(Q+=1,Y=="=")return z=0,-1;else if(Y.match(/^\s$/))continue;X=X<<6|W(Y.charCodeAt(0)),z+=6}let q=X>>>z-8&255;return z-=8,q};let W=function(q){if(65<=q&&q<=90)return q-65;else if(97<=q&&q<=122)return q-97+26;else if(48<=q&&q<=57)return q-48+52;else if(q==43)return 62;else if(q==47)return 63;else throw"c:"+q};return G},yz=function(Z,J){let Q=Z,X=J,z=Array(Z*J),G={};G.setPixel=function(H,F,K){z[F*Q+H]=K},G.write=function(H){H.writeString("GIF87a"),H.writeShort(Q),H.writeShort(X),H.writeByte(128),H.writeByte(0),H.writeByte(0),H.writeByte(0),H.writeByte(0),H.writeByte(0),H.writeByte(255),H.writeByte(255),H.writeByte(255),H.writeString(","),H.writeShort(0),H.writeShort(0),H.writeShort(Q),H.writeShort(X),H.writeByte(0);let F=2,K=q(F);H.writeByte(F);let P=0;while(K.length-P>255)H.writeByte(255),H.writeBytes(K,P,255),P+=255;H.writeByte(K.length-P),H.writeBytes(K,P,K.length-P),H.writeByte(0),H.writeString(";")};let W=function(H){let F=H,K=0,P=0,A={};return A.write=function(L,y){if(L>>>y!=0)throw"length over";while(K+y>=8)F.writeByte(255&(L<<K|P)),y-=8-K,L>>>=8-K,P=0,K=0;P=L<<K|P,K=K+y},A.flush=function(){if(K>0)F.writeByte(P)},A},q=function(H){let F=1<<H,K=(1<<H)+1,P=H+1,A=Y();for(let M=0;M<F;M+=1)A.add(String.fromCharCode(M));A.add(String.fromCharCode(F)),A.add(String.fromCharCode(K));let L=m7(),y=W(L);y.write(F,P);let V=0,S=String.fromCharCode(z[V]);V+=1;while(V<z.length){let M=String.fromCharCode(z[V]);if(V+=1,A.contains(S+M))S=S+M;else{if(y.write(A.indexOf(S),P),A.size()<4095){if(A.size()==1<<P)P+=1;A.add(S+M)}S=M}}return y.write(A.indexOf(S),P),y.write(K,P),y.flush(),L.toByteArray()},Y=function(){let H={},F=0,K={};return K.add=function(P){if(K.contains(P))throw"dup key:"+P;H[P]=F,F+=1},K.size=function(){return F},K.indexOf=function(P){return H[P]},K.contains=function(P){return typeof H[P]<"u"},K};return G},Mz=function(Z,J,Q){let X=yz(Z,J);for(let q=0;q<J;q+=1)for(let Y=0;Y<Z;Y+=1)X.setPixel(Y,q,Q(Y,q));let z=m7();X.write(z);let G=Cz(),W=z.toByteArray();for(let q=0;q<W.length;q+=1)G.writeByte(W[q]);return G.flush(),"data:image/gif;base64,"+G},u7=FZ,rq=FZ.stringToBytes;function s1(){let Z=localStorage.getItem("mh-theme");return Z==="light"||Z==="dark"||Z==="system"?Z:"system"}function e1(){let Z=s1(),J=Z==="dark"||Z!=="light"&&matchMedia("(prefers-color-scheme: dark)").matches;document.documentElement.dataset.resolved=J?"dark":"light"}function E7(Z){localStorage.setItem("mh-theme",Z),e1(),f8()}function f8(){let Z=document.getElementById("theme-color-meta");if(!Z)return;let J=document.body.classList.contains("mobile")&&!document.body.classList.contains("mobile-content"),Q=getComputedStyle(document.documentElement).getPropertyValue(J?"--sidebar":"--bg").trim();if(Q)Z.setAttribute("content",Q)}function n9(Z,J){let Q=Z.replace(/^v/,"").split(".").map((z)=>parseInt(z,10)||0),X=J.replace(/^v/,"").split(".").map((z)=>parseInt(z,10)||0);for(let z=0;z<Math.max(Q.length,X.length);z++){let G=(Q[z]??0)-(X[z]??0);if(G!==0)return G}return 0}var c7=()=>typeof window<"u"&&!!window.metahubDesktop,_z=[{value:"light",icon:"sun",name:"浅色",desc:"始终使用明亮界面"},{value:"dark",icon:"moon",name:"深色",desc:"始终使用暗色界面"},{value:"system",icon:"monitor",name:"跟随系统",desc:"随操作系统外观自动切换"}];function xZ({label:Z,children:J}){return $("div",{class:"set-group",children:[$("div",{class:"set-group-label",children:Z},void 0,!1,void 0,this),$("div",{class:"set-panel",children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function d7({onUpdatePending:Z}={}){let[J,Q]=f(s1()),X=(z)=>{E7(z),Q(z)};return $("div",{class:"set-page",children:[$("div",{class:"set-title",children:"设置"},void 0,!1,void 0,this),$("div",{class:"set-sub",children:"个性化你的 Metahub 工作区。"},void 0,!1,void 0,this),$(xZ,{label:"外观",children:$("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"颜色主题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"选择界面的明暗外观。"},void 0,!1,void 0,this),$("div",{class:"theme-grid",children:_z.map((z)=>$("button",{class:"theme-card"+(J===z.value?" sel":""),"aria-pressed":J===z.value,onClick:()=>X(z.value),children:[$("span",{class:"tc-check",children:$(D,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"tc-ico",children:$(D,{name:z.icon},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"tc-name",children:z.name},void 0,!1,void 0,this),$("span",{class:"tc-desc",children:z.desc},void 0,!1,void 0,this)]},z.value,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),typeof window<"u"&&window.metahubDesktop?.quicknote&&$(xZ,{label:"快速笔记",children:$(az,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),$(xZ,{label:"同步",children:[!c7()&&$(fz,{},void 0,!1,void 0,this),$(gz,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!q9()&&$(xZ,{label:"存储",children:$(Iz,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),!q9()&&$(xZ,{label:"设备与授权",children:[$(lz,{},void 0,!1,void 0,this),$(nz,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(dz,{onUpdatePending:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function M9(Z){if(Z<1024)return`${Z} B`;if(Z<1048576)return`${(Z/1024).toFixed(1)} KB`;if(Z<1073741824)return`${(Z/1024/1024).toFixed(1)} MB`;return`${(Z/1024/1024/1024).toFixed(2)} GB`}function vz(Z){let J=Math.max(0,Math.round((Date.now()-Z)/1000));if(J<60)return"刚刚";let Q=Math.round(J/60);if(Q<60)return`${Q} 分钟前`;let X=Math.round(Q/60);if(X<24)return`${X} 小时前`;return`${Math.round(X/24)} 天前`}var kz=300000,Tz=()=>typeof matchMedia<"u"&&matchMedia("(prefers-reduced-motion: reduce)").matches;function Rz(Z,J=600){let[Q,X]=f(Z),z=L0(Z);return e(()=>{if(Tz()){z.current=Z,X(Z);return}let G=z.current,W=performance.now(),q=0,Y=(H)=>{let F=Math.min(1,(H-W)/J),K=1-Math.pow(1-F,3);if(X(Math.round(G+(Z-G)*K)),F<1)q=requestAnimationFrame(Y);else z.current=Z};return q=requestAnimationFrame(Y),()=>cancelAnimationFrame(q)},[Z]),Q}function Iz(){let[Z,J]=f(null),[Q,X]=f(null),[z,G]=f(!1),[W,q]=f(!1),Y=()=>{c.blobCache().then((p)=>{J(p),X(null)}).catch((p)=>X(p.message))},H=async(p=!1)=>{q(!0);try{J(await c.verifyBlobCache()),X(null)}catch(Q0){if(p)o(Q0.message)}finally{q(!1)}};e(()=>{Y(),H()},[]);let[F,K]=f(!1);e(()=>{let p=requestAnimationFrame(()=>K(!0));return()=>cancelAnimationFrame(p)},[]);let P=Rz(Z?.stats.clearableBytes??0);if(Q||!Z)return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:Q?`无法读取缓存信息:${Q}`:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let{stats:A,policy:L,nodes:y,buckets:V,quotaBytes:S,pinnedBytes:M}=Z,N=[...V,...L.fullNodes.filter((p)=>p.startsWith("s3://")&&!V.some((Q0)=>Q0.url===p)).map((p)=>({url:p,label:null,bucket:null}))],k=async(p)=>{G(!0);try{await c.setBlobPolicy({full_nodes:p}),await H()}catch(Q0){o(Q0.message)}finally{G(!1)}},v=(p)=>{let Q0=new Set(L.fullNodes);if(Q0.has(p))Q0.delete(p);else Q0.add(p);k([...Q0])},O=async(p)=>{G(!0);try{await c.setBlobPolicy({redundancy:p}),await H()}catch(Q0){o(Q0.message)}finally{G(!1)}},U=async()=>{if(!await b0({title:"清理腾空间",message:`将释放约 ${M9(A.clearableBytes)}。只删别处已备份的副本,文件不会丢,用到时自动取回。`,confirmLabel:"清理"}))return;G(!0);try{let Q0=await c.clearBlobCache();o(Q0.cleared?`已腾出 ${M9(Q0.freedBytes)}(${Q0.cleared} 项)`:"暂时没有可清理的"),Y()}catch(Q0){o(Q0.message)}finally{G(!1)}},B=Math.max(1,A.totalBytes),C=Math.max(0,A.retainedBytes-M),_=(p)=>p/B*100,T=_(A.clearableBytes),u=_(C),E=_(M),t=A.clearableBytes>0,$0=L.fullNodes.length===0,g=y.find((p)=>p.self),I=!!g&&L.fullNodes.includes(g.nodeId),h=!$0&&!I&&Z.lastVerifiedAt==null,m=I?"self-full":$0?"no-anchor":h?"unverified":t?"free":"safe",z0=Z.lastVerifiedAt==null||Date.now()-Z.lastVerifiedAt>kz,X0=S>0&&A.totalBytes>S&&(Z.unreachableAnchors.length>0||z0),Y0=(p)=>F?p:0;return $("div",{class:"set-block blob-pane",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"图片和大文件会先存在这台设备上,打开快。只要别处留了一份长期备份,这里随时能清——文件不会丢,需要时自动取回。"},void 0,!1,void 0,this),$("div",{class:"blob-hero",children:[$("div",{class:"blob-hero-main",children:[$("div",{class:"blob-legend",children:[$("div",{class:"blob-legend-row",children:[$("span",{class:"blob-dot free"},void 0,!1,void 0,this)," ",$("span",{class:"blob-legend-k",children:"可释放"},void 0,!1,void 0,this),$("b",{children:M9(A.clearableBytes)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-legend-row",children:[$("span",{class:"blob-dot keep"},void 0,!1,void 0,this)," ",$("span",{class:"blob-legend-k",children:"保留中"},void 0,!1,void 0,this),$("b",{children:M9(C)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M>0&&$("div",{class:"blob-legend-row",children:[$("span",{class:"blob-dot pin"},void 0,!1,void 0,this)," ",$("span",{class:"blob-legend-k",children:"已固定"},void 0,!1,void 0,this),$("b",{children:M9(M)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-total",children:["共 ",A.count," 项 · ",M9(A.totalBytes)]},void 0,!0,void 0,this),$("div",{class:"blob-actions",children:[$("button",{class:"btn btn-secondary blob-clear",disabled:z||W||!t,onClick:()=>void U(),children:[$(D,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),t?`清理腾出 ${M9(A.clearableBytes)}`:"无需清理"]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost blob-verify-btn",disabled:z||W,onClick:()=>void H(!0),children:[$(D,{name:"history",cls:"ico sm"+(W?" spin":"")},void 0,!1,void 0,this),W?"检查中…":"重新检查"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-verify-at",children:W?"":Z.lastVerifiedAt!=null?`${vz(Z.lastVerifiedAt)}检查过`:"未检查"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-ring"+(m==="free"?" has-free":m==="safe"?" all-safe":" locked"),children:[$("svg",{viewBox:"0 0 100 100",class:"blob-ring-svg","aria-hidden":"true",children:$("g",{transform:"rotate(-90 50 50)",children:[$("circle",{class:"blob-ring-track",cx:"50",cy:"50",r:"42",pathLength:100},void 0,!1,void 0,this),E>0&&$("circle",{class:"blob-seg pin",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${Y0(E)} ${100-Y0(E)}`,"stroke-dashoffset":-(T+u)},void 0,!1,void 0,this),$("circle",{class:"blob-seg keep",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${Y0(u)} ${100-Y0(u)}`,"stroke-dashoffset":-T},void 0,!1,void 0,this),$("circle",{class:"blob-seg free",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${Y0(T)} ${100-Y0(T)}`,"stroke-dashoffset":0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-center",children:[m==="free"&&$(n,{children:[$("div",{class:"blob-ring-big",children:M9(P)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"可释放"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),m==="safe"&&$(n,{children:[$("div",{class:"blob-ring-check",children:$(D,{name:"check",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:"都备份好了"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"暂时无需清理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),m==="no-anchor"&&$(n,{children:[$("div",{class:"blob-ring-lock",children:$(D,{name:"lock",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:"未设置长期备份"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"指定后才能清理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),m==="unverified"&&$(n,{children:[$("div",{class:"blob-ring-lock",children:$(D,{name:"history",cls:"ico"+(W?" spin":"")},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:W?"检查中…":"未检查"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"检查后才知道"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),m==="self-full"&&$(n,{children:[$("div",{class:"blob-ring-lock",children:$(D,{name:"database",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:"本机长期备份库"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"保留全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-anchors",children:[$("div",{class:"blob-sub-title",children:"长期备份保存在"},void 0,!1,void 0,this),y.map((p)=>{let Q0=L.fullNodes.includes(p.nodeId);return $("div",{class:"blob-anchor-row",children:[$("span",{class:"blob-anchor-ico",children:$(D,{name:"monitor",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-anchor-main",children:[$("div",{class:"blob-anchor-name",children:[p.label||p.nodeId,p.self?" · 本机":""]},void 0,!0,void 0,this),$("div",{class:"blob-anchor-sub",children:Q0?"正在长期保存全部副本":"开启后保存全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"switch"+(Q0?" on":""),role:"switch","aria-checked":Q0,disabled:z,onClick:()=>v(p.nodeId),children:$("span",{class:"switch-knob"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},p.nodeId,!0,void 0,this)}),N.map((p)=>{let Q0=L.fullNodes.includes(p.url);return $("div",{class:"blob-anchor-row",children:[$("span",{class:"blob-anchor-ico",children:$(D,{name:"database",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-anchor-main",children:[$("div",{class:"blob-anchor-name",children:[p.label||p.bucket||p.url," · 云端"]},void 0,!0,void 0,this),$("div",{class:"blob-anchor-sub",children:Q0?"正在长期保存全部副本":"开启后保存全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"switch"+(Q0?" on":""),role:"switch","aria-checked":Q0,disabled:z,onClick:()=>v(p.url),children:$("span",{class:"switch-knob"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},p.url,!0,void 0,this)}),$0&&$("div",{class:"blob-hint",children:"还没设置长期备份。先指定一处,之后就能放心清理这台设备。"},void 0,!1,void 0,this),L.fullNodes.length>1&&$("div",{class:"blob-strategy",children:[$("div",{class:"blob-sub-title",children:"清理前先确认"},void 0,!1,void 0,this),$("div",{class:"seg",children:[$("button",{class:"seg-opt"+(L.redundancy==="any"?" on":""),disabled:z||W,onClick:()=>void O("any"),children:[$("span",{class:"seg-opt-t",children:"有一处备份就行"},void 0,!1,void 0,this),$("span",{class:"seg-opt-s",children:"更省空间"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"seg-opt"+(L.redundancy==="all"?" on":""),disabled:z||W,onClick:()=>void O("all"),children:[$("span",{class:"seg-opt-t",children:"每处都备份好"},void 0,!1,void 0,this),$("span",{class:"seg-opt-s",children:"更稳妥"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z.unreachableAnchors.length>0&&$("div",{class:"blob-hint warn",children:"部分长期备份连不上,相关文件暂不清理。"},void 0,!1,void 0,this),X0&&$("div",{class:"blob-hint warn",children:"空间超了,但备份暂时离线,先没清理。"},void 0,!1,void 0,this),S>0&&$("div",{class:"blob-foot",children:["缓存超过 ",M9(S)," 时,自动清理最久没用、已有备份的,你固定的不动。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Sz(){if(typeof Worker>"u"||typeof navigator>"u")return"此浏览器不支持 Web Worker。";if(!window.isSecureContext)return"需要 HTTPS(安全上下文)。当前是 http:// 访问,浏览器不开放离线所需的 OPFS 与 Service Worker——给服务器配置 TLS(--tls-cert/--tls-key,或 Caddy / Tailscale Serve 反代;iPhone 需要受信任的证书),或在本机用 localhost 访问。";if(!navigator.storage?.getDirectory)return"此浏览器不支持 OPFS 本地存储(需要 Safari 17+ / Chrome / Firefox 较新版本)。";return null}function Vz({kind:Z,noOrigin:J,hasServerBucket:Q,deviceDirect:X}){let z=Z==="trusted",G=!J,W=G&&Q,q=X,Y=W||q,H=q&&G&&Y;return $("span",{class:"md-graph"+(z?" trusted":" light")+(H?" has-direct":""),"aria-hidden":"true",children:[$("span",{class:"md-node self",children:[$("span",{class:"md-node-ico",children:$(D,{name:"monitor",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"md-node-name",children:"本设备"},void 0,!1,void 0,this),$("span",{class:"md-node-tag",children:z?"存一份":"不留存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G&&$(n,{children:[$("span",{class:"md-wire bi"},void 0,!1,void 0,this),$("span",{class:"md-node",children:[$("span",{class:"md-node-ico",children:$(D,{name:"globe",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"md-node-name",children:"服务器"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y&&$(n,{children:[$("span",{class:"md-wire "+(G?"to":"bi")},void 0,!1,void 0,this),$("span",{class:"md-node",children:[$("span",{class:"md-node-ico",children:$(D,{name:"cube",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"md-node-name",children:"云桶"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H&&$("span",{class:"md-direct","data-label":"直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function fz(){let Z=Sz(),[J,Q]=f(Q9()),[X,z]=f(AZ()),[G,W]=f(!1),[q,Y]=f(null),H=q9(),[F,K]=f(!1),[P,A]=f(!1);e(()=>{let U=!0,B=async()=>{let _=Q9()?(await D0("listStoragePeers").catch(()=>[])).length>0:!1,T=H?!1:(await c.listServerS3Peers().catch(()=>[])).length>0;if(!U)return;A(_),K(T)};B();let C=N9(B);return()=>{U=!1,C()}},[H]);let[L,y]=f(null),V=(U,B)=>{let C=B.currentTarget,_=C?.closest(".set-panel"),T=C?.closest(".sync-holds");if(!_||!T)return;let u=_.getBoundingClientRect(),E=248,t=28;if(window.innerWidth-u.right<E+t)return y(null);(async()=>{let $0=Q9()?(await D0("listStoragePeers").catch(()=>[])).length>0:!1,g=H?!1:(await c.listServerS3Peers().catch(()=>[])).length>0;A($0),K(g)})(),y({kind:U,left:u.right+t,top:T.getBoundingClientRect().top})},S=()=>y(null);e(()=>N9((U)=>z({...U})),[]),e(()=>{if(!J||!navigator.storage?.estimate)return;let U=!0,B=()=>navigator.storage.estimate().then((_)=>{if(U&&_.usage!=null)Y((_.usage/1024/1024).toFixed(1))});B();let C=N9(()=>void B());return()=>{U=!1,C()}},[J]);let M=async()=>{if(!await b0({title:"重置本地副本",message:"将删除此浏览器里的全部本地数据(服务器数据不受影响),并停用离线副本。未同步的本地修改会丢失——建议先「立即同步」。",confirmLabel:"删除并重置",danger:!0}))return;W(!0);try{await l6(),Q(!1),o("本地副本已重置")}catch(B){o(`重置失败:${B.message}`)}finally{W(!1)}},N=async()=>{W(!0);try{await d6(),Q(!0),o("离线副本已启用,正在下载数据…")}catch(U){o(`启用失败:${U.message}`)}finally{W(!1)}},k=async()=>{if(!await b0({title:"停用离线副本",message:"此浏览器将恢复纯在线模式。已下载的本地数据保留在浏览器里,重新启用后从断点续传。",confirmLabel:"停用",danger:!0}))return;let B=typeof navigator<"u"&&"serviceWorker"in navigator&&navigator.serviceWorker.controller!=null;W(!0);try{if(await a6(),Q(!1),o("已停用离线副本"),B)location.reload()}finally{W(!1)}},v=()=>{if(!J)return"轻量模式 · 仅在线读写,断网不可用。";if(X.state==="error")return`副本异常(已自动回退在线模式):${X.error??"未知错误"}`;if(X.state==="hydrating")return`正在下载数据… 已接收 ${X.hydrated??0} 条变更`;if(X.lastSync){let U=UZ(X.lastSync.at);return X.lastSync.ok?`本地优先已生效 · 上次同步 ${U}(推送 ${X.lastSync.pushed} / 拉取 ${X.lastSync.pulled})`:`上次同步失败(${U}):${X.lastSync.error??""} — 本地读写不受影响,恢复网络后自动重试`}return"等待首次同步…"};if(Z)return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"设置这台设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"这台设备为轻量模式:仅在线读写,不在本机保存。"},void 0,!1,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:["⚠ 此设备无法「信任并本机保存」:",Z]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);let O=(U)=>$(Vz,{kind:U,noOrigin:H,hasServerBucket:F,deviceDirect:U==="trusted"&&P},void 0,!1,void 0,this);return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"设置这台设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"选择这台设备如何使用工作区,之后可随时修改。"},void 0,!1,void 0,this),$("div",{class:"theme-grid sync-holds",children:[$("button",{class:"theme-card mode-card"+(!J?" sel":""),"aria-pressed":!J,disabled:G,onClick:()=>J&&k(),onMouseEnter:(U)=>V("light",U),onMouseLeave:S,onFocus:(U)=>V("light",U),onBlur:S,children:[$("span",{class:"tc-check",children:$(D,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"tc-ico",children:$(D,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"mode-text",children:[$("span",{class:"tc-name",children:"轻量模式"},void 0,!1,void 0,this),$("span",{class:"tc-desc",children:"仅在线使用"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"theme-card mode-card"+(J?" sel":""),"aria-pressed":J,disabled:G,onClick:()=>!J&&N(),onMouseEnter:(U)=>V("trusted",U),onMouseLeave:S,onFocus:(U)=>V("trusted",U),onBlur:S,children:[$("span",{class:"tc-check",children:$(D,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"tc-ico",children:$(D,{name:"lock"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"mode-text",children:[$("span",{class:"tc-name",children:"信任此设备"},void 0,!1,void 0,this),$("span",{class:"tc-desc",children:G&&!J?"启用中…":"本机保存,支持同步"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),L&&$("div",{class:"mode-aside",style:{top:L.top+"px",left:L.left+"px"},children:$("div",{class:"mp-show",children:[O(L.kind),$("span",{class:"mp-cap",children:L.kind==="trusted"?"本机存一份 · 离线也能读写":"仅在线读写 · 不在本机保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J&&$("div",{class:"peer-actions",style:{marginTop:12},children:[$("button",{class:"btn btn-secondary",disabled:G,onClick:()=>D9(),children:[$(D,{name:"share",cls:"ico sm"},void 0,!1,void 0,this)," 立即同步"]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost",disabled:G,onClick:M,children:"重置本地副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:[v(),J&&X.node?` · 节点 ${X.node}`:"",J&&q?` · 本地占用 ${q} MB`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function b8(Z){try{return new URL(Z).host}catch{return Z}}function bz(Z){return Z.length<=8?Z.slice(0,2)+"…":Z.slice(0,4)+"…"+Z.slice(-4)}function gz(){let Z=q9(),J=c7(),[Q,X]=f(Q9()),[z,G]=f(null),[W,q]=f(null),Y=()=>{if(Q9())D0("listStoragePeers").then(q).catch(()=>{});else q(null)},H=()=>{if(Y(),!Z)c.listServerS3Peers().then(G).catch((O)=>o(`加载失败:${O.message}`))};e(()=>{return H(),N9(()=>{X(Q9()),Y()})},[]);let F=new Set((W??[]).map((O)=>O.url)),K=!J&&Q,P=()=>X9($(cz,{toServer:!Z,alsoReplica:!Z&&K,onDone:()=>{d0(),H()}},void 0,!1,void 0,this)),A=(O)=>X9($(jz,{peer:O,onDone:()=>{d0(),H()}},void 0,!1,void 0,this)),L=async()=>{try{if(Z)await D0("sync");else if(await Promise.all((z??[]).map((O)=>c.syncPeer(O.url))),K)await D0("sync").catch(()=>{});o("已触发同步"),H()}catch(O){o(`同步失败:${O.message}`)}},y=async(O,U)=>{if(!await b0({title:"移除存储桶",message:`确定移除 ${U}?将停止与该存储桶同步(桶内数据不受影响)。`,confirmLabel:"移除",danger:!0}))return;if(Z)await D0("removeStorageReplica",O).catch((C)=>o(C.message));else if(await c.removePeer(O).catch((C)=>o(C.message)),K)await D0("removeStorageReplica",O).catch(()=>{});H()},V=async(O,U)=>{if(!await b0({title:"取消本设备直连",message:`这台设备将不再直连 ${U}(存储桶仍在服务器上;本设备在线时照常经服务器同步)。`,confirmLabel:"取消直连",danger:!0}))return;await D0("removeStorageReplica",O).catch((C)=>o(C.message)),H()},S=(O)=>Z?D0("storagePeerConfig",O):c.serverS3Config(O),M=((Z?W:z)??[]).map((O)=>({url:O.url,name:O.label||O.bucket||O.url})),N=()=>X9($(Ez,{buckets:M,getConfig:S,server:!Z,onPaired:()=>{d0(),H()}},void 0,!1,void 0,this)),k=(O,U,B)=>I0(O,(C)=>$(n,{children:[B&&$(W0,{icon:"link",label:"取消本设备直连",onClick:()=>{C(),V(U.url,U.label||U.bucket||U.url)}},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"移除存储桶",danger:!0,onClick:()=>{C(),y(U.url,U.label||U.bucket||U.url)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)),v=(Z?W:z)?.length?!0:!1;return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"在所有设备间同步"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"连一个云端存储桶,手机、电脑就保持同步——不必开公网服务器,对方离线也收得到,内容端到端加密。"},void 0,!1,void 0,this),$("div",{class:"set-meta",children:$("span",{class:"set-meta-item",children:[$(D,{name:J||!Z?"globe":"cube",cls:"ico sm"},void 0,!1,void 0,this),J?"连一个云端存储桶,这台设备就和你的手机、其他电脑自动保持同步。":Z?"这台设备就是工作区的家,其他设备扫码加入即可一起同步。":"存储桶连在服务器上,所有设备自动共享;信任本设备后,它离线、在外时也能直接同步。"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("details",{class:"set-disclosure",children:[$("summary",{children:"它是怎么工作的"},void 0,!1,void 0,this),$("div",{class:"set-disclosure-body",children:['存储桶只当"哑"中转:每台设备把自己的变更加密上传、再拉取别人的——谁都不必同时在线,也不需要公网 IP。',J?"这台设备把自己的变更发布到桶,其他设备从桶拉取;新设备扫码加入即可一起同步。":Z?"这台设备把整个工作区发布到桶,新设备扫码加入后从桶秒恢复。":"密钥只存在服务器,不会同步到浏览器;信任的设备重输一次密钥即可直接同步,离线、在外也不中断。添加时会自动为本站点开通桶的访问权限(CORS)。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z&&!Q?$("div",{class:"peer-sub",style:"margin-top:12px",children:"⚠ 请先在上方把这台设备设为「信任此设备」,再连接存储桶。"},void 0,!1,void 0,this):$(n,{children:[$("div",{class:"peer-actions",style:{marginTop:14},children:[$("button",{class:"btn btn-primary",onClick:P,children:[$(D,{name:"cube",cls:"ico sm"},void 0,!1,void 0,this)," 连接存储桶"]},void 0,!0,void 0,this),(!Z||M.length>0)&&$("button",{class:"btn btn-secondary",onClick:N,children:[$(D,{name:"monitor",cls:"ico sm"},void 0,!1,void 0,this)," 添加设备"]},void 0,!0,void 0,this),v&&$("button",{class:"btn btn-secondary",onClick:L,children:[$(D,{name:"cloudUp",cls:"ico sm"},void 0,!1,void 0,this)," 立即同步"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peer-list flush",children:J?z==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):z.length===0?$("div",{class:"muted",children:"还没连接存储桶——连一个,所有设备就能保持同步。"},void 0,!1,void 0,this):z.map((O)=>{let U=O.label||O.bucket||O.url;return $("div",{class:"peer-row",children:[$("span",{class:"peer-dot"+(O.enabled?O.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:U},void 0,!1,void 0,this),$("div",{class:"peer-sub",children:[O.endpoint?b8(O.endpoint)+" · ":"","最近同步 ",UZ(O.lastSyncAt),O.status==="error"&&O.error?` · 错误:${O.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",title:"移除",onClick:()=>y(O.url,U),children:$(D,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},O.url,!0,void 0,this)}):Z?W==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):W.length===0?$("div",{class:"muted",children:"还没连接存储桶——连一个,手机、电脑就能免公网服务器互通。"},void 0,!1,void 0,this):W.map((O)=>{let U=O.label||O.bucket||O.url;return $("div",{class:"peer-row",children:[$("span",{class:"peer-dot"+(O.enabled?O.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:U},void 0,!1,void 0,this),$("div",{class:"peer-tags",children:$("span",{class:"peer-tag",children:[$(D,{name:"upload",cls:"ico"},void 0,!1,void 0,this)," 本机发布"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"peer-sub",children:[O.endpoint?b8(O.endpoint)+" · ":"","最近同步 ",UZ(O.lastSyncAt),O.status==="error"&&O.error?` · 错误:${O.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",title:"移除",onClick:()=>y(O.url,U),children:$(D,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},O.url,!0,void 0,this)}):z==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):z.length===0?$("div",{class:"muted",children:"还没连接存储桶——连一个,所有设备就能免公网服务器互通。"},void 0,!1,void 0,this):z.map((O)=>{let U=O.label||O.bucket||O.url,B=Q&&F.has(O.url);return $("div",{class:"peer-row",children:[$("span",{class:"peer-dot"+(O.enabled?O.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:U},void 0,!1,void 0,this),$("div",{class:"peer-tags",children:[$("span",{class:"peer-tag",children:[$(D,{name:"globe",cls:"ico"},void 0,!1,void 0,this)," 服务器同步"]},void 0,!0,void 0,this),Q?B?$("span",{class:"peer-tag ok",children:[$(D,{name:"link",cls:"ico"},void 0,!1,void 0,this)," 本机已直连"]},void 0,!0,void 0,this):$("button",{class:"peer-tag act",onClick:()=>A(O),children:[$(D,{name:"link",cls:"ico"},void 0,!1,void 0,this)," 让本机直接同步"]},void 0,!0,void 0,this):$("span",{class:"peer-tag muted",children:"信任本设备后可直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peer-sub",children:[O.endpoint?b8(O.endpoint)+" · ":"","最近同步 ",UZ(O.lastSyncAt),O.status==="error"&&O.error?` · 错误:${O.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",title:"更多",onClick:(C)=>k(C,O,B),children:$(D,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},O.url,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function jz({peer:Z,onDone:J}){let[Q,X]=f(""),[z,G]=f(""),[W,q]=f(!1),Y=Z.endpoint?b8(Z.endpoint):"",H=async()=>{if(!Q.trim())return o("密钥必填");if(Z.encrypt&&!z)return o("加密口令必填");if(!Z.endpoint||!Z.bucket||!Z.accessKeyId)return o("服务器未提供该桶的完整配置,无法在本设备激活");q(!0);try{let F={endpoint:Z.endpoint,region:Z.region||"auto",bucket:Z.bucket,prefix:Z.prefix||"metahub",accessKeyId:Z.accessKeyId,secretAccessKey:Q.trim(),encrypt:Z.encrypt,...Z.virtualHostedStyle!=null?{virtualHostedStyle:Z.virtualHostedStyle}:{},publish:!1};await D0("addStorageReplica",F,z),o("已让本机直连存储桶 · 离线、在外也能直接同步"),J()}catch(F){let K=F.message;o(a7(K)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE。":`启用失败:${K}`),q(!1)}};return $(H9,{title:"在本设备启用直连",sub:"服务器已配置这个存储桶。为保护密钥,服务器不会把它同步到浏览器——再输入一次密钥,这台设备就能与桶直接同步(离线、在外也不中断)。",footer:$(n,{children:[$("button",{class:"btn btn-secondary",onClick:d0,disabled:W,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:H,disabled:W,children:W?"连接中…":"启用直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{class:"activate-id",children:[$("div",{class:"activate-id-row",children:[$("span",{children:"存储桶"},void 0,!1,void 0,this),$("b",{children:Z.bucket},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y&&$("div",{class:"activate-id-row",children:[$("span",{children:"服务地址"},void 0,!1,void 0,this),$("b",{children:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z.accessKeyId&&$("div",{class:"activate-id-row",children:[$("span",{children:"访问密钥 ID"},void 0,!1,void 0,this),$("b",{children:bz(Z.accessKeyId)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"field-label",children:"密钥"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",autofocus:!0,placeholder:"重新输入该桶的密钥",value:Q,onInput:(F)=>X(F.target.value),onKeyDown:(F)=>!Z.encrypt&&F.key==="Enter"&&H()},void 0,!1,void 0,this),Z.encrypt&&$(n,{children:[$("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",placeholder:"与其它设备相同的加密口令",value:z,onInput:(F)=>G(F.target.value),onKeyDown:(F)=>F.key==="Enter"&&H()},void 0,!1,void 0,this),$("div",{class:"set-hint",children:"跨设备共用的那把加密钥——用它解开桶里别人的数据。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var Z6="mh_shell_base";function xz(Z,J){return`${(Z||location.origin).replace(/\/+$/,"")}/#enroll=${Z1(J)}`}function i7({data:Z}){let J=u7(0,"M");return J.addData(Z),J.make(),$("div",{class:"qr-box",dangerouslySetInnerHTML:{__html:J.createSvgTag({cellSize:4,margin:2,scalable:!0})}},void 0,!1,void 0,this)}function hZ({text:Z,label:J,done:Q,primary:X}){return $("button",{class:"btn "+(X?"btn-primary":"btn-secondary"),style:{width:"100%",marginTop:10},onClick:()=>{navigator.clipboard?.writeText(Z),o(Q)},children:[$(D,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)," ",J]},void 0,!0,void 0,this)}function Dz({config:Z}){let[J,Q]=f(()=>{try{return localStorage.getItem(Z6)||location.origin}catch{return location.origin}}),X=xz(J,Z),z=(G)=>{Q(G);try{G?localStorage.setItem(Z6,G):localStorage.removeItem(Z6)}catch{}};return $(n,{children:[$(i7,{data:X},void 0,!1,void 0,this),$("div",{class:"field-label",children:"壳地址(手机访问的静态站点域名;留空用当前地址)"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:location.origin,value:J,onInput:(G)=>z(G.target.value)},void 0,!1,void 0,this),$(hZ,{text:X,label:"复制链接",done:"已复制链接"},void 0,!1,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:"手机相机扫码打开,输入加密口令即可同步。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function hz({config:Z}){let J=Z1(Z),Q=`mh config peer add --s3 --enroll ${J}`;return $(n,{children:[$("div",{class:"field-label",children:"在另一台电脑的终端运行"},void 0,!1,void 0,this),$("div",{class:"enroll-cmd",children:Q},void 0,!1,void 0,this),$(hZ,{text:Q,label:"复制命令",done:"已复制命令",primary:!0},void 0,!1,void 0,this),$(hZ,{text:J,label:"复制接入码",done:"已复制接入码"},void 0,!1,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:["对方运行后会提示输入加密口令。也可在 ",$("code",{children:"mh config"},void 0,!1,void 0,this)," 向导选「粘贴接入码加入存储」。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function mz({code:Z,exp:J}){let[Q,X]=f(Math.max(0,Math.round((J-Date.now())/1000)));e(()=>{let W=setInterval(()=>X(Math.max(0,Math.round((J-Date.now())/1000))),1000);return()=>clearInterval(W)},[J]);let z=Math.floor(Q/60),G=String(Q%60).padStart(2,"0");return $(n,{children:[$("div",{class:"pair-code",children:Z},void 0,!1,void 0,this),$("div",{class:"muted",style:{textAlign:"center",marginTop:8},children:Q>0?`${z}:${G} 后过期`:"已过期,请重新生成"},void 0,!1,void 0,this),$(hZ,{text:Z,label:"复制配对码",done:"已复制配对码"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function uz({onPaired:Z}){let[J,Q]=f(null),[X,z]=f(!1),G=async()=>{z(!0);try{Q(await c.newPairingCode())}catch(N){o(`生成失败:${N.message}`)}finally{z(!1)}},[W,q]=f(""),[Y,H]=f(""),[F,K]=f(location.origin),[P,A]=f(!1),L=async()=>{if(!W.trim()||!Y.trim())return o("地址和配对码必填");A(!0);try{let N=await c.addPeerByPairing({url:W.trim(),code:Y.trim(),self_url:F.trim()||void 0});await c.syncPeer(N.url).catch(()=>{}),o(`已配对 ${N.url}`),Z()}catch(N){o(`配对失败:${N.message}`),A(!1)}},[y,V]=f(()=>{try{return localStorage.getItem(J6)||location.origin}catch{return location.origin}}),S=(N)=>{V(N);try{N?localStorage.setItem(J6,N):localStorage.removeItem(J6)}catch{}},M=pz(y,QJ());return $(n,{children:[$("div",{class:"enroll-section",children:"邀请另一台服务器配对"},void 0,!1,void 0,this),J?$(mz,{code:J.code,exp:J.exp},void 0,!1,void 0,this):$("button",{class:"btn btn-secondary",style:{width:"100%"},disabled:X,onClick:G,children:[$(D,{name:"link",cls:"ico sm"},void 0,!1,void 0,this)," ",X?"生成中…":"生成本机配对码"]},void 0,!0,void 0,this),$("div",{class:"enroll-sep"},void 0,!1,void 0,this),$("div",{class:"enroll-section",children:"已有对方的配对码?"},void 0,!1,void 0,this),$("div",{class:"field-label",children:"对方服务器地址"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"http://192.168.1.10:7777",value:W,onInput:(N)=>q(N.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"配对码"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"对方「生成本机配对码」得到的码",value:Y,onInput:(N)=>H(N.target.value),onKeyDown:(N)=>N.key==="Enter"&&L()},void 0,!1,void 0,this),$("div",{class:"field-label",children:"本机可达地址(可选)"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"留空则仅本机主动同步",value:F,onInput:(N)=>K(N.target.value)},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",style:{width:"100%",marginTop:10},disabled:P,onClick:L,children:P?"配对中…":"配对"},void 0,!1,void 0,this),$("div",{class:"enroll-sep"},void 0,!1,void 0,this),$("div",{class:"enroll-section",children:"在手机上打开本服务器"},void 0,!1,void 0,this),$(i7,{data:M},void 0,!1,void 0,this),$("div",{class:"field-label",children:"服务器地址(手机访问的域名;留空用当前地址)"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:location.origin,value:y,onInput:(N)=>S(N.target.value)},void 0,!1,void 0,this),$(hZ,{text:M,label:"复制链接",done:"已复制链接"},void 0,!1,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:"⚠ 含访问令牌,请勿公开分享。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Ez({buckets:Z,getConfig:J,server:Q,onPaired:X}){let z=Z.length>0,G=[...z?[{id:"phone",label:"手机扫码"},{id:"cli",label:"电脑 / 命令行"}]:[],...Q?[{id:"server",label:"高级:服务器配对"}]:[]],[W,q]=f(G[0]?.id??"server"),[Y,H]=f(Z[0]?.url??""),[F,K]=f(null),[P,A]=f("");return e(()=>{if(!z||!Y)return;let L=!0;return K(null),A(""),J(Y).then((y)=>{if(!L)return;y?K(y):A("找不到该存储的配置")}).catch((y)=>L&&A(y.message)),()=>{L=!1}},[Y]),$(H9,{title:"添加设备",sub:"让另一台设备加入同一个工作区——手机扫码,或在电脑上粘贴接入码。",footer:$("button",{class:"btn btn-primary",onClick:d0,children:"完成"},void 0,!1,void 0,this),width:420,children:[G.length>1&&$("div",{class:"add-tabs",children:G.map((L)=>$("button",{class:"add-tab"+(W===L.id?" on":""),onClick:()=>q(L.id),children:L.label},L.id,!1,void 0,this))},void 0,!1,void 0,this),(W==="phone"||W==="cli")&&$(n,{children:[Z.length>1&&$(n,{children:[$("div",{class:"field-label",children:"存储桶"},void 0,!1,void 0,this),$("select",{class:"text-input",value:Y,onChange:(L)=>H(L.target.value),children:Z.map((L)=>$("option",{value:L.url,children:L.name},L.url,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P?$("div",{class:"enroll-err",children:P},void 0,!1,void 0,this):!F?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):W==="phone"?$(Dz,{config:F},void 0,!1,void 0,this):$(hz,{config:F},void 0,!1,void 0,this),F&&$("div",{class:"peer-sub",style:"margin-top:8px",children:"⚠ 接入码含桶访问密钥,请勿公开分享;不含加密口令——新设备需另输口令。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W==="server"&&$(uz,{onPaired:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function a7(Z){return/failed to fetch|load failed|networkerror|cors/i.test(Z)}var J6="mh_server_base";function pz(Z,J){let Q=(Z||location.origin).replace(/\/+$/,"");return J?`${Q}/?token=${encodeURIComponent(J)}`:Q}var DZ=[{id:"r2",name:"Cloudflare R2",region:"auto",ph:"https://<账户ID>.r2.cloudflarestorage.com",hint:"R2 控制台 → 管理 R2 API 令牌,创建 S3 凭据;区域填 auto。免费额度 10GB。"},{id:"s3",name:"Amazon S3",region:"us-east-1",ph:"https://s3.<区域>.amazonaws.com",hint:"IAM 用户的访问密钥;区域如 us-east-1。"},{id:"minio",name:"MinIO",region:"us-east-1",ph:"https://minio.你的域名",hint:"自建 MinIO 的访问地址与 access / secret key。"},{id:"cos",name:"腾讯云 COS",region:"ap-shanghai",ph:"https://<桶名-APPID>.cos.<区域>.myqcloud.com",hint:"桶名须含 APPID,用虚拟主机风格地址(host 以桶名开头)。"},{id:"custom",name:"自定义",region:"auto",ph:"https://s3.example.com",hint:"任何 S3 兼容对象存储。"}];function cz({onDone:Z,toServer:J,alsoReplica:Q}){let[X,z]=f(""),[G,W]=f(""),[q,Y]=f("auto"),[H,F]=f(""),[K,P]=f(""),[A,L]=f("metahub"),[y,V]=f(!0),[S,M]=f(""),[N,k]=f(!1),[v,O]=f("r2"),U=DZ.find((_)=>_.id===v)??DZ[4],B=(_)=>{O(_);let T=DZ.find((u)=>u.id===_);if(T&&DZ.some((u)=>u.region===q))Y(T.region)},C=async()=>{if(!X.trim()||!G.trim()||!H.trim()||!K.trim()){o("服务地址、桶名称、访问密钥 ID、密钥都要填");return}if(y&&!S){o("加密口令必填(或关闭加密)");return}k(!0);try{let _={endpoint:X.trim(),region:q.trim()||"auto",bucket:G.trim(),prefix:A.trim()||"metahub",accessKeyId:H.trim(),secretAccessKey:K.trim(),encrypt:y};if(J){if(await c.addServerS3Peer({..._,passphrase:S,corsOrigins:[location.origin]}),Q)await D0("addStorageReplica",{..._,publish:!1},S)}else await D0("addStorageReplica",_,S);o(J?Q?"已连接存储桶 · 服务器开始同步到桶,这台设备也直接同步":"已连接存储桶 · 服务器开始同步到桶":"已连接存储桶 · 这台设备开始同步到桶"),Z()}catch(_){let T=_.message;o(a7(T)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE(R2 控制台一条规则即可)。":`添加失败:${T}`),k(!1)}};return $(H9,{title:"连接存储桶",sub:"连接一个 S3 兼容存储桶,所有设备就能同步——不需要公网服务器。新桶自动初始化;已有桶用相同加密口令即可加入。",footer:$(n,{children:[$("button",{class:"btn btn-secondary",onClick:d0,disabled:N,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:C,disabled:N,children:N?"连接中…":"连接"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{class:"field-label",children:"存储服务商"},void 0,!1,void 0,this),$("div",{class:"provider-grid",children:DZ.map((_)=>$("button",{class:"provider-chip"+(v===_.id?" sel":""),"aria-pressed":v===_.id,onClick:()=>B(_.id),children:_.name},_.id,!1,void 0,this))},void 0,!1,void 0,this),$("div",{class:"set-hint",children:U.hint},void 0,!1,void 0,this),$("div",{class:"field-label",children:"服务地址"},void 0,!1,void 0,this),$("input",{class:"text-input",autofocus:!0,placeholder:U.ph,value:X,onInput:(_)=>z(_.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"桶名称"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"my-metahub",value:G,onInput:(_)=>W(_.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"访问密钥 ID"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"Access Key ID",value:H,onInput:(_)=>F(_.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"密钥"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",placeholder:"Secret Access Key",value:K,onInput:(_)=>P(_.target.value)},void 0,!1,void 0,this),$("label",{class:"set-check-row",style:{marginTop:14},children:[$("input",{type:"checkbox",checked:y,onChange:(_)=>V(_.target.checked)},void 0,!1,void 0,this),$("span",{children:"端到端加密(强烈建议;关闭后文件以明文存放,仅限完全信任的存储)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),y&&$(n,{children:[$("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",placeholder:"新桶以此创建;其它设备用同一口令加入",value:S,onInput:(_)=>M(_.target.value),onKeyDown:(_)=>_.key==="Enter"&&C()},void 0,!1,void 0,this),$("div",{class:"set-hint",children:"这是跨设备共用的一把加密钥——记牢它,换设备 / 加入已有桶时都要用它解开数据。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("details",{class:"set-disclosure",style:{marginTop:14},children:[$("summary",{children:"进阶"},void 0,!1,void 0,this),$("div",{class:"set-disclosure-body",children:[$("div",{class:"field-label",style:{marginTop:0},children:"区域"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:U.region,value:q,onInput:(_)=>Y(_.target.value)},void 0,!1,void 0,this),$("div",{class:"set-hint",children:"大多按服务商默认即可(R2 用 auto)。"},void 0,!1,void 0,this),$("div",{class:"field-label",children:"路径前缀"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"metahub",value:A,onInput:(_)=>L(_.target.value)},void 0,!1,void 0,this),$("div",{class:"set-hint",children:"同一个桶里隔离多个工作区时用;默认 metahub。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function dz({onUpdatePending:Z}){let J=typeof window<"u"?window.metahubDesktop?.coreUpdate:void 0,[Q,X]=f(null),[z,G]=f(null),[W,q]=f(null),[Y,H]=f(null),[F,K]=f("idle"),[P,A]=f("");e(()=>{c.version().then((k)=>G(k.version)).catch(()=>G(null)),(typeof window<"u"?window.metahubDesktop:void 0)?.appVersion?.().then(X).catch(()=>X(null)),J?.installedVersion().then(q).catch(()=>q(null))},[]),e(()=>{if(F==="idle"&&z&&W&&n9(W,z)>0)K("staged"),Z?.(!0)},[z,W]);let L=()=>{if(z&&W)return n9(W,z)>0?W:z;return W??z},y=()=>!!(z&&W&&n9(W,z)>0),V=async()=>{K("checking"),A("");try{let{latest:N}=await J.check();if(!N){A("无法获取最新版本(网络不可用或 GitHub API 受限)"),K("error");return}let k=L();if(!k||n9(N,k)>0)H(N),K("available"),Z?.(!0);else o("已是最新版本"),K(y()?"staged":"idle")}catch(N){A(N.message),K("error")}},S=async()=>{K("downloading"),A("");try{let N=await J.download();if(N)q(N),K("staged"),Z?.(!0),o(`已下载 v${N}`);else o("已是最新版本"),K(y()?"staged":"idle")}catch(N){A(N.message),K("error")}},M=null;if(J)switch(F){case"checking":M=$("span",{class:"ver-act","aria-disabled":"true",children:"检查中…"},void 0,!1,void 0,this);break;case"downloading":M=$("span",{class:"ver-act","aria-disabled":"true",children:"下载中…"},void 0,!1,void 0,this);break;case"available":M=$("span",{class:"ver-up",children:[$("span",{class:"ver-dot pulse"},void 0,!1,void 0,this),$("span",{children:["新版本 ",$("span",{class:"ver-num",children:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"ver-act accent",onClick:S,title:`下载并更新到 v${Y}`,children:"下载"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;case"staged":M=$("span",{class:"ver-up",children:[$("span",{class:"ver-dot pulse"},void 0,!1,void 0,this),$("span",{children:[$("span",{class:"ver-num",children:W},void 0,!1,void 0,this)," 待重启"]},void 0,!0,void 0,this),$("button",{class:"ver-act accent",onClick:()=>void J.restart(),title:`重启应用以更新到 v${W}`,children:"重启"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;case"error":M=$("span",{class:"ver-up err",children:[$("span",{class:"ver-msg",children:"检查失败"},void 0,!1,void 0,this),$("button",{class:"ver-act",onClick:V,title:P||"重试",children:"重试"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;default:M=$("button",{class:"ver-act",onClick:V,children:"检查更新"},void 0,!1,void 0,this)}return $("div",{class:"set-footer",children:[Q&&$("span",{children:["App ",$("span",{class:"ver-num",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q&&z&&$("span",{class:"set-footer-sep",children:"·"},void 0,!1,void 0,this),z&&$("span",{children:["Core ",$("span",{class:"ver-num",children:z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M&&(z||Q)&&$("span",{class:"set-footer-sep",children:"·"},void 0,!1,void 0,this),M]},void 0,!0,void 0,this)}var $6="CommandOrControl+Shift+Space";function iz(Z){if(["Control","Meta","Alt","Shift"].includes(Z.key))return null;let J=[];if(Z.metaKey||Z.ctrlKey)J.push("CommandOrControl");if(Z.altKey)J.push("Alt");if(Z.shiftKey)J.push("Shift");let Q=Z.key;if(Q===" ")Q="Space";else if(Q.startsWith("Arrow"))Q=Q.slice(5);else if(Q.length===1)Q=Q.toUpperCase();if(J.length===0)return null;return J.push(Q),J.join("+")}function p7(Z){let J=typeof window<"u"&&window.metahubDesktop?.platform==="darwin";return Z.replace("CommandOrControl",J?"⌘":"Ctrl").replace("Alt",J?"⌥":"Alt").replace("Shift",J?"⇧":"Shift").split("+").join(J?" ":"+")}function az(){let Z=window.metahubDesktop.quicknote,[J,Q]=f($6),[X,z]=f(!1),[G,W]=f(!1);e(()=>{Z.getSettings().then((F)=>{Q(F.shortcut),z(F.alwaysOnTop)}).catch((F)=>o(`加载失败:${F.message}`))},[]);let q=async(F)=>{try{let K=await Z.setShortcut(F);Q(K.shortcut),o(`快捷键已设为 ${p7(K.shortcut)}`)}catch(K){o(`设置失败:${K.message}`)}},Y=(F)=>{if(F.preventDefault(),F.key==="Escape"){W(!1);return}let K=iz(F);if(!K)return;W(!1),q(K)},H=async()=>{let F=!X;z(F);try{z(await Z.setAlwaysOnTop(F))}catch(K){z(!F),o(`设置失败:${K.message}`)}};return $("div",{class:"set-block",children:[$("div",{class:"set-block-desc",children:"用全局快捷键随时唤起小窗记录想法。小窗也可从菜单栏图标打开。"},void 0,!1,void 0,this),$("div",{class:"qn-set-row",children:[$("div",{class:"qn-set-main",children:[$("div",{class:"qn-set-name",children:"唤起快捷键"},void 0,!1,void 0,this),$("div",{class:"qn-set-desc",children:"点击下方按钮,然后按下你想用的组合键。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-secondary qn-shortcut"+(G?" capturing":""),onClick:()=>W(!0),onBlur:()=>W(!1),onKeyDown:G?Y:void 0,children:G?"按下组合键…":p7(J)},void 0,!1,void 0,this),J!==$6&&$("button",{class:"btn btn-ghost",title:"重置默认",onClick:()=>void q($6),children:"重置"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"qn-set-row",children:[$("div",{class:"qn-set-main",children:[$("div",{class:"qn-set-name",children:"默认始终置顶"},void 0,!1,void 0,this),$("div",{class:"qn-set-desc",children:"小窗浮在其他窗口之上;也可在小窗内用 \uD83D\uDCCC 按钮切换。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn "+(X?"btn-primary":"btn-secondary"),"aria-pressed":X,onClick:()=>void H(),children:X?"已开启":"已关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function UZ(Z){if(!Z)return"从未";return new Date(Z).toLocaleString()}function lz(){let[Z,J]=f(null),Q=()=>c.listPeers().then(J).catch((q)=>o(`加载失败:${q.message}`));e(()=>{Q()},[]);let X=async(q)=>{try{let Y=await c.syncPeer(q.url);o(Y.ok?`已同步:推送 ${Y.pushed},拉取 ${Y.pulled}`:`同步失败:${Y.error}`),Q()}catch(Y){o(`同步失败:${Y.message}`)}},z=async(q)=>{await c.updatePeer(q.url,{enabled:!q.enabled}).catch((Y)=>o(Y.message)),Q()},G=async(q)=>{if(!await b0({title:"移除同步设备",message:`确定移除 ${q.url}?将停止与该设备的数据同步。`,confirmLabel:"移除",danger:!0}))return;await c.removePeer(q.url).catch((H)=>o(H.message)),Q()},W=(q,Y)=>I0(q,(H)=>$(n,{children:[$(W0,{icon:"share",label:"立即同步",onClick:()=>{H(),X(Y)}},void 0,!1,void 0,this),$(W0,{icon:Y.enabled?"eyeOff":"check",label:Y.enabled?"禁用":"启用",onClick:()=>{H(),z(Y)}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"移除",danger:!0,onClick:()=>{H(),G(Y)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this));return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"同步设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"已直接配对的设备(服务器 HTTP 双向同步)。新增请用上方「同步 → 添加设备 → 高级:服务器配对」。"},void 0,!1,void 0,this),$("div",{class:"peer-list flush",children:Z==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):Z.length===0?$("div",{class:"muted",children:"还没有配对的设备。"},void 0,!1,void 0,this):Z.map((q)=>$("div",{class:"peer-row",children:[$("span",{class:"peer-dot"+(q.enabled?q.last_status==="error"?" err":" on":" off")},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:q.label||q.url},void 0,!1,void 0,this),$("div",{class:"peer-sub",children:[q.enabled?"已启用":"已禁用"," · 最近同步 ",UZ(q.last_success_at),q.last_status==="error"&&q.last_error?` · 错误:${q.last_error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",onClick:(Y)=>W(Y,q),children:$(D,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},q.url,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function nz(){let[Z,J]=f(null),Q=()=>c.listGrants().then(J).catch((z)=>o(`加载失败:${z.message}`));e(()=>{Q()},[]);let X=async(z)=>{if(!await b0({title:"吊销凭据",message:`吊销后,持有此凭据的设备${z.peer_url?`(${z.peer_url})`:""}将无法再同步进本机。`,confirmLabel:"吊销",danger:!0}))return;await c.revokeGrant(z.token).catch((W)=>o(W.message)),Q()};return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"已授权设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"本机签发、允许其他设备同步进来的凭据。吊销即断开对方的入站访问。"},void 0,!1,void 0,this),$("div",{class:"peer-list flush",children:Z==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):Z.length===0?$("div",{class:"muted",children:"还没有签发任何凭据。"},void 0,!1,void 0,this):Z.map((z)=>$("div",{class:"peer-row",children:[$("span",{class:"peer-dot on"},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:z.peer_url||"(未知地址)"},void 0,!1,void 0,this),$("div",{class:"peer-sub",children:[z.token.slice(0,8),"… · 签发于 ",UZ(z.created_at)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",title:"吊销",onClick:()=>X(z),children:$(D,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},z.token,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var mZ=(Z)=>location.origin+"/sites/"+Z+"/",rz=(Z)=>(/\.([a-z0-9]+)$/i.exec(Z)?.[1]??"").toLowerCase(),n7=(Z)=>Z.startsWith("image/");function r7(Z){let J=Number(Z.split("-")[0]);if(!Number.isFinite(J)||J<=0)return"—";return new Date(J).toISOString().slice(0,10)}function oz(Z){let J=rz(Z.path);if(["html","htm","js","mjs","css","json","xml"].includes(J))return"code";if(n7(Z.content_type))return"file";if(["md","txt"].includes(J))return"text";return"file"}function uZ(Z){navigator.clipboard?.writeText(Z).catch(()=>{}),o("已复制")}function o7(){let[Z,J]=f(null),[Q,X]=f(null),[z,G]=f(null),W=()=>c.listSites().then((H)=>{J(H),X((F)=>F?H.find((K)=>K.id===F.id)??null:null)}).catch((H)=>o(`加载失败:${H.message}`));e(()=>{W()},[]);let q=()=>X9($(tz,{onCreated:(H)=>{W(),X(H)}},void 0,!1,void 0,this)),Y=(H,F,K)=>{I0(H,(P)=>$(n,{children:[$(W0,{icon:"externalLink",label:"复制访问地址",onClick:()=>{P(),uZ(mZ(F.name))}},void 0,!1,void 0,this),$(W0,{icon:"settings",label:"修改标题…",onClick:async()=>{P();let A=await L9({title:"修改标题",label:"标题",value:F.title??F.name});if(A==null)return;try{await c.updateSite(F.id,{title:A})}catch(L){return o(L.message)}W()}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除站点",danger:!0,onClick:async()=>{if(P(),!await b0({title:"删除站点?",message:`「${F.name}」及其 ${F.file_count} 个文件将被删除。`,confirmLabel:"删除",danger:!0}))return;try{await c.deleteSite(F.id)}catch(L){return o(L.message)}if(K)X(null);W()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return $("div",{class:"db",children:[$("div",{class:"db-head",children:[$("div",{class:"db-icon",children:"\uD83C\uDF10"},void 0,!1,void 0,this),$("div",{children:[$("div",{class:"db-title",children:"站点管理"},void 0,!1,void 0,this),$("div",{class:"db-desc",children:"静态文件站点 · 通过 /sites/<name>/ 对外提供,随同步无冲突复制"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"toolbar",children:[$("div",{class:"spacer",style:{flex:1}},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:q,children:[$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建站点"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z==null?$("div",{class:"muted",style:{padding:20},children:"加载中…"},void 0,!1,void 0,this):Z.length===0?$("div",{class:"site-empty",children:[$("div",{class:"ei",children:"\uD83C\uDF10"},void 0,!1,void 0,this),$("div",{class:"et",children:"还没有站点"},void 0,!1,void 0,this),$("div",{class:"ed",children:"站点是一个命名文件桶,发布后可通过 /sites/<name>/ 直接访问。"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:q,children:[$(D,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建站点"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):$(n,{children:[$("div",{class:"sites-grid",children:Z.map((H)=>$("div",{class:"site-card",onClick:()=>X(H),children:[$("div",{class:"site-card-head",children:[$("span",{class:"si",children:$(D,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"site-card-id",children:[$("div",{class:"slug",children:H.name},void 0,!1,void 0,this),$("div",{class:"ttl"+(H.title?"":" muted"),children:H.title||"未命名站点"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"site-addr",title:"点击复制访问地址",onClick:(F)=>{F.stopPropagation(),uZ(mZ(H.name))},children:[$(D,{name:"link",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:mZ(H.name)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"site-card-meta",children:[$("span",{children:[$("b",{children:H.file_count},void 0,!1,void 0,this)," 文件"]},void 0,!0,void 0,this),$("span",{class:"dot",children:"·"},void 0,!1,void 0,this),$("span",{children:r7(H.created_hlc)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"site-card-foot",children:[$("button",{class:"btn btn-secondary",style:{flex:1},onClick:(F)=>{F.stopPropagation(),G(H)},children:[$(D,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this),"访问"]},void 0,!0,void 0,this),$("button",{class:"iconbtn",title:"更多",onClick:(F)=>{F.stopPropagation(),Y(F,H)},children:$(D,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},H.id,!0,void 0,this))},void 0,!1,void 0,this),$("div",{class:"gridfoot",children:[$("span",{children:["共 ",Z.length," 个站点"]},void 0,!0,void 0,this),$("span",{children:[Z.reduce((H,F)=>H+F.file_count,0)," 个文件"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&$(sz,{site:Q,onClose:()=>X(null),onVisit:()=>G(Q),onMenu:(H)=>Y(H,Q,!0),onChanged:W},void 0,!1,void 0,this),z&&$(ez,{site:z,onClose:()=>G(null)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function tz({onCreated:Z}){let[J,Q]=f(""),[X,z]=f(""),G=async()=>{let W=J.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"");if(!W)return o("请填写站点名称");try{let q=await c.createSite({name:W,title:X.trim()||void 0});d0(),o(`已创建站点「${W}」`),Z(q)}catch(q){o(q.message)}};return $(H9,{title:"新建站点",sub:"创建一个命名文件桶,随同步无冲突复制。",footer:$(n,{children:[$("button",{class:"btn btn-secondary",onClick:d0,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:G,children:"创建"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{class:"field-label",children:"名称(slug)"},void 0,!1,void 0,this),$("input",{class:"text-input",autofocus:!0,value:J,placeholder:"例如:docs、demo、status",onInput:(W)=>Q(W.target.value),onKeyDown:(W)=>{if(W.key==="Enter")G()}},void 0,!1,void 0,this),$("div",{class:"field-label",children:"标题(可选)"},void 0,!1,void 0,this),$("input",{class:"text-input",value:X,placeholder:"人类可读的标题",onInput:(W)=>z(W.target.value),onKeyDown:(W)=>{if(W.key==="Enter")G()}},void 0,!1,void 0,this),$("div",{class:"muted",style:{fontSize:12,marginTop:10},children:["将通过 ",$("span",{style:{fontFamily:"var(--mono)"},children:"/sites/<名称>/"},void 0,!1,void 0,this)," 对外提供。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function sz({site:Z,onClose:J,onVisit:Q,onMenu:X,onChanged:z}){let[G,W]=f(null),q=L0(null),{open:Y,close:H}=u9(J),F=()=>c.listSiteFiles(Z.id).then(W).catch((L)=>o(L.message));e(()=>{let L=!1;return W(null),c.listSiteFiles(Z.id).then((y)=>!L&&W(y)).catch((y)=>!L&&o(y.message)),()=>{L=!0}},[Z.id]);let K=async(L)=>{let y=L.target,V=Array.from(y.files??[]);if(y.value="",!V.length)return;let S=0;try{for(let M of V)await c.uploadSiteFile(Z.id,M.name,M),S++;o(`已上传 ${S} 个文件`)}catch(M){o(`已上传 ${S}/${V.length} 个,其余失败:${M.message}`)}finally{F(),z()}},P=async(L)=>{if(!await b0({title:"删除文件?",message:`「${L.path}」将从站点「${Z.name}」中删除。`,confirmLabel:"删除",danger:!0}))return;try{await c.deleteSiteFile(Z.id,L.path)}catch(V){return o(V.message)}F(),z()},A=mZ(Z.name);return $(n,{children:[$("div",{class:"scrim"+(Y?" open":""),onClick:H},void 0,!1,void 0,this),$("div",{class:"peek"+(Y?" open":""),children:[$("div",{class:"peek-head",children:[$("button",{class:"iconbtn",onClick:H,children:$(D,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{style:{flex:1,display:"flex",alignItems:"center",gap:8,minWidth:0,fontWeight:600,fontSize:14},children:[$(D,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this),$("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Z.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-secondary",onClick:()=>q.current?.click(),children:[$(D,{name:"upload",cls:"ico sm"},void 0,!1,void 0,this),"上传文件"]},void 0,!0,void 0,this),$("button",{class:"iconbtn",title:"更多",onClick:(L)=>X(L),children:$(D,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("input",{ref:q,type:"file",multiple:!0,style:{display:"none"},onChange:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peek-body",children:[$("h2",{style:{margin:"0 0 20px"},children:Z.title||Z.name},void 0,!1,void 0,this),$("div",{class:"acc-link",children:[$("span",{class:"url",children:A},void 0,!1,void 0,this),$("button",{title:"复制地址",onClick:()=>uZ(A),children:$(D,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"accent",title:"访问站点",onClick:Q,children:$(D,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"site-meta",children:[$("span",{children:[$("b",{children:G?.length??Z.file_count},void 0,!1,void 0,this)," 个文件"]},void 0,!0,void 0,this),$("span",{children:["创建于 ",r7(Z.created_hlc)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"files-head",children:[$("span",{children:"文件"},void 0,!1,void 0,this),$("span",{children:G?.length??""},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):G.length===0?$("div",{class:"site-empty",style:{marginTop:4},children:[$("div",{class:"ei",children:"\uD83D\uDCC1"},void 0,!1,void 0,this),$("div",{class:"et",children:"站点还没有文件"},void 0,!1,void 0,this),$("div",{class:"ed",children:"上传文件后即可通过站点地址访问。"},void 0,!1,void 0,this),$("button",{class:"btn btn-secondary",onClick:()=>q.current?.click(),children:[$(D,{name:"upload",cls:"ico sm"},void 0,!1,void 0,this),"上传文件"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):$("div",{children:G.map((L)=>$("div",{class:"filerow",onClick:()=>X9($(l7,{site:Z,file:L},void 0,!1,void 0,this)),children:[$("span",{class:"fi",children:$(D,{name:oz(L),cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"fpath",children:L.path},void 0,!1,void 0,this),$("span",{class:"enc-badge"+(L.encoding==="blob"?" blob":""),children:L.encoding},void 0,!1,void 0,this),$("div",{class:"facts",children:[$("button",{title:"预览",onClick:(y)=>{y.stopPropagation(),X9($(l7,{site:Z,file:L},void 0,!1,void 0,this))},children:$(D,{name:"eye",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{title:"复制路径",onClick:(y)=>{y.stopPropagation(),uZ("/sites/"+Z.name+"/"+L.path)},children:$(D,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"del",title:"删除",onClick:(y)=>{y.stopPropagation(),P(L)},children:$(D,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},L.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function l7({site:Z,file:J}){let Q="/sites/"+Z.name+"/"+J.path,[X,z]=f(null),G=n7(J.content_type),W=!G&&(J.encoding==="utf8"||/text\/|json|javascript|xml/.test(J.content_type));return e(()=>{if(!W)return;fetch(Q).then((q)=>q.text()).then(z).catch(()=>z("(无法加载内容)"))},[Q]),$(H9,{title:J.path,sub:Q,width:680,footer:$(n,{children:[$("button",{class:"btn btn-secondary",onClick:()=>uZ(Q),children:"复制路径"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:d0,children:"关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center",color:"var(--muted)",fontSize:12,marginBottom:12},children:[$("span",{children:J.content_type},void 0,!1,void 0,this),$("span",{class:"enc-badge"+(J.encoding==="blob"?" blob":""),children:J.encoding},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G?$("img",{src:Q,style:{maxWidth:"100%",borderRadius:"var(--radius)",border:"1px solid var(--line)"}},void 0,!1,void 0,this):W?X==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):$("div",{class:"preview-box",children:X},void 0,!1,void 0,this):$("div",{class:"preview-bin",children:[$("div",{class:"pi",children:"\uD83D\uDCE6"},void 0,!1,void 0,this),$("div",{class:"pt",children:"二进制文件 · 在新标签打开查看"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function ez({site:Z,onClose:J}){e(()=>{let X=(z)=>{if(z.key==="Escape")J()};return addEventListener("keydown",X),()=>removeEventListener("keydown",X)},[]);let Q="/sites/"+Z.name+"/";return $("div",{class:"spv-scrim open",onClick:(X)=>{if(X.target===X.currentTarget)J()},children:$("div",{class:"spv",children:[$("div",{class:"spv-chrome",children:[$("div",{class:"spv-dots",children:[$("i",{},void 0,!1,void 0,this),$("i",{},void 0,!1,void 0,this),$("i",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"spv-url",children:[$(D,{name:"lock",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:mZ(Z.name)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"spv-btn",title:"在新标签打开",onClick:()=>window.open(Q,"_blank"),children:[$(D,{name:"externalLink",cls:"ico sm"},void 0,!1,void 0,this),"新标签"]},void 0,!0,void 0,this),$("button",{class:"spv-btn icon",title:"关闭",onClick:J,children:$(D,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("iframe",{class:"spv-frame",src:Q,sandbox:"allow-scripts allow-same-origin"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function Q6(Z){switch(Z.kind){case"db":return`#/db/${encodeURIComponent(Z.id)}`;case"doc":return`#/doc/${encodeURIComponent(Z.id)}`;case"search":return`#/search?q=${encodeURIComponent(Z.q)}`;case"settings":return"#/settings";case"sites":return"#/sites";case"empty":return"#/"}}function X6(Z){if(!Z.startsWith("#/"))return{kind:"empty"};let[J="",Q=""]=Z.slice(2).split("?",2),[X,z=""]=J.split("/",2);try{if(X==="db"&&z)return{kind:"db",id:decodeURIComponent(z)};if(X==="doc"&&z)return{kind:"doc",id:decodeURIComponent(z)};if(X==="search"){let G=new URLSearchParams(Q).get("q");if(G)return{kind:"search",q:G}}if(X==="settings")return{kind:"settings"};if(X==="sites")return{kind:"sites"}}catch{}return{kind:"empty"}}var t7="mh-quicknote-last",s7="mh-quicknote-parent",e7="Quick Notes";function ZW(Z,J){return(J.created_hlc??"").localeCompare(Z.created_hlc??"")}async function JW(){let Z=localStorage.getItem(s7);if(Z)try{return await c.getDocument(Z),Z}catch{}let X=(await c.listDocuments()).find((z)=>z.parent_id==null&&z.title===e7)?.id??(await c.createDocument({title:e7})).id;return localStorage.setItem(s7,X),X}function Z3(){let[Z,J]=f(null),[Q,X]=f([]),[z,G]=f(null),[W,q]=f(""),[Y,H]=f(!1),F=L0(null),K=typeof window<"u"?window.metahubDesktop?.quicknote:void 0,P=g9(async(N)=>{let k=(await c.listDocumentsByParent(N)).sort(ZW);return X(k),k},[]);e(()=>{if(!Z)return;let N,k=()=>{clearTimeout(N),N=setTimeout(()=>void P(Z),80)};return document.addEventListener(Y9,k),()=>{clearTimeout(N),document.removeEventListener(Y9,k)}},[Z,P]);let A=g9(async(N)=>{let k=await c.createDocument({title:"",parent_id:N});return await P(N),k.id},[P]);e(()=>{(async()=>{try{let N=await JW();J(N);let k=await P(N),v=localStorage.getItem(t7),O=v&&k.some((U)=>U.id===v)&&v||k[0]?.id||await A(N);G(O)}catch(N){q(String(N.message))}})()},[P,A]),e(()=>{if(z)localStorage.setItem(t7,z)},[z]),e(()=>{K?.getAlwaysOnTop().then(H).catch(()=>{})},[K]),e(()=>{if(!K)return;let N=(k)=>{if(k.key==="Escape")K.hide()};return addEventListener("keydown",N),()=>removeEventListener("keydown",N)},[K]);let L=async()=>{if(!Z)return;try{G(await A(Z))}catch(N){q(String(N.message))}},y=async()=>{if(!K)return;let N=!Y;H(N);try{H(await K.setAlwaysOnTop(N))}catch{H(!N)}},V=async()=>{if(!z||!Z)return;if(!await b0({title:"删除笔记?",message:"该快速笔记将被删除。",confirmLabel:"删除",danger:!0}))return;await c.deleteDocument(z);let k=await P(Z);G(k[0]?.id??await A(Z))},S=(N)=>{I0(N,(k)=>$(n,{children:[$(p0,{children:"快速笔记"},void 0,!1,void 0,this),Q.length===0&&$("div",{class:"lbl",children:"还没有笔记"},void 0,!1,void 0,this),Q.map((v)=>$(W0,{icon:"file",label:v.title||"无标题",checked:v.id===z,onClick:()=>{k(),G(v.id)}},v.id,!1,void 0,this)),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"plus",label:"新建笔记",onClick:()=>{k(),L()}},void 0,!1,void 0,this),z&&$(W0,{icon:"trash",label:"删除当前笔记",danger:!0,onClick:()=>{k(),V()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),{minWidth:220})},M=Q.find((N)=>N.id===z)?.title;return $("div",{class:"qn",children:[$("div",{class:"qn-bar",children:[$("span",{class:"qn-brand",children:M||"快速笔记"},void 0,!1,void 0,this),$("div",{class:"qn-actions",children:[$("button",{class:"iconbtn",title:"新建笔记",onClick:()=>void L(),children:$(D,{name:"plus"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"iconbtn",title:"笔记列表",onClick:S,children:$(D,{name:"list"},void 0,!1,void 0,this)},void 0,!1,void 0,this),K&&$("button",{class:"iconbtn"+(Y?" active":""),title:Y?"取消置顶":"始终置顶",onClick:()=>void y(),children:$(D,{name:"pin"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W&&$("div",{class:"error-bar",onClick:()=>q(""),children:["⚠ ",W,"(点击关闭)"]},void 0,!0,void 0,this),$("div",{class:"qn-body",children:z?$(V8,{docId:z,onError:q,onHandle:(N)=>F.current=N},z,!1,void 0,this):$("div",{class:"empty",children:$("div",{children:"加载中…"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$(G8,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var $W=/[",\r\n]/;function QW(Z){return $W.test(Z)?`"${Z.replace(/"/g,'""')}"`:Z}function J3(Z){return Z.map((J)=>J.map(QW).join(",")).join(`
|
|
121
|
+
`)}function z6(Z,J){let Q=J.startsWith(".")?J:"."+J,X=Z.trim().replace(/[\\/:*?"<>|\x00-\x1f]/g,"-").replace(/\s+/g," ").replace(/^\.+$/,"").slice(0,90)||"untitled";return X.toLowerCase().endsWith(Q.toLowerCase())?X:X+Q}function W6(Z,J,Q){let X=URL.createObjectURL(new Blob([J],{type:Q})),z=document.createElement("a");z.href=X,z.download=Z,document.body.appendChild(z),z.click(),z.remove(),setTimeout(()=>URL.revokeObjectURL(X),0)}function $3(Z,J){let Q=["id",...Z.map((z)=>z.name)],X=J.map((z)=>[z.id,...Z.map((G)=>XW(z.cells[G.id]))]);return J3([Q,...X])}function XW(Z){if(Z==null)return"";if(typeof Z==="boolean")return Z?"true":"false";if(typeof Z==="object")return JSON.stringify(Z);return String(Z)}function zW(){let[Z,J]=f(()=>typeof window<"u"&&window.matchMedia(W8).matches);return e(()=>{let Q=window.matchMedia(W8),X=()=>J(Q.matches);return Q.addEventListener("change",X),()=>Q.removeEventListener("change",X)},[]),Z}function WW(){let[Z,J]=f([]),[Q,X]=f([]),[z,G]=f(()=>X6(location.hash)),[W,q]=f(""),[Y,H]=f(!1),[F,K]=f(268),[P,A]=f("blocks"),[L,y]=f(!1),[V,S]=f(!1),[M,N]=f(!1),[k,v]=f(!1),[O,U]=f(()=>AZ()),[B,C]=f(!1),[_,T]=f(!1),u=L0(null),E=L0(!1),t=L0(null),$0=zW(),g=g9((Z0)=>q(Z0),[]),I=g9((Z0)=>{u.current=Z0},[]),h=g9(async()=>{let[Z0,H0]=await Promise.all([c.listDatabases(),c.listDocuments()]);J(Z0),X(H0),y(!0)},[]);e(()=>{h().catch((Z0)=>g(String(Z0.message)))},[h]),e(()=>{let Z0,H0=()=>{clearTimeout(Z0),Z0=setTimeout(()=>h().catch((v0)=>g(String(v0.message))),80)};return document.addEventListener(Y9,H0),()=>{clearTimeout(Z0),document.removeEventListener(Y9,H0)}},[h,g]),e(()=>{if(typeof window<"u"&&window.metahubDesktop)return;n6()},[]),e(()=>N9((Z0)=>U({...Z0})),[]),e(()=>{if(Boolean(O.bucketDirty||O.bucketSyncing)){E.current=!0,C(!1);return}if(!E.current||O.bucketError)return;E.current=!1,C(!0);let H0=setTimeout(()=>C(!1),900);return()=>clearTimeout(H0)},[O.bucketDirty,O.bucketSyncing,O.bucketError]),e(()=>{l8().then(()=>Q8())},[]);let[m,z0]=f(typeof navigator<"u"&&!navigator.onLine);e(()=>{let Z0=()=>z0(!1),H0=()=>z0(!0);return window.addEventListener("online",Z0),window.addEventListener("offline",H0),()=>{window.removeEventListener("online",Z0),window.removeEventListener("offline",H0)}},[]),e(()=>{let Z0=typeof window<"u"?window.metahubDesktop?.coreUpdate:void 0;if(!Z0)return;Promise.all([c.version().then((H0)=>H0.version).catch(()=>null),Z0.installedVersion().catch(()=>null)]).then(([H0,v0])=>{if(H0&&v0&&n9(v0,H0)>0)S(!0)})},[]);let X0=(Z0,H0)=>{let v0=Q6(Z0);if(location.hash!==v0)history[H0?.replace?"replaceState":"pushState"](null,"",v0);G(Z0)};e(()=>{if(location.hash&&!location.hash.startsWith("#/"))history.replaceState(null,"","#/");let Z0=()=>G(X6(location.hash));return window.addEventListener("hashchange",Z0),()=>window.removeEventListener("hashchange",Z0)},[]);let Y0=()=>c.createDocument({title:""}).then((Z0)=>X0({kind:"doc",id:Z0.id})).catch((Z0)=>g(String(Z0.message))),p=z.kind==="db"?Z.find((Z0)=>Z0.id===z.id):void 0,Q0=z.kind==="doc"?Q.find((Z0)=>Z0.id===z.id):void 0,j0=z.kind==="doc"?z.id:null,r0=z.kind==="db"?z.id:null;e(()=>{A("blocks"),N(!1)},[j0]),e(()=>{v(!1)},[r0]);let a0=z.kind!=="empty",O0=L0(0);e(()=>{let Z0=$0&&a0;if(Z0&&!document.body.classList.contains("mobile-content"))O0.current=window.scrollY;if(document.body.classList.toggle("mobile",$0),document.body.classList.toggle("mobile-content",Z0),f8(),$0)window.scrollTo(0,Z0?0:O0.current)},[$0,a0,z]),e(()=>{let Z0=(H0)=>{if((H0.metaKey||H0.ctrlKey)&&H0.key.toLowerCase()==="k"){H0.preventDefault(),document.querySelector(".sb-search input")?.focus();return}if((H0.metaKey||H0.ctrlKey)&&H0.key.toLowerCase()==="s"){if(t.current?.())H0.preventDefault()}};return window.addEventListener("keydown",Z0),()=>window.removeEventListener("keydown",Z0)},[]),e(()=>{let Z0=window.matchMedia("(prefers-color-scheme: dark)"),H0=()=>{e1(),f8()};return Z0.addEventListener("change",H0),()=>Z0.removeEventListener("change",H0)},[]);let h0=(Z0)=>{let H0=u.current?.snapshotMarkdown();u.current?.flushSave(),(H0==null?c.getDocument(Z0.id).then((Z9)=>Z9.body??""):Promise.resolve(H0)).then((Z9)=>W6(z6(Z0.title||Z0.id,".md"),Z9,"text/markdown;charset=utf-8")).catch((Z9)=>g(String(Z9.message)))},G0=(Z0)=>{Promise.all([c.listProperties(Z0.id),c.listRecords(Z0.id)]).then(([H0,v0])=>W6(z6(Z0.name||Z0.id,".csv"),$3(H0,v0),"text/csv;charset=utf-8")).catch((H0)=>g(String(H0.message)))},b=(Z0)=>{I0(Z0,(H0)=>$(n,{children:[$(W0,{icon:"link",label:"复制链接",onClick:()=>{H0(),navigator.clipboard.writeText(location.origin+location.pathname+Q6(z)).then(()=>o("链接已复制")).catch((v0)=>g(String(v0.message)))}},void 0,!1,void 0,this),z.kind==="doc"&&Q0&&$(W0,{icon:"download",label:"导出 Markdown",onClick:()=>{H0(),h0(Q0)}},void 0,!1,void 0,this),z.kind==="db"&&p&&$(W0,{icon:"download",label:"导出 CSV",onClick:()=>{H0(),G0(p)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},x=o0()&&(O.bucketDirty||O.bucketSyncing||O.bucketError||B)?O.bucketSyncing?"saving":B?"saved":O.bucketError?"error":"dirty":"share",r=x==="saving"?"保存中…":x==="saved"?"已保存":x==="share"?"分享":"保存",l=x==="share"?"share":x==="saved"?"cloudCheck":x==="saving"?"spinner":x==="error"?"cloudOff":"cloudUp",F0=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform),P0=x==="share"?"分享":x==="error"?`保存到云端失败:${O.bucketError??""}`:`保存到云端${$0?"":F0?" · ⌘S":" · Ctrl+S"}`,s=async()=>{try{await u.current?.flushSave(),await c6();let Z0=AZ();if(Z0.bucketError)throw Error(Z0.bucketError);if(Z0.bucketDirty)throw Error("仍有改动尚未保存到云端")}catch(Z0){o(`保存失败:${Z0.message}`)}},k0=()=>{T(!0),window.setTimeout(()=>T(!1),320)},T0=(Z0)=>{if(x==="share"){b(Z0);return}if(x==="saving"||x==="saved")return;s()};t.current=()=>{if(z.kind!=="doc"&&z.kind!=="db")return!1;if(x==="saving"||x==="saved")return!0;if(x==="dirty"||x==="error")s(),k0();else if(o0())o("已是最新"),k0();return!0};let w0=(Z0)=>{if(z.kind==="doc"&&Q0)I0(Z0,(H0)=>$(n,{children:[$(W0,{icon:"code",label:P==="source"?"块方式显示":"代码方式显示",checked:P==="source",onClick:()=>{H0(),u.current?.setMode(P==="source"?"blocks":"source")}},void 0,!1,void 0,this),$(W0,{icon:"copy",label:"创建副本",onClick:async()=>{H0(),u.current?.flushSave();try{let v0=await c.duplicateDocument(Q0.id,{title:`${Q0.title||"无标题"} 副本`});X0({kind:"doc",id:v0.id}),o("已创建副本")}catch(v0){g(String(v0.message))}}},void 0,!1,void 0,this),$(W0,{icon:"history",label:"版本历史",onClick:()=>{H0(),u.current?.flushSave(),N(!0)}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"settings",label:"重命名…",onClick:async()=>{H0();let v0=await L9({title:"重命名文档",value:Q0.title});if(v0)await c.updateDocument(Q0.id,{title:v0})}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除文档",danger:!0,onClick:async()=>{if(H0(),await b0({title:"删除文档?",message:`「${Q0.title||"无标题"}」将被删除。`,confirmLabel:"删除",danger:!0}))await c.deleteDocument(Q0.id),X0({kind:"empty"},{replace:!0})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this));else if(z.kind==="db"&&p)I0(Z0,(H0)=>$(n,{children:[$(W0,{icon:"copy",label:"创建副本",onClick:async()=>{H0();try{let v0=await c.duplicateDatabase(p.id,{name:`${p.name} 副本`});X0({kind:"db",id:v0.id}),o("已创建副本")}catch(v0){g(String(v0.message))}}},void 0,!1,void 0,this),$(W0,{icon:"history",label:"最近动态",onClick:()=>{H0(),v(!0)}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"settings",label:"重命名…",onClick:async()=>{H0();let v0=await L9({title:"重命名数据库",value:p.name});if(v0&&v0!==p.name)await c.updateDatabase(p.id,{name:v0})}},void 0,!1,void 0,this),$(f0,{},void 0,!1,void 0,this),$(W0,{icon:"trash",label:"删除数据库",danger:!0,onClick:async()=>{if(H0(),await b0({title:"删除数据库?",message:`「${p.name}」及其所有记录将被永久删除。`,confirmLabel:"删除",danger:!0}))await c.deleteDatabase(p.id),X0({kind:"empty"},{replace:!0})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return $(n,{children:[$(qJ,{databases:Z,docs:Q,view:z,navigate:X0,width:F,collapsed:Y,onResize:K,onCollapse:()=>H(!0),updatePending:V,onError:g},void 0,!1,void 0,this),$("div",{class:"main",children:[$("div",{class:"topbar"+(z.kind==="empty"?" bare":""),children:[$("button",{class:"iconbtn hamburger"+(Y?" show-collapsed":""),title:$0?"返回":Y?"展开侧栏":"菜单",onClick:()=>$0?X0({kind:"empty"}):H(!1),children:$(D,{name:$0?"arrowLeft":"panelLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"crumb",children:[z.kind==="doc"&&$(n,{children:[$("span",{class:"emoji",children:$(D,{name:"file",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{children:Q0?.title||"无标题"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.kind==="db"&&$(n,{children:[$("span",{class:"emoji",children:p?.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),$("span",{children:p?.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.kind==="search"&&$("span",{children:["搜索:“",z.q,"”"]},void 0,!0,void 0,this),z.kind==="settings"&&$(n,{children:[$("span",{class:"emoji",children:$(D,{name:"settings",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{children:"设置"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.kind==="sites"&&$(n,{children:[$("span",{class:"emoji",children:$(D,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{children:"站点管理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),(z.kind==="doc"||z.kind==="db")&&$(n,{children:[$("button",{class:`btn share-save share-save-${x}${_?" share-save-kbd":""}`,title:P0,disabled:x==="saving"||x==="saved",onClick:T0,children:[$("span",{class:"share-save-ico",children:$(D,{name:l,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"share-save-label",children:r},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"iconbtn",onClick:w0,children:$(D,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),m&&$("div",{class:"offline-bar",children:o0()?"⚡ 离线 — 本地副本模式:可正常查看和编辑全部内容,恢复连接后自动同步":"⚡ 离线 — 可浏览已缓存的内容,修改会失败;恢复网络后自动恢复"},void 0,!1,void 0,this),W&&$("div",{class:"error-bar",onClick:()=>q(""),children:["⚠ ",W,"(点击关闭)"]},void 0,!0,void 0,this),$("div",{class:"content",children:[z.kind==="empty"&&$(GW,{onNewDoc:Y0},void 0,!1,void 0,this),z.kind==="db"&&p&&$(vJ,{db:p,onError:g},p.id,!1,void 0,this),z.kind==="db"&&!p&&$("div",{class:"empty",children:L?"数据库不存在或已被删除。":"加载中…"},void 0,!1,void 0,this),z.kind==="doc"&&$(V8,{docId:z.id,onError:g,onModeChange:A,onHandle:I},z.id,!1,void 0,this),z.kind==="search"&&$(YW,{q:z.q,onOpenDoc:(Z0)=>X0({kind:"doc",id:Z0}),onOpenDb:(Z0)=>X0({kind:"db",id:Z0})},void 0,!1,void 0,this),z.kind==="settings"&&$(d7,{onUpdatePending:S},void 0,!1,void 0,this),z.kind==="sites"&&$(o7,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),M&&z.kind==="doc"&&$(BJ,{docId:z.id,onClose:()=>N(!1),onReverted:()=>u.current?.reload()},void 0,!1,void 0,this),k&&z.kind==="db"&&$(PJ,{dbId:z.id,onClose:()=>v(!1)},void 0,!1,void 0,this),$(G8,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function GW({onNewDoc:Z}){return $("div",{class:"empty",children:[$("svg",{class:"estate-art",viewBox:"0 0 220 190",fill:"none","aria-hidden":"true",children:[$("ellipse",{class:"kg-ground ground",cx:"110",cy:"176",rx:"62",ry:"8"},void 0,!1,void 0,this),$("circle",{class:"kg-glow fill-soft",cx:"116",cy:"88",r:"42"},void 0,!1,void 0,this),$("g",{class:"kg-plant",children:[$("path",{class:"kg-stem stroke-a draw",pathLength:"100",d:"M110 134 C110 117 108 106 113 92 C116 83 122 77 128 72"},void 0,!1,void 0,this),$("g",{class:"kg-leaf l1",children:$("g",{class:"kg-grow",children:$("path",{class:"fill-a",d:"M108 108 C90 100 86 88 88 80 C102 80 111 90 108 108 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("g",{class:"kg-leaf l2",children:$("g",{class:"kg-grow",children:$("path",{class:"fill-a",d:"M118 90 C133 83 144 86 150 94 C139 105 125 104 118 90 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("g",{class:"kg-leaf l3",children:$("g",{class:"kg-grow",children:$("path",{class:"fill-a",d:"M128 72 C128 57 136 48 146 45 C150 58 144 69 128 72 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("rect",{class:"kg-cardB fill-soft",x:"76",y:"124",width:"68",height:"44",rx:"8",transform:"rotate(7 110 146)"},void 0,!1,void 0,this),$("g",{class:"kg-cardA",children:[$("rect",{class:"fill-surface stroke",x:"66",y:"128",width:"76",height:"46",rx:"9",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),$("rect",{class:"fill-a",x:"74",y:"136",width:"18",height:"18",rx:"5",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),$("rect",{class:"fill-soft",x:"98",y:"139",width:"34",height:"6",rx:"3",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),$("rect",{class:"fill-soft",x:"98",y:"150",width:"24",height:"6",rx:"3",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("circle",{class:"kg-particle p1 fill-a",cx:"44",cy:"62",r:"2.6"},void 0,!1,void 0,this),$("circle",{class:"kg-particle p2 fill-soft",cx:"178",cy:"74",r:"3"},void 0,!1,void 0,this),$("circle",{class:"kg-particle p3 fill-a",cx:"40",cy:"120",r:"2"},void 0,!1,void 0,this),$("circle",{class:"kg-particle p4 fill-soft",cx:"182",cy:"126",r:"2.4"},void 0,!1,void 0,this),$("circle",{class:"kg-particle p5 fill-a",cx:"150",cy:"44",r:"2.2"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("p",{class:"estate-title",children:"空空如也"},void 0,!1,void 0,this),$("p",{class:"estate-hint",children:"从左侧选择一个数据库或文档,或新建一个开始。"},void 0,!1,void 0,this),$("button",{class:"estate-link",onClick:Z,children:"+ 新建文档"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function qW({text:Z}){let J=Z.split(/\[([^\[\]]*)\]/g);return $(n,{children:J.map((Q,X)=>X%2?$("mark",{children:Q},X,!1,void 0,this):Q)},void 0,!1,void 0,this)}function YW({q:Z,onOpenDoc:J,onOpenDb:Q}){let[X,z]=f(null);return e(()=>{z(null),c.search(Z).then(z).catch(()=>z([]))},[Z]),$("div",{class:"db",children:[$("div",{class:"db-title",style:{marginBottom:14},children:["搜索:“",Z,"”"]},void 0,!0,void 0,this),X===null&&$("p",{class:"muted",children:"搜索中…"},void 0,!1,void 0,this),X?.length===0&&$("p",{class:"muted",children:"没有匹配结果。"},void 0,!1,void 0,this),X?.map((G)=>$("div",{class:"search-hit",onClick:()=>G.type==="document"?J(G.id):G.database_id&&Q(G.database_id),children:[$("strong",{children:G.title||G.id},void 0,!1,void 0,this)," ",$("span",{class:"muted",children:G.type==="document"?"文档":"记录"},void 0,!1,void 0,this),$("div",{class:"muted",children:$(qW,{text:G.snippet},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},G.id,!0,void 0,this))]},void 0,!0,void 0,this)}function Q3({text:Z}){return $("div",{class:"enroll-splash",children:[$("div",{class:"enroll-spinner"},void 0,!1,void 0,this),$("div",{class:"muted",children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function HW(){let Z=/[#&]enroll=([^&]+)/.exec(location.hash);if(!Z)return null;try{return zJ(Z[1])}catch{return null}}function KW({onDone:Z}){let J=HW(),[Q,X]=f(J?.endpoint??""),[z,G]=f(J?.bucket??""),[W,q]=f(J?.region??"auto"),[Y,H]=f(J?.accessKeyId??""),[F,K]=f(J?.secretAccessKey??""),[P,A]=f(J?.prefix??"metahub"),[L,y]=f(J?.encrypt??!0),[V,S]=f(""),[M,N]=f(!1),[k,v]=f(""),O=J!=null,U=async()=>{if(!Q.trim()||!z.trim()||!Y.trim()||!F.trim()){v("endpoint、bucket、access key、secret key 必填");return}if(L&&!V){v("加密口令必填");return}N(!0),v("");try{await i6({endpoint:Q.trim(),region:W.trim()||"auto",bucket:z.trim(),prefix:P.trim()||"metahub",accessKeyId:Y.trim(),secretAccessKey:F.trim(),encrypt:L,virtualHostedStyle:J?.virtualHostedStyle},V),Z()}catch(B){let C=B.message;v(/failed to fetch|load failed|networkerror|cors/i.test(C)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE。":`连接失败:${C}`),N(!1)}};return $("div",{class:"enroll",children:$("div",{class:"enroll-card",children:[$("div",{class:"enroll-title",children:"连接你的存储桶"},void 0,!1,void 0,this),$("div",{class:"enroll-sub",children:O?"已从二维码读取桶信息,输入加密口令即可同步你的数据。":"填入 S3 兼容存储桶(R2/COS/MinIO/S3)的连接信息;数据上传前端到端加密。"},void 0,!1,void 0,this),!O&&$(n,{children:[$("div",{class:"field-label",children:"Endpoint"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"https://<bucket>.cos.<region>.myqcloud.com",value:Q,onInput:(B)=>X(B.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"Bucket"},void 0,!1,void 0,this),$("input",{class:"text-input",value:z,onInput:(B)=>G(B.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"Region"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"auto",value:W,onInput:(B)=>q(B.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"Access Key ID"},void 0,!1,void 0,this),$("input",{class:"text-input",value:Y,onInput:(B)=>H(B.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"Secret Access Key"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",value:F,onInput:(B)=>K(B.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"路径前缀"},void 0,!1,void 0,this),$("input",{class:"text-input",value:P,onInput:(B)=>A(B.target.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),O&&$("div",{class:"enroll-bucket muted",children:["桶:",z]},void 0,!0,void 0,this),L&&$(n,{children:[$("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",autofocus:O,placeholder:"与其他设备相同的口令",value:V,onInput:(B)=>S(B.target.value),onKeyDown:(B)=>B.key==="Enter"&&U()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),k&&$("div",{class:"enroll-err",children:k},void 0,!1,void 0,this),$("button",{class:"btn btn-primary enroll-go",disabled:M,onClick:U,children:M?"连接中…":"连接并同步"},void 0,!1,void 0,this),$("div",{class:"enroll-hint muted",children:"提示:iPhone 请用 Safari 的「分享 → 添加到主屏」装成 App,离线与持久存储才生效。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function FW(){let[Z,J]=f("detecting");if(e(()=>{l8().then((Q)=>{if(Q==="server")return J("app");if(!Q9())return J("enroll");CZ(),J(o0()?"app":"hydrating")})},[]),e(()=>{if(Z!=="hydrating")return;if(o0())return J("app");return N9(()=>{if(o0())J("app")})},[Z]),Z==="detecting")return $(Q3,{text:"加载中…"},void 0,!1,void 0,this);if(Z==="enroll")return $(KW,{onDone:()=>J(o0()?"app":"hydrating")},void 0,!1,void 0,this);if(Z==="hydrating")return $(Q3,{text:"正在从云端水合本地副本…"},void 0,!1,void 0,this);return $(WW,{},void 0,!1,void 0,this)}if(typeof window<"u"&&window.metahubDesktop){if(document.body.classList.add("desktop"),window.metahubDesktop.platform==="darwin")document.body.classList.add("desktop-mac")}if(location.hash==="#quick"&&typeof window<"u"&&window.metahubDesktop)document.body.classList.add("quicknote"),p8($(Z3,{},void 0,!1,void 0,this),document.getElementById("app"));else p8($(FW,{},void 0,!1,void 0,this),document.getElementById("app"));
|