@coralai/sps-cli 0.57.1 → 0.57.2

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.
@@ -577,7 +577,7 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus
577
577
  `},h]}}const F$=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),H$=["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"],q$=["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"],K$=[...H$,...q$],G$=["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(),Z2=["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(),J2=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),V$=["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(),Y$=Z2.concat(J2).sort().reverse();function Q$(e){const t=F$(e),n=Y$,r="and or not only",a="[\\w-]+",o="("+a+"|@\\{"+a+"\\})",l=[],u=[],d=function(_){return{className:"string",begin:"~?"+_+".*?"+_}},h=function(_,N,O){return{className:_,begin:N,relevance:O}},g={$pattern:/[a-z-]+/,keyword:r,attribute:G$.join(" ")},m={begin:"\\(",end:"\\)",contains:u,keywords:g,relevance:0};u.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,d("'"),d('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,m,h("variable","@@?"+a,10),h("variable","@\\{"+a+"\\}"),h("built_in","~?`[^`]*?`"),{className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const y=u.concat({begin:/\{/,end:/\}/,contains:l}),b={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(u)},E={begin:o+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+V$.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:u}}]},v={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:g,returnEnd:!0,contains:u,relevance:0}},S={className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a}],starts:{end:"[;}]",returnEnd:!0,contains:y}},k={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:o,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,h("keyword","all\\b"),h("variable","@\\{"+a+"\\}"),{begin:"\\b("+K$.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,h("selector-tag",o,0),h("selector-id","#"+o),h("selector-class","\\."+o,0),h("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Z2.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+J2.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:y},{begin:"!important"},t.FUNCTION_DISPATCH]},j={begin:a+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[k]};return l.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,v,S,j,E,k,b,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:l}}function W$(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},a=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.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:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}function X$(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={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:[t,n]},a={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},o={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},l={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[t]};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:[e.HASH_COMMENT_MODE,t,n,r,a,o,l]}}function Z$(e){const t=e.regex,n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},a={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}]},o={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},l={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},u=/[A-Za-z][A-Za-z0-9+.-]*/,d={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,u,/:\/\/.*?\)/),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}/}]},g={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},m=e.inherit(h,{contains:[]}),y=e.inherit(g,{contains:[]});h.contains.push(y),g.contains.push(m);let b=[n,d];return[h,g,m,y].forEach(k=>{k.contains=k.contains.concat(b)}),b=b.concat(h,g),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:b},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:b}]}]},n,o,h,g,{className:"quote",begin:"^>\\s+",contains:b,end:"$"},a,r,d,l,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function J$(e){const t={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+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,u={"variable.language":["this","super"],$pattern:n,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"]},d={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:u,illegal:"</",contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[e.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},e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+d.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:d,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function e9(e){const t=e.regex,n=["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"],r=/[dualxmsipngr]{0,12}/,a={$pattern:/[\w.]+/,keyword:n.join(" ")},o={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},l={begin:/->\{/,end:/\}/},u={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},d={scope:"variable",variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[u]},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},g=[e.BACKSLASH_ESCAPE,o,d],m=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],y=(v,S,k="\\1")=>{const j=k==="\\1"?k:t.concat(k,S);return t.concat(t.concat("(?:",v,")"),S,/(?:\\.|[^\\\/])*?/,j,/(?:\\.|[^\\\/])*?/,k,r)},b=(v,S,k)=>t.concat(t.concat("(?:",v,")"),S,/(?:\\.|[^\\\/])*?/,k,r),E=[d,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),l,{className:"string",contains:g,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:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},h,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:y("s|tr|y",t.either(...m,{capture:!0}))},{begin:y("s|tr|y","\\(","\\)")},{begin:y("s|tr|y","\\[","\\]")},{begin:y("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:b("(?:m|qr)?",/\//,/\//)},{begin:b("m|qr",t.either(...m,{capture:!0}),/\1/)},{begin:b("m|qr",/\(/,/\)/)},{begin:b("m|qr",/\[/,/\]/)},{begin:b("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,u]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,u,h]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return o.contains=E,l.contains=E,{name:"Perl",aliases:["pl","pm"],keywords:a,contains:E}}function t9(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),a=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),o=t.concat(/[A-Z]+/,n),l={scope:"variable",match:"\\$+"+r},u={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},d={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},h=e.inherit(e.APOS_STRING_MODE,{illegal:null}),g=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(d)}),m={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(d),"on:begin":(B,q)=>{q.data._beginMatch=B[1]||B[2]},"on:end":(B,q)=>{q.data._beginMatch!==B[1]&&q.ignoreMatch()}},y=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),b=`[
578
578
  ]`,E={scope:"string",variants:[g,h,m,y]},v={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},S=["false","null","true"],k=["__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"],j=["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"],N={keyword:k,literal:(B=>{const q=[];return B.forEach(z=>{q.push(z),z.toLowerCase()===z?q.push(z.toUpperCase()):q.push(z.toLowerCase())}),q})(S),built_in:j},O=B=>B.map(q=>q.replace(/\|\d+$/,"")),T={variants:[{match:[/new/,t.concat(b,"+"),t.concat("(?!",O(j).join("\\b|"),"\\b)"),a],scope:{1:"keyword",4:"title.class"}}]},M=t.concat(r,"\\b(?!\\()"),I={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),M],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[a,t.concat(/::/,t.lookahead(/(?!class\b)/)),M],scope:{1:"title.class",3:"variable.constant"}},{match:[a,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[a,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},F={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},$={relevance:0,begin:/\(/,end:/\)/,keywords:N,contains:[F,l,I,e.C_BLOCK_COMMENT_MODE,E,v,T]},U={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",O(k).join("\\b|"),"|",O(j).join("\\b|"),"\\b)"),r,t.concat(b,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[$]};$.contains.push(U);const K=[F,I,e.C_BLOCK_COMMENT_MODE,E,v,T],Q={begin:t.concat(/#\[\s*\\?/,t.either(a,o)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...K]},...K,{scope:"meta",variants:[{match:a},{match:o}]}]};return{case_insensitive:!1,keywords:N,contains:[Q,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},u,{scope:"variable.language",match:/\$this\b/},l,U,I,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},T,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:N,contains:["self",Q,l,I,e.C_BLOCK_COMMENT_MODE,E,v]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},E,v]}}function n9(e){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},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function r9(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function i9(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["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"],u={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,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"]},d={className:"meta",begin:/^(>>>|\.\.\.) /},h={className:"subst",begin:/\{/,end:/\}/,keywords:u,illegal:/#/},g={begin:/\{\{/,relevance:0},m={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,d,g,h]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,d,g,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:[e.BACKSLASH_ESCAPE,g,h]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,g,h]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},y="[0-9](_?[0-9])*",b=`(\\b(${y}))?\\.(${y})|\\b(${y})\\.`,E=`\\b|${r.join("|")}`,v={className:"number",relevance:0,variants:[{begin:`(\\b(${y})|(${b}))[eE][+-]?(${y})[jJ]?(?=${E})`},{begin:`(${b})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${E})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${E})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${E})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${E})`},{begin:`\\b(${y})[jJ](?=${E})`}]},S={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:u,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},k={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:["self",d,v,m,e.HASH_COMMENT_MODE]}]};return h.contains=[m,v,d],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:u,illegal:/(<\/|\?)|=>/,contains:[d,v,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},m,S,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[k]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[v,k,m]}]}}function a9(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function s9(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.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]?/),a=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,o=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,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:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[a,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[o,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:a},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:o},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function o9(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),a=t.concat(r,/(::\w+)*/),l={"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"]},u={className:"doctag",begin:"@[A-Za-z]+"},d={begin:"#<",end:">"},h=[e.COMMENT("#","$",{contains:[u]}),e.COMMENT("^=begin","^=end",{contains:[u],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],g={className:"subst",begin:/#\{/,end:/\}/,keywords:l},m={className:"string",contains:[e.BACKSLASH_ESCAPE,g],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:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,g]})]}]},y="[1-9](_?[0-9])*|0",b="[0-9](_?[0-9])*",E={className:"number",relevance:0,variants:[{begin:`\\b(${y})(\\.(${b}))?([eE][+-]?(${b})|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"}]},v={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:l}]},T=[m,{variants:[{match:[/class\s+/,a,/\s+<\s+/,a]},{match:[/\b(class|module)\s+/,a]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:l},{match:[/(include|extend)\s+/,a],scope:{2:"title.class"},keywords:l},{relevance:0,match:[a,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[v]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[m,{begin:n}],relevance:0},E,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:l},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,g],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(d,h),relevance:0}].concat(d,h);g.contains=T,v.contains=T;const $=[{begin:/^\s*=>/,starts:{end:"$",contains:T}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:l,contains:T}}];return h.unshift(d),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:l,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat($).concat(h).concat(T)}}function l9(e){const t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),a=t.concat(n,e.IDENT_RE),o={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,a,t.lookahead(/\s*\(/))},l="([ui](8|16|32|64|128|size)|f(32|64))?",u=["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"],d=["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!"],g=["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:e.IDENT_RE+"!?",type:g,keyword:u,literal:d,built_in:h},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.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_]+)"+l},{begin:"\\b0o([0-7_]+)"+l},{begin:"\\b0x([A-Fa-f0-9_]+)"+l},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+l}],relevance:0},{begin:[/fn/,/\s+/,r],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,r],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,r,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:h,type:g}},{className:"punctuation",begin:"->"},o]}}const c9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),u9=["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"],d9=["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"],f9=[...u9,...d9],h9=["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(),p9=["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(),m9=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),g9=["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 y9(e){const t=c9(e),n=m9,r=p9,a="@[a-z-]+",o="and or not only",u={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+f9.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},u,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+g9.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:[t.BLOCK_COMMENT,u,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:a,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:o,attribute:h9.join(" ")},contains:[{begin:a,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},u,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function b9(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function x9(e){const t=e.regex,n=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},a={begin:/"/,end:/"/,contains:[{match:/""/}]},o=["true","false","unknown"],l=["double precision","large object","with timezone","without timezone"],u=["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"],d=["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"],g=["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"],m=["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"],y=["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"],b=g,E=[...h,...d].filter(O=>!g.includes(O)),v={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},k={match:t.concat(/\b/,t.either(...b),/\s*\(/),relevance:0,keywords:{built_in:b}};function j(O){return t.concat(/\b/,t.either(...O.map(T=>T.replace(/\s+/,"\\s+"))),/\b/)}const _={scope:"keyword",match:j(y),relevance:0};function N(O,{exceptions:T,when:M}={}){const I=M;return T=T||[],O.map(F=>F.match(/\|\d+$/)||T.includes(F)?F:I(F)?`${F}|0`:F)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:N(E,{when:O=>O.length<3}),literal:o,type:u,built_in:m},contains:[{scope:"type",match:j(l)},_,k,v,r,a,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,S]}}function eC(e){return e?typeof e=="string"?e:e.source:null}function Jc(e){return Mt("(?=",e,")")}function Mt(...e){return e.map(n=>eC(n)).join("")}function v9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Yn(...e){return"("+(v9(e).capture?"":"?:")+e.map(r=>eC(r)).join("|")+")"}const bx=e=>Mt(/\b/,e,/\w$/.test(e)?/\b/:/\B/),w9=["Protocol","Type"].map(bx),ik=["init","self"].map(bx),E9=["Any","Self"],Vg=["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"],ak=["false","nil","true"],k9=["assignment","associativity","higherThan","left","lowerThan","none","right"],S9=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],sk=["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"],tC=Yn(/[/=\-+!*%<>&|^~?]/,/[\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]/),nC=Yn(tC,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Yg=Mt(tC,nC,"*"),rC=Yn(/[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]/),mh=Yn(rC,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Ei=Mt(rC,mh,"*"),Mf=Mt(/[A-Z]/,mh,"*"),_9=["attached","autoclosure",Mt(/convention\(/,Yn("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Mt(/objc\(/,Ei,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],N9=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function C9(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],a={match:[/\./,Yn(...w9,...ik)],className:{2:"keyword"}},o={match:Mt(/\./,Yn(...Vg)),relevance:0},l=Vg.filter(we=>typeof we=="string").concat(["_|0"]),u=Vg.filter(we=>typeof we!="string").concat(E9).map(bx),d={variants:[{className:"keyword",match:Yn(...u,...ik)}]},h={$pattern:Yn(/\b\w+/,/#\w+/),keyword:l.concat(S9),literal:ak},g=[a,o,d],m={match:Mt(/\./,Yn(...sk)),relevance:0},y={className:"built_in",match:Mt(/\b/,Yn(...sk),/(?=\()/)},b=[m,y],E={match:/->/,relevance:0},v={className:"operator",relevance:0,variants:[{match:Yg},{match:`\\.(\\.|${nC})+`}]},S=[E,v],k="([0-9]_*)+",j="([0-9a-fA-F]_*)+",_={className:"number",relevance:0,variants:[{match:`\\b(${k})(\\.(${k}))?([eE][+-]?(${k}))?\\b`},{match:`\\b0x(${j})(\\.(${j}))?([pP][+-]?(${k}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},N=(we="")=>({className:"subst",variants:[{match:Mt(/\\/,we,/[0\\tnr"']/)},{match:Mt(/\\/,we,/u\{[0-9a-fA-F]{1,8}\}/)}]}),O=(we="")=>({className:"subst",match:Mt(/\\/,we,/[\t ]*(?:[\r\n]|\r\n)/)}),T=(we="")=>({className:"subst",label:"interpol",begin:Mt(/\\/,we,/\(/),end:/\)/}),M=(we="")=>({begin:Mt(we,/"""/),end:Mt(/"""/,we),contains:[N(we),O(we),T(we)]}),I=(we="")=>({begin:Mt(we,/"/),end:Mt(/"/,we),contains:[N(we),T(we)]}),F={className:"string",variants:[M(),M("#"),M("##"),M("###"),I(),I("#"),I("##"),I("###")]},$=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],U={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:$},K=we=>{const ct=Mt(we,/\//),Pt=Mt(/\//,we);return{begin:ct,end:Pt,contains:[...$,{scope:"comment",begin:`#(?!.*${Pt})`,end:/$/}]}},Q={scope:"regexp",variants:[K("###"),K("##"),K("#"),U]},B={match:Mt(/`/,Ei,/`/)},q={className:"variable",match:/\$\d+/},z={className:"variable",match:`\\$${mh}+`},Y=[B,q,z],W={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:N9,contains:[...S,_,F]}]}},G={scope:"keyword",match:Mt(/@/,Yn(..._9),Jc(Yn(/\(/,/\s+/)))},D={scope:"meta",match:Mt(/@/,Ei)},L=[W,G,D],V={match:Jc(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Mt(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,mh,"+")},{className:"type",match:Mf,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Mt(/\s+&\s+/,Jc(Mf)),relevance:0}]},R={begin:/</,end:/>/,keywords:h,contains:[...r,...g,...L,E,V]};V.contains.push(R);const se={match:Mt(Ei,/\s*:/),keywords:"_|0",relevance:0},ge={begin:/\(/,end:/\)/,relevance:0,keywords:h,contains:["self",se,...r,Q,...g,...b,...S,_,F,...Y,...L,V]},ye={begin:/</,end:/>/,keywords:"repeat each",contains:[...r,V]},xe={begin:Yn(Jc(Mt(Ei,/\s*:/)),Jc(Mt(Ei,/\s+/,Ei,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Ei}]},H={begin:/\(/,end:/\)/,keywords:h,contains:[xe,...r,...g,...S,_,F,...L,V,ge],endsParent:!0,illegal:/["']/},ne={match:[/(func|macro)/,/\s+/,Yn(B.match,Ei,Yg)],className:{1:"keyword",3:"title.function"},contains:[ye,H,t],illegal:[/\[/,/%/]},ue={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[ye,H,t],illegal:/\[|%/},ce={match:[/operator/,/\s+/,Yg],className:{1:"keyword",3:"title"}},de={begin:[/precedencegroup/,/\s+/,Mf],className:{1:"keyword",3:"title"},contains:[V],keywords:[...k9,...ak],end:/}/},be={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},je={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},Me={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Ei,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:h,contains:[ye,...g,{begin:/:/,end:/\{/,keywords:h,contains:[{scope:"title.class.inherited",match:Mf},...g],relevance:0}]};for(const we of F.variants){const ct=we.contains.find(an=>an.label==="interpol");ct.keywords=h;const Pt=[...g,...b,...S,_,F,...Y];ct.contains=[...Pt,{begin:/\(/,end:/\)/,contains:["self",...Pt]}]}return{name:"Swift",keywords:h,contains:[...r,ne,ue,be,je,Me,ce,de,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},Q,...g,...b,...S,_,F,...Y,...L,V,ge]}}const gh="[A-Za-z$_][0-9A-Za-z$_]*",iC=["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"],aC=["true","false","null","undefined","NaN","Infinity"],sC=["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"],oC=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],lC=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],cC=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],uC=[].concat(lC,sC,oC);function j9(e){const t=e.regex,n=(W,{after:G})=>{const D="</"+W[0].slice(1);return W.input.indexOf(D,G)!==-1},r=gh,a={begin:"<>",end:"</>"},o=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(W,G)=>{const D=W[0].length+W.index,L=W.input[D];if(L==="<"||L===","){G.ignoreMatch();return}L===">"&&(n(W,{after:D})||G.ignoreMatch());let V;const R=W.input.substring(D);if(V=R.match(/^\s*=/)){G.ignoreMatch();return}if((V=R.match(/^\s+extends\s+/))&&V.index===0){G.ignoreMatch();return}}},u={$pattern:gh,keyword:iC,literal:aC,built_in:uC,"variable.language":cC},d="[0-9](_?[0-9])*",h=`\\.(${d})`,g="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:`(\\b(${g})((${h})|\\.)?|(${h}))[eE][+-]?(${d})\\b`},{begin:`\\b(${g})\\b((${h})\\b|\\.)?|(${h})\\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},y={className:"subst",begin:"\\$\\{",end:"\\}",keywords:u,contains:[]},b={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,y],subLanguage:"xml"}},E={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,y],subLanguage:"css"}},v={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,y],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,y]},j={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},_=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,b,E,v,S,{match:/\$\d+/},m];y.contains=_.concat({begin:/\{/,end:/\}/,keywords:u,contains:["self"].concat(_)});const N=[].concat(j,y.contains),O=N.concat([{begin:/(\s*)\(/,end:/\)/,keywords:u,contains:["self"].concat(N)}]),T={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:O},M={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},I={relevance:0,match:t.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:{_:[...sC,...oC]}},F={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},$={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[T],illegal:/%/},U={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function K(W){return t.concat("(?!",W.join("|"),")")}const Q={match:t.concat(/\b/,K([...lC,"super","import"].map(W=>`${W}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},B={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},q={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},T]},z="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",Y={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(z)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[T]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:u,exports:{PARAMS_CONTAINS:O,CLASS_REFERENCE:I},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),F,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,b,E,v,S,j,{match:/\$\d+/},m,I,{scope:"attr",match:r+t.lookahead(":"),relevance:0},Y,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[j,e.REGEXP_MODE,{className:"function",begin:z,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:O}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:a.begin,end:a.end},{match:o},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},$,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[T,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},B,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[T]},Q,U,M,q,{match:/\$[(.]/}]}}function A9(e){const t=e.regex,n=j9(e),r=gh,a=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],o={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},l={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:a},contains:[n.exports.CLASS_REFERENCE]},u={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},d=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],h={$pattern:gh,keyword:iC.concat(d),literal:aC,built_in:uC.concat(a),"variable.language":cC},g={className:"meta",begin:"@"+r},m=(v,S,k)=>{const j=v.contains.findIndex(_=>_.label===S);if(j===-1)throw new Error("can not find mode to replace");v.contains.splice(j,1,k)};Object.assign(n.keywords,h),n.exports.PARAMS_CONTAINS.push(g);const y=n.contains.find(v=>v.scope==="attr"),b=Object.assign({},y,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,y,b]),n.contains=n.contains.concat([g,o,l,b]),m(n,"shebang",e.SHEBANG()),m(n,"use_strict",u);const E=n.contains.find(v=>v.label==="func.def");return E.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function T9(e){const t=e.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},a=/\d{1,2}\/\d{1,2}\/\d{4}/,o=/\d{4}-\d{1,2}-\d{1,2}/,l=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,u=/\d{1,2}(:\d{1,2}){1,2}/,d={className:"literal",variants:[{begin:t.concat(/# */,t.either(o,a),/ *#/)},{begin:t.concat(/# */,u,/ *#/)},{begin:t.concat(/# */,l,/ *#/)},{begin:t.concat(/# */,t.either(o,a),/ +/,t.either(l,u),/ *#/)}]},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])|[%&])?/}]},g={className:"label",begin:/^\w+:/},m=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),y=e.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:[n,r,d,h,g,m,y,{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:[y]}]}}function M9(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const n=e.COMMENT(/;;/,/$/),r=["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"],a={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},o={className:"variable",begin:/\$[\w_]+/},l={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},u={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/},d={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:r},contains:[n,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},o,l,a,e.QUOTE_STRING_MODE,d,h,u]}}function O9(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,a={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},o={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},l=e.inherit(o,{begin:/\(/,end:/\)/}),u=e.inherit(e.APOS_STRING_MODE,{className:"string"}),d=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),h={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{begin:/'/,end:/'/,contains:[a]},{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:[o,d,u,l,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[o,l,d,u]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[d]},{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:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:h}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function D9(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},a={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},o={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},l={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,a]},u=e.inherit(l,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),y={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"},b={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},E={begin:/\{/,end:/\}/,contains:[b],illegal:"\\n",relevance:0},v={begin:"\\[",end:"\\]",contains:[b],illegal:"\\n",relevance:0},S=[r,{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+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},y,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},E,v,o,l],k=[...S];return k.pop(),k.push(u),b.contains=k,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}const R9={arduino:m$,bash:g$,c:y$,cpp:b$,csharp:x$,css:j$,diff:A$,go:T$,graphql:M$,ini:O$,java:D$,javascript:P$,json:B$,kotlin:$$,less:Q$,lua:W$,makefile:X$,markdown:Z$,objectivec:J$,perl:e9,php:t9,"php-template":n9,plaintext:r9,python:i9,"python-repl":a9,r:s9,ruby:o9,rust:l9,scss:y9,shell:b9,sql:x9,swift:C9,typescript:A9,vbnet:T9,wasm:M9,xml:O9,yaml:D9};var Qg,ok;function L9(){if(ok)return Qg;ok=1;function e(J){return J instanceof Map?J.clear=J.delete=J.set=function(){throw new Error("map is read-only")}:J instanceof Set&&(J.add=J.clear=J.delete=function(){throw new Error("set is read-only")}),Object.freeze(J),Object.getOwnPropertyNames(J).forEach(he=>{const _e=J[he],Ke=typeof _e;(Ke==="object"||Ke==="function")&&!Object.isFrozen(_e)&&e(_e)}),J}class t{constructor(he){he.data===void 0&&(he.data={}),this.data=he.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function n(J){return J.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function r(J,...he){const _e=Object.create(null);for(const Ke in J)_e[Ke]=J[Ke];return he.forEach(function(Ke){for(const Ot in Ke)_e[Ot]=Ke[Ot]}),_e}const a="</span>",o=J=>!!J.scope,l=(J,{prefix:he})=>{if(J.startsWith("language:"))return J.replace("language:","language-");if(J.includes(".")){const _e=J.split(".");return[`${he}${_e.shift()}`,..._e.map((Ke,Ot)=>`${Ke}${"_".repeat(Ot+1)}`)].join(" ")}return`${he}${J}`};class u{constructor(he,_e){this.buffer="",this.classPrefix=_e.classPrefix,he.walk(this)}addText(he){this.buffer+=n(he)}openNode(he){if(!o(he))return;const _e=l(he.scope,{prefix:this.classPrefix});this.span(_e)}closeNode(he){o(he)&&(this.buffer+=a)}value(){return this.buffer}span(he){this.buffer+=`<span class="${he}">`}}const d=(J={})=>{const he={children:[]};return Object.assign(he,J),he};class h{constructor(){this.rootNode=d(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(he){this.top.children.push(he)}openNode(he){const _e=d({scope:he});this.add(_e),this.stack.push(_e)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(he){return this.constructor._walk(he,this.rootNode)}static _walk(he,_e){return typeof _e=="string"?he.addText(_e):_e.children&&(he.openNode(_e),_e.children.forEach(Ke=>this._walk(he,Ke)),he.closeNode(_e)),he}static _collapse(he){typeof he!="string"&&he.children&&(he.children.every(_e=>typeof _e=="string")?he.children=[he.children.join("")]:he.children.forEach(_e=>{h._collapse(_e)}))}}class g extends h{constructor(he){super(),this.options=he}addText(he){he!==""&&this.add(he)}startScope(he){this.openNode(he)}endScope(){this.closeNode()}__addSublanguage(he,_e){const Ke=he.root;_e&&(Ke.scope=`language:${_e}`),this.add(Ke)}toHTML(){return new u(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function m(J){return J?typeof J=="string"?J:J.source:null}function y(J){return v("(?=",J,")")}function b(J){return v("(?:",J,")*")}function E(J){return v("(?:",J,")?")}function v(...J){return J.map(_e=>m(_e)).join("")}function S(J){const he=J[J.length-1];return typeof he=="object"&&he.constructor===Object?(J.splice(J.length-1,1),he):{}}function k(...J){return"("+(S(J).capture?"":"?:")+J.map(Ke=>m(Ke)).join("|")+")"}function j(J){return new RegExp(J.toString()+"|").exec("").length-1}function _(J,he){const _e=J&&J.exec(he);return _e&&_e.index===0}const N=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function O(J,{joinWith:he}){let _e=0;return J.map(Ke=>{_e+=1;const Ot=_e;let Et=m(Ke),Te="";for(;Et.length>0;){const Ce=N.exec(Et);if(!Ce){Te+=Et;break}Te+=Et.substring(0,Ce.index),Et=Et.substring(Ce.index+Ce[0].length),Ce[0][0]==="\\"&&Ce[1]?Te+="\\"+String(Number(Ce[1])+Ot):(Te+=Ce[0],Ce[0]==="("&&_e++)}return Te}).map(Ke=>`(${Ke})`).join(he)}const T=/\b\B/,M="[a-zA-Z]\\w*",I="[a-zA-Z_]\\w*",F="\\b\\d+(\\.\\d+)?",$="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",U="\\b(0b[01]+)",K="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Q=(J={})=>{const he=/^#![ ]*\//;return J.binary&&(J.begin=v(he,/.*\b/,J.binary,/\b.*/)),r({scope:"meta",begin:he,end:/$/,relevance:0,"on:begin":(_e,Ke)=>{_e.index!==0&&Ke.ignoreMatch()}},J)},B={begin:"\\\\[\\s\\S]",relevance:0},q={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[B]},z={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[B]},Y={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/},W=function(J,he,_e={}){const Ke=r({scope:"comment",begin:J,end:he,contains:[]},_e);Ke.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const Ot=k("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 Ke.contains.push({begin:v(/[ ]+/,"(",Ot,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Ke},G=W("//","$"),D=W("/\\*","\\*/"),L=W("#","$"),V={scope:"number",begin:F,relevance:0},R={scope:"number",begin:$,relevance:0},se={scope:"number",begin:U,relevance:0},ge={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[B,{begin:/\[/,end:/\]/,relevance:0,contains:[B]}]},ye={scope:"title",begin:M,relevance:0},xe={scope:"title",begin:I,relevance:0},H={begin:"\\.\\s*"+I,relevance:0};var ue=Object.freeze({__proto__:null,APOS_STRING_MODE:q,BACKSLASH_ESCAPE:B,BINARY_NUMBER_MODE:se,BINARY_NUMBER_RE:U,COMMENT:W,C_BLOCK_COMMENT_MODE:D,C_LINE_COMMENT_MODE:G,C_NUMBER_MODE:R,C_NUMBER_RE:$,END_SAME_AS_BEGIN:function(J){return Object.assign(J,{"on:begin":(he,_e)=>{_e.data._beginMatch=he[1]},"on:end":(he,_e)=>{_e.data._beginMatch!==he[1]&&_e.ignoreMatch()}})},HASH_COMMENT_MODE:L,IDENT_RE:M,MATCH_NOTHING_RE:T,METHOD_GUARD:H,NUMBER_MODE:V,NUMBER_RE:F,PHRASAL_WORDS_MODE:Y,QUOTE_STRING_MODE:z,REGEXP_MODE:ge,RE_STARTERS_RE:K,SHEBANG:Q,TITLE_MODE:ye,UNDERSCORE_IDENT_RE:I,UNDERSCORE_TITLE_MODE:xe});function ce(J,he){J.input[J.index-1]==="."&&he.ignoreMatch()}function de(J,he){J.className!==void 0&&(J.scope=J.className,delete J.className)}function be(J,he){he&&J.beginKeywords&&(J.begin="\\b("+J.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",J.__beforeBegin=ce,J.keywords=J.keywords||J.beginKeywords,delete J.beginKeywords,J.relevance===void 0&&(J.relevance=0))}function je(J,he){Array.isArray(J.illegal)&&(J.illegal=k(...J.illegal))}function Me(J,he){if(J.match){if(J.begin||J.end)throw new Error("begin & end are not supported with match");J.begin=J.match,delete J.match}}function we(J,he){J.relevance===void 0&&(J.relevance=1)}const ct=(J,he)=>{if(!J.beforeMatch)return;if(J.starts)throw new Error("beforeMatch cannot be used with starts");const _e=Object.assign({},J);Object.keys(J).forEach(Ke=>{delete J[Ke]}),J.keywords=_e.keywords,J.begin=v(_e.beforeMatch,y(_e.begin)),J.starts={relevance:0,contains:[Object.assign(_e,{endsParent:!0})]},J.relevance=0,delete _e.beforeMatch},Pt=["of","and","for","in","not","or","if","then","parent","list","value"],an="keyword";function ln(J,he,_e=an){const Ke=Object.create(null);return typeof J=="string"?Ot(_e,J.split(" ")):Array.isArray(J)?Ot(_e,J):Object.keys(J).forEach(function(Et){Object.assign(Ke,ln(J[Et],he,Et))}),Ke;function Ot(Et,Te){he&&(Te=Te.map(Ce=>Ce.toLowerCase())),Te.forEach(function(Ce){const Fe=Ce.split("|");Ke[Fe[0]]=[Et,jn(Fe[0],Fe[1])]})}}function jn(J,he){return he?Number(he):Yr(J)?0:1}function Yr(J){return Pt.includes(J.toLowerCase())}const Jn={},bt=J=>{console.error(J)},En=(J,...he)=>{console.log(`WARN: ${J}`,...he)},le=(J,he)=>{Jn[`${J}/${he}`]||(console.log(`Deprecated as of ${J}. ${he}`),Jn[`${J}/${he}`]=!0)},ve=new Error;function Ie(J,he,{key:_e}){let Ke=0;const Ot=J[_e],Et={},Te={};for(let Ce=1;Ce<=he.length;Ce++)Te[Ce+Ke]=Ot[Ce],Et[Ce+Ke]=!0,Ke+=j(he[Ce-1]);J[_e]=Te,J[_e]._emit=Et,J[_e]._multi=!0}function We(J){if(Array.isArray(J.begin)){if(J.skip||J.excludeBegin||J.returnBegin)throw bt("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ve;if(typeof J.beginScope!="object"||J.beginScope===null)throw bt("beginScope must be object"),ve;Ie(J,J.begin,{key:"beginScope"}),J.begin=O(J.begin,{joinWith:""})}}function at(J){if(Array.isArray(J.end)){if(J.skip||J.excludeEnd||J.returnEnd)throw bt("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ve;if(typeof J.endScope!="object"||J.endScope===null)throw bt("endScope must be object"),ve;Ie(J,J.end,{key:"endScope"}),J.end=O(J.end,{joinWith:""})}}function An(J){J.scope&&typeof J.scope=="object"&&J.scope!==null&&(J.beginScope=J.scope,delete J.scope)}function fr(J){An(J),typeof J.beginScope=="string"&&(J.beginScope={_wrap:J.beginScope}),typeof J.endScope=="string"&&(J.endScope={_wrap:J.endScope}),We(J),at(J)}function gn(J){function he(Te,Ce){return new RegExp(m(Te),"m"+(J.case_insensitive?"i":"")+(J.unicodeRegex?"u":"")+(Ce?"g":""))}class _e{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(Ce,Fe){Fe.position=this.position++,this.matchIndexes[this.matchAt]=Fe,this.regexes.push([Fe,Ce]),this.matchAt+=j(Ce)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const Ce=this.regexes.map(Fe=>Fe[1]);this.matcherRe=he(O(Ce,{joinWith:"|"}),!0),this.lastIndex=0}exec(Ce){this.matcherRe.lastIndex=this.lastIndex;const Fe=this.matcherRe.exec(Ce);if(!Fe)return null;const Vt=Fe.findIndex((Qr,xa)=>xa>0&&Qr!==void 0),It=this.matchIndexes[Vt];return Fe.splice(0,Vt),Object.assign(Fe,It)}}class Ke{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(Ce){if(this.multiRegexes[Ce])return this.multiRegexes[Ce];const Fe=new _e;return this.rules.slice(Ce).forEach(([Vt,It])=>Fe.addRule(Vt,It)),Fe.compile(),this.multiRegexes[Ce]=Fe,Fe}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(Ce,Fe){this.rules.push([Ce,Fe]),Fe.type==="begin"&&this.count++}exec(Ce){const Fe=this.getMatcher(this.regexIndex);Fe.lastIndex=this.lastIndex;let Vt=Fe.exec(Ce);if(this.resumingScanAtSamePosition()&&!(Vt&&Vt.index===this.lastIndex)){const It=this.getMatcher(0);It.lastIndex=this.lastIndex+1,Vt=It.exec(Ce)}return Vt&&(this.regexIndex+=Vt.position+1,this.regexIndex===this.count&&this.considerAll()),Vt}}function Ot(Te){const Ce=new Ke;return Te.contains.forEach(Fe=>Ce.addRule(Fe.begin,{rule:Fe,type:"begin"})),Te.terminatorEnd&&Ce.addRule(Te.terminatorEnd,{type:"end"}),Te.illegal&&Ce.addRule(Te.illegal,{type:"illegal"}),Ce}function Et(Te,Ce){const Fe=Te;if(Te.isCompiled)return Fe;[de,Me,fr,ct].forEach(It=>It(Te,Ce)),J.compilerExtensions.forEach(It=>It(Te,Ce)),Te.__beforeBegin=null,[be,je,we].forEach(It=>It(Te,Ce)),Te.isCompiled=!0;let Vt=null;return typeof Te.keywords=="object"&&Te.keywords.$pattern&&(Te.keywords=Object.assign({},Te.keywords),Vt=Te.keywords.$pattern,delete Te.keywords.$pattern),Vt=Vt||/\w+/,Te.keywords&&(Te.keywords=ln(Te.keywords,J.case_insensitive)),Fe.keywordPatternRe=he(Vt,!0),Ce&&(Te.begin||(Te.begin=/\B|\b/),Fe.beginRe=he(Fe.begin),!Te.end&&!Te.endsWithParent&&(Te.end=/\B|\b/),Te.end&&(Fe.endRe=he(Fe.end)),Fe.terminatorEnd=m(Fe.end)||"",Te.endsWithParent&&Ce.terminatorEnd&&(Fe.terminatorEnd+=(Te.end?"|":"")+Ce.terminatorEnd)),Te.illegal&&(Fe.illegalRe=he(Te.illegal)),Te.contains||(Te.contains=[]),Te.contains=[].concat(...Te.contains.map(function(It){return kn(It==="self"?Te:It)})),Te.contains.forEach(function(It){Et(It,Fe)}),Te.starts&&Et(Te.starts,Ce),Fe.matcher=Ot(Fe),Fe}if(J.compilerExtensions||(J.compilerExtensions=[]),J.contains&&J.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return J.classNameAliases=r(J.classNameAliases||{}),Et(J)}function $t(J){return J?J.endsWithParent||$t(J.starts):!1}function kn(J){return J.variants&&!J.cachedVariants&&(J.cachedVariants=J.variants.map(function(he){return r(J,{variants:null},he)})),J.cachedVariants?J.cachedVariants:$t(J)?r(J,{starts:J.starts?r(J.starts):null}):Object.isFrozen(J)?r(J):J}var xt="11.11.1";class jr extends Error{constructor(he,_e){super(he),this.name="HTMLInjectionError",this.html=_e}}const Tn=n,xo=r,Ri=Symbol("nomatch"),ba=7,Li=function(J){const he=Object.create(null),_e=Object.create(null),Ke=[];let Ot=!0;const Et="Could not find the language '{}', did you forget to load/include a language module?",Te={disableAutodetect:!0,name:"Plain text",contains:[]};let Ce={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:g};function Fe(Ee){return Ce.noHighlightRe.test(Ee)}function Vt(Ee){let ze=Ee.className+" ";ze+=Ee.parentNode?Ee.parentNode.className:"";const et=Ce.languageDetectRe.exec(ze);if(et){const mt=Mn(et[1]);return mt||(En(Et.replace("{}",et[1])),En("Falling back to no-highlight mode for this block.",Ee)),mt?et[1]:"no-highlight"}return ze.split(/\s+/).find(mt=>Fe(mt)||Mn(mt))}function It(Ee,ze,et){let mt="",Qt="";typeof ze=="object"?(mt=Ee,et=ze.ignoreIllegals,Qt=ze.language):(le("10.7.0","highlight(lang, code, ...args) has been deprecated."),le("10.7.0",`Please use highlight(code, options) instead.
579
579
  https://github.com/highlightjs/highlight.js/issues/2277`),Qt=Ee,mt=ze),et===void 0&&(et=!0);const _n={code:mt,language:Qt};zi("before:highlight",_n);const qn=_n.result?_n.result:Qr(_n.language,_n.code,et);return qn.code=_n.code,zi("after:highlight",qn),qn}function Qr(Ee,ze,et,mt){const Qt=Object.create(null);function _n(Se,De){return Se.keywords[De]}function qn(){if(!qe.keywords){cn.addText(kt);return}let Se=0;qe.keywordPatternRe.lastIndex=0;let De=qe.keywordPatternRe.exec(kt),Ye="";for(;De;){Ye+=kt.substring(Se,De.index);const st=yn.case_insensitive?De[0].toLowerCase():De[0],Wt=_n(qe,st);if(Wt){const[Tr,rc]=Wt;if(cn.addText(Ye),Ye="",Qt[st]=(Qt[st]||0)+1,Qt[st]<=ba&&(Na+=rc),Tr.startsWith("_"))Ye+=De[0];else{const rd=yn.classNameAliases[Tr]||Tr;Kn(De[0],rd)}}else Ye+=De[0];Se=qe.keywordPatternRe.lastIndex,De=qe.keywordPatternRe.exec(kt)}Ye+=kt.substring(Se),cn.addText(Ye)}function zn(){if(kt==="")return;let Se=null;if(typeof qe.subLanguage=="string"){if(!he[qe.subLanguage]){cn.addText(kt);return}Se=Qr(qe.subLanguage,kt,!0,nd[qe.subLanguage]),nd[qe.subLanguage]=Se._top}else Se=va(kt,qe.subLanguage.length?qe.subLanguage:null);qe.relevance>0&&(Na+=Se.relevance),cn.__addSublanguage(Se._emitter,Se.language)}function Ct(){qe.subLanguage!=null?zn():qn(),kt=""}function Kn(Se,De){Se!==""&&(cn.startScope(De),cn.addText(Se),cn.endScope())}function Eo(Se,De){let Ye=1;const st=De.length-1;for(;Ye<=st;){if(!Se._emit[Ye]){Ye++;continue}const Wt=yn.classNameAliases[Se[Ye]]||Se[Ye],Tr=De[Ye];Wt?Kn(Tr,Wt):(kt=Tr,qn(),kt=""),Ye++}}function ka(Se,De){return Se.scope&&typeof Se.scope=="string"&&cn.openNode(yn.classNameAliases[Se.scope]||Se.scope),Se.beginScope&&(Se.beginScope._wrap?(Kn(kt,yn.classNameAliases[Se.beginScope._wrap]||Se.beginScope._wrap),kt=""):Se.beginScope._multi&&(Eo(Se.beginScope,De),kt="")),qe=Object.create(Se,{parent:{value:qe}}),qe}function yi(Se,De,Ye){let st=_(Se.endRe,Ye);if(st){if(Se["on:end"]){const Wt=new t(Se);Se["on:end"](De,Wt),Wt.isMatchIgnored&&(st=!1)}if(st){for(;Se.endsParent&&Se.parent;)Se=Se.parent;return Se}}if(Se.endsWithParent)return yi(Se.parent,De,Ye)}function Sa(Se){return qe.matcher.regexIndex===0?(kt+=Se[0],1):(Ca=!0,0)}function ko(Se){const De=Se[0],Ye=Se.rule,st=new t(Ye),Wt=[Ye.__beforeBegin,Ye["on:begin"]];for(const Tr of Wt)if(Tr&&(Tr(Se,st),st.isMatchIgnored))return Sa(De);return Ye.skip?kt+=De:(Ye.excludeBegin&&(kt+=De),Ct(),!Ye.returnBegin&&!Ye.excludeBegin&&(kt=De)),ka(Ye,Se),Ye.returnBegin?0:De.length}function Pn(Se){const De=Se[0],Ye=ze.substring(Se.index),st=yi(qe,Se,Ye);if(!st)return Ri;const Wt=qe;qe.endScope&&qe.endScope._wrap?(Ct(),Kn(De,qe.endScope._wrap)):qe.endScope&&qe.endScope._multi?(Ct(),Eo(qe.endScope,Se)):Wt.skip?kt+=De:(Wt.returnEnd||Wt.excludeEnd||(kt+=De),Ct(),Wt.excludeEnd&&(kt=De));do qe.scope&&cn.closeNode(),!qe.skip&&!qe.subLanguage&&(Na+=qe.relevance),qe=qe.parent;while(qe!==st.parent);return st.starts&&ka(st.starts,Se),Wt.returnEnd?0:De.length}function Es(){const Se=[];for(let De=qe;De!==yn;De=De.parent)De.scope&&Se.unshift(De.scope);Se.forEach(De=>cn.openNode(De))}let ei={};function _a(Se,De){const Ye=De&&De[0];if(kt+=Se,Ye==null)return Ct(),0;if(ei.type==="begin"&&De.type==="end"&&ei.index===De.index&&Ye===""){if(kt+=ze.slice(De.index,De.index+1),!Ot){const st=new Error(`0 width match regex (${Ee})`);throw st.languageName=Ee,st.badRule=ei.rule,st}return 1}if(ei=De,De.type==="begin")return ko(De);if(De.type==="illegal"&&!et){const st=new Error('Illegal lexeme "'+Ye+'" for mode "'+(qe.scope||"<unnamed>")+'"');throw st.mode=qe,st}else if(De.type==="end"){const st=Pn(De);if(st!==Ri)return st}if(De.type==="illegal"&&Ye==="")return kt+=`
580
- `,1;if(nc>1e5&&nc>De.index*3)throw new Error("potential infinite loop, way more iterations than matches");return kt+=Ye,Ye.length}const yn=Mn(Ee);if(!yn)throw bt(Et.replace("{}",Ee)),new Error('Unknown language: "'+Ee+'"');const ks=gn(yn);let So="",qe=mt||ks;const nd={},cn=new Ce.__emitter(Ce);Es();let kt="",Na=0,Pi=0,nc=0,Ca=!1;try{if(yn.__emitTokens)yn.__emitTokens(ze,cn);else{for(qe.matcher.considerAll();;){nc++,Ca?Ca=!1:qe.matcher.considerAll(),qe.matcher.lastIndex=Pi;const Se=qe.matcher.exec(ze);if(!Se)break;const De=ze.substring(Pi,Se.index),Ye=_a(De,Se);Pi=Se.index+Ye}_a(ze.substring(Pi))}return cn.finalize(),So=cn.toHTML(),{language:Ee,value:So,relevance:Na,illegal:!1,_emitter:cn,_top:qe}}catch(Se){if(Se.message&&Se.message.includes("Illegal"))return{language:Ee,value:Tn(ze),illegal:!0,relevance:0,_illegalBy:{message:Se.message,index:Pi,context:ze.slice(Pi-100,Pi+100),mode:Se.mode,resultSoFar:So},_emitter:cn};if(Ot)return{language:Ee,value:Tn(ze),illegal:!1,relevance:0,errorRaised:Se,_emitter:cn,_top:qe};throw Se}}function xa(Ee){const ze={value:Tn(Ee),illegal:!1,relevance:0,_top:Te,_emitter:new Ce.__emitter(Ce)};return ze._emitter.addText(Ee),ze}function va(Ee,ze){ze=ze||Ce.languages||Object.keys(he);const et=xa(Ee),mt=ze.filter(Mn).filter(Zr).map(Ct=>Qr(Ct,Ee,!1));mt.unshift(et);const Qt=mt.sort((Ct,Kn)=>{if(Ct.relevance!==Kn.relevance)return Kn.relevance-Ct.relevance;if(Ct.language&&Kn.language){if(Mn(Ct.language).supersetOf===Kn.language)return 1;if(Mn(Kn.language).supersetOf===Ct.language)return-1}return 0}),[_n,qn]=Qt,zn=_n;return zn.secondBest=qn,zn}function Ar(Ee,ze,et){const mt=ze&&_e[ze]||et;Ee.classList.add("hljs"),Ee.classList.add(`language-${mt}`)}function Yt(Ee){let ze=null;const et=Vt(Ee);if(Fe(et))return;if(zi("before:highlightElement",{el:Ee,language:et}),Ee.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",Ee);return}if(Ee.children.length>0&&(Ce.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(Ee)),Ce.throwUnescapedHTML))throw new jr("One of your code blocks includes unescaped HTML.",Ee.innerHTML);ze=Ee;const mt=ze.textContent,Qt=et?It(mt,{language:et,ignoreIllegals:!0}):va(mt);Ee.innerHTML=Qt.value,Ee.dataset.highlighted="yes",Ar(Ee,et,Qt.language),Ee.result={language:Qt.language,re:Qt.relevance,relevance:Qt.relevance},Qt.secondBest&&(Ee.secondBest={language:Qt.secondBest.language,relevance:Qt.secondBest.relevance}),zi("after:highlightElement",{el:Ee,result:Qt,text:mt})}function Sn(Ee){Ce=xo(Ce,Ee)}const Wr=()=>{Ea(),le("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function wa(){Ea(),le("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let vs=!1;function Ea(){function Ee(){Ea()}if(document.readyState==="loading"){vs||window.addEventListener("DOMContentLoaded",Ee,!1),vs=!0;return}document.querySelectorAll(Ce.cssSelector).forEach(Yt)}function vo(Ee,ze){let et=null;try{et=ze(J)}catch(mt){if(bt("Language definition for '{}' could not be registered.".replace("{}",Ee)),Ot)bt(mt);else throw mt;et=Te}et.name||(et.name=Ee),he[Ee]=et,et.rawDefinition=ze.bind(null,J),et.aliases&&Xr(et.aliases,{languageName:Ee})}function Ii(Ee){delete he[Ee];for(const ze of Object.keys(_e))_e[ze]===Ee&&delete _e[ze]}function ws(){return Object.keys(he)}function Mn(Ee){return Ee=(Ee||"").toLowerCase(),he[Ee]||he[_e[Ee]]}function Xr(Ee,{languageName:ze}){typeof Ee=="string"&&(Ee=[Ee]),Ee.forEach(et=>{_e[et.toLowerCase()]=ze})}function Zr(Ee){const ze=Mn(Ee);return ze&&!ze.disableAutodetect}function gi(Ee){Ee["before:highlightBlock"]&&!Ee["before:highlightElement"]&&(Ee["before:highlightElement"]=ze=>{Ee["before:highlightBlock"](Object.assign({block:ze.el},ze))}),Ee["after:highlightBlock"]&&!Ee["after:highlightElement"]&&(Ee["after:highlightElement"]=ze=>{Ee["after:highlightBlock"](Object.assign({block:ze.el},ze))})}function en(Ee){gi(Ee),Ke.push(Ee)}function wo(Ee){const ze=Ke.indexOf(Ee);ze!==-1&&Ke.splice(ze,1)}function zi(Ee,ze){const et=Ee;Ke.forEach(function(mt){mt[et]&&mt[et](ze)})}function Jr(Ee){return le("10.7.0","highlightBlock will be removed entirely in v12.0"),le("10.7.0","Please use highlightElement now."),Yt(Ee)}Object.assign(J,{highlight:It,highlightAuto:va,highlightAll:Ea,highlightElement:Yt,highlightBlock:Jr,configure:Sn,initHighlighting:Wr,initHighlightingOnLoad:wa,registerLanguage:vo,unregisterLanguage:Ii,listLanguages:ws,getLanguage:Mn,registerAliases:Xr,autoDetection:Zr,inherit:xo,addPlugin:en,removePlugin:wo}),J.debugMode=function(){Ot=!1},J.safeMode=function(){Ot=!0},J.versionString=xt,J.regex={concat:v,lookahead:y,either:k,optional:E,anyNumberOfTimes:b};for(const Ee in ue)typeof ue[Ee]=="object"&&e(ue[Ee]);return Object.assign(J,ue),J},In=Li({});return In.newInstance=()=>Li({}),Qg=In,In.HighlightJS=In,In.default=In,Qg}var I9=L9();const z9=zu(I9),lk={},P9="hljs-";function B9(e){const t=z9.newInstance();return e&&o(e),{highlight:n,highlightAuto:r,listLanguages:a,register:o,registerAlias:l,registered:u};function n(d,h,g){const m=g||lk,y=typeof m.prefix=="string"?m.prefix:P9;if(!t.getLanguage(d))throw new Error("Unknown language: `"+d+"` is not registered");t.configure({__emitter:U9,classPrefix:y});const b=t.highlight(h,{ignoreIllegals:!0,language:d});if(b.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:b.errorRaised});const E=b._emitter.root,v=E.data;return v.language=b.language,v.relevance=b.relevance,E}function r(d,h){const m=(h||lk).subset||a();let y=-1,b=0,E;for(;++y<m.length;){const v=m[y];if(!t.getLanguage(v))continue;const S=n(v,d,h);S.data&&S.data.relevance!==void 0&&S.data.relevance>b&&(b=S.data.relevance,E=S)}return E||{type:"root",children:[],data:{language:void 0,relevance:b}}}function a(){return t.listLanguages()}function o(d,h){if(typeof d=="string")t.registerLanguage(d,h);else{let g;for(g in d)Object.hasOwn(d,g)&&t.registerLanguage(g,d[g])}}function l(d,h){if(typeof d=="string")t.registerAliases(typeof h=="string"?h:[...h],{languageName:d});else{let g;for(g in d)if(Object.hasOwn(d,g)){const m=d[g];t.registerAliases(typeof m=="string"?m:[...m],{languageName:g})}}}function u(d){return!!t.getLanguage(d)}}class U9{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],a=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:a}):r.children.push(...a)}openNode(t){const n=this,r=t.split(".").map(function(l,u){return u?l+"_".repeat(u):n.options.classPrefix+l}),a=this.stack[this.stack.length-1],o={type:"element",tagName:"span",properties:{className:r},children:[]};a.children.push(o),this.stack.push(o)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const $9={};function xx(e){const t=e||$9,n=t.aliases,r=t.detect||!1,a=t.languages||R9,o=t.plainText,l=t.prefix,u=t.subset;let d="hljs";const h=B9(a);if(n&&h.registerAlias(n),l){const g=l.indexOf("-");d=g===-1?l:l.slice(0,g)}return function(g,m){Wh(g,"element",function(y,b,E){if(y.tagName!=="code"||!E||E.type!=="element"||E.tagName!=="pre")return;const v=F9(y);if(v===!1||!v&&!r||v&&o&&o.includes(v))return;Array.isArray(y.properties.className)||(y.properties.className=[]),y.properties.className.includes(d)||y.properties.className.unshift(d);const S=o$(y,{whitespace:"pre"});let k;try{k=v?h.highlight(v,S,{prefix:l}):h.highlightAuto(S,{prefix:l,subset:u})}catch(j){const _=j;if(v&&/Unknown language/.test(_.message)){m.message("Cannot highlight as `"+v+"`, it’s not registered",{ancestors:[E,y],cause:_,place:y.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw _}!v&&k.data&&k.data.language&&y.properties.className.push("language-"+k.data.language),k.children.length>0&&(y.children=k.children)})}}function F9(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let r;for(;++n<t.length;){const a=String(t[n]);if(a==="no-highlight"||a==="nohighlight")return!1;!r&&a.slice(0,5)==="lang-"&&(r=a.slice(5)),!r&&a.slice(0,9)==="language-"&&(r=a.slice(9))}return r}function H9({name:e,onClose:t}){const n=Ue(),{data:r,isLoading:a,isError:o,error:l}=tt({queryKey:["skill",e],queryFn:()=>RI(e)});return A.useEffect(()=>{const u=d=>{d.key==="Escape"&&t()};return window.addEventListener("keydown",u),()=>window.removeEventListener("keydown",u)},[t]),f.jsx("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-40 flex items-start justify-center p-6 bg-black/30 overflow-auto",children:f.jsxs("div",{className:"nb-card mt-8 w-full max-w-4xl",children:[f.jsxs("header",{className:"flex items-start justify-between gap-4 mb-4",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-3xl font-bold",children:e}),r&&f.jsxs("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:[r.category," · ",r.origin||"local"]})]}),f.jsx("button",{onClick:t,className:"nb-btn nb-btn-mint p-2","aria-label":n("skillDetail.close.aria"),type:"button",children:f.jsx(_r,{size:16,strokeWidth:3})})]}),a&&f.jsx("p",{children:n("skillDetail.loading")}),o&&f.jsx("p",{className:"text-[var(--color-crashed)]",children:n("skillDetail.error.load",{detail:l instanceof Error?l.message:String(l)})}),r&&f.jsxs("div",{className:"flex flex-col gap-4",children:[f.jsxs("div",{children:[f.jsx("h3",{className:"font-[family-name:var(--font-heading)] text-sm font-bold mb-2 uppercase tracking-wider",children:n("skillDetail.section.preview")}),f.jsx("div",{className:"prose-chat bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg p-4 max-h-80 overflow-auto text-sm",children:r.body?f.jsx(fx,{remarkPlugins:[gx],rehypePlugins:[xx],children:r.body}):f.jsx("p",{className:"text-[var(--color-text-muted)] italic",children:"(empty)"})})]}),r.references.length>0&&f.jsxs("div",{children:[f.jsx("h3",{className:"font-[family-name:var(--font-heading)] text-sm font-bold mb-2 uppercase tracking-wider",children:"References"}),f.jsx("ul",{className:"flex flex-col gap-2",children:r.references.map(u=>f.jsx(q9,{skillName:e,file:u.name,lines:u.lines},u.name))})]})]})]})})}function q9({skillName:e,file:t,lines:n}){const r=Ue(),[a,o]=A.useState(!1),{data:l,isLoading:u,isError:d,error:h}=tt({queryKey:["skill-ref",e,t],queryFn:()=>LI(e,t),enabled:a,staleTime:1/0});return f.jsxs("li",{className:"border-2 border-[var(--color-text)] rounded-lg overflow-hidden bg-[var(--color-bg-cream)]",children:[f.jsxs("button",{type:"button",onClick:()=>o(g=>!g),"aria-label":r("skillDetail.toggleSection.aria",{action:r(a?"skillDetail.collapse":"skillDetail.expand"),file:t}),"aria-expanded":a,className:"w-full flex items-center gap-2 px-3 py-2 text-sm font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-yellow)] transition-colors",children:[f.jsx(Gl,{size:12,strokeWidth:3,className:["transition-transform",a?"rotate-90":""].join(" ")}),f.jsx($u,{size:12,strokeWidth:2.5}),f.jsx("span",{className:"flex-1 text-left font-bold",children:t}),f.jsxs("span",{className:"text-xs text-[var(--color-text-subtle)]",children:[n," lines"]})]}),a&&f.jsxs("div",{className:"px-4 py-3 border-t-2 border-[var(--color-text)] bg-[var(--color-bg)] max-h-96 overflow-auto",children:[u&&f.jsx("p",{className:"text-xs text-[var(--color-text-muted)]",children:r("skillDetail.loading")}),d&&f.jsx("p",{className:"text-xs text-[var(--color-crashed)]",children:r("skillDetail.error.load",{detail:h instanceof Error?h.message:String(h)})}),l&&f.jsx("div",{className:"prose-chat text-sm",children:f.jsx(fx,{remarkPlugins:[gx],rehypePlugins:[xx],children:l.content})})]})]})}const K9=[{value:"all",labelKey:"skills.category.all"},{value:"language",labelKey:"skills.category.language"},{value:"end",labelKey:"skills.category.end"},{value:"persona",labelKey:"skills.category.persona"},{value:"workflow",labelKey:"skills.category.workflow"},{value:"other",labelKey:"skills.category.other"}],G9={language:"var(--color-accent-purple)",end:"var(--color-secondary)",persona:"var(--color-primary)",workflow:"var(--color-accent-mint)",other:"var(--color-bg-cream)"};function V9(){const e=Ue(),[t,n]=A.useState("all"),[r,a]=A.useState(""),[o,l]=A.useState(null),u=wn(),{data:d,isLoading:h}=tt({queryKey:["skills"],queryFn:()=>Vb()}),g=tt({queryKey:["projects"],queryFn:ma}),m=A.useMemo(()=>((d==null?void 0:d.data)??[]).filter(E=>!(t!=="all"&&E.category!==t||r&&!E.name.toLowerCase().includes(r.toLowerCase()))),[d,t,r]),y=A.useMemo(()=>{const b=(d==null?void 0:d.data)??[],E={all:b.length};for(const v of b)E[v.category]=(E[v.category]??0)+1;return E},[d]);return f.jsxs("div",{className:"flex flex-col gap-4 max-w-full",children:[f.jsxs("header",{className:"flex items-center justify-between flex-wrap gap-3",children:[f.jsxs("div",{children:[f.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-4xl font-bold",children:"Skills 🎯"}),f.jsx("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:h?e("common.loading"):e("skills.subtitleCount",{count:(d==null?void 0:d.data.length)??0})})]}),f.jsx("div",{className:"flex gap-3 items-center",children:f.jsxs("button",{className:"nb-btn nb-btn-mint",onClick:async()=>{await zI(),u.invalidateQueries({queryKey:["skills"]})},type:"button",children:[f.jsx(ms,{size:14,strokeWidth:2.5}),"Sync bundled"]})})]}),f.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[f.jsxs("div",{className:"relative flex-1 max-w-md",children:[f.jsx(sh,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--color-text-subtle)]"}),f.jsx("input",{className:"nb-input pl-9 w-full",placeholder:e("skills.search.placeholder"),value:r,onChange:b=>a(b.target.value),"aria-label":e("skills.search.aria")})]}),f.jsx("div",{className:"flex gap-1 p-1 bg-[var(--color-bg)] border-[2px] border-[var(--color-text)] rounded-full shadow-[2px_2px_0_var(--color-text)]",children:K9.map(b=>f.jsxs("button",{type:"button",onClick:()=>n(b.value),className:["px-3 py-1 rounded-full text-xs font-bold font-[family-name:var(--font-body)]",t===b.value?"bg-[var(--color-text)] text-[var(--color-bg)]":"text-[var(--color-text-muted)] hover:text-[var(--color-text)]"].join(" "),children:[e(b.labelKey)," ",y[b.value]]},b.value))})]}),f.jsx("div",{className:"grid gap-4 grid-cols-[repeat(auto-fill,minmax(280px,1fr))]",children:m.map(b=>{var E;return f.jsx(Y9,{skill:b,projectCount:((E=g.data)==null?void 0:E.data.length)??0,onOpen:()=>l(b.name)},b.name)})}),o&&f.jsx(H9,{name:o,onClose:()=>l(null)})]})}function Y9({skill:e,projectCount:t,onOpen:n}){const r=G9[e.category];return f.jsxs("article",{onClick:n,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),n())},tabIndex:0,role:"button","aria-label":`Open ${e.name}`,className:"nb-card nb-card-interactive flex flex-col gap-3",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("h3",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:e.name}),f.jsx("span",{className:"nb-badge text-[10px]",style:{background:r},children:e.category})]}),f.jsx("p",{className:"text-sm text-[var(--color-text-muted)] leading-5 line-clamp-3",children:e.description||"(no description)"}),f.jsxs("div",{className:"flex items-center justify-between text-xs font-[family-name:var(--font-mono)] pt-2 border-t-[1.5px] border-dashed border-[var(--color-border-light)]",children:[f.jsx("span",{className:"font-bold",children:e.linkedProjects.length>0?`● linked in ${e.linkedProjects.length}`:"○ not linked"}),f.jsxs("span",{className:"text-[var(--color-text-subtle)]",children:[t," projects"]})]})]})}function Q9(){var o;const e=Ue(),t=tt({queryKey:["system-info"],queryFn:L_}),n=tt({queryKey:["system-env"],queryFn:OL}),[r,a]=A.useState(!1);return f.jsxs("div",{className:"flex flex-col gap-6 w-full",children:[f.jsx("header",{children:f.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-4xl font-bold",children:e("system.h1")})}),f.jsx(W9,{current:(o=t.data)==null?void 0:o.version}),f.jsxs("section",{className:"nb-card",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold mb-3",children:e("system.runtime")}),t.data?f.jsxs("dl",{className:"grid grid-cols-1 sm:grid-cols-[160px_1fr] gap-y-2 text-sm",children:[f.jsx("dt",{className:"font-bold",children:"Node"}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:t.data.nodeVersion}),f.jsx("dt",{className:"font-bold",children:"Platform"}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:t.data.platform}),f.jsx("dt",{className:"font-bold",children:"PID"}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:t.data.pid??"—"}),f.jsx("dt",{className:"font-bold",children:"Uptime"}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:eF(t.data.uptimeMs)})]}):f.jsx("p",{className:"text-[var(--color-text-muted)]",children:e("common.loading")})]}),f.jsxs("section",{className:"nb-card",children:[f.jsxs("div",{className:"flex items-center justify-between mb-3",children:[f.jsxs("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:[e("system.env.title.prefix"),f.jsx("code",{className:"text-sm font-[family-name:var(--font-mono)] font-normal bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] px-2 py-0.5 rounded",children:"~/.coral/env"})]}),r?f.jsx("span",{className:"text-xs text-[var(--color-stuck)] font-bold",children:e("system.env.editing.label")}):f.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px",fontSize:12},onClick:()=>a(!0),type:"button","aria-label":e("system.env.edit.aria"),children:[f.jsx(Cb,{size:12,strokeWidth:2.5})," ",e("system.env.edit.button")]})]}),r?f.jsx(X9,{onClose:()=>{a(!1),n.refetch()}}):n.data&&n.data.exists?f.jsx("dl",{className:"grid grid-cols-1 sm:grid-cols-[220px_1fr] gap-y-1 text-sm font-[family-name:var(--font-mono)]",children:n.data.entries.map(l=>f.jsxs("div",{className:"contents",children:[f.jsxs("dt",{className:"font-bold flex items-center gap-2",children:[l.masked&&f.jsx("span",{className:"text-[var(--color-stuck)]",children:"🔒"}),l.key]}),f.jsx("dd",{className:"text-[var(--color-text-muted)] truncate",children:l.value})]},l.key))}):f.jsxs("p",{className:"text-[var(--color-text-muted)] text-sm",children:[e("system.env.empty.before"),f.jsx("code",{className:"bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] px-2 py-0.5 rounded font-[family-name:var(--font-mono)]",children:"sps setup"}),e("system.env.empty.after")]})]}),f.jsx(Z9,{})]})}function W9({current:e}){var v;const t=Ue(),{confirm:n,alert:r}=Zn(),[a,o]=A.useState(!1),[l,u]=A.useState(null),d=tt({queryKey:["latest-version"],queryFn:PL,enabled:!1}),[h,g]=A.useState(null),[m,y]=A.useState("npm i -g @coralai/sps-cli@latest"),b=async()=>{var k;if(await n({title:t("system.upgrade.confirm.title"),body:t("system.upgrade.confirm.body",{current:e??"?",latest:((k=d.data)==null?void 0:k.latest)??"?"}),confirm:t("system.upgrade.confirm.button")})){o(!0),u(null),g(null);try{const j=await BL();if(u(j.output),g(j.installedVersion),y(j.command),j.ok)r({title:t("system.upgrade.success.title"),body:t("system.upgrade.success.body",{version:j.installedVersion??"?"})});else{const _=j.installedVersion&&j.installedVersion===e?t("system.upgrade.notEffective.same",{version:j.installedVersion}):t("system.upgrade.notEffective.notInstalled");r({title:t("system.upgrade.notEffective.title"),body:_})}}catch(j){u(j.message),r({title:t("system.upgrade.error.title"),body:j.message})}finally{o(!1)}}},E=async()=>{const S=d.data&&!d.data.upToDate?`npm i -g @coralai/sps-cli@${d.data.latest}`:m;try{await navigator.clipboard.writeText(S),r({title:t("system.upgrade.copy.success.title"),body:t("system.upgrade.copy.success.body",{cmd:S})})}catch{r({title:t("system.upgrade.copy.fail.title"),body:t("system.upgrade.copy.fail.body",{cmd:S})})}};return f.jsxs("section",{className:"nb-card",children:[f.jsxs("div",{className:"flex items-center justify-between mb-3",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:t("system.upgrade.title")}),f.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px",fontSize:12},onClick:()=>d.refetch(),disabled:d.isFetching||!e,type:"button","aria-label":t("system.upgrade.checkLatest.aria"),children:[d.isFetching?f.jsx(ft,{size:12,strokeWidth:3,className:"animate-spin"}):f.jsx(ms,{size:12,strokeWidth:2.5}),t("system.upgrade.checkUpdate")]})]}),f.jsxs("dl",{className:"grid grid-cols-1 sm:grid-cols-[160px_1fr] gap-y-2 text-sm",children:[f.jsx("dt",{className:"font-bold",children:t("system.upgrade.label.current")}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:e??"—"}),d.data&&f.jsxs(f.Fragment,{children:[f.jsx("dt",{className:"font-bold",children:t("system.upgrade.label.latest")}),f.jsxs("dd",{className:"font-[family-name:var(--font-mono)] flex items-center gap-2 flex-wrap",children:[d.data.latest,d.data.upToDate?f.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:t("system.upgrade.latestPill")}):f.jsxs(f.Fragment,{children:[f.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"3px 10px",fontSize:11},onClick:b,disabled:a,type:"button","aria-label":t("system.upgrade.button.upgradeAria"),children:[a?f.jsx(ft,{size:11,strokeWidth:3,className:"animate-spin"}):f.jsx(v_,{size:11,strokeWidth:2.5}),t("system.upgrade.button.upgrade")]}),f.jsxs("button",{className:"nb-btn",style:{padding:"3px 10px",fontSize:11},onClick:E,type:"button","aria-label":t("system.upgrade.button.copyAria"),title:t("system.upgrade.button.copyTitle"),children:[f.jsx(oR,{size:11,strokeWidth:2.5})," ",t("system.upgrade.button.copy")]})]})]})]}),h&&f.jsxs(f.Fragment,{children:[f.jsx("dt",{className:"font-bold",children:t("system.upgrade.label.installed")}),f.jsxs("dd",{className:"font-[family-name:var(--font-mono)] flex items-center gap-2",children:[h,h===((v=d.data)==null?void 0:v.latest)?f.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:t("system.upgrade.installed.ok")}):h===e?f.jsx("span",{className:"nb-status",style:{background:"var(--color-stuck-bg)",color:"var(--color-stuck)"},children:t("system.upgrade.installed.fail")}):null]})]}),d.isError&&f.jsxs(f.Fragment,{children:[f.jsx("dt",{className:"font-bold",children:t("system.upgrade.label.check")}),f.jsx("dd",{className:"text-[var(--color-crashed)] text-xs",children:d.error instanceof Error?d.error.message:String(d.error)})]})]}),l&&f.jsx("pre",{className:"mt-3 text-xs font-[family-name:var(--font-mono)] bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg p-3 max-h-40 overflow-auto whitespace-pre-wrap",children:l})]})}function X9({onClose:e}){const t=Ue(),n=wn(),{alert:r}=Zn(),a=tt({queryKey:["system-env-raw"],queryFn:DL}),[o,l]=A.useState(null),[u,d]=A.useState(null);A.useEffect(()=>{a.data&&o===null&&(l(a.data.content),d(a.data.etag))},[a.data,o]);const h=o!==null&&a.data&&o!==a.data.content,g=Xt({mutationFn:()=>{if(o===null)throw new Error("no draft");return RL(o,u??"")},onSuccess:()=>{n.invalidateQueries({queryKey:["system-env"]}),n.invalidateQueries({queryKey:["system-env-raw"]}),e()},onError:m=>{const y=m.status;r({title:t(y===409?"system.env.error.conflict.title":"system.env.error.save.title"),body:y===409?t("system.env.error.conflict.body"):m instanceof Error?m.message:String(m)})}});return a.isLoading?f.jsx("p",{className:"text-[var(--color-text-muted)]",children:t("common.loading")}):f.jsxs("div",{children:[f.jsx("p",{className:"text-xs text-[var(--color-stuck)] font-bold mb-2",children:t("system.env.warning")}),f.jsx("textarea",{className:"nb-input w-full font-[family-name:var(--font-mono)] text-xs",style:{minHeight:320,resize:"vertical"},value:o??"",onChange:m=>l(m.target.value),spellCheck:!1,"aria-label":t("system.env.aria")}),f.jsxs("div",{className:"flex items-center justify-between mt-3",children:[f.jsxs("span",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:[u?`etag: ${u}`:"",h?t("system.env.dirtyMark"):""]}),f.jsxs("div",{className:"flex gap-2",children:[f.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px"},onClick:e,disabled:g.isPending,type:"button",children:[f.jsx(_r,{size:12,strokeWidth:3})," ",t("system.env.cancel")]}),f.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"6px 12px"},onClick:()=>g.mutate(),disabled:!h||g.isPending,type:"button","aria-label":t("system.env.save.aria"),children:[g.isPending?f.jsx(ft,{size:12,strokeWidth:3,className:"animate-spin"}):f.jsx(ho,{size:12,strokeWidth:3}),t("system.env.save")]})]})]})]})}function Z9(){var y;const e=Ue(),{alert:t}=Zn(),n=tt({queryKey:["projects"],queryFn:ma}),[r,a]=A.useState({}),[o,l]=A.useState({}),[u,d]=A.useState({}),h=(((y=n.data)==null?void 0:y.data)??[]).map(b=>({project:b.name})),g=async(b,E)=>{l(v=>({...v,[b]:E?"fix":"check"}));try{const v=await UL(b,E);a(S=>({...S,[b]:v})),d(S=>({...S,[b]:!0}))}catch(v){t({title:e(E?"system.diagnostics.error.fix":"system.diagnostics.error.check"),body:v instanceof Error?v.message:String(v)})}finally{l(v=>({...v,[b]:null}))}},m=async()=>{for(const b of h)await g(b.project,!1)};return f.jsxs("section",{className:"nb-card",children:[f.jsxs("div",{className:"flex items-center justify-between mb-3",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:e("system.diagnostics.title")}),f.jsxs("button",{className:"nb-btn nb-btn-mint",style:{padding:"6px 12px",fontSize:12},onClick:()=>{m()},disabled:h.length===0||Object.values(o).some(Boolean),type:"button",children:[f.jsx(ms,{size:12,strokeWidth:2.5}),e("system.diagnostics.checkAll")]})]}),h.length===0?f.jsx("p",{className:"text-[var(--color-text-muted)] text-sm",children:e("system.diagnostics.empty")}):f.jsx("ul",{className:"flex flex-col gap-2",children:h.map(b=>{const E=r[b.project],v=o[b.project],S=E?E.checks.filter(N=>N.status==="fail").length:0,k=E?E.checks.filter(N=>N.status==="warn").length:0,j=u[b.project]??!1,_=E!=null;return f.jsxs("li",{className:"bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg",children:[f.jsxs("div",{className:"flex items-center gap-3 px-3 py-2",children:[f.jsxs("button",{type:"button",onClick:()=>d(N=>({...N,[b.project]:!j})),disabled:!_,className:"flex items-center gap-2 flex-1 text-left min-w-0","aria-label":e(j?"system.diagnostics.collapseAria":"system.diagnostics.expandAria"),children:[_&&E.ok?f.jsx(ih,{size:16,className:"text-[var(--color-running)] shrink-0",strokeWidth:2.5}):_?f.jsx(mu,{size:16,className:"text-[var(--color-stuck)] shrink-0",strokeWidth:2.5}):f.jsx(ih,{size:16,className:"text-[var(--color-text-subtle)] shrink-0",strokeWidth:2.5}),_&&(j?f.jsx(Kl,{size:12}):f.jsx(Gl,{size:12})),f.jsx("span",{className:"font-bold font-[family-name:var(--font-mono)]",children:b.project}),_?E.ok?f.jsx("span",{className:"text-xs text-[var(--color-running)] font-semibold",children:"OK"}):f.jsxs("span",{className:"text-xs text-[var(--color-stuck)] font-semibold",children:[S," fail · ",k," warn"]}):f.jsx("span",{className:"text-xs text-[var(--color-text-muted)]",children:e("system.diagnostics.never")})]}),f.jsxs("button",{className:"nb-btn",style:{padding:"4px 10px",fontSize:11},onClick:()=>{g(b.project,!1)},disabled:!!v,type:"button","aria-label":e("system.diagnostics.checkAria"),children:[v==="check"?f.jsx(ft,{size:11,strokeWidth:3,className:"animate-spin"}):f.jsx(ms,{size:11,strokeWidth:2.5}),e("system.diagnostics.check")]}),f.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"4px 10px",fontSize:11},onClick:()=>{g(b.project,!0)},disabled:!!v||_&&E.ok,type:"button","aria-label":e("system.diagnostics.fixAria"),title:_&&E.ok?e("system.diagnostics.noFixesNeeded"):e("system.diagnostics.fix.tip"),children:[v==="fix"?f.jsx(ft,{size:11,strokeWidth:3,className:"animate-spin"}):f.jsx(T_,{size:11,strokeWidth:2.5}),e("system.diagnostics.fix")]})]}),j&&_&&f.jsxs("div",{className:"border-t-2 border-dashed border-[var(--color-text)] px-3 py-2",children:[f.jsx("ul",{className:"flex flex-col gap-1 text-xs font-[family-name:var(--font-mono)]",children:E.checks.map((N,O)=>f.jsx(J9,{check:N},`${N.name}-${O}`))}),E.fixes.length>0&&f.jsxs("div",{className:"mt-3 bg-[var(--color-running-bg)] border-2 border-[var(--color-running)] rounded p-2",children:[f.jsx("div",{className:"text-xs font-bold text-[var(--color-running)] mb-1",children:e("system.diagnostics.fixed")}),f.jsx("ul",{className:"text-xs list-disc pl-4",children:E.fixes.map((N,O)=>f.jsx("li",{children:N},O))})]})]})]},b.project)})})]})}function J9({check:e}){const t=e.status==="pass"?f.jsx(ih,{size:12,className:"text-[var(--color-running)]",strokeWidth:2.5}):e.status==="fail"?f.jsx(mu,{size:12,className:"text-[var(--color-crashed)]",strokeWidth:2.5}):e.status==="warn"?f.jsx(mu,{size:12,className:"text-[var(--color-stuck)]",strokeWidth:2.5}):f.jsx("span",{className:"w-3 h-3 rounded-full bg-[var(--color-text-subtle)] inline-block"});return f.jsxs("li",{className:"flex items-start gap-2",children:[f.jsx("span",{className:"pt-0.5 shrink-0",children:t}),f.jsx("span",{className:"font-bold w-32 shrink-0",children:e.name}),f.jsx("span",{className:"text-[var(--color-text-muted)] break-words",children:e.message})]})}function eF(e){const t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),a=t%60;return n>0?`${n}h ${r}m ${a}s`:r>0?`${r}m ${a}s`:`${a}s`}function tF(){return Nt("/api/chat/sessions")}function nF(e){return Nt(`/api/chat/sessions/${e}`)}async function Wg(e={}){const t=await fetch("/api/chat/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`${t.status}: ${await t.text()}`);return await t.json()}async function rF(e){const t=await fetch(`/api/chat/sessions/${e}`,{method:"DELETE"});if(!t.ok)throw new Error(`${t.status}`)}async function iF(e,t,n){const r=await fetch(`/api/chat/sessions/${e}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t,attachments:n})});if(!r.ok)throw new Error(`${r.status}: ${await r.text()}`);return await r.json()}async function aF(e){const t=await fetch(`/api/chat/sessions/${e}/interrupt`,{method:"POST"});if(!t.ok&&t.status!==204)throw new Error(`${t.status}: ${await t.text()}`)}function sF(e,t){const n=t?`?since=${encodeURIComponent(t)}`:"";return Nt(`/api/chat/sessions/${e}/messages${n}`)}function ck(){var G,D,L,V,R,se,ge,ye,xe;const e=Ue(),{sessionId:t}=o_(),n=ys(),r=wn(),{confirm:a,alert:o}=Zn(),l=tt({queryKey:["chat-sessions"],queryFn:tF}),u=tt({queryKey:["chat-session",t],queryFn:()=>nF(t??""),enabled:!!t}),[d,h]=A.useState(null),[g,m]=A.useState(""),[y,b]=A.useState(!1),E=A.useRef(null),[v,S]=A.useState(!1),[k,j]=A.useState([]),[_,N]=A.useState(!1),[O,T]=A.useState(!1),[M,I]=A.useState(!1),[F,$]=A.useState(null),[U,K]=A.useState(!1);A.useEffect(()=>{if(!t)return;const H=new EventSource(`/stream/chat/${encodeURIComponent(t)}`);let ne=!0;return H.addEventListener("open",()=>{if(ne){ne=!1;return}const ue=r.getQueryData(["chat-session",t]),ce=ue!=null&&ue.messages.length?ue.messages[ue.messages.length-1].ts:void 0;sF(t,ce).then(de=>{de.data.length!==0&&r.setQueryData(["chat-session",t],be=>{if(!be)return be;const je=new Set(be.messages.map(we=>we.id)),Me=de.data.filter(we=>!je.has(we.id));return Me.length===0?be:{...be,messages:[...be.messages,...Me],lastMessageAt:Me[Me.length-1].ts,messageCount:be.messageCount+Me.length}})}).catch(()=>{})}),H.addEventListener("chat.message",ue=>{try{const ce=JSON.parse(ue.data);r.setQueryData(["chat-session",t],de=>{if(!de||de.messages.some(Me=>Me.id===ce.message.id))return de;const je=de.messages.findIndex(Me=>Me.role==="user"&&Me.id.startsWith("optim-")&&Me.content===ce.message.content);if(je>=0){const Me=[...de.messages];return Me[je]=ce.message,{...de,messages:Me}}return{...de,messages:[...de.messages,ce.message]}})}catch{}}),H.addEventListener("chat.message.pending",ue=>{try{const ce=JSON.parse(ue.data);h({id:ce.assistantId,blocks:[],done:!1,finalMessage:null})}catch{}}),H.addEventListener("chat.message.chunk.text",ue=>{try{const ce=JSON.parse(ue.data);h(de=>{if(!de||de.id!==ce.assistantId)return de;const be=[...de.blocks],je=be[be.length-1];return je&&je.type==="text"?be[be.length-1]={...je,target:je.target+ce.text}:be.push({type:"text",target:ce.text,displayed:""}),{...de,blocks:be}})}catch{}}),H.addEventListener("chat.message.chunk.tool_use",ue=>{try{const ce=JSON.parse(ue.data);h(de=>!de||de.id!==ce.assistantId?de:{...de,blocks:[...de.blocks,{type:"tool_use",id:ce.id,title:ce.title,kind:ce.kind,status:ce.status,input:ce.input,locations:ce.locations}]})}catch{}}),H.addEventListener("chat.message.chunk.tool_update",ue=>{try{const ce=JSON.parse(ue.data);h(de=>!de||de.id!==ce.assistantId?de:{...de,blocks:de.blocks.map(be=>be.type==="tool_use"&&be.id===ce.id?{...be,status:ce.status,input:be.input??ce.input,locations:be.locations??ce.locations}:be)})}catch{}}),H.addEventListener("chat.message.complete",ue=>{try{const ce=JSON.parse(ue.data);h(de=>de&&de.id===ce.assistantId?{...de,done:!0,finalMessage:ce.message}:de)}catch{}}),()=>H.close()},[t,r]),A.useEffect(()=>{if(!d)return;const H=d.blocks.reduce((ue,ce)=>ce.type==="text"?ue+(ce.target.length-ce.displayed.length):ue,0);if(H<=0){if(d.done&&d.finalMessage){const ue=d.finalMessage;r.setQueryData(["chat-session",t],ce=>!ce||ce.messages.some(de=>de.id===ue.id)?ce:{...ce,messages:[...ce.messages,ue],lastMessageAt:ue.ts,messageCount:ce.messageCount+1}),r.invalidateQueries({queryKey:["chat-sessions"]}),r.invalidateQueries({queryKey:["chat-session",t]}),h(null),b(!1)}return}const ne=setTimeout(()=>{h(ue=>{if(!ue)return ue;let ce=Math.max(1,Math.ceil(H/40));const de=ue.blocks.map(be=>{if(be.type!=="text"||ce<=0)return be;const je=be.target.length-be.displayed.length;if(je<=0)return be;const Me=Math.min(je,ce);return ce-=Me,{...be,displayed:be.target.slice(0,be.displayed.length+Me)}});return{...ue,blocks:de}})},25);return()=>clearTimeout(ne)},[d,r,t]),A.useEffect(()=>{const H=E.current;H&&(H.scrollTop=H.scrollHeight)},[u.data,d]);const Q=A.useCallback(async(H={})=>{var ne,ue;try{const ce=await Wg({cwd:((ne=H.cwd)==null?void 0:ne.trim())||void 0,title:((ue=H.title)==null?void 0:ue.trim())||void 0,agentKind:H.agentKind});r.invalidateQueries({queryKey:["chat-sessions"]}),n(`/chat/${ce.id}`),S(!1)}catch(ce){o({title:e("chat.error.create.title"),body:ce instanceof Error?ce.message:String(ce)})}},[r,n,o,e]),B=A.useCallback(async()=>{const H=g.trim();if(!H&&k.length===0||y)return;let ne=t;if(!ne){const de=await Wg();r.invalidateQueries({queryKey:["chat-sessions"]}),ne=de.id,n(`/chat/${ne}`,{replace:!0})}const ue=k.map(de=>de.path),ce={id:`optim-${Date.now()}`,role:"user",content:H||e("chat.placeholder.attachment"),ts:new Date().toISOString(),status:"complete",attachments:ue.length>0?ue:void 0};r.setQueryData(["chat-session",ne],de=>de?{...de,messages:[...de.messages,ce],lastMessageAt:ce.ts,messageCount:de.messageCount+1}:{id:ne,createdAt:ce.ts,lastMessageAt:ce.ts,title:H.slice(0,60)||e("chat.placeholder.attachmentTitle"),project:null,messageCount:1,messages:[ce]}),m(""),j([]),b(!0);try{await iF(ne,H||e("chat.placeholder.viewAttachment"),ue.length>0?ue:void 0)}catch(de){b(!1),console.error("sendMessage failed",de),o({title:e("chat.error.send.title"),body:de instanceof Error?de.message:String(de)})}},[g,k,y,t,r,n,o,e]),q=A.useCallback(async H=>{if(H.size>z_){o({title:e("chat.error.fileTooBig.title"),body:e("chat.error.fileTooBig.body",{size:(H.size/1024/1024).toFixed(2),name:H.name})});return}let ne=t;if(!ne){const ue=await Wg();r.invalidateQueries({queryKey:["chat-sessions"]}),ne=ue.id,n(`/chat/${ne}`,{replace:!0})}N(!0);try{const ue=await d3(ne,H);j(ce=>[...ce,{path:ue.path,name:ue.name}])}catch(ue){o({title:e("chat.error.uploadAttachment.title"),body:ue instanceof Error?ue.message:String(ue)})}finally{N(!1)}},[t,r,n,o,e]),z=A.useCallback(H=>{j(ne=>ne.filter(ue=>ue.path!==H))},[]),Y=A.useCallback(async(H,ne)=>{await a({title:e("chat.delete.confirm.title"),body:e(ne==="cli"?"chat.delete.confirm.body.cli":"chat.delete.confirm.body.console"),confirm:e("chat.delete.confirm.button"),danger:!0})&&(await rF(H),r.invalidateQueries({queryKey:["chat-sessions"]}),t===H&&n("/chat"))},[r,t,n,a,e]),W=A.useCallback(async()=>{if(t)try{await aF(t)}catch(H){o({title:e("chat.error.interrupt.title"),body:H instanceof Error?H.message:String(H)})}},[t,o,e]);return f.jsxs("div",{className:"grid grid-cols-[260px_1fr] gap-4 h-[calc(100vh-140px)]",children:[f.jsxs("aside",{className:"nb-card p-3 overflow-auto flex flex-col gap-2",children:[f.jsxs("button",{className:"nb-btn nb-btn-primary w-full justify-center",onClick:()=>S(!0),type:"button",children:[f.jsx(Vr,{size:14,strokeWidth:3}),e("chat.list.new")]}),f.jsx("div",{className:"mt-2 text-xs font-[family-name:var(--font-heading)] uppercase tracking-wider text-[var(--color-text-muted)] px-2",children:e("chat.list.heading",{count:((G=l.data)==null?void 0:G.data.length)??0})}),f.jsx("div",{className:"flex flex-col gap-1.5 mt-1",children:(()=>{var Me;const H=((Me=l.data)==null?void 0:Me.data)??[],ne=Date.now(),ue=10080*60*1e3,ce=we=>new Date(we.lastMessageAt??we.createdAt).getTime(),de=H.filter(we=>ne-ce(we)<=ue),be=H.filter(we=>ne-ce(we)>ue),je=we=>f.jsxs("div",{className:["group flex items-start gap-2 p-2 rounded-lg border-2 border-transparent",t===we.id?"bg-[var(--color-accent-mint)] border-[var(--color-text)] shadow-[2px_2px_0_var(--color-text)]":"hover:bg-[var(--color-bg-cream)] hover:border-[var(--color-text)]"].join(" "),children:[f.jsxs("button",{type:"button","aria-label":e("chat.list.openAria",{title:we.title,cwd:we.cwd?e("chat.list.cwdSuffix",{cwd:we.cwd}):""}),onClick:()=>n(`/chat/${we.id}`),className:"flex items-start gap-2 flex-1 min-w-0 text-left",children:[f.jsx(V1,{size:14,strokeWidth:2.5,className:"mt-0.5 flex-shrink-0"}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[f.jsx("p",{className:"text-sm font-semibold truncate flex-1",children:we.title}),we.source==="cli"&&f.jsx("span",{className:"flex-shrink-0 px-1.5 py-0 rounded-md bg-[var(--color-accent-purple)] border-2 border-[var(--color-text)] text-[9px] font-[family-name:var(--font-mono)] uppercase tracking-wider leading-tight",title:e("chat.cliBadge.tooltip"),children:e("chat.cliBadge")})]}),f.jsx("p",{className:"text-[10px] text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] truncate",children:e("chat.list.msgs",{count:we.messageCount,time:hC(we.lastMessageAt??we.createdAt,e)})}),we.cwd&&f.jsxs("p",{className:"text-[10px] text-[var(--color-text-subtle)] font-[family-name:var(--font-mono)] truncate flex items-center gap-1",title:we.cwd,children:[f.jsx(yu,{size:9,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate",dir:"rtl",children:we.cwd})]})]})]}),f.jsx("button",{type:"button","aria-label":we.source==="cli"?e("chat.list.deleteCli.aria"):e("chat.list.delete.aria"),className:"opacity-0 group-hover:opacity-100 p-1 hover:text-[var(--color-crashed)]",onClick:ct=>{ct.stopPropagation(),Y(we.id,we.source)},children:f.jsx(po,{size:12})})]},we.id);return f.jsxs(f.Fragment,{children:[de.map(je),be.length>0&&f.jsxs(f.Fragment,{children:[f.jsxs("button",{type:"button",onClick:()=>K(we=>!we),"aria-expanded":U,className:"flex items-center gap-1 px-2 py-1 mt-1 rounded-lg text-xs font-semibold text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-bg-cream)] focus-visible:outline focus-visible:outline-2",children:[U?f.jsx(Kl,{size:12,strokeWidth:2.5}):f.jsx(Gl,{size:12,strokeWidth:2.5}),e("chat.list.olderToggle",{count:be.length})]}),U&&be.map(je)]}),H.length===0&&f.jsx("p",{className:"text-xs text-[var(--color-text-subtle)] italic text-center py-4",children:e("chat.list.empty")})]})})()})]}),f.jsx("div",{className:"nb-card p-0 flex flex-col overflow-hidden",children:t?f.jsxs(f.Fragment,{children:[f.jsxs("header",{className:"px-4 py-3 border-b-2 border-[var(--color-text)] bg-[var(--color-bg-cream)]",children:[f.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:((D=u.data)==null?void 0:D.title)??e("common.loading")}),((L=u.data)==null?void 0:L.model)&&f.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-md bg-[var(--color-accent-yellow)] border-2 border-[var(--color-text)] text-[10px] font-[family-name:var(--font-mono)] font-bold uppercase tracking-wider",title:e("chat.detail.model.tooltip"),children:[f.jsx(ah,{size:11,strokeWidth:2.5})," ",u.data.model]})]}),f.jsx("p",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:t}),((V=u.data)==null?void 0:V.claudeSessionId)&&f.jsxs("p",{className:"text-xs text-[var(--color-text-subtle)] font-[family-name:var(--font-mono)] truncate",title:e("chat.detail.claudeSession.tooltip"),children:["claude: ",u.data.claudeSessionId]}),((R=u.data)==null?void 0:R.cwd)&&f.jsxs("p",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] flex items-center gap-1 mt-1",title:u.data.cwd,children:[f.jsx(yu,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate",children:u.data.cwd})]})]}),f.jsxs("div",{ref:E,className:"flex-1 overflow-auto p-4 flex flex-col gap-4",children:[(((se=u.data)==null?void 0:se.messages)??[]).map(H=>f.jsx(cF,{msg:H,sessionId:t??null,onPreviewAttachment:ne=>$(ne)},H.id)),d&&f.jsx(dF,{pending:d}),!u.isLoading&&(((ge=u.data)==null?void 0:ge.messages)??[]).length===0&&!d&&!y&&f.jsx("p",{className:"text-center text-[var(--color-text-subtle)] italic mt-12",children:e("chat.session.empty")})]}),((ye=u.data)==null?void 0:ye.source)==="cli"?f.jsxs("div",{className:"border-t-2 border-[var(--color-text)] p-4 bg-[var(--color-accent-purple)]",children:[f.jsxs("p",{className:"text-sm font-[family-name:var(--font-mono)] text-[var(--color-text-muted)] text-center",children:[f.jsx("strong",{children:e("chat.cli.banner.bold")})," — ",e("chat.cli.banner")]}),f.jsxs("pre",{className:"mt-2 px-3 py-2 bg-[var(--color-bg)] border-2 border-[var(--color-text)] rounded-md text-xs font-[family-name:var(--font-mono)] overflow-x-auto",children:["sps agent --chat --name ",(t??"").replace(/^session-/,"")]})]}):f.jsxs("div",{className:["border-t-2 border-[var(--color-text)] p-3 bg-[var(--color-bg-cream)] transition-colors",M?"bg-[var(--color-accent-mint)]":""].join(" "),onDragOver:H=>{H.dataTransfer.types.includes("Files")&&(H.preventDefault(),H.dataTransfer.dropEffect="copy",M||I(!0))},onDragLeave:()=>I(!1),onDrop:H=>{if(!H.dataTransfer.types.includes("Files"))return;H.preventDefault(),I(!1);const ne=Array.from(H.dataTransfer.files??[]);for(const ue of ne)q(ue)},children:[(k.length>0||_)&&f.jsxs("div",{className:"flex flex-wrap gap-2 mb-2",children:[k.map(H=>f.jsxs("button",{type:"button",className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-[var(--color-bg)] border-2 border-[var(--color-text)] text-xs font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-mint)] group",onClick:()=>$(H.path),title:e("chat.attachment.previewTooltip",{name:H.name,path:H.path}),children:[yh(H.path)?f.jsx(AR,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}):f.jsx($u,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate max-w-[180px]",children:H.name}),f.jsx("span",{role:"button","aria-label":e("chat.input.removeAttachment",{name:H.name}),className:"ml-1 hover:text-[var(--color-crashed)] cursor-pointer",onClick:ne=>{ne.stopPropagation(),z(H.path)},children:f.jsx(_r,{size:11,strokeWidth:3})})]},H.path)),_&&f.jsxs("span",{className:"flex items-center gap-1.5 px-2 py-1 text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:[f.jsx(ft,{size:11,strokeWidth:2.5,className:"animate-spin"}),e("chat.input.uploading")]})]}),f.jsxs("div",{className:"flex gap-2 items-end",children:[f.jsx("button",{type:"button",className:"nb-btn flex-shrink-0",onClick:()=>T(!0),disabled:y,"aria-label":e("chat.input.attach.aria"),title:e("chat.input.attach.title"),children:f.jsx(BR,{size:14,strokeWidth:2.5})}),f.jsx("textarea",{className:"nb-input flex-1 resize-none",placeholder:e(M?"chat.input.dragOver":"chat.input.placeholder"),rows:2,value:g,onChange:H=>m(H.target.value),onKeyDown:H=>{H.key==="Enter"&&!H.shiftKey&&!H.nativeEvent.isComposing&&(H.preventDefault(),B())},onPaste:H=>{const ue=Array.from(H.clipboardData.items??[]).filter(ce=>ce.kind==="file"&&ce.type.startsWith("image/"));if(ue.length!==0){H.preventDefault();for(const ce of ue){const de=ce.getAsFile();de&&q(de)}}},"aria-label":e("chat.input.aria")}),d?f.jsxs("button",{className:"nb-btn nb-btn-danger",onClick:W,type:"button","aria-label":e("chat.input.interrupt.aria"),children:[f.jsx(jb,{size:14,strokeWidth:3}),e("chat.input.interrupt")]}):f.jsxs("button",{className:"nb-btn nb-btn-primary",onClick:B,disabled:!g.trim()&&k.length===0||y,type:"button","aria-label":e("chat.input.send.aria"),children:[y?f.jsx(ft,{size:14,strokeWidth:3,className:"animate-spin"}):f.jsx(iL,{size:14,strokeWidth:3}),e("chat.input.send")]})]})]})]}):f.jsx("div",{className:"flex-1 flex items-center justify-center p-8",children:f.jsxs("div",{className:"text-center max-w-md",children:[f.jsx("div",{className:"w-20 h-20 rounded-2xl bg-[var(--color-accent-mint)] border-[3px] border-[var(--color-text)] shadow-[3px_3px_0_var(--color-text)] flex items-center justify-center mx-auto mb-4",children:f.jsx(V1,{size:32,strokeWidth:2.5})}),f.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-2xl font-bold mb-2",children:e("chat.empty.title")}),f.jsx("p",{className:"text-sm text-[var(--color-text-muted)] mb-4",children:e("chat.empty.hint")}),f.jsx("p",{className:"text-xs text-[var(--color-text-subtle)] italic",children:e("chat.empty.shortcuts")})]})})}),v&&f.jsx(lF,{onCancel:()=>S(!1),onCreate:H=>Q(H)}),O&&f.jsx(Mb,{mode:"file",title:e("chat.filePicker.title"),initialPath:((xe=u.data)==null?void 0:xe.cwd)??void 0,onCancel:()=>T(!1),onSelect:H=>{j(ne=>{if(ne.some(ce=>ce.path===H))return ne;const ue=H.split(/[\\/]/).pop()||H;return[...ne,{path:H,name:ue}]}),T(!1)}}),F&&t&&f.jsx(oF,{sessionId:t,path:F,onClose:()=>$(null)})]})}function yh(e){return/\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function uk(e){return/\.pdf$/i.test(e)}function Xg(e){return/\.(txt|md|log|json|yaml|yml|csv|html|xml|tsx?|jsx?|css|sh|ya?ml|conf|toml|ini|env|gitignore|sql|py|rb|go|rs|java|kt|swift|c|cc|cpp|h|hpp)$/i.test(e)}function oF({sessionId:e,path:t,onClose:n}){const r=Ue(),[a,o]=A.useState(null),[l,u]=A.useState(null);A.useEffect(()=>{const g=m=>{m.key==="Escape"&&(m.preventDefault(),n())};return window.addEventListener("keydown",g),()=>window.removeEventListener("keydown",g)},[n]),A.useEffect(()=>{if(!Xg(t))return;let g=!1;return fetch(Oy(e,t)).then(async m=>{if(!m.ok)throw new Error(`${m.status}`);return m.text()}).then(m=>{g||o(m.length>2e5?m.slice(0,2e5)+`
580
+ `,1;if(nc>1e5&&nc>De.index*3)throw new Error("potential infinite loop, way more iterations than matches");return kt+=Ye,Ye.length}const yn=Mn(Ee);if(!yn)throw bt(Et.replace("{}",Ee)),new Error('Unknown language: "'+Ee+'"');const ks=gn(yn);let So="",qe=mt||ks;const nd={},cn=new Ce.__emitter(Ce);Es();let kt="",Na=0,Pi=0,nc=0,Ca=!1;try{if(yn.__emitTokens)yn.__emitTokens(ze,cn);else{for(qe.matcher.considerAll();;){nc++,Ca?Ca=!1:qe.matcher.considerAll(),qe.matcher.lastIndex=Pi;const Se=qe.matcher.exec(ze);if(!Se)break;const De=ze.substring(Pi,Se.index),Ye=_a(De,Se);Pi=Se.index+Ye}_a(ze.substring(Pi))}return cn.finalize(),So=cn.toHTML(),{language:Ee,value:So,relevance:Na,illegal:!1,_emitter:cn,_top:qe}}catch(Se){if(Se.message&&Se.message.includes("Illegal"))return{language:Ee,value:Tn(ze),illegal:!0,relevance:0,_illegalBy:{message:Se.message,index:Pi,context:ze.slice(Pi-100,Pi+100),mode:Se.mode,resultSoFar:So},_emitter:cn};if(Ot)return{language:Ee,value:Tn(ze),illegal:!1,relevance:0,errorRaised:Se,_emitter:cn,_top:qe};throw Se}}function xa(Ee){const ze={value:Tn(Ee),illegal:!1,relevance:0,_top:Te,_emitter:new Ce.__emitter(Ce)};return ze._emitter.addText(Ee),ze}function va(Ee,ze){ze=ze||Ce.languages||Object.keys(he);const et=xa(Ee),mt=ze.filter(Mn).filter(Zr).map(Ct=>Qr(Ct,Ee,!1));mt.unshift(et);const Qt=mt.sort((Ct,Kn)=>{if(Ct.relevance!==Kn.relevance)return Kn.relevance-Ct.relevance;if(Ct.language&&Kn.language){if(Mn(Ct.language).supersetOf===Kn.language)return 1;if(Mn(Kn.language).supersetOf===Ct.language)return-1}return 0}),[_n,qn]=Qt,zn=_n;return zn.secondBest=qn,zn}function Ar(Ee,ze,et){const mt=ze&&_e[ze]||et;Ee.classList.add("hljs"),Ee.classList.add(`language-${mt}`)}function Yt(Ee){let ze=null;const et=Vt(Ee);if(Fe(et))return;if(zi("before:highlightElement",{el:Ee,language:et}),Ee.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",Ee);return}if(Ee.children.length>0&&(Ce.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(Ee)),Ce.throwUnescapedHTML))throw new jr("One of your code blocks includes unescaped HTML.",Ee.innerHTML);ze=Ee;const mt=ze.textContent,Qt=et?It(mt,{language:et,ignoreIllegals:!0}):va(mt);Ee.innerHTML=Qt.value,Ee.dataset.highlighted="yes",Ar(Ee,et,Qt.language),Ee.result={language:Qt.language,re:Qt.relevance,relevance:Qt.relevance},Qt.secondBest&&(Ee.secondBest={language:Qt.secondBest.language,relevance:Qt.secondBest.relevance}),zi("after:highlightElement",{el:Ee,result:Qt,text:mt})}function Sn(Ee){Ce=xo(Ce,Ee)}const Wr=()=>{Ea(),le("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function wa(){Ea(),le("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let vs=!1;function Ea(){function Ee(){Ea()}if(document.readyState==="loading"){vs||window.addEventListener("DOMContentLoaded",Ee,!1),vs=!0;return}document.querySelectorAll(Ce.cssSelector).forEach(Yt)}function vo(Ee,ze){let et=null;try{et=ze(J)}catch(mt){if(bt("Language definition for '{}' could not be registered.".replace("{}",Ee)),Ot)bt(mt);else throw mt;et=Te}et.name||(et.name=Ee),he[Ee]=et,et.rawDefinition=ze.bind(null,J),et.aliases&&Xr(et.aliases,{languageName:Ee})}function Ii(Ee){delete he[Ee];for(const ze of Object.keys(_e))_e[ze]===Ee&&delete _e[ze]}function ws(){return Object.keys(he)}function Mn(Ee){return Ee=(Ee||"").toLowerCase(),he[Ee]||he[_e[Ee]]}function Xr(Ee,{languageName:ze}){typeof Ee=="string"&&(Ee=[Ee]),Ee.forEach(et=>{_e[et.toLowerCase()]=ze})}function Zr(Ee){const ze=Mn(Ee);return ze&&!ze.disableAutodetect}function gi(Ee){Ee["before:highlightBlock"]&&!Ee["before:highlightElement"]&&(Ee["before:highlightElement"]=ze=>{Ee["before:highlightBlock"](Object.assign({block:ze.el},ze))}),Ee["after:highlightBlock"]&&!Ee["after:highlightElement"]&&(Ee["after:highlightElement"]=ze=>{Ee["after:highlightBlock"](Object.assign({block:ze.el},ze))})}function en(Ee){gi(Ee),Ke.push(Ee)}function wo(Ee){const ze=Ke.indexOf(Ee);ze!==-1&&Ke.splice(ze,1)}function zi(Ee,ze){const et=Ee;Ke.forEach(function(mt){mt[et]&&mt[et](ze)})}function Jr(Ee){return le("10.7.0","highlightBlock will be removed entirely in v12.0"),le("10.7.0","Please use highlightElement now."),Yt(Ee)}Object.assign(J,{highlight:It,highlightAuto:va,highlightAll:Ea,highlightElement:Yt,highlightBlock:Jr,configure:Sn,initHighlighting:Wr,initHighlightingOnLoad:wa,registerLanguage:vo,unregisterLanguage:Ii,listLanguages:ws,getLanguage:Mn,registerAliases:Xr,autoDetection:Zr,inherit:xo,addPlugin:en,removePlugin:wo}),J.debugMode=function(){Ot=!1},J.safeMode=function(){Ot=!0},J.versionString=xt,J.regex={concat:v,lookahead:y,either:k,optional:E,anyNumberOfTimes:b};for(const Ee in ue)typeof ue[Ee]=="object"&&e(ue[Ee]);return Object.assign(J,ue),J},In=Li({});return In.newInstance=()=>Li({}),Qg=In,In.HighlightJS=In,In.default=In,Qg}var I9=L9();const z9=zu(I9),lk={},P9="hljs-";function B9(e){const t=z9.newInstance();return e&&o(e),{highlight:n,highlightAuto:r,listLanguages:a,register:o,registerAlias:l,registered:u};function n(d,h,g){const m=g||lk,y=typeof m.prefix=="string"?m.prefix:P9;if(!t.getLanguage(d))throw new Error("Unknown language: `"+d+"` is not registered");t.configure({__emitter:U9,classPrefix:y});const b=t.highlight(h,{ignoreIllegals:!0,language:d});if(b.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:b.errorRaised});const E=b._emitter.root,v=E.data;return v.language=b.language,v.relevance=b.relevance,E}function r(d,h){const m=(h||lk).subset||a();let y=-1,b=0,E;for(;++y<m.length;){const v=m[y];if(!t.getLanguage(v))continue;const S=n(v,d,h);S.data&&S.data.relevance!==void 0&&S.data.relevance>b&&(b=S.data.relevance,E=S)}return E||{type:"root",children:[],data:{language:void 0,relevance:b}}}function a(){return t.listLanguages()}function o(d,h){if(typeof d=="string")t.registerLanguage(d,h);else{let g;for(g in d)Object.hasOwn(d,g)&&t.registerLanguage(g,d[g])}}function l(d,h){if(typeof d=="string")t.registerAliases(typeof h=="string"?h:[...h],{languageName:d});else{let g;for(g in d)if(Object.hasOwn(d,g)){const m=d[g];t.registerAliases(typeof m=="string"?m:[...m],{languageName:g})}}}function u(d){return!!t.getLanguage(d)}}class U9{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],a=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:a}):r.children.push(...a)}openNode(t){const n=this,r=t.split(".").map(function(l,u){return u?l+"_".repeat(u):n.options.classPrefix+l}),a=this.stack[this.stack.length-1],o={type:"element",tagName:"span",properties:{className:r},children:[]};a.children.push(o),this.stack.push(o)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const $9={};function xx(e){const t=e||$9,n=t.aliases,r=t.detect||!1,a=t.languages||R9,o=t.plainText,l=t.prefix,u=t.subset;let d="hljs";const h=B9(a);if(n&&h.registerAlias(n),l){const g=l.indexOf("-");d=g===-1?l:l.slice(0,g)}return function(g,m){Wh(g,"element",function(y,b,E){if(y.tagName!=="code"||!E||E.type!=="element"||E.tagName!=="pre")return;const v=F9(y);if(v===!1||!v&&!r||v&&o&&o.includes(v))return;Array.isArray(y.properties.className)||(y.properties.className=[]),y.properties.className.includes(d)||y.properties.className.unshift(d);const S=o$(y,{whitespace:"pre"});let k;try{k=v?h.highlight(v,S,{prefix:l}):h.highlightAuto(S,{prefix:l,subset:u})}catch(j){const _=j;if(v&&/Unknown language/.test(_.message)){m.message("Cannot highlight as `"+v+"`, it’s not registered",{ancestors:[E,y],cause:_,place:y.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw _}!v&&k.data&&k.data.language&&y.properties.className.push("language-"+k.data.language),k.children.length>0&&(y.children=k.children)})}}function F9(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let r;for(;++n<t.length;){const a=String(t[n]);if(a==="no-highlight"||a==="nohighlight")return!1;!r&&a.slice(0,5)==="lang-"&&(r=a.slice(5)),!r&&a.slice(0,9)==="language-"&&(r=a.slice(9))}return r}function H9({name:e,onClose:t}){const n=Ue(),{data:r,isLoading:a,isError:o,error:l}=tt({queryKey:["skill",e],queryFn:()=>RI(e)});return A.useEffect(()=>{const u=d=>{d.key==="Escape"&&t()};return window.addEventListener("keydown",u),()=>window.removeEventListener("keydown",u)},[t]),f.jsx("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-40 flex items-start justify-center p-6 bg-black/30 overflow-auto",children:f.jsxs("div",{className:"nb-card mt-8 w-full max-w-4xl",children:[f.jsxs("header",{className:"flex items-start justify-between gap-4 mb-4",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-3xl font-bold",children:e}),r&&f.jsxs("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:[r.category," · ",r.origin||"local"]})]}),f.jsx("button",{onClick:t,className:"nb-btn nb-btn-mint p-2","aria-label":n("skillDetail.close.aria"),type:"button",children:f.jsx(_r,{size:16,strokeWidth:3})})]}),a&&f.jsx("p",{children:n("skillDetail.loading")}),o&&f.jsx("p",{className:"text-[var(--color-crashed)]",children:n("skillDetail.error.load",{detail:l instanceof Error?l.message:String(l)})}),r&&f.jsxs("div",{className:"flex flex-col gap-4",children:[f.jsxs("div",{children:[f.jsx("h3",{className:"font-[family-name:var(--font-heading)] text-sm font-bold mb-2 uppercase tracking-wider",children:n("skillDetail.section.preview")}),f.jsx("div",{className:"prose-chat bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg p-4 max-h-80 overflow-auto text-sm",children:r.body?f.jsx(fx,{remarkPlugins:[gx],rehypePlugins:[xx],children:r.body}):f.jsx("p",{className:"text-[var(--color-text-muted)] italic",children:"(empty)"})})]}),r.references.length>0&&f.jsxs("div",{children:[f.jsx("h3",{className:"font-[family-name:var(--font-heading)] text-sm font-bold mb-2 uppercase tracking-wider",children:"References"}),f.jsx("ul",{className:"flex flex-col gap-2",children:r.references.map(u=>f.jsx(q9,{skillName:e,file:u.name,lines:u.lines},u.name))})]})]})]})})}function q9({skillName:e,file:t,lines:n}){const r=Ue(),[a,o]=A.useState(!1),{data:l,isLoading:u,isError:d,error:h}=tt({queryKey:["skill-ref",e,t],queryFn:()=>LI(e,t),enabled:a,staleTime:1/0});return f.jsxs("li",{className:"border-2 border-[var(--color-text)] rounded-lg overflow-hidden bg-[var(--color-bg-cream)]",children:[f.jsxs("button",{type:"button",onClick:()=>o(g=>!g),"aria-label":r("skillDetail.toggleSection.aria",{action:r(a?"skillDetail.collapse":"skillDetail.expand"),file:t}),"aria-expanded":a,className:"w-full flex items-center gap-2 px-3 py-2 text-sm font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-yellow)] transition-colors",children:[f.jsx(Gl,{size:12,strokeWidth:3,className:["transition-transform",a?"rotate-90":""].join(" ")}),f.jsx($u,{size:12,strokeWidth:2.5}),f.jsx("span",{className:"flex-1 text-left font-bold",children:t}),f.jsxs("span",{className:"text-xs text-[var(--color-text-subtle)]",children:[n," lines"]})]}),a&&f.jsxs("div",{className:"px-4 py-3 border-t-2 border-[var(--color-text)] bg-[var(--color-bg)] max-h-96 overflow-auto",children:[u&&f.jsx("p",{className:"text-xs text-[var(--color-text-muted)]",children:r("skillDetail.loading")}),d&&f.jsx("p",{className:"text-xs text-[var(--color-crashed)]",children:r("skillDetail.error.load",{detail:h instanceof Error?h.message:String(h)})}),l&&f.jsx("div",{className:"prose-chat text-sm",children:f.jsx(fx,{remarkPlugins:[gx],rehypePlugins:[xx],children:l.content})})]})]})}const K9=[{value:"all",labelKey:"skills.category.all"},{value:"language",labelKey:"skills.category.language"},{value:"end",labelKey:"skills.category.end"},{value:"persona",labelKey:"skills.category.persona"},{value:"workflow",labelKey:"skills.category.workflow"},{value:"other",labelKey:"skills.category.other"}],G9={language:"var(--color-accent-purple)",end:"var(--color-secondary)",persona:"var(--color-primary)",workflow:"var(--color-accent-mint)",other:"var(--color-bg-cream)"};function V9(){const e=Ue(),[t,n]=A.useState("all"),[r,a]=A.useState(""),[o,l]=A.useState(null),u=wn(),{data:d,isLoading:h}=tt({queryKey:["skills"],queryFn:()=>Vb()}),g=tt({queryKey:["projects"],queryFn:ma}),m=A.useMemo(()=>((d==null?void 0:d.data)??[]).filter(E=>!(t!=="all"&&E.category!==t||r&&!E.name.toLowerCase().includes(r.toLowerCase()))),[d,t,r]),y=A.useMemo(()=>{const b=(d==null?void 0:d.data)??[],E={all:b.length};for(const v of b)E[v.category]=(E[v.category]??0)+1;return E},[d]);return f.jsxs("div",{className:"flex flex-col gap-4 max-w-full",children:[f.jsxs("header",{className:"flex items-center justify-between flex-wrap gap-3",children:[f.jsxs("div",{children:[f.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-4xl font-bold",children:"Skills 🎯"}),f.jsx("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:h?e("common.loading"):e("skills.subtitleCount",{count:(d==null?void 0:d.data.length)??0})})]}),f.jsx("div",{className:"flex gap-3 items-center",children:f.jsxs("button",{className:"nb-btn nb-btn-mint",onClick:async()=>{await zI(),u.invalidateQueries({queryKey:["skills"]})},type:"button",children:[f.jsx(ms,{size:14,strokeWidth:2.5}),"Sync bundled"]})})]}),f.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[f.jsxs("div",{className:"relative flex-1 max-w-md",children:[f.jsx(sh,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--color-text-subtle)]"}),f.jsx("input",{className:"nb-input pl-9 w-full",placeholder:e("skills.search.placeholder"),value:r,onChange:b=>a(b.target.value),"aria-label":e("skills.search.aria")})]}),f.jsx("div",{className:"flex gap-1 p-1 bg-[var(--color-bg)] border-[2px] border-[var(--color-text)] rounded-full shadow-[2px_2px_0_var(--color-text)]",children:K9.map(b=>f.jsxs("button",{type:"button",onClick:()=>n(b.value),className:["px-3 py-1 rounded-full text-xs font-bold font-[family-name:var(--font-body)]",t===b.value?"bg-[var(--color-text)] text-[var(--color-bg)]":"text-[var(--color-text-muted)] hover:text-[var(--color-text)]"].join(" "),children:[e(b.labelKey)," ",y[b.value]]},b.value))})]}),f.jsx("div",{className:"grid gap-4 grid-cols-[repeat(auto-fill,minmax(280px,1fr))]",children:m.map(b=>{var E;return f.jsx(Y9,{skill:b,projectCount:((E=g.data)==null?void 0:E.data.length)??0,onOpen:()=>l(b.name)},b.name)})}),o&&f.jsx(H9,{name:o,onClose:()=>l(null)})]})}function Y9({skill:e,projectCount:t,onOpen:n}){const r=G9[e.category];return f.jsxs("article",{onClick:n,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),n())},tabIndex:0,role:"button","aria-label":`Open ${e.name}`,className:"nb-card nb-card-interactive flex flex-col gap-3",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("h3",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:e.name}),f.jsx("span",{className:"nb-badge text-[10px]",style:{background:r},children:e.category})]}),f.jsx("p",{className:"text-sm text-[var(--color-text-muted)] leading-5 line-clamp-3",children:e.description||"(no description)"}),f.jsxs("div",{className:"flex items-center justify-between text-xs font-[family-name:var(--font-mono)] pt-2 border-t-[1.5px] border-dashed border-[var(--color-border-light)]",children:[f.jsx("span",{className:"font-bold",children:e.linkedProjects.length>0?`● linked in ${e.linkedProjects.length}`:"○ not linked"}),f.jsxs("span",{className:"text-[var(--color-text-subtle)]",children:[t," projects"]})]})]})}function Q9(){var o;const e=Ue(),t=tt({queryKey:["system-info"],queryFn:L_}),n=tt({queryKey:["system-env"],queryFn:OL}),[r,a]=A.useState(!1);return f.jsxs("div",{className:"flex flex-col gap-6 w-full",children:[f.jsx("header",{children:f.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-4xl font-bold",children:e("system.h1")})}),f.jsx(W9,{current:(o=t.data)==null?void 0:o.version}),f.jsxs("section",{className:"nb-card",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold mb-3",children:e("system.runtime")}),t.data?f.jsxs("dl",{className:"grid grid-cols-1 sm:grid-cols-[160px_1fr] gap-y-2 text-sm",children:[f.jsx("dt",{className:"font-bold",children:"Node"}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:t.data.nodeVersion}),f.jsx("dt",{className:"font-bold",children:"Platform"}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:t.data.platform}),f.jsx("dt",{className:"font-bold",children:"PID"}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:t.data.pid??"—"}),f.jsx("dt",{className:"font-bold",children:"Uptime"}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:eF(t.data.uptimeMs)})]}):f.jsx("p",{className:"text-[var(--color-text-muted)]",children:e("common.loading")})]}),f.jsxs("section",{className:"nb-card",children:[f.jsxs("div",{className:"flex items-center justify-between mb-3",children:[f.jsxs("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:[e("system.env.title.prefix"),f.jsx("code",{className:"text-sm font-[family-name:var(--font-mono)] font-normal bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] px-2 py-0.5 rounded",children:"~/.coral/env"})]}),r?f.jsx("span",{className:"text-xs text-[var(--color-stuck)] font-bold",children:e("system.env.editing.label")}):f.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px",fontSize:12},onClick:()=>a(!0),type:"button","aria-label":e("system.env.edit.aria"),children:[f.jsx(Cb,{size:12,strokeWidth:2.5})," ",e("system.env.edit.button")]})]}),r?f.jsx(X9,{onClose:()=>{a(!1),n.refetch()}}):n.data&&n.data.exists?f.jsx("dl",{className:"grid grid-cols-1 sm:grid-cols-[220px_1fr] gap-y-1 text-sm font-[family-name:var(--font-mono)]",children:n.data.entries.map(l=>f.jsxs("div",{className:"contents",children:[f.jsxs("dt",{className:"font-bold flex items-center gap-2",children:[l.masked&&f.jsx("span",{className:"text-[var(--color-stuck)]",children:"🔒"}),l.key]}),f.jsx("dd",{className:"text-[var(--color-text-muted)] truncate",children:l.value})]},l.key))}):f.jsxs("p",{className:"text-[var(--color-text-muted)] text-sm",children:[e("system.env.empty.before"),f.jsx("code",{className:"bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] px-2 py-0.5 rounded font-[family-name:var(--font-mono)]",children:"sps setup"}),e("system.env.empty.after")]})]}),f.jsx(Z9,{})]})}function W9({current:e}){var v;const t=Ue(),{confirm:n,alert:r}=Zn(),[a,o]=A.useState(!1),[l,u]=A.useState(null),d=tt({queryKey:["latest-version"],queryFn:PL,enabled:!1}),[h,g]=A.useState(null),[m,y]=A.useState("npm i -g @coralai/sps-cli@latest"),b=async()=>{var k;if(await n({title:t("system.upgrade.confirm.title"),body:t("system.upgrade.confirm.body",{current:e??"?",latest:((k=d.data)==null?void 0:k.latest)??"?"}),confirm:t("system.upgrade.confirm.button")})){o(!0),u(null),g(null);try{const j=await BL();if(u(j.output),g(j.installedVersion),y(j.command),j.ok)r({title:t("system.upgrade.success.title"),body:t("system.upgrade.success.body",{version:j.installedVersion??"?"})});else{const _=j.installedVersion&&j.installedVersion===e?t("system.upgrade.notEffective.same",{version:j.installedVersion}):t("system.upgrade.notEffective.notInstalled");r({title:t("system.upgrade.notEffective.title"),body:_})}}catch(j){u(j.message),r({title:t("system.upgrade.error.title"),body:j.message})}finally{o(!1)}}},E=async()=>{const S=d.data&&!d.data.upToDate?`npm i -g @coralai/sps-cli@${d.data.latest}`:m;try{await navigator.clipboard.writeText(S),r({title:t("system.upgrade.copy.success.title"),body:t("system.upgrade.copy.success.body",{cmd:S})})}catch{r({title:t("system.upgrade.copy.fail.title"),body:t("system.upgrade.copy.fail.body",{cmd:S})})}};return f.jsxs("section",{className:"nb-card",children:[f.jsxs("div",{className:"flex items-center justify-between mb-3",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:t("system.upgrade.title")}),f.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px",fontSize:12},onClick:()=>d.refetch(),disabled:d.isFetching||!e,type:"button","aria-label":t("system.upgrade.checkLatest.aria"),children:[d.isFetching?f.jsx(ft,{size:12,strokeWidth:3,className:"animate-spin"}):f.jsx(ms,{size:12,strokeWidth:2.5}),t("system.upgrade.checkUpdate")]})]}),f.jsxs("dl",{className:"grid grid-cols-1 sm:grid-cols-[160px_1fr] gap-y-2 text-sm",children:[f.jsx("dt",{className:"font-bold",children:t("system.upgrade.label.current")}),f.jsx("dd",{className:"font-[family-name:var(--font-mono)]",children:e??"—"}),d.data&&f.jsxs(f.Fragment,{children:[f.jsx("dt",{className:"font-bold",children:t("system.upgrade.label.latest")}),f.jsxs("dd",{className:"font-[family-name:var(--font-mono)] flex items-center gap-2 flex-wrap",children:[d.data.latest,d.data.upToDate?f.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:t("system.upgrade.latestPill")}):f.jsxs(f.Fragment,{children:[f.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"3px 10px",fontSize:11},onClick:b,disabled:a,type:"button","aria-label":t("system.upgrade.button.upgradeAria"),children:[a?f.jsx(ft,{size:11,strokeWidth:3,className:"animate-spin"}):f.jsx(v_,{size:11,strokeWidth:2.5}),t("system.upgrade.button.upgrade")]}),f.jsxs("button",{className:"nb-btn",style:{padding:"3px 10px",fontSize:11},onClick:E,type:"button","aria-label":t("system.upgrade.button.copyAria"),title:t("system.upgrade.button.copyTitle"),children:[f.jsx(oR,{size:11,strokeWidth:2.5})," ",t("system.upgrade.button.copy")]})]})]})]}),h&&f.jsxs(f.Fragment,{children:[f.jsx("dt",{className:"font-bold",children:t("system.upgrade.label.installed")}),f.jsxs("dd",{className:"font-[family-name:var(--font-mono)] flex items-center gap-2",children:[h,h===((v=d.data)==null?void 0:v.latest)?f.jsx("span",{className:"nb-status",style:{background:"var(--color-running-bg)",color:"var(--color-running)"},children:t("system.upgrade.installed.ok")}):h===e?f.jsx("span",{className:"nb-status",style:{background:"var(--color-stuck-bg)",color:"var(--color-stuck)"},children:t("system.upgrade.installed.fail")}):null]})]}),d.isError&&f.jsxs(f.Fragment,{children:[f.jsx("dt",{className:"font-bold",children:t("system.upgrade.label.check")}),f.jsx("dd",{className:"text-[var(--color-crashed)] text-xs",children:d.error instanceof Error?d.error.message:String(d.error)})]})]}),l&&f.jsx("pre",{className:"mt-3 text-xs font-[family-name:var(--font-mono)] bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg p-3 max-h-40 overflow-auto whitespace-pre-wrap",children:l})]})}function X9({onClose:e}){const t=Ue(),n=wn(),{alert:r}=Zn(),a=tt({queryKey:["system-env-raw"],queryFn:DL}),[o,l]=A.useState(null),[u,d]=A.useState(null);A.useEffect(()=>{a.data&&o===null&&(l(a.data.content),d(a.data.etag))},[a.data,o]);const h=o!==null&&a.data&&o!==a.data.content,g=Xt({mutationFn:()=>{if(o===null)throw new Error("no draft");return RL(o,u??"")},onSuccess:()=>{n.invalidateQueries({queryKey:["system-env"]}),n.invalidateQueries({queryKey:["system-env-raw"]}),e()},onError:m=>{const y=m.status;r({title:t(y===409?"system.env.error.conflict.title":"system.env.error.save.title"),body:y===409?t("system.env.error.conflict.body"):m instanceof Error?m.message:String(m)})}});return a.isLoading?f.jsx("p",{className:"text-[var(--color-text-muted)]",children:t("common.loading")}):f.jsxs("div",{children:[f.jsx("p",{className:"text-xs text-[var(--color-stuck)] font-bold mb-2",children:t("system.env.warning")}),f.jsx("textarea",{className:"nb-input w-full font-[family-name:var(--font-mono)] text-xs",style:{minHeight:320,resize:"vertical"},value:o??"",onChange:m=>l(m.target.value),spellCheck:!1,"aria-label":t("system.env.aria")}),f.jsxs("div",{className:"flex items-center justify-between mt-3",children:[f.jsxs("span",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:[u?`etag: ${u}`:"",h?t("system.env.dirtyMark"):""]}),f.jsxs("div",{className:"flex gap-2",children:[f.jsxs("button",{className:"nb-btn",style:{padding:"6px 12px"},onClick:e,disabled:g.isPending,type:"button",children:[f.jsx(_r,{size:12,strokeWidth:3})," ",t("system.env.cancel")]}),f.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"6px 12px"},onClick:()=>g.mutate(),disabled:!h||g.isPending,type:"button","aria-label":t("system.env.save.aria"),children:[g.isPending?f.jsx(ft,{size:12,strokeWidth:3,className:"animate-spin"}):f.jsx(ho,{size:12,strokeWidth:3}),t("system.env.save")]})]})]})]})}function Z9(){var y;const e=Ue(),{alert:t}=Zn(),n=tt({queryKey:["projects"],queryFn:ma}),[r,a]=A.useState({}),[o,l]=A.useState({}),[u,d]=A.useState({}),h=(((y=n.data)==null?void 0:y.data)??[]).map(b=>({project:b.name})),g=async(b,E)=>{l(v=>({...v,[b]:E?"fix":"check"}));try{const v=await UL(b,E);a(S=>({...S,[b]:v})),d(S=>({...S,[b]:!0}))}catch(v){t({title:e(E?"system.diagnostics.error.fix":"system.diagnostics.error.check"),body:v instanceof Error?v.message:String(v)})}finally{l(v=>({...v,[b]:null}))}},m=async()=>{for(const b of h)await g(b.project,!1)};return f.jsxs("section",{className:"nb-card",children:[f.jsxs("div",{className:"flex items-center justify-between mb-3",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold",children:e("system.diagnostics.title")}),f.jsxs("button",{className:"nb-btn nb-btn-mint",style:{padding:"6px 12px",fontSize:12},onClick:()=>{m()},disabled:h.length===0||Object.values(o).some(Boolean),type:"button",children:[f.jsx(ms,{size:12,strokeWidth:2.5}),e("system.diagnostics.checkAll")]})]}),h.length===0?f.jsx("p",{className:"text-[var(--color-text-muted)] text-sm",children:e("system.diagnostics.empty")}):f.jsx("ul",{className:"flex flex-col gap-2",children:h.map(b=>{const E=r[b.project],v=o[b.project],S=E?E.checks.filter(N=>N.status==="fail").length:0,k=E?E.checks.filter(N=>N.status==="warn").length:0,j=u[b.project]??!1,_=E!=null;return f.jsxs("li",{className:"bg-[var(--color-bg-cream)] border-2 border-[var(--color-text)] rounded-lg",children:[f.jsxs("div",{className:"flex items-center gap-3 px-3 py-2",children:[f.jsxs("button",{type:"button",onClick:()=>d(N=>({...N,[b.project]:!j})),disabled:!_,className:"flex items-center gap-2 flex-1 text-left min-w-0","aria-label":e(j?"system.diagnostics.collapseAria":"system.diagnostics.expandAria"),children:[_&&E.ok?f.jsx(ih,{size:16,className:"text-[var(--color-running)] shrink-0",strokeWidth:2.5}):_?f.jsx(mu,{size:16,className:"text-[var(--color-stuck)] shrink-0",strokeWidth:2.5}):f.jsx(ih,{size:16,className:"text-[var(--color-text-subtle)] shrink-0",strokeWidth:2.5}),_&&(j?f.jsx(Kl,{size:12}):f.jsx(Gl,{size:12})),f.jsx("span",{className:"font-bold font-[family-name:var(--font-mono)]",children:b.project}),_?E.ok?f.jsx("span",{className:"text-xs text-[var(--color-running)] font-semibold",children:"OK"}):f.jsxs("span",{className:"text-xs text-[var(--color-stuck)] font-semibold",children:[S," fail · ",k," warn"]}):f.jsx("span",{className:"text-xs text-[var(--color-text-muted)]",children:e("system.diagnostics.never")})]}),f.jsxs("button",{className:"nb-btn",style:{padding:"4px 10px",fontSize:11},onClick:()=>{g(b.project,!1)},disabled:!!v,type:"button","aria-label":e("system.diagnostics.checkAria"),children:[v==="check"?f.jsx(ft,{size:11,strokeWidth:3,className:"animate-spin"}):f.jsx(ms,{size:11,strokeWidth:2.5}),e("system.diagnostics.check")]}),f.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"4px 10px",fontSize:11},onClick:()=>{g(b.project,!0)},disabled:!!v||_&&E.ok,type:"button","aria-label":e("system.diagnostics.fixAria"),title:_&&E.ok?e("system.diagnostics.noFixesNeeded"):e("system.diagnostics.fix.tip"),children:[v==="fix"?f.jsx(ft,{size:11,strokeWidth:3,className:"animate-spin"}):f.jsx(T_,{size:11,strokeWidth:2.5}),e("system.diagnostics.fix")]})]}),j&&_&&f.jsxs("div",{className:"border-t-2 border-dashed border-[var(--color-text)] px-3 py-2",children:[f.jsx("ul",{className:"flex flex-col gap-1 text-xs font-[family-name:var(--font-mono)]",children:E.checks.map((N,O)=>f.jsx(J9,{check:N},`${N.name}-${O}`))}),E.fixes.length>0&&f.jsxs("div",{className:"mt-3 bg-[var(--color-running-bg)] border-2 border-[var(--color-running)] rounded p-2",children:[f.jsx("div",{className:"text-xs font-bold text-[var(--color-running)] mb-1",children:e("system.diagnostics.fixed")}),f.jsx("ul",{className:"text-xs list-disc pl-4",children:E.fixes.map((N,O)=>f.jsx("li",{children:N},O))})]})]})]},b.project)})})]})}function J9({check:e}){const t=e.status==="pass"?f.jsx(ih,{size:12,className:"text-[var(--color-running)]",strokeWidth:2.5}):e.status==="fail"?f.jsx(mu,{size:12,className:"text-[var(--color-crashed)]",strokeWidth:2.5}):e.status==="warn"?f.jsx(mu,{size:12,className:"text-[var(--color-stuck)]",strokeWidth:2.5}):f.jsx("span",{className:"w-3 h-3 rounded-full bg-[var(--color-text-subtle)] inline-block"});return f.jsxs("li",{className:"flex items-start gap-2",children:[f.jsx("span",{className:"pt-0.5 shrink-0",children:t}),f.jsx("span",{className:"font-bold w-32 shrink-0",children:e.name}),f.jsx("span",{className:"text-[var(--color-text-muted)] break-words",children:e.message})]})}function eF(e){const t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),a=t%60;return n>0?`${n}h ${r}m ${a}s`:r>0?`${r}m ${a}s`:`${a}s`}function tF(){return Nt("/api/chat/sessions")}function nF(e){return Nt(`/api/chat/sessions/${e}`)}async function Wg(e={}){const t=await fetch("/api/chat/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`${t.status}: ${await t.text()}`);return await t.json()}async function rF(e){const t=await fetch(`/api/chat/sessions/${e}`,{method:"DELETE"});if(!t.ok)throw new Error(`${t.status}`)}async function iF(e,t,n){const r=await fetch(`/api/chat/sessions/${e}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t,attachments:n})});if(!r.ok)throw new Error(`${r.status}: ${await r.text()}`);return await r.json()}async function aF(e){const t=await fetch(`/api/chat/sessions/${e}/interrupt`,{method:"POST"});if(!t.ok&&t.status!==204)throw new Error(`${t.status}: ${await t.text()}`)}function sF(e,t){const n=t?`?since=${encodeURIComponent(t)}`:"";return Nt(`/api/chat/sessions/${e}/messages${n}`)}function ck(){var G,D,L,V,R,se,ge,ye,xe;const e=Ue(),{sessionId:t}=o_(),n=ys(),r=wn(),{confirm:a,alert:o}=Zn(),l=tt({queryKey:["chat-sessions"],queryFn:tF,refetchInterval:5e3}),u=tt({queryKey:["chat-session",t],queryFn:()=>nF(t??""),enabled:!!t,refetchInterval:4e3}),[d,h]=A.useState(null),[g,m]=A.useState(""),[y,b]=A.useState(!1),E=A.useRef(null),[v,S]=A.useState(!1),[k,j]=A.useState([]),[_,N]=A.useState(!1),[O,T]=A.useState(!1),[M,I]=A.useState(!1),[F,$]=A.useState(null),[U,K]=A.useState(!1);A.useEffect(()=>{if(!t)return;const H=new EventSource(`/stream/chat/${encodeURIComponent(t)}`);let ne=!0;return H.addEventListener("open",()=>{if(ne){ne=!1;return}const ue=r.getQueryData(["chat-session",t]),ce=ue!=null&&ue.messages.length?ue.messages[ue.messages.length-1].ts:void 0;sF(t,ce).then(de=>{de.data.length!==0&&r.setQueryData(["chat-session",t],be=>{if(!be)return be;const je=new Set(be.messages.map(we=>we.id)),Me=de.data.filter(we=>!je.has(we.id));return Me.length===0?be:{...be,messages:[...be.messages,...Me],lastMessageAt:Me[Me.length-1].ts,messageCount:be.messageCount+Me.length}})}).catch(()=>{})}),H.addEventListener("chat.message",ue=>{try{const ce=JSON.parse(ue.data);r.setQueryData(["chat-session",t],de=>{if(!de||de.messages.some(Me=>Me.id===ce.message.id))return de;const je=de.messages.findIndex(Me=>Me.role==="user"&&Me.id.startsWith("optim-")&&Me.content===ce.message.content);if(je>=0){const Me=[...de.messages];return Me[je]=ce.message,{...de,messages:Me}}return{...de,messages:[...de.messages,ce.message]}})}catch{}}),H.addEventListener("chat.message.pending",ue=>{try{const ce=JSON.parse(ue.data);h({id:ce.assistantId,blocks:[],done:!1,finalMessage:null})}catch{}}),H.addEventListener("chat.message.chunk.text",ue=>{try{const ce=JSON.parse(ue.data);h(de=>{if(!de||de.id!==ce.assistantId)return de;const be=[...de.blocks],je=be[be.length-1];return je&&je.type==="text"?be[be.length-1]={...je,target:je.target+ce.text}:be.push({type:"text",target:ce.text,displayed:""}),{...de,blocks:be}})}catch{}}),H.addEventListener("chat.message.chunk.tool_use",ue=>{try{const ce=JSON.parse(ue.data);h(de=>!de||de.id!==ce.assistantId?de:{...de,blocks:[...de.blocks,{type:"tool_use",id:ce.id,title:ce.title,kind:ce.kind,status:ce.status,input:ce.input,locations:ce.locations}]})}catch{}}),H.addEventListener("chat.message.chunk.tool_update",ue=>{try{const ce=JSON.parse(ue.data);h(de=>!de||de.id!==ce.assistantId?de:{...de,blocks:de.blocks.map(be=>be.type==="tool_use"&&be.id===ce.id?{...be,status:ce.status,input:be.input??ce.input,locations:be.locations??ce.locations}:be)})}catch{}}),H.addEventListener("chat.message.complete",ue=>{try{const ce=JSON.parse(ue.data);h(de=>de&&de.id===ce.assistantId?{...de,done:!0,finalMessage:ce.message}:de)}catch{}}),()=>H.close()},[t,r]),A.useEffect(()=>{if(!d)return;const H=d.blocks.reduce((ue,ce)=>ce.type==="text"?ue+(ce.target.length-ce.displayed.length):ue,0);if(H<=0){if(d.done&&d.finalMessage){const ue=d.finalMessage;r.setQueryData(["chat-session",t],ce=>!ce||ce.messages.some(de=>de.id===ue.id)?ce:{...ce,messages:[...ce.messages,ue],lastMessageAt:ue.ts,messageCount:ce.messageCount+1}),r.invalidateQueries({queryKey:["chat-sessions"]}),r.invalidateQueries({queryKey:["chat-session",t]}),h(null),b(!1)}return}const ne=setTimeout(()=>{h(ue=>{if(!ue)return ue;let ce=Math.max(1,Math.ceil(H/40));const de=ue.blocks.map(be=>{if(be.type!=="text"||ce<=0)return be;const je=be.target.length-be.displayed.length;if(je<=0)return be;const Me=Math.min(je,ce);return ce-=Me,{...be,displayed:be.target.slice(0,be.displayed.length+Me)}});return{...ue,blocks:de}})},25);return()=>clearTimeout(ne)},[d,r,t]),A.useEffect(()=>{const H=E.current;H&&(H.scrollTop=H.scrollHeight)},[u.data,d]);const Q=A.useCallback(async(H={})=>{var ne,ue;try{const ce=await Wg({cwd:((ne=H.cwd)==null?void 0:ne.trim())||void 0,title:((ue=H.title)==null?void 0:ue.trim())||void 0,agentKind:H.agentKind});r.invalidateQueries({queryKey:["chat-sessions"]}),n(`/chat/${ce.id}`),S(!1)}catch(ce){o({title:e("chat.error.create.title"),body:ce instanceof Error?ce.message:String(ce)})}},[r,n,o,e]),B=A.useCallback(async()=>{const H=g.trim();if(!H&&k.length===0||y)return;let ne=t;if(!ne){const de=await Wg();r.invalidateQueries({queryKey:["chat-sessions"]}),ne=de.id,n(`/chat/${ne}`,{replace:!0})}const ue=k.map(de=>de.path),ce={id:`optim-${Date.now()}`,role:"user",content:H||e("chat.placeholder.attachment"),ts:new Date().toISOString(),status:"complete",attachments:ue.length>0?ue:void 0};r.setQueryData(["chat-session",ne],de=>de?{...de,messages:[...de.messages,ce],lastMessageAt:ce.ts,messageCount:de.messageCount+1}:{id:ne,createdAt:ce.ts,lastMessageAt:ce.ts,title:H.slice(0,60)||e("chat.placeholder.attachmentTitle"),project:null,messageCount:1,messages:[ce]}),m(""),j([]),b(!0);try{await iF(ne,H||e("chat.placeholder.viewAttachment"),ue.length>0?ue:void 0)}catch(de){b(!1),console.error("sendMessage failed",de),o({title:e("chat.error.send.title"),body:de instanceof Error?de.message:String(de)})}},[g,k,y,t,r,n,o,e]),q=A.useCallback(async H=>{if(H.size>z_){o({title:e("chat.error.fileTooBig.title"),body:e("chat.error.fileTooBig.body",{size:(H.size/1024/1024).toFixed(2),name:H.name})});return}let ne=t;if(!ne){const ue=await Wg();r.invalidateQueries({queryKey:["chat-sessions"]}),ne=ue.id,n(`/chat/${ne}`,{replace:!0})}N(!0);try{const ue=await d3(ne,H);j(ce=>[...ce,{path:ue.path,name:ue.name}])}catch(ue){o({title:e("chat.error.uploadAttachment.title"),body:ue instanceof Error?ue.message:String(ue)})}finally{N(!1)}},[t,r,n,o,e]),z=A.useCallback(H=>{j(ne=>ne.filter(ue=>ue.path!==H))},[]),Y=A.useCallback(async(H,ne)=>{await a({title:e("chat.delete.confirm.title"),body:e(ne==="cli"?"chat.delete.confirm.body.cli":"chat.delete.confirm.body.console"),confirm:e("chat.delete.confirm.button"),danger:!0})&&(await rF(H),r.invalidateQueries({queryKey:["chat-sessions"]}),t===H&&n("/chat"))},[r,t,n,a,e]),W=A.useCallback(async()=>{if(t)try{await aF(t)}catch(H){o({title:e("chat.error.interrupt.title"),body:H instanceof Error?H.message:String(H)})}},[t,o,e]);return f.jsxs("div",{className:"grid grid-cols-[260px_1fr] gap-4 h-[calc(100vh-140px)]",children:[f.jsxs("aside",{className:"nb-card p-3 overflow-auto flex flex-col gap-2",children:[f.jsxs("button",{className:"nb-btn nb-btn-primary w-full justify-center",onClick:()=>S(!0),type:"button",children:[f.jsx(Vr,{size:14,strokeWidth:3}),e("chat.list.new")]}),f.jsx("div",{className:"mt-2 text-xs font-[family-name:var(--font-heading)] uppercase tracking-wider text-[var(--color-text-muted)] px-2",children:e("chat.list.heading",{count:((G=l.data)==null?void 0:G.data.length)??0})}),f.jsx("div",{className:"flex flex-col gap-1.5 mt-1",children:(()=>{var Me;const H=((Me=l.data)==null?void 0:Me.data)??[],ne=Date.now(),ue=10080*60*1e3,ce=we=>new Date(we.lastMessageAt??we.createdAt).getTime(),de=H.filter(we=>ne-ce(we)<=ue),be=H.filter(we=>ne-ce(we)>ue),je=we=>f.jsxs("div",{className:["group flex items-start gap-2 p-2 rounded-lg border-2 border-transparent",t===we.id?"bg-[var(--color-accent-mint)] border-[var(--color-text)] shadow-[2px_2px_0_var(--color-text)]":"hover:bg-[var(--color-bg-cream)] hover:border-[var(--color-text)]"].join(" "),children:[f.jsxs("button",{type:"button","aria-label":e("chat.list.openAria",{title:we.title,cwd:we.cwd?e("chat.list.cwdSuffix",{cwd:we.cwd}):""}),onClick:()=>n(`/chat/${we.id}`),className:"flex items-start gap-2 flex-1 min-w-0 text-left",children:[f.jsx(V1,{size:14,strokeWidth:2.5,className:"mt-0.5 flex-shrink-0"}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[f.jsx("p",{className:"text-sm font-semibold truncate flex-1",children:we.title}),we.source==="cli"&&f.jsx("span",{className:"flex-shrink-0 px-1.5 py-0 rounded-md bg-[var(--color-accent-purple)] border-2 border-[var(--color-text)] text-[9px] font-[family-name:var(--font-mono)] uppercase tracking-wider leading-tight",title:e("chat.cliBadge.tooltip"),children:e("chat.cliBadge")})]}),f.jsx("p",{className:"text-[10px] text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] truncate",children:e("chat.list.msgs",{count:we.messageCount,time:hC(we.lastMessageAt??we.createdAt,e)})}),we.cwd&&f.jsxs("p",{className:"text-[10px] text-[var(--color-text-subtle)] font-[family-name:var(--font-mono)] truncate flex items-center gap-1",title:we.cwd,children:[f.jsx(yu,{size:9,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate",dir:"rtl",children:we.cwd})]})]})]}),f.jsx("button",{type:"button","aria-label":we.source==="cli"?e("chat.list.deleteCli.aria"):e("chat.list.delete.aria"),className:"opacity-0 group-hover:opacity-100 p-1 hover:text-[var(--color-crashed)]",onClick:ct=>{ct.stopPropagation(),Y(we.id,we.source)},children:f.jsx(po,{size:12})})]},we.id);return f.jsxs(f.Fragment,{children:[de.map(je),be.length>0&&f.jsxs(f.Fragment,{children:[f.jsxs("button",{type:"button",onClick:()=>K(we=>!we),"aria-expanded":U,className:"flex items-center gap-1 px-2 py-1 mt-1 rounded-lg text-xs font-semibold text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-bg-cream)] focus-visible:outline focus-visible:outline-2",children:[U?f.jsx(Kl,{size:12,strokeWidth:2.5}):f.jsx(Gl,{size:12,strokeWidth:2.5}),e("chat.list.olderToggle",{count:be.length})]}),U&&be.map(je)]}),H.length===0&&f.jsx("p",{className:"text-xs text-[var(--color-text-subtle)] italic text-center py-4",children:e("chat.list.empty")})]})})()})]}),f.jsx("div",{className:"nb-card p-0 flex flex-col overflow-hidden",children:t?f.jsxs(f.Fragment,{children:[f.jsxs("header",{className:"px-4 py-3 border-b-2 border-[var(--color-text)] bg-[var(--color-bg-cream)]",children:[f.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:((D=u.data)==null?void 0:D.title)??e("common.loading")}),((L=u.data)==null?void 0:L.model)&&f.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-md bg-[var(--color-accent-yellow)] border-2 border-[var(--color-text)] text-[10px] font-[family-name:var(--font-mono)] font-bold uppercase tracking-wider",title:e("chat.detail.model.tooltip"),children:[f.jsx(ah,{size:11,strokeWidth:2.5})," ",u.data.model]})]}),f.jsx("p",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:t}),((V=u.data)==null?void 0:V.claudeSessionId)&&f.jsxs("p",{className:"text-xs text-[var(--color-text-subtle)] font-[family-name:var(--font-mono)] truncate",title:e("chat.detail.claudeSession.tooltip"),children:["claude: ",u.data.claudeSessionId]}),((R=u.data)==null?void 0:R.cwd)&&f.jsxs("p",{className:"text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] flex items-center gap-1 mt-1",title:u.data.cwd,children:[f.jsx(yu,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate",children:u.data.cwd})]})]}),f.jsxs("div",{ref:E,className:"flex-1 overflow-auto p-4 flex flex-col gap-4",children:[(((se=u.data)==null?void 0:se.messages)??[]).filter(H=>!(d&&H.status==="streaming")).map(H=>f.jsx(cF,{msg:H,sessionId:t??null,onPreviewAttachment:ne=>$(ne)},H.id)),d&&f.jsx(dF,{pending:d}),!u.isLoading&&(((ge=u.data)==null?void 0:ge.messages)??[]).length===0&&!d&&!y&&f.jsx("p",{className:"text-center text-[var(--color-text-subtle)] italic mt-12",children:e("chat.session.empty")})]}),((ye=u.data)==null?void 0:ye.source)==="cli"?f.jsxs("div",{className:"border-t-2 border-[var(--color-text)] p-4 bg-[var(--color-accent-purple)]",children:[f.jsxs("p",{className:"text-sm font-[family-name:var(--font-mono)] text-[var(--color-text-muted)] text-center",children:[f.jsx("strong",{children:e("chat.cli.banner.bold")})," — ",e("chat.cli.banner")]}),f.jsxs("pre",{className:"mt-2 px-3 py-2 bg-[var(--color-bg)] border-2 border-[var(--color-text)] rounded-md text-xs font-[family-name:var(--font-mono)] overflow-x-auto",children:["sps agent --chat --name ",(t??"").replace(/^session-/,"")]})]}):f.jsxs("div",{className:["border-t-2 border-[var(--color-text)] p-3 bg-[var(--color-bg-cream)] transition-colors",M?"bg-[var(--color-accent-mint)]":""].join(" "),onDragOver:H=>{H.dataTransfer.types.includes("Files")&&(H.preventDefault(),H.dataTransfer.dropEffect="copy",M||I(!0))},onDragLeave:()=>I(!1),onDrop:H=>{if(!H.dataTransfer.types.includes("Files"))return;H.preventDefault(),I(!1);const ne=Array.from(H.dataTransfer.files??[]);for(const ue of ne)q(ue)},children:[(k.length>0||_)&&f.jsxs("div",{className:"flex flex-wrap gap-2 mb-2",children:[k.map(H=>f.jsxs("button",{type:"button",className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-[var(--color-bg)] border-2 border-[var(--color-text)] text-xs font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-mint)] group",onClick:()=>$(H.path),title:e("chat.attachment.previewTooltip",{name:H.name,path:H.path}),children:[yh(H.path)?f.jsx(AR,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}):f.jsx($u,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate max-w-[180px]",children:H.name}),f.jsx("span",{role:"button","aria-label":e("chat.input.removeAttachment",{name:H.name}),className:"ml-1 hover:text-[var(--color-crashed)] cursor-pointer",onClick:ne=>{ne.stopPropagation(),z(H.path)},children:f.jsx(_r,{size:11,strokeWidth:3})})]},H.path)),_&&f.jsxs("span",{className:"flex items-center gap-1.5 px-2 py-1 text-xs text-[var(--color-text-muted)] font-[family-name:var(--font-mono)]",children:[f.jsx(ft,{size:11,strokeWidth:2.5,className:"animate-spin"}),e("chat.input.uploading")]})]}),f.jsxs("div",{className:"flex gap-2 items-end",children:[f.jsx("button",{type:"button",className:"nb-btn flex-shrink-0",onClick:()=>T(!0),disabled:y,"aria-label":e("chat.input.attach.aria"),title:e("chat.input.attach.title"),children:f.jsx(BR,{size:14,strokeWidth:2.5})}),f.jsx("textarea",{className:"nb-input flex-1 resize-none",placeholder:e(M?"chat.input.dragOver":"chat.input.placeholder"),rows:2,value:g,onChange:H=>m(H.target.value),onKeyDown:H=>{H.key==="Enter"&&!H.shiftKey&&!H.nativeEvent.isComposing&&(H.preventDefault(),B())},onPaste:H=>{const ue=Array.from(H.clipboardData.items??[]).filter(ce=>ce.kind==="file"&&ce.type.startsWith("image/"));if(ue.length!==0){H.preventDefault();for(const ce of ue){const de=ce.getAsFile();de&&q(de)}}},"aria-label":e("chat.input.aria")}),d?f.jsxs("button",{className:"nb-btn nb-btn-danger",onClick:W,type:"button","aria-label":e("chat.input.interrupt.aria"),children:[f.jsx(jb,{size:14,strokeWidth:3}),e("chat.input.interrupt")]}):f.jsxs("button",{className:"nb-btn nb-btn-primary",onClick:B,disabled:!g.trim()&&k.length===0||y,type:"button","aria-label":e("chat.input.send.aria"),children:[y?f.jsx(ft,{size:14,strokeWidth:3,className:"animate-spin"}):f.jsx(iL,{size:14,strokeWidth:3}),e("chat.input.send")]})]})]})]}):f.jsx("div",{className:"flex-1 flex items-center justify-center p-8",children:f.jsxs("div",{className:"text-center max-w-md",children:[f.jsx("div",{className:"w-20 h-20 rounded-2xl bg-[var(--color-accent-mint)] border-[3px] border-[var(--color-text)] shadow-[3px_3px_0_var(--color-text)] flex items-center justify-center mx-auto mb-4",children:f.jsx(V1,{size:32,strokeWidth:2.5})}),f.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-2xl font-bold mb-2",children:e("chat.empty.title")}),f.jsx("p",{className:"text-sm text-[var(--color-text-muted)] mb-4",children:e("chat.empty.hint")}),f.jsx("p",{className:"text-xs text-[var(--color-text-subtle)] italic",children:e("chat.empty.shortcuts")})]})})}),v&&f.jsx(lF,{onCancel:()=>S(!1),onCreate:H=>Q(H)}),O&&f.jsx(Mb,{mode:"file",title:e("chat.filePicker.title"),initialPath:((xe=u.data)==null?void 0:xe.cwd)??void 0,onCancel:()=>T(!1),onSelect:H=>{j(ne=>{if(ne.some(ce=>ce.path===H))return ne;const ue=H.split(/[\\/]/).pop()||H;return[...ne,{path:H,name:ue}]}),T(!1)}}),F&&t&&f.jsx(oF,{sessionId:t,path:F,onClose:()=>$(null)})]})}function yh(e){return/\.(png|jpe?g|gif|webp|svg|avif)$/i.test(e)}function uk(e){return/\.pdf$/i.test(e)}function Xg(e){return/\.(txt|md|log|json|yaml|yml|csv|html|xml|tsx?|jsx?|css|sh|ya?ml|conf|toml|ini|env|gitignore|sql|py|rb|go|rs|java|kt|swift|c|cc|cpp|h|hpp)$/i.test(e)}function oF({sessionId:e,path:t,onClose:n}){const r=Ue(),[a,o]=A.useState(null),[l,u]=A.useState(null);A.useEffect(()=>{const g=m=>{m.key==="Escape"&&(m.preventDefault(),n())};return window.addEventListener("keydown",g),()=>window.removeEventListener("keydown",g)},[n]),A.useEffect(()=>{if(!Xg(t))return;let g=!1;return fetch(Oy(e,t)).then(async m=>{if(!m.ok)throw new Error(`${m.status}`);return m.text()}).then(m=>{g||o(m.length>2e5?m.slice(0,2e5)+`
581
581
 
582
582
  …(truncated)`:m)}).catch(m=>{g||u(m instanceof Error?m.message:String(m))}),()=>{g=!0}},[e,t]);const d=Oy(e,t),h=t.split(/[\\/]/).pop()??t;return f.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-[rgba(45,55,72,0.6)] p-4",role:"presentation",children:f.jsxs("div",{className:"nb-card bg-[var(--color-bg)] max-w-3xl w-full p-5 flex flex-col",style:{maxHeight:"85vh"},role:"dialog","aria-modal":"true","aria-label":r("chat.attachment.preview.aria",{name:h}),children:[f.jsxs("header",{className:"flex items-center justify-between mb-3 shrink-0",children:[f.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[f.jsx(dR,{size:16,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("h3",{className:"font-[family-name:var(--font-heading)] font-bold text-base truncate",children:h})]}),f.jsx("button",{type:"button",className:"p-1 hover:bg-[var(--color-bg-cream)] rounded flex-shrink-0",onClick:n,"aria-label":r("chat.attachment.close.aria"),children:f.jsx(_r,{size:16,strokeWidth:3})})]}),f.jsx("p",{className:"text-[10px] text-[var(--color-text-muted)] font-[family-name:var(--font-mono)] truncate mb-2 shrink-0",title:t,dir:"rtl",children:t}),f.jsxs("div",{className:"flex-1 overflow-auto border-2 border-[var(--color-text)] rounded-lg bg-[var(--color-bg-cream)] min-h-0",children:[yh(t)&&f.jsx("div",{className:"flex items-center justify-center p-4",children:f.jsx("img",{src:d,alt:`Preview: ${h}`,className:"max-w-full max-h-[60vh] object-contain"})}),uk(t)&&f.jsx("iframe",{src:d,title:`PDF: ${h}`,className:"w-full",style:{height:"60vh",border:0}}),Xg(t)&&f.jsx("pre",{className:"p-3 text-xs font-[family-name:var(--font-mono)] whitespace-pre-wrap break-words",children:l?f.jsx("span",{className:"text-[var(--color-crashed)]",children:r("chat.attachment.readErr",{detail:l})}):a===null?f.jsx("span",{className:"text-[var(--color-text-muted)]",children:r("chat.attachment.loading")}):a}),!yh(t)&&!uk(t)&&!Xg(t)&&f.jsxs("div",{className:"p-6 text-center text-sm text-[var(--color-text-muted)]",children:[f.jsx("p",{className:"mb-3",children:r("chat.attachment.unsupported")}),f.jsx("a",{href:d,download:h,className:"nb-btn nb-btn-primary inline-flex",children:r("chat.attachment.download")})]})]})]})})}function lF({onCancel:e,onCreate:t}){const n=Ue(),[r,a]=A.useState(""),[o,l]=A.useState(""),[u,d]=A.useState("claude"),[h,g]=A.useState(!1),[m,y]=A.useState(!1);A.useEffect(()=>{if(m)return;const E=v=>{v.key==="Escape"&&(v.preventDefault(),e())};return window.addEventListener("keydown",E),()=>window.removeEventListener("keydown",E)},[e,m]);const b=async()=>{if(!h){g(!0);try{t({title:r.trim()||void 0,cwd:o.trim()||void 0,agentKind:u})}finally{g(!1)}}};return f.jsxs("div",{className:"fixed inset-0 z-40 flex items-center justify-center bg-[rgba(45,55,72,0.4)] p-4",role:"presentation",children:[f.jsxs("div",{className:"nb-card bg-[var(--color-bg)] max-w-md w-full p-5",role:"dialog","aria-modal":"true","aria-label":n("chat.newSession.title.aria"),children:[f.jsxs("header",{className:"flex items-center justify-between mb-4",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:n("chat.newSession.title")}),f.jsx("button",{type:"button",className:"p-1 hover:bg-[var(--color-bg-cream)] rounded",onClick:e,"aria-label":n("chat.newSession.close.aria"),children:f.jsx(_r,{size:16,strokeWidth:3})})]}),f.jsxs("div",{className:"flex flex-col gap-4",children:[f.jsxs("div",{children:[f.jsx("span",{className:"block text-xs font-bold mb-1.5 uppercase tracking-wider",children:n("chat.newSession.field.agent")}),f.jsx("div",{className:"grid grid-cols-2 gap-2",children:["claude","openai"].map(E=>{const v=u===E;return f.jsx("button",{type:"button",onClick:()=>d(E),"aria-pressed":v,className:["rounded-xl border-2 px-3 py-2 text-sm font-bold transition-all",v?"bg-[var(--color-accent-mint)] border-[var(--color-text)] shadow-[3px_3px_0_var(--color-text)]":"bg-[var(--color-bg)] border-[var(--color-border-light)] hover:border-[var(--color-text)]"].join(" "),children:E==="claude"?"Claude":"OpenAI"},E)})})]}),f.jsxs("div",{children:[f.jsx("label",{htmlFor:"new-session-title",className:"block text-xs font-bold mb-1.5 uppercase tracking-wider",children:n("chat.newSession.field.title")}),f.jsx("input",{id:"new-session-title",type:"text",className:"nb-input w-full",placeholder:n("chat.newSession.field.title.placeholder"),value:r,onChange:E=>a(E.target.value),autoFocus:!0})]}),f.jsxs("div",{children:[f.jsx("label",{htmlFor:"new-session-cwd",className:"block text-xs font-bold mb-1.5 uppercase tracking-wider",children:n("chat.newSession.field.cwd")}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("input",{id:"new-session-cwd",type:"text",className:"nb-input flex-1 font-[family-name:var(--font-mono)] text-sm",placeholder:"/home/coral/projects/my-app",value:o,onChange:E=>l(E.target.value)}),f.jsxs("button",{type:"button",className:"nb-btn flex-shrink-0",onClick:()=>y(!0),"aria-label":n("chat.newSession.field.cwd.browseAria"),title:n("chat.newSession.field.cwd.browseAria"),children:[f.jsx(w_,{size:14,strokeWidth:2.5}),n("chat.newSession.field.cwd.browse")]})]}),f.jsxs("p",{className:"text-[11px] text-[var(--color-text-muted)] mt-1.5 leading-relaxed",children:[f.jsx(yu,{size:10,strokeWidth:2.5,className:"inline mr-1 -mt-0.5"}),n("chat.newSession.field.cwd.help1")," ",n("chat.newSession.field.cwd.help2")]})]}),f.jsxs("div",{className:"flex gap-2 justify-end pt-2",children:[f.jsx("button",{type:"button",className:"nb-btn",onClick:e,children:n("chat.newSession.cancel")}),f.jsxs("button",{type:"button",className:"nb-btn nb-btn-primary",onClick:b,disabled:h,children:[h?f.jsx(ft,{size:14,strokeWidth:3,className:"animate-spin"}):f.jsx(Vr,{size:14,strokeWidth:3}),n("chat.newSession.create")]})]})]})]}),m&&f.jsx(Mb,{initialPath:o.trim()||void 0,onCancel:()=>y(!1),onSelect:E=>{l(E),y(!1)}})]})}function cF({msg:e,sessionId:t,onPreviewAttachment:n}){const r=Ue(),a=e.role==="user",o=e.role==="error",l=e.blocks&&e.blocks.length>0?e.blocks:[{type:"text",text:e.content}],u=e.attachments??[];return f.jsx("div",{className:a?"self-end max-w-3xl":"self-start max-w-3xl",children:f.jsxs("div",{className:["nb-card",a?"bg-[var(--color-secondary)]":o?"bg-[var(--color-crashed-bg)]":"bg-[var(--color-bg)]"].join(" "),children:[f.jsxs("p",{className:"text-xs font-bold uppercase tracking-wider text-[var(--color-text-muted)] mb-2 flex items-center gap-2",children:[r(a?"chat.message.role.you":o?"chat.message.role.error":"chat.message.role.assistant"),f.jsx("span",{className:"font-normal",children:"·"}),f.jsx("span",{className:"font-normal cursor-help",title:pF(e.ts),children:hC(e.ts,r)})]}),f.jsx("div",{className:"flex flex-col gap-2",children:l.map((d,h)=>f.jsx(fF,{block:d},h))}),u.length>0&&t&&f.jsx("div",{className:"mt-3 pt-3 border-t-2 border-dashed border-[var(--color-text)]/30 flex flex-wrap gap-2",children:u.map(d=>f.jsx(uF,{sessionId:t,path:d,onPreview:()=>n(d)},d))}),e.truncated&&f.jsx("p",{className:"mt-3 px-3 py-2 bg-[var(--color-stuck-bg)] border-2 border-[var(--color-stuck)] rounded-lg text-xs text-[var(--color-stuck)] font-bold",children:r("chat.message.truncated")})]})})}function uF({sessionId:e,path:t,onPreview:n}){const r=Ue(),a=t.split(/[\\/]/).pop()??t;return yh(t)?f.jsx("button",{type:"button",onClick:n,className:"block rounded-md overflow-hidden border-2 border-[var(--color-text)] hover:shadow-[2px_2px_0_var(--color-text)] transition-shadow",title:r("chat.attachment.previewSimpleTooltip",{name:a}),children:f.jsx("img",{src:Oy(e,t),alt:a,className:"block max-h-40 max-w-[12rem] object-cover",loading:"lazy"})}):f.jsxs("button",{type:"button",onClick:n,className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-[var(--color-bg)] border-2 border-[var(--color-text)] text-xs font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-mint)]",title:r("chat.attachment.previewTooltip",{name:a,path:t}),children:[f.jsx($u,{size:11,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("span",{className:"truncate max-w-[200px]",children:a})]})}function dF({pending:e}){const t=(()=>{for(let n=e.blocks.length-1;n>=0;n--)if(e.blocks[n].type==="text")return n;return-1})();return f.jsx("div",{className:"self-start max-w-3xl",children:f.jsxs("div",{className:"nb-card bg-[var(--color-bg)]",children:[f.jsxs("p",{className:"text-xs font-bold uppercase tracking-wider text-[var(--color-text-muted)] mb-2 flex items-center gap-2",children:["assistant",f.jsx("span",{className:"font-normal",children:"·"}),f.jsxs("span",{className:"flex items-center gap-1 font-normal text-[var(--color-running)]",children:[f.jsx(ft,{size:10,strokeWidth:3,className:"animate-spin"}),"streaming"]})]}),f.jsxs("div",{className:"flex flex-col gap-2",children:[e.blocks.length===0&&f.jsx("p",{className:"text-sm text-[var(--color-text-muted)] italic",children:"…"}),e.blocks.map((n,r)=>{if(n.type==="text"){const a=r===t;return f.jsxs("div",{className:"relative",children:[f.jsx(dC,{text:n.displayed}),a&&f.jsx("span",{className:"inline-block w-2 h-4 ml-1 bg-[var(--color-text)] animate-pulse align-middle"})]},r)}return f.jsx(fC,{tool:n},r)})]})]})})}function fF({block:e}){return e.type==="text"?f.jsx(dC,{text:e.text}):f.jsx(fC,{tool:e})}function dC({text:e}){return e?f.jsx("div",{className:"text-sm font-[family-name:var(--font-body)] break-words prose-chat",children:f.jsx(fx,{remarkPlugins:[gx],rehypePlugins:[xx],children:e})}):null}function hF(e){if(e==null||typeof e!="object")return typeof e=="string"?e:"";const t=e,n=a=>typeof t[a]=="string"?t[a]:void 0;return n("file_path")??n("path")??n("notebook_path")??n("command")??n("pattern")??n("query")??n("url")??n("name")??n("description")??n("prompt")??Object.values(t).find(a=>typeof a=="string"&&a.trim())??""}function fC({tool:e}){const[t,n]=A.useState(!1),r=e.status==="completed"||e.status==="complete",a=e.status==="failed",o=!r&&!a,l=hF(e.input),u=e.input!=null&&(typeof e.input!="object"||Object.keys(e.input).length>0);return f.jsxs("div",{className:"border-2 border-[var(--color-text)] rounded-lg overflow-hidden bg-[var(--color-bg-cream)]",children:[f.jsxs("button",{type:"button",onClick:()=>n(d=>!d),className:"w-full flex items-center gap-2 px-3 py-2 text-xs font-[family-name:var(--font-mono)] hover:bg-[var(--color-accent-yellow)] transition-colors",children:[f.jsx(Gl,{size:12,strokeWidth:3,className:["transition-transform flex-shrink-0",t?"rotate-90":""].join(" ")}),f.jsx(T_,{size:12,strokeWidth:2.5,className:"flex-shrink-0"}),f.jsx("span",{className:"font-bold flex-shrink-0",children:e.title||e.kind}),f.jsx("span",{className:"flex-1 text-left text-[var(--color-text-muted)] truncate",title:l,children:l}),o&&f.jsx(ft,{size:12,strokeWidth:3,className:"animate-spin text-[var(--color-running)] flex-shrink-0"}),r&&f.jsx(gu,{size:12,strokeWidth:2.5,className:"text-[var(--color-running)] flex-shrink-0"}),a&&f.jsx(b_,{size:12,strokeWidth:2.5,className:"text-[var(--color-crashed)] flex-shrink-0"})]}),t&&f.jsxs("div",{className:"px-3 py-2 text-xs font-[family-name:var(--font-mono)] text-[var(--color-text-muted)] border-t-2 border-[var(--color-text)] space-y-1",children:[u?f.jsx("pre",{className:"whitespace-pre-wrap break-all text-[var(--color-text)] max-h-72 overflow-auto",children:typeof e.input=="string"?e.input:JSON.stringify(e.input,null,2)}):f.jsx("div",{children:"无参数"}),f.jsxs("div",{className:"opacity-60",children:["id: ",e.id," · ",e.status]})]})]})}function hC(e,t){if(!e)return"";const n=new Date(e),r=Date.now()-n.getTime();return r<6e4?t("kanban.time.justNow"):r<36e5?t("kanban.time.minutes",{n:Math.floor(r/6e4)}):r<864e5?t("kanban.time.hours",{n:Math.floor(r/36e5)}):n.toLocaleDateString()}function pF(e){if(!e)return;const t=new Date(e),n=r=>String(r).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function mF(){return Nt("/api/processes").then(e=>e.data)}function gF(e){return ML(`/api/processes/${e}/kill`)}function yF(){return Nt("/api/processes/reclaim")}async function bF(e){const t=await fetch("/api/processes/reclaim",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({idleMinutes:e})});if(!t.ok)throw new Error(`${t.status}: ${await t.text()}`);return t.json()}const dk="border-[3px] border-[var(--color-text)] rounded-2xl bg-white shadow-[4px_4px_0_var(--color-text)]";function xF(e){if(!e)return"—";const t=Date.now()-new Date(e).getTime();if(!Number.isFinite(t)||t<0)return"—";const n=Math.floor(t/6e4);if(n<1)return"<1m";if(n<60)return`${n}m`;const r=Math.floor(n/60);return r<24?`${r}h${n%60?` ${n%60}m`:""}`:`${Math.floor(r/24)}d${r%24?` ${r%24}h`:""}`}function Zg(e){return e.project?e.project:e.cwd?e.cwd.split("/").filter(Boolean).pop()??e.slot:e.slot}function fk(e){const t=/^session-chat-(.+)$/.exec(e.slot);return(t==null?void 0:t[1])??null}function vF({p:e}){const t=e.alive?e.sessionState??"alive":"offline",n=e.alive?"bg-[var(--color-accent-mint)]":"bg-[var(--color-bg-cream)] text-[var(--color-text)]/60";return f.jsxs("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-lg border-2 border-[var(--color-text)] text-xs font-bold font-[family-name:var(--font-mono)] ${n}`,children:[f.jsx("span",{className:`w-2 h-2 rounded-full ${e.alive?"bg-green-600":"bg-gray-400"}`}),t]})}function wF(){var E;const e=Ue(),t=wn(),[n,r]=A.useState(null),[a,o]=A.useState("all"),l=tt({queryKey:["processes"],queryFn:mF,refetchInterval:5e3}),u=Xt({mutationFn:gF,onSuccess:v=>{r(v.message),t.invalidateQueries({queryKey:["processes"]})},onError:v=>r(v instanceof Error?v.message:String(v))}),d=tt({queryKey:["reclaim"],queryFn:yF}),[h,g]=A.useState("");A.useEffect(()=>{d.data&&h===""&&g(String(d.data.idleMinutes))},[d.data,h]);const m=Xt({mutationFn:v=>bF(v),onSuccess:v=>{r(`自动回收已设为 ${v.idleMinutes} 分钟空闲`),t.invalidateQueries({queryKey:["reclaim"]})},onError:v=>r(v instanceof Error?v.message:String(v))}),y=l.data??[],b=y.filter(v=>a==="all"?!0:v.kind===a);return f.jsxs("div",{className:"max-w-full",children:[f.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[f.jsx(ah,{size:22,strokeWidth:2.5}),f.jsx("h1",{className:"font-[family-name:var(--font-heading)] font-bold text-2xl",children:e("processes.title")}),f.jsxs("button",{type:"button","aria-label":e("processes.refresh"),onClick:()=>t.invalidateQueries({queryKey:["processes"]}),className:"ml-auto inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl border-2 border-[var(--color-text)] bg-white text-sm font-semibold shadow-[2px_2px_0_var(--color-text)] hover:-translate-x-px hover:-translate-y-px focus-visible:outline focus-visible:outline-2",children:[l.isFetching?f.jsx(ft,{size:15,className:"animate-spin"}):f.jsx(ms,{size:15}),e("processes.refresh")]})]}),f.jsxs("p",{className:"text-sm text-[var(--color-text)]/70 mb-3",children:[e("processes.subtitle")," · ",e("processes.aliveCount").replace("{n}",String(y.length))]}),f.jsxs("div",{className:`${dk} px-4 py-3 mb-4 flex flex-wrap items-center gap-2`,style:{boxShadow:"2px 2px 0 var(--color-text)"},children:[f.jsx(hL,{size:16,strokeWidth:2.5}),f.jsx("span",{className:"text-sm font-bold",children:"自动回收"}),f.jsx("span",{className:"text-sm text-[var(--color-text)]/70",children:"会话空闲"}),f.jsx("input",{type:"number",min:1,max:1440,value:h,onChange:v=>g(v.target.value),className:"w-20 px-2 py-1 rounded-lg border-2 border-[var(--color-text)] font-[family-name:var(--font-mono)] text-sm","aria-label":"自动回收空闲分钟数"}),f.jsx("span",{className:"text-sm text-[var(--color-text)]/70",children:"分钟后自动停(下次访问自动续上,不丢上下文)"}),f.jsxs("button",{type:"button",disabled:m.isPending||h===""||Number(h)===((E=d.data)==null?void 0:E.idleMinutes),onClick:()=>m.mutate(Math.round(Number(h))),className:"ml-auto inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border-2 border-[var(--color-text)] bg-[var(--color-accent-mint)] text-sm font-bold shadow-[2px_2px_0_var(--color-text)] hover:-translate-x-px hover:-translate-y-px disabled:opacity-50 focus-visible:outline focus-visible:outline-2","aria-label":"保存自动回收设置",children:[m.isPending?f.jsx(ft,{size:14,className:"animate-spin"}):f.jsx(ho,{size:14,strokeWidth:3}),"保存"]})]}),n&&f.jsx("div",{className:"mb-3 px-3 py-2 rounded-xl border-2 border-[var(--color-text)] bg-[var(--color-bg-cream)] text-sm font-mono",children:n}),f.jsx("div",{className:"flex flex-wrap gap-2 mb-3 items-center",children:["all","worker","chat"].map(v=>f.jsx("button",{type:"button","aria-label":e(`processes.kind.${v}`),onClick:()=>o(v),className:`px-3 py-1 rounded-lg border-2 border-[var(--color-text)] text-sm font-bold shadow-[2px_2px_0_var(--color-text)] focus-visible:outline focus-visible:outline-2 ${a===v?"bg-[var(--color-accent-yellow)]":"bg-white hover:-translate-x-px hover:-translate-y-px"}`,children:e(`processes.kind.${v}`)},v))}),f.jsx("div",{className:`${dk} overflow-hidden`,children:f.jsxs("table",{className:"w-full text-sm",children:[f.jsx("thead",{className:"bg-[var(--color-bg-cream)] font-[family-name:var(--font-heading)]",children:f.jsxs("tr",{className:"text-left",children:[f.jsx("th",{className:"px-3 py-2",children:e("processes.col.kind")}),f.jsx("th",{className:"px-3 py-2",children:e("processes.col.slot")}),f.jsx("th",{className:"px-3 py-2",children:e("processes.col.project")}),f.jsx("th",{className:"px-3 py-2",children:"PID"}),f.jsx("th",{className:"px-3 py-2",children:e("processes.col.state")}),f.jsx("th",{className:"px-3 py-2",children:e("processes.col.memory")}),f.jsx("th",{className:"px-3 py-2",children:"运行时间"}),f.jsx("th",{className:"px-3 py-2",children:e("processes.col.action")})]})}),f.jsxs("tbody",{className:"font-[family-name:var(--font-mono)]",children:[b.length===0&&f.jsx("tr",{children:f.jsx("td",{colSpan:8,className:"px-3 py-6 text-center text-[var(--color-text)]/50",children:e("processes.empty")})}),b.map(v=>f.jsxs("tr",{className:"border-t-2 border-[var(--color-text)]/10",title:v.cwd??"",children:[f.jsx("td",{className:"px-3 py-2",children:f.jsx("span",{className:`inline-block px-2 py-0.5 rounded-lg border-2 border-[var(--color-text)] text-xs font-bold ${v.kind==="worker"?"bg-[var(--color-accent-yellow)]":"bg-[var(--color-accent-purple)]"}`,children:e(`processes.kind.${v.kind}`)})}),f.jsx("td",{className:"px-3 py-2 max-w-[220px] truncate",children:v.slot}),f.jsx("td",{className:"px-3 py-2 max-w-[220px] truncate",children:v.kind==="chat"&&fk(v)?f.jsxs(ha,{to:`/chat/${fk(v)}`,className:"inline-flex items-center gap-1 font-semibold text-[var(--color-text)] underline decoration-2 underline-offset-2 hover:opacity-70",title:"打开对话窗口",children:[f.jsx(k_,{size:12,strokeWidth:2.5})," ",Zg(v)]}):v.kind==="worker"&&v.project?f.jsxs(ha,{to:`/board?project=${encodeURIComponent(v.project)}`,className:"inline-flex items-center gap-1 font-semibold text-[var(--color-text)] underline decoration-2 underline-offset-2 hover:opacity-70",title:"打开该项目看板",children:[f.jsx(ah,{size:12,strokeWidth:2.5})," ",Zg(v)]}):f.jsx("span",{children:Zg(v)})}),f.jsx("td",{className:"px-3 py-2",children:v.pid??"—"}),f.jsx("td",{className:"px-3 py-2",children:f.jsx(vF,{p:v})}),f.jsx("td",{className:"px-3 py-2",children:v.memoryMB!=null?`${v.memoryMB} MB`:"—"}),f.jsx("td",{className:"px-3 py-2",children:xF(v.startedAt)}),f.jsx("td",{className:"px-3 py-2",children:v.alive&&v.pid!=null?f.jsxs("button",{type:"button","aria-label":`${e("processes.kill")} ${v.slot}`,onClick:()=>{confirm(e("processes.killConfirm").replace("{slot}",v.slot))&&u.mutate(v.pid)},className:"inline-flex items-center gap-1 px-2.5 py-1 rounded-lg border-2 border-[var(--color-text)] bg-[var(--color-accent-pink)] text-xs font-bold shadow-[2px_2px_0_var(--color-text)] hover:-translate-x-px hover:-translate-y-px active:translate-x-0.5 active:translate-y-0.5 focus-visible:outline focus-visible:outline-2",children:[f.jsx(b_,{size:13})," ",e("processes.kill")]}):f.jsx("span",{className:"text-[var(--color-text)]/40 text-xs",children:"—"})})]},v.slot))]})]})})]})}function EF(e={}){const t=new URLSearchParams;e.project&&t.set("project",e.project),e.action&&t.set("action",e.action);const n=t.toString();return Nt(`/api/audit${n?`?${n}`:""}`).then(r=>r.data)}const kF="border-[3px] border-[var(--color-text)] rounded-2xl bg-white shadow-[4px_4px_0_var(--color-text)]",SF={create:"bg-[var(--color-accent-mint)]",modify:"bg-[var(--color-accent-yellow)]",delete:"bg-[var(--color-accent-pink)]",daemon:"bg-[var(--color-accent-purple)]"};function _F(){const e=Ue(),t=wn(),[n,r]=A.useState(""),a=tt({queryKey:["audit",n],queryFn:()=>EF(n?{action:n}:{}),refetchInterval:8e3}),o=a.data??[],l=u=>e(`audit.action.${u}`);return f.jsxs("div",{className:"max-w-full",children:[f.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[f.jsx(N_,{size:22,strokeWidth:2.5}),f.jsx("h1",{className:"font-[family-name:var(--font-heading)] font-bold text-2xl",children:e("audit.title")}),f.jsxs("button",{type:"button","aria-label":e("audit.refresh"),onClick:()=>t.invalidateQueries({queryKey:["audit"]}),className:"ml-auto inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl border-2 border-[var(--color-text)] bg-white text-sm font-semibold shadow-[2px_2px_0_var(--color-text)] hover:-translate-x-px hover:-translate-y-px focus-visible:outline focus-visible:outline-2",children:[a.isFetching?f.jsx(ft,{size:15,className:"animate-spin"}):f.jsx(ms,{size:15}),e("audit.refresh")]})]}),f.jsx("p",{className:"text-sm text-[var(--color-text)]/70 mb-4",children:e("audit.subtitle")}),f.jsx("div",{className:"flex gap-2 mb-3",children:["","create","modify","delete","daemon"].map(u=>f.jsx("button",{type:"button","aria-label":u?l(u):e("audit.filter.all"),onClick:()=>r(u),className:`px-3 py-1 rounded-lg border-2 border-[var(--color-text)] text-sm font-bold shadow-[2px_2px_0_var(--color-text)] focus-visible:outline focus-visible:outline-2 ${n===u?"bg-[var(--color-accent-purple)]":"bg-white hover:-translate-x-px hover:-translate-y-px"}`,children:u?l(u):e("audit.filter.all")},u||"all"))}),f.jsx("div",{className:`${kF} overflow-hidden`,children:f.jsxs("table",{className:"w-full text-sm",children:[f.jsx("thead",{className:"bg-[var(--color-bg-cream)] font-[family-name:var(--font-heading)]",children:f.jsxs("tr",{className:"text-left",children:[f.jsx("th",{className:"px-3 py-2",children:e("audit.col.time")}),f.jsx("th",{className:"px-3 py-2",children:e("audit.col.action")}),f.jsx("th",{className:"px-3 py-2",children:e("audit.col.project")}),f.jsx("th",{className:"px-3 py-2",children:e("audit.col.detail")})]})}),f.jsxs("tbody",{className:"font-[family-name:var(--font-mono)]",children:[o.length===0&&f.jsx("tr",{children:f.jsx("td",{colSpan:4,className:"px-3 py-6 text-center text-[var(--color-text)]/50",children:e("audit.empty")})}),o.map((u,d)=>f.jsxs("tr",{className:"border-t-2 border-[var(--color-text)]/10",children:[f.jsx("td",{className:"px-3 py-2 whitespace-nowrap",children:new Date(u.ts).toLocaleString()}),f.jsx("td",{className:"px-3 py-2",children:f.jsx("span",{className:`inline-block px-2 py-0.5 rounded-lg border-2 border-[var(--color-text)] text-xs font-bold ${SF[u.action]}`,children:l(u.action)})}),f.jsx("td",{className:"px-3 py-2",children:u.project}),f.jsx("td",{className:"px-3 py-2 text-[var(--color-text)]/70",children:u.detail??(u.source?`(${u.source})`:"—")})]},`${u.ts}-${d}`))]})]})})]})}const Jg="rounded-xl border-[3px] border-[var(--color-text)] shadow-[3px_3px_0_var(--color-text)] bg-white p-3";function NF(){const e=Ue(),[t,n]=A.useState(""),[r,a]=A.useState([]),[o,l]=A.useState([]),[u,d]=A.useState(!1),[h,g]=A.useState(null),[m,y]=A.useState(null);A.useEffect(()=>{fetch("/api/memory-cfg").then(v=>v.json()).then(v=>y(v.viewerUrl??"")).catch(()=>y(""))},[]);async function b(){try{const v=await fetch("/api/memory/sessions");if(!v.ok)throw new Error(`HTTP ${v.status}`);const S=await v.json();l((S.sessions??S??[]).slice(0,30))}catch(v){g(v instanceof Error?v.message:String(v))}}A.useEffect(()=>{b()},[]);async function E(){if(t.trim()){d(!0),g(null);try{const v=await fetch("/api/memory/smart-search",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({query:t,limit:15})});if(!v.ok)throw new Error(`HTTP ${v.status}`);const S=await v.json();a(S.results??S.hits??[])}catch(v){g(v instanceof Error?v.message:String(v))}finally{d(!1)}}}return m===null?null:m?f.jsxs("div",{className:"flex flex-col gap-4 h-full min-h-0",children:[f.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[f.jsxs("h1",{className:"font-[family-name:var(--font-heading)] font-bold text-2xl text-[var(--color-text)]",children:["🧠 ",e("nav.memory")]}),f.jsxs("a",{href:m,target:"_blank",rel:"noreferrer",className:"text-sm font-semibold underline decoration-2 underline-offset-2 text-[var(--color-text)] hover:opacity-70",children:["↗ ",m]})]}),f.jsx("div",{className:"flex-1 min-h-0 rounded-2xl border-[3px] border-[var(--color-text)] shadow-[4px_4px_0_var(--color-text)] overflow-hidden bg-white",children:f.jsx("iframe",{src:m,title:"agentmemory dashboard",className:"w-full h-full border-0",style:{minHeight:"calc(100vh - 160px)"}})})]}):f.jsxs("div",{className:"flex flex-col gap-4",children:[f.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[f.jsxs("h1",{className:"font-[family-name:var(--font-heading)] font-bold text-2xl text-[var(--color-text)]",children:["🧠 ",e("nav.memory")]}),f.jsx("span",{className:"text-xs text-[var(--color-text)] opacity-60",children:e("memory.sub")})]}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("input",{value:t,onChange:v=>n(v.target.value),onKeyDown:v=>v.key==="Enter"&&E(),placeholder:e("memory.searchPlaceholder"),"aria-label":e("memory.searchPlaceholder"),className:"flex-1 rounded-xl border-[3px] border-[var(--color-text)] px-3 py-2 font-[family-name:var(--font-mono)] text-sm focus-visible:shadow-[3px_3px_0_var(--color-text)] outline-none"}),f.jsx("button",{type:"button",onClick:E,disabled:u,"aria-label":e("memory.search"),className:"rounded-xl border-[3px] border-[var(--color-text)] bg-[var(--color-accent-mint)] px-4 py-2 font-bold text-sm shadow-[3px_3px_0_var(--color-text)] hover:-translate-x-px hover:-translate-y-px hover:shadow-[4px_4px_0_var(--color-text)] active:translate-x-0.5 active:translate-y-0.5 active:shadow-[1px_1px_0_var(--color-text)] disabled:opacity-50",children:u?"…":e("memory.search")})]}),h&&f.jsxs("div",{className:"text-sm text-[var(--color-accent-pink,#d6336c)] font-semibold",children:["⚠ ",h]}),r.length>0&&f.jsxs("div",{className:"flex flex-col gap-2",children:[f.jsxs("h2",{className:"font-[family-name:var(--font-heading)] font-bold text-sm text-[var(--color-text)]",children:[e("memory.results"),"(",r.length,")"]}),r.map(v=>{var S;return f.jsxs("div",{className:Jg,children:[f.jsxs("div",{className:"flex items-center gap-2 text-xs opacity-60 font-[family-name:var(--font-mono)]",children:[f.jsx("span",{children:v.type||v.title}),f.jsx("span",{children:"·"}),f.jsx("span",{children:new Date(v.timestamp).toLocaleString()}),f.jsx("span",{children:"·"}),f.jsxs("span",{children:["score ",(S=v.score)==null?void 0:S.toFixed(3)]})]}),f.jsx("div",{className:"text-sm mt-1 text-[var(--color-text)]",children:v.text||v.content||v.summary||f.jsx("span",{className:"opacity-50 italic",children:e("memory.rawHint")})})]},v.obsId)})]}),f.jsxs("div",{className:"flex flex-col gap-2",children:[f.jsxs("h2",{className:"font-[family-name:var(--font-heading)] font-bold text-sm text-[var(--color-text)]",children:[e("memory.sessions"),"(",o.length,")"]}),o.length===0&&f.jsx("div",{className:`${Jg} text-sm opacity-60`,children:e("memory.empty")}),o.map((v,S)=>{var k;return f.jsxs("div",{className:Jg,children:[f.jsx("div",{className:"font-[family-name:var(--font-mono)] text-xs text-[var(--color-text)]",children:(v.cwd??"").split("/").pop()||((k=v.sessionId)==null?void 0:k.slice(0,8))||"?"}),v.firstPrompt&&f.jsx("div",{className:"text-xs opacity-60 mt-1 line-clamp-2",children:v.firstPrompt.slice(0,160)})]},v.sessionId??S)})]})]})}function CF(){return Nt("/api/providers")}async function jF(e,t){const n=await fetch("/api/providers",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({kind:e,entry:t})});if(!n.ok)throw new Error(`${n.status}: ${await n.text()}`);return n.json()}async function AF(e,t){const n=await fetch(`/api/providers/${e}/${encodeURIComponent(t)}`,{method:"DELETE"});if(!n.ok)throw new Error(`${n.status}: ${await n.text()}`);return n.json()}const hk=[{key:"memory",labelKey:"plugins.tab.memory"},{key:"channel",labelKey:"plugins.tab.channel"},{key:"model",labelKey:"plugins.tab.model"},{key:"tool",labelKey:"plugins.tab.tool"}];function TF(){const e=Ue(),[t,n]=A.useState("memory");return f.jsxs("div",{className:"flex flex-col gap-6 w-full",children:[f.jsxs("header",{children:[f.jsx("h1",{className:"font-[family-name:var(--font-heading)] text-4xl font-bold",children:e("plugins.h1")}),f.jsx("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:e("plugins.desc")})]}),f.jsx("div",{role:"tablist","aria-label":e("plugins.h1"),className:"flex gap-2 flex-wrap",children:hk.map(r=>{const a=t===r.key;return f.jsx("button",{role:"tab","aria-selected":a,type:"button",onClick:()=>n(r.key),className:["px-4 py-2 rounded-xl font-bold text-sm border-2 transition-transform duration-150",a?"bg-[var(--color-accent-mint)] border-[var(--color-text)] shadow-[3px_3px_0_var(--color-text)]":"border-[var(--color-text)] bg-white hover:-translate-x-px hover:-translate-y-px hover:shadow-[3px_3px_0_var(--color-text)]"].join(" "),children:e(r.labelKey)},r.key)})}),f.jsx("div",{role:"tabpanel",children:t==="memory"?f.jsx(OF,{}):t==="model"?f.jsx(DF,{}):f.jsx(MF,{label:e(hk.find(r=>r.key===t).labelKey)})})]})}function MF({label:e}){const t=Ue();return f.jsx("section",{className:"nb-card",children:f.jsxs("p",{className:"text-[var(--color-text-muted)] text-sm",children:[e," — ",t("plugins.comingSoon")]})})}function OF(){var E,v,S;const e=Ue(),t=wn(),{alert:n}=Zn(),r=tt({queryKey:["system-memory"],queryFn:LL}),[a,o]=A.useState(null),[l,u]=A.useState(null);A.useEffect(()=>{r.data&&a===null&&(o(r.data.provider),u(r.data.url))},[r.data,a]);const d=a??((E=r.data)==null?void 0:E.provider)??"agentmemory",h=l??((v=r.data)==null?void 0:v.url)??"",g=r.data!=null&&(d!==r.data.provider||d==="custom"&&h!==r.data.url),m=k=>{const j=`system.memory.opt.${k}`;return e(j)},y=Xt({mutationFn:()=>IL(d,d==="custom"?h:""),onSuccess:()=>{t.invalidateQueries({queryKey:["system-memory"]}),t.invalidateQueries({queryKey:["system-env"]})},onError:k=>{n({title:e("system.memory.error"),body:k instanceof Error?k.message:String(k)})}}),b=((S=r.data)==null?void 0:S.options)??["none","builtin","agentmemory","custom"];return f.jsxs("section",{className:"nb-card",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold mb-1",children:e("system.memory.title")}),f.jsx("p",{className:"text-xs text-[var(--color-text-muted)] mb-3",children:e("system.memory.desc")}),f.jsxs("div",{className:"flex flex-col gap-3 max-w-md",children:[f.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[f.jsx("span",{className:"font-bold",children:e("system.memory.provider")}),f.jsx("select",{className:"nb-input",value:d,onChange:k=>o(k.target.value),"aria-label":e("system.memory.provider"),children:b.map(k=>f.jsx("option",{value:k,children:m(k)},k))})]}),d==="custom"&&f.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[f.jsx("span",{className:"font-bold",children:e("system.memory.url")}),f.jsx("input",{className:"nb-input font-[family-name:var(--font-mono)] text-xs",type:"text",value:h,onChange:k=>u(k.target.value),placeholder:e("system.memory.url.placeholder"),spellCheck:!1,"aria-label":e("system.memory.url")})]}),f.jsx("div",{className:"flex justify-end",children:f.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"6px 12px",fontSize:12},onClick:()=>y.mutate(),disabled:!g||y.isPending,type:"button","aria-label":e("system.memory.save.aria"),children:[y.isPending?f.jsx(ft,{size:12,strokeWidth:3,className:"animate-spin"}):f.jsx(ho,{size:12,strokeWidth:3}),y.isSuccess&&!g?e("system.memory.saved"):e("system.memory.save")]})})]})]})}function DF(){var S,k,j;const e=wn(),{alert:t,confirm:n}=Zn(),r=tt({queryKey:["providers"],queryFn:CF}),o=(S=tt({queryKey:["system-agents"],queryFn:I_}).data)==null?void 0:S.agents,[l,u]=A.useState(null),d=Xt({mutationFn:()=>jF(l.kind,l.entry),onSuccess:()=>{u(null),e.invalidateQueries({queryKey:["providers"]})},onError:_=>void t({title:"保存失败",body:_ instanceof Error?_.message:String(_)})}),h=Xt({mutationFn:_=>AF(_.kind,_.id),onSuccess:()=>void e.invalidateQueries({queryKey:["providers"]}),onError:_=>void t({title:"删除失败",body:_ instanceof Error?_.message:String(_)})}),g=Xt({mutationFn:_=>zL(_),onSuccess:()=>void e.invalidateQueries({queryKey:["system-agents"]}),onError:_=>void t({title:"设默认失败",body:_ instanceof Error?_.message:String(_)})}),m=(_,N,O)=>{if(!o)return!1;const T=_==="anthropic"?o.worker:o.reviewer;return(T.providerId||"official")===N&&T.model===O},y=(_,N,O)=>{if(!o)return;let T;if(_==="anthropic"){const M={...o.worker,model:O};N==="official"?delete M.providerId:M.providerId=N,T={...o,worker:M}}else T={...o,reviewer:{...o.reviewer,providerId:N,model:O}};g.mutate(T)},b=[{kind:"anthropic",title:"Anthropic 兼容(worker / claude)",items:((k=r.data)==null?void 0:k.anthropic)??[]},{kind:"openai",title:"OpenAI 兼容(reviewer / openai agent)",items:((j=r.data)==null?void 0:j.openai)??[]}],E=_=>u({kind:_,isNew:!0,entry:{id:"",name:"",baseUrl:"",apiKey:"",models:[]}}),v=(_,N)=>u({kind:_,isNew:!1,entry:{id:N.id,name:N.name,baseUrl:N.baseUrl,apiKey:"",models:N.models}});return f.jsxs("section",{className:"nb-card",children:[f.jsx("h2",{className:"font-[family-name:var(--font-heading)] text-xl font-bold mb-1",children:"模型 API 端点"}),f.jsx("p",{className:"text-xs text-[var(--color-text-muted)] mb-4",children:"本地官方订阅(已登录验证)自动置顶,不可编辑;下方可增删第三方兼容端点。**点模型标签设为默认**(anthropic→worker / openai→监工);✓ = 当前默认。"}),f.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-5",children:b.map(_=>f.jsxs("div",{className:"flex flex-col gap-2",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("span",{className:"font-bold text-sm",children:_.title}),f.jsxs("button",{className:"nb-btn",style:{padding:"4px 10px",fontSize:12},type:"button",onClick:()=>E(_.kind),"aria-label":`添加 ${_.title} 端点`,children:[f.jsx(Vr,{size:12,strokeWidth:3})," 添加"]})]}),_.items.length===0&&f.jsx("p",{className:"text-xs text-[var(--color-text-muted)]",children:"(无端点)"}),_.items.map(N=>f.jsxs("div",{className:["rounded-lg px-3 py-2 border-2",N.builtin?"border-[var(--color-text)] bg-[var(--color-bg-cream)]":"border-[var(--color-text)]"].join(" "),children:[f.jsxs("div",{className:"flex items-center justify-between gap-2",children:[f.jsxs("div",{className:"min-w-0",children:[f.jsx("span",{className:"font-[family-name:var(--font-mono)] font-bold text-sm",children:N.id}),f.jsxs("span",{className:"text-[var(--color-text-muted)] text-sm",children:[" · ",N.name]}),N.builtin?f.jsxs("div",{className:"text-xs text-[var(--color-text-muted)] truncate",children:["本地订阅",N.detail?` · ${N.detail}`:""," · 已验证可用"]}):f.jsxs("div",{className:"text-xs text-[var(--color-text-muted)] truncate",children:[N.baseUrl," · key ",N.hasKey?N.apiKey:"未设置"]})]}),N.builtin?f.jsx("span",{className:"shrink-0 text-[10px] font-bold px-2 py-0.5 rounded-md border-2 border-[var(--color-text)] bg-[var(--color-accent-yellow)]",children:"内置"}):f.jsxs("div",{className:"flex gap-1 shrink-0",children:[f.jsx("button",{className:"nb-btn",style:{padding:"4px 8px"},type:"button",onClick:()=>v(_.kind,N),"aria-label":`编辑 ${N.id}`,children:f.jsx(qR,{size:12,strokeWidth:3})}),f.jsx("button",{className:"nb-btn nb-btn-danger",style:{padding:"4px 8px"},type:"button",onClick:async()=>{await n({title:"删除端点",body:`删除 ${N.id}?`,danger:!0})&&h.mutate({kind:_.kind,id:N.id})},"aria-label":`删除 ${N.id}`,children:f.jsx(po,{size:12,strokeWidth:3})})]})]}),N.models.length>0&&f.jsx("div",{className:"flex flex-wrap gap-1.5 mt-2",children:N.models.map(O=>{const T=m(_.kind,N.id,O);return f.jsxs("button",{type:"button",onClick:()=>y(_.kind,N.id,O),disabled:g.isPending,"aria-pressed":T,className:["px-2 py-0.5 rounded-md text-xs font-[family-name:var(--font-mono)] border-2 border-[var(--color-text)]",T?"bg-[var(--color-accent-mint)] font-bold":"bg-[var(--color-bg)] hover:bg-[var(--color-bg-cream)]"].join(" "),title:T?"当前默认":"设为默认",children:[O,T?" ✓":""]},O)})})]},N.id))]},_.kind))}),l&&f.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",onClick:()=>u(null),children:f.jsx("div",{onClick:_=>_.stopPropagation(),children:f.jsx(RF,{state:l,onChange:_=>u({...l,entry:_}),onCancel:()=>u(null),onSave:()=>d.mutate(),saving:d.isPending})})})]})}function RF({state:e,onChange:t,onCancel:n,onSave:r,saving:a}){const o=e.entry,l=d=>t({...o,...d}),u=/^[a-zA-Z0-9_-]+$/.test(o.id)&&o.name.trim()&&o.baseUrl.trim();return f.jsxs("div",{className:"border-[3px] border-[var(--color-text)] rounded-2xl p-6 bg-[var(--color-bg-cream)] shadow-[6px_6px_0_var(--color-text)] flex flex-col gap-4 w-[min(92vw,640px)] max-h-[88vh] overflow-y-auto",children:[f.jsxs("span",{className:"font-[family-name:var(--font-heading)] font-bold text-lg",children:[e.isNew?"新增端点":`编辑 ${o.id}`,f.jsxs("span",{className:"text-[var(--color-text-muted)] text-sm font-normal",children:["(",e.kind,")"]})]}),f.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[f.jsxs("label",{className:"flex flex-col gap-1 text-sm font-bold",children:["id(英数 _ -)",f.jsx("input",{className:"nb-input font-[family-name:var(--font-mono)]",value:o.id,disabled:!e.isNew,onChange:d=>l({id:d.target.value}),placeholder:"如 my-openai",spellCheck:!1})]}),f.jsxs("label",{className:"flex flex-col gap-1 text-sm font-bold",children:["名称",f.jsx("input",{className:"nb-input",value:o.name,onChange:d=>l({name:d.target.value}),placeholder:"显示名"})]})]}),f.jsxs("label",{className:"flex flex-col gap-1 text-sm font-bold",children:["Base URL",f.jsx("input",{className:"nb-input font-[family-name:var(--font-mono)] text-sm",value:o.baseUrl,onChange:d=>l({baseUrl:d.target.value}),placeholder:"https://api.example.com/v1",spellCheck:!1})]}),f.jsxs("label",{className:"flex flex-col gap-1 text-sm font-bold",children:["API Key",!e.isNew&&"(留空=保留)",f.jsx("input",{className:"nb-input font-[family-name:var(--font-mono)] text-sm",type:"password",value:o.apiKey??"",onChange:d=>l({apiKey:d.target.value}),placeholder:e.isNew?"sk-...":"••••(留空不改)",spellCheck:!1})]}),f.jsxs("label",{className:"flex flex-col gap-1 text-sm font-bold",children:["Models(逗号或换行分隔)",f.jsx("textarea",{className:"nb-input font-[family-name:var(--font-mono)] text-sm",rows:5,value:o.models.join(", "),onChange:d=>l({models:d.target.value.split(/[,\n]/).map(h=>h.trim()).filter(Boolean)}),placeholder:"gpt-5.4, gpt-4o",spellCheck:!1})]}),f.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[f.jsx("button",{className:"nb-btn",style:{padding:"8px 16px"},type:"button",onClick:n,children:"取消"}),f.jsxs("button",{className:"nb-btn nb-btn-primary",style:{padding:"8px 16px"},type:"button",disabled:!u||a,onClick:r,children:[a?f.jsx(ft,{size:14,strokeWidth:3,className:"animate-spin"}):f.jsx(ho,{size:14,strokeWidth:3})," 保存"]})]})]})}function mn(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=mn(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var LF={value:()=>{}};function Xh(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Qf(n)}function Qf(e){this._=e}function IF(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",a=n.indexOf(".");if(a>=0&&(r=n.slice(a+1),n=n.slice(0,a)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Qf.prototype=Xh.prototype={constructor:Qf,on:function(e,t){var n=this._,r=IF(e+"",n),a,o=-1,l=r.length;if(arguments.length<2){for(;++o<l;)if((a=(e=r[o]).type)&&(a=zF(n[a],e.name)))return a;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<l;)if(a=(e=r[o]).type)n[a]=pk(n[a],e.name,t);else if(t==null)for(a in n)n[a]=pk(n[a],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Qf(e)},call:function(e,t){if((a=arguments.length-2)>0)for(var n=new Array(a),r=0,a,o;r<a;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,a=o.length;r<a;++r)o[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],a=0,o=r.length;a<o;++a)r[a].value.apply(t,n)}};function zF(e,t){for(var n=0,r=e.length,a;n<r;++n)if((a=e[n]).name===t)return a.value}function pk(e,t,n){for(var r=0,a=e.length;r<a;++r)if(e[r].name===t){e[r]=LF,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Zy="http://www.w3.org/1999/xhtml";const mk={svg:"http://www.w3.org/2000/svg",xhtml:Zy,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Zh(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),mk.hasOwnProperty(t)?{space:mk[t],local:e}:e}function PF(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Zy&&t.documentElement.namespaceURI===Zy?t.createElement(e):t.createElementNS(n,e)}}function BF(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function pC(e){var t=Zh(e);return(t.local?BF:PF)(t)}function UF(){}function vx(e){return e==null?UF:function(){return this.querySelector(e)}}function $F(e){typeof e!="function"&&(e=vx(e));for(var t=this._groups,n=t.length,r=new Array(n),a=0;a<n;++a)for(var o=t[a],l=o.length,u=r[a]=new Array(l),d,h,g=0;g<l;++g)(d=o[g])&&(h=e.call(d,d.__data__,g,o))&&("__data__"in d&&(h.__data__=d.__data__),u[g]=h);return new Nr(r,this._parents)}function FF(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function HF(){return[]}function mC(e){return e==null?HF:function(){return this.querySelectorAll(e)}}function qF(e){return function(){return FF(e.apply(this,arguments))}}function KF(e){typeof e=="function"?e=qF(e):e=mC(e);for(var t=this._groups,n=t.length,r=[],a=[],o=0;o<n;++o)for(var l=t[o],u=l.length,d,h=0;h<u;++h)(d=l[h])&&(r.push(e.call(d,d.__data__,h,l)),a.push(d));return new Nr(r,a)}function gC(e){return function(){return this.matches(e)}}function yC(e){return function(t){return t.matches(e)}}var GF=Array.prototype.find;function VF(e){return function(){return GF.call(this.children,e)}}function YF(){return this.firstElementChild}function QF(e){return this.select(e==null?YF:VF(typeof e=="function"?e:yC(e)))}var WF=Array.prototype.filter;function XF(){return Array.from(this.children)}function ZF(e){return function(){return WF.call(this.children,e)}}function JF(e){return this.selectAll(e==null?XF:ZF(typeof e=="function"?e:yC(e)))}function eH(e){typeof e!="function"&&(e=gC(e));for(var t=this._groups,n=t.length,r=new Array(n),a=0;a<n;++a)for(var o=t[a],l=o.length,u=r[a]=[],d,h=0;h<l;++h)(d=o[h])&&e.call(d,d.__data__,h,o)&&u.push(d);return new Nr(r,this._parents)}function bC(e){return new Array(e.length)}function tH(){return new Nr(this._enter||this._groups.map(bC),this._parents)}function bh(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}bh.prototype={constructor:bh,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function nH(e){return function(){return e}}function rH(e,t,n,r,a,o){for(var l=0,u,d=t.length,h=o.length;l<h;++l)(u=t[l])?(u.__data__=o[l],r[l]=u):n[l]=new bh(e,o[l]);for(;l<d;++l)(u=t[l])&&(a[l]=u)}function iH(e,t,n,r,a,o,l){var u,d,h=new Map,g=t.length,m=o.length,y=new Array(g),b;for(u=0;u<g;++u)(d=t[u])&&(y[u]=b=l.call(d,d.__data__,u,t)+"",h.has(b)?a[u]=d:h.set(b,d));for(u=0;u<m;++u)b=l.call(e,o[u],u,o)+"",(d=h.get(b))?(r[u]=d,d.__data__=o[u],h.delete(b)):n[u]=new bh(e,o[u]);for(u=0;u<g;++u)(d=t[u])&&h.get(y[u])===d&&(a[u]=d)}function aH(e){return e.__data__}function sH(e,t){if(!arguments.length)return Array.from(this,aH);var n=t?iH:rH,r=this._parents,a=this._groups;typeof e!="function"&&(e=nH(e));for(var o=a.length,l=new Array(o),u=new Array(o),d=new Array(o),h=0;h<o;++h){var g=r[h],m=a[h],y=m.length,b=oH(e.call(g,g&&g.__data__,h,r)),E=b.length,v=u[h]=new Array(E),S=l[h]=new Array(E),k=d[h]=new Array(y);n(g,m,v,S,k,b,t);for(var j=0,_=0,N,O;j<E;++j)if(N=v[j]){for(j>=_&&(_=j+1);!(O=S[_])&&++_<E;);N._next=O||null}}return l=new Nr(l,r),l._enter=u,l._exit=d,l}function oH(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function lH(){return new Nr(this._exit||this._groups.map(bC),this._parents)}function cH(e,t,n){var r=this.enter(),a=this,o=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(a=t(a),a&&(a=a.selection())),n==null?o.remove():n(o),r&&a?r.merge(a).order():a}function uH(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,a=n.length,o=r.length,l=Math.min(a,o),u=new Array(a),d=0;d<l;++d)for(var h=n[d],g=r[d],m=h.length,y=u[d]=new Array(m),b,E=0;E<m;++E)(b=h[E]||g[E])&&(y[E]=b);for(;d<a;++d)u[d]=n[d];return new Nr(u,this._parents)}function dH(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],a=r.length-1,o=r[a],l;--a>=0;)(l=r[a])&&(o&&l.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(l,o),o=l);return this}function fH(e){e||(e=hH);function t(m,y){return m&&y?e(m.__data__,y.__data__):!m-!y}for(var n=this._groups,r=n.length,a=new Array(r),o=0;o<r;++o){for(var l=n[o],u=l.length,d=a[o]=new Array(u),h,g=0;g<u;++g)(h=l[g])&&(d[g]=h);d.sort(t)}return new Nr(a,this._parents).order()}function hH(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function pH(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function mH(){return Array.from(this)}function gH(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],a=0,o=r.length;a<o;++a){var l=r[a];if(l)return l}return null}function yH(){let e=0;for(const t of this)++e;return e}function bH(){return!this.node()}function xH(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var a=t[n],o=0,l=a.length,u;o<l;++o)(u=a[o])&&e.call(u,u.__data__,o,a);return this}function vH(e){return function(){this.removeAttribute(e)}}function wH(e){return function(){this.removeAttributeNS(e.space,e.local)}}function EH(e,t){return function(){this.setAttribute(e,t)}}function kH(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function SH(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function _H(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function NH(e,t){var n=Zh(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?wH:vH:typeof t=="function"?n.local?_H:SH:n.local?kH:EH)(n,t))}function xC(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function CH(e){return function(){this.style.removeProperty(e)}}function jH(e,t,n){return function(){this.style.setProperty(e,t,n)}}function AH(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function TH(e,t,n){return arguments.length>1?this.each((t==null?CH:typeof t=="function"?AH:jH)(e,t,n??"")):Ll(this.node(),e)}function Ll(e,t){return e.style.getPropertyValue(t)||xC(e).getComputedStyle(e,null).getPropertyValue(t)}function MH(e){return function(){delete this[e]}}function OH(e,t){return function(){this[e]=t}}function DH(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function RH(e,t){return arguments.length>1?this.each((t==null?MH:typeof t=="function"?DH:OH)(e,t)):this.node()[e]}function vC(e){return e.trim().split(/^|\s+/)}function wx(e){return e.classList||new wC(e)}function wC(e){this._node=e,this._names=vC(e.getAttribute("class")||"")}wC.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function EC(e,t){for(var n=wx(e),r=-1,a=t.length;++r<a;)n.add(t[r])}function kC(e,t){for(var n=wx(e),r=-1,a=t.length;++r<a;)n.remove(t[r])}function LH(e){return function(){EC(this,e)}}function IH(e){return function(){kC(this,e)}}function zH(e,t){return function(){(t.apply(this,arguments)?EC:kC)(this,e)}}function PH(e,t){var n=vC(e+"");if(arguments.length<2){for(var r=wx(this.node()),a=-1,o=n.length;++a<o;)if(!r.contains(n[a]))return!1;return!0}return this.each((typeof t=="function"?zH:t?LH:IH)(n,t))}function BH(){this.textContent=""}function UH(e){return function(){this.textContent=e}}function $H(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function FH(e){return arguments.length?this.each(e==null?BH:(typeof e=="function"?$H:UH)(e)):this.node().textContent}function HH(){this.innerHTML=""}function qH(e){return function(){this.innerHTML=e}}function KH(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function GH(e){return arguments.length?this.each(e==null?HH:(typeof e=="function"?KH:qH)(e)):this.node().innerHTML}function VH(){this.nextSibling&&this.parentNode.appendChild(this)}function YH(){return this.each(VH)}function QH(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function WH(){return this.each(QH)}function XH(e){var t=typeof e=="function"?e:pC(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function ZH(){return null}function JH(e,t){var n=typeof e=="function"?e:pC(e),r=t==null?ZH:typeof t=="function"?t:vx(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function e8(){var e=this.parentNode;e&&e.removeChild(this)}function t8(){return this.each(e8)}function n8(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function r8(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function i8(e){return this.select(e?r8:n8)}function a8(e){return arguments.length?this.property("__data__",e):this.node().__data__}function s8(e){return function(t){e.call(this,t,this.__data__)}}function o8(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function l8(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,a=t.length,o;n<a;++n)o=t[n],(!e.type||o.type===e.type)&&o.name===e.name?this.removeEventListener(o.type,o.listener,o.options):t[++r]=o;++r?t.length=r:delete this.__on}}}function c8(e,t,n){return function(){var r=this.__on,a,o=s8(t);if(r){for(var l=0,u=r.length;l<u;++l)if((a=r[l]).type===e.type&&a.name===e.name){this.removeEventListener(a.type,a.listener,a.options),this.addEventListener(a.type,a.listener=o,a.options=n),a.value=t;return}}this.addEventListener(e.type,o,n),a={type:e.type,name:e.name,value:t,listener:o,options:n},r?r.push(a):this.__on=[a]}}function u8(e,t,n){var r=o8(e+""),a,o=r.length,l;if(arguments.length<2){var u=this.node().__on;if(u){for(var d=0,h=u.length,g;d<h;++d)for(a=0,g=u[d];a<o;++a)if((l=r[a]).type===g.type&&l.name===g.name)return g.value}return}for(u=t?c8:l8,a=0;a<o;++a)this.each(u(r[a],t,n));return this}function SC(e,t,n){var r=xC(e),a=r.CustomEvent;typeof a=="function"?a=new a(t,n):(a=r.document.createEvent("Event"),n?(a.initEvent(t,n.bubbles,n.cancelable),a.detail=n.detail):a.initEvent(t,!1,!1)),e.dispatchEvent(a)}function d8(e,t){return function(){return SC(this,e,t)}}function f8(e,t){return function(){return SC(this,e,t.apply(this,arguments))}}function h8(e,t){return this.each((typeof t=="function"?f8:d8)(e,t))}function*p8(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],a=0,o=r.length,l;a<o;++a)(l=r[a])&&(yield l)}var _C=[null];function Nr(e,t){this._groups=e,this._parents=t}function Wu(){return new Nr([[document.documentElement]],_C)}function m8(){return this}Nr.prototype=Wu.prototype={constructor:Nr,select:$F,selectAll:KF,selectChild:QF,selectChildren:JF,filter:eH,data:sH,enter:tH,exit:lH,join:cH,merge:uH,selection:m8,order:dH,sort:fH,call:pH,nodes:mH,node:gH,size:yH,empty:bH,each:xH,attr:NH,style:TH,property:RH,classed:PH,text:FH,html:GH,raise:YH,lower:WH,append:XH,insert:JH,remove:t8,clone:i8,datum:a8,on:u8,dispatch:h8,[Symbol.iterator]:p8};function kr(e){return typeof e=="string"?new Nr([[document.querySelector(e)]],[document.documentElement]):new Nr([[e]],_C)}function g8(e){let t;for(;t=e.sourceEvent;)e=t;return e}function si(e,t){if(e=g8(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var a=t.getBoundingClientRect();return[e.clientX-a.left-t.clientLeft,e.clientY-a.top-t.clientTop]}}return[e.pageX,e.pageY]}const y8={passive:!1},ku={capture:!0,passive:!1};function ey(e){e.stopImmediatePropagation()}function bl(e){e.preventDefault(),e.stopImmediatePropagation()}function NC(e){var t=e.document.documentElement,n=kr(e).on("dragstart.drag",bl,ku);"onselectstart"in t?n.on("selectstart.drag",bl,ku):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function CC(e,t){var n=e.document.documentElement,r=kr(e).on("dragstart.drag",null);t&&(r.on("click.drag",bl,ku),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Of=e=>()=>e;function Jy(e,{sourceEvent:t,subject:n,target:r,identifier:a,active:o,x:l,y:u,dx:d,dy:h,dispatch:g}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:a,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:l,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:h,enumerable:!0,configurable:!0},_:{value:g}})}Jy.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function b8(e){return!e.ctrlKey&&!e.button}function x8(){return this.parentNode}function v8(e,t){return t??{x:e.x,y:e.y}}function w8(){return navigator.maxTouchPoints||"ontouchstart"in this}function jC(){var e=b8,t=x8,n=v8,r=w8,a={},o=Xh("start","drag","end"),l=0,u,d,h,g,m=0;function y(N){N.on("mousedown.drag",b).filter(r).on("touchstart.drag",S).on("touchmove.drag",k,y8).on("touchend.drag touchcancel.drag",j).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(N,O){if(!(g||!e.call(this,N,O))){var T=_(this,t.call(this,N,O),N,O,"mouse");T&&(kr(N.view).on("mousemove.drag",E,ku).on("mouseup.drag",v,ku),NC(N.view),ey(N),h=!1,u=N.clientX,d=N.clientY,T("start",N))}}function E(N){if(bl(N),!h){var O=N.clientX-u,T=N.clientY-d;h=O*O+T*T>m}a.mouse("drag",N)}function v(N){kr(N.view).on("mousemove.drag mouseup.drag",null),CC(N.view,h),bl(N),a.mouse("end",N)}function S(N,O){if(e.call(this,N,O)){var T=N.changedTouches,M=t.call(this,N,O),I=T.length,F,$;for(F=0;F<I;++F)($=_(this,M,N,O,T[F].identifier,T[F]))&&(ey(N),$("start",N,T[F]))}}function k(N){var O=N.changedTouches,T=O.length,M,I;for(M=0;M<T;++M)(I=a[O[M].identifier])&&(bl(N),I("drag",N,O[M]))}function j(N){var O=N.changedTouches,T=O.length,M,I;for(g&&clearTimeout(g),g=setTimeout(function(){g=null},500),M=0;M<T;++M)(I=a[O[M].identifier])&&(ey(N),I("end",N,O[M]))}function _(N,O,T,M,I,F){var $=o.copy(),U=si(F||T,O),K,Q,B;if((B=n.call(N,new Jy("beforestart",{sourceEvent:T,target:y,identifier:I,active:l,x:U[0],y:U[1],dx:0,dy:0,dispatch:$}),M))!=null)return K=B.x-U[0]||0,Q=B.y-U[1]||0,function q(z,Y,W){var G=U,D;switch(z){case"start":a[I]=q,D=l++;break;case"end":delete a[I],--l;case"drag":U=si(W||Y,O),D=l;break}$.call(z,N,new Jy(z,{sourceEvent:Y,subject:B,target:y,identifier:I,active:D,x:U[0]+K,y:U[1]+Q,dx:U[0]-G[0],dy:U[1]-G[1],dispatch:$}),M)}}return y.filter=function(N){return arguments.length?(e=typeof N=="function"?N:Of(!!N),y):e},y.container=function(N){return arguments.length?(t=typeof N=="function"?N:Of(N),y):t},y.subject=function(N){return arguments.length?(n=typeof N=="function"?N:Of(N),y):n},y.touchable=function(N){return arguments.length?(r=typeof N=="function"?N:Of(!!N),y):r},y.on=function(){var N=o.on.apply(o,arguments);return N===o?y:N},y.clickDistance=function(N){return arguments.length?(m=(N=+N)*N,y):Math.sqrt(m)},y}function Ex(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function AC(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Xu(){}var Su=.7,xh=1/Su,xl="\\s*([+-]?\\d+)\\s*",_u="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ti="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",E8=/^#([0-9a-f]{3,8})$/,k8=new RegExp(`^rgb\\(${xl},${xl},${xl}\\)$`),S8=new RegExp(`^rgb\\(${Ti},${Ti},${Ti}\\)$`),_8=new RegExp(`^rgba\\(${xl},${xl},${xl},${_u}\\)$`),N8=new RegExp(`^rgba\\(${Ti},${Ti},${Ti},${_u}\\)$`),C8=new RegExp(`^hsl\\(${_u},${Ti},${Ti}\\)$`),j8=new RegExp(`^hsla\\(${_u},${Ti},${Ti},${_u}\\)$`),gk={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Ex(Xu,oo,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:yk,formatHex:yk,formatHex8:A8,formatHsl:T8,formatRgb:bk,toString:bk});function yk(){return this.rgb().formatHex()}function A8(){return this.rgb().formatHex8()}function T8(){return TC(this).formatHsl()}function bk(){return this.rgb().formatRgb()}function oo(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=E8.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?xk(t):n===3?new ur(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Df(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Df(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=k8.exec(e))?new ur(t[1],t[2],t[3],1):(t=S8.exec(e))?new ur(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=_8.exec(e))?Df(t[1],t[2],t[3],t[4]):(t=N8.exec(e))?Df(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=C8.exec(e))?Ek(t[1],t[2]/100,t[3]/100,1):(t=j8.exec(e))?Ek(t[1],t[2]/100,t[3]/100,t[4]):gk.hasOwnProperty(e)?xk(gk[e]):e==="transparent"?new ur(NaN,NaN,NaN,0):null}function xk(e){return new ur(e>>16&255,e>>8&255,e&255,1)}function Df(e,t,n,r){return r<=0&&(e=t=n=NaN),new ur(e,t,n,r)}function M8(e){return e instanceof Xu||(e=oo(e)),e?(e=e.rgb(),new ur(e.r,e.g,e.b,e.opacity)):new ur}function eb(e,t,n,r){return arguments.length===1?M8(e):new ur(e,t,n,r??1)}function ur(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Ex(ur,eb,AC(Xu,{brighter(e){return e=e==null?xh:Math.pow(xh,e),new ur(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Su:Math.pow(Su,e),new ur(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ur(no(this.r),no(this.g),no(this.b),vh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vk,formatHex:vk,formatHex8:O8,formatRgb:wk,toString:wk}));function vk(){return`#${Gs(this.r)}${Gs(this.g)}${Gs(this.b)}`}function O8(){return`#${Gs(this.r)}${Gs(this.g)}${Gs(this.b)}${Gs((isNaN(this.opacity)?1:this.opacity)*255)}`}function wk(){const e=vh(this.opacity);return`${e===1?"rgb(":"rgba("}${no(this.r)}, ${no(this.g)}, ${no(this.b)}${e===1?")":`, ${e})`}`}function vh(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function no(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Gs(e){return e=no(e),(e<16?"0":"")+e.toString(16)}function Ek(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oi(e,t,n,r)}function TC(e){if(e instanceof oi)return new oi(e.h,e.s,e.l,e.opacity);if(e instanceof Xu||(e=oo(e)),!e)return new oi;if(e instanceof oi)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),o=Math.max(t,n,r),l=NaN,u=o-a,d=(o+a)/2;return u?(t===o?l=(n-r)/u+(n<r)*6:n===o?l=(r-t)/u+2:l=(t-n)/u+4,u/=d<.5?o+a:2-o-a,l*=60):u=d>0&&d<1?0:l,new oi(l,u,d,e.opacity)}function D8(e,t,n,r){return arguments.length===1?TC(e):new oi(e,t,n,r??1)}function oi(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Ex(oi,D8,AC(Xu,{brighter(e){return e=e==null?xh:Math.pow(xh,e),new oi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Su:Math.pow(Su,e),new oi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new ur(ty(e>=240?e-240:e+120,a,r),ty(e,a,r),ty(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new oi(kk(this.h),Rf(this.s),Rf(this.l),vh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=vh(this.opacity);return`${e===1?"hsl(":"hsla("}${kk(this.h)}, ${Rf(this.s)*100}%, ${Rf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function kk(e){return e=(e||0)%360,e<0?e+360:e}function Rf(e){return Math.max(0,Math.min(1,e||0))}function ty(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const kx=e=>()=>e;function R8(e,t){return function(n){return e+n*t}}function L8(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function I8(e){return(e=+e)==1?MC:function(t,n){return n-t?L8(t,n,e):kx(isNaN(t)?n:t)}}function MC(e,t){var n=t-e;return n?R8(e,n):kx(isNaN(e)?t:e)}const wh=(function e(t){var n=I8(t);function r(a,o){var l=n((a=eb(a)).r,(o=eb(o)).r),u=n(a.g,o.g),d=n(a.b,o.b),h=MC(a.opacity,o.opacity);return function(g){return a.r=l(g),a.g=u(g),a.b=d(g),a.opacity=h(g),a+""}}return r.gamma=e,r})(1);function z8(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(o){for(a=0;a<n;++a)r[a]=e[a]*(1-o)+t[a]*o;return r}}function P8(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function B8(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,a=new Array(r),o=new Array(n),l;for(l=0;l<r;++l)a[l]=uu(e[l],t[l]);for(;l<n;++l)o[l]=t[l];return function(u){for(l=0;l<r;++l)o[l]=a[l](u);return o}}function U8(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ci(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function $8(e,t){var n={},r={},a;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(a in t)a in e?n[a]=uu(e[a],t[a]):r[a]=t[a];return function(o){for(a in n)r[a]=n[a](o);return r}}var tb=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ny=new RegExp(tb.source,"g");function F8(e){return function(){return e}}function H8(e){return function(t){return e(t)+""}}function OC(e,t){var n=tb.lastIndex=ny.lastIndex=0,r,a,o,l=-1,u=[],d=[];for(e=e+"",t=t+"";(r=tb.exec(e))&&(a=ny.exec(t));)(o=a.index)>n&&(o=t.slice(n,o),u[l]?u[l]+=o:u[++l]=o),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:Ci(r,a)})),n=ny.lastIndex;return n<t.length&&(o=t.slice(n),u[l]?u[l]+=o:u[++l]=o),u.length<2?d[0]?H8(d[0].x):F8(t):(t=d.length,function(h){for(var g=0,m;g<t;++g)u[(m=d[g]).i]=m.x(h);return u.join("")})}function uu(e,t){var n=typeof t,r;return t==null||n==="boolean"?kx(t):(n==="number"?Ci:n==="string"?(r=oo(t))?(t=r,wh):OC:t instanceof oo?wh:t instanceof Date?U8:P8(t)?z8:Array.isArray(t)?B8:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?$8:Ci)(e,t)}var Sk=180/Math.PI,nb={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function DC(e,t,n,r,a,o){var l,u,d;return(l=Math.sqrt(e*e+t*t))&&(e/=l,t/=l),(d=e*n+t*r)&&(n-=e*d,r-=t*d),(u=Math.sqrt(n*n+r*r))&&(n/=u,r/=u,d/=u),e*r<t*n&&(e=-e,t=-t,d=-d,l=-l),{translateX:a,translateY:o,rotate:Math.atan2(t,e)*Sk,skewX:Math.atan(d)*Sk,scaleX:l,scaleY:u}}var Lf;function q8(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?nb:DC(t.a,t.b,t.c,t.d,t.e,t.f)}function K8(e){return e==null||(Lf||(Lf=document.createElementNS("http://www.w3.org/2000/svg","g")),Lf.setAttribute("transform",e),!(e=Lf.transform.baseVal.consolidate()))?nb:(e=e.matrix,DC(e.a,e.b,e.c,e.d,e.e,e.f))}function RC(e,t,n,r){function a(h){return h.length?h.pop()+" ":""}function o(h,g,m,y,b,E){if(h!==m||g!==y){var v=b.push("translate(",null,t,null,n);E.push({i:v-4,x:Ci(h,m)},{i:v-2,x:Ci(g,y)})}else(m||y)&&b.push("translate("+m+t+y+n)}function l(h,g,m,y){h!==g?(h-g>180?g+=360:g-h>180&&(h+=360),y.push({i:m.push(a(m)+"rotate(",null,r)-2,x:Ci(h,g)})):g&&m.push(a(m)+"rotate("+g+r)}function u(h,g,m,y){h!==g?y.push({i:m.push(a(m)+"skewX(",null,r)-2,x:Ci(h,g)}):g&&m.push(a(m)+"skewX("+g+r)}function d(h,g,m,y,b,E){if(h!==m||g!==y){var v=b.push(a(b)+"scale(",null,",",null,")");E.push({i:v-4,x:Ci(h,m)},{i:v-2,x:Ci(g,y)})}else(m!==1||y!==1)&&b.push(a(b)+"scale("+m+","+y+")")}return function(h,g){var m=[],y=[];return h=e(h),g=e(g),o(h.translateX,h.translateY,g.translateX,g.translateY,m,y),l(h.rotate,g.rotate,m,y),u(h.skewX,g.skewX,m,y),d(h.scaleX,h.scaleY,g.scaleX,g.scaleY,m,y),h=g=null,function(b){for(var E=-1,v=y.length,S;++E<v;)m[(S=y[E]).i]=S.x(b);return m.join("")}}}var G8=RC(q8,"px, ","px)","deg)"),V8=RC(K8,", ",")",")"),Y8=1e-12;function _k(e){return((e=Math.exp(e))+1/e)/2}function Q8(e){return((e=Math.exp(e))-1/e)/2}function W8(e){return((e=Math.exp(2*e))-1)/(e+1)}const Wf=(function e(t,n,r){function a(o,l){var u=o[0],d=o[1],h=o[2],g=l[0],m=l[1],y=l[2],b=g-u,E=m-d,v=b*b+E*E,S,k;if(v<Y8)k=Math.log(y/h)/t,S=function(M){return[u+M*b,d+M*E,h*Math.exp(t*M*k)]};else{var j=Math.sqrt(v),_=(y*y-h*h+r*v)/(2*h*n*j),N=(y*y-h*h-r*v)/(2*y*n*j),O=Math.log(Math.sqrt(_*_+1)-_),T=Math.log(Math.sqrt(N*N+1)-N);k=(T-O)/t,S=function(M){var I=M*k,F=_k(O),$=h/(n*j)*(F*W8(t*I+O)-Q8(O));return[u+$*b,d+$*E,h*F/_k(t*I+O)]}}return S.duration=k*1e3*t/Math.SQRT2,S}return a.rho=function(o){var l=Math.max(.001,+o),u=l*l,d=u*u;return e(l,u,d)},a})(Math.SQRT2,2,4);var Il=0,iu=0,eu=0,LC=1e3,Eh,au,kh=0,lo=0,Jh=0,Nu=typeof performance=="object"&&performance.now?performance:Date,IC=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Sx(){return lo||(IC(X8),lo=Nu.now()+Jh)}function X8(){lo=0}function Sh(){this._call=this._time=this._next=null}Sh.prototype=zC.prototype={constructor:Sh,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Sx():+n)+(t==null?0:+t),!this._next&&au!==this&&(au?au._next=this:Eh=this,au=this),this._call=e,this._time=n,rb()},stop:function(){this._call&&(this._call=null,this._time=1/0,rb())}};function zC(e,t,n){var r=new Sh;return r.restart(e,t,n),r}function Z8(){Sx(),++Il;for(var e=Eh,t;e;)(t=lo-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Il}function Nk(){lo=(kh=Nu.now())+Jh,Il=iu=0;try{Z8()}finally{Il=0,eq(),lo=0}}function J8(){var e=Nu.now(),t=e-kh;t>LC&&(Jh-=t,kh=e)}function eq(){for(var e,t=Eh,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Eh=n);au=e,rb(r)}function rb(e){if(!Il){iu&&(iu=clearTimeout(iu));var t=e-lo;t>24?(e<1/0&&(iu=setTimeout(Nk,e-Nu.now()-Jh)),eu&&(eu=clearInterval(eu))):(eu||(kh=Nu.now(),eu=setInterval(J8,LC)),Il=1,IC(Nk))}}function Ck(e,t,n){var r=new Sh;return t=t==null?0:+t,r.restart(a=>{r.stop(),e(a+t)},t,n),r}var tq=Xh("start","end","cancel","interrupt"),nq=[],PC=0,jk=1,ib=2,Xf=3,Ak=4,ab=5,Zf=6;function ep(e,t,n,r,a,o){var l=e.__transition;if(!l)e.__transition={};else if(n in l)return;rq(e,n,{name:t,index:r,group:a,on:tq,tween:nq,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:PC})}function _x(e,t){var n=mi(e,t);if(n.state>PC)throw new Error("too late; already scheduled");return n}function Di(e,t){var n=mi(e,t);if(n.state>Xf)throw new Error("too late; already running");return n}function mi(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function rq(e,t,n){var r=e.__transition,a;r[t]=n,n.timer=zC(o,0,n.time);function o(h){n.state=jk,n.timer.restart(l,n.delay,n.time),n.delay<=h&&l(h-n.delay)}function l(h){var g,m,y,b;if(n.state!==jk)return d();for(g in r)if(b=r[g],b.name===n.name){if(b.state===Xf)return Ck(l);b.state===Ak?(b.state=Zf,b.timer.stop(),b.on.call("interrupt",e,e.__data__,b.index,b.group),delete r[g]):+g<t&&(b.state=Zf,b.timer.stop(),b.on.call("cancel",e,e.__data__,b.index,b.group),delete r[g])}if(Ck(function(){n.state===Xf&&(n.state=Ak,n.timer.restart(u,n.delay,n.time),u(h))}),n.state=ib,n.on.call("start",e,e.__data__,n.index,n.group),n.state===ib){for(n.state=Xf,a=new Array(y=n.tween.length),g=0,m=-1;g<y;++g)(b=n.tween[g].value.call(e,e.__data__,n.index,n.group))&&(a[++m]=b);a.length=m+1}}function u(h){for(var g=h<n.duration?n.ease.call(null,h/n.duration):(n.timer.restart(d),n.state=ab,1),m=-1,y=a.length;++m<y;)a[m].call(e,g);n.state===ab&&(n.on.call("end",e,e.__data__,n.index,n.group),d())}function d(){n.state=Zf,n.timer.stop(),delete r[t];for(var h in r)return;delete e.__transition}}function Jf(e,t){var n=e.__transition,r,a,o=!0,l;if(n){t=t==null?null:t+"";for(l in n){if((r=n[l]).name!==t){o=!1;continue}a=r.state>ib&&r.state<ab,r.state=Zf,r.timer.stop(),r.on.call(a?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[l]}o&&delete e.__transition}}function iq(e){return this.each(function(){Jf(this,e)})}function aq(e,t){var n,r;return function(){var a=Di(this,e),o=a.tween;if(o!==n){r=n=o;for(var l=0,u=r.length;l<u;++l)if(r[l].name===t){r=r.slice(),r.splice(l,1);break}}a.tween=r}}function sq(e,t,n){var r,a;if(typeof n!="function")throw new Error;return function(){var o=Di(this,e),l=o.tween;if(l!==r){a=(r=l).slice();for(var u={name:t,value:n},d=0,h=a.length;d<h;++d)if(a[d].name===t){a[d]=u;break}d===h&&a.push(u)}o.tween=a}}function oq(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=mi(this.node(),n).tween,a=0,o=r.length,l;a<o;++a)if((l=r[a]).name===e)return l.value;return null}return this.each((t==null?aq:sq)(n,e,t))}function Nx(e,t,n){var r=e._id;return e.each(function(){var a=Di(this,r);(a.value||(a.value={}))[t]=n.apply(this,arguments)}),function(a){return mi(a,r).value[t]}}function BC(e,t){var n;return(typeof t=="number"?Ci:t instanceof oo?wh:(n=oo(t))?(t=n,wh):OC)(e,t)}function lq(e){return function(){this.removeAttribute(e)}}function cq(e){return function(){this.removeAttributeNS(e.space,e.local)}}function uq(e,t,n){var r,a=n+"",o;return function(){var l=this.getAttribute(e);return l===a?null:l===r?o:o=t(r=l,n)}}function dq(e,t,n){var r,a=n+"",o;return function(){var l=this.getAttributeNS(e.space,e.local);return l===a?null:l===r?o:o=t(r=l,n)}}function fq(e,t,n){var r,a,o;return function(){var l,u=n(this),d;return u==null?void this.removeAttribute(e):(l=this.getAttribute(e),d=u+"",l===d?null:l===r&&d===a?o:(a=d,o=t(r=l,u)))}}function hq(e,t,n){var r,a,o;return function(){var l,u=n(this),d;return u==null?void this.removeAttributeNS(e.space,e.local):(l=this.getAttributeNS(e.space,e.local),d=u+"",l===d?null:l===r&&d===a?o:(a=d,o=t(r=l,u)))}}function pq(e,t){var n=Zh(e),r=n==="transform"?V8:BC;return this.attrTween(e,typeof t=="function"?(n.local?hq:fq)(n,r,Nx(this,"attr."+e,t)):t==null?(n.local?cq:lq)(n):(n.local?dq:uq)(n,r,t))}function mq(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function gq(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function yq(e,t){var n,r;function a(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&gq(e,o)),n}return a._value=t,a}function bq(e,t){var n,r;function a(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&mq(e,o)),n}return a._value=t,a}function xq(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=Zh(e);return this.tween(n,(r.local?yq:bq)(r,t))}function vq(e,t){return function(){_x(this,e).delay=+t.apply(this,arguments)}}function wq(e,t){return t=+t,function(){_x(this,e).delay=t}}function Eq(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?vq:wq)(t,e)):mi(this.node(),t).delay}function kq(e,t){return function(){Di(this,e).duration=+t.apply(this,arguments)}}function Sq(e,t){return t=+t,function(){Di(this,e).duration=t}}function _q(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?kq:Sq)(t,e)):mi(this.node(),t).duration}function Nq(e,t){if(typeof t!="function")throw new Error;return function(){Di(this,e).ease=t}}function Cq(e){var t=this._id;return arguments.length?this.each(Nq(t,e)):mi(this.node(),t).ease}function jq(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Di(this,e).ease=n}}function Aq(e){if(typeof e!="function")throw new Error;return this.each(jq(this._id,e))}function Tq(e){typeof e!="function"&&(e=gC(e));for(var t=this._groups,n=t.length,r=new Array(n),a=0;a<n;++a)for(var o=t[a],l=o.length,u=r[a]=[],d,h=0;h<l;++h)(d=o[h])&&e.call(d,d.__data__,h,o)&&u.push(d);return new pa(r,this._parents,this._name,this._id)}function Mq(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,a=n.length,o=Math.min(r,a),l=new Array(r),u=0;u<o;++u)for(var d=t[u],h=n[u],g=d.length,m=l[u]=new Array(g),y,b=0;b<g;++b)(y=d[b]||h[b])&&(m[b]=y);for(;u<r;++u)l[u]=t[u];return new pa(l,this._parents,this._name,this._id)}function Oq(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function Dq(e,t,n){var r,a,o=Oq(t)?_x:Di;return function(){var l=o(this,e),u=l.on;u!==r&&(a=(r=u).copy()).on(t,n),l.on=a}}function Rq(e,t){var n=this._id;return arguments.length<2?mi(this.node(),n).on.on(e):this.each(Dq(n,e,t))}function Lq(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Iq(){return this.on("end.remove",Lq(this._id))}function zq(e){var t=this._name,n=this._id;typeof e!="function"&&(e=vx(e));for(var r=this._groups,a=r.length,o=new Array(a),l=0;l<a;++l)for(var u=r[l],d=u.length,h=o[l]=new Array(d),g,m,y=0;y<d;++y)(g=u[y])&&(m=e.call(g,g.__data__,y,u))&&("__data__"in g&&(m.__data__=g.__data__),h[y]=m,ep(h[y],t,n,y,h,mi(g,n)));return new pa(o,this._parents,t,n)}function Pq(e){var t=this._name,n=this._id;typeof e!="function"&&(e=mC(e));for(var r=this._groups,a=r.length,o=[],l=[],u=0;u<a;++u)for(var d=r[u],h=d.length,g,m=0;m<h;++m)if(g=d[m]){for(var y=e.call(g,g.__data__,m,d),b,E=mi(g,n),v=0,S=y.length;v<S;++v)(b=y[v])&&ep(b,t,n,v,y,E);o.push(y),l.push(g)}return new pa(o,l,t,n)}var Bq=Wu.prototype.constructor;function Uq(){return new Bq(this._groups,this._parents)}function $q(e,t){var n,r,a;return function(){var o=Ll(this,e),l=(this.style.removeProperty(e),Ll(this,e));return o===l?null:o===n&&l===r?a:a=t(n=o,r=l)}}function UC(e){return function(){this.style.removeProperty(e)}}function Fq(e,t,n){var r,a=n+"",o;return function(){var l=Ll(this,e);return l===a?null:l===r?o:o=t(r=l,n)}}function Hq(e,t,n){var r,a,o;return function(){var l=Ll(this,e),u=n(this),d=u+"";return u==null&&(d=u=(this.style.removeProperty(e),Ll(this,e))),l===d?null:l===r&&d===a?o:(a=d,o=t(r=l,u))}}function qq(e,t){var n,r,a,o="style."+t,l="end."+o,u;return function(){var d=Di(this,e),h=d.on,g=d.value[o]==null?u||(u=UC(t)):void 0;(h!==n||a!==g)&&(r=(n=h).copy()).on(l,a=g),d.on=r}}function Kq(e,t,n){var r=(e+="")=="transform"?G8:BC;return t==null?this.styleTween(e,$q(e,r)).on("end.style."+e,UC(e)):typeof t=="function"?this.styleTween(e,Hq(e,r,Nx(this,"style."+e,t))).each(qq(this._id,e)):this.styleTween(e,Fq(e,r,t),n).on("end.style."+e,null)}function Gq(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Vq(e,t,n){var r,a;function o(){var l=t.apply(this,arguments);return l!==a&&(r=(a=l)&&Gq(e,l,n)),r}return o._value=t,o}function Yq(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,Vq(e,t,n??""))}function Qq(e){return function(){this.textContent=e}}function Wq(e){return function(){var t=e(this);this.textContent=t??""}}function Xq(e){return this.tween("text",typeof e=="function"?Wq(Nx(this,"text",e)):Qq(e==null?"":e+""))}function Zq(e){return function(t){this.textContent=e.call(this,t)}}function Jq(e){var t,n;function r(){var a=e.apply(this,arguments);return a!==n&&(t=(n=a)&&Zq(a)),t}return r._value=e,r}function e7(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,Jq(e))}function t7(){for(var e=this._name,t=this._id,n=$C(),r=this._groups,a=r.length,o=0;o<a;++o)for(var l=r[o],u=l.length,d,h=0;h<u;++h)if(d=l[h]){var g=mi(d,t);ep(d,e,n,h,l,{time:g.time+g.delay+g.duration,delay:0,duration:g.duration,ease:g.ease})}return new pa(r,this._parents,e,n)}function n7(){var e,t,n=this,r=n._id,a=n.size();return new Promise(function(o,l){var u={value:l},d={value:function(){--a===0&&o()}};n.each(function(){var h=Di(this,r),g=h.on;g!==e&&(t=(e=g).copy(),t._.cancel.push(u),t._.interrupt.push(u),t._.end.push(d)),h.on=t}),a===0&&o()})}var r7=0;function pa(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function $C(){return++r7}var ta=Wu.prototype;pa.prototype={constructor:pa,select:zq,selectAll:Pq,selectChild:ta.selectChild,selectChildren:ta.selectChildren,filter:Tq,merge:Mq,selection:Uq,transition:t7,call:ta.call,nodes:ta.nodes,node:ta.node,size:ta.size,empty:ta.empty,each:ta.each,on:Rq,attr:pq,attrTween:xq,style:Kq,styleTween:Yq,text:Xq,textTween:e7,remove:Iq,tween:oq,delay:Eq,duration:_q,ease:Cq,easeVarying:Aq,end:n7,[Symbol.iterator]:ta[Symbol.iterator]};function i7(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var a7={time:null,delay:0,duration:250,ease:i7};function s7(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function o7(e){var t,n;e instanceof pa?(t=e._id,e=e._name):(t=$C(),(n=a7).time=Sx(),e=e==null?null:e+"");for(var r=this._groups,a=r.length,o=0;o<a;++o)for(var l=r[o],u=l.length,d,h=0;h<u;++h)(d=l[h])&&ep(d,e,t,h,l,n||s7(d,t));return new pa(r,this._parents,e,t)}Wu.prototype.interrupt=iq;Wu.prototype.transition=o7;const If=e=>()=>e;function l7(e,{sourceEvent:t,target:n,transform:r,dispatch:a}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:a}})}function la(e,t,n){this.k=e,this.x=t,this.y=n}la.prototype={constructor:la,scale:function(e){return e===1?this:new la(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new la(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var tp=new la(1,0,0);FC.prototype=la.prototype;function FC(e){for(;!e.__zoom;)if(!(e=e.parentNode))return tp;return e.__zoom}function ry(e){e.stopImmediatePropagation()}function tu(e){e.preventDefault(),e.stopImmediatePropagation()}function c7(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function u7(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Tk(){return this.__zoom||tp}function d7(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function f7(){return navigator.maxTouchPoints||"ontouchstart"in this}function h7(e,t,n){var r=e.invertX(t[0][0])-n[0][0],a=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],l=e.invertY(t[1][1])-n[1][1];return e.translate(a>r?(r+a)/2:Math.min(0,r)||Math.max(0,a),l>o?(o+l)/2:Math.min(0,o)||Math.max(0,l))}function HC(){var e=c7,t=u7,n=h7,r=d7,a=f7,o=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],u=250,d=Wf,h=Xh("start","zoom","end"),g,m,y,b=500,E=150,v=0,S=10;function k(B){B.property("__zoom",Tk).on("wheel.zoom",I,{passive:!1}).on("mousedown.zoom",F).on("dblclick.zoom",$).filter(a).on("touchstart.zoom",U).on("touchmove.zoom",K).on("touchend.zoom touchcancel.zoom",Q).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}k.transform=function(B,q,z,Y){var W=B.selection?B.selection():B;W.property("__zoom",Tk),B!==W?O(B,q,z,Y):W.interrupt().each(function(){T(this,arguments).event(Y).start().zoom(null,typeof q=="function"?q.apply(this,arguments):q).end()})},k.scaleBy=function(B,q,z,Y){k.scaleTo(B,function(){var W=this.__zoom.k,G=typeof q=="function"?q.apply(this,arguments):q;return W*G},z,Y)},k.scaleTo=function(B,q,z,Y){k.transform(B,function(){var W=t.apply(this,arguments),G=this.__zoom,D=z==null?N(W):typeof z=="function"?z.apply(this,arguments):z,L=G.invert(D),V=typeof q=="function"?q.apply(this,arguments):q;return n(_(j(G,V),D,L),W,l)},z,Y)},k.translateBy=function(B,q,z,Y){k.transform(B,function(){return n(this.__zoom.translate(typeof q=="function"?q.apply(this,arguments):q,typeof z=="function"?z.apply(this,arguments):z),t.apply(this,arguments),l)},null,Y)},k.translateTo=function(B,q,z,Y,W){k.transform(B,function(){var G=t.apply(this,arguments),D=this.__zoom,L=Y==null?N(G):typeof Y=="function"?Y.apply(this,arguments):Y;return n(tp.translate(L[0],L[1]).scale(D.k).translate(typeof q=="function"?-q.apply(this,arguments):-q,typeof z=="function"?-z.apply(this,arguments):-z),G,l)},Y,W)};function j(B,q){return q=Math.max(o[0],Math.min(o[1],q)),q===B.k?B:new la(q,B.x,B.y)}function _(B,q,z){var Y=q[0]-z[0]*B.k,W=q[1]-z[1]*B.k;return Y===B.x&&W===B.y?B:new la(B.k,Y,W)}function N(B){return[(+B[0][0]+ +B[1][0])/2,(+B[0][1]+ +B[1][1])/2]}function O(B,q,z,Y){B.on("start.zoom",function(){T(this,arguments).event(Y).start()}).on("interrupt.zoom end.zoom",function(){T(this,arguments).event(Y).end()}).tween("zoom",function(){var W=this,G=arguments,D=T(W,G).event(Y),L=t.apply(W,G),V=z==null?N(L):typeof z=="function"?z.apply(W,G):z,R=Math.max(L[1][0]-L[0][0],L[1][1]-L[0][1]),se=W.__zoom,ge=typeof q=="function"?q.apply(W,G):q,ye=d(se.invert(V).concat(R/se.k),ge.invert(V).concat(R/ge.k));return function(xe){if(xe===1)xe=ge;else{var H=ye(xe),ne=R/H[2];xe=new la(ne,V[0]-H[0]*ne,V[1]-H[1]*ne)}D.zoom(null,xe)}})}function T(B,q,z){return!z&&B.__zooming||new M(B,q)}function M(B,q){this.that=B,this.args=q,this.active=0,this.sourceEvent=null,this.extent=t.apply(B,q),this.taps=0}M.prototype={event:function(B){return B&&(this.sourceEvent=B),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(B,q){return this.mouse&&B!=="mouse"&&(this.mouse[1]=q.invert(this.mouse[0])),this.touch0&&B!=="touch"&&(this.touch0[1]=q.invert(this.touch0[0])),this.touch1&&B!=="touch"&&(this.touch1[1]=q.invert(this.touch1[0])),this.that.__zoom=q,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(B){var q=kr(this.that).datum();h.call(B,this.that,new l7(B,{sourceEvent:this.sourceEvent,target:k,transform:this.that.__zoom,dispatch:h}),q)}};function I(B,...q){if(!e.apply(this,arguments))return;var z=T(this,q).event(B),Y=this.__zoom,W=Math.max(o[0],Math.min(o[1],Y.k*Math.pow(2,r.apply(this,arguments)))),G=si(B);if(z.wheel)(z.mouse[0][0]!==G[0]||z.mouse[0][1]!==G[1])&&(z.mouse[1]=Y.invert(z.mouse[0]=G)),clearTimeout(z.wheel);else{if(Y.k===W)return;z.mouse=[G,Y.invert(G)],Jf(this),z.start()}tu(B),z.wheel=setTimeout(D,E),z.zoom("mouse",n(_(j(Y,W),z.mouse[0],z.mouse[1]),z.extent,l));function D(){z.wheel=null,z.end()}}function F(B,...q){if(y||!e.apply(this,arguments))return;var z=B.currentTarget,Y=T(this,q,!0).event(B),W=kr(B.view).on("mousemove.zoom",V,!0).on("mouseup.zoom",R,!0),G=si(B,z),D=B.clientX,L=B.clientY;NC(B.view),ry(B),Y.mouse=[G,this.__zoom.invert(G)],Jf(this),Y.start();function V(se){if(tu(se),!Y.moved){var ge=se.clientX-D,ye=se.clientY-L;Y.moved=ge*ge+ye*ye>v}Y.event(se).zoom("mouse",n(_(Y.that.__zoom,Y.mouse[0]=si(se,z),Y.mouse[1]),Y.extent,l))}function R(se){W.on("mousemove.zoom mouseup.zoom",null),CC(se.view,Y.moved),tu(se),Y.event(se).end()}}function $(B,...q){if(e.apply(this,arguments)){var z=this.__zoom,Y=si(B.changedTouches?B.changedTouches[0]:B,this),W=z.invert(Y),G=z.k*(B.shiftKey?.5:2),D=n(_(j(z,G),Y,W),t.apply(this,q),l);tu(B),u>0?kr(this).transition().duration(u).call(O,D,Y,B):kr(this).call(k.transform,D,Y,B)}}function U(B,...q){if(e.apply(this,arguments)){var z=B.touches,Y=z.length,W=T(this,q,B.changedTouches.length===Y).event(B),G,D,L,V;for(ry(B),D=0;D<Y;++D)L=z[D],V=si(L,this),V=[V,this.__zoom.invert(V),L.identifier],W.touch0?!W.touch1&&W.touch0[2]!==V[2]&&(W.touch1=V,W.taps=0):(W.touch0=V,G=!0,W.taps=1+!!g);g&&(g=clearTimeout(g)),G&&(W.taps<2&&(m=V[0],g=setTimeout(function(){g=null},b)),Jf(this),W.start())}}function K(B,...q){if(this.__zooming){var z=T(this,q).event(B),Y=B.changedTouches,W=Y.length,G,D,L,V;for(tu(B),G=0;G<W;++G)D=Y[G],L=si(D,this),z.touch0&&z.touch0[2]===D.identifier?z.touch0[0]=L:z.touch1&&z.touch1[2]===D.identifier&&(z.touch1[0]=L);if(D=z.that.__zoom,z.touch1){var R=z.touch0[0],se=z.touch0[1],ge=z.touch1[0],ye=z.touch1[1],xe=(xe=ge[0]-R[0])*xe+(xe=ge[1]-R[1])*xe,H=(H=ye[0]-se[0])*H+(H=ye[1]-se[1])*H;D=j(D,Math.sqrt(xe/H)),L=[(R[0]+ge[0])/2,(R[1]+ge[1])/2],V=[(se[0]+ye[0])/2,(se[1]+ye[1])/2]}else if(z.touch0)L=z.touch0[0],V=z.touch0[1];else return;z.zoom("touch",n(_(D,L,V),z.extent,l))}}function Q(B,...q){if(this.__zooming){var z=T(this,q).event(B),Y=B.changedTouches,W=Y.length,G,D;for(ry(B),y&&clearTimeout(y),y=setTimeout(function(){y=null},b),G=0;G<W;++G)D=Y[G],z.touch0&&z.touch0[2]===D.identifier?delete z.touch0:z.touch1&&z.touch1[2]===D.identifier&&delete z.touch1;if(z.touch1&&!z.touch0&&(z.touch0=z.touch1,delete z.touch1),z.touch0)z.touch0[1]=this.__zoom.invert(z.touch0[0]);else if(z.end(),z.taps===2&&(D=si(D,this),Math.hypot(m[0]-D[0],m[1]-D[1])<S)){var L=kr(this).on("dblclick.zoom");L&&L.apply(this,arguments)}}}return k.wheelDelta=function(B){return arguments.length?(r=typeof B=="function"?B:If(+B),k):r},k.filter=function(B){return arguments.length?(e=typeof B=="function"?B:If(!!B),k):e},k.touchable=function(B){return arguments.length?(a=typeof B=="function"?B:If(!!B),k):a},k.extent=function(B){return arguments.length?(t=typeof B=="function"?B:If([[+B[0][0],+B[0][1]],[+B[1][0],+B[1][1]]]),k):t},k.scaleExtent=function(B){return arguments.length?(o[0]=+B[0],o[1]=+B[1],k):[o[0],o[1]]},k.translateExtent=function(B){return arguments.length?(l[0][0]=+B[0][0],l[1][0]=+B[1][0],l[0][1]=+B[0][1],l[1][1]=+B[1][1],k):[[l[0][0],l[0][1]],[l[1][0],l[1][1]]]},k.constrain=function(B){return arguments.length?(n=B,k):n},k.duration=function(B){return arguments.length?(u=+B,k):u},k.interpolate=function(B){return arguments.length?(d=B,k):d},k.on=function(){var B=h.on.apply(h,arguments);return B===h?k:B},k.clickDistance=function(B){return arguments.length?(v=(B=+B)*B,k):Math.sqrt(v)},k.tapDistance=function(B){return arguments.length?(S=+B,k):S},k}const fi={error001:(e="react")=>`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Cu=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],qC=["Enter"," ","Escape"],KC={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var zl;(function(e){e.Strict="strict",e.Loose="loose"})(zl||(zl={}));var ro;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ro||(ro={}));var ju;(function(e){e.Partial="partial",e.Full="full"})(ju||(ju={}));const GC={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var rs;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(rs||(rs={}));var _h;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(_h||(_h={}));var Le;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Le||(Le={}));const Mk={[Le.Left]:Le.Right,[Le.Right]:Le.Left,[Le.Top]:Le.Bottom,[Le.Bottom]:Le.Top};function VC(e){return e===null?null:e?"valid":"invalid"}const YC=e=>"id"in e&&"source"in e&&"target"in e,p7=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Cx=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Zu=(e,t=[0,0])=>{const{width:n,height:r}=ya(e),a=e.origin??t,o=n*a[0],l=r*a[1];return{x:e.position.x-o,y:e.position.y-l}},m7=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,a)=>{const o=typeof a=="string";let l=!t.nodeLookup&&!o?a:void 0;t.nodeLookup&&(l=o?t.nodeLookup.get(a):Cx(a)?a:t.nodeLookup.get(a.id));const u=l?Nh(l,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return np(r,u)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return rp(n)},Ju=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(a=>{(t.filter===void 0||t.filter(a))&&(n=np(n,Nh(a)),r=!0)}),r?rp(n):{x:0,y:0,width:0,height:0}},jx=(e,t,[n,r,a]=[0,0,1],o=!1,l=!1)=>{const u=(t.x-n)/a,d=(t.y-r)/a,h=t.width/a,g=t.height/a,m=[];for(const y of e.values()){const{measured:b,selectable:E=!0,hidden:v=!1}=y;if(l&&!E||v)continue;const S=b.width??y.width??y.initialWidth??0,k=b.height??y.height??y.initialHeight??0,{x:j,y:_}=y.internals.positionAbsolute,N=ZC(u,d,h,g,j,_,S,k),O=S*k,T=o&&N>0;(!y.internals.handleBounds||T||N>=O||y.dragging)&&m.push(y)}return m},g7=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function y7(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(a=>a.id)):null;return e.forEach(a=>{a.measured.width&&a.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!a.hidden)&&(!r||r.has(a.id))&&n.set(a.id,a)}),n}async function b7({nodes:e,width:t,height:n,panZoom:r,minZoom:a,maxZoom:o},l){if(e.size===0)return!0;const u=y7(e,l),d=Ju(u),h=Tx(d,t,n,(l==null?void 0:l.minZoom)??a,(l==null?void 0:l.maxZoom)??o,(l==null?void 0:l.padding)??.1);return await r.setViewport(h,{duration:l==null?void 0:l.duration,ease:l==null?void 0:l.ease,interpolate:l==null?void 0:l.interpolate}),!0}function QC({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:a,onError:o}){const l=n.get(e),u=l.parentId?n.get(l.parentId):void 0,{x:d,y:h}=u?u.internals.positionAbsolute:{x:0,y:0},g=l.origin??r;let m=l.extent||a;if(l.extent==="parent"&&!l.expandParent)if(!u)o==null||o("005",fi.error005());else{const b=u.measured.width,E=u.measured.height;b&&E&&(m=[[d,h],[d+b,h+E]])}else u&&uo(l.extent)&&(m=[[l.extent[0][0]+d,l.extent[0][1]+h],[l.extent[1][0]+d,l.extent[1][1]+h]]);const y=uo(m)?co(t,m,l.measured):t;return(l.measured.width===void 0||l.measured.height===void 0)&&(o==null||o("015",fi.error015())),{position:{x:y.x-d+(l.measured.width??0)*g[0],y:y.y-h+(l.measured.height??0)*g[1]},positionAbsolute:y}}async function x7({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:a}){const o=new Set(e.map(y=>y.id)),l=[];for(const y of n){if(y.deletable===!1)continue;const b=o.has(y.id),E=!b&&y.parentId&&l.find(v=>v.id===y.parentId);(b||E)&&l.push(y)}const u=new Set(t.map(y=>y.id)),d=r.filter(y=>y.deletable!==!1),g=g7(l,d);for(const y of d)u.has(y.id)&&!g.find(E=>E.id===y.id)&&g.push(y);if(!a)return{edges:g,nodes:l};const m=await a({nodes:l,edges:g});return typeof m=="boolean"?m?{edges:g,nodes:l}:{edges:[],nodes:[]}:m}const Pl=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),co=(e={x:0,y:0},t,n)=>({x:Pl(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:Pl(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function WC(e,t,n){const{width:r,height:a}=ya(n),{x:o,y:l}=n.internals.positionAbsolute;return co(e,[[o,l],[o+r,l+a]],t)}const Ok=(e,t,n)=>e<t?Pl(Math.abs(e-t),1,t)/t:e>n?-Pl(Math.abs(e-n),1,t)/t:0,Ax=(e,t,n=15,r=40)=>{const a=Ok(e.x,r,t.width-r)*n,o=Ok(e.y,r,t.height-r)*n;return[a,o]},np=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),sb=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),rp=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Au=(e,t=[0,0])=>{var a,o;const{x:n,y:r}=Cx(e)?e.internals.positionAbsolute:Zu(e,t);return{x:n,y:r,width:((a=e.measured)==null?void 0:a.width)??e.width??e.initialWidth??0,height:((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0}},Nh=(e,t=[0,0])=>{var a,o;const{x:n,y:r}=Cx(e)?e.internals.positionAbsolute:Zu(e,t);return{x:n,y:r,x2:n+(((a=e.measured)==null?void 0:a.width)??e.width??e.initialWidth??0),y2:r+(((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0)}},XC=(e,t)=>rp(np(sb(e),sb(t))),ZC=(e,t,n,r,a,o,l,u)=>{const d=Math.max(0,Math.min(e+n,a+l)-Math.max(e,a)),h=Math.max(0,Math.min(t+r,o+u)-Math.max(t,o));return Math.ceil(d*h)},Ch=(e,t)=>ZC(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),Dk=e=>li(e.width)&&li(e.height)&&li(e.x)&&li(e.y),li=e=>!isNaN(e)&&isFinite(e),JC=(e,t)=>(n,r)=>{},ed=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),td=({x:e,y:t},[n,r,a],o=!1,l=[1,1])=>{const u={x:(e-n)/a,y:(t-r)/a};return o?ed(u,l):u},Bl=({x:e,y:t},[n,r,a])=>({x:e*a+n,y:t*a+r});function il(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function v7(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=il(e,n),a=il(e,t);return{top:r,right:a,bottom:r,left:a,x:a*2,y:r*2}}if(typeof e=="object"){const r=il(e.top??e.y??0,n),a=il(e.bottom??e.y??0,n),o=il(e.left??e.x??0,t),l=il(e.right??e.x??0,t);return{top:r,right:l,bottom:a,left:o,x:o+l,y:r+a}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function w7(e,t,n,r,a,o){const{x:l,y:u}=Bl(e,[t,n,r]),{x:d,y:h}=Bl({x:e.x+e.width,y:e.y+e.height},[t,n,r]),g=a-d,m=o-h;return{left:Math.floor(l),top:Math.floor(u),right:Math.floor(g),bottom:Math.floor(m)}}const Tx=(e,t,n,r,a,o)=>{const l=v7(o,t,n),u=(t-l.x)/e.width,d=(n-l.y)/e.height,h=Math.min(u,d),g=Pl(h,r,a),m=e.x+e.width/2,y=e.y+e.height/2,b=t/2-m*g,E=n/2-y*g,v=w7(e,b,E,g,t,n),S={left:Math.min(v.left-l.left,0),top:Math.min(v.top-l.top,0),right:Math.min(v.right-l.right,0),bottom:Math.min(v.bottom-l.bottom,0)};return{x:b-S.left+S.right,y:E-S.top+S.bottom,zoom:g}},Tu=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function uo(e){return e!=null&&e!=="parent"}function ya(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function ej(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function tj(e,t={width:0,height:0},n,r,a){const o={...e},l=r.get(n);if(l){const u=l.origin||a;o.x+=l.internals.positionAbsolute.x-(t.width??0)*u[0],o.y+=l.internals.positionAbsolute.y-(t.height??0)*u[1]}return o}function Rk(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function E7(){let e,t;return{promise:new Promise((r,a)=>{e=r,t=a}),resolve:e,reject:t}}function k7(e){return{...KC,...e||{}}}function du(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:a}){const{x:o,y:l}=ci(e),u=td({x:o-((a==null?void 0:a.left)??0),y:l-((a==null?void 0:a.top)??0)},r),{x:d,y:h}=n?ed(u,t):u;return{xSnapped:d,ySnapped:h,...u}}const Mx=e=>({width:e.offsetWidth,height:e.offsetHeight}),nj=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},S7=["INPUT","SELECT","TEXTAREA"];function rj(e){var r,a;const t=((a=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:a[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:S7.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const ij=e=>"clientX"in e,ci=(e,t)=>{var o,l;const n=ij(e),r=n?e.clientX:(o=e.touches)==null?void 0:o[0].clientX,a=n?e.clientY:(l=e.touches)==null?void 0:l[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:a-((t==null?void 0:t.top)??0)}},Lk=(e,t,n,r,a)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(l=>{const u=l.getBoundingClientRect();return{id:l.getAttribute("data-handleid"),type:e,nodeId:a,position:l.getAttribute("data-handlepos"),x:(u.left-n.left)/r,y:(u.top-n.top)/r,...Mx(l)}})};function aj({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:a,sourceControlY:o,targetControlX:l,targetControlY:u}){const d=e*.125+a*.375+l*.375+n*.125,h=t*.125+o*.375+u*.375+r*.125,g=Math.abs(d-e),m=Math.abs(h-t);return[d,h,g,m]}function zf(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Ik({pos:e,x1:t,y1:n,x2:r,y2:a,c:o}){switch(e){case Le.Left:return[t-zf(t-r,o),n];case Le.Right:return[t+zf(r-t,o),n];case Le.Top:return[t,n-zf(n-a,o)];case Le.Bottom:return[t,n+zf(a-n,o)]}}function sj({sourceX:e,sourceY:t,sourcePosition:n=Le.Bottom,targetX:r,targetY:a,targetPosition:o=Le.Top,curvature:l=.25}){const[u,d]=Ik({pos:n,x1:e,y1:t,x2:r,y2:a,c:l}),[h,g]=Ik({pos:o,x1:r,y1:a,x2:e,y2:t,c:l}),[m,y,b,E]=aj({sourceX:e,sourceY:t,targetX:r,targetY:a,sourceControlX:u,sourceControlY:d,targetControlX:h,targetControlY:g});return[`M${e},${t} C${u},${d} ${h},${g} ${r},${a}`,m,y,b,E]}function oj({sourceX:e,sourceY:t,targetX:n,targetY:r}){const a=Math.abs(n-e)/2,o=n<e?n+a:n-a,l=Math.abs(r-t)/2,u=r<t?r+l:r-l;return[o,u,a,l]}function _7({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:a=!1,zIndexMode:o="basic"}){if(o==="manual")return r;const l=a&&n?r+1e3:r,u=Math.max(e.parentId||a&&e.selected?e.internals.z:0,t.parentId||a&&t.selected?t.internals.z:0);return l+u}function N7({sourceNode:e,targetNode:t,width:n,height:r,transform:a}){const o=np(Nh(e),Nh(t));o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1);const l={x:-a[0]/a[2],y:-a[1]/a[2],width:n/a[2],height:r/a[2]};return Ch(l,rp(o))>0}const C7=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,j7=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),A7=(e,t,n={})=>{var o;if(!e.source||!e.target)return(o=n.onError)==null||o.call(n,"006",fi.error006()),t;const r=n.getEdgeId||C7;let a;return YC(e)?a={...e}:a={...e,id:r(e)},j7(a,t)?t:(a.sourceHandle===null&&delete a.sourceHandle,a.targetHandle===null&&delete a.targetHandle,t.concat(a))};function lj({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[a,o,l,u]=oj({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,a,o,l,u]}const zk={[Le.Left]:{x:-1,y:0},[Le.Right]:{x:1,y:0},[Le.Top]:{x:0,y:-1},[Le.Bottom]:{x:0,y:1}},T7=({source:e,sourcePosition:t=Le.Bottom,target:n})=>t===Le.Left||t===Le.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Pk=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function M7({source:e,sourcePosition:t=Le.Bottom,target:n,targetPosition:r=Le.Top,center:a,offset:o,stepPosition:l}){const u=zk[t],d=zk[r],h={x:e.x+u.x*o,y:e.y+u.y*o},g={x:n.x+d.x*o,y:n.y+d.y*o},m=T7({source:h,sourcePosition:t,target:g}),y=m.x!==0?"x":"y",b=m[y];let E=[],v,S;const k={x:0,y:0},j={x:0,y:0},[,,_,N]=oj({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(u[y]*d[y]===-1){y==="x"?(v=a.x??h.x+(g.x-h.x)*l,S=a.y??(h.y+g.y)/2):(v=a.x??(h.x+g.x)/2,S=a.y??h.y+(g.y-h.y)*l);const I=[{x:v,y:h.y},{x:v,y:g.y}],F=[{x:h.x,y:S},{x:g.x,y:S}];u[y]===b?E=y==="x"?I:F:E=y==="x"?F:I}else{const I=[{x:h.x,y:g.y}],F=[{x:g.x,y:h.y}];if(y==="x"?E=u.x===b?F:I:E=u.y===b?I:F,t===r){const B=Math.abs(e[y]-n[y]);if(B<=o){const q=Math.min(o-1,o-B);u[y]===b?k[y]=(h[y]>e[y]?-1:1)*q:j[y]=(g[y]>n[y]?-1:1)*q}}if(t!==r){const B=y==="x"?"y":"x",q=u[y]===d[B],z=h[B]>g[B],Y=h[B]<g[B];(u[y]===1&&(!q&&z||q&&Y)||u[y]!==1&&(!q&&Y||q&&z))&&(E=y==="x"?I:F)}const $={x:h.x+k.x,y:h.y+k.y},U={x:g.x+j.x,y:g.y+j.y},K=Math.max(Math.abs($.x-E[0].x),Math.abs(U.x-E[0].x)),Q=Math.max(Math.abs($.y-E[0].y),Math.abs(U.y-E[0].y));K>=Q?(v=($.x+U.x)/2,S=E[0].y):(v=E[0].x,S=($.y+U.y)/2)}const O={x:h.x+k.x,y:h.y+k.y},T={x:g.x+j.x,y:g.y+j.y};return[[e,...O.x!==E[0].x||O.y!==E[0].y?[O]:[],...E,...T.x!==E[E.length-1].x||T.y!==E[E.length-1].y?[T]:[],n],v,S,_,N]}function O7(e,t,n,r){const a=Math.min(Pk(e,t)/2,Pk(t,n)/2,r),{x:o,y:l}=t;if(e.x===o&&o===n.x||e.y===l&&l===n.y)return`L${o} ${l}`;if(e.y===l){const h=e.x<n.x?-1:1,g=e.y<n.y?1:-1;return`L ${o+a*h},${l}Q ${o},${l} ${o},${l+a*g}`}const u=e.x<n.x?1:-1,d=e.y<n.y?-1:1;return`L ${o},${l+a*d}Q ${o},${l} ${o+a*u},${l}`}function ob({sourceX:e,sourceY:t,sourcePosition:n=Le.Bottom,targetX:r,targetY:a,targetPosition:o=Le.Top,borderRadius:l=5,centerX:u,centerY:d,offset:h=20,stepPosition:g=.5}){const[m,y,b,E,v]=M7({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:a},targetPosition:o,center:{x:u,y:d},offset:h,stepPosition:g});let S=`M${m[0].x} ${m[0].y}`;for(let k=1;k<m.length-1;k++)S+=O7(m[k-1],m[k],m[k+1],l);return S+=`L${m[m.length-1].x} ${m[m.length-1].y}`,[S,y,b,E,v]}function Bk(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function D7(e){var m;const{sourceNode:t,targetNode:n}=e;if(!Bk(t)||!Bk(n))return null;const r=t.internals.handleBounds||Uk(t.handles),a=n.internals.handleBounds||Uk(n.handles),o=$k((r==null?void 0:r.source)??[],e.sourceHandle),l=$k(e.connectionMode===zl.Strict?(a==null?void 0:a.target)??[]:((a==null?void 0:a.target)??[]).concat((a==null?void 0:a.source)??[]),e.targetHandle);if(!o||!l)return(m=e.onError)==null||m.call(e,"008",fi.error008(o?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const u=(o==null?void 0:o.position)||Le.Bottom,d=(l==null?void 0:l.position)||Le.Top,h=fo(t,o,u),g=fo(n,l,d);return{sourceX:h.x,sourceY:h.y,targetX:g.x,targetY:g.y,sourcePosition:u,targetPosition:d}}function Uk(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function fo(e,t,n=Le.Left,r=!1){const a=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,o=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:l,height:u}=t??ya(e);if(r)return{x:a+l/2,y:o+u/2};switch((t==null?void 0:t.position)??n){case Le.Top:return{x:a+l/2,y:o};case Le.Right:return{x:a+l,y:o+u/2};case Le.Bottom:return{x:a+l/2,y:o+u};case Le.Left:return{x:a,y:o+u/2}}}function $k(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function lb(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function R7(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:a}){const o=new Set;return e.reduce((l,u)=>([u.markerStart||r,u.markerEnd||a].forEach(d=>{if(d&&typeof d=="object"){const h=lb(d,t);o.has(h)||(l.push({id:h,color:d.color||n,...d}),o.add(h))}}),l),[]).sort((l,u)=>l.id.localeCompare(u.id))}const cj=1e3,L7=10,Ox={nodeOrigin:[0,0],nodeExtent:Cu,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},I7={...Ox,checkEquality:!0};function Dx(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function z7(e,t,n){const r=Dx(Ox,n);for(const a of e.values())if(a.parentId)Lx(a,e,t,r);else{const o=Zu(a,r.nodeOrigin),l=uo(a.extent)?a.extent:r.nodeExtent,u=co(o,l,ya(a));a.internals.positionAbsolute=u}}function P7(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const a of e.handles){const o={id:a.id,width:a.width??1,height:a.height??1,nodeId:e.id,x:a.x,y:a.y,position:a.position,type:a.type};a.type==="source"?n.push(o):a.type==="target"&&r.push(o)}return{source:n,target:r}}function Rx(e){return e==="manual"}function cb(e,t,n,r={}){var g,m;const a=Dx(I7,r),o={i:0},l=new Map(t),u=a!=null&&a.elevateNodesOnSelect&&!Rx(a.zIndexMode)?cj:0;let d=e.length>0,h=!1;t.clear(),n.clear();for(const y of e){let b=l.get(y.id);if(a.checkEquality&&y===(b==null?void 0:b.internals.userNode))t.set(y.id,b);else{const E=Zu(y,a.nodeOrigin),v=uo(y.extent)?y.extent:a.nodeExtent,S=co(E,v,ya(y));b={...a.defaults,...y,measured:{width:(g=y.measured)==null?void 0:g.width,height:(m=y.measured)==null?void 0:m.height},internals:{positionAbsolute:S,handleBounds:P7(y,b),z:uj(y,u,a.zIndexMode),userNode:y}},t.set(y.id,b)}(b.measured===void 0||b.measured.width===void 0||b.measured.height===void 0)&&!b.hidden&&(d=!1),y.parentId&&Lx(b,t,n,r,o),h||(h=y.selected??!1)}return{nodesInitialized:d,hasSelectedNodes:h}}function B7(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Lx(e,t,n,r,a){const{elevateNodesOnSelect:o,nodeOrigin:l,nodeExtent:u,zIndexMode:d}=Dx(Ox,r),h=e.parentId,g=t.get(h);if(!g){console.warn(`Parent node ${h} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}B7(e,n),a&&!g.parentId&&g.internals.rootParentIndex===void 0&&d==="auto"&&(g.internals.rootParentIndex=++a.i,g.internals.z=g.internals.z+a.i*L7),a&&g.internals.rootParentIndex!==void 0&&(a.i=g.internals.rootParentIndex);const m=o&&!Rx(d)?cj:0,{x:y,y:b,z:E}=U7(e,g,l,u,m,d),{positionAbsolute:v}=e.internals,S=y!==v.x||b!==v.y;(S||E!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:y,y:b}:v,z:E}})}function uj(e,t,n){const r=li(e.zIndex)?e.zIndex:0;return Rx(n)?r:r+(e.selected?t:0)}function U7(e,t,n,r,a,o){const{x:l,y:u}=t.internals.positionAbsolute,d=ya(e),h=Zu(e,n),g=uo(e.extent)?co(h,e.extent,d):h;let m=co({x:l+g.x,y:u+g.y},r,d);e.extent==="parent"&&(m=WC(m,d,t));const y=uj(e,a,o),b=t.internals.z??0;return{x:m.x,y:m.y,z:b>=y?b+1:y}}function Ix(e,t,n,r=[0,0]){var l;const a=[],o=new Map;for(const u of e){const d=t.get(u.parentId);if(!d)continue;const h=((l=o.get(u.parentId))==null?void 0:l.expandedRect)??Au(d),g=XC(h,u.rect);o.set(u.parentId,{expandedRect:g,parent:d})}return o.size>0&&o.forEach(({expandedRect:u,parent:d},h)=>{var _;const g=d.internals.positionAbsolute,m=ya(d),y=d.origin??r,b=u.x<g.x?Math.round(Math.abs(g.x-u.x)):0,E=u.y<g.y?Math.round(Math.abs(g.y-u.y)):0,v=Math.max(m.width,Math.round(u.width)),S=Math.max(m.height,Math.round(u.height)),k=(v-m.width)*y[0],j=(S-m.height)*y[1];(b>0||E>0||k||j)&&(a.push({id:h,type:"position",position:{x:d.position.x-b+k,y:d.position.y-E+j}}),(_=n.get(h))==null||_.forEach(N=>{e.some(O=>O.id===N.id)||a.push({id:N.id,type:"position",position:{x:N.position.x+b,y:N.position.y+E}})})),(m.width<u.width||m.height<u.height||b||E)&&a.push({id:h,type:"dimensions",setAttributes:!0,dimensions:{width:v+(b?y[0]*b-k:0),height:S+(E?y[1]*E-j:0)}})}),a}function $7(e,t,n,r,a,o,l){const u=r==null?void 0:r.querySelector(".xyflow__viewport");let d=!1;if(!u)return{changes:[],updatedInternals:d};const h=[],g=window.getComputedStyle(u),{m22:m}=new window.DOMMatrixReadOnly(g.transform),y=[];for(const b of e.values()){const E=t.get(b.id);if(!E)continue;if(E.hidden){t.set(E.id,{...E,internals:{...E.internals,handleBounds:void 0}}),d=!0;continue}const v=Mx(b.nodeElement),S=E.measured.width!==v.width||E.measured.height!==v.height;if(!!(v.width&&v.height&&(S||!E.internals.handleBounds||b.force))){const j=b.nodeElement.getBoundingClientRect(),_=uo(E.extent)?E.extent:o;let{positionAbsolute:N}=E.internals;E.parentId&&E.extent==="parent"?N=WC(N,v,t.get(E.parentId)):_&&(N=co(N,_,v));const O={...E,measured:v,internals:{...E.internals,positionAbsolute:N,handleBounds:{source:Lk("source",b.nodeElement,j,m,E.id),target:Lk("target",b.nodeElement,j,m,E.id)}}};t.set(E.id,O),E.parentId&&Lx(O,t,n,{nodeOrigin:a,zIndexMode:l}),d=!0,S&&(h.push({id:E.id,type:"dimensions",dimensions:v}),E.expandParent&&E.parentId&&y.push({id:E.id,parentId:E.parentId,rect:Au(O,a)}))}}if(y.length>0){const b=Ix(y,t,n,a);h.push(...b)}return{changes:h,updatedInternals:d}}async function F7({delta:e,panZoom:t,transform:n,translateExtent:r,width:a,height:o}){if(!t||!e.x&&!e.y)return!1;const l=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[a,o]],r);return!!l&&(l.x!==n[0]||l.y!==n[1]||l.k!==n[2])}function Fk(e,t,n,r,a,o){let l=a;const u=r.get(l)||new Map;r.set(l,u.set(n,t)),l=`${a}-${e}`;const d=r.get(l)||new Map;if(r.set(l,d.set(n,t)),o){l=`${a}-${e}-${o}`;const h=r.get(l)||new Map;r.set(l,h.set(n,t))}}function dj(e,t,n){e.clear(),t.clear();for(const r of n){const{source:a,target:o,sourceHandle:l=null,targetHandle:u=null}=r,d={edgeId:r.id,source:a,target:o,sourceHandle:l,targetHandle:u},h=`${a}-${l}--${o}-${u}`,g=`${o}-${u}--${a}-${l}`;Fk("source",d,g,e,a,l),Fk("target",d,h,e,o,u),t.set(r.id,r)}}function fj(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:fj(n,t):!1}function Hk(e,t,n){var a;let r=e;do{if((a=r==null?void 0:r.matches)!=null&&a.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function H7(e,t,n,r){const a=new Map;for(const[o,l]of e)if((l.selected||l.id===r)&&(!l.parentId||!fj(l,e))&&(l.draggable||t&&typeof l.draggable>"u")){const u=e.get(o);u&&a.set(o,{id:o,position:u.position||{x:0,y:0},distance:{x:n.x-u.internals.positionAbsolute.x,y:n.y-u.internals.positionAbsolute.y},extent:u.extent,parentId:u.parentId,origin:u.origin,expandParent:u.expandParent,internals:{positionAbsolute:u.internals.positionAbsolute||{x:0,y:0}},measured:{width:u.measured.width??0,height:u.measured.height??0}})}return a}function iy({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var l,u,d;const a=[];for(const[h,g]of t){const m=(l=n.get(h))==null?void 0:l.internals.userNode;m&&a.push({...m,position:g.position,dragging:r})}if(!e)return[a[0],a];const o=(u=n.get(e))==null?void 0:u.internals.userNode;return[o?{...o,position:((d=t.get(e))==null?void 0:d.position)||o.position,dragging:r}:a[0],a]}function q7({dragItems:e,snapGrid:t,x:n,y:r}){const a=e.values().next().value;if(!a)return null;const o={x:n-a.distance.x,y:r-a.distance.y},l=ed(o,t);return{x:l.x-o.x,y:l.y-o.y}}function K7({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:a}){let o={x:null,y:null},l=0,u=new Map,d=!1,h={x:0,y:0},g=null,m=!1,y=null,b=!1,E=!1,v=null;function S({noDragClassName:j,handleSelector:_,domNode:N,isSelectable:O,nodeId:T,nodeClickDistance:M=0}){y=kr(N);function I({x:K,y:Q}){const{nodeLookup:B,nodeExtent:q,snapGrid:z,snapToGrid:Y,nodeOrigin:W,onNodeDrag:G,onSelectionDrag:D,onError:L,updateNodePositions:V}=t();o={x:K,y:Q};let R=!1;const se=u.size>1,ge=se&&q?sb(Ju(u)):null,ye=se&&Y?q7({dragItems:u,snapGrid:z,x:K,y:Q}):null;for(const[xe,H]of u){if(!B.has(xe))continue;let ne={x:K-H.distance.x,y:Q-H.distance.y};Y&&(ne=ye?{x:Math.round(ne.x+ye.x),y:Math.round(ne.y+ye.y)}:ed(ne,z));let ue=null;if(se&&q&&!H.extent&&ge){const{positionAbsolute:be}=H.internals,je=be.x-ge.x+q[0][0],Me=be.x+H.measured.width-ge.x2+q[1][0],we=be.y-ge.y+q[0][1],ct=be.y+H.measured.height-ge.y2+q[1][1];ue=[[je,we],[Me,ct]]}const{position:ce,positionAbsolute:de}=QC({nodeId:xe,nextPosition:ne,nodeLookup:B,nodeExtent:ue||q,nodeOrigin:W,onError:L});R=R||H.position.x!==ce.x||H.position.y!==ce.y,H.position=ce,H.internals.positionAbsolute=de}if(E=E||R,!!R&&(V(u,!0),v&&(r||G||!T&&D))){const[xe,H]=iy({nodeId:T,dragItems:u,nodeLookup:B});r==null||r(v,u,xe,H),G==null||G(v,xe,H),T||D==null||D(v,H)}}async function F(){if(!g)return;const{transform:K,panBy:Q,autoPanSpeed:B,autoPanOnNodeDrag:q}=t();if(!q){d=!1,cancelAnimationFrame(l);return}const[z,Y]=Ax(h,g,B);(z!==0||Y!==0)&&(o.x=(o.x??0)-z/K[2],o.y=(o.y??0)-Y/K[2],await Q({x:z,y:Y})&&I(o)),l=requestAnimationFrame(F)}function $(K){var se;const{nodeLookup:Q,multiSelectionActive:B,nodesDraggable:q,transform:z,snapGrid:Y,snapToGrid:W,selectNodesOnDrag:G,onNodeDragStart:D,onSelectionDragStart:L,unselectNodesAndEdges:V}=t();m=!0,(!G||!O)&&!B&&T&&((se=Q.get(T))!=null&&se.selected||V()),O&&G&&T&&(e==null||e(T));const R=du(K.sourceEvent,{transform:z,snapGrid:Y,snapToGrid:W,containerBounds:g});if(o=R,u=H7(Q,q,R,T),u.size>0&&(n||D||!T&&L)){const[ge,ye]=iy({nodeId:T,dragItems:u,nodeLookup:Q});n==null||n(K.sourceEvent,u,ge,ye),D==null||D(K.sourceEvent,ge,ye),T||L==null||L(K.sourceEvent,ye)}}const U=jC().clickDistance(M).on("start",K=>{const{domNode:Q,nodeDragThreshold:B,transform:q,snapGrid:z,snapToGrid:Y}=t();g=(Q==null?void 0:Q.getBoundingClientRect())||null,b=!1,E=!1,v=K.sourceEvent,B===0&&$(K),o=du(K.sourceEvent,{transform:q,snapGrid:z,snapToGrid:Y,containerBounds:g}),h=ci(K.sourceEvent,g)}).on("drag",K=>{const{autoPanOnNodeDrag:Q,transform:B,snapGrid:q,snapToGrid:z,nodeDragThreshold:Y,nodeLookup:W}=t(),G=du(K.sourceEvent,{transform:B,snapGrid:q,snapToGrid:z,containerBounds:g});if(v=K.sourceEvent,(K.sourceEvent.type==="touchmove"&&K.sourceEvent.touches.length>1||T&&!W.has(T))&&(b=!0),!b){if(!d&&Q&&m&&(d=!0,F()),!m){const D=ci(K.sourceEvent,g),L=D.x-h.x,V=D.y-h.y;Math.sqrt(L*L+V*V)>Y&&$(K)}(o.x!==G.xSnapped||o.y!==G.ySnapped)&&u&&m&&(h=ci(K.sourceEvent,g),I(G))}}).on("end",K=>{if(!m||b){b&&u.size>0&&t().updateNodePositions(u,!1);return}if(d=!1,m=!1,cancelAnimationFrame(l),u.size>0){const{nodeLookup:Q,updateNodePositions:B,onNodeDragStop:q,onSelectionDragStop:z}=t();if(E&&(B(u,!1),E=!1),a||q||!T&&z){const[Y,W]=iy({nodeId:T,dragItems:u,nodeLookup:Q,dragging:!1});a==null||a(K.sourceEvent,u,Y,W),q==null||q(K.sourceEvent,Y,W),T||z==null||z(K.sourceEvent,W)}}}).filter(K=>{const Q=K.target;return!K.button&&(!j||!Hk(Q,`.${j}`,N))&&(!_||Hk(Q,_,N))});y.call(U)}function k(){y==null||y.on(".drag",null)}return{update:S,destroy:k}}function G7(e,t,n){const r=[],a={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())Ch(a,Au(o))>0&&r.push(o);return r}const V7=250;function Y7(e,t,n,r){var u,d;let a=[],o=1/0;const l=G7(e,n,t+V7);for(const h of l){const g=[...((u=h.internals.handleBounds)==null?void 0:u.source)??[],...((d=h.internals.handleBounds)==null?void 0:d.target)??[]];for(const m of g){if(r.nodeId===m.nodeId&&r.type===m.type&&r.id===m.id)continue;const{x:y,y:b}=fo(h,m,m.position,!0),E=Math.sqrt(Math.pow(y-e.x,2)+Math.pow(b-e.y,2));E>t||(E<o?(a=[{...m,x:y,y:b}],o=E):E===o&&a.push({...m,x:y,y:b}))}}if(!a.length)return null;if(a.length>1){const h=r.type==="source"?"target":"source";return a.find(g=>g.type===h)??a[0]}return a[0]}function hj(e,t,n,r,a,o=!1){var h,g,m;const l=r.get(e);if(!l)return null;const u=a==="strict"?(h=l.internals.handleBounds)==null?void 0:h[t]:[...((g=l.internals.handleBounds)==null?void 0:g.source)??[],...((m=l.internals.handleBounds)==null?void 0:m.target)??[]],d=(n?u==null?void 0:u.find(y=>y.id===n):u==null?void 0:u[0])??null;return d&&o?{...d,...fo(l,d,d.position,!0)}:d}function pj(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Q7(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const mj=()=>!0;function W7(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:a,edgeUpdaterType:o,isTarget:l,domNode:u,nodeLookup:d,lib:h,autoPanOnConnect:g,flowId:m,panBy:y,cancelConnection:b,onConnectStart:E,onConnect:v,onConnectEnd:S,isValidConnection:k=mj,onReconnectEnd:j,updateConnection:_,getTransform:N,getFromHandle:O,autoPanSpeed:T,dragThreshold:M=1,handleDomNode:I}){const F=nj(e.target);let $=0,U;const{x:K,y:Q}=ci(e),B=pj(o,I),q=u==null?void 0:u.getBoundingClientRect();let z=!1;if(!q||!B)return;const Y=hj(a,B,r,d,t);if(!Y)return;let W=ci(e,q),G=!1,D=null,L=!1,V=null;function R(){if(!g||!q)return;const[ce,de]=Ax(W,q,T);y({x:ce,y:de}),$=requestAnimationFrame(R)}const se={...Y,nodeId:a,type:B,position:Y.position},ge=d.get(a);let xe={inProgress:!0,isValid:null,from:fo(ge,se,Le.Left,!0),fromHandle:se,fromPosition:se.position,fromNode:ge,to:W,toHandle:null,toPosition:Mk[se.position],toNode:null,pointer:W};function H(){z=!0,_(xe),E==null||E(e,{nodeId:a,handleId:r,handleType:B})}M===0&&H();function ne(ce){if(!z){const{x:ct,y:Pt}=ci(ce),an=ct-K,ln=Pt-Q;if(!(an*an+ln*ln>M*M))return;H()}if(!O()||!se){ue(ce);return}const de=N();W=ci(ce,q),U=Y7(td(W,de,!1,[1,1]),n,d,se),G||(R(),G=!0);const be=gj(ce,{handle:U,connectionMode:t,fromNodeId:a,fromHandleId:r,fromType:l?"target":"source",isValidConnection:k,doc:F,lib:h,flowId:m,nodeLookup:d});V=be.handleDomNode,D=be.connection,L=Q7(!!U,be.isValid);const je=d.get(a),Me=je?fo(je,se,Le.Left,!0):xe.from,we={...xe,from:Me,isValid:L,to:be.toHandle&&L?Bl({x:be.toHandle.x,y:be.toHandle.y},de):W,toHandle:be.toHandle,toPosition:L&&be.toHandle?be.toHandle.position:Mk[se.position],toNode:be.toHandle?d.get(be.toHandle.nodeId):null,pointer:W};_(we),xe=we}function ue(ce){if(!("touches"in ce&&ce.touches.length>0)){if(z){(U||V)&&D&&L&&(v==null||v(D));const{inProgress:de,...be}=xe,je={...be,toPosition:xe.toHandle?xe.toPosition:null};S==null||S(ce,je),o&&(j==null||j(ce,je))}b(),cancelAnimationFrame($),G=!1,L=!1,D=null,V=null,F.removeEventListener("mousemove",ne),F.removeEventListener("mouseup",ue),F.removeEventListener("touchmove",ne),F.removeEventListener("touchend",ue)}}F.addEventListener("mousemove",ne),F.addEventListener("mouseup",ue),F.addEventListener("touchmove",ne),F.addEventListener("touchend",ue)}function gj(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:a,fromType:o,doc:l,lib:u,flowId:d,isValidConnection:h=mj,nodeLookup:g}){const m=o==="target",y=t?l.querySelector(`.${u}-flow__handle[data-id="${d}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:b,y:E}=ci(e),v=l.elementFromPoint(b,E),S=v!=null&&v.classList.contains(`${u}-flow__handle`)?v:y,k={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const j=pj(void 0,S),_=S.getAttribute("data-nodeid"),N=S.getAttribute("data-handleid"),O=S.classList.contains("connectable"),T=S.classList.contains("connectableend");if(!_||!j)return k;const M={source:m?_:r,sourceHandle:m?N:a,target:m?r:_,targetHandle:m?a:N};k.connection=M;const F=O&&T&&(n===zl.Strict?m&&j==="source"||!m&&j==="target":_!==r||N!==a);k.isValid=F&&h(M),k.toHandle=hj(_,j,N,g,n,!0)}return k}const ub={onPointerDown:W7,isValid:gj};function X7({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const a=kr(e);function o({translateExtent:u,width:d,height:h,zoomStep:g=1,pannable:m=!0,zoomable:y=!0,inversePan:b=!1}){const E=_=>{if(_.sourceEvent.type!=="wheel"||!t)return;const N=n(),O=_.sourceEvent.ctrlKey&&Tu()?10:1,T=-_.sourceEvent.deltaY*(_.sourceEvent.deltaMode===1?.05:_.sourceEvent.deltaMode?1:.002)*g,M=N[2]*Math.pow(2,T*O);t.scaleTo(M)};let v=[0,0];const S=_=>{(_.sourceEvent.type==="mousedown"||_.sourceEvent.type==="touchstart")&&(v=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY])},k=_=>{const N=n();if(_.sourceEvent.type!=="mousemove"&&_.sourceEvent.type!=="touchmove"||!t)return;const O=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY],T=[O[0]-v[0],O[1]-v[1]];v=O;const M=r()*Math.max(N[2],Math.log(N[2]))*(b?-1:1),I={x:N[0]-T[0]*M,y:N[1]-T[1]*M},F=[[0,0],[d,h]];t.setViewportConstrained({x:I.x,y:I.y,zoom:N[2]},F,u)},j=HC().on("start",S).on("zoom",m?k:null).on("zoom.wheel",y?E:null);a.call(j,{})}function l(){a.on("zoom",null)}return{update:o,destroy:l,pointer:si}}const ip=e=>({x:e.x,y:e.y,zoom:e.k}),ay=({x:e,y:t,zoom:n})=>tp.translate(e,t).scale(n),hl=(e,t)=>e.target.closest(`.${t}`),yj=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Z7=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,sy=(e,t=0,n=Z7,r=()=>{})=>{const a=typeof t=="number"&&t>0;return a||r(),a?e.transition().duration(t).ease(n).on("end",r):e},bj=e=>{const t=e.ctrlKey&&Tu()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function J7({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:a,panOnScrollSpeed:o,zoomOnPinch:l,onPanZoomStart:u,onPanZoom:d,onPanZoomEnd:h}){return g=>{if(hl(g,t))return g.ctrlKey&&g.preventDefault(),!1;g.preventDefault(),g.stopImmediatePropagation();const m=n.property("__zoom").k||1;if(g.ctrlKey&&l){const S=si(g),k=bj(g),j=m*Math.pow(2,k);r.scaleTo(n,j,S,g);return}const y=g.deltaMode===1?20:1;let b=a===ro.Vertical?0:g.deltaX*y,E=a===ro.Horizontal?0:g.deltaY*y;!Tu()&&g.shiftKey&&a!==ro.Vertical&&(b=g.deltaY*y,E=0),r.translateBy(n,-(b/m)*o,-(E/m)*o,{internal:!0});const v=ip(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d==null||d(g,v),e.panScrollTimeout=setTimeout(()=>{h==null||h(g,v),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,u==null||u(g,v))}}function eK({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,a){const o=r.type==="wheel",l=!t&&o&&!r.ctrlKey,u=hl(r,e);if(r.ctrlKey&&o&&u&&r.preventDefault(),l||u)return null;r.preventDefault(),n.call(this,r,a)}}function tK({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var o,l,u;if((o=r.sourceEvent)!=null&&o.internal)return;const a=ip(r.transform);e.mouseButton=((l=r.sourceEvent)==null?void 0:l.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=a,((u=r.sourceEvent)==null?void 0:u.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,a))}}function nK({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:a}){return o=>{var l,u;e.usedRightMouseButton=!!(n&&yj(t,e.mouseButton??0)),(l=o.sourceEvent)!=null&&l.sync||r([o.transform.x,o.transform.y,o.transform.k]),a&&!((u=o.sourceEvent)!=null&&u.internal)&&(a==null||a(o.sourceEvent,ip(o.transform)))}}function rK({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:a,onPaneContextMenu:o}){return l=>{var u;if(!((u=l.sourceEvent)!=null&&u.internal)&&(e.isZoomingOrPanning=!1,o&&yj(t,e.mouseButton??0)&&!e.usedRightMouseButton&&l.sourceEvent&&o(l.sourceEvent),e.usedRightMouseButton=!1,r(!1),a)){const d=ip(l.transform);e.prevViewport=d,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{a==null||a(l.sourceEvent,d)},n?150:0)}}}function iK({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:l,noWheelClassName:u,noPanClassName:d,lib:h,connectionInProgress:g}){return m=>{var S;const y=e||t,b=n&&m.ctrlKey,E=m.type==="wheel";if(m.button===1&&m.type==="mousedown"&&(hl(m,`${h}-flow__node`)||hl(m,`${h}-flow__edge`)))return!0;if(!r&&!y&&!a&&!o&&!n||l||g&&!E||hl(m,u)&&E||hl(m,d)&&(!E||a&&E&&!e)||!n&&m.ctrlKey&&E)return!1;if(!n&&m.type==="touchstart"&&((S=m.touches)==null?void 0:S.length)>1)return m.preventDefault(),!1;if(!y&&!a&&!b&&E||!r&&(m.type==="mousedown"||m.type==="touchstart")||Array.isArray(r)&&!r.includes(m.button)&&m.type==="mousedown")return!1;const v=Array.isArray(r)&&r.includes(m.button)||!m.button||m.button<=1;return(!m.ctrlKey||E)&&v}}function aK({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:a,onPanZoom:o,onPanZoomStart:l,onPanZoomEnd:u,onDraggingChange:d}){const h={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},g=e.getBoundingClientRect(),m=HC().scaleExtent([t,n]).translateExtent(r),y=kr(e).call(m);j({x:a.x,y:a.y,zoom:Pl(a.zoom,t,n)},[[0,0],[g.width,g.height]],r);const b=y.on("wheel.zoom"),E=y.on("dblclick.zoom");m.wheelDelta(bj);async function v(U,K){return y?new Promise(Q=>{m==null||m.interpolate((K==null?void 0:K.interpolate)==="linear"?uu:Wf).transform(sy(y,K==null?void 0:K.duration,K==null?void 0:K.ease,()=>Q(!0)),U)}):!1}function S({noWheelClassName:U,noPanClassName:K,onPaneContextMenu:Q,userSelectionActive:B,panOnScroll:q,panOnDrag:z,panOnScrollMode:Y,panOnScrollSpeed:W,preventScrolling:G,zoomOnPinch:D,zoomOnScroll:L,zoomOnDoubleClick:V,zoomActivationKeyPressed:R,lib:se,onTransformChange:ge,connectionInProgress:ye,paneClickDistance:xe,selectionOnDrag:H}){B&&!h.isZoomingOrPanning&&k();const ne=q&&!R&&!B;m.clickDistance(H?1/0:!li(xe)||xe<0?0:xe);const ue=ne?J7({zoomPanValues:h,noWheelClassName:U,d3Selection:y,d3Zoom:m,panOnScrollMode:Y,panOnScrollSpeed:W,zoomOnPinch:D,onPanZoomStart:l,onPanZoom:o,onPanZoomEnd:u}):eK({noWheelClassName:U,preventScrolling:G,d3ZoomHandler:b});y.on("wheel.zoom",ue,{passive:!1});const ce=tK({zoomPanValues:h,onDraggingChange:d,onPanZoomStart:l});m.on("start",ce);const de=nK({zoomPanValues:h,panOnDrag:z,onPaneContextMenu:!!Q,onPanZoom:o,onTransformChange:ge});m.on("zoom",de);const be=rK({zoomPanValues:h,panOnDrag:z,panOnScroll:q,onPaneContextMenu:Q,onPanZoomEnd:u,onDraggingChange:d});m.on("end",be);const je=iK({zoomActivationKeyPressed:R,panOnDrag:z,zoomOnScroll:L,panOnScroll:q,zoomOnDoubleClick:V,zoomOnPinch:D,userSelectionActive:B,noPanClassName:K,noWheelClassName:U,lib:se,connectionInProgress:ye});m.filter(je),V?y.on("dblclick.zoom",E):y.on("dblclick.zoom",null)}function k(){m.on("zoom",null)}async function j(U,K,Q){const B=ay(U),q=m==null?void 0:m.constrain()(B,K,Q);return q&&await v(q),q}async function _(U,K){const Q=ay(U);return await v(Q,K),Q}function N(U){if(y){const K=ay(U),Q=y.property("__zoom");(Q.k!==U.zoom||Q.x!==U.x||Q.y!==U.y)&&(m==null||m.transform(y,K,null,{sync:!0}))}}function O(){const U=y?FC(y.node()):{x:0,y:0,k:1};return{x:U.x,y:U.y,zoom:U.k}}async function T(U,K){return y?new Promise(Q=>{m==null||m.interpolate((K==null?void 0:K.interpolate)==="linear"?uu:Wf).scaleTo(sy(y,K==null?void 0:K.duration,K==null?void 0:K.ease,()=>Q(!0)),U)}):!1}async function M(U,K){return y?new Promise(Q=>{m==null||m.interpolate((K==null?void 0:K.interpolate)==="linear"?uu:Wf).scaleBy(sy(y,K==null?void 0:K.duration,K==null?void 0:K.ease,()=>Q(!0)),U)}):!1}function I(U){m==null||m.scaleExtent(U)}function F(U){m==null||m.translateExtent(U)}function $(U){const K=!li(U)||U<0?0:U;m==null||m.clickDistance(K)}return{update:S,destroy:k,setViewport:_,setViewportConstrained:j,getViewport:O,scaleTo:T,scaleBy:M,setScaleExtent:I,setTranslateExtent:F,syncViewport:N,setClickDistance:$}}var Ul;(function(e){e.Line="line",e.Handle="handle"})(Ul||(Ul={}));function sK({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:a,affectsY:o}){const l=e-t,u=n-r,d=[l>0?1:l<0?-1:0,u>0?1:u<0?-1:0];return l&&a&&(d[0]=d[0]*-1),u&&o&&(d[1]=d[1]*-1),d}function qk(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),a=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:a}}function Ja(e,t){return Math.max(0,t-e)}function es(e,t){return Math.max(0,e-t)}function Pf(e,t,n){return Math.max(0,t-e,e-n)}function Kk(e,t){return e?!t:t}function oK(e,t,n,r,a,o,l,u){let{affectsX:d,affectsY:h}=t;const{isHorizontal:g,isVertical:m}=t,y=g&&m,{xSnapped:b,ySnapped:E}=n,{minWidth:v,maxWidth:S,minHeight:k,maxHeight:j}=r,{x:_,y:N,width:O,height:T,aspectRatio:M}=e;let I=Math.floor(g?b-e.pointerX:0),F=Math.floor(m?E-e.pointerY:0);const $=O+(d?-I:I),U=T+(h?-F:F),K=-o[0]*O,Q=-o[1]*T;let B=Pf($,v,S),q=Pf(U,k,j);if(l){let W=0,G=0;d&&I<0?W=Ja(_+I+K,l[0][0]):!d&&I>0&&(W=es(_+$+K,l[1][0])),h&&F<0?G=Ja(N+F+Q,l[0][1]):!h&&F>0&&(G=es(N+U+Q,l[1][1])),B=Math.max(B,W),q=Math.max(q,G)}if(u){let W=0,G=0;d&&I>0?W=es(_+I,u[0][0]):!d&&I<0&&(W=Ja(_+$,u[1][0])),h&&F>0?G=es(N+F,u[0][1]):!h&&F<0&&(G=Ja(N+U,u[1][1])),B=Math.max(B,W),q=Math.max(q,G)}if(a){if(g){const W=Pf($/M,k,j)*M;if(B=Math.max(B,W),l){let G=0;!d&&!h||d&&!h&&y?G=es(N+Q+$/M,l[1][1])*M:G=Ja(N+Q+(d?I:-I)/M,l[0][1])*M,B=Math.max(B,G)}if(u){let G=0;!d&&!h||d&&!h&&y?G=Ja(N+$/M,u[1][1])*M:G=es(N+(d?I:-I)/M,u[0][1])*M,B=Math.max(B,G)}}if(m){const W=Pf(U*M,v,S)/M;if(q=Math.max(q,W),l){let G=0;!d&&!h||h&&!d&&y?G=es(_+U*M+K,l[1][0])/M:G=Ja(_+(h?F:-F)*M+K,l[0][0])/M,q=Math.max(q,G)}if(u){let G=0;!d&&!h||h&&!d&&y?G=Ja(_+U*M,u[1][0])/M:G=es(_+(h?F:-F)*M,u[0][0])/M,q=Math.max(q,G)}}}F=F+(F<0?q:-q),I=I+(I<0?B:-B),a&&(y?$>U*M?F=(Kk(d,h)?-I:I)/M:I=(Kk(d,h)?-F:F)*M:g?(F=I/M,h=d):(I=F*M,d=h));const z=d?_+I:_,Y=h?N+F:N;return{width:O+(d?-I:I),height:T+(h?-F:F),x:o[0]*I*(d?-1:1)+z,y:o[1]*F*(h?-1:1)+Y}}const xj={width:0,height:0,x:0,y:0},lK={...xj,pointerX:0,pointerY:0,aspectRatio:1};function cK(e,t,n){const r=t.position.x+e.position.x,a=t.position.y+e.position.y,o=e.measured.width??0,l=e.measured.height??0,u=n[0]*o,d=n[1]*l;return[[r-u,a-d],[r+o-u,a+l-d]]}function uK({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:a}){const o=kr(e);let l={controlDirection:qk("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function u({controlPosition:h,boundaries:g,keepAspectRatio:m,resizeDirection:y,onResizeStart:b,onResize:E,onResizeEnd:v,shouldResize:S}){let k={...xj},j={...lK};l={boundaries:g,resizeDirection:y,keepAspectRatio:m,controlDirection:qk(h)};let _,N=null,O=[],T,M,I,F=!1;const $=jC().on("start",U=>{const{nodeLookup:K,transform:Q,snapGrid:B,snapToGrid:q,nodeOrigin:z,paneDomNode:Y}=n();if(_=K.get(t),!_)return;N=(Y==null?void 0:Y.getBoundingClientRect())??null;const{xSnapped:W,ySnapped:G}=du(U.sourceEvent,{transform:Q,snapGrid:B,snapToGrid:q,containerBounds:N});k={width:_.measured.width??0,height:_.measured.height??0,x:_.position.x??0,y:_.position.y??0},j={...k,pointerX:W,pointerY:G,aspectRatio:k.width/k.height},T=void 0,M=uo(_.extent)?_.extent:void 0,_.parentId&&(_.extent==="parent"||_.expandParent)&&(T=K.get(_.parentId)),T&&_.extent==="parent"&&(M=[[0,0],[T.measured.width,T.measured.height]]),O=[],I=void 0;for(const[D,L]of K)if(L.parentId===t&&(O.push({id:D,position:{...L.position},extent:L.extent}),L.extent==="parent"||L.expandParent)){const V=cK(L,_,L.origin??z);I?I=[[Math.min(V[0][0],I[0][0]),Math.min(V[0][1],I[0][1])],[Math.max(V[1][0],I[1][0]),Math.max(V[1][1],I[1][1])]]:I=V}b==null||b(U,{...k})}).on("drag",U=>{const{transform:K,snapGrid:Q,snapToGrid:B,nodeOrigin:q}=n(),z=du(U.sourceEvent,{transform:K,snapGrid:Q,snapToGrid:B,containerBounds:N}),Y=[];if(!_)return;const{x:W,y:G,width:D,height:L}=k,V={},R=_.origin??q,{width:se,height:ge,x:ye,y:xe}=oK(j,l.controlDirection,z,l.boundaries,l.keepAspectRatio,R,M,I),H=se!==D,ne=ge!==L,ue=ye!==W&&H,ce=xe!==G&&ne;if(!ue&&!ce&&!H&&!ne)return;if((ue||ce||R[0]===1||R[1]===1)&&(V.x=ue?ye:k.x,V.y=ce?xe:k.y,k.x=V.x,k.y=V.y,O.length>0)){const Me=ye-W,we=xe-G;for(const ct of O)ct.position={x:ct.position.x-Me+R[0]*(se-D),y:ct.position.y-we+R[1]*(ge-L)},Y.push(ct)}if((H||ne)&&(V.width=H&&(!l.resizeDirection||l.resizeDirection==="horizontal")?se:k.width,V.height=ne&&(!l.resizeDirection||l.resizeDirection==="vertical")?ge:k.height,k.width=V.width,k.height=V.height),T&&_.expandParent){const Me=R[0]*(V.width??0);V.x&&V.x<Me&&(k.x=Me,j.x=j.x-(V.x-Me));const we=R[1]*(V.height??0);V.y&&V.y<we&&(k.y=we,j.y=j.y-(V.y-we))}const de=sK({width:k.width,prevWidth:D,height:k.height,prevHeight:L,affectsX:l.controlDirection.affectsX,affectsY:l.controlDirection.affectsY}),be={...k,direction:de};(S==null?void 0:S(U,be))!==!1&&(F=!0,E==null||E(U,be),r(V,Y))}).on("end",U=>{F&&(v==null||v(U,{...k}),a==null||a({...k}),F=!1)});o.call($)}function d(){o.on(".drag",null)}return{update:u,destroy:d}}var oy={exports:{}},ly={},cy={exports:{}},uy={};/**
583
583
  * @license React