silvery 0.12.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +2 -2
- package/dist/index.js +25 -25
- package/dist/ink.js +9 -9
- package/dist/runtime.js +10 -10
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import{createRequire}from"node:module";var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames}=Object;var __hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to};var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);var __require=createRequire(import.meta.url),__dispose=Symbol.dispose||Symbol.for("Symbol.dispose"),__asyncDispose=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),__using=(stack,value,async)=>{if(value!=null){if(typeof value!=="object"&&typeof value!=="function")throw TypeError('Object expected to be assigned to "using" declaration');var dispose;if(async)dispose=value[__asyncDispose];if(dispose===void 0)dispose=value[__dispose];if(typeof dispose!=="function")throw TypeError("Object not disposable");stack.push([async,dispose,value])}else if(async)stack.push([async]);return value},__callDispose=(stack,error,hasError)=>{var E=typeof SuppressedError==="function"?SuppressedError:function(e,s,m,_){return _=Error(m),_.name="SuppressedError",_.error=e,_.suppressed=s,_},fail=(e)=>error=hasError?new E(e,error,"An error was suppressed during disposal"):(hasError=!0,e),next=(it)=>{while(it=stack.pop())try{var result=it[1]&&it[1].call(it[2]);if(it[0])return Promise.resolve(result).then(next,(e)=>(fail(e),next()))}catch(e){fail(e)}if(hasError)throw error};return next()};import{createContext}from"react";var TermContext,NodeContext,StdoutContext,StderrContext,RuntimeContext,CacheBackendContext,FocusManagerContext,CapabilityRegistryContext;var init_context=__esm(()=>{TermContext=createContext(null),NodeContext=createContext(null),StdoutContext=createContext(null),StderrContext=createContext(null),RuntimeContext=createContext(null),CacheBackendContext=createContext("virtual"),FocusManagerContext=createContext(null),CapabilityRegistryContext=createContext(null)});var init_constants=()=>{};function detectCursor(stdout){if(!stdout.isTTY)return!1;if(process.env.TERM==="dumb")return!1;return!0}function detectInput(stdin){if(!stdin.isTTY)return!1;return typeof stdin.setRawMode==="function"}function detectColor(stdout){if(process.env.NO_COLOR!==void 0)return null;let forceColor=process.env.FORCE_COLOR;if(forceColor!==void 0){if(forceColor==="0"||forceColor==="false")return null;if(forceColor==="1")return"basic";if(forceColor==="2")return"256";if(forceColor==="3")return"truecolor";return"basic"}if(!stdout.isTTY)return null;if(process.env.TERM==="dumb")return null;let colorTerm=process.env.COLORTERM;if(colorTerm==="truecolor"||colorTerm==="24bit")return"truecolor";let term=process.env.TERM??"";if(term.includes("truecolor")||term.includes("24bit")||term.includes("xterm-ghostty")||term.includes("xterm-kitty")||term.includes("wezterm"))return"truecolor";if(term.includes("256color")||term.includes("256"))return"256";let termProgram=process.env.TERM_PROGRAM;if(termProgram==="iTerm.app"||termProgram==="Apple_Terminal")return termProgram==="iTerm.app"?"truecolor":"256";if(termProgram==="Ghostty"||termProgram==="WezTerm")return"truecolor";if(process.env.KITTY_WINDOW_ID)return"truecolor";if(term.includes("xterm")||term.includes("color")||term.includes("ansi"))return"basic";if(CI_ENVS.some((env)=>process.env[env]!==void 0))return"basic";if(process.env.WT_SESSION)return"truecolor";return"basic"}function detectUnicode(){if(process.env.CI){if(process.env.GITHUB_ACTIONS)return!0}let lang=process.env.LANG??process.env.LC_ALL??process.env.LC_CTYPE??"";if(lang.toLowerCase().includes("utf-8")||lang.toLowerCase().includes("utf8"))return!0;if(process.env.WT_SESSION)return!0;let termProgram=process.env.TERM_PROGRAM??"";if(["iTerm.app","Ghostty","WezTerm","Apple_Terminal"].includes(termProgram))return!0;if(process.env.KITTY_WINDOW_ID)return!0;let term=process.env.TERM??"";if(term.includes("xterm")||term.includes("rxvt")||term.includes("screen")||term.includes("tmux"))return!0;return!1}function defaultCaps(){return{program:"",term:"",colorLevel:"truecolor",kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,osc52:!1,hyperlinks:!1,notifications:!1,bracketedPaste:!0,mouse:!0,syncOutput:!1,unicode:!0,underlineStyles:!0,underlineColor:!0,textEmojiWide:!0,textSizingSupported:!1,darkBackground:!0,nerdfont:!1}}function detectMacOSDarkMode(){if(cachedMacOSDarkMode!==void 0)return cachedMacOSDarkMode;try{let{spawnSync}=__require("child_process");cachedMacOSDarkMode=spawnSync("defaults",["read","-g","AppleInterfaceStyle"],{encoding:"utf-8",timeout:500}).stdout?.trim()==="Dark"}catch{cachedMacOSDarkMode=!1}return cachedMacOSDarkMode}function detectTerminalCaps(){let program=process.env.TERM_PROGRAM??"",term=process.env.TERM??"",colorTerm=process.env.COLORTERM??"",noColor=process.env.NO_COLOR!==void 0,isAppleTerminal=program==="Apple_Terminal",colorLevel="none";if(!noColor){if(isAppleTerminal)colorLevel="256";else if(colorTerm==="truecolor"||colorTerm==="24bit")colorLevel="truecolor";else if(term.includes("256color"))colorLevel="256";else if(process.stdout?.isTTY)colorLevel="basic"}let isKitty=term==="xterm-kitty",isITerm=program==="iTerm.app",isGhostty=program==="ghostty",isWezTerm=program==="WezTerm",isAlacritty=program==="Alacritty",isFoot=term==="foot"||term==="foot-extra",isModern=isKitty||isITerm||isGhostty||isWezTerm||isFoot,isKittyWithTextSizing=!1;if(isKitty){let parts=(process.env.TERM_PROGRAM_VERSION??"").split("."),major=Number(parts[0])||0,minor=Number(parts[1])||0;isKittyWithTextSizing=major>0||major===0&&minor>=40}let darkBackground=!isAppleTerminal,colorFgBg=process.env.COLORFGBG;if(colorFgBg){let parts=colorFgBg.split(";"),bg=parseInt(parts[parts.length-1]??"",10);if(!isNaN(bg))darkBackground=bg<7}else if(isAppleTerminal)darkBackground=detectMacOSDarkMode();let nerdfont=isModern||isAlacritty,nfEnv=process.env.NERDFONT;if(nfEnv==="0"||nfEnv==="false")nerdfont=!1;else if(nfEnv==="1"||nfEnv==="true")nerdfont=!0;let underlineExtensions=isModern||isAlacritty;return{program,term,colorLevel,kittyKeyboard:isKitty||isGhostty||isWezTerm||isFoot,kittyGraphics:isKitty||isGhostty,sixel:isFoot||isWezTerm,osc52:isModern||isAlacritty,hyperlinks:isModern||isAlacritty,notifications:isITerm||isKitty,bracketedPaste:!0,mouse:!0,syncOutput:isModern||isAlacritty,unicode:!0,underlineStyles:underlineExtensions,underlineColor:underlineExtensions,textEmojiWide:!isAppleTerminal,textSizingSupported:isKittyWithTextSizing,darkBackground,nerdfont}}var CI_ENVS,cachedMacOSDarkMode;var init_detection=__esm(()=>{CI_ENVS=["CI","GITHUB_ACTIONS","GITLAB_CI","JENKINS_URL","BUILDKITE","CIRCLECI","TRAVIS"]});function fgColorCode(color){if(typeof color==="number"){if(color>=0&&color<=7)return`${30+color}`;return`38;5;${color}`}return`38;2;${color.r};${color.g};${color.b}`}function bgColorCode(color){if(typeof color==="number"){if(color>=0&&color<=7)return`${40+color}`;return`48;5;${color}`}return`48;2;${color.r};${color.g};${color.b}`}import stringWidth from"string-width";var init_utils=()=>{};function nearestAnsi16(r,g,b){let bestIdx=0,bestDist=1/0;for(let i=0;i<16;i++){let[cr,cg,cb]=ANSI_16_COLORS[i],dist=(r-cr)**2+(g-cg)**2+(b-cb)**2;if(dist<bestDist)bestDist=dist,bestIdx=i}return bestIdx}function rgbToAnsi256(r,g,b){if(r===g&&g===b){if(r<8)return 16;if(r>248)return 231;return Math.round((r-8)/247*24)+232}let ri=Math.round(r/255*5),gi=Math.round(g/255*5),bi=Math.round(b/255*5);return 16+36*ri+6*gi+bi}function fgFromRgb(r,g,b,level){if(level==="truecolor")return`38;2;${r};${g};${b}`;if(level==="256")return`38;5;${rgbToAnsi256(r,g,b)}`;let idx=nearestAnsi16(r,g,b);return idx<8?`${30+idx}`:`${82+idx}`}function bgFromRgb(r,g,b,level){if(level==="truecolor")return`48;2;${r};${g};${b}`;if(level==="256")return`48;5;${rgbToAnsi256(r,g,b)}`;let idx=nearestAnsi16(r,g,b);return idx<8?`${40+idx}`:`${92+idx}`}var MODIFIERS,FG_COLORS,BG_COLORS,ANSI_16_COLORS;var init_color_maps=__esm(()=>{MODIFIERS={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],overline:[53,55]},FG_COLORS={black:30,red:31,green:32,yellow:33,blue:34,magenta:35,cyan:36,white:37,blackBright:90,gray:90,grey:90,redBright:91,greenBright:92,yellowBright:93,blueBright:94,magentaBright:95,cyanBright:96,whiteBright:97},BG_COLORS={bgBlack:40,bgRed:41,bgGreen:42,bgYellow:43,bgBlue:44,bgMagenta:45,bgCyan:46,bgWhite:47,bgBlackBright:100,bgGray:100,bgGrey:100,bgRedBright:101,bgGreenBright:102,bgYellowBright:103,bgBlueBright:104,bgMagentaBright:105,bgCyanBright:106,bgWhiteBright:107},ANSI_16_COLORS=[[0,0,0],[128,0,0],[0,128,0],[128,128,0],[0,0,128],[128,0,128],[0,128,128],[192,192,192],[128,128,128],[255,0,0],[0,255,0],[255,255,0],[0,0,255],[255,0,255],[0,255,255],[255,255,255]]});function enableMouse(){return"\x1B[?1003h\x1B[?1006h"}function disableMouse(){return"\x1B[?1006l\x1B[?1003l"}function enableKittyKeyboard(flags=1){return`\x1B[>${flags}u`}function disableKittyKeyboard(){return"\x1B[<u"}var init_underline_ext=__esm(()=>{init_constants();init_detection()});var init_hyperlink=__esm(()=>{init_constants()});function hexToRgb(hex){if(hex[0]!=="#")return null;let h=hex.slice(1);if(h.length===3)return[parseInt(h[0]+h[0],16),parseInt(h[1]+h[1],16),parseInt(h[2]+h[2],16)];if(h.length===6)return[parseInt(h.slice(0,2),16),parseInt(h.slice(2,4),16),parseInt(h.slice(4,6),16)];return null}function rgbToHex(r,g,b){let clamp=(n)=>Math.max(0,Math.min(255,Math.round(n)));return`#${clamp(r).toString(16).padStart(2,"0")}${clamp(g).toString(16).padStart(2,"0")}${clamp(b).toString(16).padStart(2,"0")}`.toUpperCase()}function blend(a,b,t){let rgbA=hexToRgb(a),rgbB=hexToRgb(b);if(!rgbA||!rgbB)return a;return rgbToHex(rgbA[0]+(rgbB[0]-rgbA[0])*t,rgbA[1]+(rgbB[1]-rgbA[1])*t,rgbA[2]+(rgbB[2]-rgbA[2])*t)}function brighten(color,amount){return blend(color,"#FFFFFF",amount)}function channelLuminance(c){let s=c/255;return s<=0.03928?s/12.92:Math.pow((s+0.055)/1.055,2.4)}function relativeLuminance(hex){let rgb=hexToRgb(hex);if(!rgb)return null;return 0.2126*channelLuminance(rgb[0])+0.7152*channelLuminance(rgb[1])+0.0722*channelLuminance(rgb[2])}function contrastFg(bg){let luminance=relativeLuminance(bg);if(luminance===null)return"#FFFFFF";return luminance>0.179?"#000000":"#FFFFFF"}function rgbToHsl(r,g,b){r/=255,g/=255,b/=255;let max=Math.max(r,g,b),min=Math.min(r,g,b),l=(max+min)/2;if(max===min)return[0,0,l];let d=max-min,s=l>0.5?d/(2-max-min):d/(max+min),h=0;if(max===r)h=((g-b)/d+(g<b?6:0))/6;else if(max===g)h=((b-r)/d+2)/6;else h=((r-g)/d+4)/6;return[h*360,s,l]}function hslToHex(h,s,l){h=(h%360+360)%360;let a=s*Math.min(l,1-l),f=(n)=>{let k=(n+h/30)%12;return l-a*Math.max(Math.min(k-3,9-k,1),-1)};return rgbToHex(f(0)*255,f(8)*255,f(4)*255)}function hexToHsl(hex){let rgb=hexToRgb(hex);if(!rgb)return null;return rgbToHsl(rgb[0],rgb[1],rgb[2])}function complement(color){let hsl=hexToHsl(color);if(!hsl)return color;let[h,s,l]=hsl;return hslToHex(h+180,s,l)}function checkContrast(fg,bg){let fgLum=relativeLuminance(fg),bgLum=relativeLuminance(bg);if(fgLum===null||bgLum===null)return null;let lighter=Math.max(fgLum,bgLum),darker=Math.min(fgLum,bgLum),ratio=(lighter+0.05)/(darker+0.05);return{ratio,aa:ratio>=4.5,aaa:ratio>=7}}function ensureContrast(color,against,minRatio){let current=checkContrast(color,against);if(!current)return color;if(current.ratio>=minRatio)return color;let hsl=hexToHsl(color);if(!hsl)return color;let[h,s]=hsl,lightBg=contrastFg(against)==="#000000",lo,hi;if(lightBg)lo=0,hi=hsl[2];else lo=hsl[2],hi=1;for(let i=0;i<20;i++){let mid=(lo+hi)/2,candidate=hslToHex(h,s,mid),r=checkContrast(candidate,against);if(!r)break;if(lightBg)if(r.ratio>=minRatio)lo=mid;else hi=mid;else if(r.ratio>=minRatio)hi=mid;else lo=mid}return hslToHex(h,s,lightBg?lo:hi)}var init_contrast=()=>{};var init_src=__esm(()=>{init_contrast()});var THEME_TOKEN_DEFAULTS;var init_colors=__esm(()=>{init_src();init_color_maps();THEME_TOKEN_DEFAULTS={primary:33,secondary:36,accent:35,error:31,warning:33,success:32,info:36,muted:2,link:34,border:90,surface:37}});function resolveThemeColor(name,theme){if(!name)return;if(!name.startsWith("$"))return name;if(!theme)return;return resolveToken(name,theme)}function resolveToken(name,theme){if(!theme)return;let token=name.startsWith("$")?name.slice(1):name;if(token.startsWith("color")){let idx=parseInt(token.slice(5),10);if(idx>=0&&idx<16&&theme.palette&&idx<theme.palette.length)return theme.palette[idx]}let key=token.replace(/-/g,""),val=theme[key];return typeof val==="string"?val:void 0}function fromChalkLevel(n){if(n<=0)return null;if(n===1)return"basic";if(n===2)return"256";return"truecolor"}function toChalkLevel(cl){if(cl===null)return 0;if(cl==="basic")return 1;if(cl==="256")return 2;return 3}function createStyle(options){let ref={level:null,theme:options?.theme};if(options?.level!==void 0)ref.level=options.level;else try{ref.level=detectColor(process.stdout)}catch{ref.level=null}return createChainWithRef({opens:[],closes:[]},ref)}function createChainWithRef(state,ref){let proxyRef={proxy:null},proxy=new Proxy(function(){},{apply(_target,_thisArg,args){let level=ref.level;if(state.visible&&level===null)return"";let text;if(args.length===0)text="";else if(Array.isArray(args[0])&&"raw"in args[0])text=String.raw(args[0],...args.slice(1));else if(args.length>1)text=args.map((a)=>String(a??"")).join(" ");else text=String(args[0]??"");if(text==="")return"";if(level===null||state.opens.length===0)return text;let open=`${ESC}${state.opens.join(";")}m`,close=`${ESC}${state.closes.join(";")}m`;for(let closeCode of state.closes){let closeSeq=`${ESC}${closeCode}m`,parts=text.split(closeSeq);if(parts.length>1)text=parts.join(`${closeSeq}${open}`)}if(text.includes(`
|
|
1
|
+
import{createRequire}from"node:module";var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames}=Object;var __hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to};var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);var __require=createRequire(import.meta.url),__dispose=Symbol.dispose||Symbol.for("Symbol.dispose"),__asyncDispose=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),__using=(stack,value,async)=>{if(value!=null){if(typeof value!=="object"&&typeof value!=="function")throw TypeError('Object expected to be assigned to "using" declaration');var dispose;if(async)dispose=value[__asyncDispose];if(dispose===void 0)dispose=value[__dispose];if(typeof dispose!=="function")throw TypeError("Object not disposable");stack.push([async,dispose,value])}else if(async)stack.push([async]);return value},__callDispose=(stack,error,hasError)=>{var E=typeof SuppressedError==="function"?SuppressedError:function(e,s,m,_){return _=Error(m),_.name="SuppressedError",_.error=e,_.suppressed=s,_},fail=(e)=>error=hasError?new E(e,error,"An error was suppressed during disposal"):(hasError=!0,e),next=(it)=>{while(it=stack.pop())try{var result=it[1]&&it[1].call(it[2]);if(it[0])return Promise.resolve(result).then(next,(e)=>(fail(e),next()))}catch(e){fail(e)}if(hasError)throw error};return next()};import{createContext}from"react";var TermContext,NodeContext,StdoutContext,StderrContext,RuntimeContext,CacheBackendContext,FocusManagerContext,CapabilityRegistryContext;var init_context=__esm(()=>{TermContext=createContext(null),NodeContext=createContext(null),StdoutContext=createContext(null),StderrContext=createContext(null),RuntimeContext=createContext(null),CacheBackendContext=createContext("virtual"),FocusManagerContext=createContext(null),CapabilityRegistryContext=createContext(null)});import{createLogger}from"loggily";function isModifierOnlyEvent(_input,key){return key.isModifierOnly===!0}function normalizeModifier(mod){return MODIFIER_ALIASES[mod.toLowerCase()]??mod}function keyToAnsi(key){let parts=key.split("+"),mainKey=parts.pop(),modifiers=parts.map(normalizeModifier);if(modifiers.includes("Super")||modifiers.includes("Hyper"))return keyToKittyAnsi(key);if(!modifiers.length&&mainKey.length===1)return mainKey;if(modifiers.includes("Control")&&mainKey.length===1){let code=mainKey.toLowerCase().charCodeAt(0)-96;if(code>=1&&code<=26)return String.fromCharCode(code)}if(modifiers.includes("Control")&&mainKey==="/")return"\x1F";if(modifiers.includes("Control")&&mainKey==="Enter")return`
|
|
2
|
+
`;if((modifiers.includes("Alt")||modifiers.includes("Meta"))&&mainKey.length===1)return`\x1B${mainKey}`;if(modifiers.includes("Shift")&&mainKey==="Tab")return"\x1B[Z";if(modifiers.length===1&&modifiers[0]==="Shift"&&mainKey.length===1){if(mainKey>="a"&&mainKey<="z")return mainKey.toUpperCase();let shifted=BASE_TO_SHIFTED_PUNCT[mainKey];if(shifted)return shifted}let ARROW_SUFFIX={ArrowUp:"A",ArrowDown:"B",ArrowRight:"C",ArrowLeft:"D",Home:"H",End:"F"};if(modifiers.length>0&&mainKey in ARROW_SUFFIX){let mod=1;if(modifiers.includes("Shift"))mod+=1;if(modifiers.includes("Alt")||modifiers.includes("Meta"))mod+=2;if(modifiers.includes("Control"))mod+=4;if(modifiers.includes("Super"))mod+=8;if(modifiers.includes("Hyper"))mod+=16;return`\x1B[1;${mod}${ARROW_SUFFIX[mainKey]}`}let base=KEY_MAP[mainKey];if(base!==void 0&&base!==null)return base;return mainKey}function isValidCodepoint(cp){return cp>=0&&cp<=1114111&&!(cp>=55296&&cp<=57343)}function safeFromCodePoint(cp){return isValidCodepoint(cp)?String.fromCodePoint(cp):"?"}function kittyCodepointToName(cp){return KITTY_CODEPOINT_MAP[cp]}function numericToEventType(n){if(n===1)return"press";if(n===2)return"repeat";if(n===3)return"release";return}function parseKeypress(s){let input;if(typeof Buffer<"u"&&Buffer.isBuffer(s))if(s[0]!==void 0&&s[0]>127&&s[1]===void 0){let buf=Buffer.from(s);buf[0]-=128,input=`\x1B${buf.toString()}`}else input=s.toString();else input=typeof s==="string"?s??"":String(s);let key={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,super:!1,hyper:!1,sequence:input};if(input==="\r")key.name="return";else if(input===`
|
|
3
|
+
`)key.name="return",key.ctrl=!0;else if(input==="\t")key.name="tab";else if(input==="\b"||input==="\x1B\b")key.name="backspace",key.meta=input.charAt(0)==="\x1B";else if(input===""||input==="\x1B")key.name="backspace",key.meta=input.charAt(0)==="\x1B";else if(input==="\x1B\r")key.name="return",key.meta=!0;else if(input==="\x1B"||input==="\x1B\x1B")key.name="escape",key.meta=input.length===2;else if(input===" "||input==="\x1B ")key.name="space",key.meta=input.length===2;else if(input.length===1&&input<="\x1A")key.name=String.fromCharCode(input.charCodeAt(0)+97-1),key.ctrl=!0;else if(input==="\x1F")key.name="/",key.ctrl=!0;else if(input.length===1&&input>="0"&&input<="9")key.name="number";else if(input.length===1&&input>="a"&&input<="z")key.name=input;else if(input.length===1&&input>="A"&&input<="Z")key.name=input.toLowerCase(),key.shift=!0;else{let kittyParts=KITTY_RE.exec(input),kittySpecialParts=!kittyParts&&KITTY_SPECIAL_RE.exec(input),modifyOtherKeysParts=!kittyParts&&!kittySpecialParts&&MODIFY_OTHER_KEYS_RE.exec(input);if(kittySpecialParts){let number=Number(kittySpecialParts[1]),modifier=Math.max(0,Number(kittySpecialParts[2])-1),eventType=Number(kittySpecialParts[3]),terminator=kittySpecialParts[4],name=terminator==="~"?KITTY_SPECIAL_NUMBER_KEYS[number]:KITTY_SPECIAL_LETTER_KEYS[terminator];key.isKittyProtocol=!0,key.isPrintable=!1,key.raw=input,key.name=name??"",key.shift=!!(modifier&1),key.option=!!(modifier&2),key.ctrl=!!(modifier&4),key.super=!!(modifier&8),key.hyper=!!(modifier&16),key.meta=!!(modifier&32),key.capsLock=!!(modifier&64),key.numLock=!!(modifier&128);let eventTypeStr=numericToEventType(eventType);if(eventTypeStr)key.eventType=eventTypeStr}else if(kittyParts||modifyOtherKeysParts){let codepoint,modifier;if(kittyParts)codepoint=Number(kittyParts[1]),modifier=Math.max(0,Number(kittyParts[4]||1)-1);else{let mokParts=modifyOtherKeysParts;modifier=Math.max(0,Number(mokParts[1])-1),codepoint=Number(mokParts[2])}if(kittyParts){if(key.isKittyProtocol=!0,key.raw=input,!isValidCodepoint(codepoint))return key.name="",key.isPrintable=!1,key}if(key.shift=!!(modifier&1),key.option=!!(modifier&2),key.ctrl=!!(modifier&4),key.super=!!(modifier&8),key.hyper=!!(modifier&16),key.meta=!!(modifier&32),key.capsLock=!!(modifier&64),key.numLock=!!(modifier&128),kittyParts?.[5]){let et=numericToEventType(Number(kittyParts[5]));if(et)key.eventType=et}if(kittyParts?.[2])key.shiftedKey=String.fromCodePoint(Number(kittyParts[2]));if(kittyParts?.[3])key.baseLayoutKey=String.fromCodePoint(Number(kittyParts[3]));let textFromProtocol;if(kittyParts?.[6])textFromProtocol=kittyParts[6].split(":").map((cp)=>safeFromCodePoint(Number(cp))).join(""),key.associatedText=textFromProtocol,key.text=textFromProtocol;if(codepoint===32)key.name="space",key.isPrintable=!0;else if(codepoint===13)key.name="return",key.isPrintable=!0;else{let mapped=kittyCodepointToName(codepoint);if(mapped)key.name=mapped,key.isPrintable=!1;else if(codepoint>=1&&codepoint<=26)key.name=String.fromCodePoint(codepoint+96),key.isPrintable=!1;else if(codepoint>=32&&codepoint<=126){if(key.name=String.fromCharCode(codepoint).toLowerCase(),codepoint>=65&&codepoint<=90)key.shift=!0,key.name=String.fromCharCode(codepoint+32);key.isPrintable=!0}else if(isValidCodepoint(codepoint))key.name=safeFromCodePoint(codepoint),key.isPrintable=!0;else key.name="",key.isPrintable=!1}if(kittyParts&&key.isPrintable&&!textFromProtocol)if(key.shift&&key.shiftedKey)key.text=key.shiftedKey;else if(key.shift&&codepoint>=97&&codepoint<=122)key.text=String.fromCharCode(codepoint-32);else if(key.shift&&codepoint>=65&&codepoint<=90)key.text=String.fromCharCode(codepoint);else if(key.shift&&key.isPrintable&&!key.shiftedKey&&codepoint>=32&&codepoint<=126){let baseChar=safeFromCodePoint(codepoint),shifted=BASE_TO_SHIFTED_PUNCT[baseChar];key.text=shifted??baseChar}else key.text=safeFromCodePoint(codepoint)}else if(KITTY_RE.test(input))return key.isKittyProtocol=!0,key.isPrintable=!1,key.raw=input,key;else{let parts=META_KEY_CODE_RE.exec(input);if(parts)key.meta=!0,key.shift=/^[A-Z]$/.test(parts[1]??"");else if(parts=FN_KEY_RE.exec(input),parts){let segs=input.split("");if(segs[0]==="\x1B"&&segs[1]==="\x1B")key.option=!0;let code=[parts[1],parts[2],parts[4],parts[6]].filter(Boolean).join(""),modifier=Number(parts[3]||parts[5]||1)-1;key.ctrl=!!(modifier&4),key.meta=!!(modifier&2),key.super=!!(modifier&8),key.hyper=!!(modifier&16),key.shift=!!(modifier&1),key.capsLock=!!(modifier&64),key.numLock=!!(modifier&128),key.code=code,key.name=CODE_TO_KEY[code]??"",key.shift=SHIFT_CODES.has(code)||key.shift,key.ctrl=CTRL_CODES.has(code)||key.ctrl}}}return key}function parseKey(rawInput){let keypress=parseKeypress(rawInput),key={upArrow:keypress.name==="up",downArrow:keypress.name==="down",leftArrow:keypress.name==="left",rightArrow:keypress.name==="right",pageDown:keypress.name==="pagedown",pageUp:keypress.name==="pageup",home:keypress.name==="home",end:keypress.name==="end",return:keypress.name==="return",escape:keypress.name==="escape",ctrl:keypress.ctrl,shift:keypress.shift,tab:keypress.name==="tab",backspace:keypress.name==="backspace",delete:keypress.name==="delete",meta:keypress.name!=="escape"&&(keypress.meta||keypress.option),super:keypress.super,hyper:keypress.hyper,capsLock:keypress.capsLock??!1,numLock:keypress.numLock??!1,eventType:keypress.eventType},input;if(keypress.isKittyProtocol)if(keypress.isPrintable)if(keypress.shift&&keypress.name.length===1&&keypress.name>="a"&&keypress.name<="z")input=keypress.name.toUpperCase();else if(keypress.name==="space")input=" ";else if(keypress.name==="return")input="\r";else input=keypress.name;else if(keypress.ctrl&&keypress.name.length===1)input=keypress.name;else input="";else{if(input=keypress.ctrl?keypress.name:keypress.sequence,NON_ALPHANUMERIC_KEYS.includes(keypress.name))input="";if(input.startsWith("\x1B"))input=input.slice(1);if(input.startsWith("[")&&input.length>1||input.startsWith("O")&&input.length>1)if(keypress.super||keypress.hyper)input=keypress.name;else input=""}if(keypress.isKittyProtocol)key.text=keypress.text??input;else if(input.length>=1)key.text=input;if(!keypress.isKittyProtocol&&input.length===1&&!key.shift){let base=SHIFTED_PUNCT_MAP[input];if(base)input=base,key.shift=!0}if(input.length===1&&typeof input[0]==="string"&&/[A-Z]/.test(input[0]))key.shift=!0;if(input===""&&MODIFIER_ONLY_NAMES.has(keypress.name))key.isModifierOnly=!0;return[input,key]}function emptyKey(){return{upArrow:!1,downArrow:!1,leftArrow:!1,rightArrow:!1,pageDown:!1,pageUp:!1,home:!1,end:!1,return:!1,escape:!1,ctrl:!1,shift:!1,tab:!1,backspace:!1,delete:!1,meta:!1,super:!1,hyper:!1,capsLock:!1,numLock:!1}}function keyToName(key){if(key.upArrow)return"ArrowUp";if(key.downArrow)return"ArrowDown";if(key.leftArrow)return"ArrowLeft";if(key.rightArrow)return"ArrowRight";if(key.return)return"Enter";if(key.escape)return"Escape";if(key.backspace)return"Backspace";if(key.delete)return"Delete";if(key.tab)return"Tab";if(key.pageUp)return"PageUp";if(key.pageDown)return"PageDown";if(key.home)return"Home";if(key.end)return"End";return""}function keyToModifiers(key){return{ctrl:!!key.ctrl,meta:!!key.meta,shift:!!key.shift,alt:!1,super:!!key.super,hyper:!!key.hyper}}function parseHotkey(keyStr){let remaining=keyStr,symbolMods=new Set;for(let char of remaining)if(MODIFIER_SYMBOLS.has(char))symbolMods.add(char);else break;if(symbolMods.size>0){if(remaining=remaining.slice(symbolMods.size),remaining.startsWith("+"))remaining=remaining.slice(1)}let parts=remaining.split("+"),key=parts.pop()||keyStr,modifiers=new Set([...parts.map((p)=>p.toLowerCase()),...symbolMods]);return{key,ctrl:modifiers.has("control")||modifiers.has("ctrl")||modifiers.has("⌃"),meta:modifiers.has("meta")||modifiers.has("alt")||modifiers.has("opt")||modifiers.has("option")||modifiers.has("⌥"),shift:modifiers.has("shift")||modifiers.has("⇧"),alt:!1,super:modifiers.has("super")||modifiers.has("cmd")||modifiers.has("command")||modifiers.has("⌘"),hyper:modifiers.has("hyper")||modifiers.has("✦")}}function matchHotkey(hotkey,key,input){if(!!hotkey.ctrl!==!!key.ctrl)return!1;if(!!hotkey.meta!==!!key.meta)return!1;if(!!hotkey.super!==!!key.super)return!1;if(!!hotkey.hyper!==!!key.hyper)return!1;if(!!hotkey.alt!==!1)return!1;if(!(hotkey.key.length===1&&!hotkey.shift)&&!!hotkey.shift!==!!key.shift)return!1;let name=keyToName(key);if(name&&name===hotkey.key)return!0;if(input!==void 0&&input===hotkey.key)return!0;if(key.text!==void 0&&key.text===hotkey.key)return!0;return!1}function keyToKittyAnsi(key){let parts=key.split("+"),mainKey=parts.pop(),modifiers=parts.map(normalizeModifier),mod=0;if(modifiers.includes("Shift"))mod|=1;if(modifiers.includes("Alt")||modifiers.includes("Meta"))mod|=2;if(modifiers.includes("Control"))mod|=4;if(modifiers.includes("Super"))mod|=8;if(modifiers.includes("Hyper"))mod|=16;let specialLetter=PLAYWRIGHT_TO_KITTY_SPECIAL_LETTER[mainKey];if(specialLetter)return`\x1B[1;${mod+1}${specialLetter}`;let specialNumber=PLAYWRIGHT_TO_KITTY_SPECIAL_TILDE[mainKey];if(specialNumber!==void 0)return`\x1B[${specialNumber};${mod+1}~`;let csiUCodepoint=PLAYWRIGHT_TO_KITTY_CSI_U[mainKey];if(csiUCodepoint!==void 0){if(mod>0)return`\x1B[${csiUCodepoint};${mod+1}u`;return`\x1B[${csiUCodepoint}u`}if(mainKey.length===1){let codepoint=mainKey.charCodeAt(0);if(mod>0){if((mod&1)!==0){let shifted=BASE_TO_SHIFTED_PUNCT[mainKey];if(shifted)return`\x1B[${codepoint}:${shifted.charCodeAt(0)};${mod+1}u`;if(codepoint>=97&&codepoint<=122)return`\x1B[${codepoint}:${codepoint-32};${mod+1}u`}return`\x1B[${codepoint};${mod+1}u`}return`\x1B[${codepoint}u`}let cp=NAME_TO_KITTY_CODEPOINT[mainKey.toLowerCase()];if(cp!==void 0){let implicitMod=MODIFIER_KEY_IMPLICIT_BITS[mainKey.toLowerCase()];if(implicitMod!==void 0)mod|=implicitMod;if(mod>0)return`\x1B[${cp};${mod+1}u`;return`\x1B[${cp}u`}return keyToAnsi(key)}function*splitRawInput(data){if(data.length<=1){if(data.length===1)yield data;return}let i=0,textStart=-1;while(i<data.length)if(data.charCodeAt(i)===27){if(textStart>=0)yield*splitNonEscapeText(data.slice(textStart,i)),textStart=-1;if(i+1>=data.length){yield"\x1B",i++;continue}let next=data.charCodeAt(i+1);if(next===91){let j=i+2;while(j<data.length){let c=data.charCodeAt(j);if(c>=64&&c<=126){j++;break}j++}yield data.slice(i,j),i=j}else if(next===79){let end=Math.min(i+3,data.length);yield data.slice(i,end),i=end}else if(next===27)if(i+2<data.length){let third=data.charCodeAt(i+2);if(third===91){let j=i+3;while(j<data.length){let c=data.charCodeAt(j);if(c>=64&&c<=126){j++;break}j++}yield data.slice(i,j),i=j}else if(third===79){let end=Math.min(i+4,data.length);yield data.slice(i,end),i=end}else yield"\x1B\x1B",i+=2}else yield"\x1B\x1B",i+=2;else yield data.slice(i,i+2),i+=2}else{if(textStart<0)textStart=i;i++}if(textStart>=0)yield*splitNonEscapeText(data.slice(textStart))}function*splitNonEscapeText(text){let segmentStart=0;for(let i=0;i<text.length;i++){let ch=text.charCodeAt(i);if(ch===127||ch===8){if(i>segmentStart)yield text.slice(segmentStart,i);yield text[i],segmentStart=i+1}}if(segmentStart<text.length)yield text.slice(segmentStart)}var log,KEY_MAP,MODIFIER_ALIASES,MODIFIER_SYMBOLS,CODE_TO_KEY,NON_ALPHANUMERIC_KEYS,SHIFT_CODES,CTRL_CODES,META_KEY_CODE_RE,FN_KEY_RE,SHIFTED_PUNCT_MAP,BASE_TO_SHIFTED_PUNCT,KITTY_RE,MODIFY_OTHER_KEYS_RE,KITTY_SPECIAL_RE,KITTY_SPECIAL_LETTER_KEYS,KITTY_SPECIAL_NUMBER_KEYS,KITTY_CODEPOINT_MAP,MODIFIER_ONLY_NAMES,NAME_TO_KITTY_CODEPOINT,MODIFIER_KEY_IMPLICIT_BITS,PLAYWRIGHT_TO_KITTY_CSI_U,PLAYWRIGHT_TO_KITTY_SPECIAL_LETTER,PLAYWRIGHT_TO_KITTY_SPECIAL_TILDE,graphemeSegmenter;var init_keys=__esm(()=>{log=createLogger("silvery:keys");KEY_MAP={ArrowUp:"\x1B[A",ArrowDown:"\x1B[B",ArrowLeft:"\x1B[D",ArrowRight:"\x1B[C",Home:"\x1B[H",End:"\x1B[F",PageUp:"\x1B[5~",PageDown:"\x1B[6~",Enter:"\r",Tab:"\t",Backspace:"",Delete:"\x1B[3~",Escape:"\x1B",Space:" ",Control:null,Shift:null,Alt:null,Meta:null,Super:null,Hyper:null},MODIFIER_ALIASES={ctrl:"Control",control:"Control","⌃":"Control",shift:"Shift","⇧":"Shift",alt:"Alt",meta:"Meta",opt:"Alt",option:"Alt","⌥":"Alt",cmd:"Super",command:"Super",super:"Super","⌘":"Super",hyper:"Hyper","✦":"Hyper"},MODIFIER_SYMBOLS=new Set(["⌃","⇧","⌥","⌘","✦"]);CODE_TO_KEY={"[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home",OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},NON_ALPHANUMERIC_KEYS=[...Object.values(CODE_TO_KEY),"backspace","tab","delete"],SHIFT_CODES=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),CTRL_CODES=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),META_KEY_CODE_RE=/^(?:\x1b)([a-zA-Z0-9])$/,FN_KEY_RE=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,SHIFTED_PUNCT_MAP={"!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=","~":"`","{":"[","}":"]","|":"\\",":":";",'"':"'","<":",",">":".","?":"/"},BASE_TO_SHIFTED_PUNCT=Object.fromEntries(Object.entries(SHIFTED_PUNCT_MAP).map(([shifted,base])=>[base,shifted])),KITTY_RE=/^\x1b\[(\d+)(?::(\d+))?(?::(\d+))?(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,MODIFY_OTHER_KEYS_RE=/^\x1b\[27;(\d+);(\d+)~$/,KITTY_SPECIAL_RE=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,KITTY_SPECIAL_LETTER_KEYS={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},KITTY_SPECIAL_NUMBER_KEYS={2:"insert",3:"delete",5:"pageup",6:"pagedown",7:"home",8:"end",11:"f1",12:"f2",13:"f3",14:"f4",15:"f5",17:"f6",18:"f7",19:"f8",20:"f9",21:"f10",23:"f11",24:"f12"};KITTY_CODEPOINT_MAP={8:"backspace",9:"tab",13:"return",27:"escape",127:"backspace",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57399:"kp0",57400:"kp1",57401:"kp2",57402:"kp3",57403:"kp4",57404:"kp5",57405:"kp6",57406:"kp7",57407:"kp8",57408:"kp9",57409:"kpdecimal",57410:"kpdivide",57411:"kpmultiply",57412:"kpsubtract",57413:"kpadd",57414:"kpenter",57415:"kpequal",57416:"kpseparator",57417:"kpleft",57418:"kpright",57419:"kpup",57420:"kpdown",57421:"kppageup",57422:"kppagedown",57423:"kphome",57424:"kpend",57425:"kpinsert",57426:"kpdelete",57427:"kpbegin",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"mediatracknext",57436:"mediatrackprevious",57437:"mediarecord",57438:"lowervolume",57439:"raisevolume",57440:"mutevolume",57441:"leftshift",57442:"leftcontrol",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightcontrol",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"isoLevel3Shift",57454:"isoLevel5Shift"},MODIFIER_ONLY_NAMES=new Set(["leftshift","leftcontrol","leftalt","leftsuper","lefthyper","leftmeta","rightshift","rightcontrol","rightalt","rightsuper","righthyper","rightmeta","isoLevel3Shift","isoLevel5Shift"]);NAME_TO_KITTY_CODEPOINT={};for(let[cp,name]of Object.entries(KITTY_CODEPOINT_MAP))NAME_TO_KITTY_CODEPOINT[name]=Number(cp);MODIFIER_KEY_IMPLICIT_BITS={leftshift:1,rightshift:1,leftcontrol:4,rightcontrol:4,leftalt:2,rightalt:2,leftsuper:8,rightsuper:8,lefthyper:16,righthyper:16,leftmeta:32,rightmeta:32},PLAYWRIGHT_TO_KITTY_CSI_U={Enter:13,Escape:27,Backspace:127,Tab:9,Space:32},PLAYWRIGHT_TO_KITTY_SPECIAL_LETTER={ArrowUp:"A",ArrowDown:"B",ArrowRight:"C",ArrowLeft:"D",Home:"H",End:"F",F1:"P",F2:"Q",F3:"R",F4:"S"},PLAYWRIGHT_TO_KITTY_SPECIAL_TILDE={Insert:2,Delete:3,PageUp:5,PageDown:6,F5:15,F6:17,F7:18,F8:19,F9:20,F10:21,F11:23,F12:24};graphemeSegmenter=new Intl.Segmenter("en",{granularity:"grapheme"})});var init_constants=()=>{};function detectCursor(stdout){if(!stdout.isTTY)return!1;if(process.env.TERM==="dumb")return!1;return!0}function detectInput(stdin){if(!stdin.isTTY)return!1;return typeof stdin.setRawMode==="function"}function detectColor(stdout){if(process.env.NO_COLOR!==void 0)return null;let forceColor=process.env.FORCE_COLOR;if(forceColor!==void 0){if(forceColor==="0"||forceColor==="false")return null;if(forceColor==="1")return"basic";if(forceColor==="2")return"256";if(forceColor==="3")return"truecolor";return"basic"}if(!stdout.isTTY)return null;if(process.env.TERM==="dumb")return null;let colorTerm=process.env.COLORTERM;if(colorTerm==="truecolor"||colorTerm==="24bit")return"truecolor";let term=process.env.TERM??"";if(term.includes("truecolor")||term.includes("24bit")||term.includes("xterm-ghostty")||term.includes("xterm-kitty")||term.includes("wezterm"))return"truecolor";if(term.includes("256color")||term.includes("256"))return"256";let termProgram=process.env.TERM_PROGRAM;if(termProgram==="iTerm.app"||termProgram==="Apple_Terminal")return termProgram==="iTerm.app"?"truecolor":"256";if(termProgram==="Ghostty"||termProgram==="WezTerm")return"truecolor";if(process.env.KITTY_WINDOW_ID)return"truecolor";if(term.includes("xterm")||term.includes("color")||term.includes("ansi"))return"basic";if(CI_ENVS.some((env)=>process.env[env]!==void 0))return"basic";if(process.env.WT_SESSION)return"truecolor";return"basic"}function detectUnicode(){if(process.env.CI){if(process.env.GITHUB_ACTIONS)return!0}let lang=process.env.LANG??process.env.LC_ALL??process.env.LC_CTYPE??"";if(lang.toLowerCase().includes("utf-8")||lang.toLowerCase().includes("utf8"))return!0;if(process.env.WT_SESSION)return!0;let termProgram=process.env.TERM_PROGRAM??"";if(["iTerm.app","Ghostty","WezTerm","Apple_Terminal"].includes(termProgram))return!0;if(process.env.KITTY_WINDOW_ID)return!0;let term=process.env.TERM??"";if(term.includes("xterm")||term.includes("rxvt")||term.includes("screen")||term.includes("tmux"))return!0;return!1}function defaultCaps(){return{program:"",term:"",colorLevel:"truecolor",kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,osc52:!1,hyperlinks:!1,notifications:!1,bracketedPaste:!0,mouse:!0,syncOutput:!1,unicode:!0,underlineStyles:!0,underlineColor:!0,textEmojiWide:!0,textSizingSupported:!1,darkBackground:!0,nerdfont:!1}}function detectMacOSDarkMode(){if(cachedMacOSDarkMode!==void 0)return cachedMacOSDarkMode;try{let{spawnSync}=__require("child_process");cachedMacOSDarkMode=spawnSync("defaults",["read","-g","AppleInterfaceStyle"],{encoding:"utf-8",timeout:500}).stdout?.trim()==="Dark"}catch{cachedMacOSDarkMode=!1}return cachedMacOSDarkMode}function detectTerminalCaps(){let program=process.env.TERM_PROGRAM??"",term=process.env.TERM??"",colorTerm=process.env.COLORTERM??"",noColor=process.env.NO_COLOR!==void 0,isAppleTerminal=program==="Apple_Terminal",colorLevel="none";if(!noColor){if(isAppleTerminal)colorLevel="256";else if(colorTerm==="truecolor"||colorTerm==="24bit")colorLevel="truecolor";else if(term.includes("256color"))colorLevel="256";else if(process.stdout?.isTTY)colorLevel="basic"}let isKitty=term==="xterm-kitty",isITerm=program==="iTerm.app",isGhostty=program==="ghostty",isWezTerm=program==="WezTerm",isAlacritty=program==="Alacritty",isFoot=term==="foot"||term==="foot-extra",isModern=isKitty||isITerm||isGhostty||isWezTerm||isFoot,isKittyWithTextSizing=!1;if(isKitty){let parts=(process.env.TERM_PROGRAM_VERSION??"").split("."),major=Number(parts[0])||0,minor=Number(parts[1])||0;isKittyWithTextSizing=major>0||major===0&&minor>=40}let darkBackground=!isAppleTerminal,colorFgBg=process.env.COLORFGBG;if(colorFgBg){let parts=colorFgBg.split(";"),bg=parseInt(parts[parts.length-1]??"",10);if(!isNaN(bg))darkBackground=bg<7}else if(isAppleTerminal)darkBackground=detectMacOSDarkMode();let nerdfont=isModern||isAlacritty,nfEnv=process.env.NERDFONT;if(nfEnv==="0"||nfEnv==="false")nerdfont=!1;else if(nfEnv==="1"||nfEnv==="true")nerdfont=!0;let underlineExtensions=isModern||isAlacritty;return{program,term,colorLevel,kittyKeyboard:isKitty||isGhostty||isWezTerm||isFoot,kittyGraphics:isKitty||isGhostty,sixel:isFoot||isWezTerm,osc52:isModern||isAlacritty,hyperlinks:isModern||isAlacritty,notifications:isITerm||isKitty,bracketedPaste:!0,mouse:!0,syncOutput:isModern||isAlacritty,unicode:!0,underlineStyles:underlineExtensions,underlineColor:underlineExtensions,textEmojiWide:!isAppleTerminal,textSizingSupported:isKittyWithTextSizing,darkBackground,nerdfont}}var CI_ENVS,cachedMacOSDarkMode;var init_detection=__esm(()=>{CI_ENVS=["CI","GITHUB_ACTIONS","GITLAB_CI","JENKINS_URL","BUILDKITE","CIRCLECI","TRAVIS"]});function fgColorCode(color){if(typeof color==="number"){if(color>=0&&color<=7)return`${30+color}`;return`38;5;${color}`}return`38;2;${color.r};${color.g};${color.b}`}function bgColorCode(color){if(typeof color==="number"){if(color>=0&&color<=7)return`${40+color}`;return`48;5;${color}`}return`48;2;${color.r};${color.g};${color.b}`}import stringWidth from"string-width";var init_utils=()=>{};function nearestAnsi16(r,g,b){let bestIdx=0,bestDist=1/0;for(let i=0;i<16;i++){let[cr,cg,cb]=ANSI_16_COLORS[i],dist=(r-cr)**2+(g-cg)**2+(b-cb)**2;if(dist<bestDist)bestDist=dist,bestIdx=i}return bestIdx}function rgbToAnsi256(r,g,b){if(r===g&&g===b){if(r<8)return 16;if(r>248)return 231;return Math.round((r-8)/247*24)+232}let ri=Math.round(r/255*5),gi=Math.round(g/255*5),bi=Math.round(b/255*5);return 16+36*ri+6*gi+bi}function fgFromRgb(r,g,b,level){if(level==="truecolor")return`38;2;${r};${g};${b}`;if(level==="256")return`38;5;${rgbToAnsi256(r,g,b)}`;let idx=nearestAnsi16(r,g,b);return idx<8?`${30+idx}`:`${82+idx}`}function bgFromRgb(r,g,b,level){if(level==="truecolor")return`48;2;${r};${g};${b}`;if(level==="256")return`48;5;${rgbToAnsi256(r,g,b)}`;let idx=nearestAnsi16(r,g,b);return idx<8?`${40+idx}`:`${92+idx}`}var MODIFIERS,FG_COLORS,BG_COLORS,ANSI_16_COLORS;var init_color_maps=__esm(()=>{MODIFIERS={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],overline:[53,55]},FG_COLORS={black:30,red:31,green:32,yellow:33,blue:34,magenta:35,cyan:36,white:37,blackBright:90,gray:90,grey:90,redBright:91,greenBright:92,yellowBright:93,blueBright:94,magentaBright:95,cyanBright:96,whiteBright:97},BG_COLORS={bgBlack:40,bgRed:41,bgGreen:42,bgYellow:43,bgBlue:44,bgMagenta:45,bgCyan:46,bgWhite:47,bgBlackBright:100,bgGray:100,bgGrey:100,bgRedBright:101,bgGreenBright:102,bgYellowBright:103,bgBlueBright:104,bgMagentaBright:105,bgCyanBright:106,bgWhiteBright:107},ANSI_16_COLORS=[[0,0,0],[128,0,0],[0,128,0],[128,128,0],[0,0,128],[128,0,128],[0,128,128],[192,192,192],[128,128,128],[255,0,0],[0,255,0],[255,255,0],[0,0,255],[255,0,255],[0,255,255],[255,255,255]]});function enableMouse(){return"\x1B[?1003h\x1B[?1006h"}function disableMouse(){return"\x1B[?1006l\x1B[?1003l"}function enableKittyKeyboard(flags=1){return`\x1B[>${flags}u`}function disableKittyKeyboard(){return"\x1B[<u"}var init_underline_ext=__esm(()=>{init_constants();init_detection()});var init_hyperlink=__esm(()=>{init_constants()});function hexToRgb(hex){if(hex[0]!=="#")return null;let h=hex.slice(1);if(h.length===3)return[parseInt(h[0]+h[0],16),parseInt(h[1]+h[1],16),parseInt(h[2]+h[2],16)];if(h.length===6)return[parseInt(h.slice(0,2),16),parseInt(h.slice(2,4),16),parseInt(h.slice(4,6),16)];return null}function rgbToHex(r,g,b){let clamp=(n)=>Math.max(0,Math.min(255,Math.round(n)));return`#${clamp(r).toString(16).padStart(2,"0")}${clamp(g).toString(16).padStart(2,"0")}${clamp(b).toString(16).padStart(2,"0")}`.toUpperCase()}function blend(a,b,t){let rgbA=hexToRgb(a),rgbB=hexToRgb(b);if(!rgbA||!rgbB)return a;return rgbToHex(rgbA[0]+(rgbB[0]-rgbA[0])*t,rgbA[1]+(rgbB[1]-rgbA[1])*t,rgbA[2]+(rgbB[2]-rgbA[2])*t)}function brighten(color,amount){return blend(color,"#FFFFFF",amount)}function channelLuminance(c){let s=c/255;return s<=0.03928?s/12.92:Math.pow((s+0.055)/1.055,2.4)}function relativeLuminance(hex){let rgb=hexToRgb(hex);if(!rgb)return null;return 0.2126*channelLuminance(rgb[0])+0.7152*channelLuminance(rgb[1])+0.0722*channelLuminance(rgb[2])}function contrastFg(bg){let luminance=relativeLuminance(bg);if(luminance===null)return"#FFFFFF";return luminance>0.179?"#000000":"#FFFFFF"}function rgbToHsl(r,g,b){r/=255,g/=255,b/=255;let max=Math.max(r,g,b),min=Math.min(r,g,b),l=(max+min)/2;if(max===min)return[0,0,l];let d=max-min,s=l>0.5?d/(2-max-min):d/(max+min),h=0;if(max===r)h=((g-b)/d+(g<b?6:0))/6;else if(max===g)h=((b-r)/d+2)/6;else h=((r-g)/d+4)/6;return[h*360,s,l]}function hslToHex(h,s,l){h=(h%360+360)%360;let a=s*Math.min(l,1-l),f=(n)=>{let k=(n+h/30)%12;return l-a*Math.max(Math.min(k-3,9-k,1),-1)};return rgbToHex(f(0)*255,f(8)*255,f(4)*255)}function hexToHsl(hex){let rgb=hexToRgb(hex);if(!rgb)return null;return rgbToHsl(rgb[0],rgb[1],rgb[2])}function complement(color){let hsl=hexToHsl(color);if(!hsl)return color;let[h,s,l]=hsl;return hslToHex(h+180,s,l)}function checkContrast(fg,bg){let fgLum=relativeLuminance(fg),bgLum=relativeLuminance(bg);if(fgLum===null||bgLum===null)return null;let lighter=Math.max(fgLum,bgLum),darker=Math.min(fgLum,bgLum),ratio=(lighter+0.05)/(darker+0.05);return{ratio,aa:ratio>=4.5,aaa:ratio>=7}}function ensureContrast(color,against,minRatio){let current=checkContrast(color,against);if(!current)return color;if(current.ratio>=minRatio)return color;let hsl=hexToHsl(color);if(!hsl)return color;let[h,s]=hsl,lightBg=contrastFg(against)==="#000000",lo,hi;if(lightBg)lo=0,hi=hsl[2];else lo=hsl[2],hi=1;for(let i=0;i<20;i++){let mid=(lo+hi)/2,candidate=hslToHex(h,s,mid),r=checkContrast(candidate,against);if(!r)break;if(lightBg)if(r.ratio>=minRatio)lo=mid;else hi=mid;else if(r.ratio>=minRatio)hi=mid;else lo=mid}return hslToHex(h,s,lightBg?lo:hi)}var init_contrast=()=>{};var init_src=__esm(()=>{init_contrast()});var THEME_TOKEN_DEFAULTS;var init_colors=__esm(()=>{init_src();init_color_maps();THEME_TOKEN_DEFAULTS={primary:33,secondary:36,accent:35,error:31,warning:33,success:32,info:36,muted:2,link:34,border:90,surface:37}});function resolveThemeColor(name,theme){if(!name)return;if(!name.startsWith("$"))return name;if(!theme)return;return resolveToken(name,theme)}function resolveToken(name,theme){if(!theme)return;let token=name.startsWith("$")?name.slice(1):name;if(token.startsWith("color")){let idx=parseInt(token.slice(5),10);if(idx>=0&&idx<16&&theme.palette&&idx<theme.palette.length)return theme.palette[idx]}let key=token.replace(/-/g,""),val=theme[key];return typeof val==="string"?val:void 0}function fromChalkLevel(n){if(n<=0)return null;if(n===1)return"basic";if(n===2)return"256";return"truecolor"}function toChalkLevel(cl){if(cl===null)return 0;if(cl==="basic")return 1;if(cl==="256")return 2;return 3}function createStyle(options){let ref={level:null,theme:options?.theme};if(options?.level!==void 0)ref.level=options.level;else try{ref.level=detectColor(process.stdout)}catch{ref.level=null}return createChainWithRef({opens:[],closes:[]},ref)}function createChainWithRef(state,ref){let proxyRef={proxy:null},proxy=new Proxy(function(){},{apply(_target,_thisArg,args){let level=ref.level;if(state.visible&&level===null)return"";let text;if(args.length===0)text="";else if(Array.isArray(args[0])&&"raw"in args[0])text=String.raw(args[0],...args.slice(1));else if(args.length>1)text=args.map((a)=>String(a??"")).join(" ");else text=String(args[0]??"");if(text==="")return"";if(level===null||state.opens.length===0)return text;let open=`${ESC}${state.opens.join(";")}m`,close=`${ESC}${state.closes.join(";")}m`;for(let closeCode of state.closes){let closeSeq=`${ESC}${closeCode}m`,parts=text.split(closeSeq);if(parts.length>1)text=parts.join(`${closeSeq}${open}`)}if(text.includes(`
|
|
2
4
|
`))text=text.replace(/\r?\n/g,`${close}$&${open}`);return`${open}${text}${close}`},get(_target,prop){if(typeof prop==="symbol")return;if(prop==="level")return toChalkLevel(ref.level);if(prop==="resolve")return(token)=>resolveToken(token,ref.theme);if(prop==="visible")return createChainWithRef({...state,visible:!0},ref);if(prop==="call"||prop==="apply"||prop==="bind")return Function.prototype[prop].bind(proxyRef.proxy);let level=ref.level;if(prop==="hex"||prop==="bgHex")return(color)=>{if(level===null)return createChainWithRef(state,ref);let rgb=hexToRgb(color);if(!rgb)return createChainWithRef(state,ref);let code=prop==="hex"?fgFromRgb(rgb[0],rgb[1],rgb[2],level):bgFromRgb(rgb[0],rgb[1],rgb[2],level),close=prop==="hex"?"39":"49";return createChainWithRef({opens:[...state.opens,code],closes:[...state.closes,close]},ref)};if(prop==="rgb"||prop==="bgRgb")return(r,g,b)=>{if(level===null)return createChainWithRef(state,ref);let code=prop==="rgb"?fgFromRgb(r,g,b,level):bgFromRgb(r,g,b,level),close=prop==="rgb"?"39":"49";return createChainWithRef({opens:[...state.opens,code],closes:[...state.closes,close]},ref)};if(prop==="ansi256")return(code)=>{if(level===null)return createChainWithRef(state,ref);return createChainWithRef({opens:[...state.opens,`38;5;${code}`],closes:[...state.closes,"39"]},ref)};if(prop==="bgAnsi256")return(code)=>{if(level===null)return createChainWithRef(state,ref);return createChainWithRef({opens:[...state.opens,`48;5;${code}`],closes:[...state.closes,"49"]},ref)};if(prop in MODIFIERS){if(level===null)return createChainWithRef(state,ref);let[open,close]=MODIFIERS[prop];return createChainWithRef({opens:[...state.opens,String(open)],closes:[...state.closes,String(close)]},ref)}if(prop in FG_COLORS){if(level===null)return createChainWithRef(state,ref);return createChainWithRef({opens:[...state.opens,String(FG_COLORS[prop])],closes:[...state.closes,"39"]},ref)}if(prop in BG_COLORS){if(level===null)return createChainWithRef(state,ref);return createChainWithRef({opens:[...state.opens,String(BG_COLORS[prop])],closes:[...state.closes,"49"]},ref)}if(THEME_TOKENS.has(prop)){if(level===null)return createChainWithRef(state,ref);let hex=resolveToken(prop,ref.theme);if(hex){let rgb=hexToRgb(hex);if(rgb){let code=fgFromRgb(rgb[0],rgb[1],rgb[2],level);if(prop==="link")return createChainWithRef({opens:[...state.opens,code,"4"],closes:[...state.closes,"39","24"]},ref);return createChainWithRef({opens:[...state.opens,code],closes:[...state.closes,"39"]},ref)}}let fallback=THEME_TOKEN_DEFAULTS[prop];if(fallback!==void 0){if(prop==="muted")return createChainWithRef({opens:[...state.opens,String(fallback)],closes:[...state.closes,"22"]},ref);if(prop==="link")return createChainWithRef({opens:[...state.opens,String(fallback),"4"],closes:[...state.closes,"39","24"]},ref);return createChainWithRef({opens:[...state.opens,String(fallback)],closes:[...state.closes,"39"]},ref)}}return},set(_target,prop,value){if(prop==="level")return ref.level=fromChalkLevel(value),!0;return!1},has(_target,prop){if(prop==="level")return!0;if(typeof prop==="symbol")return!1;return prop in MODIFIERS||prop in FG_COLORS||prop in BG_COLORS||THEME_TOKENS.has(prop)||KNOWN_METHODS.has(prop)}});return proxyRef.proxy=proxy,proxy}var ESC="\x1B[",KNOWN_METHODS,THEME_TOKENS,style;var init_style=__esm(()=>{init_detection();init_colors();KNOWN_METHODS=new Set(["hex","rgb","bgHex","bgRgb","ansi256","bgAnsi256","resolve"]),THEME_TOKENS=new Set(["primary","secondary","accent","error","warning","success","info","muted","link","border","surface"]);style=createStyle()});function createMixedStyle(style2,extra){return createChainProxy(style2,extra)}function createChainProxy(currentStyle,extra){return new Proxy(function(){},{apply(_target,_thisArg,args){return currentStyle(...args)},get(_target,prop){if(prop in extra){let value=extra[prop];if(typeof value==="function")return value;return value}if(typeof prop==="symbol"){if(prop===Symbol.dispose)return extra[Symbol.dispose];return}if(STYLE_METHODS.has(prop)){let method=currentStyle[prop];if(typeof method==="function")return(...args)=>{let newStyle=method.apply(currentStyle,args);return createChainProxy(newStyle,extra)}}let styleProp=currentStyle[prop];if(styleProp!==void 0){if(typeof styleProp==="function"||typeof styleProp==="object")return createChainProxy(styleProp,extra);return styleProp}return},set(_target,prop,value){return extra[prop]=value,!0},defineProperty(_target,prop,descriptor){return Object.defineProperty(extra,prop,descriptor),!0},has(_target,prop){if(prop in extra)return!0;if(typeof prop==="string"&&prop in currentStyle)return!0;return!1}})}var STYLE_METHODS;var init_mixed_proxy=__esm(()=>{STYLE_METHODS=new Set(["hex","bgHex","rgb","bgRgb","ansi256","bgAnsi256"])});function deriveTheme(palette,mode="truecolor",adjustments){if(mode==="ansi16")return deriveAnsi16Theme(palette);return deriveTruecolorTheme(palette,adjustments)}function deriveTruecolorTheme(p,adjustments){let dark=p.dark??!0,bg=p.background;function ensure(token,color,against,target){let result=ensureContrast(color,against,target);if(adjustments&&result!==color){let before=checkContrast(color,against),after=checkContrast(result,against);adjustments.push({token,from:color,to:result,against,target,ratioBefore:before?.ratio??0,ratioAfter:after?.ratio??0})}return result}let surfacebg=blend(bg,p.foreground,0.05),popoverbg=blend(bg,p.foreground,0.08),fg=ensure("fg",p.foreground,popoverbg,AA),primary=ensure("primary",p.primary??(dark?p.yellow:p.blue),bg,AA),accent=ensure("accent",complement(primary),bg,AA),secondary=ensure("secondary",blend(primary,accent,0.35),bg,AA),error=ensure("error",p.red,bg,AA),warning=ensure("warning",p.yellow,bg,AA),success=ensure("success",p.green,bg,AA),info=ensure("info",blend(fg,accent,0.5),bg,AA),link=ensure("link",dark?p.brightBlue:p.blue,bg,AA),mutedbg=blend(bg,p.foreground,0.04),muted=ensure("muted",blend(fg,bg,0.4),mutedbg,AA),disabledfg=ensure("disabledfg",blend(fg,bg,0.5),bg,DIM),border=ensure("border",blend(bg,p.foreground,0.15),bg,FAINT),inputborder=ensure("inputborder",blend(bg,p.foreground,0.25),bg,CONTROL),selection=ensure("selection",p.selectionForeground,p.selectionBackground,AA),cursor=ensure("cursor",p.cursorText,p.cursorColor,AA);return{name:p.name??(dark?"derived-dark":"derived-light"),bg,fg,muted,mutedbg,surface:fg,surfacebg,popover:fg,popoverbg,inverse:contrastFg(blend(fg,bg,0.1)),inversebg:blend(fg,bg,0.1),cursor,cursorbg:p.cursorColor,selection,selectionbg:p.selectionBackground,primary,primaryfg:contrastFg(primary),secondary,secondaryfg:contrastFg(secondary),accent,accentfg:contrastFg(accent),error,errorfg:contrastFg(error),warning,warningfg:contrastFg(warning),success,successfg:contrastFg(success),info,infofg:contrastFg(info),border,inputborder,focusborder:link,link,disabledfg,palette:[p.black,p.red,p.green,p.yellow,p.blue,p.magenta,p.cyan,p.white,p.brightBlack,p.brightRed,p.brightGreen,p.brightYellow,p.brightBlue,p.brightMagenta,p.brightCyan,p.brightWhite]}}function deriveAnsi16Theme(p){let dark=p.dark??!0,primaryColor=dark?p.yellow:p.blue;return{name:p.name??(dark?"derived-ansi16-dark":"derived-ansi16-light"),bg:p.background,fg:p.foreground,muted:p.white,mutedbg:p.black,surface:p.foreground,surfacebg:p.black,popover:p.foreground,popoverbg:p.black,inverse:p.black,inversebg:p.brightWhite,cursor:p.cursorText,cursorbg:p.cursorColor,selection:p.selectionForeground,selectionbg:p.selectionBackground,primary:primaryColor,primaryfg:p.black,secondary:p.magenta,secondaryfg:p.black,accent:p.cyan,accentfg:p.black,error:dark?p.brightRed:p.red,errorfg:p.black,warning:p.yellow,warningfg:p.black,success:dark?p.brightGreen:p.green,successfg:p.black,info:p.cyan,infofg:p.black,border:p.brightBlack,inputborder:p.brightBlack,focusborder:dark?p.brightBlue:p.blue,link:dark?p.brightBlue:p.blue,disabledfg:p.brightBlack,palette:[p.black,p.red,p.green,p.yellow,p.blue,p.magenta,p.cyan,p.white,p.brightBlack,p.brightRed,p.brightGreen,p.brightYellow,p.brightBlue,p.brightMagenta,p.brightCyan,p.brightWhite]}}var AA=4.5,DIM=3,FAINT=1.5,CONTROL=3;var init_derive=__esm(()=>{init_src();init_src()});var ansi16DarkTheme,ansi16LightTheme;var init_default_palettes=__esm(()=>{ansi16DarkTheme={name:"dark-ansi16",bg:"",fg:"whiteBright",muted:"white",mutedbg:"black",surface:"whiteBright",surfacebg:"black",popover:"whiteBright",popoverbg:"black",inverse:"black",inversebg:"whiteBright",cursor:"black",cursorbg:"yellow",selection:"black",selectionbg:"yellow",primary:"yellow",primaryfg:"black",secondary:"white",secondaryfg:"black",accent:"blueBright",accentfg:"black",error:"redBright",errorfg:"black",warning:"yellow",warningfg:"black",success:"greenBright",successfg:"black",info:"cyan",infofg:"black",border:"gray",inputborder:"gray",focusborder:"blueBright",link:"blueBright",disabledfg:"gray",palette:["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]},ansi16LightTheme={name:"light-ansi16",bg:"",fg:"black",muted:"blackBright",mutedbg:"white",surface:"black",surfacebg:"white",popover:"black",popoverbg:"white",inverse:"whiteBright",inversebg:"black",cursor:"black",cursorbg:"blue",selection:"black",selectionbg:"cyan",primary:"blue",primaryfg:"black",secondary:"blue",secondaryfg:"black",accent:"cyan",accentfg:"black",error:"red",errorfg:"black",warning:"yellow",warningfg:"black",success:"green",successfg:"black",info:"cyan",infofg:"black",border:"gray",inputborder:"gray",focusborder:"blue",link:"blueBright",disabledfg:"gray",palette:["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]}});var init_types=()=>{};function queryPaletteColor(index,write){if(index<0||index>255)throw RangeError(`Palette index must be 0-255, got ${index}`);write(`\x1B]4;${index};?\x07`)}function queryMultiplePaletteColors(indices,write){for(let index of indices)queryPaletteColor(index,write)}function setPaletteColor(index,color,write){if(index<0||index>255)throw RangeError(`Palette index must be 0-255, got ${index}`);write(`\x1B]4;${index};${color}\x07`)}function parsePaletteResponse(input){let prefixIdx=input.indexOf(OSC4_PREFIX);if(prefixIdx===-1)return null;let bodyStart=prefixIdx+OSC4_PREFIX.length,bodyEnd=input.indexOf("\x07",bodyStart);if(bodyEnd===-1)bodyEnd=input.indexOf("\x1B\\",bodyStart);if(bodyEnd===-1)return null;let body=input.slice(bodyStart,bodyEnd),match=OSC4_BODY_RE.exec(body);if(!match)return null;let index=Number.parseInt(match[1],10);if(index<0||index>255)return null;let r=normalizeHexChannel(match[2]),g=normalizeHexChannel(match[3]),b=normalizeHexChannel(match[4]);return{index,color:`#${r}${g}${b}`}}function normalizeHexChannel(hex){switch(hex.length){case 1:return hex+hex;case 2:return hex;default:return hex.slice(0,2)}}var OSC4_PREFIX="\x1B]4;",OSC4_BODY_RE;var init_osc_palette=__esm(()=>{OSC4_BODY_RE=/^(\d+);rgb:([0-9a-fA-F]{1,4})\/([0-9a-fA-F]{1,4})\/([0-9a-fA-F]{1,4})$/});function normalizeHexChannel2(hex){switch(hex.length){case 1:return hex+hex;case 2:return hex;default:return hex.slice(0,2)}}function parseOscColorResponse(input,oscCode){let prefix=`\x1B]${oscCode};`,prefixIdx=input.indexOf(prefix);if(prefixIdx===-1)return null;let bodyStart=prefixIdx+prefix.length,bodyEnd=input.indexOf("\x07",bodyStart);if(bodyEnd===-1)bodyEnd=input.indexOf("\x1B\\",bodyStart);if(bodyEnd===-1)return null;let body=input.slice(bodyStart,bodyEnd),match=RGB_BODY_RE.exec(body);if(!match)return null;return`#${normalizeHexChannel2(match[1])}${normalizeHexChannel2(match[2])}${normalizeHexChannel2(match[3])}`}async function queryOscColor(write,read,oscCode,timeoutMs){write(`\x1B]${oscCode};?\x07`);let data=await read(timeoutMs);if(data==null)return null;return parseOscColorResponse(data,oscCode)}async function queryForegroundColor(write,read,timeoutMs=200){return queryOscColor(write,read,10,timeoutMs)}async function queryBackgroundColor(write,read,timeoutMs=200){return queryOscColor(write,read,11,timeoutMs)}async function queryCursorColor(write,read,timeoutMs=200){return queryOscColor(write,read,12,timeoutMs)}function setForegroundColor(write,color){write(`\x1B]10;${color}\x07`)}function setBackgroundColor(write,color){write(`\x1B]11;${color}\x07`)}function setCursorColor(write,color){write(`\x1B]12;${color}\x07`)}function resetForegroundColor(write){write("\x1B]110\x07")}function resetBackgroundColor(write){write("\x1B]111\x07")}function resetCursorColor(write){write("\x1B]112\x07")}async function detectColorScheme(write,read,timeoutMs=200){let bg=await queryBackgroundColor(write,read,timeoutMs);if(bg==null)return null;let r=parseInt(bg.slice(1,3),16)/255,g=parseInt(bg.slice(3,5),16)/255,b=parseInt(bg.slice(5,7),16)/255;return 0.2126*r+0.7152*g+0.0722*b>0.5?"light":"dark"}var RGB_BODY_RE;var init_osc_colors=__esm(()=>{RGB_BODY_RE=/rgb:([0-9a-fA-F]{1,4})\/([0-9a-fA-F]{1,4})\/([0-9a-fA-F]{1,4})/});async function detectTerminalPalette(timeoutMs=150){let{stdin,stdout}=process;if(!stdin.isTTY||!stdout.isTTY)return null;let wasRaw=stdin.isRaw;if(!wasRaw)stdin.setRawMode(!0);let buffer="",onData=(chunk)=>{buffer+=chunk.toString()};stdin.on("data",onData);try{let write=(s)=>{stdout.write(s)},read=(ms)=>new Promise((resolve)=>{if(buffer.length>0){let result=buffer;buffer="",resolve(result);return}let timer=setTimeout(()=>{resolve(buffer.length>0?buffer:null),buffer=""},ms),check=(_chunk)=>{clearTimeout(timer),stdin.removeListener("data",check);let result=buffer;buffer="",resolve(result)};stdin.on("data",check)}),bg=await queryBackgroundColor(write,read,timeoutMs),fg=await queryForegroundColor(write,read,timeoutMs),ansi=Array(16).fill(null);queryMultiplePaletteColors(Array.from({length:16},(_,i)=>i),write),await new Promise((resolve)=>setTimeout(resolve,timeoutMs));let remaining=buffer;if(buffer="",remaining){let pos=0;while(pos<remaining.length){let nextOsc=remaining.indexOf("\x1B]4;",pos);if(nextOsc===-1)break;let end=remaining.indexOf("\x07",nextOsc);if(end===-1)end=remaining.indexOf("\x1B\\",nextOsc);if(end===-1)break;let chunk=remaining.slice(nextOsc,end+1),parsed=parsePaletteResponse(chunk);if(parsed&&parsed.index>=0&&parsed.index<16)ansi[parsed.index]=parsed.color;pos=end+1}}let dark=bg?isDarkColor(bg):!0,palette={dark};if(bg)palette.background=bg;if(fg)palette.foreground=fg;let ansiFields=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"];for(let i=0;i<16;i++)if(ansi[i])palette[ansiFields[i]]=ansi[i];if(fg)palette.cursorColor=fg,palette.selectionForeground=fg;if(bg)palette.cursorText=bg;if(ansi[4])palette.selectionBackground=ansi[4];return{fg,bg,ansi,dark,palette}}finally{if(stdin.removeListener("data",onData),!wasRaw)stdin.setRawMode(!1)}}function isDarkColor(hex){let r=parseInt(hex.slice(1,3),16)/255,g=parseInt(hex.slice(3,5),16)/255,b=parseInt(hex.slice(5,7),16)/255;return 0.2126*r+0.7152*g+0.0722*b<=0.5}var init_detect=__esm(()=>{init_derive();init_default_palettes();init_osc_palette();init_osc_colors()});var init_color_scheme=()=>{};var init_src2=__esm(()=>{init_constants();init_detection();init_utils();init_color_maps();init_underline_ext();init_hyperlink();init_style();init_mixed_proxy();init_colors();init_derive();init_default_palettes();init_types();init_detect();init_osc_palette();init_osc_colors();init_color_scheme()});var init_sgr_codes=__esm(()=>{init_src2()});function isDefaultBg(color){return color!==null&&typeof color==="object"&&color.r===-1}function underlineStyleToNumber(style2){switch(style2){case!1:return 0;case"single":return 1;case"double":return 2;case"curly":return 3;case"dotted":return 4;case"dashed":return 5;default:return 0}}function numberToUnderlineStyle(n){switch(n){case 0:return;case 1:return"single";case 2:return"double";case 3:return"curly";case 4:return"dotted";case 5:return"dashed";default:return}}function attrsToNumber(attrs){let n=0;if(attrs.bold)n|=ATTR_BOLD;if(attrs.dim)n|=ATTR_DIM;if(attrs.italic)n|=ATTR_ITALIC;if(attrs.blink)n|=ATTR_BLINK;if(attrs.inverse)n|=ATTR_INVERSE;if(attrs.hidden)n|=ATTR_HIDDEN;if(attrs.strikethrough)n|=ATTR_STRIKETHROUGH;let ulStyle=attrs.underlineStyle??(attrs.underline?"single":void 0);return n|=underlineStyleToNumber(ulStyle)<<UNDERLINE_STYLE_SHIFT,n}function numberToAttrs(n){let attrs={};if(n&ATTR_BOLD)attrs.bold=!0;if(n&ATTR_DIM)attrs.dim=!0;if(n&ATTR_ITALIC)attrs.italic=!0;if(n&ATTR_BLINK)attrs.blink=!0;if(n&ATTR_INVERSE)attrs.inverse=!0;if(n&ATTR_HIDDEN)attrs.hidden=!0;if(n&ATTR_STRIKETHROUGH)attrs.strikethrough=!0;let ulStyleNum=(n&UNDERLINE_STYLE_MASK)>>UNDERLINE_STYLE_SHIFT,ulStyle=numberToUnderlineStyle(ulStyleNum);if(ulStyle)attrs.underlineStyle=ulStyle,attrs.underline=!0;return attrs}function colorToIndex(color){if(color===null)return 0;if(typeof color==="number")return(color&255)+1;return 0}function isTrueColor(color){return color!==null&&typeof color==="object"}function packCell(cell){let packed=0;if(packed|=colorToIndex(cell.fg)&255,packed|=(colorToIndex(cell.bg)&255)<<8,packed|=attrsToNumber(cell.attrs),cell.wide)packed|=WIDE_FLAG;if(cell.continuation)packed|=CONTINUATION_FLAG;if(isTrueColor(cell.fg))packed|=TRUE_COLOR_FG_FLAG;if(isTrueColor(cell.bg))packed|=TRUE_COLOR_BG_FLAG;return packed}function unpackFgIndex(packed){return packed&255}function unpackBgIndex(packed){return packed>>8&255}function unpackAttrs(packed){return numberToAttrs(packed)}function unpackWide(packed){return(packed&WIDE_FLAG)!==0}function unpackContinuation(packed){return(packed&CONTINUATION_FLAG)!==0}function unpackTrueColorFg(packed){return(packed&TRUE_COLOR_FG_FLAG)!==0}function unpackTrueColorBg(packed){return(packed&TRUE_COLOR_BG_FLAG)!==0}class TerminalBuffer{cells;chars;fgColors;bgColors;underlineColors;hyperlinks;_dirtyRows;_minDirtyRow;_maxDirtyRow;_rowMetadata;_selectableMode=!1;width;height;constructor(width,height){this.width=width,this.height=height;let size=width*height;this.cells=new Uint32Array(size),this.chars=Array(size).fill(" "),this.fgColors=new Map,this.bgColors=new Map,this.underlineColors=new Map,this.hyperlinks=new Map,this._dirtyRows=new Uint8Array(height).fill(1),this._minDirtyRow=0,this._maxDirtyRow=height-1,this._rowMetadata=Array.from({length:height},()=>({softWrapped:!1,lastContentCol:-1}))}index(x,y){return y*this.width+x}inBounds(x,y){return x>=0&&x<this.width&&y>=0&&y<this.height}getCell(x,y){if(!this.inBounds(x,y))return{...EMPTY_CELL};let idx=this.index(x,y),packed=this.cells[idx],char=this.chars[idx],fg=null;if(unpackTrueColorFg(packed))fg=this.fgColors.get(idx)??null;else{let fgIndex=unpackFgIndex(packed);fg=fgIndex>0?fgIndex-1:null}let bg=null;if(unpackTrueColorBg(packed))bg=this.bgColors.get(idx)??null;else{let bgIndex=unpackBgIndex(packed);bg=bgIndex>0?bgIndex-1:null}let hyperlink2=this.hyperlinks.get(idx);return{char,fg,bg,underlineColor:this.underlineColors.get(idx)??null,attrs:unpackAttrs(packed),wide:unpackWide(packed),continuation:unpackContinuation(packed),...hyperlink2!==void 0?{hyperlink:hyperlink2}:{}}}getCellChar(x,y){if(!this.inBounds(x,y))return" ";return this.chars[this.index(x,y)]}getCellBg(x,y){if(!this.inBounds(x,y))return null;let idx=this.index(x,y),packed=this.cells[idx];if(unpackTrueColorBg(packed))return this.bgColors.get(idx)??null;let bgIndex=unpackBgIndex(packed);return bgIndex>0?bgIndex-1:null}getCellFg(x,y){if(!this.inBounds(x,y))return null;let idx=this.index(x,y),packed=this.cells[idx];if(unpackTrueColorFg(packed))return this.fgColors.get(idx)??null;let fgIndex=unpackFgIndex(packed);return fgIndex>0?fgIndex-1:null}getCellAttrs(x,y){if(!this.inBounds(x,y))return 0;return this.cells[this.index(x,y)]}isCellWide(x,y){if(!this.inBounds(x,y))return!1;return unpackWide(this.cells[this.index(x,y)])}isCellContinuation(x,y){if(!this.inBounds(x,y))return!1;return unpackContinuation(this.cells[this.index(x,y)])}isCellSelectable(x,y){if(!this.inBounds(x,y))return!1;return(this.cells[this.index(x,y)]>>>0&SELECTABLE_FLAG)!==0}setRowMeta(row,meta){if(row<0||row>=this.height)return;let existing=this._rowMetadata[row];if(meta.softWrapped!==void 0)existing.softWrapped=meta.softWrapped;if(meta.lastContentCol!==void 0)existing.lastContentCol=meta.lastContentCol}getRowMeta(row){if(row<0||row>=this.height)return{softWrapped:!1,lastContentCol:-1};return this._rowMetadata[row]}getRowMetadataArray(){return this._rowMetadata}setSelectableMode(selectable){this._selectableMode=selectable}getSelectableMode(){return this._selectableMode}readCellInto(x,y,out){if(!this.inBounds(x,y))return out.char=" ",out.fg=null,out.bg=null,out.underlineColor=null,out.attrs=EMPTY_ATTRS,out.wide=!1,out.continuation=!1,out.hyperlink=void 0,out;let idx=this.index(x,y),packed=this.cells[idx];if(out.char=this.chars[idx],unpackTrueColorFg(packed))out.fg=this.fgColors.get(idx)??null;else{let fgIndex=unpackFgIndex(packed);out.fg=fgIndex>0?fgIndex-1:null}if(unpackTrueColorBg(packed))out.bg=this.bgColors.get(idx)??null;else{let bgIndex=unpackBgIndex(packed);out.bg=bgIndex>0?bgIndex-1:null}out.underlineColor=this.underlineColors.get(idx)??null;let attrs=out.attrs===EMPTY_ATTRS?(out.attrs={},out.attrs):out.attrs;attrs.bold=(packed&ATTR_BOLD)!==0?!0:void 0,attrs.dim=(packed&ATTR_DIM)!==0?!0:void 0,attrs.italic=(packed&ATTR_ITALIC)!==0?!0:void 0,attrs.blink=(packed&ATTR_BLINK)!==0?!0:void 0,attrs.inverse=(packed&ATTR_INVERSE)!==0?!0:void 0,attrs.hidden=(packed&ATTR_HIDDEN)!==0?!0:void 0,attrs.strikethrough=(packed&ATTR_STRIKETHROUGH)!==0?!0:void 0;let ulStyleNum=(packed&UNDERLINE_STYLE_MASK)>>UNDERLINE_STYLE_SHIFT,ulStyle=numberToUnderlineStyle(ulStyleNum);if(ulStyle)attrs.underlineStyle=ulStyle,attrs.underline=!0;else attrs.underlineStyle=void 0,attrs.underline=void 0;return out.wide=(packed&WIDE_FLAG)!==0,out.continuation=(packed&CONTINUATION_FLAG)!==0,out.hyperlink=this.hyperlinks.get(idx),out}setCell(x,y,cell){if(!this.inBounds(x,y))return;let trap=globalThis.__silvery_write_trap;if(trap&&x===trap.x&&y===trap.y){let char2=cell.char??" ",stack=Error().stack?.split(`
|
|
3
5
|
`).slice(1,6).join(`
|
|
4
6
|
`)??"";trap.log.push(` char="${char2}" fg=${cell.fg??"null"} bg=${cell.bg??"null"} dim=${cell.attrs?.dim} ul=${cell.attrs?.underline}
|
|
5
7
|
${stack}`)}if(this._dirtyRows[y]=1,this._minDirtyRow===-1||y<this._minDirtyRow)this._minDirtyRow=y;if(y>this._maxDirtyRow)this._maxDirtyRow=y;let idx=this.index(x,y);if(!(cell.continuation??!1)){let prevPacked=this.cells[idx];if(prevPacked!==void 0&&(prevPacked&CONTINUATION_FLAG)!==0&&x>0){let prevIdx=idx-1;this.cells[prevIdx]=this.cells[prevIdx]&~WIDE_FLAG,this.chars[prevIdx]=" "}}if(!(cell.wide??!1)){let prevPacked=this.cells[idx];if(prevPacked!==void 0&&(prevPacked&WIDE_FLAG)!==0&&x+1<this.width){let nextIdx=idx+1;this.cells[nextIdx]=this.cells[nextIdx]&~CONTINUATION_FLAG,this.chars[nextIdx]=" "}}let char=cell.char??" ",fg=cell.fg??null,bg=cell.bg??null,underlineColor2=cell.underlineColor??null,attrs=cell.attrs??EMPTY_ATTRS,wide=cell.wide??!1,continuation=cell.continuation??!1;if(this.chars[idx]=char,isTrueColor(fg))this.fgColors.set(idx,fg);else this.fgColors.delete(idx);if(isTrueColor(bg))this.bgColors.set(idx,bg);else this.bgColors.delete(idx);if(underlineColor2!==null)this.underlineColors.set(idx,underlineColor2);else this.underlineColors.delete(idx);let hyperlink2=cell.hyperlink;if(hyperlink2!==void 0&&hyperlink2!=="")this.hyperlinks.set(idx,hyperlink2);else this.hyperlinks.delete(idx);let packed=0;if(packed|=colorToIndex(fg)&255,packed|=(colorToIndex(bg)&255)<<8,packed|=attrsToNumber(attrs),wide)packed|=WIDE_FLAG;if(continuation)packed|=CONTINUATION_FLAG;if(isTrueColor(fg))packed|=TRUE_COLOR_FG_FLAG;if(isTrueColor(bg))packed|=TRUE_COLOR_BG_FLAG;if(this._selectableMode)packed=(packed|SELECTABLE_FLAG)>>>0;this.cells[idx]=packed}fill(x,y,width,height,cell){let endX=Math.min(x+width,this.width),endY=Math.min(y+height,this.height),startX=Math.max(0,x),startY=Math.max(0,y);if(startX>=endX||startY>=endY)return;let char=cell.char??" ",fg=cell.fg??null,bg=cell.bg??null,underlineColor2=cell.underlineColor??null,attrs=cell.attrs??{},wide=cell.wide??!1,continuation=cell.continuation??!1,packed=packCell({char,fg,bg,underlineColor:underlineColor2,attrs,wide,continuation});if(this._selectableMode)packed=(packed|SELECTABLE_FLAG)>>>0;let hasTrueColorFg=isTrueColor(fg),hasTrueColorBg=isTrueColor(bg),trueColorFg=hasTrueColorFg?fg:null,trueColorBg=hasTrueColorBg?bg:null,hasUnderlineColor=underlineColor2!==null,hyperlink2=cell.hyperlink,hasHyperlink=hyperlink2!==void 0&&hyperlink2!=="";for(let cy=startY;cy<endY;cy++)this._dirtyRows[cy]=1;if(startY<endY){if(this._minDirtyRow===-1||startY<this._minDirtyRow)this._minDirtyRow=startY;if(endY-1>this._maxDirtyRow)this._maxDirtyRow=endY-1}let needFgDelete=!hasTrueColorFg&&this.fgColors.size>0,needBgDelete=!hasTrueColorBg&&this.bgColors.size>0,needUlDelete=!hasUnderlineColor&&this.underlineColors.size>0,needHlDelete=!hasHyperlink&&this.hyperlinks.size>0;for(let cy=startY;cy<endY;cy++){let rowBase=cy*this.width;for(let cx=startX;cx<endX;cx++){let idx=rowBase+cx;if(this.cells[idx]=packed,this.chars[idx]=char,hasTrueColorFg)this.fgColors.set(idx,trueColorFg);else if(needFgDelete)this.fgColors.delete(idx);if(hasTrueColorBg)this.bgColors.set(idx,trueColorBg);else if(needBgDelete)this.bgColors.delete(idx);if(hasUnderlineColor)this.underlineColors.set(idx,underlineColor2);else if(needUlDelete)this.underlineColors.delete(idx);if(hasHyperlink)this.hyperlinks.set(idx,hyperlink2);else if(needHlDelete)this.hyperlinks.delete(idx)}}}restyleRegion(x,y,width,height,style2){let endX=Math.min(x+width,this.width),endY=Math.min(y+height,this.height),startX=Math.max(0,x),startY=Math.max(0,y);if(startX>=endX||startY>=endY)return;let fgIndex=colorToIndex(style2.fg)&255,bgIndex=(colorToIndex(style2.bg)&255)<<8,attrBits=attrsToNumber(style2.attrs),hasTrueColorFg=isTrueColor(style2.fg),hasTrueColorBg=isTrueColor(style2.bg),trueColorFgFlag=hasTrueColorFg?TRUE_COLOR_FG_FLAG:0,trueColorBgFlag=hasTrueColorBg?TRUE_COLOR_BG_FLAG:0,trueColorFg=hasTrueColorFg?style2.fg:null,trueColorBg=hasTrueColorBg?style2.bg:null,underlineColor2=style2.underlineColor??null,hasUnderlineColor=underlineColor2!==null,styleBits=fgIndex|bgIndex|attrBits|trueColorFgFlag|trueColorBgFlag,PRESERVE_MASK=WIDE_FLAG|CONTINUATION_FLAG|SELECTABLE_FLAG,needFgDelete=!hasTrueColorFg&&this.fgColors.size>0,needBgDelete=!hasTrueColorBg&&this.bgColors.size>0,needUlDelete=!hasUnderlineColor&&this.underlineColors.size>0;for(let cy=startY;cy<endY;cy++)this._dirtyRows[cy]=1;if(this._minDirtyRow===-1||startY<this._minDirtyRow)this._minDirtyRow=startY;if(endY-1>this._maxDirtyRow)this._maxDirtyRow=endY-1;for(let cy=startY;cy<endY;cy++){let rowBase=cy*this.width;for(let cx=startX;cx<endX;cx++){let idx=rowBase+cx,oldPacked=this.cells[idx];if(this.cells[idx]=(oldPacked&PRESERVE_MASK)>>>0|styleBits,hasTrueColorFg)this.fgColors.set(idx,trueColorFg);else if(needFgDelete)this.fgColors.delete(idx);if(hasTrueColorBg)this.bgColors.set(idx,trueColorBg);else if(needBgDelete)this.bgColors.delete(idx);if(hasUnderlineColor)this.underlineColors.set(idx,underlineColor2);else if(needUlDelete)this.underlineColors.delete(idx)}}}fillBg(x,y,width,height,bg){let endX=Math.min(x+width,this.width),endY=Math.min(y+height,this.height),startX=Math.max(0,x),startY=Math.max(0,y);if(startX>=endX||startY>=endY)return;let bgIndex=(colorToIndex(bg)&255)<<8,hasTrueColorBg=isTrueColor(bg),trueColorBg=hasTrueColorBg?bg:null,needBgDelete=!hasTrueColorBg&&this.bgColors.size>0,BG_CLEAR_MASK=~(65280|TRUE_COLOR_BG_FLAG),trueColorBgFlag=hasTrueColorBg?TRUE_COLOR_BG_FLAG:0;for(let cy=startY;cy<endY;cy++)this._dirtyRows[cy]=1;if(startY<endY){if(this._minDirtyRow===-1||startY<this._minDirtyRow)this._minDirtyRow=startY;if(endY-1>this._maxDirtyRow)this._maxDirtyRow=endY-1}for(let cy=startY;cy<endY;cy++){let rowBase=cy*this.width;for(let cx=startX;cx<endX;cx++){let idx=rowBase+cx,oldPacked=this.cells[idx];if(this.cells[idx]=(oldPacked&BG_CLEAR_MASK)>>>0|bgIndex|trueColorBgFlag,hasTrueColorBg)this.bgColors.set(idx,trueColorBg);else if(needBgDelete)this.bgColors.delete(idx)}}}clear(){this.cells.fill(0),this.chars.fill(" "),this.fgColors.clear(),this.bgColors.clear(),this.underlineColors.clear(),this.hyperlinks.clear(),this._dirtyRows.fill(1),this._minDirtyRow=0,this._maxDirtyRow=this.height-1}copyFrom(source,srcX,srcY,destX,destY,width,height){let cell=createMutableCell();for(let dy=0;dy<height;dy++){let dstY=destY+dy;if(dstY>=0&&dstY<this.height){if(this._dirtyRows[dstY]=1,this._minDirtyRow===-1||dstY<this._minDirtyRow)this._minDirtyRow=dstY;if(dstY>this._maxDirtyRow)this._maxDirtyRow=dstY}for(let dx=0;dx<width;dx++){let sx=srcX+dx,sy=srcY+dy,dX=destX+dx;if(source.inBounds(sx,sy)&&this.inBounds(dX,dstY))source.readCellInto(sx,sy,cell),this.setCell(dX,dstY,cell)}}}scrollRegion(x,y,regionWidth,regionHeight,delta,clearCell={}){if(delta===0||regionHeight<=0||regionWidth<=0)return;let startX=Math.max(0,x),endX=Math.min(x+regionWidth,this.width),startY=Math.max(0,y),endY=Math.min(y+regionHeight,this.height),clampedWidth=endX-startX,clampedHeight=endY-startY;if(clampedWidth<=0||clampedHeight<=0)return;for(let r=startY;r<endY;r++)this._dirtyRows[r]=1;if(this._minDirtyRow===-1||startY<this._minDirtyRow)this._minDirtyRow=startY;if(endY-1>this._maxDirtyRow)this._maxDirtyRow=endY-1;if(Math.abs(delta)>=clampedHeight){this.fill(startX,startY,clampedWidth,clampedHeight,{char:clearCell.char??" ",bg:clearCell.bg??null});return}let absDelta=Math.abs(delta),w=this.width;if(delta>0){for(let row=startY;row<endY-absDelta;row++){let dstBase=row*w,srcBase=(row+absDelta)*w;this.cells.copyWithin(dstBase+startX,srcBase+startX,srcBase+endX);for(let cx=startX;cx<endX;cx++){this.chars[dstBase+cx]=this.chars[srcBase+cx];let srcIdx=srcBase+cx,dstIdx=dstBase+cx,fgc=this.fgColors.get(srcIdx);if(fgc)this.fgColors.set(dstIdx,fgc),this.fgColors.delete(srcIdx);else this.fgColors.delete(dstIdx);let bgc=this.bgColors.get(srcIdx);if(bgc)this.bgColors.set(dstIdx,bgc),this.bgColors.delete(srcIdx);else this.bgColors.delete(dstIdx);let ulc=this.underlineColors.get(srcIdx);if(ulc)this.underlineColors.set(dstIdx,ulc),this.underlineColors.delete(srcIdx);else this.underlineColors.delete(dstIdx);let hl=this.hyperlinks.get(srcIdx);if(hl)this.hyperlinks.set(dstIdx,hl),this.hyperlinks.delete(srcIdx);else this.hyperlinks.delete(dstIdx)}}this.fill(startX,endY-absDelta,clampedWidth,absDelta,{char:clearCell.char??" ",bg:clearCell.bg??null})}else{for(let row=endY-1;row>=startY+absDelta;row--){let dstBase=row*w,srcBase=(row-absDelta)*w;this.cells.copyWithin(dstBase+startX,srcBase+startX,srcBase+endX);for(let cx=startX;cx<endX;cx++){this.chars[dstBase+cx]=this.chars[srcBase+cx];let srcIdx=srcBase+cx,dstIdx=dstBase+cx,fgc=this.fgColors.get(srcIdx);if(fgc)this.fgColors.set(dstIdx,fgc),this.fgColors.delete(srcIdx);else this.fgColors.delete(dstIdx);let bgc=this.bgColors.get(srcIdx);if(bgc)this.bgColors.set(dstIdx,bgc),this.bgColors.delete(srcIdx);else this.bgColors.delete(dstIdx);let ulc=this.underlineColors.get(srcIdx);if(ulc)this.underlineColors.set(dstIdx,ulc),this.underlineColors.delete(srcIdx);else this.underlineColors.delete(dstIdx);let hl=this.hyperlinks.get(srcIdx);if(hl)this.hyperlinks.set(dstIdx,hl),this.hyperlinks.delete(srcIdx);else this.hyperlinks.delete(dstIdx)}}this.fill(startX,startY,clampedWidth,absDelta,{char:clearCell.char??" ",bg:clearCell.bg??null})}}clone(){let copy=new TerminalBuffer(this.width,this.height);return copy.cells.set(this.cells),copy.chars=[...this.chars],copy.fgColors=new Map(this.fgColors),copy.bgColors=new Map(this.bgColors),copy.underlineColors=new Map(this.underlineColors),copy.hyperlinks=new Map(this.hyperlinks),copy._dirtyRows.fill(0),copy._minDirtyRow=-1,copy._maxDirtyRow=-1,copy._rowMetadata=this._rowMetadata.map((m)=>({...m})),copy}isRowDirty(y){if(y<0||y>=this.height)return!1;return this._dirtyRows[y]!==0}get minDirtyRow(){return this._minDirtyRow}get maxDirtyRow(){return this._maxDirtyRow}resetDirtyRows(){this._dirtyRows.fill(0),this._minDirtyRow=-1,this._maxDirtyRow=-1}markAllRowsDirty(){this._dirtyRows.fill(1),this._minDirtyRow=0,this._maxDirtyRow=this.height-1}cellEquals(x,y,other){if(!this.inBounds(x,y)||!other.inBounds(x,y))return!1;let idx=this.index(x,y),otherIdx=other.index(x,y),mask=~SELECTABLE_FLAG;if((this.cells[idx]&mask)!==(other.cells[otherIdx]&mask))return!1;if(this.chars[idx]!==other.chars[otherIdx])return!1;let packed=this.cells[idx];if(unpackTrueColorFg(packed)){let a=this.fgColors.get(idx),b=other.fgColors.get(otherIdx);if(!colorEquals(a,b))return!1}if(unpackTrueColorBg(packed)){let a=this.bgColors.get(idx),b=other.bgColors.get(otherIdx);if(!colorEquals(a,b))return!1}let ulA=this.underlineColors.get(idx)??null,ulB=other.underlineColors.get(otherIdx)??null;if(!colorEquals(ulA,ulB))return!1;let hlA=this.hyperlinks.get(idx),hlB=other.hyperlinks.get(otherIdx);if(hlA!==hlB)return!1;return!0}rowMetadataEquals(y,other){if(y<0||y>=this.height||y>=other.height)return!1;let start=y*this.width,otherStart=y*other.width,w=Math.min(this.width,other.width),mask=~SELECTABLE_FLAG;for(let i=0;i<w;i++)if((this.cells[start+i]&mask)!==(other.cells[otherStart+i]&mask))return!1;return!0}rowCharsEquals(y,other){if(y<0||y>=this.height||y>=other.height)return!1;let start=y*this.width,otherStart=y*other.width,w=Math.min(this.width,other.width);for(let i=0;i<w;i++)if(this.chars[start+i]!==other.chars[otherStart+i])return!1;return!0}rowExtrasEquals(y,other){if(y<0||y>=this.height||y>=other.height)return!1;let start=y*this.width,w=Math.min(this.width,other.width),otherStart=y*other.width;for(let i=0;i<w;i++){let idx=start+i,otherIdx=otherStart+i,packed=this.cells[idx];if((packed&TRUE_COLOR_FG_FLAG)!==0){let a=this.fgColors.get(idx),b=other.fgColors.get(otherIdx);if(!colorEquals(a,b))return!1}if((packed&TRUE_COLOR_BG_FLAG)!==0){let a=this.bgColors.get(idx),b=other.bgColors.get(otherIdx);if(!colorEquals(a,b))return!1}let ulA=this.underlineColors.get(idx)??null,ulB=other.underlineColors.get(otherIdx)??null;if(!colorEquals(ulA,ulB))return!1;let hlA=this.hyperlinks.get(idx),hlB=other.hyperlinks.get(otherIdx);if(hlA!==hlB)return!1}return!0}}function colorEquals(a,b){if(a===b)return!0;if(a===null||a===void 0)return b===null||b===void 0;if(b===null||b===void 0)return!1;if(typeof a==="number")return a===b;if(typeof b==="number")return!1;return a.r===b.r&&a.g===b.g&&a.b===b.b}function cellEquals(a,b){return a.char===b.char&&colorEquals(a.fg,b.fg)&&colorEquals(a.bg,b.bg)&&colorEquals(a.underlineColor,b.underlineColor)&&a.wide===b.wide&&a.continuation===b.continuation&&attrsEquals(a.attrs,b.attrs)&&(a.hyperlink??void 0)===(b.hyperlink??void 0)}function attrsEquals(a,b){return Boolean(a.bold)===Boolean(b.bold)&&Boolean(a.dim)===Boolean(b.dim)&&Boolean(a.italic)===Boolean(b.italic)&&Boolean(a.underline)===Boolean(b.underline)&&(a.underlineStyle??!1)===(b.underlineStyle??!1)&&Boolean(a.blink)===Boolean(b.blink)&&Boolean(a.inverse)===Boolean(b.inverse)&&Boolean(a.hidden)===Boolean(b.hidden)&&Boolean(a.strikethrough)===Boolean(b.strikethrough)}function styleEquals(a,b){if(a===b)return!0;if(!a||!b)return!1;return colorEquals(a.fg,b.fg)&&colorEquals(a.bg,b.bg)&&colorEquals(a.underlineColor,b.underlineColor)&&attrsEquals(a.attrs,b.attrs)&&(a.hyperlink??void 0)===(b.hyperlink??void 0)}function createMutableCell(){return{char:" ",fg:null,bg:null,underlineColor:null,attrs:{},wide:!1,continuation:!1,hyperlink:void 0}}function bufferToText(buffer,options={}){let{trimTrailingWhitespace=!0,trimEmptyLines=!0}=options,lines=[];for(let y=0;y<buffer.height;y++){let line="",strOffset=0,contentEdgeStrOffset=0,contentEdge=trimTrailingWhitespace?getContentEdge(buffer,y):0;for(let x=0;x<buffer.width;x++){if(buffer.isCellContinuation(x,y))continue;if(line+=buffer.getCellChar(x,y),strOffset++,x<contentEdge)contentEdgeStrOffset=strOffset}if(trimTrailingWhitespace){let trimmed=line.trimEnd();line=trimmed.length>=contentEdgeStrOffset?trimmed:line.substring(0,contentEdgeStrOffset)}lines.push(line)}let result=lines.join(`
|
|
6
8
|
`);if(trimEmptyLines){while(lines.length>0&&lines[lines.length-1].length===0)lines.pop();result=lines.join(`
|
|
7
9
|
`)}return result}function getContentEdge(buffer,y){let FLAG_MASK=~(WIDE_FLAG|CONTINUATION_FLAG|SELECTABLE_FLAG);for(let x=buffer.width-1;x>=0;x--){if(buffer.isCellContinuation(x,y))continue;if((buffer.getCellAttrs(x,y)&FLAG_MASK)!==0)return x+1;if(buffer.getCellChar(x,y)!==" ")return x+1}return 0}function bufferToStyledText(buffer,options={}){let{trimTrailingWhitespace=!0,trimEmptyLines=!0}=options,lines=[],currentStyle=null,currentHyperlink;for(let y=0;y<buffer.height;y++){let line="";for(let x=0;x<buffer.width;x++){let cell=buffer.getCell(x,y);if(cell.continuation)continue;let cellHyperlink=cell.hyperlink;if(cellHyperlink!==currentHyperlink){if(currentHyperlink)line+=emitHyperlinkClose(currentHyperlink);if(cellHyperlink)line+=emitHyperlinkOpen(cellHyperlink);currentHyperlink=cellHyperlink}let cellStyle={fg:cell.fg,bg:cell.bg,underlineColor:cell.underlineColor,attrs:cell.attrs};if(!styleEquals(currentStyle,cellStyle))line+=styleTransitionCodes(currentStyle,cellStyle),currentStyle=cellStyle;line+=cell.char}if(currentHyperlink)line+=emitHyperlinkClose(currentHyperlink),currentHyperlink=void 0;if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))line+=styleResetCodes(currentStyle),currentStyle=null;if(trimTrailingWhitespace)line=trimTrailingWhitespacePreservingAnsi(line);lines.push(line)}let result=lines.join(`
|
|
8
|
-
`);if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))result+=styleResetCodes(currentStyle);if(trimEmptyLines)result=result.replace(/\n+$/,"");return result}function decodeHyperlinkFormat(encoded){if(encoded.charCodeAt(0)===1){let sepIdx=encoded.indexOf("\x02");if(sepIdx>0){let tag=encoded.slice(1,sepIdx),url=encoded.slice(sepIdx+1);if(tag==="c1b")return{url,oscIntro:"",oscClose:"",closeIntro:"",closeTerminator:"\x07"};if(tag==="c1s")return{url,oscIntro:"",oscClose:"",closeIntro:"",closeTerminator:"\x1B\\"};if(tag==="e7b")return{url,oscIntro:"\x1B]",oscClose:"\x1B]",closeIntro:"\x1B]",closeTerminator:"\x07"}}}return{url:encoded,oscIntro:"\x1B]",oscClose:"\x1B]",closeIntro:"\x1B]",closeTerminator:"\x1B\\"}}function emitHyperlinkOpen(encoded){let fmt=decodeHyperlinkFormat(encoded);return`${fmt.oscIntro}8;;${fmt.url}${fmt.closeTerminator}`}function emitHyperlinkClose(encoded){let fmt=decodeHyperlinkFormat(encoded);return`${fmt.closeIntro}8;;${fmt.closeTerminator}`}function hasActiveAttrs(attrs){return!!(attrs.bold||attrs.dim||attrs.italic||attrs.underline||attrs.underlineStyle||attrs.blink||attrs.inverse||attrs.hidden||attrs.strikethrough)}function styleToAnsiCodes(style2){let{fg,bg}=style2,result="";if(fg!==null)result+=`\x1B[${fgColorCode(fg)}m`;if(bg!==null&&!isDefaultBg(bg))result+=`\x1B[${bgColorCode(bg)}m`;if(style2.attrs.bold)result+="\x1B[1m";if(style2.attrs.dim)result+="\x1B[2m";if(style2.attrs.italic)result+="\x1B[3m";let underlineStyle=style2.attrs.underlineStyle;if(typeof underlineStyle==="string"){let subparam={single:1,double:2,curly:3,dotted:4,dashed:5}[underlineStyle];if(subparam!==void 0&&subparam!==0)result+=`\x1B[4:${subparam}m`}else if(style2.attrs.underline)result+="\x1B[4m";if(style2.attrs.inverse)result+="\x1B[7m";if(style2.attrs.strikethrough)result+="\x1B[9m";if(style2.underlineColor!==null&&style2.underlineColor!==void 0)if(typeof style2.underlineColor==="number")result+=`\x1B[58;5;${style2.underlineColor}m`;else result+=`\x1B[58;2;${style2.underlineColor.r};${style2.underlineColor.g};${style2.underlineColor.b}m`;return result}function styleTransitionCodes(oldStyle,newStyle){if(!oldStyle)return styleToAnsiCodes(newStyle);if(styleEquals(oldStyle,newStyle))return"";let result="",oa=oldStyle.attrs,na=newStyle.attrs,boldChanged=Boolean(oa.bold)!==Boolean(na.bold),dimChanged=Boolean(oa.dim)!==Boolean(na.dim);if(boldChanged||dimChanged){let boldOff=boldChanged&&!na.bold,dimOff=dimChanged&&!na.dim;if(boldOff||dimOff){if(result+="\x1B[22m",na.bold)result+="\x1B[1m";if(na.dim)result+="\x1B[2m"}else{if(boldChanged&&na.bold)result+="\x1B[1m";if(dimChanged&&na.dim)result+="\x1B[2m"}}if(Boolean(oa.italic)!==Boolean(na.italic))result+=na.italic?"\x1B[3m":"\x1B[23m";let oldUl=Boolean(oa.underline),newUl=Boolean(na.underline),oldUlStyle=oa.underlineStyle??!1,newUlStyle=na.underlineStyle??!1;if(oldUl!==newUl||oldUlStyle!==newUlStyle)if(typeof na.underlineStyle==="string"){let sub={single:1,double:2,curly:3,dotted:4,dashed:5}[na.underlineStyle];if(sub!==void 0&&sub!==0)result+=`\x1B[4:${sub}m`;else if(newUl)result+="\x1B[4m";else result+="\x1B[24m"}else if(newUl)result+="\x1B[4m";else result+="\x1B[24m";if(Boolean(oa.inverse)!==Boolean(na.inverse))result+=na.inverse?"\x1B[7m":"\x1B[27m";if(Boolean(oa.strikethrough)!==Boolean(na.strikethrough))result+=na.strikethrough?"\x1B[9m":"\x1B[29m";if(!colorEquals(oldStyle.fg,newStyle.fg))if(newStyle.fg===null)result+="\x1B[39m";else result+=`\x1B[${fgColorCode(newStyle.fg)}m`;if(!colorEquals(oldStyle.bg,newStyle.bg))if(newStyle.bg===null)result+="\x1B[49m";else result+=`\x1B[${bgColorCode(newStyle.bg)}m`;if(!colorEquals(oldStyle.underlineColor,newStyle.underlineColor))if(newStyle.underlineColor===null||newStyle.underlineColor===void 0)result+="\x1B[59m";else if(typeof newStyle.underlineColor==="number")result+=`\x1B[58;5;${newStyle.underlineColor}m`;else result+=`\x1B[58;2;${newStyle.underlineColor.r};${newStyle.underlineColor.g};${newStyle.underlineColor.b}m`;return result}function styleResetCodes(style2){let result="";if(style2.attrs.underline||style2.attrs.underlineStyle)result+="\x1B[24m";if(style2.attrs.bold||style2.attrs.dim)result+="\x1B[22m";if(style2.attrs.italic)result+="\x1B[23m";if(style2.attrs.strikethrough)result+="\x1B[29m";if(style2.attrs.inverse)result+="\x1B[27m";if(style2.bg!==null&&!isDefaultBg(style2.bg))result+="\x1B[49m";if(style2.fg!==null)result+="\x1B[39m";if(style2.underlineColor!==null&&style2.underlineColor!==void 0)result+="\x1B[59m";return result}function trimTrailingWhitespacePreservingAnsi(str){let lastContentIndex=-1,i=0;while(i<str.length){if(str[i]==="\x1B"){if(str[i+1]==="]"){let end2=-1;for(let j=i+2;j<str.length;j++){if(str[j]==="\x07"){end2=j;break}if(str[j]==="\x1B"&&str[j+1]==="\\"){end2=j+1;break}}if(end2!==-1){lastContentIndex=end2,i=end2+1;continue}}let end=str.indexOf("m",i);if(end!==-1){lastContentIndex=end,i=end+1;continue}}if(str[i]!==" "&&str[i]!=="\t")lastContentIndex=i;i++}return str.slice(0,lastContentIndex+1)}function ansi256ToRgb(idx){if(idx<16){let table=[[0,0,0],[128,0,0],[0,128,0],[128,128,0],[0,0,128],[128,0,128],[0,128,128],[192,192,192],[128,128,128],[255,0,0],[0,255,0],[255,255,0],[0,0,255],[255,0,255],[0,255,255],[255,255,255]],[r,g,b]=table[idx];return{r,g,b}}if(idx<232){let i=idx-16,r=Math.floor(i/36),g=Math.floor(i%36/6),b=i%6;return{r:r?r*40+55:0,g:g?g*40+55:0,b:b?b*40+55:0}}let v=(idx-232)*10+8;return{r:v,g:v,b:v}}function resolveColor(color){if(color===null)return null;if(typeof color==="number")return ansi256ToRgb(color);if(color.r===-1)return null;return color}function cellToFrameCell(c){let ulStyle=c.attrs.underlineStyle??(c.attrs.underline?"single":!1);return{char:c.char,fg:resolveColor(c.fg),bg:resolveColor(c.bg),bold:c.attrs.bold??!1,dim:c.attrs.dim??!1,italic:c.attrs.italic??!1,underline:ulStyle,underlineColor:resolveColor(c.underlineColor??null),strikethrough:c.attrs.strikethrough??!1,inverse:c.attrs.inverse??!1,blink:c.attrs.blink??!1,hidden:c.attrs.hidden??!1,wide:c.wide,continuation:c.continuation,hyperlink:c.hyperlink??null}}function createTextFrame(buffer){let{width,height}=buffer,
|
|
9
|
-
`);return _lines},cell(col,row){if(col<0||col>=width||row<0||row>=height)return EMPTY_FRAME_CELL;return cellToFrameCell(cellData[row*width+col])},containsText(text){return frame.text.includes(text)}};return frame}var DEFAULT_BG,ATTR_BOLD=65536,ATTR_DIM=131072,ATTR_ITALIC=262144,ATTR_BLINK=524288,ATTR_INVERSE=1048576,ATTR_HIDDEN=2097152,ATTR_STRIKETHROUGH=4194304,UNDERLINE_STYLE_SHIFT=24,UNDERLINE_STYLE_MASK,WIDE_FLAG=134217728,CONTINUATION_FLAG=268435456,TRUE_COLOR_FG_FLAG=536870912,TRUE_COLOR_BG_FLAG=1073741824,SELECTABLE_FLAG=2147483648,VISIBLE_SPACE_ATTR_MASK,EMPTY_CELL,EMPTY_ATTRS,XTERM_256_PALETTE,EMPTY_FRAME_CELL;var init_buffer=__esm(()=>{init_sgr_codes();DEFAULT_BG=Object.freeze({r:-1,g:-1,b:-1});UNDERLINE_STYLE_MASK=7<<UNDERLINE_STYLE_SHIFT,VISIBLE_SPACE_ATTR_MASK=ATTR_INVERSE|ATTR_STRIKETHROUGH|UNDERLINE_STYLE_MASK,EMPTY_CELL={char:" ",fg:null,bg:null,underlineColor:null,attrs:{},wide:!1,continuation:!1,hyperlink:void 0},EMPTY_ATTRS=Object.freeze({});XTERM_256_PALETTE=(()=>{let palette=Array(256),standard=["#000000","#cd0000","#00cd00","#cdcd00","#0000ee","#cd00cd","#00cdcd","#e5e5e5"],bright=["#7f7f7f","#ff0000","#00ff00","#ffff00","#5c5cff","#ff00ff","#00ffff","#ffffff"];for(let i=0;i<8;i++)palette[i]=standard[i],palette[i+8]=bright[i];let cubeValues=[0,95,135,175,215,255];for(let i=0;i<216;i++){let r=cubeValues[Math.floor(i/36)],g=cubeValues[Math.floor(i%36/6)],b=cubeValues[i%6];palette[16+i]="#"+r.toString(16).padStart(2,"0")+g.toString(16).padStart(2,"0")+b.toString(16).padStart(2,"0")}for(let i=0;i<24;i++){let hex=(8+i*10).toString(16).padStart(2,"0");palette[232+i]="#"+hex+hex+hex}return palette})();EMPTY_FRAME_CELL=Object.freeze({char:" ",fg:null,bg:null,bold:!1,dim:!1,italic:!1,underline:!1,underlineColor:null,strikethrough:!1,inverse:!1,blink:!1,hidden:!1,wide:!1,continuation:!1,hyperlink:null})});function textSized(text,width){return`\x1B]66;w=${width};${text}\x07`}function isPrivateUseArea(cp){return cp>=57344&&cp<=63743||cp>=983040&&cp<=1048573||cp>=1048576&&cp<=1114109}function isTextSizingLikelySupported(){let termProgram=process.env.TERM_PROGRAM?.toLowerCase()??"",termVersion=process.env.TERM_PROGRAM_VERSION??"";if(termProgram==="kitty"){let parts=termVersion.split("."),major=Number(parts[0])||0,minor=Number(parts[1])||0;if(major>0||major===0&&minor>=40)return!0}return!1}function getTerminalFingerprint(){let program=process.env.TERM_PROGRAM??"unknown",version=process.env.TERM_PROGRAM_VERSION??"unknown";return`${program}@${version}`}function getCachedProbeResult(){return probeCache.get(getTerminalFingerprint())}function setCachedProbeResult(result){probeCache.set(getTerminalFingerprint(),result)}async function detectTextSizingSupport(write,read,timeout=1000){let cached=getCachedProbeResult();if(cached!==void 0)return cached;let testSequence="\r"+textSized(" ",2)+"\x1B[6n\r\x1B[K";write(testSequence);try{let match=(await Promise.race([read(),new Promise((_resolve,reject)=>setTimeout(()=>reject(Error("timeout")),timeout))])).match(/\x1b\[(\d+);(\d+)R/);if(match){if(Number(match[2])===3){let result2={supported:!0,widthOnly:!1};return setCachedProbeResult(result2),result2}}let result={supported:!1,widthOnly:!1};return setCachedProbeResult(result),result}catch{let result={supported:!1,widthOnly:!1};return setCachedProbeResult(result),result}}var probeCache;var init_text_sizing=__esm(()=>{probeCache=new Map});import sliceAnsi from"slice-ansi";import stringWidth2 from"string-width";class DisplayWidthCache{cache=new Map;maxSize;constructor(maxSize=1000){this.maxSize=maxSize}get(text){let cached=this.cache.get(text);if(cached!==void 0)this.cache.delete(text),this.cache.set(text,cached);return cached}set(text,width){if(this.cache.size>=this.maxSize){let firstKey=this.cache.keys().next().value;if(firstKey!==void 0)this.cache.delete(firstKey)}this.cache.set(text,width)}clear(){this.cache.clear()}}function runWithMeasurer(measurer,fn){let prev=_scopedMeasurer;_scopedMeasurer=measurer;try{return fn()}finally{_scopedMeasurer=prev}}function setTextEmojiWide(_wide){}function setTextSizingEnabled(_enabled){}function isTextSizingEnabled(){if(_scopedMeasurer)return _scopedMeasurer.textSizingEnabled;return DEFAULT_TEXT_SIZING_ENABLED}function stripOsc8ForSlice(text){return text.replace(OSC8_RE,"")}function createWidthMeasurer(caps={}){let textEmojiWide=caps.textEmojiWide??!0,textSizingEnabled=caps.textSizingEnabled??!1,cache=new DisplayWidthCache(1e4);function measuredGraphemeWidth(grapheme){let width=stringWidth2(grapheme);if(width!==1)return width;if(textEmojiWide&&isTextPresentationEmoji(grapheme))return 2;if(textSizingEnabled){let cp=grapheme.codePointAt(0);if(cp!==void 0&&isPrivateUseArea(cp))return 2}return width}function measuredDisplayWidth(text){let cached=cache.get(text);if(cached!==void 0)return cached;let width;if(!(MAY_CONTAIN_TEXT_EMOJI.test(text)||textSizingEnabled&&MAY_CONTAIN_PUA.test(text)))width=stringWidth2(text);else{let stripped=stripAnsi2(text);width=0;for(let grapheme of splitGraphemes(stripped))width+=measuredGraphemeWidth(grapheme)}return cache.set(text,width),width}function measuredDisplayWidthAnsi(text){return measuredDisplayWidth(stripAnsi2(text))}function measuredSliceByWidth(text,maxWidth){if(hasAnsi(text))return sliceAnsi(stripOsc8ForSlice(text),0,maxWidth);let width=0,result="",graphemes=splitGraphemes(text);for(let grapheme of graphemes){let gWidth=measuredGraphemeWidth(grapheme);if(width+gWidth>maxWidth)break;result+=grapheme,width+=gWidth}return result}function measuredSliceByWidthFromEnd(text,maxWidth){if(measuredDisplayWidthAnsi(text)<=maxWidth)return text;if(hasAnsi(text)){let cleaned=stripOsc8ForSlice(text),startIndex=measuredDisplayWidthAnsi(cleaned)-maxWidth;return sliceAnsi(cleaned,startIndex)}let graphemes=splitGraphemes(text),width=0,startIdx=graphemes.length;for(let i=graphemes.length-1;i>=0;i--){let gWidth=measuredGraphemeWidth(graphemes[i]);if(width+gWidth>maxWidth)break;width+=gWidth,startIdx=i}return graphemes.slice(startIdx).join("")}function measuredWrapText(text,width,trim,hard){return wrapTextWithMeasurer(text,width,measurer,trim??!1,hard??!1)}let measurer={textEmojiWide,textSizingEnabled,lineHeight:1,displayWidth:measuredDisplayWidth,displayWidthAnsi:measuredDisplayWidthAnsi,graphemeWidth:measuredGraphemeWidth,wrapText:measuredWrapText,sliceByWidth:measuredSliceByWidth,sliceByWidthFromEnd:measuredSliceByWidthFromEnd};return measurer}function getDefaultMeasurer(){if(!_defaultMeasurer)_defaultMeasurer=createWidthMeasurer();return _defaultMeasurer}function splitGraphemes(text){return[...segmenter.segment(text)].map((s)=>s.segment)}function graphemeCount(text){let count=0;for(let _ of segmenter.segment(text))count++;return count}function isTextPresentationEmoji(grapheme){let cp=grapheme.codePointAt(0);if(cp===void 0)return!1;let cached=textPresentationEmojiCache.get(cp);if(cached!==void 0)return cached;if(String.fromCodePoint(cp).length!==grapheme.length)return textPresentationEmojiCache.set(cp,!1),!1;let isExtPict=TEXT_PRESENTATION_EMOJI_REGEX.test(grapheme),isEmojiPres=EMOJI_PRESENTATION_REGEX.test(grapheme);if(!isExtPict||isEmojiPres)return textPresentationEmojiCache.set(cp,!1),!1;let withVs16=grapheme+"️",result=RGI_EMOJI_REGEX.test(withVs16);return textPresentationEmojiCache.set(cp,result),result}function ensureEmojiPresentation(char){if(char.includes("️"))return char;if(isTextPresentationEmoji(char))return char+"️";return char}function displayWidth(text){if(_scopedMeasurer)return _scopedMeasurer.displayWidth(text);let cached=displayWidthCache.get(text);if(cached!==void 0)return cached;let width;if(!(MAY_CONTAIN_TEXT_EMOJI.test(text)||DEFAULT_TEXT_SIZING_ENABLED&&MAY_CONTAIN_PUA.test(text)))width=stringWidth2(text);else{let stripped=stripAnsi2(text);width=0;for(let grapheme of splitGraphemes(stripped))width+=graphemeWidth(grapheme)}return displayWidthCache.set(text,width),width}function graphemeWidth(grapheme){if(_scopedMeasurer)return _scopedMeasurer.graphemeWidth(grapheme);let width=stringWidth2(grapheme);if(width!==1)return width;if(DEFAULT_TEXT_EMOJI_WIDE&&isTextPresentationEmoji(grapheme))return 2;if(DEFAULT_TEXT_SIZING_ENABLED){let cp=grapheme.codePointAt(0);if(cp!==void 0&&isPrivateUseArea(cp))return 2}return width}function isWideGrapheme(grapheme){return graphemeWidth(grapheme)===2}function isZeroWidthGrapheme(grapheme){return stringWidth2(grapheme)===0}function truncateText(text,maxWidth,ellipsis="…"){if(displayWidth(text)<=maxWidth)return text;let ellipsisWidth=displayWidth(ellipsis),targetWidth=maxWidth-ellipsisWidth;if(targetWidth<=0)return maxWidth>0?ellipsis.slice(0,maxWidth):"";let graphemes=hasAnsi(text)?splitGraphemesAnsiAware(text):splitGraphemes(text),result="",currentWidth=0;for(let grapheme of graphemes){let gWidth=graphemeWidth(grapheme);if(currentWidth+gWidth>targetWidth)break;result+=grapheme,currentWidth+=gWidth}return result+ellipsis}function padText(text,width,align="left",padChar=" "){let textWidth=displayWidth(text),padWidth=width-textWidth;if(padWidth<=0)return text;let padCharWidth=displayWidth(padChar);if(padCharWidth===0)return text;let padCount=Math.floor(padWidth/padCharWidth);switch(align){case"left":return text+padChar.repeat(padCount);case"right":return padChar.repeat(padCount)+text;case"center":{let leftPad=Math.floor(padCount/2),rightPad=padCount-leftPad;return padChar.repeat(leftPad)+text+padChar.repeat(rightPad)}}}function constrainText(text,width,maxLines,pad=!1,ellipsis="…"){let allLines=wrapText(text,width),truncated=allLines.length>maxLines,lines=allLines.slice(0,maxLines);if(truncated&&lines.length>0){let lastIdx=lines.length-1,lastLine=lines[lastIdx];if(lastLine){let ellipsisLen=displayWidth(ellipsis);if(displayWidth(lastLine)+ellipsisLen<=width)lines[lastIdx]=lastLine+ellipsis;else lines[lastIdx]=truncateText(lastLine,width,ellipsis)}}if(pad)lines=lines.map((line)=>padText(line,width));return{lines,truncated}}function isWordBoundary(grapheme){return grapheme===" "||grapheme==="-"||grapheme==="\t"}function isBreakBeforeOperatorWith(graphemes,spaceIndex,gWidthFn){let j=spaceIndex+1;while(j<graphemes.length&&gWidthFn(graphemes[j])===0)j++;if(j>=graphemes.length)return!1;let nextChar=graphemes[j];if(gWidthFn(nextChar)!==1)return!1;if(/^[a-zA-Z0-9\s]$/.test(nextChar))return!1;let k=j+1;while(k<graphemes.length&&gWidthFn(graphemes[k])===0)k++;if(k>=graphemes.length)return!1;return graphemes[k]===" "}function canBreakAnywhere(grapheme){return isCJK(grapheme)}function splitGraphemesAnsiAware(text){if(!hasAnsi(text))return splitGraphemes(text);let result=[],pos=0;while(pos<text.length){if(text[pos]==="\x1B"){let remaining=text.slice(pos),csi=remaining.match(ANSI_CSI_RE);if(csi){result.push(csi[0]),pos+=csi[0].length;continue}let osc=remaining.match(ANSI_OSC_RE);if(osc){result.push(osc[0]),pos+=osc[0].length;continue}let single=remaining.match(ANSI_SINGLE_RE);if(single){result.push(single[0]),pos+=single[0].length;continue}}let nextEsc=text.indexOf("\x1B",pos+1),chunk=nextEsc===-1?text.slice(pos):text.slice(pos,nextEsc);for(let g of splitGraphemes(chunk))result.push(g);pos+=chunk.length}return result}function wrapText(text,width,preserveNewlines=!0,trim=!1){if(_scopedMeasurer?.wrapText)return _scopedMeasurer.wrapText(text,width,trim);return wrapTextWithMeasurer(text,width,_scopedMeasurer??void 0,trim,!1,preserveNewlines)}function getActiveLineHeight(){return _scopedMeasurer?.lineHeight??1}function wrapTextWithMeasurer(text,width,measurer,trim=!1,_hard=!1,preserveNewlines=!0){if(width<=0)return[];let gWidthFn=measurer?measurer.graphemeWidth.bind(measurer):graphemeWidth,lines=[],inputLines=preserveNewlines?text.split(`
|
|
10
|
+
`);if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))result+=styleResetCodes(currentStyle);if(trimEmptyLines)result=result.replace(/\n+$/,"");return result}function decodeHyperlinkFormat(encoded){if(encoded.charCodeAt(0)===1){let sepIdx=encoded.indexOf("\x02");if(sepIdx>0){let tag=encoded.slice(1,sepIdx),url=encoded.slice(sepIdx+1);if(tag==="c1b")return{url,oscIntro:"",oscClose:"",closeIntro:"",closeTerminator:"\x07"};if(tag==="c1s")return{url,oscIntro:"",oscClose:"",closeIntro:"",closeTerminator:"\x1B\\"};if(tag==="e7b")return{url,oscIntro:"\x1B]",oscClose:"\x1B]",closeIntro:"\x1B]",closeTerminator:"\x07"}}}return{url:encoded,oscIntro:"\x1B]",oscClose:"\x1B]",closeIntro:"\x1B]",closeTerminator:"\x1B\\"}}function emitHyperlinkOpen(encoded){let fmt=decodeHyperlinkFormat(encoded);return`${fmt.oscIntro}8;;${fmt.url}${fmt.closeTerminator}`}function emitHyperlinkClose(encoded){let fmt=decodeHyperlinkFormat(encoded);return`${fmt.closeIntro}8;;${fmt.closeTerminator}`}function hasActiveAttrs(attrs){return!!(attrs.bold||attrs.dim||attrs.italic||attrs.underline||attrs.underlineStyle||attrs.blink||attrs.inverse||attrs.hidden||attrs.strikethrough)}function styleToAnsiCodes(style2){let{fg,bg}=style2,result="";if(fg!==null)result+=`\x1B[${fgColorCode(fg)}m`;if(bg!==null&&!isDefaultBg(bg))result+=`\x1B[${bgColorCode(bg)}m`;if(style2.attrs.bold)result+="\x1B[1m";if(style2.attrs.dim)result+="\x1B[2m";if(style2.attrs.italic)result+="\x1B[3m";let underlineStyle=style2.attrs.underlineStyle;if(typeof underlineStyle==="string"){let subparam={single:1,double:2,curly:3,dotted:4,dashed:5}[underlineStyle];if(subparam!==void 0&&subparam!==0)result+=`\x1B[4:${subparam}m`}else if(style2.attrs.underline)result+="\x1B[4m";if(style2.attrs.inverse)result+="\x1B[7m";if(style2.attrs.strikethrough)result+="\x1B[9m";if(style2.underlineColor!==null&&style2.underlineColor!==void 0)if(typeof style2.underlineColor==="number")result+=`\x1B[58;5;${style2.underlineColor}m`;else result+=`\x1B[58;2;${style2.underlineColor.r};${style2.underlineColor.g};${style2.underlineColor.b}m`;return result}function styleTransitionCodes(oldStyle,newStyle){if(!oldStyle)return styleToAnsiCodes(newStyle);if(styleEquals(oldStyle,newStyle))return"";let result="",oa=oldStyle.attrs,na=newStyle.attrs,boldChanged=Boolean(oa.bold)!==Boolean(na.bold),dimChanged=Boolean(oa.dim)!==Boolean(na.dim);if(boldChanged||dimChanged){let boldOff=boldChanged&&!na.bold,dimOff=dimChanged&&!na.dim;if(boldOff||dimOff){if(result+="\x1B[22m",na.bold)result+="\x1B[1m";if(na.dim)result+="\x1B[2m"}else{if(boldChanged&&na.bold)result+="\x1B[1m";if(dimChanged&&na.dim)result+="\x1B[2m"}}if(Boolean(oa.italic)!==Boolean(na.italic))result+=na.italic?"\x1B[3m":"\x1B[23m";let oldUl=Boolean(oa.underline),newUl=Boolean(na.underline),oldUlStyle=oa.underlineStyle??!1,newUlStyle=na.underlineStyle??!1;if(oldUl!==newUl||oldUlStyle!==newUlStyle)if(typeof na.underlineStyle==="string"){let sub={single:1,double:2,curly:3,dotted:4,dashed:5}[na.underlineStyle];if(sub!==void 0&&sub!==0)result+=`\x1B[4:${sub}m`;else if(newUl)result+="\x1B[4m";else result+="\x1B[24m"}else if(newUl)result+="\x1B[4m";else result+="\x1B[24m";if(Boolean(oa.inverse)!==Boolean(na.inverse))result+=na.inverse?"\x1B[7m":"\x1B[27m";if(Boolean(oa.strikethrough)!==Boolean(na.strikethrough))result+=na.strikethrough?"\x1B[9m":"\x1B[29m";if(!colorEquals(oldStyle.fg,newStyle.fg))if(newStyle.fg===null)result+="\x1B[39m";else result+=`\x1B[${fgColorCode(newStyle.fg)}m`;if(!colorEquals(oldStyle.bg,newStyle.bg))if(newStyle.bg===null)result+="\x1B[49m";else result+=`\x1B[${bgColorCode(newStyle.bg)}m`;if(!colorEquals(oldStyle.underlineColor,newStyle.underlineColor))if(newStyle.underlineColor===null||newStyle.underlineColor===void 0)result+="\x1B[59m";else if(typeof newStyle.underlineColor==="number")result+=`\x1B[58;5;${newStyle.underlineColor}m`;else result+=`\x1B[58;2;${newStyle.underlineColor.r};${newStyle.underlineColor.g};${newStyle.underlineColor.b}m`;return result}function styleResetCodes(style2){let result="";if(style2.attrs.underline||style2.attrs.underlineStyle)result+="\x1B[24m";if(style2.attrs.bold||style2.attrs.dim)result+="\x1B[22m";if(style2.attrs.italic)result+="\x1B[23m";if(style2.attrs.strikethrough)result+="\x1B[29m";if(style2.attrs.inverse)result+="\x1B[27m";if(style2.bg!==null&&!isDefaultBg(style2.bg))result+="\x1B[49m";if(style2.fg!==null)result+="\x1B[39m";if(style2.underlineColor!==null&&style2.underlineColor!==void 0)result+="\x1B[59m";return result}function trimTrailingWhitespacePreservingAnsi(str){let lastContentIndex=-1,i=0;while(i<str.length){if(str[i]==="\x1B"){if(str[i+1]==="]"){let end2=-1;for(let j=i+2;j<str.length;j++){if(str[j]==="\x07"){end2=j;break}if(str[j]==="\x1B"&&str[j+1]==="\\"){end2=j+1;break}}if(end2!==-1){lastContentIndex=end2,i=end2+1;continue}}let end=str.indexOf("m",i);if(end!==-1){lastContentIndex=end,i=end+1;continue}}if(str[i]!==" "&&str[i]!=="\t")lastContentIndex=i;i++}return str.slice(0,lastContentIndex+1)}function ansi256ToRgb(idx){if(idx<16){let table=[[0,0,0],[128,0,0],[0,128,0],[128,128,0],[0,0,128],[128,0,128],[0,128,128],[192,192,192],[128,128,128],[255,0,0],[0,255,0],[255,255,0],[0,0,255],[255,0,255],[0,255,255],[255,255,255]],[r,g,b]=table[idx];return{r,g,b}}if(idx<232){let i=idx-16,r=Math.floor(i/36),g=Math.floor(i%36/6),b=i%6;return{r:r?r*40+55:0,g:g?g*40+55:0,b:b?b*40+55:0}}let v=(idx-232)*10+8;return{r:v,g:v,b:v}}function resolveColor(color){if(color===null)return null;if(typeof color==="number")return ansi256ToRgb(color);if(color.r===-1)return null;return color}function cellToFrameCell(c){let ulStyle=c.attrs.underlineStyle??(c.attrs.underline?"single":!1);return{char:c.char,fg:resolveColor(c.fg),bg:resolveColor(c.bg),bold:c.attrs.bold??!1,dim:c.attrs.dim??!1,italic:c.attrs.italic??!1,underline:ulStyle,underlineColor:resolveColor(c.underlineColor??null),strikethrough:c.attrs.strikethrough??!1,inverse:c.attrs.inverse??!1,blink:c.attrs.blink??!1,hidden:c.attrs.hidden??!1,wide:c.wide,continuation:c.continuation,hyperlink:c.hyperlink??null}}function createTextFrame(buffer){let{width,height}=buffer,_snapshot;function getSnapshot(){if(!_snapshot)_snapshot=buffer.clone();return _snapshot}let _cellData;function getCellData(){if(!_cellData){let snap=getSnapshot();_cellData=Array(width*height);for(let y=0;y<height;y++)for(let x=0;x<width;x++)_cellData[y*width+x]=snap.getCell(x,y)}return _cellData}let _text,_ansi,_lines,frame={width,height,get text(){if(_text===void 0)_text=bufferToText(getSnapshot());return _text},get ansi(){if(_ansi===void 0)_ansi=bufferToStyledText(getSnapshot());return _ansi},get lines(){if(_lines===void 0)_lines=frame.text.split(`
|
|
11
|
+
`);return _lines},cell(col,row){if(col<0||col>=width||row<0||row>=height)return EMPTY_FRAME_CELL;return cellToFrameCell(getCellData()[row*width+col])},containsText(text){return frame.text.includes(text)}};return frame}var DEFAULT_BG,ATTR_BOLD=65536,ATTR_DIM=131072,ATTR_ITALIC=262144,ATTR_BLINK=524288,ATTR_INVERSE=1048576,ATTR_HIDDEN=2097152,ATTR_STRIKETHROUGH=4194304,UNDERLINE_STYLE_SHIFT=24,UNDERLINE_STYLE_MASK,WIDE_FLAG=134217728,CONTINUATION_FLAG=268435456,TRUE_COLOR_FG_FLAG=536870912,TRUE_COLOR_BG_FLAG=1073741824,SELECTABLE_FLAG=2147483648,VISIBLE_SPACE_ATTR_MASK,EMPTY_CELL,EMPTY_ATTRS,XTERM_256_PALETTE,EMPTY_FRAME_CELL;var init_buffer=__esm(()=>{init_sgr_codes();DEFAULT_BG=Object.freeze({r:-1,g:-1,b:-1});UNDERLINE_STYLE_MASK=7<<UNDERLINE_STYLE_SHIFT,VISIBLE_SPACE_ATTR_MASK=ATTR_INVERSE|ATTR_STRIKETHROUGH|UNDERLINE_STYLE_MASK,EMPTY_CELL={char:" ",fg:null,bg:null,underlineColor:null,attrs:{},wide:!1,continuation:!1,hyperlink:void 0},EMPTY_ATTRS=Object.freeze({});XTERM_256_PALETTE=(()=>{let palette=Array(256),standard=["#000000","#cd0000","#00cd00","#cdcd00","#0000ee","#cd00cd","#00cdcd","#e5e5e5"],bright=["#7f7f7f","#ff0000","#00ff00","#ffff00","#5c5cff","#ff00ff","#00ffff","#ffffff"];for(let i=0;i<8;i++)palette[i]=standard[i],palette[i+8]=bright[i];let cubeValues=[0,95,135,175,215,255];for(let i=0;i<216;i++){let r=cubeValues[Math.floor(i/36)],g=cubeValues[Math.floor(i%36/6)],b=cubeValues[i%6];palette[16+i]="#"+r.toString(16).padStart(2,"0")+g.toString(16).padStart(2,"0")+b.toString(16).padStart(2,"0")}for(let i=0;i<24;i++){let hex=(8+i*10).toString(16).padStart(2,"0");palette[232+i]="#"+hex+hex+hex}return palette})();EMPTY_FRAME_CELL=Object.freeze({char:" ",fg:null,bg:null,bold:!1,dim:!1,italic:!1,underline:!1,underlineColor:null,strikethrough:!1,inverse:!1,blink:!1,hidden:!1,wide:!1,continuation:!1,hyperlink:null})});function textSized(text,width){return`\x1B]66;w=${width};${text}\x07`}function isPrivateUseArea(cp){return cp>=57344&&cp<=63743||cp>=983040&&cp<=1048573||cp>=1048576&&cp<=1114109}function isTextSizingLikelySupported(){let termProgram=process.env.TERM_PROGRAM?.toLowerCase()??"",termVersion=process.env.TERM_PROGRAM_VERSION??"";if(termProgram==="kitty"){let parts=termVersion.split("."),major=Number(parts[0])||0,minor=Number(parts[1])||0;if(major>0||major===0&&minor>=40)return!0}return!1}function getTerminalFingerprint(){let program=process.env.TERM_PROGRAM??"unknown",version=process.env.TERM_PROGRAM_VERSION??"unknown";return`${program}@${version}`}function getCachedProbeResult(){return probeCache.get(getTerminalFingerprint())}function setCachedProbeResult(result){probeCache.set(getTerminalFingerprint(),result)}async function detectTextSizingSupport(write,read,timeout=1000){let cached=getCachedProbeResult();if(cached!==void 0)return cached;let testSequence="\r"+textSized(" ",2)+"\x1B[6n\r\x1B[K";write(testSequence);try{let match=(await Promise.race([read(),new Promise((_resolve,reject)=>setTimeout(()=>reject(Error("timeout")),timeout))])).match(/\x1b\[(\d+);(\d+)R/);if(match){if(Number(match[2])===3){let result2={supported:!0,widthOnly:!1};return setCachedProbeResult(result2),result2}}let result={supported:!1,widthOnly:!1};return setCachedProbeResult(result),result}catch{let result={supported:!1,widthOnly:!1};return setCachedProbeResult(result),result}}var probeCache;var init_text_sizing=__esm(()=>{probeCache=new Map});import sliceAnsi from"slice-ansi";import stringWidth2 from"string-width";class DisplayWidthCache{cache=new Map;maxSize;constructor(maxSize=1000){this.maxSize=maxSize}get(text){let cached=this.cache.get(text);if(cached!==void 0)this.cache.delete(text),this.cache.set(text,cached);return cached}set(text,width){if(this.cache.size>=this.maxSize){let firstKey=this.cache.keys().next().value;if(firstKey!==void 0)this.cache.delete(firstKey)}this.cache.set(text,width)}clear(){this.cache.clear()}}function runWithMeasurer(measurer,fn){let prev=_scopedMeasurer;_scopedMeasurer=measurer;try{return fn()}finally{_scopedMeasurer=prev}}function setTextEmojiWide(_wide){}function setTextSizingEnabled(_enabled){}function isTextSizingEnabled(){if(_scopedMeasurer)return _scopedMeasurer.textSizingEnabled;return DEFAULT_TEXT_SIZING_ENABLED}function stripOsc8ForSlice(text){return text.replace(OSC8_RE,"")}function createWidthMeasurer(caps={}){let textEmojiWide=caps.textEmojiWide??!0,textSizingEnabled=caps.textSizingEnabled??!1,cache=new DisplayWidthCache(1e4);function measuredGraphemeWidth(grapheme){let width=stringWidth2(grapheme);if(width!==1)return width;if(textEmojiWide&&isTextPresentationEmoji(grapheme))return 2;if(textSizingEnabled){let cp=grapheme.codePointAt(0);if(cp!==void 0&&isPrivateUseArea(cp))return 2}return width}function measuredDisplayWidth(text){let cached=cache.get(text);if(cached!==void 0)return cached;let width;if(!(MAY_CONTAIN_TEXT_EMOJI.test(text)||textSizingEnabled&&MAY_CONTAIN_PUA.test(text)))width=stringWidth2(text);else{let stripped=stripAnsi2(text);width=0;for(let grapheme of splitGraphemes(stripped))width+=measuredGraphemeWidth(grapheme)}return cache.set(text,width),width}function measuredDisplayWidthAnsi(text){return measuredDisplayWidth(stripAnsi2(text))}function measuredSliceByWidth(text,maxWidth){if(hasAnsi(text))return sliceAnsi(stripOsc8ForSlice(text),0,maxWidth);let width=0,result="",graphemes=splitGraphemes(text);for(let grapheme of graphemes){let gWidth=measuredGraphemeWidth(grapheme);if(width+gWidth>maxWidth)break;result+=grapheme,width+=gWidth}return result}function measuredSliceByWidthFromEnd(text,maxWidth){if(measuredDisplayWidthAnsi(text)<=maxWidth)return text;if(hasAnsi(text)){let cleaned=stripOsc8ForSlice(text),startIndex=measuredDisplayWidthAnsi(cleaned)-maxWidth;return sliceAnsi(cleaned,startIndex)}let graphemes=splitGraphemes(text),width=0,startIdx=graphemes.length;for(let i=graphemes.length-1;i>=0;i--){let gWidth=measuredGraphemeWidth(graphemes[i]);if(width+gWidth>maxWidth)break;width+=gWidth,startIdx=i}return graphemes.slice(startIdx).join("")}function measuredWrapText(text,width,trim,hard){return wrapTextWithMeasurer(text,width,measurer,trim??!1,hard??!1)}let measurer={textEmojiWide,textSizingEnabled,lineHeight:1,displayWidth:measuredDisplayWidth,displayWidthAnsi:measuredDisplayWidthAnsi,graphemeWidth:measuredGraphemeWidth,wrapText:measuredWrapText,sliceByWidth:measuredSliceByWidth,sliceByWidthFromEnd:measuredSliceByWidthFromEnd};return measurer}function getDefaultMeasurer(){if(!_defaultMeasurer)_defaultMeasurer=createWidthMeasurer();return _defaultMeasurer}function splitGraphemes(text){return[...segmenter.segment(text)].map((s)=>s.segment)}function graphemeCount(text){let count=0;for(let _ of segmenter.segment(text))count++;return count}function isTextPresentationEmoji(grapheme){let cp=grapheme.codePointAt(0);if(cp===void 0)return!1;let cached=textPresentationEmojiCache.get(cp);if(cached!==void 0)return cached;if(String.fromCodePoint(cp).length!==grapheme.length)return textPresentationEmojiCache.set(cp,!1),!1;let isExtPict=TEXT_PRESENTATION_EMOJI_REGEX.test(grapheme),isEmojiPres=EMOJI_PRESENTATION_REGEX.test(grapheme);if(!isExtPict||isEmojiPres)return textPresentationEmojiCache.set(cp,!1),!1;let withVs16=grapheme+"️",result=RGI_EMOJI_REGEX.test(withVs16);return textPresentationEmojiCache.set(cp,result),result}function ensureEmojiPresentation(char){if(char.includes("️"))return char;if(isTextPresentationEmoji(char))return char+"️";return char}function displayWidth(text){if(_scopedMeasurer)return _scopedMeasurer.displayWidth(text);let cached=displayWidthCache.get(text);if(cached!==void 0)return cached;let width;if(!(MAY_CONTAIN_TEXT_EMOJI.test(text)||DEFAULT_TEXT_SIZING_ENABLED&&MAY_CONTAIN_PUA.test(text)))width=stringWidth2(text);else{let stripped=stripAnsi2(text);width=0;for(let grapheme of splitGraphemes(stripped))width+=graphemeWidth(grapheme)}return displayWidthCache.set(text,width),width}function graphemeWidth(grapheme){if(_scopedMeasurer)return _scopedMeasurer.graphemeWidth(grapheme);let width=stringWidth2(grapheme);if(width!==1)return width;if(DEFAULT_TEXT_EMOJI_WIDE&&isTextPresentationEmoji(grapheme))return 2;if(DEFAULT_TEXT_SIZING_ENABLED){let cp=grapheme.codePointAt(0);if(cp!==void 0&&isPrivateUseArea(cp))return 2}return width}function isWideGrapheme(grapheme){return graphemeWidth(grapheme)===2}function isZeroWidthGrapheme(grapheme){return stringWidth2(grapheme)===0}function truncateText(text,maxWidth,ellipsis="…"){if(displayWidth(text)<=maxWidth)return text;let ellipsisWidth=displayWidth(ellipsis),targetWidth=maxWidth-ellipsisWidth;if(targetWidth<=0)return maxWidth>0?ellipsis.slice(0,maxWidth):"";let graphemes=hasAnsi(text)?splitGraphemesAnsiAware(text):splitGraphemes(text),result="",currentWidth=0;for(let grapheme of graphemes){let gWidth=graphemeWidth(grapheme);if(currentWidth+gWidth>targetWidth)break;result+=grapheme,currentWidth+=gWidth}return result+ellipsis}function padText(text,width,align="left",padChar=" "){let textWidth=displayWidth(text),padWidth=width-textWidth;if(padWidth<=0)return text;let padCharWidth=displayWidth(padChar);if(padCharWidth===0)return text;let padCount=Math.floor(padWidth/padCharWidth);switch(align){case"left":return text+padChar.repeat(padCount);case"right":return padChar.repeat(padCount)+text;case"center":{let leftPad=Math.floor(padCount/2),rightPad=padCount-leftPad;return padChar.repeat(leftPad)+text+padChar.repeat(rightPad)}}}function constrainText(text,width,maxLines,pad=!1,ellipsis="…"){let allLines=wrapText(text,width),truncated=allLines.length>maxLines,lines=allLines.slice(0,maxLines);if(truncated&&lines.length>0){let lastIdx=lines.length-1,lastLine=lines[lastIdx];if(lastLine){let ellipsisLen=displayWidth(ellipsis);if(displayWidth(lastLine)+ellipsisLen<=width)lines[lastIdx]=lastLine+ellipsis;else lines[lastIdx]=truncateText(lastLine,width,ellipsis)}}if(pad)lines=lines.map((line)=>padText(line,width));return{lines,truncated}}function isWordBoundary(grapheme){return grapheme===" "||grapheme==="-"||grapheme==="\t"}function isBreakBeforeOperatorWith(graphemes,spaceIndex,gWidthFn){let j=spaceIndex+1;while(j<graphemes.length&&gWidthFn(graphemes[j])===0)j++;if(j>=graphemes.length)return!1;let nextChar=graphemes[j];if(gWidthFn(nextChar)!==1)return!1;if(/^[a-zA-Z0-9\s]$/.test(nextChar))return!1;let k=j+1;while(k<graphemes.length&&gWidthFn(graphemes[k])===0)k++;if(k>=graphemes.length)return!1;return graphemes[k]===" "}function canBreakAnywhere(grapheme){return isCJK(grapheme)}function splitGraphemesAnsiAware(text){if(!hasAnsi(text))return splitGraphemes(text);let result=[],pos=0;while(pos<text.length){if(text[pos]==="\x1B"){let remaining=text.slice(pos),csi=remaining.match(ANSI_CSI_RE);if(csi){result.push(csi[0]),pos+=csi[0].length;continue}let osc=remaining.match(ANSI_OSC_RE);if(osc){result.push(osc[0]),pos+=osc[0].length;continue}let single=remaining.match(ANSI_SINGLE_RE);if(single){result.push(single[0]),pos+=single[0].length;continue}}let nextEsc=text.indexOf("\x1B",pos+1),chunk=nextEsc===-1?text.slice(pos):text.slice(pos,nextEsc);for(let g of splitGraphemes(chunk))result.push(g);pos+=chunk.length}return result}function wrapText(text,width,preserveNewlines=!0,trim=!1){if(_scopedMeasurer?.wrapText)return _scopedMeasurer.wrapText(text,width,trim);return wrapTextWithMeasurer(text,width,_scopedMeasurer??void 0,trim,!1,preserveNewlines)}function getActiveLineHeight(){return _scopedMeasurer?.lineHeight??1}function wrapTextWithMeasurer(text,width,measurer,trim=!1,_hard=!1,preserveNewlines=!0){if(width<=0)return[];let gWidthFn=measurer?measurer.graphemeWidth.bind(measurer):graphemeWidth,lines=[],inputLines=preserveNewlines?text.split(`
|
|
10
12
|
`):[text.replace(/\n/g," ")];for(let line of inputLines){if(line===""){lines.push("");continue}let graphemes=splitGraphemesAnsiAware(line),currentLine="",currentWidth=0,isFirstLineOfParagraph=!0,lastBreakIndex=-1,lastBreakWidth=0,lastBreakGraphemeIndex=-1;for(let i=0;i<graphemes.length;i++){let grapheme=graphemes[i],gWidth=gWidthFn(grapheme);if(gWidth===0){currentLine+=grapheme;continue}if(trim&&!isFirstLineOfParagraph&¤tWidth===0&&isWordBoundary(grapheme)&&grapheme!=="-")continue;if(isWordBoundary(grapheme)){if(currentWidth+gWidth<=width){if(currentLine+=grapheme,currentWidth+=gWidth,grapheme!==" "||!isBreakBeforeOperatorWith(graphemes,i,gWidthFn))lastBreakIndex=currentLine.length,lastBreakWidth=currentWidth,lastBreakGraphemeIndex=i+1;continue}if(currentLine){let lineToAdd=currentLine;if(trim)lineToAdd=lineToAdd.trimEnd();lines.push(lineToAdd),isFirstLineOfParagraph=!1}currentLine="",currentWidth=0,lastBreakIndex=-1,lastBreakWidth=0,lastBreakGraphemeIndex=-1;continue}else if(canBreakAnywhere(grapheme))lastBreakIndex=currentLine.length,lastBreakWidth=currentWidth,lastBreakGraphemeIndex=i;if(currentWidth+gWidth>width)if(lastBreakIndex>0){let lineToAdd=currentLine.slice(0,lastBreakIndex);if(trim)lineToAdd=lineToAdd.trimEnd();lines.push(lineToAdd),isFirstLineOfParagraph=!1,currentLine=currentLine.slice(lastBreakIndex),currentWidth=currentWidth-lastBreakWidth,i=lastBreakGraphemeIndex-1,currentLine="",currentWidth=0,lastBreakIndex=-1,lastBreakWidth=0,lastBreakGraphemeIndex=-1}else{if(currentLine){if(trim)currentLine=currentLine.trimEnd();lines.push(currentLine),isFirstLineOfParagraph=!1}currentLine=grapheme,currentWidth=gWidth,lastBreakIndex=-1,lastBreakWidth=0,lastBreakGraphemeIndex=-1}else currentLine+=grapheme,currentWidth+=gWidth}if(currentLine)lines.push(currentLine)}if(text.includes("\x1B]8;;"))fixOsc8AcrossWrappedLines(lines);return lines}function fixOsc8AcrossWrappedLines(lines){let activeHref=null;for(let i=0;i<lines.length;i++){let line=lines[i];if(activeHref!==null)line=`\x1B]8;;${activeHref}\x1B\\`+line;let lineHref=activeHref,osc8Matches=line.matchAll(/\x1b\]8;;([^\x07\x1b]*)(?:\x07|\x1b\\)/g);for(let m of osc8Matches)lineHref=m[1]===""?null:m[1];if(lineHref!==null)line+="\x1B]8;;\x1B\\";lines[i]=line,activeHref=lineHref}}function sliceByWidth(text,maxWidth){return(_scopedMeasurer??getDefaultMeasurer()).sliceByWidth(text,maxWidth)}function sliceByWidthRange(text,start,end){let graphemes=splitGraphemes(text),result="",currentCol=0,endCol=end??Number.POSITIVE_INFINITY;for(let grapheme of graphemes){let gWidth=graphemeWidth(grapheme);if(currentCol+gWidth<=start){currentCol+=gWidth;continue}if(currentCol>=endCol)break;result+=grapheme,currentCol+=gWidth}return result}function sliceByWidthFromEnd(text,maxWidth){return(_scopedMeasurer??getDefaultMeasurer()).sliceByWidthFromEnd(text,maxWidth)}function writeTextToBuffer(buffer,x,y,text,style2={fg:null,bg:null,attrs:{}}){let graphemes=splitGraphemes(text),col=x,combineCell=null;for(let grapheme of graphemes){let width=graphemeWidth(grapheme);if(width===0){if(col>0&&buffer.inBounds(col-1,y))combineCell??=createMutableCell(),buffer.readCellInto(col-1,y,combineCell),combineCell.char=combineCell.char+grapheme,buffer.setCell(col-1,y,combineCell)}else if(width===1){if(buffer.inBounds(col,y))buffer.setCell(col,y,{char:grapheme,fg:style2.fg,bg:style2.bg,attrs:style2.attrs,wide:!1,continuation:!1});col++}else if(width===2){let outputChar=ensureEmojiPresentation(grapheme);if(buffer.inBounds(col,y))buffer.setCell(col,y,{char:outputChar,fg:style2.fg,bg:style2.bg,attrs:style2.attrs,wide:!0,continuation:!1});if(buffer.inBounds(col+1,y))buffer.setCell(col+1,y,{char:"",fg:style2.fg,bg:style2.bg,attrs:style2.attrs,wide:!1,continuation:!0});col+=2}if(col>=buffer.width)break}return col}function writeTextTruncated(buffer,x,y,text,maxWidth,style2={fg:null,bg:null,attrs:{}},ellipsis="…"){if(displayWidth(text)<=maxWidth)writeTextToBuffer(buffer,x,y,text,style2);else{let truncated=truncateText(text,maxWidth,ellipsis);writeTextToBuffer(buffer,x,y,truncated,style2)}}function writeLinesToBuffer(buffer,x,y,lines,style2={fg:null,bg:null,attrs:{}}){for(let i=0;i<lines.length;i++){if(y+i>=buffer.height)break;writeTextToBuffer(buffer,x,y+i,lines[i],style2)}}function stripAnsi2(text){return text.replace(/\x1b\[[0-9;:?]*[A-Za-z]/g,"").replace(/\x9b[0-9;:?]*[A-Za-z]/g,"").replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g,"").replace(/\x9d[^\x07\x1b\x9c]*(?:\x07|\x1b\\|\x9c)/g,"").replace(/\x1b[DME78]/g,"").replace(/\x1b\(B/g,"")}function displayWidthAnsi(text){return displayWidth(stripAnsi2(text))}function truncateAnsi(text,maxWidth,ellipsis="…"){let stripped=stripAnsi2(text);return truncateText(stripped,maxWidth,ellipsis)}function parseUnderlineStyle(subparam){switch(subparam){case 0:return!1;case 1:return"single";case 2:return"double";case 3:return"curly";case 4:return"dotted";case 5:return"dashed";default:return"single"}}function parseAnsiText(text){let segments=[],sanitizedText=text.replace(/\x1b\[[0-9;:]*[A-LN-Za-ln-z@`]/g,"").replace(/\x9b[0-9;:]*[A-LN-Za-ln-z@`]/g,""),oscPattern=/(?:\x1b\]|\x9d)8;;([^\x07\x1b\x9c]*)(?:\x07|\x1b\\|\x9c)/g,currentHyperlink,hyperlinkRanges=[],rangeStart=-1,cleaned="",oscMatch,oscLastIndex=0;while((oscMatch=oscPattern.exec(sanitizedText))!==null){cleaned+=sanitizedText.slice(oscLastIndex,oscMatch.index);let url=oscMatch[1],matchStr=oscMatch[0],isC1=matchStr.charCodeAt(0)===157,lastChar=matchStr.charCodeAt(matchStr.length-1),isBel=lastChar===7,isSt9c=lastChar===156;if(url===""){if(currentHyperlink&&rangeStart>=0)hyperlinkRanges.push({start:rangeStart,end:cleaned.length,url:currentHyperlink});currentHyperlink=void 0,rangeStart=-1}else{if(currentHyperlink&&rangeStart>=0)hyperlinkRanges.push({start:rangeStart,end:cleaned.length,url:currentHyperlink});let encodedUrl=url;if(isC1&&(isBel||isSt9c))encodedUrl=`\x01c1b\x02${url}`;else if(isC1)encodedUrl=`\x01c1s\x02${url}`;else if(isBel)encodedUrl=`\x01e7b\x02${url}`;currentHyperlink=encodedUrl,rangeStart=cleaned.length}oscLastIndex=oscMatch.index+oscMatch[0].length}if(cleaned+=sanitizedText.slice(oscLastIndex),currentHyperlink&&rangeStart>=0)hyperlinkRanges.push({start:rangeStart,end:cleaned.length,url:currentHyperlink});let processText=hyperlinkRanges.length>0?cleaned:sanitizedText,ansiPattern=/(?:\x1b\[|\x9b)([0-9;:]*)m/g,currentStyle={},lastIndex=0,match;function getHyperlinkAt(pos){for(let range of hyperlinkRanges)if(pos>=range.start&&pos<range.end)return range.url;return}while((match=ansiPattern.exec(processText))!==null){if(match.index>lastIndex){let content=processText.slice(lastIndex,match.index);if(content.length>0)if(hyperlinkRanges.length>0){let segStart=0;for(let ci=0;ci<content.length;ci++){let hl=getHyperlinkAt(lastIndex+ci),prevHl=ci>0?getHyperlinkAt(lastIndex+ci-1):void 0;if(ci>0&&hl!==prevHl){let sub2=content.slice(segStart,ci);if(sub2.length>0){let seg={text:sub2,...currentStyle};if(prevHl)seg.hyperlink=prevHl;segments.push(seg)}segStart=ci}}let sub=content.slice(segStart);if(sub.length>0){let hl=getHyperlinkAt(lastIndex+segStart),seg={text:sub,...currentStyle};if(hl)seg.hyperlink=hl;segments.push(seg)}}else segments.push({text:content,...currentStyle})}let params=match[1].split(";");for(let i=0;i<params.length;i++){let param=params[i];if(param.includes(":")){let subparts=param.split(":").map((s)=>s===""?0:Number(s)),mainCode=subparts[0];if(mainCode===4){let styleCode=subparts[1]??1;currentStyle.underlineStyle=parseUnderlineStyle(styleCode),currentStyle.underline=currentStyle.underlineStyle!==!1}else if(mainCode===58){if(subparts[1]===5&&subparts[2]!==void 0)currentStyle.underlineColor=subparts[2];else if(subparts[1]===2){let r=subparts[3]??subparts[2]??0,g=subparts[4]??subparts[3]??0,b=subparts[5]??subparts[4]??0;currentStyle.underlineColor=16777216|(r&255)<<16|(g&255)<<8|b&255}}else if(mainCode===38){if(subparts[1]===5&&subparts[2]!==void 0)currentStyle.fg=subparts[2],currentStyle.colonFg=!0;else if(subparts[1]===2){let r=subparts[3]??subparts[2]??0,g=subparts[4]??subparts[3]??0,b=subparts[5]??subparts[4]??0;currentStyle.fg=16777216|(r&255)<<16|(g&255)<<8|b&255,currentStyle.colonFg=!0}}else if(mainCode===48){if(subparts[1]===5&&subparts[2]!==void 0)currentStyle.bg=subparts[2],currentStyle.colonBg=!0;else if(subparts[1]===2){let r=subparts[3]??subparts[2]??0,g=subparts[4]??subparts[3]??0,b=subparts[5]??subparts[4]??0;currentStyle.bg=16777216|(r&255)<<16|(g&255)<<8|b&255,currentStyle.colonBg=!0}}continue}let code=Number(param);switch(code){case 0:currentStyle={};break;case 1:currentStyle.bold=!0;break;case 2:currentStyle.dim=!0;break;case 3:currentStyle.italic=!0;break;case 4:currentStyle.underline=!0,currentStyle.underlineStyle="single";break;case 7:currentStyle.inverse=!0;break;case 22:currentStyle.bold=!1,currentStyle.dim=!1;break;case 23:currentStyle.italic=!1;break;case 24:currentStyle.underline=!1,currentStyle.underlineStyle=!1;break;case 27:currentStyle.inverse=!1;break;case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:currentStyle.fg=code;break;case 38:{let nextParams=params.slice(i+1).map(Number);if(currentStyle.colonFg=void 0,nextParams[0]===5&&nextParams[1]!==void 0)currentStyle.fg=nextParams[1],i+=2;else if(nextParams[0]===2&&nextParams[3]!==void 0)currentStyle.fg=16777216|(nextParams[1]&255)<<16|(nextParams[2]&255)<<8|nextParams[3]&255,i+=4;break}case 39:currentStyle.fg=null;break;case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:currentStyle.bg=code;break;case 48:{let nextParams=params.slice(i+1).map(Number);if(currentStyle.colonBg=void 0,nextParams[0]===5&&nextParams[1]!==void 0)currentStyle.bg=nextParams[1],i+=2;else if(nextParams[0]===2&&nextParams[3]!==void 0)currentStyle.bg=16777216|(nextParams[1]&255)<<16|(nextParams[2]&255)<<8|nextParams[3]&255,i+=4;break}case 49:currentStyle.bg=null;break;case 58:{let nextParams=params.slice(i+1).map(Number);if(nextParams[0]===5&&nextParams[1]!==void 0)currentStyle.underlineColor=nextParams[1],i+=2;else if(nextParams[0]===2&&nextParams[3]!==void 0)currentStyle.underlineColor=16777216|(nextParams[1]&255)<<16|(nextParams[2]&255)<<8|nextParams[3]&255,i+=4;break}case 59:currentStyle.underlineColor=null;break;case 90:case 91:case 92:case 93:case 94:case 95:case 96:case 97:currentStyle.fg=code;break;case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:currentStyle.bg=code;break;case BG_OVERRIDE_CODE:currentStyle.bgOverride=!0;break}}lastIndex=match.index+match[0].length}if(lastIndex<processText.length){let content=processText.slice(lastIndex);if(content.length>0)if(hyperlinkRanges.length>0){let segStart=0;for(let ci=0;ci<content.length;ci++){let hl=getHyperlinkAt(lastIndex+ci),prevHl=ci>0?getHyperlinkAt(lastIndex+ci-1):void 0;if(ci>0&&hl!==prevHl){let sub2=content.slice(segStart,ci);if(sub2.length>0){let seg={text:sub2,...currentStyle};if(prevHl)seg.hyperlink=prevHl;segments.push(seg)}segStart=ci}}let sub=content.slice(segStart);if(sub.length>0){let hl=getHyperlinkAt(lastIndex+segStart),seg={text:sub,...currentStyle};if(hl)seg.hyperlink=hl;segments.push(seg)}}else segments.push({text:content,...currentStyle})}return segments}function hasAnsi(text){return ANSI_TEST_REGEX.test(text)}function measureText(text){let lines=text.split(`
|
|
11
|
-
`),maxWidth=0;for(let line of lines){let lineWidth=displayWidth(line);if(lineWidth>maxWidth)maxWidth=lineWidth}return{width:maxWidth,height:lines.length}}function hasWideCharacters(text){return splitGraphemes(text).some(isWideGrapheme)}function hasZeroWidthCharacters(text){return splitGraphemes(text).some(isZeroWidthGrapheme)}function normalizeText(text){return text.normalize("NFC")}function getFirstCodePoint(str){return str.codePointAt(0)??0}function isLikelyEmoji(grapheme){let cp=getFirstCodePoint(grapheme);return CHAR_RANGES.isEmoji(cp)||grapheme.includes("")}function isCJK(grapheme){let cp=getFirstCodePoint(grapheme);return CHAR_RANGES.isCJK(cp)||CHAR_RANGES.isJapaneseKana(cp)||CHAR_RANGES.isHangul(cp)}var segmenter,displayWidthCache,DEFAULT_TEXT_EMOJI_WIDE=!0,DEFAULT_TEXT_SIZING_ENABLED=!1,_scopedMeasurer=null,OSC8_RE,createMeasurer,_defaultMeasurer,TEXT_PRESENTATION_EMOJI_REGEX,EMOJI_PRESENTATION_REGEX,RGI_EMOJI_REGEX,textPresentationEmojiCache,MAY_CONTAIN_TEXT_EMOJI,MAY_CONTAIN_PUA,ANSI_CSI_RE,ANSI_OSC_RE,ANSI_SINGLE_RE,ANSI_TEST_REGEX,CHAR_RANGES;var init_unicode=__esm(()=>{init_ansi2();init_buffer();init_text_sizing();segmenter=new Intl.Segmenter(void 0,{granularity:"grapheme"});displayWidthCache=new DisplayWidthCache(1e4);OSC8_RE=/\x1b\]8;;[^\x07\x1b]*(?:\x07|\x1b\\)/g;createMeasurer=createWidthMeasurer;TEXT_PRESENTATION_EMOJI_REGEX=/^\p{Extended_Pictographic}$/u,EMOJI_PRESENTATION_REGEX=/^\p{Emoji_Presentation}$/u,RGI_EMOJI_REGEX=/^\p{RGI_Emoji}$/v,textPresentationEmojiCache=new Map;MAY_CONTAIN_TEXT_EMOJI=/[\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]/,MAY_CONTAIN_PUA=/[\uE000-\uF8FF]/;ANSI_CSI_RE=/^\x1b\[[0-9;:?]*[A-Za-z]/,ANSI_OSC_RE=/^\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/,ANSI_SINGLE_RE=/^\x1b[DME78(B]/;ANSI_TEST_REGEX=/\x1b(?:\[[0-9;:]*[A-Za-z]|\])|\x9b[\x30-\x3f]*[\x40-\x7e]|\x9d/;CHAR_RANGES={isBasicLatin:(cp)=>cp>=32&&cp<=127,isCJK:(cp)=>cp>=19968&&cp<=40959||cp>=13312&&cp<=19903||cp>=131072&&cp<=173791||cp>=63744&&cp<=64255||cp>=194560&&cp<=195103,isJapaneseKana:(cp)=>cp>=12352&&cp<=12447||cp>=12448&&cp<=12543,isHangul:(cp)=>cp>=44032&&cp<=55203||cp>=4352&&cp<=4607,isEmoji:(cp)=>cp>=128512&&cp<=128591||cp>=127744&&cp<=128511||cp>=128640&&cp<=128767||cp>=128768&&cp<=128895||cp>=129280&&cp<=129535||cp>=9728&&cp<=9983||cp>=9984&&cp<=10175}});var IncrementalRenderMismatchError;var init_errors=__esm(()=>{IncrementalRenderMismatchError=class IncrementalRenderMismatchError extends Error{renderPhaseStats;mismatchContext;constructor(message,data){super(message);this.name="IncrementalRenderMismatchError",this.renderPhaseStats=data?.renderPhaseStats,this.mismatchContext=data?.mismatchContext}}});import{createLogger}from"loggily";function strictTerminalBackends(){let val=(typeof process<"u"?process.env.SILVERY_STRICT_TERMINAL??"":"").toLowerCase().trim();if(!val)return[];if(val==="all")return["vt100","xterm","ghostty"];let backends=val.split(",").map((s)=>s.trim()).filter(Boolean),valid=new Set(["vt100","xterm","ghostty"]);for(let b of backends)if(!valid.has(b))
|
|
13
|
+
`),maxWidth=0;for(let line of lines){let lineWidth=displayWidth(line);if(lineWidth>maxWidth)maxWidth=lineWidth}return{width:maxWidth,height:lines.length}}function hasWideCharacters(text){return splitGraphemes(text).some(isWideGrapheme)}function hasZeroWidthCharacters(text){return splitGraphemes(text).some(isZeroWidthGrapheme)}function normalizeText(text){return text.normalize("NFC")}function getFirstCodePoint(str){return str.codePointAt(0)??0}function isLikelyEmoji(grapheme){let cp=getFirstCodePoint(grapheme);return CHAR_RANGES.isEmoji(cp)||grapheme.includes("")}function isCJK(grapheme){let cp=getFirstCodePoint(grapheme);return CHAR_RANGES.isCJK(cp)||CHAR_RANGES.isJapaneseKana(cp)||CHAR_RANGES.isHangul(cp)}var segmenter,displayWidthCache,DEFAULT_TEXT_EMOJI_WIDE=!0,DEFAULT_TEXT_SIZING_ENABLED=!1,_scopedMeasurer=null,OSC8_RE,createMeasurer,_defaultMeasurer,TEXT_PRESENTATION_EMOJI_REGEX,EMOJI_PRESENTATION_REGEX,RGI_EMOJI_REGEX,textPresentationEmojiCache,MAY_CONTAIN_TEXT_EMOJI,MAY_CONTAIN_PUA,ANSI_CSI_RE,ANSI_OSC_RE,ANSI_SINGLE_RE,ANSI_TEST_REGEX,CHAR_RANGES;var init_unicode=__esm(()=>{init_ansi2();init_buffer();init_text_sizing();segmenter=new Intl.Segmenter(void 0,{granularity:"grapheme"});displayWidthCache=new DisplayWidthCache(1e4);OSC8_RE=/\x1b\]8;;[^\x07\x1b]*(?:\x07|\x1b\\)/g;createMeasurer=createWidthMeasurer;TEXT_PRESENTATION_EMOJI_REGEX=/^\p{Extended_Pictographic}$/u,EMOJI_PRESENTATION_REGEX=/^\p{Emoji_Presentation}$/u,RGI_EMOJI_REGEX=/^\p{RGI_Emoji}$/v,textPresentationEmojiCache=new Map;MAY_CONTAIN_TEXT_EMOJI=/[\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]/,MAY_CONTAIN_PUA=/[\uE000-\uF8FF]/;ANSI_CSI_RE=/^\x1b\[[0-9;:?]*[A-Za-z]/,ANSI_OSC_RE=/^\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/,ANSI_SINGLE_RE=/^\x1b[DME78(B]/;ANSI_TEST_REGEX=/\x1b(?:\[[0-9;:]*[A-Za-z]|\])|\x9b[\x30-\x3f]*[\x40-\x7e]|\x9d/;CHAR_RANGES={isBasicLatin:(cp)=>cp>=32&&cp<=127,isCJK:(cp)=>cp>=19968&&cp<=40959||cp>=13312&&cp<=19903||cp>=131072&&cp<=173791||cp>=63744&&cp<=64255||cp>=194560&&cp<=195103,isJapaneseKana:(cp)=>cp>=12352&&cp<=12447||cp>=12448&&cp<=12543,isHangul:(cp)=>cp>=44032&&cp<=55203||cp>=4352&&cp<=4607,isEmoji:(cp)=>cp>=128512&&cp<=128591||cp>=127744&&cp<=128511||cp>=128640&&cp<=128767||cp>=128768&&cp<=128895||cp>=129280&&cp<=129535||cp>=9728&&cp<=9983||cp>=9984&&cp<=10175}});var IncrementalRenderMismatchError;var init_errors=__esm(()=>{IncrementalRenderMismatchError=class IncrementalRenderMismatchError extends Error{renderPhaseStats;mismatchContext;constructor(message,data){super(message);this.name="IncrementalRenderMismatchError",this.renderPhaseStats=data?.renderPhaseStats,this.mismatchContext=data?.mismatchContext}}});import{createLogger as createLogger2}from"loggily";function strictTerminalBackends(){let val=(typeof process<"u"?process.env.SILVERY_STRICT_TERMINAL??"":"").toLowerCase().trim();if(!val)return[];if(val==="all")return["vt100","xterm","ghostty"];let backends=val.split(",").map((s)=>s.trim()).filter(Boolean),valid=new Set(["vt100","xterm","ghostty"]);for(let b of backends)if(!valid.has(b))log2.warn?.(`SILVERY_STRICT_TERMINAL: unknown backend '${b}', ignoring`);return backends.filter((b)=>valid.has(b))}function createTerminalVerifyState(){let allBackends=strictTerminalBackends();return{terminal:null,ghosttyTerminal:null,width:0,height:0,frameCount:0,backends:allBackends.filter((b)=>b!=="vt100"),hasVt100:allBackends.includes("vt100")}}function createDefaultSgr(){return{fg:null,bg:null,bold:!1,dim:!1,italic:!1,underline:!1,blink:!1,inverse:!1,hidden:!1,strikethrough:!1}}function createDefaultStyledCell(){return{char:" ",fg:null,bg:null,bold:!1,dim:!1,italic:!1,underline:!1,blink:!1,inverse:!1,hidden:!1,strikethrough:!1}}function applySgrParams(params,sgr){if(params===""||params==="0"){sgr.fg=null,sgr.bg=null,sgr.bold=!1,sgr.dim=!1,sgr.italic=!1,sgr.underline=!1,sgr.blink=!1,sgr.inverse=!1,sgr.hidden=!1,sgr.strikethrough=!1;return}let parts=params.split(";"),i=0;while(i<parts.length){let code=parts[i],colonIdx=code.indexOf(":");if(colonIdx>=0){if(parseInt(code.substring(0,colonIdx))===4){let sub=parseInt(code.substring(colonIdx+1));sgr.underline=sub>0}i++;continue}let n=parseInt(code);if(n===0)sgr.fg=null,sgr.bg=null,sgr.bold=!1,sgr.dim=!1,sgr.italic=!1,sgr.underline=!1,sgr.blink=!1,sgr.inverse=!1,sgr.hidden=!1,sgr.strikethrough=!1;else if(n===1)sgr.bold=!0;else if(n===2)sgr.dim=!0;else if(n===3)sgr.italic=!0;else if(n===4)sgr.underline=!0;else if(n===5||n===6)sgr.blink=!0;else if(n===7)sgr.inverse=!0;else if(n===8)sgr.hidden=!0;else if(n===9)sgr.strikethrough=!0;else if(n===21)sgr.underline=!0;else if(n===22)sgr.bold=!1,sgr.dim=!1;else if(n===23)sgr.italic=!1;else if(n===24)sgr.underline=!1;else if(n===25)sgr.blink=!1;else if(n===27)sgr.inverse=!1;else if(n===28)sgr.hidden=!1;else if(n===29)sgr.strikethrough=!1;else if(n>=30&&n<=37)sgr.fg=n-30;else if(n===38){if(parts[i+1]==="5")sgr.fg=parseInt(parts[i+2]),i+=2;else if(parts[i+1]==="2")sgr.fg={r:parseInt(parts[i+2]),g:parseInt(parts[i+3]),b:parseInt(parts[i+4])},i+=4}else if(n===39)sgr.fg=null;else if(n>=40&&n<=47)sgr.bg=n-40;else if(n===48){if(parts[i+1]==="5")sgr.bg=parseInt(parts[i+2]),i+=2;else if(parts[i+1]==="2")sgr.bg={r:parseInt(parts[i+2]),g:parseInt(parts[i+3]),b:parseInt(parts[i+4])},i+=4}else if(n===49)sgr.bg=null;else if(n>=90&&n<=97)sgr.fg=n-90+8;else if(n>=100&&n<=107)sgr.bg=n-100+8;i++}}function replayAnsiWithStyles(width,height,ansi,ctx=_defaultCtxForReplay){let screen=Array.from({length:height},()=>Array.from({length:width},()=>createDefaultStyledCell())),cx=0,cy=0,pendingWrap=!1,sgr=createDefaultSgr(),i=0;while(i<ansi.length){if(ansi[i]==="\x1B"){if(ansi[i+1]==="["){i+=2;let params="";while(i<ansi.length&&(ansi[i]>="0"&&ansi[i]<="9"||ansi[i]===";"||ansi[i]==="?"||ansi[i]===":"))params+=ansi[i],i++;let cmd=ansi[i];if(i++,cmd==="H")if(pendingWrap=!1,params==="")cx=0,cy=0;else{let cmdParts=params.split(";");cy=Math.min(height-1,Math.max(0,(parseInt(cmdParts[0])||1)-1)),cx=Math.min(width-1,Math.max(0,(parseInt(cmdParts[1])||1)-1))}else if(cmd==="K"){if(cy>=height)continue;for(let x=cx;x<width;x++){let cell=screen[cy][x];cell.char=" ",cell.fg=null,cell.bg=sgr.bg,cell.bold=!1,cell.dim=!1,cell.italic=!1,cell.underline=!1,cell.blink=!1,cell.inverse=!1,cell.hidden=!1,cell.strikethrough=!1}}else if(cmd==="J"){if(cy<height)for(let x=cx;x<width;x++){let cell=screen[cy][x];cell.char=" ",cell.fg=null,cell.bg=sgr.bg,cell.bold=!1,cell.dim=!1,cell.italic=!1,cell.underline=!1,cell.blink=!1,cell.inverse=!1,cell.hidden=!1,cell.strikethrough=!1}for(let y=cy+1;y<height;y++)for(let x=0;x<width;x++){let cell=screen[y][x];cell.char=" ",cell.fg=null,cell.bg=sgr.bg,cell.bold=!1,cell.dim=!1,cell.italic=!1,cell.underline=!1,cell.blink=!1,cell.inverse=!1,cell.hidden=!1,cell.strikethrough=!1}}else if(cmd==="m")applySgrParams(params,sgr);else if(cmd==="C"){pendingWrap=!1;let n=parseInt(params)||1;cx=Math.min(width-1,cx+n)}else if(cmd==="A"){pendingWrap=!1;let n=parseInt(params)||1;cy=Math.max(0,cy-n)}else if(cmd==="B"){pendingWrap=!1;let n=parseInt(params)||1;cy=Math.min(height-1,cy+n)}continue}else if(ansi[i+1]==="]"){i+=2;while(i<ansi.length){if(ansi[i]==="\x07"){i++;break}if(ansi[i]==="\x1B"&&ansi[i+1]==="\\"){i+=2;break}i++}continue}i+=2;continue}if(ansi[i]==="\r"){pendingWrap=!1,cx=0,i++;continue}if(ansi[i]===`
|
|
12
14
|
`){if(pendingWrap=!1,cy++,cy>=height){let first=screen.shift();for(let cell of first)cell.char=" ",cell.fg=null,cell.bg=null,cell.bold=!1,cell.dim=!1,cell.italic=!1,cell.underline=!1,cell.blink=!1,cell.inverse=!1,cell.hidden=!1,cell.strikethrough=!1;screen.push(first),cy=height-1}i++;continue}let grapheme="",advance=0,code0=ansi.charCodeAt(i);if(code0>=55296&&code0<=56319&&i+1<ansi.length){let low=ansi.charCodeAt(i+1);if(low>=56320&&low<=57343)grapheme=ansi[i]+ansi[i+1],advance=2;else grapheme=ansi[i],advance=1}else grapheme=ansi[i],advance=1;{let j=i+advance;while(j<ansi.length){let c=ansi.charCodeAt(j),cp,cpLen;if(c>=55296&&c<=56319&&j+1<ansi.length){let lo=ansi.charCodeAt(j+1);if(lo>=56320&&lo<=57343)cp=(c-55296<<10)+(lo-56320)+65536,cpLen=2;else break}else cp=c,cpLen=1;if(cp===8205||cp===65038||cp===65039||cp>=768&&cp<=879||cp>=8400&&cp<=8447||cp>=6832&&cp<=6911||cp>=65056&&cp<=65071||cp===8419||cp>=127995&&cp<=127999||cp>=127462&&cp<=127487||cp>=917536&&cp<=917631||cp===917505){grapheme+=ansi.slice(j,j+cpLen),advance+=cpLen,j+=cpLen;continue}if((grapheme.length>=2?grapheme.charCodeAt(grapheme.length-2)===8205?8205:grapheme.charCodeAt(grapheme.length-1):grapheme.charCodeAt(grapheme.length-1))===8205&&cp>32){grapheme+=ansi.slice(j,j+cpLen),advance+=cpLen,j+=cpLen;continue}break}}let charWidth=graphemeWidth(grapheme);if(cy<height&&cx<width){if(pendingWrap){if(pendingWrap=!1,cx=0,cy++,cy>=height){let first=screen.shift();for(let cell of first)cell.char=" ",cell.fg=null,cell.bg=null,cell.bold=!1,cell.dim=!1,cell.italic=!1,cell.underline=!1,cell.blink=!1,cell.inverse=!1,cell.hidden=!1,cell.strikethrough=!1;screen.push(first),cy=height-1}}if(cy<height&&cx<width){let cell=screen[cy][cx];if(cell.char=grapheme,cell.fg=sgr.fg,cell.bg=sgr.bg,cell.bold=sgr.bold,cell.dim=sgr.dim,cell.italic=sgr.italic,cell.underline=sgr.underline,cell.blink=sgr.blink,cell.inverse=sgr.inverse,cell.hidden=sgr.hidden,cell.strikethrough=sgr.strikethrough,charWidth===2&&cx+1<width){let cont=screen[cy][cx+1];cont.char=" ",cont.fg=sgr.fg,cont.bg=sgr.bg,cont.bold=sgr.bold,cont.dim=sgr.dim,cont.italic=sgr.italic,cont.underline=sgr.underline,cont.blink=sgr.blink,cont.inverse=sgr.inverse,cont.hidden=sgr.hidden,cont.strikethrough=sgr.strikethrough}if(cx+=charWidth,cx>=width)cx=width-1,pendingWrap=!0}}i+=advance}return screen}function formatColor(c){if(c===null)return"default";if(typeof c==="number")return`${c}`;return`rgb(${c.r},${c.g},${c.b})`}function captureStrictFailureArtifacts(opts){try{let fs=__require("fs"),path=__require("path"),dir=`/tmp/silvery-strict-failure-${Date.now()}`;fs.mkdirSync(dir,{recursive:!0});let meta={source:opts.source,timestamp:new Date().toISOString(),frameCount:opts.frameCount,prevSize:opts.prev?{width:opts.prev.width,height:opts.prev.height}:null,nextSize:opts.next?{width:opts.next.width,height:opts.next.height}:null,incrOutputLength:opts.incrOutput?.length,freshOutputLength:opts.freshOutput?.length,testName:globalThis.__vitest_worker__?.current?.name};if(fs.writeFileSync(path.join(dir,"meta.json"),JSON.stringify(meta,null,2)),fs.writeFileSync(path.join(dir,"error.txt"),opts.errorMessage),opts.incrOutput)fs.writeFileSync(path.join(dir,"incremental.ansi"),opts.incrOutput);if(opts.freshOutput)fs.writeFileSync(path.join(dir,"fresh.ansi"),opts.freshOutput);if(opts.prev){let rows=[];for(let y=0;y<opts.prev.height;y++){let row="";for(let x=0;x<opts.prev.width;x++){let cell=opts.prev.getCell(x,y);row+=cell.char||" "}rows.push(row.trimEnd())}fs.writeFileSync(path.join(dir,"prev-buffer.txt"),rows.join(`
|
|
13
15
|
`))}if(opts.next){let rows=[];for(let y=0;y<opts.next.height;y++){let row="";for(let x=0;x<opts.next.width;x++){let cell=opts.next.getCell(x,y);row+=cell.char||" "}rows.push(row.trimEnd())}fs.writeFileSync(path.join(dir,"next-buffer.txt"),rows.join(`
|
|
14
|
-
`))}if(opts.prev&&opts.ctx&&opts.renderFull){let freshPrev=opts.renderFull(opts.prev,opts.ctx);fs.writeFileSync(path.join(dir,"fresh-prev.ansi"),freshPrev)}return dir}catch{return"(artifact capture failed)"}}function verifyOutputEquivalence(prev,next,incrOutput,ctx,renderFull,graphemeWidthFn,textSizingEnabledFn){let w=Math.max(prev.width,next.width),vtHeight=Math.max(prev.height,next.height);if(DEBUG_OUTPUT)
|
|
16
|
+
`))}if(opts.prev&&opts.ctx&&opts.renderFull){let freshPrev=opts.renderFull(opts.prev,opts.ctx);fs.writeFileSync(path.join(dir,"fresh-prev.ansi"),freshPrev)}return dir}catch{return"(artifact capture failed)"}}function verifyOutputEquivalence(prev,next,incrOutput,ctx,renderFull,graphemeWidthFn,textSizingEnabledFn){let w=Math.max(prev.width,next.width),vtHeight=Math.max(prev.height,next.height);if(DEBUG_OUTPUT)log2.error?.(`[VERIFY] prev=${prev.width}x${prev.height} next=${next.width}x${next.height} vtSize=${w}x${vtHeight}`);let freshPrev=renderFull(prev,ctx);if(DEBUG_OUTPUT){log2.error?.(`[VERIFY] freshPrev len=${freshPrev.length} incrOutput len=${incrOutput.length}`);let escaped=incrOutput.replace(/\x1b/g,"\\e").replace(/\r/g,"\\r").replace(/\n/g,"\\n");log2.error?.(`[VERIFY] incrOutput: ${escaped.slice(0,500)}`)}let screenIncr=replayAnsiWithStyles(w,vtHeight,freshPrev+incrOutput,ctx),freshNext=renderFull(next,ctx),screenFresh=replayAnsiWithStyles(w,vtHeight,freshNext,ctx),_dumpRowWideCells=(buf,row)=>{let parts=[];for(let cx=0;cx<buf.width;cx++){let c=buf.getCell(cx,row),cp=c.char?[...c.char].map((ch)=>"U+"+(ch.codePointAt(0)??0).toString(16).toUpperCase().padStart(4,"0")).join(","):"empty";if(c.wide)parts.push(`W@${cx}:${cp}(gw=${graphemeWidthFn(c.char,ctx)})`);if(c.continuation)parts.push(`C@${cx}`);let charToWrite=c.char||" ",vtWidth=graphemeWidthFn(charToWrite,ctx),bufWidth=c.wide?2:1;if(!c.continuation&&vtWidth!==bufWidth)parts.push(`MISMATCH@${cx}:${cp}(vtW=${vtWidth},bufW=${bufWidth},tse=${textSizingEnabledFn(ctx)})`)}return parts.join(" ")};for(let y=0;y<vtHeight;y++)for(let x=0;x<w;x++){let incr=screenIncr[y][x],fresh=screenFresh[y][x];if(incr.char!==fresh.char){let incrRow=screenIncr[y].map((c)=>c.char).join(""),freshRow=screenFresh[y].map((c)=>c.char).join(""),prevRow=screenIncr[y].map((_,cx)=>{return prev.getCell(cx,y).char}).join(""),nextCell=next.getCell(x,y),prevCell=prev.getCell(x,y),contextStart=Math.max(0,x-5),contextEnd=Math.min(w,x+10),colDetails=[];for(let cx=contextStart;cx<contextEnd;cx++){let ic=screenIncr[y][cx],fc=screenFresh[y][cx],pc=prev.getCell(cx,y),nc=next.getCell(cx,y),marker=cx===x?" <<<":ic.char!==fc.char?" !!!":"";colDetails.push(` col ${cx}: prev='${pc.char}'(w=${pc.wide},c=${pc.continuation}) next='${nc.char}' incr='${ic.char}' fresh='${fc.char}' wide=${nc.wide} cont=${nc.continuation}${marker}`)}let msg=`STRICT_OUTPUT char mismatch at (${x},${y}): incremental='${incr.char}' fresh='${fresh.char}'
|
|
15
17
|
prev buffer cell: char='${prevCell.char}' bg=${prevCell.bg} wide=${prevCell.wide} cont=${prevCell.continuation}
|
|
16
18
|
next buffer cell: char='${nextCell.char}' bg=${nextCell.bg} wide=${nextCell.wide} cont=${nextCell.continuation}
|
|
17
19
|
incr row: ${incrRow}
|
|
@@ -22,20 +24,20 @@ Wide/cont cells on row ${y} (prev buffer): ${_dumpRowWideCells(prev,y)}
|
|
|
22
24
|
Column detail around mismatch:
|
|
23
25
|
${colDetails.join(`
|
|
24
26
|
`)}`,artifactDir=captureStrictFailureArtifacts({source:"STRICT_OUTPUT",errorMessage:msg,prev,next,incrOutput,freshOutput:freshNext,ctx,renderFull}),fullMsg=`${msg}
|
|
25
|
-
Artifacts: ${artifactDir}`;throw
|
|
27
|
+
Artifacts: ${artifactDir}`;throw log2.error?.(fullMsg),new IncrementalRenderMismatchError(fullMsg)}let diffs=[];if(!sgrColorEquals(incr.fg,fresh.fg))diffs.push(`fg: ${formatColor(incr.fg)} vs ${formatColor(fresh.fg)}`);if(!sgrColorEquals(incr.bg,fresh.bg))diffs.push(`bg: ${formatColor(incr.bg)} vs ${formatColor(fresh.bg)}`);if(incr.bold!==fresh.bold)diffs.push(`bold: ${incr.bold} vs ${fresh.bold}`);if(incr.dim!==fresh.dim)diffs.push(`dim: ${incr.dim} vs ${fresh.dim}`);if(incr.italic!==fresh.italic)diffs.push(`italic: ${incr.italic} vs ${fresh.italic}`);if(incr.underline!==fresh.underline)diffs.push(`underline: ${incr.underline} vs ${fresh.underline}`);if(incr.inverse!==fresh.inverse)diffs.push(`inverse: ${incr.inverse} vs ${fresh.inverse}`);if(incr.strikethrough!==fresh.strikethrough)diffs.push(`strikethrough: ${incr.strikethrough} vs ${fresh.strikethrough}`);if(diffs.length>0){let msg=`STRICT_OUTPUT style mismatch at (${x},${y}) char='${incr.char}': `+diffs.join(", ")+`
|
|
26
28
|
incremental: fg=${formatColor(incr.fg)} bg=${formatColor(incr.bg)} bold=${incr.bold} dim=${incr.dim}
|
|
27
29
|
fresh: fg=${formatColor(fresh.fg)} bg=${formatColor(fresh.bg)} bold=${fresh.bold} dim=${fresh.dim}`,artifactDir2=captureStrictFailureArtifacts({source:"STRICT_OUTPUT",errorMessage:msg,prev,next,incrOutput,freshOutput:freshNext,ctx,renderFull});throw new IncrementalRenderMismatchError(`${msg}
|
|
28
|
-
Artifacts: ${artifactDir2}`)}}}function verifyAccumulatedOutput(currentBuffer,ctx,accState,renderFull){let{accumulateWidth:w,accumulateHeight:h}=accState,screenAccumulated=replayAnsiWithStyles(w,h,accState.accumulatedAnsi,ctx),freshOutput=renderFull(currentBuffer,ctx),screenFresh=replayAnsiWithStyles(w,h,freshOutput,ctx);for(let y=0;y<h;y++)for(let x=0;x<w;x++){let accum=screenAccumulated[y][x],fresh=screenFresh[y][x];if(accum.char!==fresh.char){let msg=`SILVERY_STRICT_ACCUMULATE char mismatch at (${x},${y}) after ${accState.accumulateFrameCount} frames: accumulated='${accum.char}' fresh='${fresh.char}'`,dir=captureStrictFailureArtifacts({source:"STRICT_ACCUMULATE",errorMessage:msg,next:currentBuffer,incrOutput:accState.accumulatedAnsi,freshOutput,ctx,frameCount:accState.accumulateFrameCount,renderFull});throw
|
|
30
|
+
Artifacts: ${artifactDir2}`)}}}function verifyAccumulatedOutput(currentBuffer,ctx,accState,renderFull){let{accumulateWidth:w,accumulateHeight:h}=accState,screenAccumulated=replayAnsiWithStyles(w,h,accState.accumulatedAnsi,ctx),freshOutput=renderFull(currentBuffer,ctx),screenFresh=replayAnsiWithStyles(w,h,freshOutput,ctx);for(let y=0;y<h;y++)for(let x=0;x<w;x++){let accum=screenAccumulated[y][x],fresh=screenFresh[y][x];if(accum.char!==fresh.char){let msg=`SILVERY_STRICT_ACCUMULATE char mismatch at (${x},${y}) after ${accState.accumulateFrameCount} frames: accumulated='${accum.char}' fresh='${fresh.char}'`,dir=captureStrictFailureArtifacts({source:"STRICT_ACCUMULATE",errorMessage:msg,next:currentBuffer,incrOutput:accState.accumulatedAnsi,freshOutput,ctx,frameCount:accState.accumulateFrameCount,renderFull});throw log2.error?.(`${msg}
|
|
29
31
|
Artifacts: ${dir}`),new IncrementalRenderMismatchError(`${msg}
|
|
30
|
-
Artifacts: ${dir}`)}let diffs=[];if(!sgrColorEquals(accum.fg,fresh.fg))diffs.push(`fg: ${formatColor(accum.fg)} vs ${formatColor(fresh.fg)}`);if(!sgrColorEquals(accum.bg,fresh.bg))diffs.push(`bg: ${formatColor(accum.bg)} vs ${formatColor(fresh.bg)}`);if(accum.bold!==fresh.bold)diffs.push(`bold: ${accum.bold} vs ${fresh.bold}`);if(accum.dim!==fresh.dim)diffs.push(`dim: ${accum.dim} vs ${fresh.dim}`);if(accum.italic!==fresh.italic)diffs.push(`italic: ${accum.italic} vs ${fresh.italic}`);if(accum.underline!==fresh.underline)diffs.push(`underline: ${accum.underline} vs ${fresh.underline}`);if(accum.inverse!==fresh.inverse)diffs.push(`inverse: ${accum.inverse} vs ${fresh.inverse}`);if(accum.strikethrough!==fresh.strikethrough)diffs.push(`strikethrough: ${accum.strikethrough} vs ${fresh.strikethrough}`);if(diffs.length>0){let msg=`SILVERY_STRICT_ACCUMULATE style mismatch at (${x},${y}) char='${accum.char}' after ${accState.accumulateFrameCount} frames: `+diffs.join(", "),dir2=captureStrictFailureArtifacts({source:"STRICT_ACCUMULATE",errorMessage:msg,next:currentBuffer,freshOutput,ctx,frameCount:accState.accumulateFrameCount,renderFull});throw
|
|
32
|
+
Artifacts: ${dir}`)}let diffs=[];if(!sgrColorEquals(accum.fg,fresh.fg))diffs.push(`fg: ${formatColor(accum.fg)} vs ${formatColor(fresh.fg)}`);if(!sgrColorEquals(accum.bg,fresh.bg))diffs.push(`bg: ${formatColor(accum.bg)} vs ${formatColor(fresh.bg)}`);if(accum.bold!==fresh.bold)diffs.push(`bold: ${accum.bold} vs ${fresh.bold}`);if(accum.dim!==fresh.dim)diffs.push(`dim: ${accum.dim} vs ${fresh.dim}`);if(accum.italic!==fresh.italic)diffs.push(`italic: ${accum.italic} vs ${fresh.italic}`);if(accum.underline!==fresh.underline)diffs.push(`underline: ${accum.underline} vs ${fresh.underline}`);if(accum.inverse!==fresh.inverse)diffs.push(`inverse: ${accum.inverse} vs ${fresh.inverse}`);if(accum.strikethrough!==fresh.strikethrough)diffs.push(`strikethrough: ${accum.strikethrough} vs ${fresh.strikethrough}`);if(diffs.length>0){let msg=`SILVERY_STRICT_ACCUMULATE style mismatch at (${x},${y}) char='${accum.char}' after ${accState.accumulateFrameCount} frames: `+diffs.join(", "),dir2=captureStrictFailureArtifacts({source:"STRICT_ACCUMULATE",errorMessage:msg,next:currentBuffer,freshOutput,ctx,frameCount:accState.accumulateFrameCount,renderFull});throw log2.error?.(`${msg}
|
|
31
33
|
Artifacts: ${dir2}`),new IncrementalRenderMismatchError(`${msg}
|
|
32
34
|
Artifacts: ${dir2}`)}}}function loadTermless(){if(!_createTerminal||!_createXtermBackend)_createTerminal=__require("@termless/core").createTerminal,_createXtermBackend=__require("@termless/xtermjs").createXtermBackend;return{createTerminal:_createTerminal,createXtermBackend:_createXtermBackend}}function loadGhosttyBackend(){if(!_createGhosttyBackend){let mod=__require("@termless/ghostty");if(_createGhosttyBackend=mod.createGhosttyBackend,!_ghosttyInitPromise)_ghosttyInitPromise=mod.initGhostty()}return _createGhosttyBackend}function initTerminalVerifyState(state,width,height,initialAnsi){if(state.terminal)state.terminal.close();if(state.ghosttyTerminal)state.ghosttyTerminal.close();if(state.backends.includes("xterm")){let{createTerminal,createXtermBackend}=loadTermless();state.terminal=createTerminal({backend:createXtermBackend(),cols:width,rows:height}),state.terminal.feed(initialAnsi)}else state.terminal=null;if(state.backends.includes("ghostty")){let{createTerminal}=loadTermless(),createGhostty=loadGhosttyBackend();state.ghosttyTerminal=createTerminal({backend:createGhostty(),cols:width,rows:height}),state.ghosttyTerminal.feed(initialAnsi)}else state.ghosttyTerminal=null;state.width=width,state.height=height,state.frameCount=0}function verifyTerminalEquivalence(state,incrOutput,nextBuffer,ctx,renderFull){if(nextBuffer.width!==state.width||nextBuffer.height!==state.height){let freshAnsi2=renderFull(nextBuffer,ctx);initTerminalVerifyState(state,nextBuffer.width,nextBuffer.height,freshAnsi2),state.frameCount++;return}let freshAnsi=renderFull(nextBuffer,ctx);if(state.terminal){state.terminal.feed(incrOutput);let{createTerminal,createXtermBackend}=loadTermless(),freshTerm=createTerminal({backend:createXtermBackend(),cols:state.width,rows:state.height});freshTerm.feed(freshAnsi);try{compareTerminals(state.terminal,freshTerm,state,"xterm")}catch(e){if(e instanceof IncrementalRenderMismatchError){let dir=captureStrictFailureArtifacts({source:"STRICT_TERMINAL[xterm]",errorMessage:e.message,next:nextBuffer,incrOutput,freshOutput:freshAnsi,ctx,frameCount:state.frameCount,renderFull});throw new IncrementalRenderMismatchError(`${e.message}
|
|
33
35
|
Artifacts: ${dir}`)}throw e}finally{freshTerm.close()}}if(state.ghosttyTerminal){state.ghosttyTerminal.feed(incrOutput);let{createTerminal}=loadTermless(),createGhostty=loadGhosttyBackend(),freshTerm=createTerminal({backend:createGhostty(),cols:state.width,rows:state.height});freshTerm.feed(freshAnsi);try{compareTerminals(state.ghosttyTerminal,freshTerm,state,"ghostty")}catch(e){if(e instanceof IncrementalRenderMismatchError){let dir=captureStrictFailureArtifacts({source:"STRICT_TERMINAL[ghostty]",errorMessage:e.message,next:nextBuffer,incrOutput,freshOutput:freshAnsi,ctx,frameCount:state.frameCount,renderFull});throw new IncrementalRenderMismatchError(`${e.message}
|
|
34
36
|
Artifacts: ${dir}`)}throw e}finally{freshTerm.close()}}}function compareTerminals(incrTerm,freshTerm,state,backendName){let{width:w,height:h}=state,prefix=`SILVERY_STRICT_TERMINAL[${backendName}]`;for(let y=0;y<h;y++)for(let x=0;x<w;x++){let incrCell=incrTerm.getCell(y,x),freshCell=freshTerm.getCell(y,x),incrChar=incrCell.char||" ",freshChar=freshCell.char||" ";if(incrChar!==freshChar){let incrRow=Array.from({length:w},(_,cx)=>incrTerm.getCell(y,cx).char||" ").join(""),freshRow=Array.from({length:w},(_,cx)=>freshTerm.getCell(y,cx).char||" ").join(""),msg=`${prefix} char mismatch at (${x},${y}) frame ${state.frameCount}: incremental='${incrChar}' fresh='${freshChar}'
|
|
35
37
|
incr row: ${incrRow.trimEnd()}
|
|
36
|
-
fresh row: ${freshRow.trimEnd()}`;throw
|
|
38
|
+
fresh row: ${freshRow.trimEnd()}`;throw log2.error?.(msg),new IncrementalRenderMismatchError(msg)}if(!rgbEquals(incrCell.fg,freshCell.fg)){let msg=`${prefix} fg color mismatch at (${x},${y}) char='${incrChar}' frame ${state.frameCount}: incremental=${formatRgb(incrCell.fg)} fresh=${formatRgb(freshCell.fg)}`;throw log2.error?.(msg),new IncrementalRenderMismatchError(msg)}if(!rgbEquals(incrCell.bg,freshCell.bg)){let msg=`${prefix} bg color mismatch at (${x},${y}) char='${incrChar}' frame ${state.frameCount}: incremental=${formatRgb(incrCell.bg)} fresh=${formatRgb(freshCell.bg)}`;throw log2.error?.(msg),new IncrementalRenderMismatchError(msg)}let attrDiffs=[];if(incrCell.bold!==freshCell.bold)attrDiffs.push(`bold: ${incrCell.bold} vs ${freshCell.bold}`);if(incrCell.dim!==freshCell.dim)attrDiffs.push(`dim: ${incrCell.dim} vs ${freshCell.dim}`);if(incrCell.italic!==freshCell.italic)attrDiffs.push(`italic: ${incrCell.italic} vs ${freshCell.italic}`);if(incrCell.inverse!==freshCell.inverse)attrDiffs.push(`inverse: ${incrCell.inverse} vs ${freshCell.inverse}`);if(incrCell.strikethrough!==freshCell.strikethrough)attrDiffs.push(`strikethrough: ${incrCell.strikethrough} vs ${freshCell.strikethrough}`);if(attrDiffs.length>0){let msg=`${prefix} attr mismatch at (${x},${y}) char='${incrChar}' frame ${state.frameCount}: `+attrDiffs.join(", ");throw log2.error?.(msg),new IncrementalRenderMismatchError(msg)}}}function rgbEquals(a,b){if(a===b)return!0;if(a===null||b===null)return!1;return a.r===b.r&&a.g===b.g&&a.b===b.b}function formatRgb(c){if(c===null)return"null";return`rgb(${c.r},${c.g},${c.b})`}function sgrColorEquals(a,b){if(a===b)return!0;if(a===null||b===null)return!1;if(typeof a==="number"||typeof b==="number")return a===b;return a.r===b.r&&a.g===b.g&&a.b===b.b}var log2,_env,DEBUG_OUTPUT,_defaultCtxForReplay,_createTerminal=null,_createXtermBackend=null,_createGhosttyBackend=null,_ghosttyInitPromise=null;var init_output_verify=__esm(()=>{init_errors();init_unicode();log2=createLogger2("silvery:output"),_env=typeof process<"u"?process.env:{},DEBUG_OUTPUT=!!_env.SILVERY_DEBUG_OUTPUT;_defaultCtxForReplay={caps:{underlineStyles:!0,underlineColor:!0,colorLevel:"truecolor"},measurer:null,sgrCache:new Map,transitionCache:new Map,mode:"fullscreen",termRows:void 0}});function createEmptyCellChange(){return{x:0,y:0,cell:{char:" ",fg:null,bg:null,underlineColor:null,attrs:{},wide:!1,continuation:!1,hyperlink:void 0}}}function ensureDiffPoolCapacity(capacity){if(capacity<=diffPoolCapacity)return;for(let i=diffPoolCapacity;i<capacity;i++)diffPool.push(createEmptyCellChange());diffPoolCapacity=capacity}function writeCellChange(change,x,y,buffer){change.x=x,change.y=y,buffer.readCellInto(x,y,change.cell)}function writeEmptyCellChange(change,x,y){change.x=x,change.y=y;let cell=change.cell;cell.char=" ",cell.fg=null,cell.bg=null,cell.underlineColor=null;let attrs=cell.attrs;attrs.bold=void 0,attrs.dim=void 0,attrs.italic=void 0,attrs.underline=void 0,attrs.underlineStyle=void 0,attrs.blink=void 0,attrs.inverse=void 0,attrs.hidden=void 0,attrs.strikethrough=void 0,cell.wide=!1,cell.continuation=!1,cell.hyperlink=void 0}function diffBuffers(prev,next){let cells=Math.max(prev.width,next.width)*Math.max(prev.height,next.height),maxChanges=cells+(cells>>1);ensureDiffPoolCapacity(maxChanges);let changeCount=0,height=Math.min(prev.height,next.height),width=Math.min(prev.width,next.width),startRow=next.minDirtyRow===-1?0:next.minDirtyRow,endRow=next.maxDirtyRow===-1?-1:Math.min(next.maxDirtyRow,height-1);for(let y=startRow;y<=endRow;y++){if(!next.isRowDirty(y))continue;if(next.rowMetadataEquals(y,prev)&&next.rowCharsEquals(y,prev)&&next.rowExtrasEquals(y,prev))continue;for(let x=0;x<width;x++)if(!next.cellEquals(x,y,prev)){if(writeCellChange(diffPool[changeCount],x,y,next),changeCount++,x+1<width&&prev.isCellWide(x,y)&&!next.isCellWide(x,y))writeCellChange(diffPool[changeCount],x+1,y,next),changeCount++}}let widthGrew=next.width>prev.width;if(widthGrew)for(let y=0;y<next.height;y++)for(let x=prev.width;x<next.width;x++)writeCellChange(diffPool[changeCount],x,y,next),changeCount++;if(next.height>prev.height){let xEnd=widthGrew?prev.width:next.width;for(let y=prev.height;y<next.height;y++)for(let x=0;x<xEnd;x++)writeCellChange(diffPool[changeCount],x,y,next),changeCount++}if(prev.width>next.width)for(let y=0;y<height;y++)for(let x=next.width;x<prev.width;x++)writeEmptyCellChange(diffPool[changeCount],x,y),changeCount++;if(prev.height>next.height)for(let y=next.height;y<prev.height;y++)for(let x=0;x<prev.width;x++)writeEmptyCellChange(diffPool[changeCount],x,y),changeCount++;if(changeCount>maxChanges)throw Error(`diffBuffers: changeCount ${changeCount} exceeds pool capacity ${maxChanges} (prev ${prev.width}x${prev.height}, next ${next.width}x${next.height})`);return diffResult.pool=diffPool,diffResult.count=changeCount,diffResult}var diffPool,diffPoolCapacity=0,diffResult;var init_diff_buffers=__esm(()=>{diffPool=[];diffResult={pool:diffPool,count:0}});import{createLogger as createLogger3}from"loggily";function setOutputCaps(_caps){}function outputGraphemeWidth(g,ctx){return ctx.measurer?ctx.measurer.graphemeWidth(g):graphemeWidth(g)}function outputTextSizingEnabled(ctx){return ctx.measurer?ctx.measurer.textSizingEnabled:isTextSizingEnabled()}function createOutputPhase(caps,measurer){let ctx={caps:{underlineStyles:caps.underlineStyles??!0,underlineColor:caps.underlineColor??!0,colorLevel:caps.colorLevel??"truecolor"},measurer:measurer??null,sgrCache:new Map,transitionCache:new Map,mode:"fullscreen",termRows:void 0},inlineState=createInlineCursorState(),accState={accumulatedAnsi:"",accumulateWidth:0,accumulateHeight:0,accumulateFrameCount:0},tvState=createTerminalVerifyState(),pendingPromotion=null,fn=function(prev,next,mode="fullscreen",scrollbackOffset=0,termRows,cursorPos){if(ctx.mode=mode,ctx.termRows=termRows,pendingPromotion&&mode==="inline"){let promo=pendingPromotion;return pendingPromotion=null,handleScrollbackPromotion(inlineState,promo.frozenContent,promo.frozenLineCount,next,cursorPos,ctx)}return outputPhase(prev,next,mode,scrollbackOffset,termRows,cursorPos,inlineState,ctx,accState,tvState)};return fn.resetInlineState=()=>{Object.assign(inlineState,createInlineCursorState()),inlineState.forceFirstRender=!0,pendingPromotion=null},fn.getInlineCursorRow=()=>inlineState.prevCursorRow,fn.promoteScrollback=(frozenContent,frozenLineCount)=>{if(pendingPromotion)pendingPromotion.frozenContent+=frozenContent,pendingPromotion.frozenLineCount+=frozenLineCount;else pendingPromotion={frozenContent,frozenLineCount}},fn}function handleScrollbackPromotion(state,frozenContent,frozenLineCount,next,cursorPos,ctx){let{termRows}=ctx,output="";if(state.prevCursorRow>0)output+=`\x1B[${state.prevCursorRow}A`;output+="\r",output+=frozenContent;let nextContentLines=findLastContentLine(next)+1,maxOutputLines=termRows!=null?Math.min(nextContentLines,termRows):nextContentLines;output+=bufferToAnsi(next,ctx,maxOutputLines);let totalOnScreen=frozenLineCount+maxOutputLines,oldTotalLines=state.prevOutputLines,nextLastLine=totalOnScreen-1,terminalScroll=termRows!=null?Math.max(0,totalOnScreen-termRows):0,lastOccupied=Math.max(oldTotalLines-1-terminalScroll,0);if(lastOccupied>nextLastLine){for(let y=nextLastLine+1;y<=lastOccupied;y++)output+=`
|
|
37
39
|
\r\x1B[K`;let up=lastOccupied-nextLastLine;if(up>0)output+=`\x1B[${up}A`}output+=inlineCursorSuffix(cursorPos??null,next,ctx);let startLine=0;if(termRows!=null&&nextContentLines>termRows)startLine=nextContentLines-termRows;if(state.prevBuffer=next,cursorPos?.visible){let visibleRow=cursorPos.y-startLine;state.prevCursorRow=visibleRow>=0&&visibleRow<maxOutputLines?visibleRow:maxOutputLines-1}else state.prevCursorRow=maxOutputLines-1;return state.prevOutputLines=maxOutputLines,output}function isStrictOutput(){if(typeof process>"u")return!1;let val=process.env.SILVERY_STRICT;return!!val&&val!=="0"&&val!=="false"}function isStrictAccumulate(){if(typeof process>"u")return!1;let val=process.env.SILVERY_STRICT_ACCUMULATE;return!!val&&val!=="0"&&val!=="false"}function createInlineCursorState(){return{prevCursorRow:-1,prevOutputLines:0,prevBuffer:null,forceFirstRender:!1}}function updateInlineCursorRow(state,cursorPos,maxOutputLines,startLine){if(cursorPos?.visible){let visibleRow=cursorPos.y-startLine;state.prevCursorRow=visibleRow>=0&&visibleRow<maxOutputLines?visibleRow:maxOutputLines-1}else state.prevCursorRow=maxOutputLines-1;state.prevOutputLines=maxOutputLines}function wrapTextSizing(char,wide,ctx){if(!wide||!outputTextSizingEnabled(ctx))return char;return textSized(char,2)}function styleToKey(style2){let{fg,bg,attrs}=style2,key="";if(fg===null)key="n";else if(typeof fg==="number")key=`${fg}`;else key=`r${fg.r},${fg.g},${fg.b}`;if(key+="|",bg===null)key+="n";else if(typeof bg==="number")key+=`${bg}`;else key+=`r${bg.r},${bg.g},${bg.b}`;let attrBits=0;if(attrs.bold)attrBits|=1;if(attrs.dim)attrBits|=2;if(attrs.italic)attrBits|=4;if(attrs.underline)attrBits|=8;if(attrs.inverse)attrBits|=16;if(attrs.strikethrough)attrBits|=32;if(attrs.blink)attrBits|=64;if(attrs.hidden)attrBits|=128;if(key+=`|${attrBits}`,attrs.underlineStyle)key+=`|u${attrs.underlineStyle}`;let ul=style2.underlineColor;if(ul!==null&&ul!==void 0)if(typeof ul==="number")key+=`|l${ul}`;else key+=`|lr${ul.r},${ul.g},${ul.b}`;if(style2.hyperlink)key+=`|h${style2.hyperlink}`;return key}function cachedStyleToAnsi(style2,ctx){let key=styleToKey(style2),sgr=ctx.sgrCache.get(key);if(sgr!==void 0)return sgr;if(sgr=styleToAnsi(style2,ctx),ctx.sgrCache.set(key,sgr),ctx.sgrCache.size>1000)ctx.sgrCache.clear();return sgr}function styleTransition(oldStyle,newStyle,ctx){if(!oldStyle)return cachedStyleToAnsi(newStyle,ctx);if(styleEquals(oldStyle,newStyle))return"";let oldKey=styleToKey(oldStyle),newKey=styleToKey(newStyle),cacheKey=`${oldKey}\x00${newKey}`,cached=ctx.transitionCache.get(cacheKey);if(cached!==void 0)return cached;let codes=[],oa=oldStyle.attrs,na=newStyle.attrs,boldChanged=Boolean(oa.bold)!==Boolean(na.bold),dimChanged=Boolean(oa.dim)!==Boolean(na.dim);if(boldChanged||dimChanged){let boldOff=boldChanged&&!na.bold,dimOff=dimChanged&&!na.dim;if(boldOff||dimOff){if(codes.push("22"),na.bold)codes.push("1");if(na.dim)codes.push("2")}else{if(boldChanged&&na.bold)codes.push("1");if(dimChanged&&na.dim)codes.push("2")}}if(Boolean(oa.italic)!==Boolean(na.italic))codes.push(na.italic?"3":"23");let oldUl=Boolean(oa.underline),newUl=Boolean(na.underline),oldUlStyle=oa.underlineStyle??!1,newUlStyle=na.underlineStyle??!1;if(oldUl!==newUl||oldUlStyle!==newUlStyle)if(!ctx.caps.underlineStyles)codes.push(newUl||na.underlineStyle?"4":"24");else{let sgrSub=underlineStyleToSgr(na.underlineStyle);if(sgrSub!==null&&sgrSub!==0)codes.push(`4:${sgrSub}`);else if(newUl)codes.push("4");else codes.push("24")}if(Boolean(oa.inverse)!==Boolean(na.inverse))codes.push(na.inverse?"7":"27");if(Boolean(oa.hidden)!==Boolean(na.hidden))codes.push(na.hidden?"8":"28");if(Boolean(oa.strikethrough)!==Boolean(na.strikethrough))codes.push(na.strikethrough?"9":"29");if(Boolean(oa.blink)!==Boolean(na.blink))codes.push(na.blink?"5":"25");if(!colorEquals(oldStyle.fg,newStyle.fg))if(newStyle.fg===null)codes.push("39");else codes.push(fgColorCode(newStyle.fg));if(!colorEquals(oldStyle.bg,newStyle.bg))if(newStyle.bg===null)codes.push("49");else codes.push(bgColorCode(newStyle.bg));if(ctx.caps.underlineColor&&!colorEquals(oldStyle.underlineColor,newStyle.underlineColor))if(newStyle.underlineColor===null||newStyle.underlineColor===void 0)codes.push("59");else if(typeof newStyle.underlineColor==="number")codes.push(`58;5;${newStyle.underlineColor}`);else codes.push(`58;2;${newStyle.underlineColor.r};${newStyle.underlineColor.g};${newStyle.underlineColor.b}`);let result;if(codes.length===0)result=cachedStyleToAnsi(newStyle,ctx);else result=`\x1B[${codes.join(";")}m`;if(ctx.transitionCache.set(cacheKey,result),ctx.transitionCache.size>1000)ctx.transitionCache.clear();return result}function underlineStyleToSgr(style2){switch(style2){case!1:return 0;case"single":return 1;case"double":return 2;case"curly":return 3;case"dotted":return 4;case"dashed":return 5;default:return null}}function outputPhase(prev,next,mode="fullscreen",scrollbackOffset=0,termRows,cursorPos,_inlineState,_ctx,_accState,_tvState){let inlineState=_inlineState??createInlineCursorState(),ctx=_ctx??defaultContext,accState=_accState??defaultAccState;ctx.mode=mode,ctx.termRows=termRows;let tvState=_tvState??defaultTerminalVerifyState;if(mode==="inline"&&inlineState.forceFirstRender)inlineState.forceFirstRender=!1,prev=null;if(!prev){let fullRenderAcc=globalThis.__silvery_bench_output_detail;if(fullRenderAcc)fullRenderAcc.fullRenderCalls=(fullRenderAcc.fullRenderCalls??0)+1,fullRenderAcc.fullRenderCells=(fullRenderAcc.fullRenderCells??0)+next.width*next.height;if(mode==="inline"&&inlineState.prevBuffer&&inlineState.prevCursorRow>=0){let stored=inlineState.prevBuffer;if(stored.width===next.width&&stored.height===next.height)return inlineState.prevBuffer=next,inlineIncrementalRender(inlineState,stored,next,scrollbackOffset,cursorPos,ctx,tvState)}let tFullStart=performance.now(),firstOutput=bufferToAnsi(next,ctx,termRows),tFullEnd=performance.now();if(fullRenderAcc)fullRenderAcc.fullRenderMs=(fullRenderAcc.fullRenderMs??0)+(tFullEnd-tFullStart),fullRenderAcc.fullRenderBytes=(fullRenderAcc.fullRenderBytes??0)+firstOutput.length;if(mode==="inline"){let firstContentLines=findLastContentLine(next)+1,firstMaxOutput=termRows!=null?Math.min(firstContentLines,termRows):firstContentLines,firstStartLine=0;if(termRows!=null&&firstContentLines>termRows)firstStartLine=firstContentLines-termRows;let prefix="";if(inlineState.prevCursorRow>=0){let clearDistance=termRows??Math.max(inlineState.prevCursorRow,inlineState.prevOutputLines-1);if(clearDistance>0)prefix+=`\x1B[${clearDistance}A`;prefix+="\r\x1B[J"}return inlineState.prevBuffer=next,updateInlineCursorRow(inlineState,cursorPos,firstMaxOutput,firstStartLine),prefix+firstOutput+inlineCursorSuffix(cursorPos??null,next,ctx)}if(isStrictAccumulate())accState.accumulatedAnsi=firstOutput,accState.accumulateWidth=next.width,accState.accumulateHeight=next.height,accState.accumulateFrameCount=0;if(tvState.backends.length>0)initTerminalVerifyState(tvState,next.width,next.height,firstOutput);if(CAPTURE_RAW)try{let fs=__require("fs");_captureRawFrameCount=0,fs.writeFileSync("/tmp/silvery-raw.ansi",firstOutput),fs.writeFileSync("/tmp/silvery-raw-frames.jsonl",JSON.stringify({frame:0,type:"full",bytes:firstOutput.length,width:next.width,height:next.height})+`
|
|
38
|
-
`)}catch{}return firstOutput}if(mode==="inline")return inlineState.prevBuffer=next,inlineIncrementalRender(inlineState,prev,next,scrollbackOffset,cursorPos,ctx,tvState);if(FULL_RENDER)return bufferToAnsi(next,ctx,termRows);if(prev.width!==next.width||prev.height!==next.height)return bufferToAnsi(next,ctx,termRows);let tDiff0=performance.now(),{pool,count:rawCount}=diffBuffers(prev,next),tDiff1=performance.now(),count=rawCount;if(termRows!=null){let writeIdx=0;for(let i=0;i<rawCount;i++)if(pool[i].y<termRows)pool[writeIdx++]=pool[i];count=writeIdx}if(DEBUG_OUTPUT2){
|
|
40
|
+
`)}catch{}return firstOutput}if(mode==="inline")return inlineState.prevBuffer=next,inlineIncrementalRender(inlineState,prev,next,scrollbackOffset,cursorPos,ctx,tvState);if(FULL_RENDER)return bufferToAnsi(next,ctx,termRows);if(prev.width!==next.width||prev.height!==next.height)return bufferToAnsi(next,ctx,termRows);let tDiff0=performance.now(),{pool,count:rawCount}=diffBuffers(prev,next),tDiff1=performance.now(),count=rawCount;if(termRows!=null){let writeIdx=0;for(let i=0;i<rawCount;i++)if(pool[i].y<termRows)pool[writeIdx++]=pool[i];count=writeIdx}if(DEBUG_OUTPUT2){log3.error?.(`diffBuffers: ${count} changes${rawCount!==count?` (${rawCount-count} clamped beyond termRows)`:""}`);let debugLimit=Math.min(count,10);for(let i=0;i<debugLimit;i++){let change=pool[i];log3.error?.(` (${change.x},${change.y}): "${change.cell.char}"`)}if(count>10)log3.error?.(` ... and ${count-10} more`)}if(count===0){let acc=globalThis.__silvery_bench_output_detail;if(acc)acc.diffMs+=tDiff1-tDiff0,acc.calls+=1;return""}let tAnsi0=performance.now(),incrOutput=changesToAnsi(pool,count,ctx,next).output,tAnsi1=performance.now(),outputDetailAcc=globalThis.__silvery_bench_output_detail;if(outputDetailAcc){outputDetailAcc.diffMs+=tDiff1-tDiff0,outputDetailAcc.ansiMs+=tAnsi1-tAnsi0,outputDetailAcc.calls+=1,outputDetailAcc.totalChanges+=count;let dirtyRowCount=0,minRow=next.minDirtyRow,maxRow=next.maxDirtyRow;if(minRow>=0){for(let r=minRow;r<=maxRow;r++)if(next.isRowDirty(r))dirtyRowCount++}outputDetailAcc.dirtyRows+=dirtyRowCount,outputDetailAcc.outputBytes+=incrOutput.length}if(DEBUG_OUTPUT2||isStrictAccumulate()){let bytes=Buffer.byteLength(incrOutput);try{__require("fs").appendFileSync("/tmp/silvery-sizes.log",`changesToAnsi: ${count} changes, ${bytes} bytes
|
|
39
41
|
`)}catch{}}if(DEBUG_CAPTURE){_debugFrameCount++;try{let fs=__require("fs"),freshOutput=bufferToAnsi(next,ctx),freshPrev=prev?bufferToAnsi(prev,ctx):"",w=Math.max(prev?.width??next.width,next.width),h=Math.max(prev?.height??next.height,next.height),screenIncr=replayAnsiWithStyles(w,h,freshPrev+incrOutput,ctx),screenFresh=replayAnsiWithStyles(w,h,freshOutput,ctx),mismatchInfo="";for(let y=0;y<h&&!mismatchInfo;y++)for(let x=0;x<w&&!mismatchInfo;x++){let ic=screenIncr[y]?.[x],fc=screenFresh[y]?.[x];if(ic&&fc&&(ic.char!==fc.char||!sgrColorEquals(ic.fg,fc.fg)||!sgrColorEquals(ic.bg,fc.bg))){mismatchInfo=`MISMATCH at (${x},${y}): incr='${ic.char}' fresh='${fc.char}' incrFg=${formatColor(ic.fg)} freshFg=${formatColor(fc.fg)} incrBg=${formatColor(ic.bg)} freshBg=${formatColor(fc.bg)}`;let incrRow=screenIncr[y].map((c)=>c.char).join(""),freshRow=screenFresh[y].map((c)=>c.char).join("");mismatchInfo+=`
|
|
40
42
|
incr row ${y}: ${incrRow.slice(Math.max(0,x-20),x+40)}
|
|
41
43
|
fresh row ${y}: ${freshRow.slice(Math.max(0,x-20),x+40)}`}}let status=mismatchInfo||"MATCH";if(fs.appendFileSync("/tmp/silvery-capture.log",`Frame ${_debugFrameCount}: ${count} changes, ${status}
|
|
@@ -54,21 +56,19 @@ ${colDetails.join(`
|
|
|
54
56
|
`;else if(cursorY>=0&&renderY2>cursorY){let dy=renderY2-cursorY;output+=dy===1?`\r
|
|
55
57
|
`:`\r\x1B[${dy}B`}else if(isInline){let fromRow=cursorY>=0?cursorY:0;if(renderY2>fromRow)output+=`\x1B[${renderY2-fromRow}B\r`;else if(renderY2<fromRow)output+=`\x1B[${fromRow-renderY2}A\r`;else output+="\r"}else output+=`\x1B[${renderY2+1};1H`}for(let bx=0;bx<bufWidth;bx++){buffer.readCellInto(bx,y,denseRowCell);let cellHyperlink2=denseRowCell.hyperlink;if(cellHyperlink2!==currentHyperlink){if(currentHyperlink)output+="\x1B]8;;\x1B\\";if(cellHyperlink2)output+=`\x1B]8;;${cellHyperlink2}\x1B\\`;currentHyperlink=cellHyperlink2}if(reusableCellStyle.fg=denseRowCell.fg,reusableCellStyle.bg=denseRowCell.bg,reusableCellStyle.underlineColor=denseRowCell.underlineColor,reusableCellStyle.attrs=denseRowCell.attrs,!styleEquals(currentStyle,reusableCellStyle)){let prevStyle=currentStyle;currentStyle={fg:denseRowCell.fg,bg:denseRowCell.bg,underlineColor:denseRowCell.underlineColor,attrs:{...denseRowCell.attrs}},output+=styleTransition(prevStyle,currentStyle,ctx)}let char2=denseRowCell.char||" ";if(output+=wrapTextSizing(char2,denseRowCell.wide,ctx),denseRowCell.wide)if(bx++,isInline){if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))output+="\x1B[0m",currentStyle=null;let nextCol=bx+1;if(output+="\r",nextCol>0)output+=nextCol===1?"\x1B[C":`\x1B[${nextCol}C`}else output+=`\x1B[${renderY2+1};${bx+2}H`}if(currentHyperlink)output+="\x1B]8;;\x1B\\",currentHyperlink=void 0;if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))output+="\x1B[0m",currentStyle=null;cursorX=bufWidth,cursorY=renderY2,lastEmittedX=bufWidth-1,lastEmittedY=y;continue}if(cell.continuation){if(lastEmittedX===x-1&&lastEmittedY===y)continue;if(buffer&&x>0){if(x=x-1,buffer.readCellInto(x,y,wideCharLookupCell),cell=wideCharLookupCell,cell.continuation||!cell.wide)continue}else continue}let renderY=isInline?y-startLine:y;if(y!==prevY&¤tHyperlink)output+="\x1B]8;;\x1B\\",currentHyperlink=void 0;if(prevY=y,renderY!==cursorY||x!==cursorX)if(cursorY>=0&&renderY===cursorY+1&&x===0){if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))output+="\x1B[0m",currentStyle=null;output+=`\r
|
|
56
58
|
`}else if(cursorY>=0&&renderY===cursorY&&x>cursorX){if(currentStyle&¤tStyle.bg!==null)output+="\x1B[0m",currentStyle=null;let dx=x-cursorX;output+=dx===1?"\x1B[C":`\x1B[${dx}C`}else if(cursorY>=0&&renderY>cursorY&&x===0){let dy=renderY-cursorY;if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))output+="\x1B[0m",currentStyle=null;output+=dy===1?`\r
|
|
57
|
-
`:`\r\x1B[${dy}B`}else if(isInline){if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))output+="\x1B[0m",currentStyle=null;let fromRow=cursorY>=0?cursorY:0;if(renderY>fromRow)output+=`\x1B[${renderY-fromRow}B\r`;else if(renderY<fromRow)output+=`\x1B[${fromRow-renderY}A\r`;else output+="\r";if(x>0)output+=x===1?"\x1B[C":`\x1B[${x}C`}else output+=`\x1B[${renderY+1};${x+1}H`;let cellHyperlink=cell.hyperlink;if(cellHyperlink!==currentHyperlink){if(currentHyperlink)output+="\x1B]8;;\x1B\\";if(cellHyperlink)output+=`\x1B]8;;${cellHyperlink}\x1B\\`;currentHyperlink=cellHyperlink}if(reusableCellStyle.fg=cell.fg,reusableCellStyle.bg=cell.bg,reusableCellStyle.underlineColor=cell.underlineColor,reusableCellStyle.attrs=cell.attrs,!styleEquals(currentStyle,reusableCellStyle)){let prevStyle=currentStyle;currentStyle={fg:cell.fg,bg:cell.bg,underlineColor:cell.underlineColor,attrs:{...cell.attrs}},output+=styleTransition(prevStyle,currentStyle,ctx)}let char=cell.char||" ";if(output+=wrapTextSizing(char,cell.wide,ctx),cursorX=x+(cell.wide?2:1),cursorY=renderY,lastEmittedX=x,lastEmittedY=y,cell.wide)if(isInline){if(currentStyle&¤tStyle.bg!==null)output+="\x1B[0m",currentStyle=null;if(output+="\r",cursorX>0)output+=cursorX===1?"\x1B[C":`\x1B[${cursorX}C`}else output+=`\x1B[${cursorY+1};${cursorX+1}H`}if(finalY=cursorY,currentHyperlink)output+="\x1B]8;;\x1B\\";if(currentStyle)output+="\x1B[0m";return{output,finalY}}function styleToAnsi(style2,ctx=defaultContext){let{fg,bg}=style2,codes=[];if(fg!==null)codes.push(fgColorCode(fg));if(bg!==null&&!isDefaultBg(bg))codes.push(bgColorCode(bg));if(style2.attrs.bold)codes.push("1");if(style2.attrs.dim)codes.push("2");if(style2.attrs.italic)codes.push("3");if(!ctx.caps.underlineStyles){if(style2.attrs.underline||style2.attrs.underlineStyle)codes.push("4")}else{let underlineStyle=style2.attrs.underlineStyle,sgrSubparam=underlineStyleToSgr(underlineStyle);if(sgrSubparam!==null&&sgrSubparam!==0)codes.push(`4:${sgrSubparam}`);else if(style2.attrs.underline)codes.push("4")}if(style2.attrs.blink)codes.push("5");if(style2.attrs.inverse)codes.push("7");if(style2.attrs.hidden)codes.push("8");if(style2.attrs.strikethrough)codes.push("9");if(ctx.caps.underlineColor&&style2.underlineColor!==null&&style2.underlineColor!==void 0)if(typeof style2.underlineColor==="number")codes.push(`58;5;${style2.underlineColor}`);else codes.push(`58;2;${style2.underlineColor.r};${style2.underlineColor.g};${style2.underlineColor.b}`);if(codes.length===0)return"";return`\x1B[${codes.join(";")}m`}var log2,_env2,DEBUG_OUTPUT2,FULL_RENDER,DEBUG_CAPTURE,CAPTURE_RAW,_debugFrameCount=0,_captureRawFrameCount=0,defaultContext,defaultAccState,defaultTerminalVerifyState,reusableCellStyle,wideCharLookupCell;var init_output_phase=__esm(()=>{init_buffer();init_sgr_codes();init_text_sizing();init_unicode();init_output_verify();init_output_verify();init_diff_buffers();log2=createLogger2("silvery:output"),_env2=typeof process<"u"?process.env:{},DEBUG_OUTPUT2=!!_env2.SILVERY_DEBUG_OUTPUT,FULL_RENDER=!!_env2.SILVERY_FULL_RENDER,DEBUG_CAPTURE=!!_env2.SILVERY_DEBUG_CAPTURE,CAPTURE_RAW=!!_env2.SILVERY_CAPTURE_RAW;defaultContext={caps:{underlineStyles:!0,underlineColor:!0,colorLevel:"truecolor"},measurer:null,sgrCache:new Map,transitionCache:new Map,mode:"fullscreen",termRows:void 0};defaultAccState={accumulatedAnsi:"",accumulateWidth:0,accumulateHeight:0,accumulateFrameCount:0},defaultTerminalVerifyState=createTerminalVerifyState();reusableCellStyle={fg:null,bg:null,underlineColor:null,attrs:{}},wideCharLookupCell=createMutableCell()});var init_detection2=__esm(()=>{init_src2();init_src2()});import{createLogger as createLogger3}from"loggily";function normalizeModifier(mod){return MODIFIER_ALIASES[mod.toLowerCase()]??mod}function keyToAnsi(key){let parts=key.split("+"),mainKey=parts.pop(),modifiers=parts.map(normalizeModifier);if(modifiers.includes("Super")||modifiers.includes("Hyper"))return keyToKittyAnsi(key);if(!modifiers.length&&mainKey.length===1)return mainKey;if(modifiers.includes("Control")&&mainKey.length===1){let code=mainKey.toLowerCase().charCodeAt(0)-96;if(code>=1&&code<=26)return String.fromCharCode(code)}if(modifiers.includes("Control")&&mainKey==="/")return"\x1F";if(modifiers.includes("Control")&&mainKey==="Enter")return`
|
|
58
|
-
`;if((modifiers.includes("Alt")||modifiers.includes("Meta"))&&mainKey.length===1)return`\x1B${mainKey}`;if(modifiers.includes("Shift")&&mainKey==="Tab")return"\x1B[Z";if(modifiers.length===1&&modifiers[0]==="Shift"&&mainKey.length===1){if(mainKey>="a"&&mainKey<="z")return mainKey.toUpperCase();let shifted=BASE_TO_SHIFTED_PUNCT[mainKey];if(shifted)return shifted}let ARROW_SUFFIX={ArrowUp:"A",ArrowDown:"B",ArrowRight:"C",ArrowLeft:"D",Home:"H",End:"F"};if(modifiers.length>0&&mainKey in ARROW_SUFFIX){let mod=1;if(modifiers.includes("Shift"))mod+=1;if(modifiers.includes("Alt")||modifiers.includes("Meta"))mod+=2;if(modifiers.includes("Control"))mod+=4;if(modifiers.includes("Super"))mod+=8;if(modifiers.includes("Hyper"))mod+=16;return`\x1B[1;${mod}${ARROW_SUFFIX[mainKey]}`}let base=KEY_MAP[mainKey];if(base!==void 0&&base!==null)return base;return mainKey}function isValidCodepoint(cp){return cp>=0&&cp<=1114111&&!(cp>=55296&&cp<=57343)}function safeFromCodePoint(cp){return isValidCodepoint(cp)?String.fromCodePoint(cp):"?"}function kittyCodepointToName(cp){return KITTY_CODEPOINT_MAP[cp]}function numericToEventType(n){if(n===1)return"press";if(n===2)return"repeat";if(n===3)return"release";return}function parseKeypress(s){let input;if(typeof Buffer<"u"&&Buffer.isBuffer(s))if(s[0]!==void 0&&s[0]>127&&s[1]===void 0){let buf=Buffer.from(s);buf[0]-=128,input=`\x1B${buf.toString()}`}else input=s.toString();else input=typeof s==="string"?s??"":String(s);let key={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,super:!1,hyper:!1,sequence:input};if(input==="\r")key.name="return";else if(input===`
|
|
59
|
-
`)key.name="return",key.ctrl=!0;else if(input==="\t")key.name="tab";else if(input==="\b"||input==="\x1B\b")key.name="backspace",key.meta=input.charAt(0)==="\x1B";else if(input===""||input==="\x1B")key.name="backspace",key.meta=input.charAt(0)==="\x1B";else if(input==="\x1B\r")key.name="return",key.meta=!0;else if(input==="\x1B"||input==="\x1B\x1B")key.name="escape",key.meta=input.length===2;else if(input===" "||input==="\x1B ")key.name="space",key.meta=input.length===2;else if(input.length===1&&input<="\x1A")key.name=String.fromCharCode(input.charCodeAt(0)+97-1),key.ctrl=!0;else if(input==="\x1F")key.name="/",key.ctrl=!0;else if(input.length===1&&input>="0"&&input<="9")key.name="number";else if(input.length===1&&input>="a"&&input<="z")key.name=input;else if(input.length===1&&input>="A"&&input<="Z")key.name=input.toLowerCase(),key.shift=!0;else{let kittyParts=KITTY_RE.exec(input),kittySpecialParts=!kittyParts&&KITTY_SPECIAL_RE.exec(input),modifyOtherKeysParts=!kittyParts&&!kittySpecialParts&&MODIFY_OTHER_KEYS_RE.exec(input);if(kittySpecialParts){let number=Number(kittySpecialParts[1]),modifier=Math.max(0,Number(kittySpecialParts[2])-1),eventType=Number(kittySpecialParts[3]),terminator=kittySpecialParts[4],name=terminator==="~"?KITTY_SPECIAL_NUMBER_KEYS[number]:KITTY_SPECIAL_LETTER_KEYS[terminator];key.isKittyProtocol=!0,key.isPrintable=!1,key.raw=input,key.name=name??"",key.shift=!!(modifier&1),key.option=!!(modifier&2),key.ctrl=!!(modifier&4),key.super=!!(modifier&8),key.hyper=!!(modifier&16),key.meta=!!(modifier&32),key.capsLock=!!(modifier&64),key.numLock=!!(modifier&128);let eventTypeStr=numericToEventType(eventType);if(eventTypeStr)key.eventType=eventTypeStr}else if(kittyParts||modifyOtherKeysParts){let codepoint,modifier;if(kittyParts)codepoint=Number(kittyParts[1]),modifier=Math.max(0,Number(kittyParts[4]||1)-1);else{let mokParts=modifyOtherKeysParts;modifier=Math.max(0,Number(mokParts[1])-1),codepoint=Number(mokParts[2])}if(kittyParts){if(key.isKittyProtocol=!0,key.raw=input,!isValidCodepoint(codepoint))return key.name="",key.isPrintable=!1,key}if(key.shift=!!(modifier&1),key.option=!!(modifier&2),key.ctrl=!!(modifier&4),key.super=!!(modifier&8),key.hyper=!!(modifier&16),key.meta=!!(modifier&32),key.capsLock=!!(modifier&64),key.numLock=!!(modifier&128),kittyParts?.[5]){let et=numericToEventType(Number(kittyParts[5]));if(et)key.eventType=et}if(kittyParts?.[2])key.shiftedKey=String.fromCodePoint(Number(kittyParts[2]));if(kittyParts?.[3])key.baseLayoutKey=String.fromCodePoint(Number(kittyParts[3]));let textFromProtocol;if(kittyParts?.[6])textFromProtocol=kittyParts[6].split(":").map((cp)=>safeFromCodePoint(Number(cp))).join(""),key.associatedText=textFromProtocol,key.text=textFromProtocol;if(codepoint===32)key.name="space",key.isPrintable=!0;else if(codepoint===13)key.name="return",key.isPrintable=!0;else{let mapped=kittyCodepointToName(codepoint);if(mapped)key.name=mapped,key.isPrintable=!1;else if(codepoint>=1&&codepoint<=26)key.name=String.fromCodePoint(codepoint+96),key.isPrintable=!1;else if(codepoint>=32&&codepoint<=126){if(key.name=String.fromCharCode(codepoint).toLowerCase(),codepoint>=65&&codepoint<=90)key.shift=!0,key.name=String.fromCharCode(codepoint+32);key.isPrintable=!0}else if(isValidCodepoint(codepoint))key.name=safeFromCodePoint(codepoint),key.isPrintable=!0;else key.name="",key.isPrintable=!1}if(kittyParts&&key.isPrintable&&!textFromProtocol)if(key.shift&&key.shiftedKey)key.text=key.shiftedKey;else if(key.shift&&codepoint>=97&&codepoint<=122)key.text=String.fromCharCode(codepoint-32);else if(key.shift&&codepoint>=65&&codepoint<=90)key.text=String.fromCharCode(codepoint);else if(key.shift&&key.isPrintable&&!key.shiftedKey&&codepoint>=32&&codepoint<=126){let baseChar=safeFromCodePoint(codepoint),shifted=BASE_TO_SHIFTED_PUNCT[baseChar];key.text=shifted??baseChar}else key.text=safeFromCodePoint(codepoint)}else if(KITTY_RE.test(input))return key.isKittyProtocol=!0,key.isPrintable=!1,key.raw=input,key;else{let parts=META_KEY_CODE_RE.exec(input);if(parts)key.meta=!0,key.shift=/^[A-Z]$/.test(parts[1]??"");else if(parts=FN_KEY_RE.exec(input),parts){let segs=input.split("");if(segs[0]==="\x1B"&&segs[1]==="\x1B")key.option=!0;let code=[parts[1],parts[2],parts[4],parts[6]].filter(Boolean).join(""),modifier=Number(parts[3]||parts[5]||1)-1;key.ctrl=!!(modifier&4),key.meta=!!(modifier&2),key.super=!!(modifier&8),key.hyper=!!(modifier&16),key.shift=!!(modifier&1),key.capsLock=!!(modifier&64),key.numLock=!!(modifier&128),key.code=code,key.name=CODE_TO_KEY[code]??"",key.shift=SHIFT_CODES.has(code)||key.shift,key.ctrl=CTRL_CODES.has(code)||key.ctrl}}}return key}function parseKey(rawInput){let keypress=parseKeypress(rawInput),key={upArrow:keypress.name==="up",downArrow:keypress.name==="down",leftArrow:keypress.name==="left",rightArrow:keypress.name==="right",pageDown:keypress.name==="pagedown",pageUp:keypress.name==="pageup",home:keypress.name==="home",end:keypress.name==="end",return:keypress.name==="return",escape:keypress.name==="escape",ctrl:keypress.ctrl,shift:keypress.shift,tab:keypress.name==="tab",backspace:keypress.name==="backspace",delete:keypress.name==="delete",meta:keypress.name!=="escape"&&(keypress.meta||keypress.option),super:keypress.super,hyper:keypress.hyper,capsLock:keypress.capsLock??!1,numLock:keypress.numLock??!1,eventType:keypress.eventType},input;if(keypress.isKittyProtocol)if(keypress.isPrintable)if(keypress.shift&&keypress.name.length===1&&keypress.name>="a"&&keypress.name<="z")input=keypress.name.toUpperCase();else if(keypress.name==="space")input=" ";else if(keypress.name==="return")input="\r";else input=keypress.name;else if(keypress.ctrl&&keypress.name.length===1)input=keypress.name;else input="";else{if(input=keypress.ctrl?keypress.name:keypress.sequence,NON_ALPHANUMERIC_KEYS.includes(keypress.name))input="";if(input.startsWith("\x1B"))input=input.slice(1);if(input.startsWith("[")&&input.length>1||input.startsWith("O")&&input.length>1)if(keypress.super||keypress.hyper)input=keypress.name;else input=""}if(keypress.isKittyProtocol)key.text=keypress.text??input;else if(input.length>=1)key.text=input;if(!keypress.isKittyProtocol&&input.length===1&&!key.shift){let base=SHIFTED_PUNCT_MAP[input];if(base)input=base,key.shift=!0}if(input.length===1&&typeof input[0]==="string"&&/[A-Z]/.test(input[0]))key.shift=!0;return[input,key]}function emptyKey(){return{upArrow:!1,downArrow:!1,leftArrow:!1,rightArrow:!1,pageDown:!1,pageUp:!1,home:!1,end:!1,return:!1,escape:!1,ctrl:!1,shift:!1,tab:!1,backspace:!1,delete:!1,meta:!1,super:!1,hyper:!1,capsLock:!1,numLock:!1}}function keyToName(key){if(key.upArrow)return"ArrowUp";if(key.downArrow)return"ArrowDown";if(key.leftArrow)return"ArrowLeft";if(key.rightArrow)return"ArrowRight";if(key.return)return"Enter";if(key.escape)return"Escape";if(key.backspace)return"Backspace";if(key.delete)return"Delete";if(key.tab)return"Tab";if(key.pageUp)return"PageUp";if(key.pageDown)return"PageDown";if(key.home)return"Home";if(key.end)return"End";return""}function keyToModifiers(key){return{ctrl:!!key.ctrl,meta:!!key.meta,shift:!!key.shift,alt:!1,super:!!key.super,hyper:!!key.hyper}}function parseHotkey(keyStr){let remaining=keyStr,symbolMods=new Set;for(let char of remaining)if(MODIFIER_SYMBOLS.has(char))symbolMods.add(char);else break;if(symbolMods.size>0){if(remaining=remaining.slice(symbolMods.size),remaining.startsWith("+"))remaining=remaining.slice(1)}let parts=remaining.split("+"),key=parts.pop()||keyStr,modifiers=new Set([...parts.map((p)=>p.toLowerCase()),...symbolMods]);return{key,ctrl:modifiers.has("control")||modifiers.has("ctrl")||modifiers.has("⌃"),meta:modifiers.has("meta")||modifiers.has("alt")||modifiers.has("opt")||modifiers.has("option")||modifiers.has("⌥"),shift:modifiers.has("shift")||modifiers.has("⇧"),alt:!1,super:modifiers.has("super")||modifiers.has("cmd")||modifiers.has("command")||modifiers.has("⌘"),hyper:modifiers.has("hyper")||modifiers.has("✦")}}function matchHotkey(hotkey,key,input){if(!!hotkey.ctrl!==!!key.ctrl)return!1;if(!!hotkey.meta!==!!key.meta)return!1;if(!!hotkey.super!==!!key.super)return!1;if(!!hotkey.hyper!==!!key.hyper)return!1;if(!!hotkey.alt!==!1)return!1;if(!(hotkey.key.length===1&&!hotkey.shift)&&!!hotkey.shift!==!!key.shift)return!1;let name=keyToName(key);if(name&&name===hotkey.key)return!0;if(input!==void 0&&input===hotkey.key)return!0;if(key.text!==void 0&&key.text===hotkey.key)return!0;return!1}function keyToKittyAnsi(key){let parts=key.split("+"),mainKey=parts.pop(),modifiers=parts.map(normalizeModifier),mod=0;if(modifiers.includes("Shift"))mod|=1;if(modifiers.includes("Alt")||modifiers.includes("Meta"))mod|=2;if(modifiers.includes("Control"))mod|=4;if(modifiers.includes("Super"))mod|=8;if(modifiers.includes("Hyper"))mod|=16;let specialLetter=PLAYWRIGHT_TO_KITTY_SPECIAL_LETTER[mainKey];if(specialLetter)return`\x1B[1;${mod+1}${specialLetter}`;let specialNumber=PLAYWRIGHT_TO_KITTY_SPECIAL_TILDE[mainKey];if(specialNumber!==void 0)return`\x1B[${specialNumber};${mod+1}~`;let csiUCodepoint=PLAYWRIGHT_TO_KITTY_CSI_U[mainKey];if(csiUCodepoint!==void 0){if(mod>0)return`\x1B[${csiUCodepoint};${mod+1}u`;return`\x1B[${csiUCodepoint}u`}if(mainKey.length===1){let codepoint=mainKey.charCodeAt(0);if(mod>0){if((mod&1)!==0){let shifted=BASE_TO_SHIFTED_PUNCT[mainKey];if(shifted)return`\x1B[${codepoint}:${shifted.charCodeAt(0)};${mod+1}u`;if(codepoint>=97&&codepoint<=122)return`\x1B[${codepoint}:${codepoint-32};${mod+1}u`}return`\x1B[${codepoint};${mod+1}u`}return`\x1B[${codepoint}u`}let cp=NAME_TO_KITTY_CODEPOINT[mainKey.toLowerCase()];if(cp!==void 0){let implicitMod=MODIFIER_KEY_IMPLICIT_BITS[mainKey.toLowerCase()];if(implicitMod!==void 0)mod|=implicitMod;if(mod>0)return`\x1B[${cp};${mod+1}u`;return`\x1B[${cp}u`}return keyToAnsi(key)}function*splitRawInput(data){if(data.length<=1){if(data.length===1)yield data;return}let i=0,textStart=-1;while(i<data.length)if(data.charCodeAt(i)===27){if(textStart>=0)yield*splitNonEscapeText(data.slice(textStart,i)),textStart=-1;if(i+1>=data.length){yield"\x1B",i++;continue}let next=data.charCodeAt(i+1);if(next===91){let j=i+2;while(j<data.length){let c=data.charCodeAt(j);if(c>=64&&c<=126){j++;break}j++}yield data.slice(i,j),i=j}else if(next===79){let end=Math.min(i+3,data.length);yield data.slice(i,end),i=end}else if(next===27)if(i+2<data.length){let third=data.charCodeAt(i+2);if(third===91){let j=i+3;while(j<data.length){let c=data.charCodeAt(j);if(c>=64&&c<=126){j++;break}j++}yield data.slice(i,j),i=j}else if(third===79){let end=Math.min(i+4,data.length);yield data.slice(i,end),i=end}else yield"\x1B\x1B",i+=2}else yield"\x1B\x1B",i+=2;else yield data.slice(i,i+2),i+=2}else{if(textStart<0)textStart=i;i++}if(textStart>=0)yield*splitNonEscapeText(data.slice(textStart))}function*splitNonEscapeText(text){let segmentStart=0;for(let i=0;i<text.length;i++){let ch=text.charCodeAt(i);if(ch===127||ch===8){if(i>segmentStart)yield text.slice(segmentStart,i);yield text[i],segmentStart=i+1}}if(segmentStart<text.length)yield text.slice(segmentStart)}var log3,KEY_MAP,MODIFIER_ALIASES,MODIFIER_SYMBOLS,CODE_TO_KEY,NON_ALPHANUMERIC_KEYS,SHIFT_CODES,CTRL_CODES,META_KEY_CODE_RE,FN_KEY_RE,SHIFTED_PUNCT_MAP,BASE_TO_SHIFTED_PUNCT,KITTY_RE,MODIFY_OTHER_KEYS_RE,KITTY_SPECIAL_RE,KITTY_SPECIAL_LETTER_KEYS,KITTY_SPECIAL_NUMBER_KEYS,KITTY_CODEPOINT_MAP,NAME_TO_KITTY_CODEPOINT,MODIFIER_KEY_IMPLICIT_BITS,PLAYWRIGHT_TO_KITTY_CSI_U,PLAYWRIGHT_TO_KITTY_SPECIAL_LETTER,PLAYWRIGHT_TO_KITTY_SPECIAL_TILDE,graphemeSegmenter;var init_keys=__esm(()=>{log3=createLogger3("silvery:keys"),KEY_MAP={ArrowUp:"\x1B[A",ArrowDown:"\x1B[B",ArrowLeft:"\x1B[D",ArrowRight:"\x1B[C",Home:"\x1B[H",End:"\x1B[F",PageUp:"\x1B[5~",PageDown:"\x1B[6~",Enter:"\r",Tab:"\t",Backspace:"",Delete:"\x1B[3~",Escape:"\x1B",Space:" ",Control:null,Shift:null,Alt:null,Meta:null,Super:null,Hyper:null},MODIFIER_ALIASES={ctrl:"Control",control:"Control","⌃":"Control",shift:"Shift","⇧":"Shift",alt:"Alt",meta:"Meta",opt:"Alt",option:"Alt","⌥":"Alt",cmd:"Super",command:"Super",super:"Super","⌘":"Super",hyper:"Hyper","✦":"Hyper"},MODIFIER_SYMBOLS=new Set(["⌃","⇧","⌥","⌘","✦"]);CODE_TO_KEY={"[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home",OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},NON_ALPHANUMERIC_KEYS=[...Object.values(CODE_TO_KEY),"backspace","tab","delete"],SHIFT_CODES=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),CTRL_CODES=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),META_KEY_CODE_RE=/^(?:\x1b)([a-zA-Z0-9])$/,FN_KEY_RE=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,SHIFTED_PUNCT_MAP={"!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=","~":"`","{":"[","}":"]","|":"\\",":":";",'"':"'","<":",",">":".","?":"/"},BASE_TO_SHIFTED_PUNCT=Object.fromEntries(Object.entries(SHIFTED_PUNCT_MAP).map(([shifted,base])=>[base,shifted])),KITTY_RE=/^\x1b\[(\d+)(?::(\d+))?(?::(\d+))?(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,MODIFY_OTHER_KEYS_RE=/^\x1b\[27;(\d+);(\d+)~$/,KITTY_SPECIAL_RE=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,KITTY_SPECIAL_LETTER_KEYS={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},KITTY_SPECIAL_NUMBER_KEYS={2:"insert",3:"delete",5:"pageup",6:"pagedown",7:"home",8:"end",11:"f1",12:"f2",13:"f3",14:"f4",15:"f5",17:"f6",18:"f7",19:"f8",20:"f9",21:"f10",23:"f11",24:"f12"};KITTY_CODEPOINT_MAP={8:"backspace",9:"tab",13:"return",27:"escape",127:"backspace",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57399:"kp0",57400:"kp1",57401:"kp2",57402:"kp3",57403:"kp4",57404:"kp5",57405:"kp6",57406:"kp7",57407:"kp8",57408:"kp9",57409:"kpdecimal",57410:"kpdivide",57411:"kpmultiply",57412:"kpsubtract",57413:"kpadd",57414:"kpenter",57415:"kpequal",57416:"kpseparator",57417:"kpleft",57418:"kpright",57419:"kpup",57420:"kpdown",57421:"kppageup",57422:"kppagedown",57423:"kphome",57424:"kpend",57425:"kpinsert",57426:"kpdelete",57427:"kpbegin",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"mediatracknext",57436:"mediatrackprevious",57437:"mediarecord",57438:"lowervolume",57439:"raisevolume",57440:"mutevolume",57441:"leftshift",57442:"leftcontrol",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightcontrol",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"isoLevel3Shift",57454:"isoLevel5Shift"};NAME_TO_KITTY_CODEPOINT={};for(let[cp,name]of Object.entries(KITTY_CODEPOINT_MAP))NAME_TO_KITTY_CODEPOINT[name]=Number(cp);MODIFIER_KEY_IMPLICIT_BITS={leftshift:1,rightshift:1,leftcontrol:4,rightcontrol:4,leftalt:2,rightalt:2,leftsuper:8,rightsuper:8,lefthyper:16,righthyper:16,leftmeta:32,rightmeta:32},PLAYWRIGHT_TO_KITTY_CSI_U={Enter:13,Escape:27,Backspace:127,Tab:9,Space:32},PLAYWRIGHT_TO_KITTY_SPECIAL_LETTER={ArrowUp:"A",ArrowDown:"B",ArrowRight:"C",ArrowLeft:"D",Home:"H",End:"F",F1:"P",F2:"Q",F3:"R",F4:"S"},PLAYWRIGHT_TO_KITTY_SPECIAL_TILDE={Insert:2,Delete:3,PageUp:5,PageDown:6,F5:15,F6:17,F7:18,F8:19,F9:20,F10:21,F11:23,F12:24};graphemeSegmenter=new Intl.Segmenter("en",{granularity:"grapheme"})});var init_keys2=__esm(()=>{init_keys()});function parseMouseSequence(input){let m=SGR_MOUSE_RE.exec(input);if(!m)return null;let raw=parseInt(m[1]),x=parseInt(m[2])-1,y=parseInt(m[3])-1,terminator=m[4],shift=!!(raw&4),meta=!!(raw&8),ctrl=!!(raw&16),motion=!!(raw&32);if(!!(raw&64)){let wheelButton=raw&3;return{button:0,x,y,action:"wheel",delta:wheelButton===0?-1:1,shift,meta,ctrl}}return{button:raw&3,x,y,action:motion?"move":terminator==="M"?"down":"up",shift,meta,ctrl}}function isMouseSequence(input){return SGR_MOUSE_TEST_RE.test(input)}var SGR_MOUSE_RE,SGR_MOUSE_TEST_RE;var init_mouse=__esm(()=>{SGR_MOUSE_RE=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;SGR_MOUSE_TEST_RE=/^\x1b\[<\d+;\d+;\d+[Mm]$/});function enableBracketedPaste2(stdout){stdout.write("\x1B[?2004h")}function disableBracketedPaste2(stdout){stdout.write("\x1B[?2004l")}function parseBracketedPaste(input){let startIdx=input.indexOf("\x1B[200~");if(startIdx===-1)return null;let contentStart=startIdx+6,endIdx=input.indexOf("\x1B[201~",contentStart);if(endIdx===-1)return null;return{type:"paste",content:input.slice(contentStart,endIdx)}}var PASTE_START="\x1B[200~",PASTE_END="\x1B[201~";function enableFocusReporting(write){write("\x1B[?1004h")}function disableFocusReporting(write){write("\x1B[?1004l")}function parseFocusEvent(input){if(input.includes("\x1B[I"))return{type:"focus-in"};if(input.includes("\x1B[O"))return{type:"focus-out"};return null}function splitRawInput2(raw){let sequences=[],i=0;while(i<raw.length)if(raw[i]==="\x1B")if(i+1>=raw.length)sequences.push("\x1B"),i++;else if(raw[i+1]==="["){let j=i+2;while(j<raw.length&&!isCSITerminator(raw[j]))j++;if(j<raw.length)j++,sequences.push(raw.slice(i,j)),i=j;else return{sequences,incomplete:raw.slice(i)}}else if(raw[i+1]==="O"){let end=Math.min(i+3,raw.length);sequences.push(raw.slice(i,end)),i=end}else if(raw[i+1]==="\x1B")if(i+2<raw.length&&raw[i+2]==="["){let j=i+3;while(j<raw.length&&!isCSITerminator(raw[j]))j++;if(j<raw.length)j++,sequences.push(raw.slice(i,j)),i=j;else return{sequences,incomplete:raw.slice(i)}}else if(i+2<raw.length&&raw[i+2]==="O"){let end=Math.min(i+4,raw.length);sequences.push(raw.slice(i,end)),i=end}else sequences.push("\x1B\x1B"),i+=2;else sequences.push(raw.slice(i,i+2)),i+=2;else sequences.push(raw[i]),i++;return{sequences,incomplete:null}}function isCSITerminator(ch){return ch>="A"&&ch<="Z"||ch>="a"&&ch<="z"||ch==="~"}function createTermProvider(stdin,stdout,options={}){let{cols=stdout.columns||80,rows=stdout.rows||24}=options,state={cols,rows},listeners=new Set,disposed=!1,controller=new AbortController,signal=controller.signal,stdinCleanup=null,onResize=()=>{state={cols:stdout.columns||80,rows:stdout.rows||24},listeners.forEach((l)=>l(state))};if(typeof stdout.setMaxListeners==="function"){if((stdout.getMaxListeners?.()??10)<50)stdout.setMaxListeners(50)}return stdout.on("resize",onResize),{getState(){return state},subscribe(listener){return listeners.add(listener),()=>listeners.delete(listener)},async*events(){if(disposed)return;if(stdin.isTTY)stdin.setRawMode(!0),stdin.resume(),stdin.setEncoding("utf8");let queue=[],eventResolve=null,onKey=(raw)=>{let focusEvent=parseFocusEvent(raw);if(focusEvent){queue.push({type:"focus",data:{focused:focusEvent.type==="focus-in"}});return}if(isMouseSequence(raw)){let parsed=parseMouseSequence(raw);if(parsed){queue.push({type:"mouse",data:parsed});return}}let[input,key]=parseKey(raw);queue.push({type:"key",data:{input,key}})},incompleteCSI=null,onChunk=(chunk)=>{if(incompleteCSI!==null)chunk=incompleteCSI+chunk,incompleteCSI=null;let pasteResult=parseBracketedPaste(chunk);if(pasteResult){if(queue.push({type:"paste",data:{text:pasteResult.content}}),eventResolve){let resolve=eventResolve;eventResolve=null,resolve()}return}let{sequences,incomplete}=splitRawInput2(chunk);for(let raw of sequences)onKey(raw);if(incompleteCSI=incomplete,eventResolve){let resolve=eventResolve;eventResolve=null,resolve()}},onResizeEvent=()=>{let event={type:"resize",data:{cols:stdout.columns||80,rows:stdout.rows||24}};if(queue.push(event),eventResolve){let resolve=eventResolve;eventResolve=null,resolve()}};if(stdin.isTTY)enableBracketedPaste2(stdout);stdin.on("data",onChunk),stdout.on("resize",onResizeEvent),stdinCleanup=()=>{if(stdin.isTTY)disableBracketedPaste2(stdout);if(stdin.off("data",onChunk),stdout.off("resize",onResizeEvent),stdin.isTTY)stdin.setRawMode(!1);stdin.pause()};try{while(!disposed&&!signal.aborted){if(queue.length===0)await new Promise((resolve)=>{eventResolve=resolve,signal.addEventListener("abort",()=>resolve(),{once:!0})});if(disposed||signal.aborted)break;while(queue.length>0)yield queue.shift()}}finally{if(stdinCleanup){let fn=stdinCleanup;stdinCleanup=null,fn()}}},[Symbol.dispose](){if(disposed)return;if(disposed=!0,controller.abort(),stdout.off("resize",onResize),listeners.clear(),stdinCleanup){let fn=stdinCleanup;stdinCleanup=null,fn()}}}}var init_term_provider=__esm(()=>{init_keys2();init_mouse()});function stripAnsi3(text){return text.replace(ANSI_REGEX2,"")}function parseInputEvents(data){let events=[],pasteResult=parseBracketedPaste(data);if(pasteResult)events.push({type:"paste",data:{text:pasteResult.content}});else for(let raw of splitRawInput(data)){let focusEvent=parseFocusEvent(raw);if(focusEvent){events.push({type:"focus",data:{focused:focusEvent.type==="focus-in"}});continue}if(isMouseSequence(raw)){let parsed=parseMouseSequence(raw);if(parsed)events.push({type:"mouse",data:parsed});continue}let[input,key]=parseKey(raw);events.push({type:"key",data:{input,key}})}return events}function createEventQueue(controller){let queue=[],resolve=null,disposed=!1;function push(...events2){if(queue.push(...events2),resolve){let r=resolve;resolve=null,r()}}async function*events(){if(disposed)return;while(!disposed&&!controller.signal.aborted){if(queue.length===0)await new Promise((r)=>{resolve=r,controller.signal.addEventListener("abort",()=>r(),{once:!0})});if(disposed||controller.signal.aborted)break;while(queue.length>0)yield queue.shift()}}return{push,events,dispose(){disposed=!0}}}function createEmulatorStdout(feed,cols,rows){let resizeListeners=new Set,stdout={write:(data)=>{return feed(typeof data==="string"?data:new TextDecoder().decode(data)),!0},on:(event,handler)=>{if(event==="resize")resizeListeners.add(handler)},off:(event,handler)=>{if(event==="resize")resizeListeners.delete(handler)},isTTY:!0,columns:cols,rows};return{stdout,resizeListeners,updateDims(c,r){stdout.columns=c,stdout.rows=r}}}function finalizeTerm(style2,termBase,frame,opts){if(Object.defineProperty(termBase,"frame",{get:frame.get,enumerable:!0}),opts?.defineProperties)Object.defineProperties(termBase,opts.defineProperties);if(opts?.delegateFrom)for(let key of Object.keys(opts.delegateFrom)){if(key in termBase)continue;let val=opts.delegateFrom[key];Object.defineProperty(termBase,key,typeof val==="function"?{value:(...args)=>opts.delegateFrom[key](...args)}:{get:()=>opts.delegateFrom[key]})}return createMixedStyle(style2,termBase)}function createTerm(first,second){if(second&&first&&isTermBackend(first)){let{createTerminal}=__require("@termless/core"),emulator=createTerminal({backend:first,...second});return createBackendTerm(emulator)}if(first&&isTermEmulator(first))return createBackendTerm(first);if(first&&isHeadlessDims(first))return createHeadlessTerm(first);return createNodeTerm(first??{})}function isTermEmulator(obj){if(typeof obj!=="object"||obj===null)return!1;let o=obj;return typeof o.feed==="function"&&typeof o.screen==="object"&&o.screen!==null}function isTermBackend(obj){if(typeof obj!=="object"||obj===null)return!1;let o=obj;return typeof o.init==="function"&&typeof o.name==="string"&&typeof o.destroy==="function"}function isHeadlessDims(obj){if(typeof obj!=="object"||obj===null)return!1;let o=obj;return typeof o.cols==="number"&&typeof o.rows==="number"&&!("stdout"in o)&&!("stdin"in o)}function createNodeTerm(options){let stdout=options.stdout??process.stdout,stdin=options.stdin??process.stdin,cachedCursor=options.cursor??detectCursor(stdout),cachedInput=detectInput(stdin),cachedColor=options.color!==void 0?options.color:detectColor(stdout),cachedUnicode=options.unicode??detectUnicode(),detectedCaps=options.caps?{...defaultCaps(),...options.caps}:stdin.isTTY?detectTerminalCaps():void 0,styleInstance=createStyle({level:cachedColor}),provider=null,getProvider=()=>{if(!provider)provider=createTermProvider(stdin,stdout,{cols:stdout.columns||80,rows:stdout.rows||24});return provider},_frame,termBase={hasCursor:()=>cachedCursor,hasInput:()=>cachedInput,hasColor:()=>cachedColor,hasUnicode:()=>cachedUnicode,caps:detectedCaps,stdout,stdin,write:(str)=>{stdout.write(str)},writeLine:(str)=>{stdout.write(str+`
|
|
59
|
+
`:`\r\x1B[${dy}B`}else if(isInline){if(currentStyle&&(currentStyle.bg!==null||hasActiveAttrs(currentStyle.attrs)))output+="\x1B[0m",currentStyle=null;let fromRow=cursorY>=0?cursorY:0;if(renderY>fromRow)output+=`\x1B[${renderY-fromRow}B\r`;else if(renderY<fromRow)output+=`\x1B[${fromRow-renderY}A\r`;else output+="\r";if(x>0)output+=x===1?"\x1B[C":`\x1B[${x}C`}else output+=`\x1B[${renderY+1};${x+1}H`;let cellHyperlink=cell.hyperlink;if(cellHyperlink!==currentHyperlink){if(currentHyperlink)output+="\x1B]8;;\x1B\\";if(cellHyperlink)output+=`\x1B]8;;${cellHyperlink}\x1B\\`;currentHyperlink=cellHyperlink}if(reusableCellStyle.fg=cell.fg,reusableCellStyle.bg=cell.bg,reusableCellStyle.underlineColor=cell.underlineColor,reusableCellStyle.attrs=cell.attrs,!styleEquals(currentStyle,reusableCellStyle)){let prevStyle=currentStyle;currentStyle={fg:cell.fg,bg:cell.bg,underlineColor:cell.underlineColor,attrs:{...cell.attrs}},output+=styleTransition(prevStyle,currentStyle,ctx)}let char=cell.char||" ";if(output+=wrapTextSizing(char,cell.wide,ctx),cursorX=x+(cell.wide?2:1),cursorY=renderY,lastEmittedX=x,lastEmittedY=y,cell.wide)if(isInline){if(currentStyle&¤tStyle.bg!==null)output+="\x1B[0m",currentStyle=null;if(output+="\r",cursorX>0)output+=cursorX===1?"\x1B[C":`\x1B[${cursorX}C`}else output+=`\x1B[${cursorY+1};${cursorX+1}H`}if(finalY=cursorY,currentHyperlink)output+="\x1B]8;;\x1B\\";if(currentStyle)output+="\x1B[0m";return{output,finalY}}function styleToAnsi(style2,ctx=defaultContext){let{fg,bg}=style2,codes=[];if(fg!==null)codes.push(fgColorCode(fg));if(bg!==null&&!isDefaultBg(bg))codes.push(bgColorCode(bg));if(style2.attrs.bold)codes.push("1");if(style2.attrs.dim)codes.push("2");if(style2.attrs.italic)codes.push("3");if(!ctx.caps.underlineStyles){if(style2.attrs.underline||style2.attrs.underlineStyle)codes.push("4")}else{let underlineStyle=style2.attrs.underlineStyle,sgrSubparam=underlineStyleToSgr(underlineStyle);if(sgrSubparam!==null&&sgrSubparam!==0)codes.push(`4:${sgrSubparam}`);else if(style2.attrs.underline)codes.push("4")}if(style2.attrs.blink)codes.push("5");if(style2.attrs.inverse)codes.push("7");if(style2.attrs.hidden)codes.push("8");if(style2.attrs.strikethrough)codes.push("9");if(ctx.caps.underlineColor&&style2.underlineColor!==null&&style2.underlineColor!==void 0)if(typeof style2.underlineColor==="number")codes.push(`58;5;${style2.underlineColor}`);else codes.push(`58;2;${style2.underlineColor.r};${style2.underlineColor.g};${style2.underlineColor.b}`);if(codes.length===0)return"";return`\x1B[${codes.join(";")}m`}var log3,_env2,DEBUG_OUTPUT2,FULL_RENDER,DEBUG_CAPTURE,CAPTURE_RAW,_debugFrameCount=0,_captureRawFrameCount=0,defaultContext,defaultAccState,defaultTerminalVerifyState,reusableCellStyle,wideCharLookupCell;var init_output_phase=__esm(()=>{init_buffer();init_sgr_codes();init_text_sizing();init_unicode();init_output_verify();init_output_verify();init_diff_buffers();log3=createLogger3("silvery:output"),_env2=typeof process<"u"?process.env:{},DEBUG_OUTPUT2=!!_env2.SILVERY_DEBUG_OUTPUT,FULL_RENDER=!!_env2.SILVERY_FULL_RENDER,DEBUG_CAPTURE=!!_env2.SILVERY_DEBUG_CAPTURE,CAPTURE_RAW=!!_env2.SILVERY_CAPTURE_RAW;defaultContext={caps:{underlineStyles:!0,underlineColor:!0,colorLevel:"truecolor"},measurer:null,sgrCache:new Map,transitionCache:new Map,mode:"fullscreen",termRows:void 0};defaultAccState={accumulatedAnsi:"",accumulateWidth:0,accumulateHeight:0,accumulateFrameCount:0},defaultTerminalVerifyState=createTerminalVerifyState();reusableCellStyle={fg:null,bg:null,underlineColor:null,attrs:{}},wideCharLookupCell=createMutableCell()});var init_detection2=__esm(()=>{init_src2();init_src2()});var init_keys2=__esm(()=>{init_keys()});function parseMouseSequence(input){let m=SGR_MOUSE_RE.exec(input);if(!m)return null;let raw=parseInt(m[1]),x=parseInt(m[2])-1,y=parseInt(m[3])-1,terminator=m[4],shift=!!(raw&4),meta=!!(raw&8),ctrl=!!(raw&16),motion=!!(raw&32);if(!!(raw&64)){let wheelButton=raw&3;return{button:0,x,y,action:"wheel",delta:wheelButton===0?-1:1,shift,meta,ctrl}}return{button:raw&3,x,y,action:motion?"move":terminator==="M"?"down":"up",shift,meta,ctrl}}function isMouseSequence(input){return SGR_MOUSE_TEST_RE.test(input)}var SGR_MOUSE_RE,SGR_MOUSE_TEST_RE;var init_mouse=__esm(()=>{SGR_MOUSE_RE=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;SGR_MOUSE_TEST_RE=/^\x1b\[<\d+;\d+;\d+[Mm]$/});function enableBracketedPaste2(stdout){stdout.write("\x1B[?2004h")}function disableBracketedPaste2(stdout){stdout.write("\x1B[?2004l")}function parseBracketedPaste(input){let startIdx=input.indexOf("\x1B[200~");if(startIdx===-1)return null;let contentStart=startIdx+6,endIdx=input.indexOf("\x1B[201~",contentStart);if(endIdx===-1)return null;return{type:"paste",content:input.slice(contentStart,endIdx)}}var PASTE_START="\x1B[200~",PASTE_END="\x1B[201~";function enableFocusReporting(write){write("\x1B[?1004h")}function disableFocusReporting(write){write("\x1B[?1004l")}function parseFocusEvent(input){if(input.includes("\x1B[I"))return{type:"focus-in"};if(input.includes("\x1B[O"))return{type:"focus-out"};return null}function splitRawInput2(raw){let sequences=[],i=0;while(i<raw.length)if(raw[i]==="\x1B")if(i+1>=raw.length)sequences.push("\x1B"),i++;else if(raw[i+1]==="["){let j=i+2;while(j<raw.length&&!isCSITerminator(raw[j]))j++;if(j<raw.length)j++,sequences.push(raw.slice(i,j)),i=j;else return{sequences,incomplete:raw.slice(i)}}else if(raw[i+1]==="O"){let end=Math.min(i+3,raw.length);sequences.push(raw.slice(i,end)),i=end}else if(raw[i+1]==="\x1B")if(i+2<raw.length&&raw[i+2]==="["){let j=i+3;while(j<raw.length&&!isCSITerminator(raw[j]))j++;if(j<raw.length)j++,sequences.push(raw.slice(i,j)),i=j;else return{sequences,incomplete:raw.slice(i)}}else if(i+2<raw.length&&raw[i+2]==="O"){let end=Math.min(i+4,raw.length);sequences.push(raw.slice(i,end)),i=end}else sequences.push("\x1B\x1B"),i+=2;else sequences.push(raw.slice(i,i+2)),i+=2;else sequences.push(raw[i]),i++;return{sequences,incomplete:null}}function isCSITerminator(ch){return ch>="A"&&ch<="Z"||ch>="a"&&ch<="z"||ch==="~"}function createTermProvider(stdin,stdout,options={}){let{cols=stdout.columns||80,rows=stdout.rows||24}=options,state={cols,rows},listeners=new Set,disposed=!1,controller=new AbortController,signal=controller.signal,stdinCleanup=null,onResize=()=>{state={cols:stdout.columns||80,rows:stdout.rows||24},listeners.forEach((l)=>l(state))};if(typeof stdout.setMaxListeners==="function"){if((stdout.getMaxListeners?.()??10)<50)stdout.setMaxListeners(50)}return stdout.on("resize",onResize),{getState(){return state},subscribe(listener){return listeners.add(listener),()=>listeners.delete(listener)},async*events(){if(disposed)return;if(stdin.isTTY)stdin.setRawMode(!0),stdin.resume(),stdin.setEncoding("utf8");let queue=[],eventResolve=null,onKey=(raw)=>{let focusEvent=parseFocusEvent(raw);if(focusEvent){queue.push({type:"focus",data:{focused:focusEvent.type==="focus-in"}});return}if(isMouseSequence(raw)){let parsed=parseMouseSequence(raw);if(parsed){queue.push({type:"mouse",data:parsed});return}}let[input,key]=parseKey(raw);queue.push({type:"key",data:{input,key}})},incompleteCSI=null,onChunk=(chunk)=>{if(incompleteCSI!==null)chunk=incompleteCSI+chunk,incompleteCSI=null;let pasteResult=parseBracketedPaste(chunk);if(pasteResult){if(queue.push({type:"paste",data:{text:pasteResult.content}}),eventResolve){let resolve=eventResolve;eventResolve=null,resolve()}return}let{sequences,incomplete}=splitRawInput2(chunk);for(let raw of sequences)onKey(raw);if(incompleteCSI=incomplete,eventResolve){let resolve=eventResolve;eventResolve=null,resolve()}},onResizeEvent=()=>{let event={type:"resize",data:{cols:stdout.columns||80,rows:stdout.rows||24}};if(queue.push(event),eventResolve){let resolve=eventResolve;eventResolve=null,resolve()}};if(stdin.isTTY)enableBracketedPaste2(stdout);stdin.on("data",onChunk),stdout.on("resize",onResizeEvent),stdinCleanup=()=>{if(stdin.isTTY)disableBracketedPaste2(stdout);if(stdin.off("data",onChunk),stdout.off("resize",onResizeEvent),stdin.isTTY)stdin.setRawMode(!1);stdin.pause()};try{while(!disposed&&!signal.aborted){if(queue.length===0)await new Promise((resolve)=>{eventResolve=resolve,signal.addEventListener("abort",()=>resolve(),{once:!0})});if(disposed||signal.aborted)break;while(queue.length>0)yield queue.shift()}}finally{if(stdinCleanup){let fn=stdinCleanup;stdinCleanup=null,fn()}}},[Symbol.dispose](){if(disposed)return;if(disposed=!0,controller.abort(),stdout.off("resize",onResize),listeners.clear(),stdinCleanup){let fn=stdinCleanup;stdinCleanup=null,fn()}}}}var init_term_provider=__esm(()=>{init_keys2();init_mouse()});function stripAnsi3(text){return text.replace(ANSI_REGEX2,"")}function parseInputEvents(data){let events=[],pasteResult=parseBracketedPaste(data);if(pasteResult)events.push({type:"paste",data:{text:pasteResult.content}});else for(let raw of splitRawInput(data)){let focusEvent=parseFocusEvent(raw);if(focusEvent){events.push({type:"focus",data:{focused:focusEvent.type==="focus-in"}});continue}if(isMouseSequence(raw)){let parsed=parseMouseSequence(raw);if(parsed)events.push({type:"mouse",data:parsed});continue}let[input,key]=parseKey(raw);events.push({type:"key",data:{input,key}})}return events}function createEventQueue(controller){let queue=[],resolve=null,disposed=!1;function push(...events2){if(queue.push(...events2),resolve){let r=resolve;resolve=null,r()}}async function*events(){if(disposed)return;while(!disposed&&!controller.signal.aborted){if(queue.length===0)await new Promise((r)=>{resolve=r,controller.signal.addEventListener("abort",()=>r(),{once:!0})});if(disposed||controller.signal.aborted)break;while(queue.length>0)yield queue.shift()}}return{push,events,dispose(){disposed=!0}}}function createEmulatorStdout(feed,cols,rows){let resizeListeners=new Set,stdout={write:(data)=>{return feed(typeof data==="string"?data:new TextDecoder().decode(data)),!0},on:(event,handler)=>{if(event==="resize")resizeListeners.add(handler)},off:(event,handler)=>{if(event==="resize")resizeListeners.delete(handler)},isTTY:!0,columns:cols,rows};return{stdout,resizeListeners,updateDims(c,r){stdout.columns=c,stdout.rows=r}}}function finalizeTerm(style2,termBase,frame,opts){if(Object.defineProperty(termBase,"frame",{get:frame.get,enumerable:!0}),opts?.defineProperties)Object.defineProperties(termBase,opts.defineProperties);if(opts?.delegateFrom)for(let key of Object.keys(opts.delegateFrom)){if(key in termBase)continue;let val=opts.delegateFrom[key];Object.defineProperty(termBase,key,typeof val==="function"?{value:(...args)=>opts.delegateFrom[key](...args)}:{get:()=>opts.delegateFrom[key]})}return createMixedStyle(style2,termBase)}function createTerm(first,second){if(second&&first&&isTermBackend(first)){let{createTerminal}=__require("@termless/core"),emulator=createTerminal({backend:first,...second});return createBackendTerm(emulator)}if(first&&isTermEmulator(first))return createBackendTerm(first);if(first&&isHeadlessDims(first))return createHeadlessTerm(first);return createNodeTerm(first??{})}function isTermEmulator(obj){if(typeof obj!=="object"||obj===null)return!1;let o=obj;return typeof o.feed==="function"&&typeof o.screen==="object"&&o.screen!==null}function isTermBackend(obj){if(typeof obj!=="object"||obj===null)return!1;let o=obj;return typeof o.init==="function"&&typeof o.name==="string"&&typeof o.destroy==="function"}function isHeadlessDims(obj){if(typeof obj!=="object"||obj===null)return!1;let o=obj;return typeof o.cols==="number"&&typeof o.rows==="number"&&!("stdout"in o)&&!("stdin"in o)}function createNodeTerm(options){let stdout=options.stdout??process.stdout,stdin=options.stdin??process.stdin,cachedCursor=options.cursor??detectCursor(stdout),cachedInput=detectInput(stdin),cachedColor=options.color!==void 0?options.color:detectColor(stdout),cachedUnicode=options.unicode??detectUnicode(),detectedCaps=options.caps?{...defaultCaps(),...options.caps}:stdin.isTTY?detectTerminalCaps():void 0,styleInstance=createStyle({level:cachedColor}),provider=null,getProvider=()=>{if(!provider)provider=createTermProvider(stdin,stdout,{cols:stdout.columns||80,rows:stdout.rows||24});return provider},_frame,termBase={hasCursor:()=>cachedCursor,hasInput:()=>cachedInput,hasColor:()=>cachedColor,hasUnicode:()=>cachedUnicode,caps:detectedCaps,stdout,stdin,write:(str)=>{stdout.write(str)},writeLine:(str)=>{stdout.write(str+`
|
|
60
60
|
`)},getState:()=>getProvider().getState(),subscribe:(listener)=>getProvider().subscribe(listener),events:()=>getProvider().events(),stripAnsi:stripAnsi3,paint:(buffer,prev)=>{let output=outputPhase(prev,buffer);return _frame=createTextFrame(buffer),output},[Symbol.dispose]:()=>{if(provider)provider[Symbol.dispose]()}};return finalizeTerm(styleInstance,termBase,{get:()=>_frame},{defineProperties:{cols:{get:()=>stdout.isTTY?stdout.columns:void 0,enumerable:!0},rows:{get:()=>stdout.isTTY?stdout.rows:void 0,enumerable:!0}}})}function createHeadlessTerm(dims){let disposed=!1,controller=new AbortController,_frame,termBase={hasCursor:()=>!1,hasInput:()=>!1,hasColor:()=>null,hasUnicode:()=>!1,caps:void 0,stdout:process.stdout,stdin:process.stdin,write:()=>{},writeLine:()=>{},getState:()=>dims,subscribe:()=>()=>{},async*events(){if(disposed)return;await new Promise((r)=>controller.signal.addEventListener("abort",()=>r(),{once:!0}))},stripAnsi:stripAnsi3,paint:(_buffer,_prev)=>{return _frame=createTextFrame(_buffer),""},[Symbol.dispose]:()=>{if(disposed)return;disposed=!0,controller.abort()}};return finalizeTerm(createStyle({level:null}),termBase,{get:()=>_frame},{defineProperties:{cols:{get:()=>dims.cols,enumerable:!0},rows:{get:()=>dims.rows,enumerable:!0}}})}function createBackendTerm(emulator){let controller=new AbortController,eq=createEventQueue(controller),{stdout,resizeListeners,updateDims}=createEmulatorStdout((s)=>emulator.feed(s),emulator.cols,emulator.rows),subscribers=new Set,_frame,termBase={hasCursor:()=>!0,hasInput:()=>!0,hasColor:()=>"truecolor",hasUnicode:()=>!0,caps:void 0,stdout,stdin:process.stdin,write:(str)=>emulator.feed(str),writeLine:(str)=>emulator.feed(str+`
|
|
61
61
|
`),getState:()=>({cols:emulator.cols,rows:emulator.rows}),subscribe:(listener)=>{return subscribers.add(listener),()=>subscribers.delete(listener)},events:()=>eq.events(),resize:(cols,rows)=>{emulator.resize(cols,rows),subscribers.forEach((l)=>l({cols,rows})),eq.push({type:"resize",data:{cols,rows}}),updateDims(cols,rows),resizeListeners.forEach((l)=>l())},sendInput:(data)=>eq.push(...parseInputEvents(data)),stripAnsi:stripAnsi3,paint:(buffer,prev)=>{let output=outputPhase(prev,buffer);if(output)emulator.feed(output);return _frame=createTextFrame(buffer),output},_emulator:emulator,[Symbol.dispose]:()=>{eq.dispose(),controller.abort(),subscribers.clear(),emulator.close().catch(()=>{})}};return finalizeTerm(createStyle({level:"truecolor"}),termBase,{get:()=>_frame},{defineProperties:{cols:{get:()=>emulator.cols,enumerable:!0},rows:{get:()=>emulator.rows,enumerable:!0},screen:{get:()=>emulator.screen,enumerable:!0},scrollback:{get:()=>emulator.scrollback,enumerable:!0}},delegateFrom:emulator})}var ANSI_REGEX2;var init_term=__esm(()=>{init_src2();init_buffer();init_output_phase();init_detection2();init_term_provider();init_keys();init_mouse();ANSI_REGEX2=/\x1b\[[0-9;:]*m|\x9b[0-9;:]*m|\x1b\]8;;[^\x07\x1b]*(?:\x07|\x1b\\)|\x9d8;;[^\x07\x1b\x9c]*(?:\x07|\x1b\\|\x9c)/g});function patchConsole(console2,options){let suppress=options?.suppress??!1,capture=options?.capture??!0,entries=[],snapshot=entries,EMPTY=Object.freeze([]),stats={total:0,errors:0,warnings:0},subscribers=new Set,originals=new Map;for(let method of METHODS)originals.set(method,console2[method].bind(console2));let notifyPending=!1;function scheduleNotify(){if(notifyPending)return;notifyPending=!0,queueMicrotask(()=>{notifyPending=!1,subscribers.forEach((subscriber)=>subscriber())})}for(let method of METHODS){let original=originals.get(method);console2[method]=(...args)=>{if(stats.total++,method==="error")stats.errors++;else if(method==="warn")stats.warnings++;if(capture){let entry={method,args,stream:STDERR_METHODS.has(method)?"stderr":"stdout"};entries.push(entry),snapshot=entries.slice()}if(!suppress)original(...args);scheduleNotify()}}function restore(){for(let method of METHODS)console2[method]=originals.get(method)}return{getSnapshot(){return capture?snapshot:EMPTY},getStats(){return{...stats}},subscribe(onStoreChange){return subscribers.add(onStoreChange),()=>{subscribers.delete(onStoreChange)}},dispose(){restore(),subscribers.clear()},[Symbol.dispose](){this.dispose()}}}var METHODS,STDERR_METHODS;var init_patch_console=__esm(()=>{METHODS=["log","info","warn","error","debug"],STDERR_METHODS=new Set(["error","warn"])});import{openSync,writeSync,closeSync}from"node:fs";import{createLogger as createLogger4}from"loggily";function createOutputGuard(options){let savedStdoutWrite=process.stdout.write,savedStderrWrite=process.stderr.write,origStdoutWrite=savedStdoutWrite.bind(process.stdout),origStderrWrite=savedStderrWrite.bind(process.stderr),silveryWriting=!1,disposed=!1,suppressedCount=0,redirectedCount=0,stderrLog=options?.stderrLog??process.env.DEBUG_LOG,stderrFd=null,stderrBuffer=[];if(stderrLog)try{stderrFd=openSync(stderrLog,"a")}catch{}process.stdout.write=function(chunk,...args){if(silveryWriting)return origStdoutWrite(chunk,...args);suppressedCount++;let preview=typeof chunk==="string"?chunk.slice(0,60):"<binary>";return log4?.debug?.(`suppressed stdout write (${suppressedCount}): ${JSON.stringify(preview)}`),!0},process.stderr.write=function(chunk,..._args){let str=typeof chunk==="string"?chunk:chunk.toString();if(redirectedCount++,stderrFd!==null){try{writeSync(stderrFd,str)}catch{}return!0}if(options?.bufferStderr)return stderrBuffer.push(str),!0;return!0};let{log:savedConsoleLog,info:savedConsoleInfo,warn:savedConsoleWarn,error:savedConsoleError,debug:savedConsoleDebug}=console;function redirectConsole(...args){let str=args.map((a)=>typeof a==="string"?a:String(a)).join(" ")+`
|
|
62
62
|
`;if(redirectedCount++,stderrFd!==null){try{writeSync(stderrFd,str)}catch{}return}if(options?.bufferStderr){stderrBuffer.push(str);return}}console.log=redirectConsole,console.info=redirectConsole,console.warn=redirectConsole,console.error=redirectConsole,console.debug=redirectConsole,log4?.info?.("activated"+(stderrLog?` (stderr -> ${stderrLog})`:" (stderr suppressed)"));function dispose(){if(disposed)return;disposed=!0,process.stdout.write=savedStdoutWrite,process.stderr.write=savedStderrWrite,console.log=savedConsoleLog,console.info=savedConsoleInfo,console.warn=savedConsoleWarn,console.error=savedConsoleError,console.debug=savedConsoleDebug,log4?.info?.(`deactivated (suppressed ${suppressedCount} stdout, redirected ${redirectedCount} stderr)`);for(let line of stderrBuffer)origStderrWrite(line);if(stderrFd!==null){try{closeSync(stderrFd)}catch{}stderrFd=null}}return{writeStdout(data){silveryWriting=!0;try{return origStdoutWrite(data)}finally{silveryWriting=!1}},get active(){return!disposed},get suppressedCount(){return suppressedCount},get redirectedCount(){return redirectedCount},dispose,[Symbol.dispose]:dispose}}var log4;var init_output_guard=__esm(()=>{log4=createLogger4("silvery:guard")});var init_utils2=__esm(()=>{init_src2()});var init_underline=__esm(()=>{init_src2()});var init_hyperlink2=__esm(()=>{init_src2()});var init_ansi=__esm(()=>{init_src2()});var _lazyTerm,term,BG_OVERRIDE_CODE=9999;var init_ansi2=__esm(()=>{init_term();init_term();init_patch_console();init_output_guard();init_detection2();init_utils2();init_underline();init_hyperlink2();init_ansi();term=new Proxy({},{get(_target,prop,receiver){if(!_lazyTerm)_lazyTerm=createTerm();return Reflect.get(_lazyTerm,prop,receiver)},apply(_target,thisArg,args){if(!_lazyTerm)_lazyTerm=createTerm();return Reflect.apply(_lazyTerm,thisArg,args)},has(_target,prop){if(!_lazyTerm)_lazyTerm=createTerm();return Reflect.has(_lazyTerm,prop)}})});var YGEnums,ALIGN_AUTO,ALIGN_FLEX_START,ALIGN_CENTER,ALIGN_FLEX_END,ALIGN_STRETCH,ALIGN_BASELINE,ALIGN_SPACE_BETWEEN,ALIGN_SPACE_AROUND,DIMENSION_WIDTH,DIMENSION_HEIGHT,DIRECTION_INHERIT,DIRECTION_LTR,DIRECTION_RTL,DISPLAY_FLEX,DISPLAY_NONE,EDGE_LEFT,EDGE_TOP,EDGE_RIGHT,EDGE_BOTTOM,EDGE_START,EDGE_END,EDGE_HORIZONTAL,EDGE_VERTICAL,EDGE_ALL,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE,EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN,FLEX_DIRECTION_COLUMN,FLEX_DIRECTION_COLUMN_REVERSE,FLEX_DIRECTION_ROW,FLEX_DIRECTION_ROW_REVERSE,GUTTER_COLUMN,GUTTER_ROW,GUTTER_ALL,JUSTIFY_FLEX_START,JUSTIFY_CENTER,JUSTIFY_FLEX_END,JUSTIFY_SPACE_BETWEEN,JUSTIFY_SPACE_AROUND,JUSTIFY_SPACE_EVENLY,LOG_LEVEL_ERROR,LOG_LEVEL_WARN,LOG_LEVEL_INFO,LOG_LEVEL_DEBUG,LOG_LEVEL_VERBOSE,LOG_LEVEL_FATAL,MEASURE_MODE_UNDEFINED,MEASURE_MODE_EXACTLY,MEASURE_MODE_AT_MOST,NODE_TYPE_DEFAULT,NODE_TYPE_TEXT,OVERFLOW_VISIBLE,OVERFLOW_HIDDEN,OVERFLOW_SCROLL,POSITION_TYPE_STATIC,POSITION_TYPE_RELATIVE,POSITION_TYPE_ABSOLUTE,PRINT_OPTIONS_LAYOUT,PRINT_OPTIONS_STYLE,PRINT_OPTIONS_CHILDREN,UNIT_UNDEFINED,UNIT_POINT,UNIT_PERCENT,UNIT_AUTO,WRAP_NO_WRAP,WRAP_WRAP,WRAP_WRAP_REVERSE,wrapAsm=(E)=>{function _(E2,_2,T2){let N2=E2[_2];E2[_2]=function(...E3){return T2.call(this,N2,...E3)}}for(let T2 of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"]){let N2={[YGEnums.UNIT_POINT]:E.Node.prototype[T2],[YGEnums.UNIT_PERCENT]:E.Node.prototype[`${T2}Percent`],[YGEnums.UNIT_AUTO]:E.Node.prototype[`${T2}Auto`]};_(E.Node.prototype,T2,function(E2,..._2){let I,L,O=_2.pop();if(O==="auto")I=YGEnums.UNIT_AUTO,L=void 0;else if(typeof O=="object")I=O.unit,L=O.valueOf();else if(I=typeof O=="string"&&O.endsWith("%")?YGEnums.UNIT_PERCENT:YGEnums.UNIT_POINT,L=parseFloat(O),!Number.isNaN(O)&&Number.isNaN(L))throw Error(`Invalid value ${O} for ${T2}`);if(!N2[I])throw Error(`Failed to execute "${T2}": Unsupported unit '${O}'`);return L!==void 0?N2[I].call(this,..._2,L):N2[I].call(this,..._2)})}function T(_2){return E.MeasureCallback.implement({measure:(...E2)=>{let{width:T2,height:N2}=_2(...E2);return{width:T2??NaN,height:N2??NaN}}})}function N(_2){return E.DirtiedCallback.implement({dirtied:_2})}return _(E.Node.prototype,"setMeasureFunc",function(E2,_2){return _2?E2.call(this,T(_2)):this.unsetMeasureFunc()}),_(E.Node.prototype,"setDirtiedFunc",function(E2,_2){E2.call(this,N(_2))}),_(E.Config.prototype,"free",function(){E.Config.destroy(this)}),_(E.Node,"create",(_2,T2)=>T2?E.Node.createWithConfig(T2):E.Node.createDefault()),_(E.Node.prototype,"free",function(){E.Node.destroy(this)}),_(E.Node.prototype,"freeRecursive",function(){for(let E2=0,_2=this.getChildCount();E2<_2;++E2)this.getChild(0).freeRecursive();this.free()}),_(E.Node.prototype,"calculateLayout",function(E2,_2=NaN,T2=NaN,N2=YGEnums.DIRECTION_LTR){return E2.call(this,_2,T2,N2)}),{Config:E.Config,Node:E.Node,...YGEnums}};var init_wrapAsm_f766f97f=__esm(()=>{YGEnums={},ALIGN_AUTO=YGEnums.ALIGN_AUTO=0,ALIGN_FLEX_START=YGEnums.ALIGN_FLEX_START=1,ALIGN_CENTER=YGEnums.ALIGN_CENTER=2,ALIGN_FLEX_END=YGEnums.ALIGN_FLEX_END=3,ALIGN_STRETCH=YGEnums.ALIGN_STRETCH=4,ALIGN_BASELINE=YGEnums.ALIGN_BASELINE=5,ALIGN_SPACE_BETWEEN=YGEnums.ALIGN_SPACE_BETWEEN=6,ALIGN_SPACE_AROUND=YGEnums.ALIGN_SPACE_AROUND=7,DIMENSION_WIDTH=YGEnums.DIMENSION_WIDTH=0,DIMENSION_HEIGHT=YGEnums.DIMENSION_HEIGHT=1,DIRECTION_INHERIT=YGEnums.DIRECTION_INHERIT=0,DIRECTION_LTR=YGEnums.DIRECTION_LTR=1,DIRECTION_RTL=YGEnums.DIRECTION_RTL=2,DISPLAY_FLEX=YGEnums.DISPLAY_FLEX=0,DISPLAY_NONE=YGEnums.DISPLAY_NONE=1,EDGE_LEFT=YGEnums.EDGE_LEFT=0,EDGE_TOP=YGEnums.EDGE_TOP=1,EDGE_RIGHT=YGEnums.EDGE_RIGHT=2,EDGE_BOTTOM=YGEnums.EDGE_BOTTOM=3,EDGE_START=YGEnums.EDGE_START=4,EDGE_END=YGEnums.EDGE_END=5,EDGE_HORIZONTAL=YGEnums.EDGE_HORIZONTAL=6,EDGE_VERTICAL=YGEnums.EDGE_VERTICAL=7,EDGE_ALL=YGEnums.EDGE_ALL=8,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS=YGEnums.EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS=0,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE=YGEnums.EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE=1,EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN=YGEnums.EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN=2,FLEX_DIRECTION_COLUMN=YGEnums.FLEX_DIRECTION_COLUMN=0,FLEX_DIRECTION_COLUMN_REVERSE=YGEnums.FLEX_DIRECTION_COLUMN_REVERSE=1,FLEX_DIRECTION_ROW=YGEnums.FLEX_DIRECTION_ROW=2,FLEX_DIRECTION_ROW_REVERSE=YGEnums.FLEX_DIRECTION_ROW_REVERSE=3,GUTTER_COLUMN=YGEnums.GUTTER_COLUMN=0,GUTTER_ROW=YGEnums.GUTTER_ROW=1,GUTTER_ALL=YGEnums.GUTTER_ALL=2,JUSTIFY_FLEX_START=YGEnums.JUSTIFY_FLEX_START=0,JUSTIFY_CENTER=YGEnums.JUSTIFY_CENTER=1,JUSTIFY_FLEX_END=YGEnums.JUSTIFY_FLEX_END=2,JUSTIFY_SPACE_BETWEEN=YGEnums.JUSTIFY_SPACE_BETWEEN=3,JUSTIFY_SPACE_AROUND=YGEnums.JUSTIFY_SPACE_AROUND=4,JUSTIFY_SPACE_EVENLY=YGEnums.JUSTIFY_SPACE_EVENLY=5,LOG_LEVEL_ERROR=YGEnums.LOG_LEVEL_ERROR=0,LOG_LEVEL_WARN=YGEnums.LOG_LEVEL_WARN=1,LOG_LEVEL_INFO=YGEnums.LOG_LEVEL_INFO=2,LOG_LEVEL_DEBUG=YGEnums.LOG_LEVEL_DEBUG=3,LOG_LEVEL_VERBOSE=YGEnums.LOG_LEVEL_VERBOSE=4,LOG_LEVEL_FATAL=YGEnums.LOG_LEVEL_FATAL=5,MEASURE_MODE_UNDEFINED=YGEnums.MEASURE_MODE_UNDEFINED=0,MEASURE_MODE_EXACTLY=YGEnums.MEASURE_MODE_EXACTLY=1,MEASURE_MODE_AT_MOST=YGEnums.MEASURE_MODE_AT_MOST=2,NODE_TYPE_DEFAULT=YGEnums.NODE_TYPE_DEFAULT=0,NODE_TYPE_TEXT=YGEnums.NODE_TYPE_TEXT=1,OVERFLOW_VISIBLE=YGEnums.OVERFLOW_VISIBLE=0,OVERFLOW_HIDDEN=YGEnums.OVERFLOW_HIDDEN=1,OVERFLOW_SCROLL=YGEnums.OVERFLOW_SCROLL=2,POSITION_TYPE_STATIC=YGEnums.POSITION_TYPE_STATIC=0,POSITION_TYPE_RELATIVE=YGEnums.POSITION_TYPE_RELATIVE=1,POSITION_TYPE_ABSOLUTE=YGEnums.POSITION_TYPE_ABSOLUTE=2,PRINT_OPTIONS_LAYOUT=YGEnums.PRINT_OPTIONS_LAYOUT=1,PRINT_OPTIONS_STYLE=YGEnums.PRINT_OPTIONS_STYLE=2,PRINT_OPTIONS_CHILDREN=YGEnums.PRINT_OPTIONS_CHILDREN=4,UNIT_UNDEFINED=YGEnums.UNIT_UNDEFINED=0,UNIT_POINT=YGEnums.UNIT_POINT=1,UNIT_PERCENT=YGEnums.UNIT_PERCENT=2,UNIT_AUTO=YGEnums.UNIT_AUTO=3,WRAP_NO_WRAP=YGEnums.WRAP_NO_WRAP=0,WRAP_WRAP=YGEnums.WRAP_WRAP=1,WRAP_WRAP_REVERSE=YGEnums.WRAP_WRAP_REVERSE=2});async function initYoga(t){let r=await yoga({instantiateWasm(n,r2){WebAssembly.instantiate(t,n).then((n2)=>{n2 instanceof WebAssembly.Instance?r2(n2):r2(n2.instance)})}});return wrapAsm(r)}var yoga;var init_dist=__esm(()=>{init_wrapAsm_f766f97f();init_wrapAsm_f766f97f();yoga=(()=>{var n=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){u||(u=t!==void 0?t:{}),u.ready=new Promise(function(n2,t2){c=n2,f=t2});var r,e,a=Object.assign({},u),i="";typeof document<"u"&&document.currentScript&&(i=document.currentScript.src),n&&(i=n),i=i.indexOf("blob:")!==0?i.substr(0,i.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var o=console.log.bind(console),s=console.warn.bind(console);Object.assign(u,a),a=null,typeof WebAssembly!="object"&&w("no native wasm support detected");var u,c,f,l,h=!1;function p(n2,t2,r2){r2=t2+r2;for(var e2="";!(t2>=r2);){var a2=n2[t2++];if(!a2)break;if(128&a2){var i2=63&n2[t2++];if((224&a2)==192)e2+=String.fromCharCode((31&a2)<<6|i2);else{var o2=63&n2[t2++];65536>(a2=(240&a2)==224?(15&a2)<<12|i2<<6|o2:(7&a2)<<18|i2<<12|o2<<6|63&n2[t2++])?e2+=String.fromCharCode(a2):(a2-=65536,e2+=String.fromCharCode(55296|a2>>10,56320|1023&a2))}}else e2+=String.fromCharCode(a2)}return e2}function v(){var n2=l.buffer;u.HEAP8=d=new Int8Array(n2),u.HEAP16=m=new Int16Array(n2),u.HEAP32=g=new Int32Array(n2),u.HEAPU8=y=new Uint8Array(n2),u.HEAPU16=E=new Uint16Array(n2),u.HEAPU32=_=new Uint32Array(n2),u.HEAPF32=T=new Float32Array(n2),u.HEAPF64=L=new Float64Array(n2)}var d,y,m,E,g,_,T,L,A,O=[],P=[],b=[],N=0,I=null;function w(n2){throw s(n2="Aborted("+n2+")"),h=!0,f(n2=new WebAssembly.RuntimeError(n2+". Build with -sASSERTIONS for more info.")),n2}function S(){return r.startsWith("data:application/octet-stream;base64,")}function R(){try{throw"both async and sync fetching of the wasm failed"}catch(n2){w(n2)}}function C(n2){for(;0<n2.length;)n2.shift()(u)}function W(n2){if(n2===void 0)return"_unknown";var t2=(n2=n2.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t2&&57>=t2?"_"+n2:n2}function U(n2,t2){return n2=W(n2),function(){return t2.apply(this,arguments)}}r="yoga.wasm",S()||(r=i+r);var M=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function D(n2){var t2=Error,r2=U(n2,function(t3){this.name=n2,this.message=t3,(t3=Error(t3).stack)!==void 0&&(this.stack=this.toString()+`
|
|
63
63
|
`+t3.replace(/^Error(:[^\n]*)?\n/,""))});return r2.prototype=Object.create(t2.prototype),r2.prototype.constructor=r2,r2.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},r2}var k=void 0;function V(n2){throw new k(n2)}var j=(n2)=>(n2||V("Cannot use deleted val. handle = "+n2),M[n2].value),G=(n2)=>{switch(n2){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t2=F.length?F.pop():M.length;return M[t2]={fa:1,value:n2},t2}},Y=void 0,X=void 0;function B(n2){for(var t2="";y[n2];)t2+=X[y[n2++]];return t2}var H=[];function x(){for(;H.length;){var n2=H.pop();n2.L.Z=!1,n2.delete()}}var z=void 0,$={};function Z(n2,t2){for(t2===void 0&&V("ptr should not be undefined");n2.P;)t2=n2.aa(t2),n2=n2.P;return t2}var J={};function q(n2){var t2=B(n2=nz(n2));return nZ(n2),t2}function K(n2,t2){var r2=J[n2];return r2===void 0&&V(t2+" has unknown type "+q(n2)),r2}function Q(){}var nn=!1;function nt(n2){--n2.count.value,n2.count.value===0&&(n2.S?n2.T.V(n2.S):n2.O.M.V(n2.N))}var nr={},ne=void 0;function na(n2){throw new ne(n2)}function ni(n2,t2){return t2.O&&t2.N||na("makeClassHandle requires ptr and ptrType"),!!t2.T!=!!t2.S&&na("Both smartPtrType and smartPtr must be specified"),t2.count={value:1},no(Object.create(n2,{L:{value:t2}}))}function no(n2){return typeof FinalizationRegistry>"u"?(no=(n3)=>n3,n2):(nn=new FinalizationRegistry((n3)=>{nt(n3.L)}),no=(n3)=>{var t2=n3.L;return t2.S&&nn.register(n3,{L:t2},n3),n3},Q=(n3)=>{nn.unregister(n3)},no(n2))}var ns={};function nu(n2){for(;n2.length;){var t2=n2.pop();n2.pop()(t2)}}function nc(n2){return this.fromWireType(g[n2>>2])}var nf={},nl={};function nh(n2,t2,r2){function e2(t3){(t3=r2(t3)).length!==n2.length&&na("Mismatched type converter count");for(var e3=0;e3<n2.length;++e3)nv(n2[e3],t3[e3])}n2.forEach(function(n3){nl[n3]=t2});var a2=Array(t2.length),i2=[],o2=0;t2.forEach((n3,t3)=>{J.hasOwnProperty(n3)?a2[t3]=J[n3]:(i2.push(n3),nf.hasOwnProperty(n3)||(nf[n3]=[]),nf[n3].push(()=>{a2[t3]=J[n3],++o2===i2.length&&e2(a2)}))}),i2.length===0&&e2(a2)}function np(n2){switch(n2){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+n2)}}function nv(n2,t2,r2={}){if(!("argPackAdvance"in t2))throw TypeError("registerType registeredInstance requires argPackAdvance");var e2=t2.name;if(n2||V('type "'+e2+'" must have a positive integer typeid pointer'),J.hasOwnProperty(n2)){if(r2.ta)return;V("Cannot register type '"+e2+"' twice")}J[n2]=t2,delete nl[n2],nf.hasOwnProperty(n2)&&(t2=nf[n2],delete nf[n2],t2.forEach((n3)=>n3()))}function nd(n2){V(n2.L.O.M.name+" instance already deleted")}function ny(){}function nm(n2,t2,r2){if(n2[t2].R===void 0){var e2=n2[t2];n2[t2]=function(){return n2[t2].R.hasOwnProperty(arguments.length)||V("Function '"+r2+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n2[t2].R+")!"),n2[t2].R[arguments.length].apply(this,arguments)},n2[t2].R=[],n2[t2].R[e2.Y]=e2}}function nE(n2,t2,r2,e2,a2,i2,o2,s2){this.name=n2,this.constructor=t2,this.W=r2,this.V=e2,this.P=a2,this.oa=i2,this.aa=o2,this.ma=s2,this.ia=[]}function ng(n2,t2,r2){for(;t2!==r2;)t2.aa||V("Expected null or instance of "+r2.name+", got an instance of "+t2.name),n2=t2.aa(n2),t2=t2.P;return n2}function n_(n2,t2){return t2===null?(this.da&&V("null is not a valid "+this.name),0):(t2.L||V('Cannot pass "'+nC(t2)+'" as a '+this.name),t2.L.N||V("Cannot pass deleted object as a pointer of type "+this.name),ng(t2.L.N,t2.L.O.M,this.M))}function nT(n2,t2){if(t2===null){if(this.da&&V("null is not a valid "+this.name),this.ca){var r2=this.ea();return n2!==null&&n2.push(this.V,r2),r2}return 0}if(t2.L||V('Cannot pass "'+nC(t2)+'" as a '+this.name),t2.L.N||V("Cannot pass deleted object as a pointer of type "+this.name),!this.ba&&t2.L.O.ba&&V("Cannot convert argument of type "+(t2.L.T?t2.L.T.name:t2.L.O.name)+" to parameter type "+this.name),r2=ng(t2.L.N,t2.L.O.M,this.M),this.ca)switch(t2.L.S===void 0&&V("Passing raw pointer to smart pointer is illegal"),this.Aa){case 0:t2.L.T===this?r2=t2.L.S:V("Cannot convert argument of type "+(t2.L.T?t2.L.T.name:t2.L.O.name)+" to parameter type "+this.name);break;case 1:r2=t2.L.S;break;case 2:if(t2.L.T===this)r2=t2.L.S;else{var e2=t2.clone();r2=this.wa(r2,G(function(){e2.delete()})),n2!==null&&n2.push(this.V,r2)}break;default:V("Unsupporting sharing policy")}return r2}function nL(n2,t2){return t2===null?(this.da&&V("null is not a valid "+this.name),0):(t2.L||V('Cannot pass "'+nC(t2)+'" as a '+this.name),t2.L.N||V("Cannot pass deleted object as a pointer of type "+this.name),t2.L.O.ba&&V("Cannot convert argument of type "+t2.L.O.name+" to parameter type "+this.name),ng(t2.L.N,t2.L.O.M,this.M))}function nA(n2,t2,r2,e2){this.name=n2,this.M=t2,this.da=r2,this.ba=e2,this.ca=!1,this.V=this.wa=this.ea=this.ja=this.Aa=this.va=void 0,t2.P!==void 0?this.toWireType=nT:(this.toWireType=e2?n_:nL,this.U=null)}var nO=[];function nP(n2){var t2=nO[n2];return t2||(n2>=nO.length&&(nO.length=n2+1),nO[n2]=t2=A.get(n2)),t2}function nb(n2,t2){var r2,e2,a2=(n2=B(n2)).includes("j")?(r2=n2,e2=[],function(){if(e2.length=0,Object.assign(e2,arguments),r2.includes("j")){var n3=u["dynCall_"+r2];n3=e2&&e2.length?n3.apply(null,[t2].concat(e2)):n3.call(null,t2)}else n3=nP(t2).apply(null,e2);return n3}):nP(t2);return typeof a2!="function"&&V("unknown function pointer with signature "+n2+": "+t2),a2}var nN=void 0;function nI(n2,t2){var r2=[],e2={};throw t2.forEach(function n3(t3){e2[t3]||J[t3]||(nl[t3]?nl[t3].forEach(n3):(r2.push(t3),e2[t3]=!0))}),new nN(n2+": "+r2.map(q).join([", "]))}function nw(n2,t2,r2,e2,a2){var i2=t2.length;2>i2&&V("argTypes array size mismatch! Must at least get return value and 'this' types!");var o2=t2[1]!==null&&r2!==null,s2=!1;for(r2=1;r2<t2.length;++r2)if(t2[r2]!==null&&t2[r2].U===void 0){s2=!0;break}var u2=t2[0].name!=="void",c2=i2-2,f2=Array(c2),l2=[],h2=[];return function(){if(arguments.length!==c2&&V("function "+n2+" called with "+arguments.length+" arguments, expected "+c2+" args!"),h2.length=0,l2.length=o2?2:1,l2[0]=a2,o2){var r3=t2[1].toWireType(h2,this);l2[1]=r3}for(var i3=0;i3<c2;++i3)f2[i3]=t2[i3+2].toWireType(h2,arguments[i3]),l2.push(f2[i3]);if(i3=e2.apply(null,l2),s2)nu(h2);else for(var p2=o2?1:2;p2<t2.length;p2++){var v2=p2===1?r3:f2[p2-2];t2[p2].U!==null&&t2[p2].U(v2)}return u2?t2[0].fromWireType(i3):void 0}}function nS(n2,t2){for(var r2=[],e2=0;e2<n2;e2++)r2.push(_[t2+4*e2>>2]);return r2}function nR(n2){4<n2&&--M[n2].fa==0&&(M[n2]=void 0,F.push(n2))}function nC(n2){if(n2===null)return"null";var t2=typeof n2;return t2==="object"||t2==="array"||t2==="function"?n2.toString():""+n2}function nW(n2,t2){for(var r2="",e2=0;!(e2>=t2/2);++e2){var a2=m[n2+2*e2>>1];if(a2==0)break;r2+=String.fromCharCode(a2)}return r2}function nU(n2,t2,r2){if(r2===void 0&&(r2=2147483647),2>r2)return 0;r2-=2;var e2=t2;r2=r2<2*n2.length?r2/2:n2.length;for(var a2=0;a2<r2;++a2)m[t2>>1]=n2.charCodeAt(a2),t2+=2;return m[t2>>1]=0,t2-e2}function nM(n2){return 2*n2.length}function nF(n2,t2){for(var r2=0,e2="";!(r2>=t2/4);){var a2=g[n2+4*r2>>2];if(a2==0)break;++r2,65536<=a2?(a2-=65536,e2+=String.fromCharCode(55296|a2>>10,56320|1023&a2)):e2+=String.fromCharCode(a2)}return e2}function nD(n2,t2,r2){if(r2===void 0&&(r2=2147483647),4>r2)return 0;var e2=t2;r2=e2+r2-4;for(var a2=0;a2<n2.length;++a2){var i2=n2.charCodeAt(a2);if(55296<=i2&&57343>=i2&&(i2=65536+((1023&i2)<<10)|1023&n2.charCodeAt(++a2)),g[t2>>2]=i2,(t2+=4)+4>r2)break}return g[t2>>2]=0,t2-e2}function nk(n2){for(var t2=0,r2=0;r2<n2.length;++r2){var e2=n2.charCodeAt(r2);55296<=e2&&57343>=e2&&++r2,t2+=4}return t2}var nV={};function nj(n2){var t2=nV[n2];return t2===void 0?B(n2):t2}var nG=[],nY=[],nX=[null,[],[]];k=u.BindingError=D("BindingError"),u.count_emval_handles=function(){for(var n2=0,t2=5;t2<M.length;++t2)M[t2]!==void 0&&++n2;return n2},u.get_first_emval=function(){for(var n2=5;n2<M.length;++n2)if(M[n2]!==void 0)return M[n2];return null},Y=u.PureVirtualError=D("PureVirtualError");for(var nB=Array(256),nH=0;256>nH;++nH)nB[nH]=String.fromCharCode(nH);X=nB,u.getInheritedInstanceCount=function(){return Object.keys($).length},u.getLiveInheritedInstances=function(){var n2,t2=[];for(n2 in $)$.hasOwnProperty(n2)&&t2.push($[n2]);return t2},u.flushPendingDeletes=x,u.setDelayFunction=function(n2){z=n2,H.length&&z&&z(x)},ne=u.InternalError=D("InternalError"),ny.prototype.isAliasOf=function(n2){if(!(this instanceof ny&&n2 instanceof ny))return!1;var t2=this.L.O.M,r2=this.L.N,e2=n2.L.O.M;for(n2=n2.L.N;t2.P;)r2=t2.aa(r2),t2=t2.P;for(;e2.P;)n2=e2.aa(n2),e2=e2.P;return t2===e2&&r2===n2},ny.prototype.clone=function(){if(this.L.N||nd(this),this.L.$)return this.L.count.value+=1,this;var n2=no,t2=Object,r2=t2.create,e2=Object.getPrototypeOf(this),a2=this.L;return n2=n2(r2.call(t2,e2,{L:{value:{count:a2.count,Z:a2.Z,$:a2.$,N:a2.N,O:a2.O,S:a2.S,T:a2.T}}})),n2.L.count.value+=1,n2.L.Z=!1,n2},ny.prototype.delete=function(){this.L.N||nd(this),this.L.Z&&!this.L.$&&V("Object already scheduled for deletion"),Q(this),nt(this.L),this.L.$||(this.L.S=void 0,this.L.N=void 0)},ny.prototype.isDeleted=function(){return!this.L.N},ny.prototype.deleteLater=function(){return this.L.N||nd(this),this.L.Z&&!this.L.$&&V("Object already scheduled for deletion"),H.push(this),H.length===1&&z&&z(x),this.L.Z=!0,this},nA.prototype.pa=function(n2){return this.ja&&(n2=this.ja(n2)),n2},nA.prototype.ga=function(n2){this.V&&this.V(n2)},nA.prototype.argPackAdvance=8,nA.prototype.readValueFromPointer=nc,nA.prototype.deleteObject=function(n2){n2!==null&&n2.delete()},nA.prototype.fromWireType=function(n2){function t2(){return this.ca?ni(this.M.W,{O:this.va,N:e2,T:this,S:n2}):ni(this.M.W,{O:this,N:n2})}var r2,e2=this.pa(n2);if(!e2)return this.ga(n2),null;var a2=$[Z(this.M,e2)];if(a2!==void 0)return a2.L.count.value===0?(a2.L.N=e2,a2.L.S=n2,a2.clone()):(a2=a2.clone(),this.ga(n2),a2);if(!(a2=nr[a2=this.M.oa(e2)]))return t2.call(this);a2=this.ba?a2.ka:a2.pointerType;var i2=function n3(t3,r3,e3){return r3===e3?t3:e3.P===void 0?null:(t3=n3(t3,r3,e3.P))===null?null:e3.ma(t3)}(e2,this.M,a2.M);return i2===null?t2.call(this):this.ca?ni(a2.M.W,{O:a2,N:i2,T:this,S:n2}):ni(a2.M.W,{O:a2,N:i2})},nN=u.UnboundTypeError=D("UnboundTypeError");var nx={q:function(n2,t2,r2){n2=B(n2),t2=K(t2,"wrapper"),r2=j(r2);var e2=[].slice,a2=t2.M,i2=a2.W,o2=a2.P.W,s2=a2.P.constructor;for(var u2 in n2=U(n2,function(){a2.P.ia.forEach(function(n3){if(this[n3]===o2[n3])throw new Y("Pure virtual function "+n3+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:i2}),this.__construct.apply(this,e2.call(arguments))}),i2.__construct=function(){this===i2&&V("Pass correct 'this' to __construct");var n3=s2.implement.apply(void 0,[this].concat(e2.call(arguments)));Q(n3);var t3=n3.L;n3.notifyOnDestruction(),t3.$=!0,Object.defineProperties(this,{L:{value:t3}}),no(this),n3=Z(a2,n3=t3.N),$.hasOwnProperty(n3)?V("Tried to register registered instance: "+n3):$[n3]=this},i2.__destruct=function(){this===i2&&V("Pass correct 'this' to __destruct"),Q(this);var n3=this.L.N;n3=Z(a2,n3),$.hasOwnProperty(n3)?delete $[n3]:V("Tried to unregister unregistered instance: "+n3)},n2.prototype=Object.create(i2),r2)n2.prototype[u2]=r2[u2];return G(n2)},l:function(n2){var t2=ns[n2];delete ns[n2];var{ea:r2,V:e2,ha:a2}=t2;nh([n2],a2.map((n3)=>n3.sa).concat(a2.map((n3)=>n3.ya)),(n3)=>{var i2={};return a2.forEach((t3,r3)=>{var e3=n3[r3],o2=t3.qa,s2=t3.ra,u2=n3[r3+a2.length],c2=t3.xa,f2=t3.za;i2[t3.na]={read:(n4)=>e3.fromWireType(o2(s2,n4)),write:(n4,t4)=>{var r4=[];c2(f2,n4,u2.toWireType(r4,t4)),nu(r4)}}}),[{name:t2.name,fromWireType:function(n4){var t3,r3={};for(t3 in i2)r3[t3]=i2[t3].read(n4);return e2(n4),r3},toWireType:function(n4,t3){for(var a3 in i2)if(!(a3 in t3))throw TypeError('Missing field: "'+a3+'"');var o2=r2();for(a3 in i2)i2[a3].write(o2,t3[a3]);return n4!==null&&n4.push(e2,o2),o2},argPackAdvance:8,readValueFromPointer:nc,U:e2}]})},v:function(){},B:function(n2,t2,r2,e2,a2){var i2=np(r2);nv(n2,{name:t2=B(t2),fromWireType:function(n3){return!!n3},toWireType:function(n3,t3){return t3?e2:a2},argPackAdvance:8,readValueFromPointer:function(n3){if(r2===1)var e3=d;else if(r2===2)e3=m;else if(r2===4)e3=g;else throw TypeError("Unknown boolean type size: "+t2);return this.fromWireType(e3[n3>>i2])},U:null})},h:function(n2,t2,r2,e2,a2,i2,o2,s2,c2,f2,l2,h2,p2){l2=B(l2),i2=nb(a2,i2),s2&&(s2=nb(o2,s2)),f2&&(f2=nb(c2,f2)),p2=nb(h2,p2);var v2,d2=W(l2);v2=function(){nI("Cannot construct "+l2+" due to unbound types",[e2])},u.hasOwnProperty(d2)?(V("Cannot register public name '"+d2+"' twice"),nm(u,d2,d2),u.hasOwnProperty(void 0)&&V("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),u[d2].R[void 0]=v2):u[d2]=v2,nh([n2,t2,r2],e2?[e2]:[],function(t3){if(t3=t3[0],e2)var r3,a3=t3.M,o3=a3.W;else o3=ny.prototype;t3=U(d2,function(){if(Object.getPrototypeOf(this)!==c3)throw new k("Use 'new' to construct "+l2);if(h3.X===void 0)throw new k(l2+" has no accessible constructor");var n3=h3.X[arguments.length];if(n3===void 0)throw new k("Tried to invoke ctor of "+l2+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(h3.X).toString()+") parameters instead!");return n3.apply(this,arguments)});var c3=Object.create(o3,{constructor:{value:t3}});t3.prototype=c3;var h3=new nE(l2,t3,c3,p2,a3,i2,s2,f2);a3=new nA(l2,h3,!0,!1),o3=new nA(l2+"*",h3,!1,!1);var v3=new nA(l2+" const*",h3,!1,!0);return nr[n2]={pointerType:o3,ka:v3},r3=t3,u.hasOwnProperty(d2)||na("Replacing nonexistant public symbol"),u[d2]=r3,u[d2].Y=void 0,[a3,o3,v3]})},d:function(n2,t2,r2,e2,a2,i2,o2){var s2=nS(r2,e2);t2=B(t2),i2=nb(a2,i2),nh([],[n2],function(n3){function e3(){nI("Cannot call "+a3+" due to unbound types",s2)}var a3=(n3=n3[0]).name+"."+t2;t2.startsWith("@@")&&(t2=Symbol[t2.substring(2)]);var u2=n3.M.constructor;return u2[t2]===void 0?(e3.Y=r2-1,u2[t2]=e3):(nm(u2,t2,a3),u2[t2].R[r2-1]=e3),nh([],s2,function(n4){return n4=nw(a3,[n4[0],null].concat(n4.slice(1)),null,i2,o2),u2[t2].R===void 0?(n4.Y=r2-1,u2[t2]=n4):u2[t2].R[r2-1]=n4,[]}),[]})},p:function(n2,t2,r2,e2,a2,i2){0<t2||w();var o2=nS(t2,r2);a2=nb(e2,a2),nh([],[n2],function(n3){var r3="constructor "+(n3=n3[0]).name;if(n3.M.X===void 0&&(n3.M.X=[]),n3.M.X[t2-1]!==void 0)throw new k("Cannot register multiple constructors with identical number of parameters ("+(t2-1)+") for class '"+n3.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return n3.M.X[t2-1]=()=>{nI("Cannot construct "+n3.name+" due to unbound types",o2)},nh([],o2,function(e3){return e3.splice(1,0,null),n3.M.X[t2-1]=nw(r3,e3,null,a2,i2),[]}),[]})},a:function(n2,t2,r2,e2,a2,i2,o2,s2){var u2=nS(r2,e2);t2=B(t2),i2=nb(a2,i2),nh([],[n2],function(n3){function e3(){nI("Cannot call "+a3+" due to unbound types",u2)}var a3=(n3=n3[0]).name+"."+t2;t2.startsWith("@@")&&(t2=Symbol[t2.substring(2)]),s2&&n3.M.ia.push(t2);var c2=n3.M.W,f2=c2[t2];return f2===void 0||f2.R===void 0&&f2.className!==n3.name&&f2.Y===r2-2?(e3.Y=r2-2,e3.className=n3.name,c2[t2]=e3):(nm(c2,t2,a3),c2[t2].R[r2-2]=e3),nh([],u2,function(e4){return e4=nw(a3,e4,n3,i2,o2),c2[t2].R===void 0?(e4.Y=r2-2,c2[t2]=e4):c2[t2].R[r2-2]=e4,[]}),[]})},A:function(n2,t2){nv(n2,{name:t2=B(t2),fromWireType:function(n3){var t3=j(n3);return nR(n3),t3},toWireType:function(n3,t3){return G(t3)},argPackAdvance:8,readValueFromPointer:nc,U:null})},n:function(n2,t2,r2){r2=np(r2),nv(n2,{name:t2=B(t2),fromWireType:function(n3){return n3},toWireType:function(n3,t3){return t3},argPackAdvance:8,readValueFromPointer:function(n3,t3){switch(t3){case 2:return function(n4){return this.fromWireType(T[n4>>2])};case 3:return function(n4){return this.fromWireType(L[n4>>3])};default:throw TypeError("Unknown float type: "+n3)}}(t2,r2),U:null})},e:function(n2,t2,r2,e2,a2){t2=B(t2),a2===-1&&(a2=4294967295),a2=np(r2);var i2=(n3)=>n3;if(e2===0){var o2=32-8*r2;i2=(n3)=>n3<<o2>>>o2}r2=t2.includes("unsigned")?function(n3,t3){return t3>>>0}:function(n3,t3){return t3},nv(n2,{name:t2,fromWireType:i2,toWireType:r2,argPackAdvance:8,readValueFromPointer:function(n3,t3,r3){switch(t3){case 0:return r3?function(n4){return d[n4]}:function(n4){return y[n4]};case 1:return r3?function(n4){return m[n4>>1]}:function(n4){return E[n4>>1]};case 2:return r3?function(n4){return g[n4>>2]}:function(n4){return _[n4>>2]};default:throw TypeError("Unknown integer type: "+n3)}}(t2,a2,e2!==0),U:null})},b:function(n2,t2,r2){function e2(n3){n3>>=2;var t3=_;return new a2(t3.buffer,t3[n3+1],t3[n3])}var a2=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t2];nv(n2,{name:r2=B(r2),fromWireType:e2,argPackAdvance:8,readValueFromPointer:e2},{ta:!0})},o:function(n2,t2){var r2=(t2=B(t2))==="std::string";nv(n2,{name:t2,fromWireType:function(n3){var t3=_[n3>>2],e2=n3+4;if(r2)for(var a2=e2,i2=0;i2<=t3;++i2){var o2=e2+i2;if(i2==t3||y[o2]==0){if(a2=a2?p(y,a2,o2-a2):"",s2===void 0)var s2=a2;else s2+="\x00"+a2;a2=o2+1}}else{for(i2=0,s2=Array(t3);i2<t3;++i2)s2[i2]=String.fromCharCode(y[e2+i2]);s2=s2.join("")}return nZ(n3),s2},toWireType:function(n3,t3){t3 instanceof ArrayBuffer&&(t3=new Uint8Array(t3));var e2,a2=typeof t3=="string";if(a2||t3 instanceof Uint8Array||t3 instanceof Uint8ClampedArray||t3 instanceof Int8Array||V("Cannot pass non-string to std::string"),r2&&a2){var i2=0;for(e2=0;e2<t3.length;++e2){var o2=t3.charCodeAt(e2);127>=o2?i2++:2047>=o2?i2+=2:55296<=o2&&57343>=o2?(i2+=4,++e2):i2+=3}e2=i2}else e2=t3.length;if(o2=(i2=n$(4+e2+1))+4,_[i2>>2]=e2,r2&&a2){if(a2=o2,o2=e2+1,e2=y,0<o2){o2=a2+o2-1;for(var s2=0;s2<t3.length;++s2){var u2=t3.charCodeAt(s2);if(55296<=u2&&57343>=u2&&(u2=65536+((1023&u2)<<10)|1023&t3.charCodeAt(++s2)),127>=u2){if(a2>=o2)break;e2[a2++]=u2}else{if(2047>=u2){if(a2+1>=o2)break;e2[a2++]=192|u2>>6}else{if(65535>=u2){if(a2+2>=o2)break;e2[a2++]=224|u2>>12}else{if(a2+3>=o2)break;e2[a2++]=240|u2>>18,e2[a2++]=128|u2>>12&63}e2[a2++]=128|u2>>6&63}e2[a2++]=128|63&u2}}e2[a2]=0}}else if(a2)for(a2=0;a2<e2;++a2)255<(s2=t3.charCodeAt(a2))&&(nZ(o2),V("String has UTF-16 code units that do not fit in 8 bits")),y[o2+a2]=s2;else for(a2=0;a2<e2;++a2)y[o2+a2]=t3[a2];return n3!==null&&n3.push(nZ,i2),i2},argPackAdvance:8,readValueFromPointer:nc,U:function(n3){nZ(n3)}})},k:function(n2,t2,r2){if(r2=B(r2),t2===2)var e2=nW,a2=nU,i2=nM,o2=()=>E,s2=1;else t2===4&&(e2=nF,a2=nD,i2=nk,o2=()=>_,s2=2);nv(n2,{name:r2,fromWireType:function(n3){for(var r3,a3=_[n3>>2],i3=o2(),u2=n3+4,c2=0;c2<=a3;++c2){var f2=n3+4+c2*t2;(c2==a3||i3[f2>>s2]==0)&&(u2=e2(u2,f2-u2),r3===void 0?r3=u2:r3+="\x00"+u2,u2=f2+t2)}return nZ(n3),r3},toWireType:function(n3,e3){typeof e3!="string"&&V("Cannot pass non-string to C++ string type "+r2);var o3=i2(e3),u2=n$(4+o3+t2);return _[u2>>2]=o3>>s2,a2(e3,u2+4,o3+t2),n3!==null&&n3.push(nZ,u2),u2},argPackAdvance:8,readValueFromPointer:nc,U:function(n3){nZ(n3)}})},m:function(n2,t2,r2,e2,a2,i2){ns[n2]={name:B(t2),ea:nb(r2,e2),V:nb(a2,i2),ha:[]}},c:function(n2,t2,r2,e2,a2,i2,o2,s2,u2,c2){ns[n2].ha.push({na:B(t2),sa:r2,qa:nb(e2,a2),ra:i2,ya:o2,xa:nb(s2,u2),za:c2})},C:function(n2,t2){nv(n2,{ua:!0,name:t2=B(t2),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},t:function(n2,t2,r2,e2,a2){n2=nG[n2],t2=j(t2),r2=nj(r2);var i2=[];return _[e2>>2]=G(i2),n2(t2,r2,i2,a2)},j:function(n2,t2,r2,e2){n2=nG[n2],n2(t2=j(t2),r2=nj(r2),null,e2)},f:nR,g:function(n2,t2){var r2,e2,a2=function(n3,t3){for(var r3=Array(n3),e3=0;e3<n3;++e3)r3[e3]=K(_[t3+4*e3>>2],"parameter "+e3);return r3}(n2,t2),i2=a2[0],o2=nY[t2=i2.name+"_$"+a2.slice(1).map(function(n3){return n3.name}).join("_")+"$"];if(o2!==void 0)return o2;var s2=Array(n2-1);return r2=(t3,r3,e3,o3)=>{for(var u2=0,c2=0;c2<n2-1;++c2)s2[c2]=a2[c2+1].readValueFromPointer(o3+u2),u2+=a2[c2+1].argPackAdvance;for(c2=0,t3=t3[r3].apply(t3,s2);c2<n2-1;++c2)a2[c2+1].la&&a2[c2+1].la(s2[c2]);if(!i2.ua)return i2.toWireType(e3,t3)},e2=nG.length,nG.push(r2),o2=e2,nY[t2]=o2},r:function(n2){4<n2&&(M[n2].fa+=1)},s:function(n2){nu(j(n2)),nR(n2)},i:function(){w("")},x:function(n2,t2,r2){y.copyWithin(n2,t2,t2+r2)},w:function(n2){var t2=y.length;if(2147483648<(n2>>>=0))return!1;for(var r2=1;4>=r2;r2*=2){var e2=t2*(1+0.2/r2);e2=Math.min(e2,n2+100663296);var a2=Math,i2=a2.min;e2=Math.max(n2,e2),e2+=(65536-e2%65536)%65536;n:{var o2=l.buffer;try{l.grow(i2.call(a2,2147483648,e2)-o2.byteLength+65535>>>16),v();var s2=1;break n}catch(n3){}s2=void 0}if(s2)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(n2,t2,r2,e2){for(var a2=0,i2=0;i2<r2;i2++){var u2=_[t2>>2],c2=_[t2+4>>2];t2+=8;for(var f2=0;f2<c2;f2++){var l2=y[u2+f2],h2=nX[n2];l2===0||l2===10?((n2===1?o:s)(p(h2,0)),h2.length=0):h2.push(l2)}a2+=c2}return _[e2>>2]=a2,0}};(function(){function n2(n3){u.asm=n3.exports,l=u.asm.D,v(),A=u.asm.I,P.unshift(u.asm.E),--N==0&&I&&(n3=I,I=null,n3())}function t2(t3){n2(t3.instance)}function e2(n3){return(typeof fetch=="function"?fetch(r,{credentials:"same-origin"}).then(function(n4){if(!n4.ok)throw"failed to load wasm binary file at '"+r+"'";return n4.arrayBuffer()}).catch(function(){return R()}):Promise.resolve().then(function(){return R()})).then(function(n4){return WebAssembly.instantiate(n4,a2)}).then(function(n4){return n4}).then(n3,function(n4){s("failed to asynchronously prepare wasm: "+n4),w(n4)})}var a2={a:nx};if(N++,u.instantiateWasm)try{return u.instantiateWasm(a2,n2)}catch(n3){s("Module.instantiateWasm callback failed with error: "+n3),f(n3)}(typeof WebAssembly.instantiateStreaming!="function"||S()||typeof fetch!="function"?e2(t2):fetch(r,{credentials:"same-origin"}).then(function(n3){return WebAssembly.instantiateStreaming(n3,a2).then(t2,function(n4){return s("wasm streaming compile failed: "+n4),s("falling back to ArrayBuffer instantiation"),e2(t2)})})).catch(f)})();var nz=u.___getTypeName=function(){return(nz=u.___getTypeName=u.asm.F).apply(null,arguments)};function n$(){return(n$=u.asm.H).apply(null,arguments)}function nZ(){return(nZ=u.asm.J).apply(null,arguments)}function nJ(){0<N||(C(O),0<N||e||(e=!0,u.calledRun=!0,h||(C(P),c(u),C(b))))}return u.__embind_initialize_bindings=function(){return(u.__embind_initialize_bindings=u.asm.G).apply(null,arguments)},u.dynCall_jiji=function(){return(u.dynCall_jiji=u.asm.K).apply(null,arguments)},I=function n2(){e||nJ(),e||(I=n2)},nJ(),t.ready}})()});var exports_node={};__export(exports_node,{default:()=>Yoga,WRAP_WRAP_REVERSE:()=>WRAP_WRAP_REVERSE,WRAP_WRAP:()=>WRAP_WRAP,WRAP_NO_WRAP:()=>WRAP_NO_WRAP,UNIT_UNDEFINED:()=>UNIT_UNDEFINED,UNIT_POINT:()=>UNIT_POINT,UNIT_PERCENT:()=>UNIT_PERCENT,UNIT_AUTO:()=>UNIT_AUTO,PRINT_OPTIONS_STYLE:()=>PRINT_OPTIONS_STYLE,PRINT_OPTIONS_LAYOUT:()=>PRINT_OPTIONS_LAYOUT,PRINT_OPTIONS_CHILDREN:()=>PRINT_OPTIONS_CHILDREN,POSITION_TYPE_STATIC:()=>POSITION_TYPE_STATIC,POSITION_TYPE_RELATIVE:()=>POSITION_TYPE_RELATIVE,POSITION_TYPE_ABSOLUTE:()=>POSITION_TYPE_ABSOLUTE,OVERFLOW_VISIBLE:()=>OVERFLOW_VISIBLE,OVERFLOW_SCROLL:()=>OVERFLOW_SCROLL,OVERFLOW_HIDDEN:()=>OVERFLOW_HIDDEN,NODE_TYPE_TEXT:()=>NODE_TYPE_TEXT,NODE_TYPE_DEFAULT:()=>NODE_TYPE_DEFAULT,MEASURE_MODE_UNDEFINED:()=>MEASURE_MODE_UNDEFINED,MEASURE_MODE_EXACTLY:()=>MEASURE_MODE_EXACTLY,MEASURE_MODE_AT_MOST:()=>MEASURE_MODE_AT_MOST,LOG_LEVEL_WARN:()=>LOG_LEVEL_WARN,LOG_LEVEL_VERBOSE:()=>LOG_LEVEL_VERBOSE,LOG_LEVEL_INFO:()=>LOG_LEVEL_INFO,LOG_LEVEL_FATAL:()=>LOG_LEVEL_FATAL,LOG_LEVEL_ERROR:()=>LOG_LEVEL_ERROR,LOG_LEVEL_DEBUG:()=>LOG_LEVEL_DEBUG,JUSTIFY_SPACE_EVENLY:()=>JUSTIFY_SPACE_EVENLY,JUSTIFY_SPACE_BETWEEN:()=>JUSTIFY_SPACE_BETWEEN,JUSTIFY_SPACE_AROUND:()=>JUSTIFY_SPACE_AROUND,JUSTIFY_FLEX_START:()=>JUSTIFY_FLEX_START,JUSTIFY_FLEX_END:()=>JUSTIFY_FLEX_END,JUSTIFY_CENTER:()=>JUSTIFY_CENTER,GUTTER_ROW:()=>GUTTER_ROW,GUTTER_COLUMN:()=>GUTTER_COLUMN,GUTTER_ALL:()=>GUTTER_ALL,FLEX_DIRECTION_ROW_REVERSE:()=>FLEX_DIRECTION_ROW_REVERSE,FLEX_DIRECTION_ROW:()=>FLEX_DIRECTION_ROW,FLEX_DIRECTION_COLUMN_REVERSE:()=>FLEX_DIRECTION_COLUMN_REVERSE,FLEX_DIRECTION_COLUMN:()=>FLEX_DIRECTION_COLUMN,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:()=>EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS,EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN:()=>EXPERIMENTAL_FEATURE_FIX_ABSOLUTE_TRAILING_COLUMN_MARGIN,EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE:()=>EXPERIMENTAL_FEATURE_ABSOLUTE_PERCENTAGE_AGAINST_PADDING_EDGE,EDGE_VERTICAL:()=>EDGE_VERTICAL,EDGE_TOP:()=>EDGE_TOP,EDGE_START:()=>EDGE_START,EDGE_RIGHT:()=>EDGE_RIGHT,EDGE_LEFT:()=>EDGE_LEFT,EDGE_HORIZONTAL:()=>EDGE_HORIZONTAL,EDGE_END:()=>EDGE_END,EDGE_BOTTOM:()=>EDGE_BOTTOM,EDGE_ALL:()=>EDGE_ALL,DISPLAY_NONE:()=>DISPLAY_NONE,DISPLAY_FLEX:()=>DISPLAY_FLEX,DIRECTION_RTL:()=>DIRECTION_RTL,DIRECTION_LTR:()=>DIRECTION_LTR,DIRECTION_INHERIT:()=>DIRECTION_INHERIT,DIMENSION_WIDTH:()=>DIMENSION_WIDTH,DIMENSION_HEIGHT:()=>DIMENSION_HEIGHT,ALIGN_STRETCH:()=>ALIGN_STRETCH,ALIGN_SPACE_BETWEEN:()=>ALIGN_SPACE_BETWEEN,ALIGN_SPACE_AROUND:()=>ALIGN_SPACE_AROUND,ALIGN_FLEX_START:()=>ALIGN_FLEX_START,ALIGN_FLEX_END:()=>ALIGN_FLEX_END,ALIGN_CENTER:()=>ALIGN_CENTER,ALIGN_BASELINE:()=>ALIGN_BASELINE,ALIGN_AUTO:()=>ALIGN_AUTO});import{readFile as E}from"node:fs/promises";import{createRequire as _}from"node:module";var Yoga;var init_node=__esm(async()=>{init_dist();init_wrapAsm_f766f97f();Yoga=await initYoga(await E(_(import.meta.url).resolve("./yoga.wasm")))});var exports_yoga_adapter={};__export(exports_yoga_adapter,{initYogaEngine:()=>initYogaEngine,createYogaEngine:()=>createYogaEngine,YogaLayoutEngine:()=>YogaLayoutEngine});class YogaNodeAdapter{node;yoga;hasMeasureFunc=!1;constructor(node,yoga2){this.node=node,this.yoga=yoga2}getYogaNode(){return this.node}insertChild(child,index){let yogaChild=child.getYogaNode();this.node.insertChild(yogaChild,index)}removeChild(child){let yogaChild=child.getYogaNode();this.node.removeChild(yogaChild)}free(){this.node.free()}setMeasureFunc(measureFunc){this.hasMeasureFunc=!0,this.node.setMeasureFunc((width,widthMode,height,heightMode)=>{let widthModeStr=this.measureModeToString(widthMode),heightModeStr=this.measureModeToString(heightMode);return measureFunc(width,widthModeStr,height,heightModeStr)})}markDirty(){if(this.hasMeasureFunc)this.node.markDirty()}measureModeToString(mode){if(mode===this.yoga.MEASURE_MODE_EXACTLY)return"exactly";if(mode===this.yoga.MEASURE_MODE_AT_MOST)return"at-most";return"undefined"}setWidth(value){this.node.setWidth(value)}setWidthPercent(value){this.node.setWidthPercent(value)}setWidthAuto(){this.node.setWidthAuto()}setHeight(value){this.node.setHeight(value)}setHeightPercent(value){this.node.setHeightPercent(value)}setHeightAuto(){this.node.setHeightAuto()}setMinWidth(value){this.node.setMinWidth(value)}setMinWidthPercent(value){this.node.setMinWidthPercent(value)}setMinHeight(value){this.node.setMinHeight(value)}setMinHeightPercent(value){this.node.setMinHeightPercent(value)}setMaxWidth(value){this.node.setMaxWidth(value)}setMaxWidthPercent(value){this.node.setMaxWidthPercent(value)}setMaxHeight(value){this.node.setMaxHeight(value)}setMaxHeightPercent(value){this.node.setMaxHeightPercent(value)}setFlexGrow(value){this.node.setFlexGrow(value)}setFlexShrink(value){this.node.setFlexShrink(value)}setFlexBasis(value){this.node.setFlexBasis(value)}setFlexBasisPercent(value){this.node.setFlexBasisPercent(value)}setFlexBasisAuto(){this.node.setFlexBasisAuto()}setFlexDirection(direction){this.node.setFlexDirection(direction)}setFlexWrap(wrap){this.node.setFlexWrap(wrap)}setAlignItems(align){this.node.setAlignItems(align)}setAlignSelf(align){this.node.setAlignSelf(align)}setAlignContent(align){this.node.setAlignContent(align)}setJustifyContent(justify){this.node.setJustifyContent(justify)}setPadding(edge,value){this.node.setPadding(edge,value)}setMargin(edge,value){this.node.setMargin(edge,value)}setBorder(edge,value){this.node.setBorder(edge,value)}setGap(gutter,value){this.node.setGap(gutter,value)}setDisplay(display){this.node.setDisplay(display)}setPositionType(positionType){this.node.setPositionType(positionType)}setPosition(edge,value){this.node.setPosition(edge,value)}setPositionPercent(edge,value){this.node.setPositionPercent(edge,value)}setOverflow(overflow){this.node.setOverflow(overflow)}setAspectRatio(value){this.node.setAspectRatio(value)}calculateLayout(width,height,direction){this.node.calculateLayout(width,height,direction??this.yoga.DIRECTION_LTR)}getComputedLeft(){return this.node.getComputedLeft()}getComputedTop(){return this.node.getComputedTop()}getComputedWidth(){return this.node.getComputedWidth()}getComputedHeight(){return this.node.getComputedHeight()}}class YogaLayoutEngine{yoga;_constants;constructor(yoga2){this.yoga=yoga2,this._constants={FLEX_DIRECTION_COLUMN:yoga2.FLEX_DIRECTION_COLUMN,FLEX_DIRECTION_COLUMN_REVERSE:yoga2.FLEX_DIRECTION_COLUMN_REVERSE,FLEX_DIRECTION_ROW:yoga2.FLEX_DIRECTION_ROW,FLEX_DIRECTION_ROW_REVERSE:yoga2.FLEX_DIRECTION_ROW_REVERSE,WRAP_NO_WRAP:yoga2.WRAP_NO_WRAP,WRAP_WRAP:yoga2.WRAP_WRAP,WRAP_WRAP_REVERSE:yoga2.WRAP_WRAP_REVERSE,ALIGN_AUTO:yoga2.ALIGN_AUTO,ALIGN_FLEX_START:yoga2.ALIGN_FLEX_START,ALIGN_CENTER:yoga2.ALIGN_CENTER,ALIGN_FLEX_END:yoga2.ALIGN_FLEX_END,ALIGN_STRETCH:yoga2.ALIGN_STRETCH,ALIGN_BASELINE:yoga2.ALIGN_BASELINE,ALIGN_SPACE_BETWEEN:yoga2.ALIGN_SPACE_BETWEEN,ALIGN_SPACE_AROUND:yoga2.ALIGN_SPACE_AROUND,ALIGN_SPACE_EVENLY:yoga2.ALIGN_SPACE_EVENLY,JUSTIFY_FLEX_START:yoga2.JUSTIFY_FLEX_START,JUSTIFY_CENTER:yoga2.JUSTIFY_CENTER,JUSTIFY_FLEX_END:yoga2.JUSTIFY_FLEX_END,JUSTIFY_SPACE_BETWEEN:yoga2.JUSTIFY_SPACE_BETWEEN,JUSTIFY_SPACE_AROUND:yoga2.JUSTIFY_SPACE_AROUND,JUSTIFY_SPACE_EVENLY:yoga2.JUSTIFY_SPACE_EVENLY,EDGE_LEFT:yoga2.EDGE_LEFT,EDGE_TOP:yoga2.EDGE_TOP,EDGE_RIGHT:yoga2.EDGE_RIGHT,EDGE_BOTTOM:yoga2.EDGE_BOTTOM,EDGE_HORIZONTAL:yoga2.EDGE_HORIZONTAL,EDGE_VERTICAL:yoga2.EDGE_VERTICAL,EDGE_ALL:yoga2.EDGE_ALL,GUTTER_COLUMN:yoga2.GUTTER_COLUMN,GUTTER_ROW:yoga2.GUTTER_ROW,GUTTER_ALL:yoga2.GUTTER_ALL,DISPLAY_FLEX:yoga2.DISPLAY_FLEX,DISPLAY_NONE:yoga2.DISPLAY_NONE,POSITION_TYPE_STATIC:yoga2.POSITION_TYPE_STATIC,POSITION_TYPE_RELATIVE:yoga2.POSITION_TYPE_RELATIVE,POSITION_TYPE_ABSOLUTE:yoga2.POSITION_TYPE_ABSOLUTE,OVERFLOW_VISIBLE:yoga2.OVERFLOW_VISIBLE,OVERFLOW_HIDDEN:yoga2.OVERFLOW_HIDDEN,OVERFLOW_SCROLL:yoga2.OVERFLOW_SCROLL,DIRECTION_LTR:yoga2.DIRECTION_LTR,MEASURE_MODE_UNDEFINED:yoga2.MEASURE_MODE_UNDEFINED,MEASURE_MODE_EXACTLY:yoga2.MEASURE_MODE_EXACTLY,MEASURE_MODE_AT_MOST:yoga2.MEASURE_MODE_AT_MOST}}createNode(){return new YogaNodeAdapter(this.yoga.Node.create(),this.yoga)}get constants(){return this._constants}get name(){return"yoga"}}function createYogaEngine(yoga2){return new YogaLayoutEngine(yoga2)}async function initYogaEngine(){let{default:yoga2}=await init_node().then(() => exports_node);return new YogaLayoutEngine(yoga2)}var exports_flexily_zero_adapter={};__export(exports_flexily_zero_adapter,{createFlexilyZeroEngine:()=>createFlexilyZeroEngine,FlexilyZeroLayoutEngine:()=>FlexilyZeroLayoutEngine});import{ALIGN_AUTO as ALIGN_AUTO2,ALIGN_BASELINE as ALIGN_BASELINE2,ALIGN_CENTER as ALIGN_CENTER2,ALIGN_FLEX_END as ALIGN_FLEX_END2,ALIGN_FLEX_START as ALIGN_FLEX_START2,ALIGN_SPACE_AROUND as ALIGN_SPACE_AROUND2,ALIGN_SPACE_BETWEEN as ALIGN_SPACE_BETWEEN2,ALIGN_SPACE_EVENLY,ALIGN_STRETCH as ALIGN_STRETCH2,DIRECTION_LTR as DIRECTION_LTR2,DISPLAY_FLEX as DISPLAY_FLEX2,DISPLAY_NONE as DISPLAY_NONE2,EDGE_ALL as EDGE_ALL2,EDGE_BOTTOM as EDGE_BOTTOM2,EDGE_HORIZONTAL as EDGE_HORIZONTAL2,EDGE_LEFT as EDGE_LEFT2,EDGE_RIGHT as EDGE_RIGHT2,EDGE_TOP as EDGE_TOP2,EDGE_VERTICAL as EDGE_VERTICAL2,FLEX_DIRECTION_COLUMN as FLEX_DIRECTION_COLUMN2,FLEX_DIRECTION_COLUMN_REVERSE as FLEX_DIRECTION_COLUMN_REVERSE2,FLEX_DIRECTION_ROW as FLEX_DIRECTION_ROW2,FLEX_DIRECTION_ROW_REVERSE as FLEX_DIRECTION_ROW_REVERSE2,Node as FlexilyNode,GUTTER_ALL as GUTTER_ALL2,GUTTER_COLUMN as GUTTER_COLUMN2,GUTTER_ROW as GUTTER_ROW2,JUSTIFY_CENTER as JUSTIFY_CENTER2,JUSTIFY_FLEX_END as JUSTIFY_FLEX_END2,JUSTIFY_FLEX_START as JUSTIFY_FLEX_START2,JUSTIFY_SPACE_AROUND as JUSTIFY_SPACE_AROUND2,JUSTIFY_SPACE_BETWEEN as JUSTIFY_SPACE_BETWEEN2,JUSTIFY_SPACE_EVENLY as JUSTIFY_SPACE_EVENLY2,MEASURE_MODE_AT_MOST as MEASURE_MODE_AT_MOST2,MEASURE_MODE_EXACTLY as MEASURE_MODE_EXACTLY2,MEASURE_MODE_UNDEFINED as MEASURE_MODE_UNDEFINED2,OVERFLOW_HIDDEN as OVERFLOW_HIDDEN2,OVERFLOW_SCROLL as OVERFLOW_SCROLL2,OVERFLOW_VISIBLE as OVERFLOW_VISIBLE2,POSITION_TYPE_ABSOLUTE as POSITION_TYPE_ABSOLUTE2,POSITION_TYPE_RELATIVE as POSITION_TYPE_RELATIVE2,POSITION_TYPE_STATIC as POSITION_TYPE_STATIC2,WRAP_NO_WRAP as WRAP_NO_WRAP2,WRAP_WRAP as WRAP_WRAP2,WRAP_WRAP_REVERSE as WRAP_WRAP_REVERSE2}from"flexily";class FlexilyZeroNodeAdapter{node;constructor(node){this.node=node}getFlexilyNode(){return this.node}insertChild(child,index){let flexilyChild=child.getFlexilyNode();this.node.insertChild(flexilyChild,index)}removeChild(child){let flexilyChild=child.getFlexilyNode();this.node.removeChild(flexilyChild)}free(){this.node.free()}setMeasureFunc(measureFunc){this.node.setMeasureFunc((width,widthMode,height,heightMode)=>{let widthModeStr=this.measureModeToString(widthMode),heightModeStr=this.measureModeToString(heightMode);return measureFunc(width,widthModeStr,height,heightModeStr)})}markDirty(){this.node.markDirty()}measureModeToString(mode){if(mode===MEASURE_MODE_EXACTLY2)return"exactly";if(mode===MEASURE_MODE_AT_MOST2)return"at-most";return"undefined"}setWidth(value){this.node.setWidth(value)}setWidthPercent(value){this.node.setWidthPercent(value)}setWidthAuto(){this.node.setWidthAuto()}setHeight(value){this.node.setHeight(value)}setHeightPercent(value){this.node.setHeightPercent(value)}setHeightAuto(){this.node.setHeightAuto()}setMinWidth(value){this.node.setMinWidth(value)}setMinWidthPercent(value){this.node.setMinWidthPercent(value)}setMinHeight(value){this.node.setMinHeight(value)}setMinHeightPercent(value){this.node.setMinHeightPercent(value)}setMaxWidth(value){this.node.setMaxWidth(value)}setMaxWidthPercent(value){this.node.setMaxWidthPercent(value)}setMaxHeight(value){this.node.setMaxHeight(value)}setMaxHeightPercent(value){this.node.setMaxHeightPercent(value)}setFlexGrow(value){this.node.setFlexGrow(value)}setFlexShrink(value){this.node.setFlexShrink(value)}setFlexBasis(value){this.node.setFlexBasis(value)}setFlexBasisPercent(value){this.node.setFlexBasisPercent(value)}setFlexBasisAuto(){this.node.setFlexBasisAuto()}setFlexDirection(direction){this.node.setFlexDirection(direction)}setFlexWrap(wrap){this.node.setFlexWrap(wrap)}setAlignItems(align){this.node.setAlignItems(align)}setAlignSelf(align){this.node.setAlignSelf(align)}setAlignContent(align){this.node.setAlignContent(align)}setJustifyContent(justify){this.node.setJustifyContent(justify)}setPadding(edge,value){this.node.setPadding(edge,value)}setMargin(edge,value){this.node.setMargin(edge,value)}setBorder(edge,value){this.node.setBorder(edge,value)}setGap(gutter,value){this.node.setGap(gutter,value)}setDisplay(display){this.node.setDisplay(display)}setPositionType(positionType){this.node.setPositionType(positionType)}setPosition(edge,value){this.node.setPosition(edge,value)}setPositionPercent(edge,value){this.node.setPositionPercent(edge,value)}setOverflow(overflow){this.node.setOverflow(overflow)}setAspectRatio(value){this.node.setAspectRatio(value)}calculateLayout(width,height,direction){this.node.calculateLayout(width,height,direction??DIRECTION_LTR2)}getComputedLeft(){return this.node.getComputedLeft()}getComputedTop(){return this.node.getComputedTop()}getComputedWidth(){return this.node.getComputedWidth()}getComputedHeight(){return this.node.getComputedHeight()}}class FlexilyZeroLayoutEngine{_constants={FLEX_DIRECTION_COLUMN:FLEX_DIRECTION_COLUMN2,FLEX_DIRECTION_COLUMN_REVERSE:FLEX_DIRECTION_COLUMN_REVERSE2,FLEX_DIRECTION_ROW:FLEX_DIRECTION_ROW2,FLEX_DIRECTION_ROW_REVERSE:FLEX_DIRECTION_ROW_REVERSE2,WRAP_NO_WRAP:WRAP_NO_WRAP2,WRAP_WRAP:WRAP_WRAP2,WRAP_WRAP_REVERSE:WRAP_WRAP_REVERSE2,ALIGN_AUTO:ALIGN_AUTO2,ALIGN_FLEX_START:ALIGN_FLEX_START2,ALIGN_CENTER:ALIGN_CENTER2,ALIGN_FLEX_END:ALIGN_FLEX_END2,ALIGN_STRETCH:ALIGN_STRETCH2,ALIGN_BASELINE:ALIGN_BASELINE2,ALIGN_SPACE_BETWEEN:ALIGN_SPACE_BETWEEN2,ALIGN_SPACE_AROUND:ALIGN_SPACE_AROUND2,ALIGN_SPACE_EVENLY,JUSTIFY_FLEX_START:JUSTIFY_FLEX_START2,JUSTIFY_CENTER:JUSTIFY_CENTER2,JUSTIFY_FLEX_END:JUSTIFY_FLEX_END2,JUSTIFY_SPACE_BETWEEN:JUSTIFY_SPACE_BETWEEN2,JUSTIFY_SPACE_AROUND:JUSTIFY_SPACE_AROUND2,JUSTIFY_SPACE_EVENLY:JUSTIFY_SPACE_EVENLY2,EDGE_LEFT:EDGE_LEFT2,EDGE_TOP:EDGE_TOP2,EDGE_RIGHT:EDGE_RIGHT2,EDGE_BOTTOM:EDGE_BOTTOM2,EDGE_HORIZONTAL:EDGE_HORIZONTAL2,EDGE_VERTICAL:EDGE_VERTICAL2,EDGE_ALL:EDGE_ALL2,GUTTER_COLUMN:GUTTER_COLUMN2,GUTTER_ROW:GUTTER_ROW2,GUTTER_ALL:GUTTER_ALL2,DISPLAY_FLEX:DISPLAY_FLEX2,DISPLAY_NONE:DISPLAY_NONE2,POSITION_TYPE_STATIC:POSITION_TYPE_STATIC2,POSITION_TYPE_RELATIVE:POSITION_TYPE_RELATIVE2,POSITION_TYPE_ABSOLUTE:POSITION_TYPE_ABSOLUTE2,OVERFLOW_VISIBLE:OVERFLOW_VISIBLE2,OVERFLOW_HIDDEN:OVERFLOW_HIDDEN2,OVERFLOW_SCROLL:OVERFLOW_SCROLL2,DIRECTION_LTR:DIRECTION_LTR2,MEASURE_MODE_UNDEFINED:MEASURE_MODE_UNDEFINED2,MEASURE_MODE_EXACTLY:MEASURE_MODE_EXACTLY2,MEASURE_MODE_AT_MOST:MEASURE_MODE_AT_MOST2};createNode(){return new FlexilyZeroNodeAdapter(FlexilyNode.create())}get constants(){return this._constants}get name(){return"flexily-zero"}}function createFlexilyZeroEngine(){return new FlexilyZeroLayoutEngine}var init_flexily_zero_adapter=()=>{};var exports_layout_engine={};__export(exports_layout_engine,{setLayoutEngine:()=>setLayoutEngine,isLayoutEngineInitialized:()=>isLayoutEngineInitialized,getLayoutEngine:()=>getLayoutEngine,getConstants:()=>getConstants,ensureDefaultLayoutEngine:()=>ensureDefaultLayoutEngine});function setLayoutEngine(engine){layoutEngine=engine}function getLayoutEngine(){if(!layoutEngine)throw Error("Layout engine not initialized. Call setLayoutEngine() or initYoga()/initFlexily() first.");return layoutEngine}function isLayoutEngineInitialized(){return layoutEngine!==null}function getConstants(){return getLayoutEngine().constants}async function ensureDefaultLayoutEngine(engineType){if(isLayoutEngineInitialized())return;if((engineType??process.env.SILVERY_ENGINE?.toLowerCase()??"flexily")==="yoga"){let{initYogaEngine:initYogaEngine2}=await Promise.resolve().then(() => exports_yoga_adapter);setLayoutEngine(await initYogaEngine2())}else{let{createFlexilyZeroEngine:createFlexilyZeroEngine2}=await Promise.resolve().then(() => (init_flexily_zero_adapter(),exports_flexily_zero_adapter));setLayoutEngine(createFlexilyZeroEngine2())}}var layoutEngine=null;function getRenderEpoch(){return renderEpoch}function advanceRenderEpoch(){renderEpoch++}function isCurrentEpoch(epoch){return epoch===renderEpoch}function isDirty(dirtyBits,dirtyEpoch,bit){return dirtyEpoch===renderEpoch&&(dirtyBits&bit)!==0}function isAnyDirty(dirtyBits,dirtyEpoch){return dirtyEpoch===renderEpoch&&dirtyBits!==0}var INITIAL_EPOCH=-1,CONTENT_BIT=1,STYLE_PROPS_BIT=2,BG_BIT=4,CHILDREN_BIT=8,SUBTREE_BIT=16,ABS_CHILD_BIT=32,DESC_OVERFLOW_BIT=64,ALL_RECONCILER_BITS=31,renderEpoch=0;function collectPlainText(node){if(node.textContent!==void 0)return node.textContent;let result="";for(let i=0;i<node.children.length;i++){let child=node.children[i],childText=collectPlainText(child);if(childText.length>0&&child.props.internal_transform)childText=child.props.internal_transform(childText,i);result+=childText}return result}function collectPlainTextSkipHidden(node){if(node.textContent!==void 0)return node.textContent;let result="";for(let i=0;i<node.children.length;i++){let child=node.children[i];if(child.hidden)continue;let childText=collectPlainTextSkipHidden(child);if(childText.length>0&&child.props.internal_transform)childText=child.props.internal_transform(childText,i);result+=childText}return result}function getOrCreate(node){let entry=textCaches.get(node);if(!entry)entry={plainText:null,plainTextLineCount:0,collected:null,collectedMaxDisplayWidth:void 0,formats:[],analysis:null},textCaches.set(node,entry);return entry}function getCachedPlainText(node){if(_cacheDisabled)return null;let entry=textCaches.get(node);if(entry?.plainText==null)return null;if(isDirty(node.dirtyBits,node.dirtyEpoch,PLAIN_TEXT_DIRTY))return entry.plainText=null,null;return{text:entry.plainText,lineCount:entry.plainTextLineCount}}function setCachedPlainText(node,text,lineCount){let entry=getOrCreate(node);entry.plainText=text,entry.plainTextLineCount=lineCount}function getCachedCollectedText(node,maxDisplayWidth){if(_cacheDisabled)return null;let entry=textCaches.get(node);if(!entry?.collected)return null;if(isDirty(node.dirtyBits,node.dirtyEpoch,COLLECTED_TEXT_DIRTY))return entry.collected=null,entry.formats=[],entry.analysis=null,null;if(entry.collectedMaxDisplayWidth!==maxDisplayWidth)return entry.collected=null,entry.formats=[],entry.analysis=null,null;return entry.collected}function setCachedCollectedText(node,result,maxDisplayWidth){let entry=getOrCreate(node);entry.collected=result,entry.collectedMaxDisplayWidth=maxDisplayWidth}function getCachedFormat(node,width,wrap,trim){if(_cacheDisabled)return null;let entry=textCaches.get(node);if(!entry||entry.formats.length===0)return null;for(let i=0;i<entry.formats.length;i++){let f=entry.formats[i];if(f.width===width&&f.wrap===wrap&&f.trim===trim){if(i<entry.formats.length-1)entry.formats.splice(i,1),entry.formats.push(f);return f}}return null}function setCachedFormat(node,width,wrap,trim,lines,lineOffsets,hasLineOffsets){let entry=getOrCreate(node);for(let i=0;i<entry.formats.length;i++){let f=entry.formats[i];if(f.width===width&&f.wrap===wrap&&f.trim===trim){entry.formats[i]={width,wrap,trim,lines,lineOffsets,hasLineOffsets};return}}if(entry.formats.length>=MAX_FORMAT_ENTRIES)entry.formats.shift();entry.formats.push({width,wrap,trim,lines,lineOffsets,hasLineOffsets})}function getCachedAnalysis(node){if(_cacheDisabled)return null;let entry=textCaches.get(node);if(!entry?.analysis)return null;if(isDirty(node.dirtyBits,node.dirtyEpoch,PLAIN_TEXT_DIRTY))return entry.analysis=null,null;return entry.analysis}function setCachedAnalysis(node,analysis){let entry=getOrCreate(node);entry.analysis=analysis}var MAX_FORMAT_ENTRIES=4,PLAIN_TEXT_DIRTY,COLLECTED_TEXT_DIRTY,_cacheDisabled,textCaches;var init_prepared_text=__esm(()=>{PLAIN_TEXT_DIRTY=CONTENT_BIT|CHILDREN_BIT,COLLECTED_TEXT_DIRTY=CONTENT_BIT|CHILDREN_BIT|STYLE_PROPS_BIT|BG_BIT|SUBTREE_BIT,_cacheDisabled=!!process.env.SILVERY_NO_TEXT_CACHE,textCaches=new WeakMap});function buildTextAnalysis(text,gWidthFn=graphemeWidth){let graphemes=splitGraphemesAnsiAware(text),len=graphemes.length,widths=Array(len),cumWidths=Array(len+1),newlineIndices=[],breakIndices=[];cumWidths[0]=0;let maxWordWidth=0,maxGraphemeWidth=0,currentWordWidth=0;for(let i=0;i<len;i++){let g=graphemes[i],w=gWidthFn(g);if(widths[i]=w,cumWidths[i+1]=cumWidths[i]+w,w>maxGraphemeWidth)maxGraphemeWidth=w;if(g===`
|
|
64
64
|
`)newlineIndices.push(i),maxWordWidth=Math.max(maxWordWidth,currentWordWidth),currentWordWidth=0;else if(isWordBoundary(g))breakIndices.push(i+1),maxWordWidth=Math.max(maxWordWidth,currentWordWidth),currentWordWidth=0;else if(canBreakAnywhere(g))breakIndices.push(i),maxWordWidth=Math.max(maxWordWidth,currentWordWidth),currentWordWidth=w;else if(w>0)currentWordWidth+=w}return maxWordWidth=Math.max(maxWordWidth,currentWordWidth),{graphemes,widths,cumWidths,totalWidth:cumWidths[len],maxWordWidth,maxGraphemeWidth,newlineIndices,breakIndices,text}}function countLinesAtWidth(analysis,width){if(width<=0)return 1/0;if(analysis.totalWidth<=width&&analysis.newlineIndices.length===0)return 1;return wrapText(analysis.text,width,!0,!0).length}function shrinkwrapWidth(analysis,maxWidth){if(maxWidth<=0)return 0;let targetLineCount=countLinesAtWidth(analysis,maxWidth);if(targetLineCount<=1)return Math.min(Math.ceil(analysis.totalWidth),maxWidth);let lo=Math.max(1,analysis.maxGraphemeWidth),hi=maxWidth;if(lo>=hi)return Math.min(hi,maxWidth);while(lo<hi){let mid=lo+hi>>1;if(countLinesAtWidth(analysis,mid)<=targetLineCount)hi=mid;else lo=mid+1}return Math.min(lo,maxWidth)}function knuthPlassBreaks(analysis,width){if(width<=0)return[];if(analysis.totalWidth<=width&&analysis.newlineIndices.length===0)return[];let{newlineIndices,graphemes}=analysis,allBreaks=[],paragraphStarts=[0];for(let nl of newlineIndices)paragraphStarts.push(nl+1);for(let p=0;p<paragraphStarts.length;p++){let pStart=paragraphStarts[p],pEnd=p+1<paragraphStarts.length?paragraphStarts[p+1]-1:graphemes.length;if(pStart>=pEnd)continue;let breaks=knuthPlassForParagraph(analysis,pStart,pEnd,width);if(allBreaks.push(...breaks),p<paragraphStarts.length-1&&pEnd<graphemes.length)allBreaks.push(pEnd+1)}return allBreaks}function knuthPlassForParagraph(analysis,pStart,pEnd,width){let{cumWidths,breakIndices,widths,graphemes}=analysis,candidates=[pStart];for(let bp of breakIndices)if(bp>pStart&&bp<=pEnd)candidates.push(bp);candidates.push(pEnd);let n=candidates.length;if(n<=2)return[];let cost=Array(n).fill(1/0),next=Array(n).fill(-1);cost[n-1]=0;for(let i=n-2;i>=0;i--){let lineStart=candidates[i],lineStartCum=cumWidths[lineStart];for(let j=i+1;j<n;j++){let trimEnd=candidates[j];while(trimEnd>lineStart){let prevG=graphemes[trimEnd-1];if(widths[trimEnd-1]===0){trimEnd--;continue}if(prevG===" "||prevG==="\t"){trimEnd--;continue}break}let lineWidth=cumWidths[trimEnd]-lineStartCum;if(lineWidth>width)break;let leftover=width-lineWidth,totalCost=(j===n-1?0:leftover*leftover)+cost[j];if(totalCost<cost[i])cost[i]=totalCost,next[i]=j}}if(cost[0]===1/0)return[];let breaks=[],idx=0;while(idx<n-1&&next[idx]>=0)if(idx=next[idx],idx<n-1)breaks.push(candidates[idx]);return breaks}function optimalWrap(text,analysis,width){let breaks=knuthPlassBreaks(analysis,width);if(breaks.length===0){if(analysis.totalWidth<=width&&analysis.newlineIndices.length===0)return[text];return wrapText(text,width,!0,!0)}let{graphemes,widths}=analysis,lines=[],lineStart=0;for(let bp of breaks){let lineEnd=bp;while(lineEnd>lineStart){if(widths[lineEnd-1]===0){lineEnd--;continue}let g=graphemes[lineEnd-1];if(g===" "||g==="\t"||g===`
|
|
65
65
|
`){lineEnd--;continue}break}lines.push(graphemes.slice(lineStart,lineEnd).join("")),lineStart=bp;while(lineStart<graphemes.length){let g=graphemes[lineStart];if(g===" "||g==="\t"){lineStart++;continue}break}}if(lineStart<graphemes.length)lines.push(graphemes.slice(lineStart).join(""));return lines}var init_pretext=__esm(()=>{init_unicode()});function getPadding(props){return{top:props.paddingTop??props.paddingY??props.padding??0,bottom:props.paddingBottom??props.paddingY??props.padding??0,left:props.paddingLeft??props.paddingX??props.padding??0,right:props.paddingRight??props.paddingX??props.padding??0}}function getBorderSize(props){if(!props.borderStyle||getActiveLineHeight()>1)return{top:0,bottom:0,left:0,right:0};return{top:props.borderTop!==!1?1:0,bottom:props.borderBottom!==!1?1:0,left:props.borderLeft!==!1?1:0,right:props.borderRight!==!1?1:0}}var init_helpers=__esm(()=>{init_unicode()});function measurePhase(root,ctx){traverseTree(root,(node)=>{if(!node.layoutNode)return;let props=node.props,isFitContent=props.width==="fit-content"||props.height==="fit-content",isSnugContent=props.width==="snug-content";if(isFitContent||isSnugContent){let availableWidth,widthIsFixed=typeof props.width==="number";if(props.height==="fit-content"&&widthIsFixed){let padding=getPadding(props);if(availableWidth=props.width-padding.left-padding.right,props.borderStyle){let border=getBorderSize(props);availableWidth-=border.left+border.right}if(availableWidth<1)availableWidth=1}let intrinsicSize=measureIntrinsicSize(node,ctx,availableWidth);if(isSnugContent){let shrunkWidth=computeSnugContentWidth(node,intrinsicSize.width,ctx);node.layoutNode.setWidth(shrunkWidth)}else if(props.width==="fit-content")node.layoutNode.setWidth(intrinsicSize.width);if(props.height==="fit-content")node.layoutNode.setHeight(intrinsicSize.height)}})}function measureIntrinsicSize(node,ctx,availableWidth){let props=node.props;if(props.display==="none")return{width:0,height:0};if(node.type==="silvery-text"){let textProps=props,cached=getCachedPlainText(node),text;if(cached)text=cached.text;else{text=collectPlainText(node);let lineCount=(text.match(/\n/g)?.length??0)+1;setCachedPlainText(node,text,lineCount)}let transform=textProps.internal_transform,lines;if(availableWidth!==void 0&&availableWidth>0&&isWrapEnabled(textProps.wrap))lines=ctx?ctx.measurer.wrapText(text,availableWidth,!0,!0):wrapText(text,availableWidth,!0,!0);else lines=text.split(`
|
|
66
|
-
`);if(transform)lines=lines.map((line,index)=>transform(line,index));return{width:Math.max(...lines.map((line)=>getTextWidth(line,ctx))),height:lines.length*getActiveLineHeight()}}let isRow=props.flexDirection==="row"||props.flexDirection==="row-reverse",width=0,height=0,childCount=0;for(let child of node.children){let childSize=measureIntrinsicSize(child,ctx,availableWidth);if(childCount++,isRow)width+=childSize.width,height=Math.max(height,childSize.height);else width=Math.max(width,childSize.width),height+=childSize.height}let gap=props.gap??0;if(gap>0&&childCount>1){let totalGap=gap*(childCount-1);if(isRow)width+=totalGap;else height+=totalGap}let padding=getPadding(props);if(width+=padding.left+padding.right,height+=padding.top+padding.bottom,props.borderStyle){let border=getBorderSize(props);width+=border.left+border.right,height+=border.top+border.bottom}return{width,height}}function isWrapEnabled(wrap){return wrap==="wrap"||wrap==="hard"||wrap==="even"||wrap===!0||wrap===void 0}function computeSnugContentWidth(node,fitContentWidth,ctx){let analysis=getCachedAnalysis(node);if(!analysis){let cached=getCachedPlainText(node),text=cached?cached.text:collectPlainText(node),gWidthFn=ctx?.measurer?.graphemeWidth?.bind(ctx.measurer)??graphemeWidth;if(analysis=buildTextAnalysis(text,gWidthFn),setCachedAnalysis(node,analysis),!cached){let lineCount=(text.match(/\n/g)?.length??0)+1;setCachedPlainText(node,text,lineCount)}}return shrinkwrapWidth(analysis,fitContentWidth)}function traverseTree(node,callback){callback(node);for(let child of node.children)traverseTree(child,callback)}function getTextWidth(text,ctx){if(ctx)return ctx.measurer.displayWidthAnsi(text);return displayWidthAnsi(text)}var init_measure_phase=__esm(()=>{init_unicode();init_prepared_text();init_pretext();init_helpers()});var measureStats;var init_measure_stats=__esm(()=>{measureStats={calls:0,cacheHits:0,textCollects:0,displayWidthCalls:0,reset(){this.calls=0,this.cacheHits=0,this.textCollects=0,this.displayWidthCalls=0}}});function rectEqual(a,b){if(a===b)return!0;if(!a||!b)return!1;return a.x===b.x&&a.y===b.y&&a.width===b.width&&a.height===b.height}function trackLayoutDirty(node){layoutDirtyNodes.add(node)}function trackContentDirty(node){contentDirtyNodes.add(node)}function trackStyleOnlyDirty(node){styleOnlyDirtyNodes.add(node)}function trackScrollDirty(node){scrollDirtyNodes.add(node)}function hasLayoutDirty(){return layoutDirtyNodes.size>0}function hasScrollDirty(){return scrollDirtyNodes.size>0}function clearDirtyTracking(){layoutDirtyNodes.clear(),contentDirtyNodes.clear(),styleOnlyDirtyNodes.clear(),scrollDirtyNodes.clear()}function clearLayoutDirtyTracking(){layoutDirtyNodes.clear()}var layoutDirtyNodes,contentDirtyNodes,styleOnlyDirtyNodes,scrollDirtyNodes;var init_dirty_tracking=__esm(()=>{layoutDirtyNodes=new Set,contentDirtyNodes=new Set,styleOnlyDirtyNodes=new Set,scrollDirtyNodes=new Set});import{createLogger as createLogger5}from"loggily";function layoutPhase(root,width,height){let prevLayout=root.boxRect,dimensionsChanged=prevLayout&&(prevLayout.width!==width||prevLayout.height!==height);if(!dimensionsChanged&&!hasLayoutDirty())return;if(clearLayoutDirtyTracking(),root.layoutNode){let nodeCount=countNodes(root);measureStats.reset();let t0=Date.now();root.layoutNode.calculateLayout(width,height);let elapsed=Date.now()-t0;log5.debug?.(`calculateLayout: ${elapsed}ms (${nodeCount} nodes) measure: calls=${measureStats.calls} hits=${measureStats.cacheHits} collects=${measureStats.textCollects} displayWidth=${measureStats.displayWidthCalls}`)}propagateLayout(root,0,0,!dimensionsChanged)}function countNodes(node){let count=1;for(let child of node.children)count+=countNodes(child);return count}function propagateLayout(node,parentX,parentY,incrementalSkip){if(!node.layoutNode){node.prevLayout=node.boxRect;let rect2={x:parentX,y:parentY,width:0,height:0};node.boxRect=rect2,node.layoutDirty=!1;for(let child of node.children)propagateLayout(child,parentX,parentY,incrementalSkip);return}let rect={x:parentX+node.layoutNode.getComputedLeft(),y:parentY+node.layoutNode.getComputedTop(),width:node.layoutNode.getComputedWidth(),height:node.layoutNode.getComputedHeight()};if(incrementalSkip&&node.boxRect&&!node.layoutDirty&&!isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&!isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)){if(rect.x===node.boxRect.x&&rect.y===node.boxRect.y&&rect.width===node.boxRect.width&&rect.height===node.boxRect.height)return}node.prevLayout=node.boxRect,node.boxRect=rect,node.layoutDirty=!1;let layoutDidChange=!!(node.prevLayout&&!rectEqual(node.prevLayout,node.boxRect));if(node.layoutChangedThisFrame=layoutDidChange?getRenderEpoch():INITIAL_EPOCH,process?.env?.SILVERY_STRICT&&isCurrentEpoch(node.layoutChangedThisFrame)){if(rectEqual(node.prevLayout,node.boxRect)){let props=node.props;throw Error(`[SILVERY_STRICT] layoutChangedThisFrame=true but prevLayout equals boxRect (node: ${props.id??node.type}, rect: ${JSON.stringify(node.boxRect)})`)}}if(isCurrentEpoch(node.layoutChangedThisFrame)){let epoch=getRenderEpoch(),ancestor=node.parent;while(ancestor&&!isDirty(ancestor.dirtyBits,ancestor.dirtyEpoch,SUBTREE_BIT)){if(ancestor.dirtyEpoch!==epoch)ancestor.dirtyBits=SUBTREE_BIT,ancestor.dirtyEpoch=epoch;else ancestor.dirtyBits|=SUBTREE_BIT;ancestor=ancestor.parent}}for(let child of node.children)propagateLayout(child,rect.x,rect.y,incrementalSkip);if(isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&node.children.length>0){let epoch=getRenderEpoch(),absChild=_hasAbsoluteChildMutated(node.children),descOverflow=_hasDescendantOverflowChanged(node,rect),bits=node.dirtyBits;if(absChild)bits|=ABS_CHILD_BIT;else bits&=~ABS_CHILD_BIT;if(descOverflow)bits|=DESC_OVERFLOW_BIT;else bits&=~DESC_OVERFLOW_BIT;node.dirtyBits=bits,node.dirtyEpoch=epoch}else if(node.dirtyEpoch===getRenderEpoch())node.dirtyBits&=~(ABS_CHILD_BIT|DESC_OVERFLOW_BIT)}function _hasAbsoluteChildMutated(children){for(let child of children)if(child.props.position==="absolute"&&(isDirty(child.dirtyBits,child.dirtyEpoch,CHILDREN_BIT)||isCurrentEpoch(child.layoutChangedThisFrame)||_hasChildPositionChanged(child)))return!0;return!1}function _hasChildPositionChanged(node){for(let child of node.children)if(child.boxRect&&child.prevLayout){if(child.boxRect.x!==child.prevLayout.x||child.boxRect.y!==child.prevLayout.y)return!0}return!1}function _hasDescendantOverflowChanged(node,rect){return _checkDescendantOverflow(node.children,rect.x,rect.y,rect.x+rect.width,rect.y+rect.height)}function _checkDescendantOverflow(children,nodeLeft,nodeTop,nodeRight,nodeBottom){for(let child of children){if(child.prevLayout&&isCurrentEpoch(child.layoutChangedThisFrame)){let prev=child.prevLayout;if(prev.x+prev.width>nodeRight||prev.y+prev.height>nodeBottom||prev.x<nodeLeft||prev.y<nodeTop)return!0}if(isDirty(child.dirtyBits,child.dirtyEpoch,SUBTREE_BIT)&&child.children!==void 0){if(_checkDescendantOverflow(child.children,nodeLeft,nodeTop,nodeRight,nodeBottom))return!0}}return!1}function notifyLayoutSubscribers(node){let contentChanged=!rectEqual(node.prevLayout,node.boxRect),screenChanged=!rectEqual(node.prevScrollRect,node.scrollRect),renderChanged=!rectEqual(node.prevScreenRect,node.screenRect);if(contentChanged||screenChanged||renderChanged)for(let subscriber of node.layoutSubscribers)subscriber();for(let child of node.children)notifyLayoutSubscribers(child)}function scrollPhase(root,options={}){let{skipStateUpdates=!1}=options;traverseTree2(root,(node)=>{let props=node.props;if(props.overflow!=="scroll")return;calculateScrollState(node,props,skipStateUpdates)})}function calculateScrollState(node,props,skipStateUpdates){let layout=node.boxRect;if(!layout||!node.layoutNode)return;let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),rawViewportHeight=layout.height-border.top-border.bottom-padding.top-padding.bottom,contentHeight=0,childPositions=[];for(let i=0;i<node.children.length;i++){let child=node.children[i];if(!child.layoutNode||!child.boxRect)continue;let childTop=child.boxRect.y-layout.y-border.top-padding.top,childBottom=childTop+child.boxRect.height,childProps=child.props;childPositions.push({child,top:childTop,bottom:childBottom,index:i,isSticky:childProps.position==="sticky",stickyTop:childProps.stickyTop,stickyBottom:childProps.stickyBottom}),contentHeight=Math.max(contentHeight,childBottom)}let viewportHeight=rawViewportHeight,showBorderlessIndicator=props.overflowIndicator===!0&&!props.borderStyle,hasOverflow=contentHeight>rawViewportHeight,indicatorReserve=showBorderlessIndicator&&hasOverflow?1:0,prevOffset=node.scrollState?.offset,scrollOffset=props.scrollOffset??prevOffset??0,scrollTo=props.scrollTo;if(scrollTo!==void 0&&scrollTo>=0&&scrollTo<childPositions.length){let target=childPositions.find((c)=>c.index===scrollTo);if(target){let effectiveHeight=viewportHeight-indicatorReserve,visibleTop2=scrollOffset,visibleBottom2=scrollOffset+effectiveHeight;if(target.top<visibleTop2)scrollOffset=target.top;else if(target.bottom>visibleBottom2)scrollOffset=target.bottom-effectiveHeight}}scrollOffset=Math.max(0,scrollOffset),scrollOffset=Math.min(scrollOffset,Math.max(0,contentHeight-viewportHeight));let visibleTop=scrollOffset,visibleBottom=scrollOffset+viewportHeight-indicatorReserve,firstVisible=-1,lastVisible=-1,hiddenAbove=0,hiddenBelow=0;for(let cp of childPositions){if(cp.isSticky){if(firstVisible===-1)firstVisible=cp.index;lastVisible=Math.max(lastVisible,cp.index);continue}if(cp.top===cp.bottom)continue;if(cp.bottom<=visibleTop)hiddenAbove++;else if(cp.top>=visibleBottom)hiddenBelow++;else if(cp.top<visibleTop){if(firstVisible===-1)firstVisible=cp.index;lastVisible=Math.max(lastVisible,cp.index)}else if(cp.bottom>visibleBottom){if(firstVisible===-1)firstVisible=cp.index;if(lastVisible=cp.index,indicatorReserve>0)hiddenBelow++}else{if(firstVisible===-1)firstVisible=cp.index;lastVisible=cp.index}}let stickyChildren=[];for(let cp of childPositions){if(!cp.isSticky)continue;let childHeight=cp.bottom-cp.top,stickyTop=cp.stickyTop??0,stickyBottom=cp.stickyBottom,naturalRenderY=cp.top-scrollOffset,renderOffset;if(stickyBottom!==void 0){let bottomPinPosition=viewportHeight-stickyBottom-childHeight;renderOffset=Math.min(naturalRenderY,bottomPinPosition)}else if(naturalRenderY>=stickyTop)renderOffset=naturalRenderY;else if(childHeight>viewportHeight)renderOffset=Math.max(viewportHeight-childHeight,naturalRenderY);else renderOffset=stickyTop;if(renderOffset!==naturalRenderY)if(childHeight>viewportHeight)renderOffset=Math.max(viewportHeight-childHeight,renderOffset);else renderOffset=Math.max(0,Math.min(renderOffset,viewportHeight-childHeight));if(renderOffset+childHeight<=0||renderOffset>=viewportHeight)continue;stickyChildren.push({index:cp.index,renderOffset,naturalTop:cp.top,height:childHeight})}if(skipStateUpdates)return;let prevFirstVisible=node.scrollState?.firstVisibleChild??firstVisible,prevLastVisible=node.scrollState?.lastVisibleChild??lastVisible;if(scrollOffset!==prevOffset||firstVisible!==prevFirstVisible||lastVisible!==prevLastVisible){let epoch=getRenderEpoch();if(node.dirtyEpoch!==epoch)node.dirtyBits=SUBTREE_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=SUBTREE_BIT}node.scrollState={offset:scrollOffset,prevOffset:prevOffset??scrollOffset,contentHeight,viewportHeight,firstVisibleChild:firstVisible,lastVisibleChild:lastVisible,prevFirstVisibleChild:prevFirstVisible,prevLastVisibleChild:prevLastVisible,hiddenAbove,hiddenBelow,stickyChildren:stickyChildren.length>0?stickyChildren:void 0}}function stickyPhase(root){traverseTree2(root,(node)=>{let props=node.props;if(props.overflow==="scroll")return;let hasStickyChildren=!1;for(let child of node.children){let childProps=child.props;if(childProps.position==="sticky"&&childProps.stickyBottom!==void 0){hasStickyChildren=!0;break}}if(!hasStickyChildren){if(node.stickyChildren!==void 0){node.stickyChildren=void 0;let epoch=getRenderEpoch();if(node.dirtyEpoch!==epoch)node.dirtyBits=SUBTREE_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=SUBTREE_BIT}return}let layout=node.boxRect;if(!layout||!node.layoutNode)return;let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),parentContentHeight=layout.height-border.top-border.bottom-padding.top-padding.bottom,newStickyChildren=[];for(let i=0;i<node.children.length;i++){let child=node.children[i],childProps=child.props;if(childProps.position!=="sticky")continue;if(childProps.stickyBottom===void 0)continue;if(!child.boxRect)continue;let naturalY=child.boxRect.y-layout.y-border.top-padding.top,childHeight=child.boxRect.height,stickyBottom=childProps.stickyBottom,bottomPin=parentContentHeight-stickyBottom-childHeight,renderOffset=Math.max(naturalY,bottomPin);newStickyChildren.push({index:i,renderOffset,naturalTop:naturalY,height:childHeight})}let prev=node.stickyChildren,next=newStickyChildren.length>0?newStickyChildren:void 0,changed=!stickyChildrenEqual(prev,next);if(node.stickyChildren=next,changed){let epoch=getRenderEpoch();if(node.dirtyEpoch!==epoch)node.dirtyBits=SUBTREE_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=SUBTREE_BIT}})}function stickyChildrenEqual(a,b){if(a===b)return!0;if(!a||!b)return!1;if(a.length!==b.length)return!1;for(let i=0;i<a.length;i++){let ai=a[i],bi=b[i];if(ai.index!==bi.index||ai.renderOffset!==bi.renderOffset||ai.naturalTop!==bi.naturalTop||ai.height!==bi.height)return!1}return!0}function traverseTree2(node,callback){callback(node);for(let child of node.children)traverseTree2(child,callback)}function scrollrectPhase(root){propagateScrollRect(root,0)}function scrollrectPhaseSimple(root){propagateScrollRectSimple(root)}function propagateScrollRect(node,ancestorScrollOffset){node.prevScrollRect=node.scrollRect,node.prevScreenRect=node.screenRect;let content=node.boxRect;if(!content){node.scrollRect=null,node.screenRect=null;for(let child of node.children)propagateScrollRect(child,ancestorScrollOffset);return}node.scrollRect={x:content.x,y:content.y-ancestorScrollOffset,width:content.width,height:content.height},node.screenRect=node.scrollRect;let scrollOffset=node.scrollState?.offset??0,childScrollOffset=ancestorScrollOffset+scrollOffset;computeStickyScreenRects(node);for(let child of node.children)propagateScrollRect(child,childScrollOffset)}function computeStickyScreenRects(parent){let stickyList=parent.scrollState?.stickyChildren??parent.stickyChildren;if(!stickyList||stickyList.length===0)return;let parentScrollRect=parent.scrollRect;if(!parentScrollRect)return;let props=parent.props,border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),contentOriginY=parentScrollRect.y+border.top+padding.top;for(let sticky of stickyList){let child=parent.children[sticky.index];if(!child?.scrollRect)continue;child.screenRect={x:child.scrollRect.x,y:contentOriginY+sticky.renderOffset,width:child.scrollRect.width,height:child.scrollRect.height}}}function propagateScrollRectSimple(node){node.prevScrollRect=node.scrollRect,node.prevScreenRect=node.screenRect;let content=node.boxRect;if(!content){node.scrollRect=null,node.screenRect=null;for(let child of node.children)propagateScrollRectSimple(child);return}node.scrollRect={x:content.x,y:content.y,width:content.width,height:content.height},node.screenRect=node.scrollRect;for(let child of node.children)propagateScrollRectSimple(child)}function detectPipelineFeatures(root){let hasScroll=!1,hasSticky=!1;function scan(node){let props=node.props;if(props.overflow==="scroll")hasScroll=!0;if(props.position==="sticky")hasSticky=!0;if(hasScroll&&hasSticky)return;for(let child of node.children)if(scan(child),hasScroll&&hasSticky)return}return scan(root),{hasScroll,hasSticky}}var log5;var init_layout_phase=__esm(()=>{init_measure_stats();init_dirty_tracking();init_helpers();log5=createLogger5("silvery:layout")});var init_derive2=__esm(()=>{init_src2()});var init_color=__esm(()=>{init_src()});var catppuccinMocha,catppuccinFrappe,catppuccinMacchiato,catppuccinLatte;var init_catppuccin=__esm(()=>{init_color();catppuccinMocha={name:"catppuccin-mocha",dark:!0,black:"#11111B",red:"#F38BA8",green:"#A6E3A1",yellow:"#F9E2AF",blue:"#89B4FA",magenta:"#CBA6F7",cyan:"#94E2D5",white:"#A6ADC8",brightBlack:"#313244",brightRed:"#FAB387",brightGreen:brighten("#A6E3A1",0.15),brightYellow:brighten("#F9E2AF",0.15),brightBlue:brighten("#89B4FA",0.15),brightMagenta:"#F5C2E7",brightCyan:brighten("#94E2D5",0.15),brightWhite:"#CDD6F4",foreground:"#CDD6F4",background:"#1E1E2E",cursorColor:"#CDD6F4",cursorText:"#1E1E2E",selectionBackground:"#6C7086",selectionForeground:"#CDD6F4"},catppuccinFrappe={name:"catppuccin-frappe",dark:!0,black:"#232634",red:"#E78284",green:"#A6D189",yellow:"#E5C890",blue:"#8CAAEE",magenta:"#CA9EE6",cyan:"#81C8BE",white:"#A5ADCE",brightBlack:"#414559",brightRed:"#EF9F76",brightGreen:brighten("#A6D189",0.15),brightYellow:brighten("#E5C890",0.15),brightBlue:brighten("#8CAAEE",0.15),brightMagenta:"#F4B8E4",brightCyan:brighten("#81C8BE",0.15),brightWhite:"#C6D0F5",foreground:"#C6D0F5",background:"#303446",cursorColor:"#C6D0F5",cursorText:"#303446",selectionBackground:"#737994",selectionForeground:"#C6D0F5"},catppuccinMacchiato={name:"catppuccin-macchiato",dark:!0,black:"#181926",red:"#ED8796",green:"#A6DA95",yellow:"#EED49F",blue:"#8AADF4",magenta:"#C6A0F6",cyan:"#8BD5CA",white:"#A5ADCB",brightBlack:"#363A4F",brightRed:"#F5A97F",brightGreen:brighten("#A6DA95",0.15),brightYellow:brighten("#EED49F",0.15),brightBlue:brighten("#8AADF4",0.15),brightMagenta:"#F5BDE6",brightCyan:brighten("#8BD5CA",0.15),brightWhite:"#CAD3F5",foreground:"#CAD3F5",background:"#24273A",cursorColor:"#CAD3F5",cursorText:"#24273A",selectionBackground:"#6E738D",selectionForeground:"#CAD3F5"},catppuccinLatte={name:"catppuccin-latte",dark:!1,black:"#DCE0E8",red:"#D20F39",green:"#40A02B",yellow:"#DF8E1D",blue:"#1E66F5",magenta:"#8839EF",cyan:"#179299",white:"#6C6F85",brightBlack:"#CCD0DA",brightRed:"#FE640B",brightGreen:brighten("#40A02B",0.15),brightYellow:brighten("#DF8E1D",0.15),brightBlue:brighten("#1E66F5",0.15),brightMagenta:"#EA76CB",brightCyan:brighten("#179299",0.15),brightWhite:"#4C4F69",foreground:"#4C4F69",background:"#EFF1F5",cursorColor:"#4C4F69",cursorText:"#EFF1F5",selectionBackground:"#9CA0B0",selectionForeground:"#4C4F69"}});var nord;var init_nord=__esm(()=>{init_color();nord={name:"nord",dark:!0,black:"#2E3440",red:"#BF616A",green:"#A3BE8C",yellow:"#EBCB8B",blue:"#5E81AC",magenta:"#B48EAD",cyan:"#8FBCBB",white:"#D8DEE9",brightBlack:"#3B4252",brightRed:"#D08770",brightGreen:brighten("#A3BE8C",0.15),brightYellow:brighten("#EBCB8B",0.15),brightBlue:brighten("#5E81AC",0.15),brightMagenta:"#B48EAD",brightCyan:brighten("#8FBCBB",0.15),brightWhite:"#ECEFF4",foreground:"#ECEFF4",background:"#2E3440",cursorColor:"#ECEFF4",cursorText:"#2E3440",selectionBackground:"#4C566A",selectionForeground:"#ECEFF4"}});var dracula;var init_dracula=__esm(()=>{init_color();dracula={name:"dracula",dark:!0,black:"#21222C",red:"#FF5555",green:"#50FA7B",yellow:"#F1FA8C",blue:"#BD93F9",magenta:"#BD93F9",cyan:"#8BE9FD",white:"#6272A4",brightBlack:"#44475A",brightRed:"#FFB86C",brightGreen:brighten("#50FA7B",0.15),brightYellow:brighten("#F1FA8C",0.15),brightBlue:brighten("#BD93F9",0.15),brightMagenta:"#FF79C6",brightCyan:brighten("#8BE9FD",0.15),brightWhite:"#F8F8F2",foreground:"#F8F8F2",background:"#282A36",cursorColor:"#F8F8F2",cursorText:"#282A36",selectionBackground:"#6272A4",selectionForeground:"#F8F8F2"}});var solarizedDark,solarizedLight;var init_solarized=__esm(()=>{init_color();solarizedDark={name:"solarized-dark",dark:!0,black:"#002B36",red:"#DC322F",green:"#859900",yellow:"#B58900",blue:"#268BD2",magenta:"#6C71C4",cyan:"#2AA198",white:"#839496",brightBlack:"#586E75",brightRed:"#CB4B16",brightGreen:brighten("#859900",0.15),brightYellow:brighten("#B58900",0.15),brightBlue:brighten("#268BD2",0.15),brightMagenta:"#D33682",brightCyan:brighten("#2AA198",0.15),brightWhite:"#FDF6E3",foreground:"#FDF6E3",background:"#073642",cursorColor:"#FDF6E3",cursorText:"#073642",selectionBackground:"#657B83",selectionForeground:"#FDF6E3"},solarizedLight={name:"solarized-light",dark:!1,black:"#FDF6E3",red:"#DC322F",green:"#859900",yellow:"#B58900",blue:"#268BD2",magenta:"#6C71C4",cyan:"#2AA198",white:"#657B83",brightBlack:"#DDD6C1",brightRed:"#CB4B16",brightGreen:brighten("#859900",0.15),brightYellow:brighten("#B58900",0.15),brightBlue:brighten("#268BD2",0.15),brightMagenta:"#D33682",brightCyan:brighten("#2AA198",0.15),brightWhite:"#073642",foreground:"#073642",background:"#EEE8D5",cursorColor:"#073642",cursorText:"#EEE8D5",selectionBackground:"#93A1A1",selectionForeground:"#073642"}});var tokyoNight,tokyoNightStorm,tokyoNightDay;var init_tokyo_night=__esm(()=>{init_color();tokyoNight={name:"tokyo-night",dark:!0,black:"#1A1B26",red:"#F7768E",green:"#9ECE6A",yellow:"#E0AF68",blue:"#7AA2F7",magenta:"#BB9AF7",cyan:"#73DACA",white:"#A9B1D6",brightBlack:"#292E42",brightRed:"#FF9E64",brightGreen:brighten("#9ECE6A",0.15),brightYellow:brighten("#E0AF68",0.15),brightBlue:brighten("#7AA2F7",0.15),brightMagenta:"#FF007C",brightCyan:brighten("#73DACA",0.15),brightWhite:"#C0CAF5",foreground:"#C0CAF5",background:"#24283B",cursorColor:"#C0CAF5",cursorText:"#24283B",selectionBackground:"#545C7E",selectionForeground:"#C0CAF5"},tokyoNightStorm={name:"tokyo-night-storm",dark:!0,black:"#1F2335",red:"#F7768E",green:"#9ECE6A",yellow:"#E0AF68",blue:"#7AA2F7",magenta:"#BB9AF7",cyan:"#73DACA",white:"#A9B1D6",brightBlack:"#292E42",brightRed:"#FF9E64",brightGreen:brighten("#9ECE6A",0.15),brightYellow:brighten("#E0AF68",0.15),brightBlue:brighten("#7AA2F7",0.15),brightMagenta:"#FF007C",brightCyan:brighten("#73DACA",0.15),brightWhite:"#C0CAF5",foreground:"#C0CAF5",background:"#24283B",cursorColor:"#C0CAF5",cursorText:"#24283B",selectionBackground:"#545C7E",selectionForeground:"#C0CAF5"},tokyoNightDay={name:"tokyo-night-day",dark:!1,black:"#E1E2E7",red:"#F52A65",green:"#587539",yellow:"#8C6C3E",blue:"#2E7DE9",magenta:"#9854F1",cyan:"#118C74",white:"#6172B0",brightBlack:"#C4C5CB",brightRed:"#B15C00",brightGreen:brighten("#587539",0.15),brightYellow:brighten("#8C6C3E",0.15),brightBlue:brighten("#2E7DE9",0.15),brightMagenta:"#F52A65",brightCyan:brighten("#118C74",0.15),brightWhite:"#3760BF",foreground:"#3760BF",background:"#D5D6DB",cursorColor:"#3760BF",cursorText:"#D5D6DB",selectionBackground:"#9699A3",selectionForeground:"#3760BF"}});var oneDark;var init_one_dark=__esm(()=>{init_color();oneDark={name:"one-dark",dark:!0,black:"#21252B",red:"#E06C75",green:"#98C379",yellow:"#E5C07B",blue:"#61AFEF",magenta:"#C678DD",cyan:"#56B6C2",white:"#ABB2BF",brightBlack:"#2C313A",brightRed:"#D19A66",brightGreen:brighten("#98C379",0.15),brightYellow:brighten("#E5C07B",0.15),brightBlue:brighten("#61AFEF",0.15),brightMagenta:"#E06C75",brightCyan:brighten("#56B6C2",0.15),brightWhite:"#ABB2BF",foreground:"#ABB2BF",background:"#282C34",cursorColor:"#ABB2BF",cursorText:"#282C34",selectionBackground:"#5C6370",selectionForeground:"#ABB2BF"}});var gruvboxDark,gruvboxLight;var init_gruvbox=__esm(()=>{init_color();gruvboxDark={name:"gruvbox-dark",dark:!0,black:"#1D2021",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",magenta:"#D3869B",cyan:"#8EC07C",white:"#BDAE93",brightBlack:"#3C3836",brightRed:"#FE8019",brightGreen:brighten("#B8BB26",0.15),brightYellow:brighten("#FABD2F",0.15),brightBlue:brighten("#83A598",0.15),brightMagenta:"#D3869B",brightCyan:brighten("#8EC07C",0.15),brightWhite:"#EBDBB2",foreground:"#EBDBB2",background:"#282828",cursorColor:"#EBDBB2",cursorText:"#282828",selectionBackground:"#665C54",selectionForeground:"#EBDBB2"},gruvboxLight={name:"gruvbox-light",dark:!1,black:"#F9F5D7",red:"#CC241D",green:"#98971A",yellow:"#D79921",blue:"#458588",magenta:"#B16286",cyan:"#689D6A",white:"#665C54",brightBlack:"#EBDBB2",brightRed:"#D65D0E",brightGreen:brighten("#98971A",0.15),brightYellow:brighten("#D79921",0.15),brightBlue:brighten("#458588",0.15),brightMagenta:"#B16286",brightCyan:brighten("#689D6A",0.15),brightWhite:"#3C3836",foreground:"#3C3836",background:"#FBF1C7",cursorColor:"#3C3836",cursorText:"#FBF1C7",selectionBackground:"#A89984",selectionForeground:"#3C3836"}});var rosePine,rosePineMoon,rosePineDawn;var init_rose_pine=__esm(()=>{init_color();rosePine={name:"rose-pine",dark:!0,black:"#191724",red:"#EB6F92",green:"#31748F",yellow:"#F6C177",blue:"#3E8FB0",magenta:"#C4A7E7",cyan:"#9CCFD8",white:"#908CAA",brightBlack:"#26233A",brightRed:"#EA9A97",brightGreen:brighten("#31748F",0.15),brightYellow:brighten("#F6C177",0.15),brightBlue:brighten("#3E8FB0",0.15),brightMagenta:"#EBBCBA",brightCyan:brighten("#9CCFD8",0.15),brightWhite:"#E0DEF4",foreground:"#E0DEF4",background:"#1F1D2E",cursorColor:"#E0DEF4",cursorText:"#1F1D2E",selectionBackground:"#6E6A86",selectionForeground:"#E0DEF4"},rosePineMoon={name:"rose-pine-moon",dark:!0,black:"#232136",red:"#EB6F92",green:"#3E8FB0",yellow:"#F6C177",blue:"#3E8FB0",magenta:"#C4A7E7",cyan:"#9CCFD8",white:"#908CAA",brightBlack:"#393552",brightRed:"#EA9A97",brightGreen:brighten("#3E8FB0",0.15),brightYellow:brighten("#F6C177",0.15),brightBlue:brighten("#3E8FB0",0.15),brightMagenta:"#EA9A97",brightCyan:brighten("#9CCFD8",0.15),brightWhite:"#E0DEF4",foreground:"#E0DEF4",background:"#2A273F",cursorColor:"#E0DEF4",cursorText:"#2A273F",selectionBackground:"#6E6A86",selectionForeground:"#E0DEF4"},rosePineDawn={name:"rose-pine-dawn",dark:!1,black:"#FAF4ED",red:"#B4637A",green:"#286983",yellow:"#EA9D34",blue:"#286983",magenta:"#907AA9",cyan:"#56949F",white:"#797593",brightBlack:"#F2E9E1",brightRed:"#D7827E",brightGreen:brighten("#286983",0.15),brightYellow:brighten("#EA9D34",0.15),brightBlue:brighten("#286983",0.15),brightMagenta:"#D7827E",brightCyan:brighten("#56949F",0.15),brightWhite:"#575279",foreground:"#575279",background:"#FFFAF3",cursorColor:"#575279",cursorText:"#FFFAF3",selectionBackground:"#9893A5",selectionForeground:"#575279"}});var kanagawaWave,kanagawaDragon,kanagawaLotus;var init_kanagawa=__esm(()=>{init_color();kanagawaWave={name:"kanagawa-wave",dark:!0,black:"#16161D",red:"#C34043",green:"#98BB6C",yellow:"#E6C384",blue:"#7E9CD8",magenta:"#957FB8",cyan:"#6A9589",white:"#727169",brightBlack:"#2A2A37",brightRed:"#FFA066",brightGreen:brighten("#98BB6C",0.15),brightYellow:brighten("#E6C384",0.15),brightBlue:brighten("#7E9CD8",0.15),brightMagenta:"#D27E99",brightCyan:brighten("#6A9589",0.15),brightWhite:"#DCD7BA",foreground:"#DCD7BA",background:"#1F1F28",cursorColor:"#DCD7BA",cursorText:"#1F1F28",selectionBackground:"#54546D",selectionForeground:"#DCD7BA"},kanagawaDragon={name:"kanagawa-dragon",dark:!0,black:"#0d0c0c",red:"#c4746e",green:"#87a987",yellow:"#c4b28a",blue:"#8ba4b0",magenta:"#8992a7",cyan:"#8ea4a2",white:"#737c73",brightBlack:"#282727",brightRed:"#b6927b",brightGreen:brighten("#87a987",0.15),brightYellow:brighten("#c4b28a",0.15),brightBlue:brighten("#8ba4b0",0.15),brightMagenta:"#a292a3",brightCyan:brighten("#8ea4a2",0.15),brightWhite:"#c5c9c5",foreground:"#c5c9c5",background:"#181616",cursorColor:"#c5c9c5",cursorText:"#181616",selectionBackground:"#625e5a",selectionForeground:"#c5c9c5"},kanagawaLotus={name:"kanagawa-lotus",dark:!1,black:"#e5ddb0",red:"#c84053",green:"#6f894e",yellow:"#de9800",blue:"#4d699b",magenta:"#624c83",cyan:"#597b75",white:"#716e61",brightBlack:"#dcd5ac",brightRed:"#cc6d00",brightGreen:brighten("#6f894e",0.15),brightYellow:brighten("#de9800",0.15),brightBlue:brighten("#4d699b",0.15),brightMagenta:"#b35b79",brightCyan:brighten("#597b75",0.15),brightWhite:"#545464",foreground:"#545464",background:"#f2ecbc",cursorColor:"#545464",cursorText:"#f2ecbc",selectionBackground:"#8a8980",selectionForeground:"#545464"}});var everforestDark,everforestLight;var init_everforest=__esm(()=>{init_color();everforestDark={name:"everforest-dark",dark:!0,black:"#232a2e",red:"#e67e80",green:"#a7c080",yellow:"#dbbc7f",blue:"#7fbbb3",magenta:"#d699b6",cyan:"#83c092",white:"#859289",brightBlack:"#343f44",brightRed:"#e69875",brightGreen:brighten("#a7c080",0.15),brightYellow:brighten("#dbbc7f",0.15),brightBlue:brighten("#7fbbb3",0.15),brightMagenta:"#e67e80",brightCyan:brighten("#83c092",0.15),brightWhite:"#d3c6aa",foreground:"#d3c6aa",background:"#2d353b",cursorColor:"#d3c6aa",cursorText:"#2d353b",selectionBackground:"#4f585e",selectionForeground:"#d3c6aa"},everforestLight={name:"everforest-light",dark:!1,black:"#efebd4",red:"#f85552",green:"#8da101",yellow:"#dfa000",blue:"#3a94c5",magenta:"#df69ba",cyan:"#35a77c",white:"#939f91",brightBlack:"#f4f0d9",brightRed:"#f57d26",brightGreen:brighten("#8da101",0.15),brightYellow:brighten("#dfa000",0.15),brightBlue:brighten("#3a94c5",0.15),brightMagenta:"#f85552",brightCyan:brighten("#35a77c",0.15),brightWhite:"#5c6a72",foreground:"#5c6a72",background:"#fdf6e3",cursorColor:"#5c6a72",cursorText:"#fdf6e3",selectionBackground:"#e0dcc7",selectionForeground:"#5c6a72"}});var monokai,monokaiPro;var init_monokai=__esm(()=>{init_color();monokai={name:"monokai",dark:!0,black:"#1a1a1a",red:"#F92672",green:"#A6E22E",yellow:"#E6DB74",blue:"#66D9EF",magenta:"#AE81FF",cyan:"#66D9EF",white:"#a59f85",brightBlack:"#3e3d32",brightRed:"#FD971F",brightGreen:brighten("#A6E22E",0.15),brightYellow:brighten("#E6DB74",0.15),brightBlue:brighten("#66D9EF",0.15),brightMagenta:"#F92672",brightCyan:brighten("#66D9EF",0.15),brightWhite:"#F8F8F2",foreground:"#F8F8F2",background:"#272822",cursorColor:"#F8F8F2",cursorText:"#272822",selectionBackground:"#75715E",selectionForeground:"#F8F8F2"},monokaiPro={name:"monokai-pro",dark:!0,black:"#221f22",red:"#ff6188",green:"#a9dc76",yellow:"#ffd866",blue:"#78dce8",magenta:"#ab9df2",cyan:"#78dce8",white:"#939293",brightBlack:"#403e41",brightRed:"#fc9867",brightGreen:brighten("#a9dc76",0.15),brightYellow:brighten("#ffd866",0.15),brightBlue:brighten("#78dce8",0.15),brightMagenta:"#ff6188",brightCyan:brighten("#78dce8",0.15),brightWhite:"#fcfcfa",foreground:"#fcfcfa",background:"#2d2a2e",cursorColor:"#fcfcfa",cursorText:"#2d2a2e",selectionBackground:"#727072",selectionForeground:"#fcfcfa"}});var snazzy;var init_snazzy=__esm(()=>{init_color();snazzy={name:"snazzy",dark:!0,black:"#222430",red:"#ff5c57",green:"#5af78e",yellow:"#f3f99d",blue:"#57c7ff",magenta:"#b267e6",cyan:"#9aedfe",white:"#97979b",brightBlack:"#34353e",brightRed:"#ff9f43",brightGreen:brighten("#5af78e",0.15),brightYellow:brighten("#f3f99d",0.15),brightBlue:brighten("#57c7ff",0.15),brightMagenta:"#ff6ac1",brightCyan:brighten("#9aedfe",0.15),brightWhite:"#eff0eb",foreground:"#eff0eb",background:"#282a36",cursorColor:"#eff0eb",cursorText:"#282a36",selectionBackground:"#686868",selectionForeground:"#eff0eb"}});var materialDark,materialLight;var init_material=__esm(()=>{init_color();materialDark={name:"material-dark",dark:!0,black:"#171717",red:"#ff5370",green:"#c3e88d",yellow:"#ffcb6b",blue:"#82aaff",magenta:"#c792ea",cyan:"#89ddff",white:"#545454",brightBlack:"#2c2c2c",brightRed:"#f78c6c",brightGreen:brighten("#c3e88d",0.15),brightYellow:brighten("#ffcb6b",0.15),brightBlue:brighten("#82aaff",0.15),brightMagenta:"#f07178",brightCyan:brighten("#89ddff",0.15),brightWhite:"#eeffff",foreground:"#eeffff",background:"#212121",cursorColor:"#eeffff",cursorText:"#212121",selectionBackground:"#424242",selectionForeground:"#eeffff"},materialLight={name:"material-light",dark:!1,black:"#ecf0f1",red:"#e53935",green:"#91b859",yellow:"#ffb62c",blue:"#6182b8",magenta:"#7c4dff",cyan:"#39adb5",white:"#90a4ae",brightBlack:"#ebf4f3",brightRed:"#f76d47",brightGreen:brighten("#91b859",0.15),brightYellow:brighten("#ffb62c",0.15),brightBlue:brighten("#6182b8",0.15),brightMagenta:"#ff5370",brightCyan:brighten("#39adb5",0.15),brightWhite:"#546E7A",foreground:"#546E7A",background:"#fafafa",cursorColor:"#546E7A",cursorText:"#fafafa",selectionBackground:"#cfd8dc",selectionForeground:"#546E7A"}});var palenight;var init_palenight=__esm(()=>{init_color();palenight={name:"palenight",dark:!0,black:"#1c1f2b",red:"#f07178",green:"#c3e88d",yellow:"#ffcb6b",blue:"#82aaff",magenta:"#c792ea",cyan:"#89ddff",white:"#676e95",brightBlack:"#343b51",brightRed:"#f78c6c",brightGreen:brighten("#c3e88d",0.15),brightYellow:brighten("#ffcb6b",0.15),brightBlue:brighten("#82aaff",0.15),brightMagenta:"#ff5370",brightCyan:brighten("#89ddff",0.15),brightWhite:"#a6accd",foreground:"#a6accd",background:"#292d3e",cursorColor:"#a6accd",cursorText:"#292d3e",selectionBackground:"#4e5579",selectionForeground:"#a6accd"}});var ayuDark,ayuMirage,ayuLight;var init_ayu=__esm(()=>{init_color();ayuDark={name:"ayu-dark",dark:!0,black:"#05070A",red:"#D95757",green:"#AAD94C",yellow:"#E6B450",blue:"#59C2FF",magenta:"#D2A6FF",cyan:"#95E6CB",white:"#636A72",brightBlack:"#11151C",brightRed:"#F29668",brightGreen:brighten("#AAD94C",0.15),brightYellow:brighten("#E6B450",0.15),brightBlue:brighten("#59C2FF",0.15),brightMagenta:"#F07178",brightCyan:brighten("#95E6CB",0.15),brightWhite:"#BFBDB6",foreground:"#BFBDB6",background:"#0B0E14",cursorColor:"#BFBDB6",cursorText:"#0B0E14",selectionBackground:"#565B66",selectionForeground:"#BFBDB6"},ayuMirage={name:"ayu-mirage",dark:!0,black:"#101521",red:"#FF6666",green:"#D5FF80",yellow:"#FFCC66",blue:"#73D0FF",magenta:"#DFBFFF",cyan:"#95E6CB",white:"#6C7A8B",brightBlack:"#171B24",brightRed:"#F29E74",brightGreen:brighten("#D5FF80",0.15),brightYellow:brighten("#FFCC66",0.15),brightBlue:brighten("#73D0FF",0.15),brightMagenta:"#F28779",brightCyan:brighten("#95E6CB",0.15),brightWhite:"#CCCAC2",foreground:"#CCCAC2",background:"#1F2430",cursorColor:"#CCCAC2",cursorText:"#1F2430",selectionBackground:"#707A8C",selectionForeground:"#CCCAC2"},ayuLight={name:"ayu-light",dark:!1,black:"#E7EAED",red:"#E65050",green:"#86B300",yellow:"#FFAA33",blue:"#399EE6",magenta:"#A37ACC",cyan:"#4CBF99",white:"#ABADB1",brightBlack:"#F3F4F5",brightRed:"#ED9366",brightGreen:brighten("#86B300",0.15),brightYellow:brighten("#FFAA33",0.15),brightBlue:brighten("#399EE6",0.15),brightMagenta:"#F07171",brightCyan:brighten("#4CBF99",0.15),brightWhite:"#5C6166",foreground:"#5C6166",background:"#F8F9FA",cursorColor:"#5C6166",cursorText:"#F8F9FA",selectionBackground:"#8A9199",selectionForeground:"#5C6166"}});var nightfox,dawnfox;var init_nightfox=__esm(()=>{init_color();nightfox={name:"nightfox",dark:!0,black:"#131A24",red:"#C94F6D",green:"#81B29A",yellow:"#DBC074",blue:"#719CD6",magenta:"#9D79D6",cyan:"#63CDCF",white:"#71839B",brightBlack:"#212E3F",brightRed:"#F4A261",brightGreen:brighten("#81B29A",0.15),brightYellow:brighten("#DBC074",0.15),brightBlue:brighten("#719CD6",0.15),brightMagenta:"#D67AD2",brightCyan:brighten("#63CDCF",0.15),brightWhite:"#CDCECF",foreground:"#CDCECF",background:"#192330",cursorColor:"#CDCECF",cursorText:"#192330",selectionBackground:"#39506D",selectionForeground:"#CDCECF"},dawnfox={name:"dawnfox",dark:!1,black:"#EBE5DF",red:"#B4637A",green:"#618774",yellow:"#EA9D34",blue:"#286983",magenta:"#907AA9",cyan:"#56949F",white:"#A8A3B3",brightBlack:"#EBE0DF",brightRed:"#D7827E",brightGreen:brighten("#618774",0.15),brightYellow:brighten("#EA9D34",0.15),brightBlue:brighten("#286983",0.15),brightMagenta:"#D685AF",brightCyan:brighten("#56949F",0.15),brightWhite:"#575279",foreground:"#575279",background:"#FAF4ED",cursorColor:"#575279",cursorText:"#FAF4ED",selectionBackground:"#BDBFC9",selectionForeground:"#575279"}});var horizon;var init_horizon=__esm(()=>{init_color();horizon={name:"horizon",dark:!0,black:"#16161C",red:"#E95678",green:"#29D398",yellow:"#FAC29A",blue:"#26BBD9",magenta:"#B877DB",cyan:"#59E1E3",white:"#6C6F93",brightBlack:"#232530",brightRed:"#FAB795",brightGreen:brighten("#29D398",0.15),brightYellow:brighten("#FAC29A",0.15),brightBlue:brighten("#26BBD9",0.15),brightMagenta:"#EE64AC",brightCyan:brighten("#59E1E3",0.15),brightWhite:"#D5D8DA",foreground:"#D5D8DA",background:"#1C1E26",cursorColor:"#D5D8DA",cursorText:"#1C1E26",selectionBackground:"#2E303E",selectionForeground:"#D5D8DA"}});var moonfly;var init_moonfly=__esm(()=>{init_color();moonfly={name:"moonfly",dark:!0,black:"#121212",red:"#FF5D5D",green:"#8CC85F",yellow:"#E3C78A",blue:"#80A0FF",magenta:"#AE81FF",cyan:"#79DAC8",white:"#808080",brightBlack:"#1C1C1C",brightRed:"#DE935F",brightGreen:brighten("#8CC85F",0.15),brightYellow:brighten("#E3C78A",0.15),brightBlue:brighten("#80A0FF",0.15),brightMagenta:"#FF5189",brightCyan:brighten("#79DAC8",0.15),brightWhite:"#C6C6C6",foreground:"#C6C6C6",background:"#080808",cursorColor:"#C6C6C6",cursorText:"#080808",selectionBackground:"#323437",selectionForeground:"#C6C6C6"}});var nightfly;var init_nightfly=__esm(()=>{init_color();nightfly={name:"nightfly",dark:!0,black:"#081E2F",red:"#FC514E",green:"#A1CD5E",yellow:"#E3D18A",blue:"#82AAFF",magenta:"#C792EA",cyan:"#7FDBCA",white:"#7C8F8F",brightBlack:"#0E293F",brightRed:"#F78C6C",brightGreen:brighten("#A1CD5E",0.15),brightYellow:brighten("#E3D18A",0.15),brightBlue:brighten("#82AAFF",0.15),brightMagenta:"#FF5874",brightCyan:brighten("#7FDBCA",0.15),brightWhite:"#C3CCDC",foreground:"#C3CCDC",background:"#011627",cursorColor:"#C3CCDC",cursorText:"#011627",selectionBackground:"#2C3043",selectionForeground:"#C3CCDC"}});var oxocarbonDark,oxocarbonLight;var init_oxocarbon=__esm(()=>{init_color();oxocarbonDark={name:"oxocarbon-dark",dark:!0,black:"#131313",red:"#EE5396",green:"#42BE65",yellow:"#82CFFF",blue:"#78A9FF",magenta:"#BE95FF",cyan:"#08BDBA",white:"#5C5C5C",brightBlack:"#2A2A2A",brightRed:"#FF7EB6",brightGreen:brighten("#42BE65",0.15),brightYellow:brighten("#82CFFF",0.15),brightBlue:brighten("#78A9FF",0.15),brightMagenta:"#FF7EB6",brightCyan:brighten("#08BDBA",0.15),brightWhite:"#F3F3F3",foreground:"#F3F3F3",background:"#161616",cursorColor:"#F3F3F3",cursorText:"#161616",selectionBackground:"#404040",selectionForeground:"#F3F3F3"},oxocarbonLight={name:"oxocarbon-light",dark:!1,black:"#F3F3F3",red:"#EE5396",green:"#42BE65",yellow:"#FFAB91",blue:"#0F62FE",magenta:"#BE95FF",cyan:"#08BDBA",white:"#90A4AE",brightBlack:"#D5D5D5",brightRed:"#FF6F00",brightGreen:brighten("#42BE65",0.15),brightYellow:brighten("#FFAB91",0.15),brightBlue:brighten("#0F62FE",0.15),brightMagenta:"#FF7EB6",brightCyan:brighten("#08BDBA",0.15),brightWhite:"#37474F",foreground:"#37474F",background:"#FFFFFF",cursorColor:"#37474F",cursorText:"#FFFFFF",selectionBackground:"#525252",selectionForeground:"#37474F"}});var sonokai;var init_sonokai=__esm(()=>{init_color();sonokai={name:"sonokai",dark:!0,black:"#181819",red:"#FC5D7C",green:"#9ED072",yellow:"#E7C664",blue:"#76CCE0",magenta:"#B39DF3",cyan:"#76CCE0",white:"#7F8490",brightBlack:"#33353F",brightRed:"#F39660",brightGreen:brighten("#9ED072",0.15),brightYellow:brighten("#E7C664",0.15),brightBlue:brighten("#76CCE0",0.15),brightMagenta:"#FC5D7C",brightCyan:brighten("#76CCE0",0.15),brightWhite:"#E2E2E3",foreground:"#E2E2E3",background:"#2C2E34",cursorColor:"#E2E2E3",cursorText:"#2C2E34",selectionBackground:"#414550",selectionForeground:"#E2E2E3"}});var edgeDark,edgeLight;var init_edge=__esm(()=>{init_color();edgeDark={name:"edge-dark",dark:!0,black:"#202023",red:"#EC7279",green:"#A0C980",yellow:"#DEB974",blue:"#6CB6EB",magenta:"#D38AEA",cyan:"#5DBBC1",white:"#758094",brightBlack:"#33353F",brightRed:"#DEB974",brightGreen:brighten("#A0C980",0.15),brightYellow:brighten("#DEB974",0.15),brightBlue:brighten("#6CB6EB",0.15),brightMagenta:"#EC7279",brightCyan:brighten("#5DBBC1",0.15),brightWhite:"#C5CDD9",foreground:"#C5CDD9",background:"#2C2E34",cursorColor:"#C5CDD9",cursorText:"#2C2E34",selectionBackground:"#414550",selectionForeground:"#C5CDD9"},edgeLight={name:"edge-light",dark:!1,black:"#DDE2E7",red:"#D05858",green:"#608E32",yellow:"#BE7E05",blue:"#5079BE",magenta:"#B05CCC",cyan:"#3A8B84",white:"#8790A0",brightBlack:"#EEF1F4",brightRed:"#BE7E05",brightGreen:brighten("#608E32",0.15),brightYellow:brighten("#BE7E05",0.15),brightBlue:brighten("#5079BE",0.15),brightMagenta:"#D05858",brightCyan:brighten("#3A8B84",0.15),brightWhite:"#4B505B",foreground:"#4B505B",background:"#FAFAFA",cursorColor:"#4B505B",cursorText:"#FAFAFA",selectionBackground:"#DDE2E7",selectionForeground:"#4B505B"}});var modusVivendi,modusOperandi;var init_modus=__esm(()=>{init_color();modusVivendi={name:"modus-vivendi",dark:!0,black:"#000000",red:"#FF5F59",green:"#44BC44",yellow:"#D0BC00",blue:"#2FAFFF",magenta:"#B6A0FF",cyan:"#00D3D0",white:"#989898",brightBlack:"#1E1E1E",brightRed:"#FEC43F",brightGreen:brighten("#44BC44",0.15),brightYellow:brighten("#D0BC00",0.15),brightBlue:brighten("#2FAFFF",0.15),brightMagenta:"#FEACD0",brightCyan:brighten("#00D3D0",0.15),brightWhite:"#FFFFFF",foreground:"#FFFFFF",background:"#000000",cursorColor:"#FFFFFF",cursorText:"#000000",selectionBackground:"#535353",selectionForeground:"#FFFFFF"},modusOperandi={name:"modus-operandi",dark:!1,black:"#E0E0E0",red:"#A60000",green:"#006800",yellow:"#6F5500",blue:"#0031A9",magenta:"#531AB6",cyan:"#005E8B",white:"#595959",brightBlack:"#F2F2F2",brightRed:"#884900",brightGreen:brighten("#006800",0.15),brightYellow:brighten("#6F5500",0.15),brightBlue:brighten("#0031A9",0.15),brightMagenta:"#721045",brightCyan:brighten("#005E8B",0.15),brightWhite:"#000000",foreground:"#000000",background:"#FFFFFF",cursorColor:"#000000",cursorText:"#FFFFFF",selectionBackground:"#9F9F9F",selectionForeground:"#000000"}});var githubDark,githubLight;var init_github=__esm(()=>{githubDark={name:"github-dark",dark:!0,black:"#000000",red:"#f78166",green:"#56d364",yellow:"#e3b341",blue:"#6ca4f8",magenta:"#db61a2",cyan:"#2b7489",white:"#ffffff",brightBlack:"#4d4d4d",brightRed:"#f78166",brightGreen:"#56d364",brightYellow:"#e3b341",brightBlue:"#6ca4f8",brightMagenta:"#db61a2",brightCyan:"#2b7489",brightWhite:"#ffffff",foreground:"#8b949e",background:"#101216",cursorColor:"#c9d1d9",cursorText:"#101216",selectionBackground:"#3b5070",selectionForeground:"#c9d1d9"},githubLight={name:"github-light",dark:!1,black:"#3e3e3e",red:"#970b16",green:"#07962a",yellow:"#f8eec7",blue:"#003e8a",magenta:"#e94691",cyan:"#89d1ec",white:"#ffffff",brightBlack:"#666666",brightRed:"#de0000",brightGreen:"#87d5a2",brightYellow:"#f1d007",brightBlue:"#2e6cba",brightMagenta:"#ffa29f",brightCyan:"#1cfafe",brightWhite:"#ffffff",foreground:"#3e3e3e",background:"#f4f4f4",cursorColor:"#3f3f3f",cursorText:"#f4f4f4",selectionBackground:"#a9c1e2",selectionForeground:"#3e3e3e"}});var cobalt2;var init_cobalt2=__esm(()=>{cobalt2={name:"cobalt2",dark:!0,black:"#000000",red:"#ff0000",green:"#38de21",yellow:"#ffe50a",blue:"#1460d2",magenta:"#ff005d",cyan:"#00bbbb",white:"#bbbbbb",brightBlack:"#555555",brightRed:"#f40e17",brightGreen:"#3bd01d",brightYellow:"#edc809",brightBlue:"#5555ff",brightMagenta:"#ff55ff",brightCyan:"#6ae3fa",brightWhite:"#ffffff",foreground:"#ffffff",background:"#132738",cursorColor:"#f0cc09",cursorText:"#132738",selectionBackground:"#18354f",selectionForeground:"#ffffff"}});var synthwave,synthwave84;var init_synthwave=__esm(()=>{synthwave={name:"synthwave",dark:!0,black:"#000000",red:"#f6188f",green:"#1ebb2b",yellow:"#fdf834",blue:"#2186ec",magenta:"#f85a21",cyan:"#12c3e2",white:"#ffffff",brightBlack:"#000000",brightRed:"#f841a0",brightGreen:"#25c141",brightYellow:"#fdf454",brightBlue:"#2f9ded",brightMagenta:"#f97137",brightCyan:"#19cde6",brightWhite:"#ffffff",foreground:"#dad9c7",background:"#000000",cursorColor:"#19cde6",cursorText:"#000000",selectionBackground:"#19cde6",selectionForeground:"#000000"},synthwave84={name:"synthwave-84",dark:!0,black:"#fefefe",red:"#f97e72",green:"#72f1b8",yellow:"#fede5d",blue:"#6d77b3",magenta:"#c792ea",cyan:"#f772e0",white:"#fefefe",brightBlack:"#fefefe",brightRed:"#f88414",brightGreen:"#72f1b8",brightYellow:"#fff951",brightBlue:"#36f9f6",brightMagenta:"#e1acff",brightCyan:"#f92aad",brightWhite:"#fefefe",foreground:"#f0eff1",background:"#2a2139",cursorColor:"#72f1b8",cursorText:"#2a2139",selectionBackground:"#181521",selectionForeground:"#f0eff1"}});var tomorrowNight,tomorrowNightBlue,tomorrowNightEighties;var init_tomorrow_night=__esm(()=>{tomorrowNight={name:"tomorrow-night",dark:!0,black:"#282a2e",red:"#cc6666",green:"#b5bd68",yellow:"#f0c674",blue:"#81a2be",magenta:"#b294bb",cyan:"#8abeb7",white:"#e0e0e0",brightBlack:"#373b41",brightRed:"#cc6666",brightGreen:"#b5bd68",brightYellow:"#f0c674",brightBlue:"#81a2be",brightMagenta:"#b294bb",brightCyan:"#8abeb7",brightWhite:"#ffffff",foreground:"#c5c8c6",background:"#1d1f21",cursorColor:"#c5c8c6",cursorText:"#1d1f21",selectionBackground:"#373b41",selectionForeground:"#c5c8c6"},tomorrowNightBlue={name:"tomorrow-night-blue",dark:!0,black:"#000000",red:"#ff9da4",green:"#d1f1a9",yellow:"#ffeead",blue:"#bbdaff",magenta:"#ebbbff",cyan:"#99ffff",white:"#ffffff",brightBlack:"#000000",brightRed:"#ff9da4",brightGreen:"#d1f1a9",brightYellow:"#ffeead",brightBlue:"#bbdaff",brightMagenta:"#ebbbff",brightCyan:"#99ffff",brightWhite:"#ffffff",foreground:"#ffffff",background:"#002451",cursorColor:"#ffffff",cursorText:"#002451",selectionBackground:"#003f8e",selectionForeground:"#ffffff"},tomorrowNightEighties={name:"tomorrow-night-eighties",dark:!0,black:"#393939",red:"#f2777a",green:"#99cc99",yellow:"#ffcc66",blue:"#6699cc",magenta:"#cc99cc",cyan:"#66cccc",white:"#e0e0e0",brightBlack:"#515151",brightRed:"#f2777a",brightGreen:"#99cc99",brightYellow:"#ffcc66",brightBlue:"#6699cc",brightMagenta:"#cc99cc",brightCyan:"#66cccc",brightWhite:"#ffffff",foreground:"#cccccc",background:"#2d2d2d",cursorColor:"#cccccc",cursorText:"#2d2d2d",selectionBackground:"#515151",selectionForeground:"#cccccc"}});var zenburn;var init_zenburn=__esm(()=>{zenburn={name:"zenburn",dark:!0,black:"#4d4d4d",red:"#705050",green:"#60b48a",yellow:"#f0dfaf",blue:"#506070",magenta:"#dc8cc3",cyan:"#8cd0d3",white:"#dcdccc",brightBlack:"#709080",brightRed:"#dca3a3",brightGreen:"#c3bf9f",brightYellow:"#e0cf9f",brightBlue:"#94bff3",brightMagenta:"#ec93d3",brightCyan:"#93e0e3",brightWhite:"#ffffff",foreground:"#dcdccc",background:"#3f3f3f",cursorColor:"#73635a",cursorText:"#3f3f3f",selectionBackground:"#21322f",selectionForeground:"#dcdccc"}});var ubuntu;var init_ubuntu=__esm(()=>{ubuntu={name:"ubuntu",dark:!0,black:"#2e3436",red:"#cc0000",green:"#4e9a06",yellow:"#c4a000",blue:"#3465a4",magenta:"#75507b",cyan:"#06989a",white:"#d3d7cf",brightBlack:"#555753",brightRed:"#ef2929",brightGreen:"#8ae234",brightYellow:"#fce94f",brightBlue:"#729fcf",brightMagenta:"#ad7fa8",brightCyan:"#34e2e2",brightWhite:"#eeeeec",foreground:"#eeeeec",background:"#300a24",cursorColor:"#bbbbbb",cursorText:"#300a24",selectionBackground:"#b5d5ff",selectionForeground:"#300a24"}});var tangoDark,tangoLight;var init_tango=__esm(()=>{tangoDark={name:"tango-dark",dark:!0,black:"#000000",red:"#cc0000",green:"#4e9a06",yellow:"#c4a000",blue:"#3465a4",magenta:"#75507b",cyan:"#06989a",white:"#d3d7cf",brightBlack:"#555753",brightRed:"#ef2929",brightGreen:"#8ae234",brightYellow:"#fce94f",brightBlue:"#729fcf",brightMagenta:"#ad7fa8",brightCyan:"#34e2e2",brightWhite:"#eeeeec",foreground:"#ffffff",background:"#000000",cursorColor:"#ffffff",cursorText:"#000000",selectionBackground:"#b5d5ff",selectionForeground:"#000000"},tangoLight={name:"tango-light",dark:!1,black:"#000000",red:"#cc0000",green:"#4e9a06",yellow:"#c4a000",blue:"#3465a4",magenta:"#75507b",cyan:"#06989a",white:"#d3d7cf",brightBlack:"#555753",brightRed:"#ef2929",brightGreen:"#8ae234",brightYellow:"#fce94f",brightBlue:"#729fcf",brightMagenta:"#ad7fa8",brightCyan:"#34e2e2",brightWhite:"#eeeeec",foreground:"#000000",background:"#ffffff",cursorColor:"#000000",cursorText:"#ffffff",selectionBackground:"#b5d5ff",selectionForeground:"#000000"}});var cyberpunk;var init_cyberpunk=__esm(()=>{cyberpunk={name:"cyberpunk",dark:!0,black:"#000000",red:"#ff7092",green:"#00fbac",yellow:"#fffa6a",blue:"#00bfff",magenta:"#df95ff",cyan:"#86cbfe",white:"#ffffff",brightBlack:"#000000",brightRed:"#ff8aa4",brightGreen:"#21f6bc",brightYellow:"#fff787",brightBlue:"#1bccfd",brightMagenta:"#e6aefe",brightCyan:"#99d6fc",brightWhite:"#ffffff",foreground:"#e5e5e5",background:"#332a57",cursorColor:"#21f6bc",cursorText:"#332a57",selectionBackground:"#c1deff",selectionForeground:"#332a57"}});var vscodeDark;var init_vscode=__esm(()=>{vscodeDark={name:"vscode-dark",dark:!0,black:"#000000",red:"#cd3131",green:"#0dbc79",yellow:"#e5e510",blue:"#2472c8",magenta:"#bc3fbc",cyan:"#11a8cd",white:"#e5e5e5",brightBlack:"#666666",brightRed:"#f14c4c",brightGreen:"#23d18b",brightYellow:"#f5f543",brightBlue:"#3b8eea",brightMagenta:"#d670d6",brightCyan:"#29b8db",brightWhite:"#e5e5e5",foreground:"#cccccc",background:"#1e1e1e",cursorColor:"#ffffff",cursorText:"#1e1e1e",selectionBackground:"#3a3d41",selectionForeground:"#cccccc"}});var oneLight,oneHalfDark,oneHalfLight;var init_one_light=__esm(()=>{oneLight={name:"one-light",dark:!1,black:"#000000",red:"#de3e35",green:"#3f953a",yellow:"#d2b67c",blue:"#2f5af3",magenta:"#950095",cyan:"#3f953a",white:"#bbbbbb",brightBlack:"#000000",brightRed:"#de3e35",brightGreen:"#3f953a",brightYellow:"#d2b67c",brightBlue:"#2f5af3",brightMagenta:"#a00095",brightCyan:"#3f953a",brightWhite:"#ffffff",foreground:"#2a2c33",background:"#f9f9f9",cursorColor:"#bbbbbb",cursorText:"#f9f9f9",selectionBackground:"#ededed",selectionForeground:"#2a2c33"},oneHalfDark={name:"one-half-dark",dark:!0,black:"#282c34",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#dcdfe4",brightBlack:"#282c34",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#dcdfe4",foreground:"#dcdfe4",background:"#282c34",cursorColor:"#a3b3cc",cursorText:"#282c34",selectionBackground:"#474e5d",selectionForeground:"#dcdfe4"},oneHalfLight={name:"one-half-light",dark:!1,black:"#383a42",red:"#e45649",green:"#50a14f",yellow:"#c18401",blue:"#0184bc",magenta:"#a626a4",cyan:"#0997b3",white:"#fafafa",brightBlack:"#4f525e",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff",foreground:"#383a42",background:"#fafafa",cursorColor:"#bfceff",cursorText:"#fafafa",selectionBackground:"#bfceff",selectionForeground:"#383a42"}});var nightOwlLight;var init_night_owl=__esm(()=>{nightOwlLight={name:"night-owl-light",dark:!1,black:"#011627",red:"#d3423e",green:"#2aa298",yellow:"#daaa01",blue:"#4876d6",magenta:"#403f53",cyan:"#08916a",white:"#7a8181",brightBlack:"#7a8181",brightRed:"#f76e6e",brightGreen:"#49d0c5",brightYellow:"#dac26b",brightBlue:"#5ca7e4",brightMagenta:"#697098",brightCyan:"#00c990",brightWhite:"#989fb1",foreground:"#403f53",background:"#ffffff",cursorColor:"#403f53",cursorText:"#ffffff",selectionBackground:"#f2f2f2",selectionForeground:"#403f53"}});var shadesOfPurple;var init_shades_of_purple=__esm(()=>{shadesOfPurple={name:"shades-of-purple",dark:!0,black:"#000000",red:"#d90429",green:"#3ad900",yellow:"#ffe700",blue:"#6943ff",magenta:"#ff2c70",cyan:"#00c5c7",white:"#c7c7c7",brightBlack:"#686868",brightRed:"#f92a1c",brightGreen:"#43d426",brightYellow:"#f1d000",brightBlue:"#6871ff",brightMagenta:"#ff77ff",brightCyan:"#79e8fb",brightWhite:"#ffffff",foreground:"#ffffff",background:"#1e1d40",cursorColor:"#fad000",cursorText:"#1e1d40",selectionBackground:"#b362ff",selectionForeground:"#ffffff"}});var homebrew;var init_homebrew=__esm(()=>{homebrew={name:"homebrew",dark:!0,black:"#000000",red:"#990000",green:"#00a600",yellow:"#999900",blue:"#0000b2",magenta:"#b200b2",cyan:"#00a6b2",white:"#bfbfbf",brightBlack:"#666666",brightRed:"#e50000",brightGreen:"#00d900",brightYellow:"#e5e500",brightBlue:"#0000ff",brightMagenta:"#e500e5",brightCyan:"#00e5e5",brightWhite:"#e5e5e5",foreground:"#00ff00",background:"#000000",cursorColor:"#23ff18",cursorText:"#000000",selectionBackground:"#083905",selectionForeground:"#00ff00"}});var neon;var init_neon=__esm(()=>{neon={name:"neon",dark:!0,black:"#000000",red:"#ff3045",green:"#5ffa74",yellow:"#fffc7e",blue:"#0208cb",magenta:"#f924e7",cyan:"#00fffc",white:"#c7c7c7",brightBlack:"#686868",brightRed:"#ff5a5a",brightGreen:"#75ff88",brightYellow:"#fffd96",brightBlue:"#3c40cb",brightMagenta:"#f15be5",brightCyan:"#88fffe",brightWhite:"#ffffff",foreground:"#00fffc",background:"#14161a",cursorColor:"#c7c7c7",cursorText:"#14161a",selectionBackground:"#0013ff",selectionForeground:"#ffffff"}});var challengerDeep;var init_challenger_deep=__esm(()=>{challengerDeep={name:"challenger-deep",dark:!0,black:"#141228",red:"#ff5458",green:"#62d196",yellow:"#ffb378",blue:"#65b2ff",magenta:"#906cff",cyan:"#63f2f1",white:"#a6b3cc",brightBlack:"#565575",brightRed:"#ff8080",brightGreen:"#95ffa4",brightYellow:"#ffe9aa",brightBlue:"#91ddff",brightMagenta:"#c991e1",brightCyan:"#aaffe4",brightWhite:"#cbe3e7",foreground:"#cbe1e7",background:"#1e1c31",cursorColor:"#fbfcfc",cursorText:"#1e1c31",selectionBackground:"#cbe1e7",selectionForeground:"#1e1c31"}});var doomOne;var init_doom_one=__esm(()=>{doomOne={name:"doom-one",dark:!0,black:"#000000",red:"#ff6c6b",green:"#98be65",yellow:"#ecbe7b",blue:"#a9a1e1",magenta:"#c678dd",cyan:"#51afef",white:"#bbc2cf",brightBlack:"#000000",brightRed:"#ff6655",brightGreen:"#99bb66",brightYellow:"#ecbe7b",brightBlue:"#a9a1e1",brightMagenta:"#c678dd",brightCyan:"#51afef",brightWhite:"#bfbfbf",foreground:"#bbc2cf",background:"#282c34",cursorColor:"#51afef",cursorText:"#282c34",selectionBackground:"#42444b",selectionForeground:"#bbc2cf"}});var mariana;var init_mariana=__esm(()=>{mariana={name:"mariana",dark:!0,black:"#000000",red:"#ec5f66",green:"#99c794",yellow:"#f9ae58",blue:"#6699cc",magenta:"#c695c6",cyan:"#5fb4b4",white:"#f7f7f7",brightBlack:"#333333",brightRed:"#f97b58",brightGreen:"#acd1a8",brightYellow:"#fac761",brightBlue:"#85add6",brightMagenta:"#d8b6d8",brightCyan:"#82c4c4",brightWhite:"#ffffff",foreground:"#d8dee9",background:"#343d46",cursorColor:"#fcbb6a",cursorText:"#343d46",selectionBackground:"#4e5a65",selectionForeground:"#d8dee9"}});var darcula;var init_darcula=__esm(()=>{darcula={name:"darcula",dark:!0,black:"#000000",red:"#fa5355",green:"#126e00",yellow:"#c2c300",blue:"#4581eb",magenta:"#fa54ff",cyan:"#33c2c1",white:"#adadad",brightBlack:"#555555",brightRed:"#fb7172",brightGreen:"#67ff4f",brightYellow:"#ffff00",brightBlue:"#6d9df1",brightMagenta:"#fb82ff",brightCyan:"#60d3d1",brightWhite:"#eeeeee",foreground:"#adadad",background:"#202020",cursorColor:"#ffffff",cursorText:"#202020",selectionBackground:"#1a3272",selectionForeground:"#adadad"}});var espresso;var init_espresso=__esm(()=>{espresso={name:"espresso",dark:!0,black:"#353535",red:"#d25252",green:"#a5c261",yellow:"#ffc66d",blue:"#6c99bb",magenta:"#d197d9",cyan:"#bed6ff",white:"#eeeeec",brightBlack:"#535353",brightRed:"#f00c0c",brightGreen:"#c2e075",brightYellow:"#e1e48b",brightBlue:"#8ab7d9",brightMagenta:"#efb5f7",brightCyan:"#dcf4ff",brightWhite:"#ffffff",foreground:"#ffffff",background:"#323232",cursorColor:"#d6d6d6",cursorText:"#323232",selectionBackground:"#5b5b5b",selectionForeground:"#ffffff"}});var icebergDark,icebergLight;var init_iceberg=__esm(()=>{icebergDark={name:"iceberg-dark",dark:!0,black:"#1e2132",red:"#e27878",green:"#b4be82",yellow:"#e2a478",blue:"#84a0c6",magenta:"#a093c7",cyan:"#89b8c2",white:"#c6c8d1",brightBlack:"#6b7089",brightRed:"#e98989",brightGreen:"#c0ca8e",brightYellow:"#e9b189",brightBlue:"#91acd1",brightMagenta:"#ada0d3",brightCyan:"#95c4ce",brightWhite:"#d2d4de",foreground:"#c6c8d1",background:"#161821",cursorColor:"#c6c8d1",cursorText:"#161821",selectionBackground:"#c6c8d1",selectionForeground:"#161821"},icebergLight={name:"iceberg-light",dark:!1,black:"#dcdfe7",red:"#cc517a",green:"#668e3d",yellow:"#c57339",blue:"#2d539e",magenta:"#7759b4",cyan:"#3f83a6",white:"#33374c",brightBlack:"#8389a3",brightRed:"#cc3768",brightGreen:"#598030",brightYellow:"#b6662d",brightBlue:"#22478e",brightMagenta:"#6845ad",brightCyan:"#327698",brightWhite:"#262a3f",foreground:"#33374c",background:"#e8e9ec",cursorColor:"#33374c",cursorText:"#e8e9ec",selectionBackground:"#33374c",selectionForeground:"#e8e9ec"}});var serendipityMidnight,serendipityMorning;var init_serendipity=__esm(()=>{serendipityMidnight={name:"serendipity-midnight",dark:!0,black:"#232534",red:"#ee8679",green:"#9ccfd8",yellow:"#f8d2c9",blue:"#5ba2d0",magenta:"#a78bfa",cyan:"#94b8ff",white:"#dee0ef",brightBlack:"#8d8f9e",brightRed:"#ee8679",brightGreen:"#9ccfd8",brightYellow:"#f8d2c9",brightBlue:"#5ba2d0",brightMagenta:"#a78bfa",brightCyan:"#94b8ff",brightWhite:"#dee0ef",foreground:"#dee0ef",background:"#1c1e2d",cursorColor:"#6b6d7c",cursorText:"#1c1e2d",selectionBackground:"#2c2e3d",selectionForeground:"#dee0ef"},serendipityMorning={name:"serendipity-morning",dark:!1,black:"#f2e9de",red:"#d26a5d",green:"#77aab3",yellow:"#c8a299",blue:"#3788be",magenta:"#886cdb",cyan:"#7397de",white:"#575279",brightBlack:"#6e6a86",brightRed:"#d26a5d",brightGreen:"#77aab3",brightYellow:"#c8a299",brightBlue:"#3788be",brightMagenta:"#886cdb",brightCyan:"#7397de",brightWhite:"#575279",foreground:"#575279",background:"#fffaf3",cursorColor:"#9893a5",cursorText:"#fffaf3",selectionBackground:"#f4efea",selectionForeground:"#575279"}});var twilight;var init_twilight=__esm(()=>{twilight={name:"twilight",dark:!0,black:"#141414",red:"#c06d44",green:"#afb97a",yellow:"#c2a86c",blue:"#44474a",magenta:"#b4be7c",cyan:"#778385",white:"#ffffd4",brightBlack:"#262626",brightRed:"#de7c4c",brightGreen:"#ccd88c",brightYellow:"#e2c47e",brightBlue:"#5a5e62",brightMagenta:"#d0dc8e",brightCyan:"#8a989b",brightWhite:"#ffffd4",foreground:"#ffffd4",background:"#141414",cursorColor:"#ffffff",cursorText:"#141414",selectionBackground:"#313131",selectionForeground:"#ffffd4"}});var breeze;var init_breeze=__esm(()=>{breeze={name:"breeze",dark:!0,black:"#31363b",red:"#ed1515",green:"#11d116",yellow:"#f67400",blue:"#1d99f3",magenta:"#9b59b6",cyan:"#1abc9c",white:"#eff0f1",brightBlack:"#7f8c8d",brightRed:"#c0392b",brightGreen:"#1cdc9a",brightYellow:"#fdbc4b",brightBlue:"#3daee9",brightMagenta:"#8e44ad",brightCyan:"#16a085",brightWhite:"#fcfcfc",foreground:"#eff0f1",background:"#31363b",cursorColor:"#eff0f1",cursorText:"#31363b",selectionBackground:"#eff0f1",selectionForeground:"#31363b"}});var andromeda;var init_andromeda=__esm(()=>{andromeda={name:"andromeda",dark:!0,black:"#000000",red:"#cd3131",green:"#05bc79",yellow:"#e5e512",blue:"#2472c8",magenta:"#bc3fbc",cyan:"#0fa8cd",white:"#e5e5e5",brightBlack:"#666666",brightRed:"#cd3131",brightGreen:"#05bc79",brightYellow:"#e5e512",brightBlue:"#2472c8",brightMagenta:"#bc3fbc",brightCyan:"#0fa8cd",brightWhite:"#e5e5e5",foreground:"#e5e5e5",background:"#262a33",cursorColor:"#f8f8f0",cursorText:"#262a33",selectionBackground:"#5a5c62",selectionForeground:"#e5e5e5"}});var relaxed;var init_relaxed=__esm(()=>{relaxed={name:"relaxed",dark:!0,black:"#151515",red:"#bc5653",green:"#909d63",yellow:"#ebc17a",blue:"#6a8799",magenta:"#b06698",cyan:"#c9dfff",white:"#d9d9d9",brightBlack:"#636363",brightRed:"#bc5653",brightGreen:"#a0ac77",brightYellow:"#ebc17a",brightBlue:"#7eaac7",brightMagenta:"#b06698",brightCyan:"#acbbd0",brightWhite:"#f7f7f7",foreground:"#d9d9d9",background:"#353a44",cursorColor:"#d9d9d9",cursorText:"#353a44",selectionBackground:"#6a7985",selectionForeground:"#d9d9d9"}});function getThemeByName(name){if(!name)return ansi16DarkTheme2;let builtin=builtinThemes[name];if(builtin)return builtin;let palette=builtinPalettes[name];if(palette)return deriveTheme(palette);return ansi16DarkTheme2}var ansi16DarkTheme2,ansi16LightTheme2,defaultDarkTheme,defaultLightTheme,builtinPalettes,builtinThemes;var init_palettes=__esm(()=>{init_derive2();init_catppuccin();init_nord();init_dracula();init_solarized();init_tokyo_night();init_one_dark();init_gruvbox();init_rose_pine();init_kanagawa();init_everforest();init_monokai();init_snazzy();init_material();init_palenight();init_ayu();init_nightfox();init_horizon();init_moonfly();init_nightfly();init_oxocarbon();init_sonokai();init_edge();init_modus();init_github();init_cobalt2();init_synthwave();init_tomorrow_night();init_zenburn();init_ubuntu();init_tango();init_cyberpunk();init_vscode();init_one_light();init_night_owl();init_shades_of_purple();init_homebrew();init_neon();init_challenger_deep();init_doom_one();init_mariana();init_darcula();init_espresso();init_iceberg();init_serendipity();init_twilight();init_breeze();init_andromeda();init_relaxed();init_catppuccin();init_nord();init_dracula();init_solarized();init_tokyo_night();init_one_dark();init_gruvbox();init_rose_pine();init_kanagawa();init_everforest();init_monokai();init_snazzy();init_material();init_palenight();init_ayu();init_nightfox();init_horizon();init_moonfly();init_nightfly();init_oxocarbon();init_sonokai();init_edge();init_modus();init_github();init_cobalt2();init_synthwave();init_tomorrow_night();init_zenburn();init_ubuntu();init_tango();init_cyberpunk();init_vscode();init_one_light();init_night_owl();init_shades_of_purple();init_homebrew();init_neon();init_challenger_deep();init_doom_one();init_mariana();init_darcula();init_espresso();init_iceberg();init_serendipity();init_twilight();init_breeze();init_andromeda();init_relaxed();ansi16DarkTheme2={name:"dark-ansi16",bg:"",fg:"whiteBright",muted:"white",mutedbg:"black",surface:"whiteBright",surfacebg:"black",popover:"whiteBright",popoverbg:"black",inverse:"black",inversebg:"whiteBright",cursor:"black",cursorbg:"yellow",selection:"black",selectionbg:"yellow",primary:"yellow",primaryfg:"black",secondary:"white",secondaryfg:"black",accent:"blueBright",accentfg:"black",error:"redBright",errorfg:"black",warning:"yellow",warningfg:"black",success:"greenBright",successfg:"black",info:"cyan",infofg:"black",border:"gray",inputborder:"gray",focusborder:"blueBright",link:"blueBright",disabledfg:"gray",palette:["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]},ansi16LightTheme2={name:"light-ansi16",bg:"",fg:"black",muted:"blackBright",mutedbg:"white",surface:"black",surfacebg:"white",popover:"black",popoverbg:"white",inverse:"whiteBright",inversebg:"black",cursor:"black",cursorbg:"blue",selection:"black",selectionbg:"cyan",primary:"blue",primaryfg:"black",secondary:"blue",secondaryfg:"black",accent:"cyan",accentfg:"black",error:"red",errorfg:"black",warning:"yellow",warningfg:"black",success:"green",successfg:"black",info:"cyan",infofg:"black",border:"gray",inputborder:"gray",focusborder:"blue",link:"blueBright",disabledfg:"gray",palette:["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]},defaultDarkTheme=deriveTheme(nord),defaultLightTheme=deriveTheme(catppuccinLatte),builtinPalettes={"catppuccin-mocha":catppuccinMocha,"catppuccin-frappe":catppuccinFrappe,"catppuccin-macchiato":catppuccinMacchiato,"catppuccin-latte":catppuccinLatte,nord,dracula,"solarized-dark":solarizedDark,"solarized-light":solarizedLight,"tokyo-night":tokyoNight,"tokyo-night-storm":tokyoNightStorm,"tokyo-night-day":tokyoNightDay,"one-dark":oneDark,"gruvbox-dark":gruvboxDark,"gruvbox-light":gruvboxLight,"rose-pine":rosePine,"rose-pine-moon":rosePineMoon,"rose-pine-dawn":rosePineDawn,"kanagawa-wave":kanagawaWave,"kanagawa-dragon":kanagawaDragon,"kanagawa-lotus":kanagawaLotus,"everforest-dark":everforestDark,"everforest-light":everforestLight,monokai,"monokai-pro":monokaiPro,snazzy,"material-dark":materialDark,"material-light":materialLight,palenight,"ayu-dark":ayuDark,"ayu-mirage":ayuMirage,"ayu-light":ayuLight,nightfox,dawnfox,horizon,moonfly,nightfly,"oxocarbon-dark":oxocarbonDark,"oxocarbon-light":oxocarbonLight,sonokai,"edge-dark":edgeDark,"edge-light":edgeLight,"modus-vivendi":modusVivendi,"modus-operandi":modusOperandi,"github-dark":githubDark,"github-light":githubLight,cobalt2,synthwave,"synthwave-84":synthwave84,"tomorrow-night":tomorrowNight,"tomorrow-night-blue":tomorrowNightBlue,"tomorrow-night-eighties":tomorrowNightEighties,zenburn,ubuntu,"tango-dark":tangoDark,"tango-light":tangoLight,cyberpunk,"vscode-dark":vscodeDark,"one-light":oneLight,"one-half-dark":oneHalfDark,"one-half-light":oneHalfLight,"night-owl-light":nightOwlLight,"shades-of-purple":shadesOfPurple,homebrew,neon,"challenger-deep":challengerDeep,"doom-one":doomOne,mariana,darcula,espresso,"iceberg-dark":icebergDark,"iceberg-light":icebergLight,"serendipity-midnight":serendipityMidnight,"serendipity-morning":serendipityMorning,twilight,breeze,andromeda,relaxed},builtinThemes={"dark-ansi16":ansi16DarkTheme2,"light-ansi16":ansi16LightTheme2,"dark-truecolor":defaultDarkTheme,"light-truecolor":defaultLightTheme,dark:defaultDarkTheme,light:defaultLightTheme,"ansi16-dark":ansi16DarkTheme2,"ansi16-light":ansi16LightTheme2}});function getActiveTheme(){return _contextStack.length>0?_contextStack[_contextStack.length-1]:_activeTheme}function pushContextTheme(theme){_contextStack.push(theme)}function popContextTheme(){_contextStack.pop()}var _activeTheme,_contextStack;var init_state=__esm(()=>{init_palettes();_activeTheme=ansi16DarkTheme2;_contextStack=[]});var init_resolve=__esm(()=>{init_src2()});function blendColors(c1,c2,t){return{r:Math.round(c1.r*(1-t)+c2.r*t),g:Math.round(c1.g*(1-t)+c2.g*t),b:Math.round(c1.b*(1-t)+c2.b*t)}}function parseColor(color){if(color==="inherit")return null;if(color==="$default")return DEFAULT_BG;if(color.startsWith("mix(")&&color.endsWith(")")){let inner=color.slice(4,-1),args=[],depth=0,start=0;for(let i=0;i<inner.length;i++)if(inner[i]==="(")depth++;else if(inner[i]===")")depth--;else if(inner[i]===","&&depth===0)args.push(inner.slice(start,i).trim()),start=i+1;if(args.push(inner.slice(start).trim()),args.length===3){let c1=parseColor(args[0]),c2=parseColor(args[1]),amountStr=args[2],t;if(amountStr.endsWith("%"))t=Number.parseFloat(amountStr.slice(0,-1))/100;else t=Number.parseFloat(amountStr);if(c1!==null&&c2!==null&&typeof c1==="object"&&typeof c2==="object"&&!Number.isNaN(t))return blendColors(c1,c2,Math.max(0,Math.min(1,t)));return null}}if(color.startsWith("$")){let resolved=resolveThemeColor(color,getActiveTheme());if(resolved&&resolved!==color)return parseColor(resolved);return null}if(color in namedColors)return namedColors[color];if(color.startsWith("#")){let hex=color.slice(1);if(hex.length===3){let r=Number.parseInt(hex[0]+hex[0],16),g=Number.parseInt(hex[1]+hex[1],16),b=Number.parseInt(hex[2]+hex[2],16);return{r,g,b}}if(hex.length===6){let r=Number.parseInt(hex.slice(0,2),16),g=Number.parseInt(hex.slice(2,4),16),b=Number.parseInt(hex.slice(4,6),16);return{r,g,b}}}let rgbMatch=color.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(rgbMatch)return{r:Number.parseInt(rgbMatch[1],10),g:Number.parseInt(rgbMatch[2],10),b:Number.parseInt(rgbMatch[3],10)};let ansi256Match=color.match(/^ansi256\s*\(\s*(\d+)\s*\)$/i);if(ansi256Match)return Number.parseInt(ansi256Match[1],10);return null}function getBorderChars(style2){if(style2&&typeof style2==="object"){let obj=style2,topHorizontal=obj.top??obj.horizontal??"-",leftVertical=obj.left??obj.vertical??"|";return{topLeft:obj.topLeft??"+",topRight:obj.topRight??"+",bottomLeft:obj.bottomLeft??"+",bottomRight:obj.bottomRight??"+",horizontal:topHorizontal,vertical:leftVertical,bottomHorizontal:obj.bottom&&obj.bottom!==topHorizontal?obj.bottom:void 0,rightVertical:obj.right&&obj.right!==leftVertical?obj.right:void 0}}return borders[style2??"single"]}function getTextStyle(props){let underlineStyle;if(props.underlineStyle!==void 0)underlineStyle=props.underlineStyle;else if(props.underline)underlineStyle="single";return{fg:props.color?parseColor(props.color):null,bg:props.backgroundColor?parseColor(props.backgroundColor):null,underlineColor:props.underlineColor?parseColor(props.underlineColor):null,attrs:{bold:props.bold,dim:props.dim||props.dimColor,italic:props.italic,underline:props.underline||!!underlineStyle,underlineStyle,strikethrough:props.strikethrough,inverse:props.inverse}}}function getTextWidth2(text,ctx){if(ctx)return ctx.measurer.displayWidthAnsi(text);return displayWidthAnsi(text)}var namedColors,borders;var init_render_helpers=__esm(()=>{init_buffer();init_state();init_resolve();init_unicode();init_helpers();namedColors={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,gray:8,grey:8,blackBright:8,redBright:9,greenBright:10,yellowBright:11,blueBright:12,magentaBright:13,cyanBright:14,whiteBright:15};borders={single:{topLeft:"┌",topRight:"┐",bottomLeft:"└",bottomRight:"┘",horizontal:"─",vertical:"│"},double:{topLeft:"╔",topRight:"╗",bottomLeft:"╚",bottomRight:"╝",horizontal:"═",vertical:"║"},round:{topLeft:"╭",topRight:"╮",bottomLeft:"╰",bottomRight:"╯",horizontal:"─",vertical:"│"},bold:{topLeft:"┏",topRight:"┓",bottomLeft:"┗",bottomRight:"┛",horizontal:"━",vertical:"┃"},singleDouble:{topLeft:"╓",topRight:"╖",bottomLeft:"╙",bottomRight:"╜",horizontal:"─",vertical:"║"},doubleSingle:{topLeft:"╒",topRight:"╕",bottomLeft:"╘",bottomRight:"╛",horizontal:"═",vertical:"│"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|"}}});import{createLogger as createLogger6}from"loggily";function getBgConflictMode(){return bgConflictMode}function formatBgConflictColor(c){if(c===null||c===void 0)return"none";if(typeof c==="number"){if(c&16777216){let r=c>>16&255,g=c>>8&255,b=c&255;return`#${r.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${b.toString(16).padStart(2,"0")}`}return{40:"black",41:"red",42:"green",43:"yellow",44:"blue",45:"magenta",46:"cyan",47:"white",100:"brightBlack",101:"brightRed",102:"brightGreen",103:"brightYellow",104:"brightBlue",105:"brightMagenta",106:"brightCyan",107:"brightWhite"}[c]??`palette(${c})`}return`rgb(${c.r},${c.g},${c.b})`}function clearBgConflictWarnings(){warnedBgConflicts.clear()}function styleToAnsi2(style2){let parts=[];if(style2.color){let color=parseColor(style2.color);if(color!==null)if(typeof color==="number")parts.push(`38;5;${color}`);else parts.push(`38;2;${color.r};${color.g};${color.b}`)}if(style2.bold)parts.push("1");if(style2.dim)parts.push("2");if(style2.italic)parts.push("3");if(style2.underlineStyle){let styleMap={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"};parts.push(styleMap[style2.underlineStyle]??"4")}else if(style2.underline)parts.push("4");if(style2.underlineColor){let ulColor=parseColor(style2.underlineColor);if(ulColor!==null)if(typeof ulColor==="number")parts.push(`58;5;${ulColor}`);else parts.push(`58;2;${ulColor.r};${ulColor.g};${ulColor.b}`)}if(style2.inverse)parts.push("7");if(style2.strikethrough)parts.push("9");if(parts.length===0)return"";return`\x1B[${parts.join(";")}m`}function mergeStyleContext(parent,childProps){return{color:childProps.color??parent.color,backgroundColor:childProps.backgroundColor??parent.backgroundColor,bold:childProps.bold??parent.bold,dim:childProps.dim??childProps.dimColor??parent.dim,italic:childProps.italic??parent.italic,underline:childProps.underline??childProps.underlineStyle?!0:parent.underline,underlineStyle:childProps.underlineStyle??parent.underlineStyle,underlineColor:childProps.underlineColor??parent.underlineColor,inverse:childProps.inverse??parent.inverse,strikethrough:childProps.strikethrough??parent.strikethrough}}function applyTextStyleAnsi(text,childStyle,parentStyle){if(!text)return text;let childAnsi=styleToAnsi2(childStyle),parentAnsi=styleToAnsi2(parentStyle);if(!childAnsi)return text;return`${childAnsi}${text}\x1B[0m${parentAnsi}`}function collectTextWithBg(node,parentContext={},offset=0,maxDisplayWidth,ctx){if(node.textContent!==void 0){let text=node.textContent;if(maxDisplayWidth!==void 0){if(getTextWidth2(text,ctx)>maxDisplayWidth)text=(ctx?ctx.measurer.sliceByWidth:sliceByWidth)(text,maxDisplayWidth)}let plainLen=getTextWidth2(text,ctx);return{text,bgSegments:[],childSpans:[],plainLen}}let result="",bgSegments=[],childSpans=[],currentOffset=offset,displayWidthCollected=0;for(let i=0;i<node.children.length;i++){let child=node.children[i];if(maxDisplayWidth!==void 0&&displayWidthCollected>=maxDisplayWidth)break;let childBudget=maxDisplayWidth!==void 0?maxDisplayWidth-displayWidthCollected:void 0;if(child.type==="silvery-text"&&child.props&&!child.layoutNode){let childProps=child.props,childContext=mergeStyleContext(parentContext,childProps),childResult=collectTextWithBg(child,childContext,currentOffset,childBudget,ctx),childTransform=childProps.internal_transform;if(childTransform&&childResult.text.length>0)childResult.text=childTransform(childResult.text,i);let styledText=applyTextStyleAnsi(childResult.text,childContext,parentContext);if(result+=styledText,childContext.backgroundColor){let bg=parseColor(childContext.backgroundColor);if(bg!==null){if(childResult.plainLen>0)bgSegments.push({start:currentOffset,end:currentOffset+childResult.plainLen,bg})}}else if(childProps.backgroundColor===""&&childResult.plainLen>0)bgSegments.push({start:currentOffset,end:currentOffset+childResult.plainLen,bg:null});if(childResult.plainLen>0)childSpans.push({node:child,start:currentOffset,end:currentOffset+childResult.plainLen});bgSegments.push(...childResult.bgSegments),childSpans.push(...childResult.childSpans),currentOffset+=childResult.plainLen,displayWidthCollected+=childResult.plainLen}else{let childResult=collectTextWithBg(child,parentContext,currentOffset,childBudget,ctx);result+=childResult.text,bgSegments.push(...childResult.bgSegments),childSpans.push(...childResult.childSpans),currentOffset+=childResult.plainLen,displayWidthCollected+=childResult.plainLen}}return{text:result,bgSegments,childSpans,plainLen:displayWidthCollected}}function applyBgSegmentsToLine(buffer,x,y,lineText,lineCharStart,lineCharEnd,bgSegments,ctx){if(bgSegments.length===0)return;if(y<0||y>=buffer.height)return;let bgCell=createMutableCell(),gWidthFn=ctx?ctx.measurer.graphemeWidth:graphemeWidth;for(let seg of bgSegments){let overlapStart=Math.max(seg.start,lineCharStart),overlapEnd=Math.min(seg.end,lineCharEnd);if(overlapStart>=overlapEnd)continue;let relStart=overlapStart-lineCharStart,relEnd=overlapEnd-lineCharStart,col=x,graphemes=splitGraphemes(hasAnsi(lineText)?stripAnsiForBg(lineText):lineText);for(let grapheme of graphemes){let gWidth=gWidthFn(grapheme);if(gWidth===0)continue;let displayOffset=col-x;if(displayOffset>=relStart&&displayOffset<relEnd){if(buffer.readCellInto(col,y,bgCell),bgCell.bg=seg.bg,buffer.setCell(col,y,bgCell),gWidth===2&&col+1<buffer.width)buffer.readCellInto(col+1,y,bgCell),bgCell.bg=seg.bg,buffer.setCell(col+1,y,bgCell)}if(col+=gWidth,col-x>=relEnd)break}}}function stripAnsiForBg(text){return text.replace(/\x1b\[[0-9;:?]*[A-Za-z]/g,"").replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g,"").replace(/\x1b[DME78]/g,"").replace(/\x1b\(B/g,"")}function mapLinesToCharOffsets(originalText,formattedLines,ctx){let normalized=(hasAnsi(originalText)?stripAnsiForBg(originalText):originalText).replace(/\t/g," "),result=[],charOffset=0,displayOffset=0;for(let line of formattedLines){let plainLine=hasAnsi(line)?stripAnsiForBg(line):line,lineStart=findLineStart(normalized,plainLine,charOffset);if(lineStart>charOffset){let skipped=normalized.slice(charOffset,lineStart);displayOffset+=getTextWidth2(skipped,ctx)}let lineDisplayWidth=getTextWidth2(plainLine,ctx);result.push({start:displayOffset,end:displayOffset+lineDisplayWidth});let lineLen=Math.min(plainLine.length,normalized.length-lineStart);charOffset=lineStart+lineLen,displayOffset+=lineDisplayWidth}return result}function findLineStart(normalized,plainLine,fromOffset){if(plainLine.length===0){let pos2=fromOffset;while(pos2<normalized.length&&normalized[pos2]===`
|
|
66
|
+
`);if(transform)lines=lines.map((line,index)=>transform(line,index));return{width:Math.max(...lines.map((line)=>getTextWidth(line,ctx))),height:lines.length*getActiveLineHeight()}}let isRow=props.flexDirection==="row"||props.flexDirection==="row-reverse",width=0,height=0,childCount=0;for(let child of node.children){let childSize=measureIntrinsicSize(child,ctx,availableWidth);if(childCount++,isRow)width+=childSize.width,height=Math.max(height,childSize.height);else width=Math.max(width,childSize.width),height+=childSize.height}let gap=props.gap??0;if(gap>0&&childCount>1){let totalGap=gap*(childCount-1);if(isRow)width+=totalGap;else height+=totalGap}let padding=getPadding(props);if(width+=padding.left+padding.right,height+=padding.top+padding.bottom,props.borderStyle){let border=getBorderSize(props);width+=border.left+border.right,height+=border.top+border.bottom}return{width,height}}function isWrapEnabled(wrap){return wrap==="wrap"||wrap==="hard"||wrap==="even"||wrap===!0||wrap===void 0}function computeSnugContentWidth(node,fitContentWidth,ctx){let props=node.props,overhead=0,padding=getPadding(props);if(overhead+=padding.left+padding.right,props.borderStyle){let border=getBorderSize(props);overhead+=border.left+border.right}let contentWidth=fitContentWidth-overhead,analysis=getCachedAnalysis(node);if(!analysis){let cached=getCachedPlainText(node),text=cached?cached.text:collectPlainText(node),gWidthFn=ctx?.measurer?.graphemeWidth?.bind(ctx.measurer)??graphemeWidth;if(analysis=buildTextAnalysis(text,gWidthFn),setCachedAnalysis(node,analysis),!cached){let lineCount=(text.match(/\n/g)?.length??0)+1;setCachedPlainText(node,text,lineCount)}}return shrinkwrapWidth(analysis,contentWidth)+overhead}function traverseTree(node,callback){callback(node);for(let child of node.children)traverseTree(child,callback)}function getTextWidth(text,ctx){if(ctx)return ctx.measurer.displayWidthAnsi(text);return displayWidthAnsi(text)}var init_measure_phase=__esm(()=>{init_unicode();init_prepared_text();init_pretext();init_helpers()});var measureStats;var init_measure_stats=__esm(()=>{measureStats={calls:0,cacheHits:0,textCollects:0,displayWidthCalls:0,reset(){this.calls=0,this.cacheHits=0,this.textCollects=0,this.displayWidthCalls=0}}});function rectEqual(a,b){if(a===b)return!0;if(!a||!b)return!1;return a.x===b.x&&a.y===b.y&&a.width===b.width&&a.height===b.height}function trackLayoutDirty(node){layoutDirtyNodes.add(node)}function trackContentDirty(node){contentDirtyNodes.add(node)}function trackStyleOnlyDirty(node){styleOnlyDirtyNodes.add(node)}function trackScrollDirty(node){scrollDirtyNodes.add(node)}function hasLayoutDirty(){return layoutDirtyNodes.size>0}function hasScrollDirty(){return scrollDirtyNodes.size>0}function clearDirtyTracking(){layoutDirtyNodes.clear(),contentDirtyNodes.clear(),styleOnlyDirtyNodes.clear(),scrollDirtyNodes.clear()}function clearLayoutDirtyTracking(){layoutDirtyNodes.clear()}var layoutDirtyNodes,contentDirtyNodes,styleOnlyDirtyNodes,scrollDirtyNodes;var init_dirty_tracking=__esm(()=>{layoutDirtyNodes=new Set,contentDirtyNodes=new Set,styleOnlyDirtyNodes=new Set,scrollDirtyNodes=new Set});import{createLogger as createLogger5}from"loggily";function layoutPhase(root,width,height){let prevLayout=root.boxRect,dimensionsChanged=prevLayout&&(prevLayout.width!==width||prevLayout.height!==height);if(!dimensionsChanged&&!hasLayoutDirty())return;if(clearLayoutDirtyTracking(),root.layoutNode){let nodeCount=countNodes(root);measureStats.reset();let t0=Date.now();root.layoutNode.calculateLayout(width,height);let elapsed=Date.now()-t0;log5.debug?.(`calculateLayout: ${elapsed}ms (${nodeCount} nodes) measure: calls=${measureStats.calls} hits=${measureStats.cacheHits} collects=${measureStats.textCollects} displayWidth=${measureStats.displayWidthCalls}`)}propagateLayout(root,0,0,!dimensionsChanged)}function countNodes(node){let count=1;for(let child of node.children)count+=countNodes(child);return count}function propagateLayout(node,parentX,parentY,incrementalSkip){if(!node.layoutNode){node.prevLayout=node.boxRect;let rect2={x:parentX,y:parentY,width:0,height:0};node.boxRect=rect2,node.layoutDirty=!1;for(let child of node.children)propagateLayout(child,parentX,parentY,incrementalSkip);return}let rect={x:parentX+node.layoutNode.getComputedLeft(),y:parentY+node.layoutNode.getComputedTop(),width:node.layoutNode.getComputedWidth(),height:node.layoutNode.getComputedHeight()};if(incrementalSkip&&node.boxRect&&!node.layoutDirty&&!isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&!isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)){if(rect.x===node.boxRect.x&&rect.y===node.boxRect.y&&rect.width===node.boxRect.width&&rect.height===node.boxRect.height)return}node.prevLayout=node.boxRect,node.boxRect=rect,node.layoutDirty=!1;let layoutDidChange=!!(node.prevLayout&&!rectEqual(node.prevLayout,node.boxRect));if(node.layoutChangedThisFrame=layoutDidChange?getRenderEpoch():INITIAL_EPOCH,process?.env?.SILVERY_STRICT&&isCurrentEpoch(node.layoutChangedThisFrame)){if(rectEqual(node.prevLayout,node.boxRect)){let props=node.props;throw Error(`[SILVERY_STRICT] layoutChangedThisFrame=true but prevLayout equals boxRect (node: ${props.id??node.type}, rect: ${JSON.stringify(node.boxRect)})`)}}if(isCurrentEpoch(node.layoutChangedThisFrame)){let epoch=getRenderEpoch(),ancestor=node.parent;while(ancestor&&!isDirty(ancestor.dirtyBits,ancestor.dirtyEpoch,SUBTREE_BIT)){if(ancestor.dirtyEpoch!==epoch)ancestor.dirtyBits=SUBTREE_BIT,ancestor.dirtyEpoch=epoch;else ancestor.dirtyBits|=SUBTREE_BIT;ancestor=ancestor.parent}}for(let child of node.children)propagateLayout(child,rect.x,rect.y,incrementalSkip);if(isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&node.children.length>0){let epoch=getRenderEpoch(),absChild=_hasAbsoluteChildMutated(node.children),descOverflow=_hasDescendantOverflowChanged(node,rect),bits=node.dirtyBits;if(absChild)bits|=ABS_CHILD_BIT;else bits&=~ABS_CHILD_BIT;if(descOverflow)bits|=DESC_OVERFLOW_BIT;else bits&=~DESC_OVERFLOW_BIT;node.dirtyBits=bits,node.dirtyEpoch=epoch}else if(node.dirtyEpoch===getRenderEpoch())node.dirtyBits&=~(ABS_CHILD_BIT|DESC_OVERFLOW_BIT)}function _hasAbsoluteChildMutated(children){for(let child of children)if(child.props.position==="absolute"&&(isDirty(child.dirtyBits,child.dirtyEpoch,CHILDREN_BIT)||isCurrentEpoch(child.layoutChangedThisFrame)||_hasChildPositionChanged(child)))return!0;return!1}function _hasChildPositionChanged(node){for(let child of node.children)if(child.boxRect&&child.prevLayout){if(child.boxRect.x!==child.prevLayout.x||child.boxRect.y!==child.prevLayout.y)return!0}return!1}function _hasDescendantOverflowChanged(node,rect){return _checkDescendantOverflow(node.children,rect.x,rect.y,rect.x+rect.width,rect.y+rect.height)}function _checkDescendantOverflow(children,nodeLeft,nodeTop,nodeRight,nodeBottom){for(let child of children){if(child.prevLayout&&isCurrentEpoch(child.layoutChangedThisFrame)){let prev=child.prevLayout;if(prev.x+prev.width>nodeRight||prev.y+prev.height>nodeBottom||prev.x<nodeLeft||prev.y<nodeTop)return!0}if(isDirty(child.dirtyBits,child.dirtyEpoch,SUBTREE_BIT)&&child.children!==void 0){if(_checkDescendantOverflow(child.children,nodeLeft,nodeTop,nodeRight,nodeBottom))return!0}}return!1}function notifyLayoutSubscribers(node){let contentChanged=!rectEqual(node.prevLayout,node.boxRect),screenChanged=!rectEqual(node.prevScrollRect,node.scrollRect),renderChanged=!rectEqual(node.prevScreenRect,node.screenRect);if(contentChanged||screenChanged||renderChanged)for(let subscriber of node.layoutSubscribers)subscriber();for(let child of node.children)notifyLayoutSubscribers(child)}function scrollPhase(root,options={}){let{skipStateUpdates=!1}=options;traverseTree2(root,(node)=>{let props=node.props;if(props.overflow!=="scroll")return;calculateScrollState(node,props,skipStateUpdates)})}function calculateScrollState(node,props,skipStateUpdates){let layout=node.boxRect;if(!layout||!node.layoutNode)return;let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),rawViewportHeight=layout.height-border.top-border.bottom-padding.top-padding.bottom,contentHeight=0,childPositions=[];for(let i=0;i<node.children.length;i++){let child=node.children[i];if(!child.layoutNode||!child.boxRect)continue;let childTop=child.boxRect.y-layout.y-border.top-padding.top,childBottom=childTop+child.boxRect.height,childProps=child.props;childPositions.push({child,top:childTop,bottom:childBottom,index:i,isSticky:childProps.position==="sticky",stickyTop:childProps.stickyTop,stickyBottom:childProps.stickyBottom}),contentHeight=Math.max(contentHeight,childBottom)}let viewportHeight=rawViewportHeight,showBorderlessIndicator=props.overflowIndicator===!0&&!props.borderStyle,hasOverflow=contentHeight>rawViewportHeight,indicatorReserve=showBorderlessIndicator&&hasOverflow?1:0,prevOffset=node.scrollState?.offset,scrollOffset=props.scrollOffset??prevOffset??0,scrollTo=props.scrollTo;if(scrollTo!==void 0&&scrollTo>=0&&scrollTo<childPositions.length){let target=childPositions.find((c)=>c.index===scrollTo);if(target){let effectiveHeight=viewportHeight-indicatorReserve,visibleTop2=scrollOffset,visibleBottom2=scrollOffset+effectiveHeight;if(target.top<visibleTop2)scrollOffset=target.top;else if(target.bottom>visibleBottom2)scrollOffset=target.bottom-effectiveHeight}}scrollOffset=Math.max(0,scrollOffset),scrollOffset=Math.min(scrollOffset,Math.max(0,contentHeight-viewportHeight));let visibleTop=scrollOffset,visibleBottom=scrollOffset+viewportHeight-indicatorReserve,firstVisible=-1,lastVisible=-1,hiddenAbove=0,hiddenBelow=0;for(let cp of childPositions){if(cp.isSticky){if(firstVisible===-1)firstVisible=cp.index;lastVisible=Math.max(lastVisible,cp.index);continue}if(cp.top===cp.bottom)continue;if(cp.bottom<=visibleTop)hiddenAbove++;else if(cp.top>=visibleBottom)hiddenBelow++;else if(cp.top<visibleTop){if(firstVisible===-1)firstVisible=cp.index;lastVisible=Math.max(lastVisible,cp.index)}else if(cp.bottom>visibleBottom){if(firstVisible===-1)firstVisible=cp.index;if(lastVisible=cp.index,indicatorReserve>0)hiddenBelow++}else{if(firstVisible===-1)firstVisible=cp.index;lastVisible=cp.index}}let stickyChildren=[];for(let cp of childPositions){if(!cp.isSticky)continue;let childHeight=cp.bottom-cp.top,stickyTop=cp.stickyTop??0,stickyBottom=cp.stickyBottom,naturalRenderY=cp.top-scrollOffset,renderOffset;if(stickyBottom!==void 0){let bottomPinPosition=viewportHeight-stickyBottom-childHeight;renderOffset=Math.min(naturalRenderY,bottomPinPosition)}else if(naturalRenderY>=stickyTop)renderOffset=naturalRenderY;else if(childHeight>viewportHeight)renderOffset=Math.max(viewportHeight-childHeight,naturalRenderY);else renderOffset=stickyTop;if(renderOffset!==naturalRenderY)if(childHeight>viewportHeight)renderOffset=Math.max(viewportHeight-childHeight,renderOffset);else renderOffset=Math.max(0,Math.min(renderOffset,viewportHeight-childHeight));if(renderOffset+childHeight<=0||renderOffset>=viewportHeight)continue;stickyChildren.push({index:cp.index,renderOffset,naturalTop:cp.top,height:childHeight})}if(skipStateUpdates)return;let prevFirstVisible=node.scrollState?.firstVisibleChild??firstVisible,prevLastVisible=node.scrollState?.lastVisibleChild??lastVisible;if(scrollOffset!==prevOffset||firstVisible!==prevFirstVisible||lastVisible!==prevLastVisible){let epoch=getRenderEpoch();if(node.dirtyEpoch!==epoch)node.dirtyBits=SUBTREE_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=SUBTREE_BIT}node.scrollState={offset:scrollOffset,prevOffset:prevOffset??scrollOffset,contentHeight,viewportHeight,firstVisibleChild:firstVisible,lastVisibleChild:lastVisible,prevFirstVisibleChild:prevFirstVisible,prevLastVisibleChild:prevLastVisible,hiddenAbove,hiddenBelow,stickyChildren:stickyChildren.length>0?stickyChildren:void 0}}function stickyPhase(root){traverseTree2(root,(node)=>{let props=node.props;if(props.overflow==="scroll")return;let hasStickyChildren=!1;for(let child of node.children){let childProps=child.props;if(childProps.position==="sticky"&&childProps.stickyBottom!==void 0){hasStickyChildren=!0;break}}if(!hasStickyChildren){if(node.stickyChildren!==void 0){node.stickyChildren=void 0;let epoch=getRenderEpoch();if(node.dirtyEpoch!==epoch)node.dirtyBits=SUBTREE_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=SUBTREE_BIT}return}let layout=node.boxRect;if(!layout||!node.layoutNode)return;let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),parentContentHeight=layout.height-border.top-border.bottom-padding.top-padding.bottom,newStickyChildren=[];for(let i=0;i<node.children.length;i++){let child=node.children[i],childProps=child.props;if(childProps.position!=="sticky")continue;if(childProps.stickyBottom===void 0)continue;if(!child.boxRect)continue;let naturalY=child.boxRect.y-layout.y-border.top-padding.top,childHeight=child.boxRect.height,stickyBottom=childProps.stickyBottom,bottomPin=parentContentHeight-stickyBottom-childHeight,renderOffset=Math.max(naturalY,bottomPin);newStickyChildren.push({index:i,renderOffset,naturalTop:naturalY,height:childHeight})}let prev=node.stickyChildren,next=newStickyChildren.length>0?newStickyChildren:void 0,changed=!stickyChildrenEqual(prev,next);if(node.stickyChildren=next,changed){let epoch=getRenderEpoch();if(node.dirtyEpoch!==epoch)node.dirtyBits=SUBTREE_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=SUBTREE_BIT}})}function stickyChildrenEqual(a,b){if(a===b)return!0;if(!a||!b)return!1;if(a.length!==b.length)return!1;for(let i=0;i<a.length;i++){let ai=a[i],bi=b[i];if(ai.index!==bi.index||ai.renderOffset!==bi.renderOffset||ai.naturalTop!==bi.naturalTop||ai.height!==bi.height)return!1}return!0}function traverseTree2(node,callback){callback(node);for(let child of node.children)traverseTree2(child,callback)}function scrollrectPhase(root){propagateScrollRect(root,0)}function scrollrectPhaseSimple(root){propagateScrollRectSimple(root)}function propagateScrollRect(node,ancestorScrollOffset){node.prevScrollRect=node.scrollRect,node.prevScreenRect=node.screenRect;let content=node.boxRect;if(!content){node.scrollRect=null,node.screenRect=null;for(let child of node.children)propagateScrollRect(child,ancestorScrollOffset);return}node.scrollRect={x:content.x,y:content.y-ancestorScrollOffset,width:content.width,height:content.height},node.screenRect=node.scrollRect;let scrollOffset=node.scrollState?.offset??0,childScrollOffset=ancestorScrollOffset+scrollOffset;computeStickyScreenRects(node);for(let child of node.children)propagateScrollRect(child,childScrollOffset)}function computeStickyScreenRects(parent){let stickyList=parent.scrollState?.stickyChildren??parent.stickyChildren;if(!stickyList||stickyList.length===0)return;let parentScrollRect=parent.scrollRect;if(!parentScrollRect)return;let props=parent.props,border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),contentOriginY=parentScrollRect.y+border.top+padding.top;for(let sticky of stickyList){let child=parent.children[sticky.index];if(!child?.scrollRect)continue;child.screenRect={x:child.scrollRect.x,y:contentOriginY+sticky.renderOffset,width:child.scrollRect.width,height:child.scrollRect.height}}}function propagateScrollRectSimple(node){node.prevScrollRect=node.scrollRect,node.prevScreenRect=node.screenRect;let content=node.boxRect;if(!content){node.scrollRect=null,node.screenRect=null;for(let child of node.children)propagateScrollRectSimple(child);return}node.scrollRect={x:content.x,y:content.y,width:content.width,height:content.height},node.screenRect=node.scrollRect;for(let child of node.children)propagateScrollRectSimple(child)}function detectPipelineFeatures(root){let hasScroll=!1,hasSticky=!1;function scan(node){let props=node.props;if(props.overflow==="scroll")hasScroll=!0;if(props.position==="sticky")hasSticky=!0;if(hasScroll&&hasSticky)return;for(let child of node.children)if(scan(child),hasScroll&&hasSticky)return}return scan(root),{hasScroll,hasSticky}}var log5;var init_layout_phase=__esm(()=>{init_measure_stats();init_dirty_tracking();init_helpers();log5=createLogger5("silvery:layout")});var init_derive2=__esm(()=>{init_src2()});var init_color=__esm(()=>{init_src()});var catppuccinMocha,catppuccinFrappe,catppuccinMacchiato,catppuccinLatte;var init_catppuccin=__esm(()=>{init_color();catppuccinMocha={name:"catppuccin-mocha",dark:!0,black:"#11111B",red:"#F38BA8",green:"#A6E3A1",yellow:"#F9E2AF",blue:"#89B4FA",magenta:"#CBA6F7",cyan:"#94E2D5",white:"#A6ADC8",brightBlack:"#313244",brightRed:"#FAB387",brightGreen:brighten("#A6E3A1",0.15),brightYellow:brighten("#F9E2AF",0.15),brightBlue:brighten("#89B4FA",0.15),brightMagenta:"#F5C2E7",brightCyan:brighten("#94E2D5",0.15),brightWhite:"#CDD6F4",foreground:"#CDD6F4",background:"#1E1E2E",cursorColor:"#CDD6F4",cursorText:"#1E1E2E",selectionBackground:"#6C7086",selectionForeground:"#CDD6F4"},catppuccinFrappe={name:"catppuccin-frappe",dark:!0,black:"#232634",red:"#E78284",green:"#A6D189",yellow:"#E5C890",blue:"#8CAAEE",magenta:"#CA9EE6",cyan:"#81C8BE",white:"#A5ADCE",brightBlack:"#414559",brightRed:"#EF9F76",brightGreen:brighten("#A6D189",0.15),brightYellow:brighten("#E5C890",0.15),brightBlue:brighten("#8CAAEE",0.15),brightMagenta:"#F4B8E4",brightCyan:brighten("#81C8BE",0.15),brightWhite:"#C6D0F5",foreground:"#C6D0F5",background:"#303446",cursorColor:"#C6D0F5",cursorText:"#303446",selectionBackground:"#737994",selectionForeground:"#C6D0F5"},catppuccinMacchiato={name:"catppuccin-macchiato",dark:!0,black:"#181926",red:"#ED8796",green:"#A6DA95",yellow:"#EED49F",blue:"#8AADF4",magenta:"#C6A0F6",cyan:"#8BD5CA",white:"#A5ADCB",brightBlack:"#363A4F",brightRed:"#F5A97F",brightGreen:brighten("#A6DA95",0.15),brightYellow:brighten("#EED49F",0.15),brightBlue:brighten("#8AADF4",0.15),brightMagenta:"#F5BDE6",brightCyan:brighten("#8BD5CA",0.15),brightWhite:"#CAD3F5",foreground:"#CAD3F5",background:"#24273A",cursorColor:"#CAD3F5",cursorText:"#24273A",selectionBackground:"#6E738D",selectionForeground:"#CAD3F5"},catppuccinLatte={name:"catppuccin-latte",dark:!1,black:"#DCE0E8",red:"#D20F39",green:"#40A02B",yellow:"#DF8E1D",blue:"#1E66F5",magenta:"#8839EF",cyan:"#179299",white:"#6C6F85",brightBlack:"#CCD0DA",brightRed:"#FE640B",brightGreen:brighten("#40A02B",0.15),brightYellow:brighten("#DF8E1D",0.15),brightBlue:brighten("#1E66F5",0.15),brightMagenta:"#EA76CB",brightCyan:brighten("#179299",0.15),brightWhite:"#4C4F69",foreground:"#4C4F69",background:"#EFF1F5",cursorColor:"#4C4F69",cursorText:"#EFF1F5",selectionBackground:"#9CA0B0",selectionForeground:"#4C4F69"}});var nord;var init_nord=__esm(()=>{init_color();nord={name:"nord",dark:!0,black:"#2E3440",red:"#BF616A",green:"#A3BE8C",yellow:"#EBCB8B",blue:"#5E81AC",magenta:"#B48EAD",cyan:"#8FBCBB",white:"#D8DEE9",brightBlack:"#3B4252",brightRed:"#D08770",brightGreen:brighten("#A3BE8C",0.15),brightYellow:brighten("#EBCB8B",0.15),brightBlue:brighten("#5E81AC",0.15),brightMagenta:"#B48EAD",brightCyan:brighten("#8FBCBB",0.15),brightWhite:"#ECEFF4",foreground:"#ECEFF4",background:"#2E3440",cursorColor:"#ECEFF4",cursorText:"#2E3440",selectionBackground:"#4C566A",selectionForeground:"#ECEFF4"}});var dracula;var init_dracula=__esm(()=>{init_color();dracula={name:"dracula",dark:!0,black:"#21222C",red:"#FF5555",green:"#50FA7B",yellow:"#F1FA8C",blue:"#BD93F9",magenta:"#BD93F9",cyan:"#8BE9FD",white:"#6272A4",brightBlack:"#44475A",brightRed:"#FFB86C",brightGreen:brighten("#50FA7B",0.15),brightYellow:brighten("#F1FA8C",0.15),brightBlue:brighten("#BD93F9",0.15),brightMagenta:"#FF79C6",brightCyan:brighten("#8BE9FD",0.15),brightWhite:"#F8F8F2",foreground:"#F8F8F2",background:"#282A36",cursorColor:"#F8F8F2",cursorText:"#282A36",selectionBackground:"#6272A4",selectionForeground:"#F8F8F2"}});var solarizedDark,solarizedLight;var init_solarized=__esm(()=>{init_color();solarizedDark={name:"solarized-dark",dark:!0,black:"#002B36",red:"#DC322F",green:"#859900",yellow:"#B58900",blue:"#268BD2",magenta:"#6C71C4",cyan:"#2AA198",white:"#839496",brightBlack:"#586E75",brightRed:"#CB4B16",brightGreen:brighten("#859900",0.15),brightYellow:brighten("#B58900",0.15),brightBlue:brighten("#268BD2",0.15),brightMagenta:"#D33682",brightCyan:brighten("#2AA198",0.15),brightWhite:"#FDF6E3",foreground:"#FDF6E3",background:"#073642",cursorColor:"#FDF6E3",cursorText:"#073642",selectionBackground:"#657B83",selectionForeground:"#FDF6E3"},solarizedLight={name:"solarized-light",dark:!1,black:"#FDF6E3",red:"#DC322F",green:"#859900",yellow:"#B58900",blue:"#268BD2",magenta:"#6C71C4",cyan:"#2AA198",white:"#657B83",brightBlack:"#DDD6C1",brightRed:"#CB4B16",brightGreen:brighten("#859900",0.15),brightYellow:brighten("#B58900",0.15),brightBlue:brighten("#268BD2",0.15),brightMagenta:"#D33682",brightCyan:brighten("#2AA198",0.15),brightWhite:"#073642",foreground:"#073642",background:"#EEE8D5",cursorColor:"#073642",cursorText:"#EEE8D5",selectionBackground:"#93A1A1",selectionForeground:"#073642"}});var tokyoNight,tokyoNightStorm,tokyoNightDay;var init_tokyo_night=__esm(()=>{init_color();tokyoNight={name:"tokyo-night",dark:!0,black:"#1A1B26",red:"#F7768E",green:"#9ECE6A",yellow:"#E0AF68",blue:"#7AA2F7",magenta:"#BB9AF7",cyan:"#73DACA",white:"#A9B1D6",brightBlack:"#292E42",brightRed:"#FF9E64",brightGreen:brighten("#9ECE6A",0.15),brightYellow:brighten("#E0AF68",0.15),brightBlue:brighten("#7AA2F7",0.15),brightMagenta:"#FF007C",brightCyan:brighten("#73DACA",0.15),brightWhite:"#C0CAF5",foreground:"#C0CAF5",background:"#24283B",cursorColor:"#C0CAF5",cursorText:"#24283B",selectionBackground:"#545C7E",selectionForeground:"#C0CAF5"},tokyoNightStorm={name:"tokyo-night-storm",dark:!0,black:"#1F2335",red:"#F7768E",green:"#9ECE6A",yellow:"#E0AF68",blue:"#7AA2F7",magenta:"#BB9AF7",cyan:"#73DACA",white:"#A9B1D6",brightBlack:"#292E42",brightRed:"#FF9E64",brightGreen:brighten("#9ECE6A",0.15),brightYellow:brighten("#E0AF68",0.15),brightBlue:brighten("#7AA2F7",0.15),brightMagenta:"#FF007C",brightCyan:brighten("#73DACA",0.15),brightWhite:"#C0CAF5",foreground:"#C0CAF5",background:"#24283B",cursorColor:"#C0CAF5",cursorText:"#24283B",selectionBackground:"#545C7E",selectionForeground:"#C0CAF5"},tokyoNightDay={name:"tokyo-night-day",dark:!1,black:"#E1E2E7",red:"#F52A65",green:"#587539",yellow:"#8C6C3E",blue:"#2E7DE9",magenta:"#9854F1",cyan:"#118C74",white:"#6172B0",brightBlack:"#C4C5CB",brightRed:"#B15C00",brightGreen:brighten("#587539",0.15),brightYellow:brighten("#8C6C3E",0.15),brightBlue:brighten("#2E7DE9",0.15),brightMagenta:"#F52A65",brightCyan:brighten("#118C74",0.15),brightWhite:"#3760BF",foreground:"#3760BF",background:"#D5D6DB",cursorColor:"#3760BF",cursorText:"#D5D6DB",selectionBackground:"#9699A3",selectionForeground:"#3760BF"}});var oneDark;var init_one_dark=__esm(()=>{init_color();oneDark={name:"one-dark",dark:!0,black:"#21252B",red:"#E06C75",green:"#98C379",yellow:"#E5C07B",blue:"#61AFEF",magenta:"#C678DD",cyan:"#56B6C2",white:"#ABB2BF",brightBlack:"#2C313A",brightRed:"#D19A66",brightGreen:brighten("#98C379",0.15),brightYellow:brighten("#E5C07B",0.15),brightBlue:brighten("#61AFEF",0.15),brightMagenta:"#E06C75",brightCyan:brighten("#56B6C2",0.15),brightWhite:"#ABB2BF",foreground:"#ABB2BF",background:"#282C34",cursorColor:"#ABB2BF",cursorText:"#282C34",selectionBackground:"#5C6370",selectionForeground:"#ABB2BF"}});var gruvboxDark,gruvboxLight;var init_gruvbox=__esm(()=>{init_color();gruvboxDark={name:"gruvbox-dark",dark:!0,black:"#1D2021",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",magenta:"#D3869B",cyan:"#8EC07C",white:"#BDAE93",brightBlack:"#3C3836",brightRed:"#FE8019",brightGreen:brighten("#B8BB26",0.15),brightYellow:brighten("#FABD2F",0.15),brightBlue:brighten("#83A598",0.15),brightMagenta:"#D3869B",brightCyan:brighten("#8EC07C",0.15),brightWhite:"#EBDBB2",foreground:"#EBDBB2",background:"#282828",cursorColor:"#EBDBB2",cursorText:"#282828",selectionBackground:"#665C54",selectionForeground:"#EBDBB2"},gruvboxLight={name:"gruvbox-light",dark:!1,black:"#F9F5D7",red:"#CC241D",green:"#98971A",yellow:"#D79921",blue:"#458588",magenta:"#B16286",cyan:"#689D6A",white:"#665C54",brightBlack:"#EBDBB2",brightRed:"#D65D0E",brightGreen:brighten("#98971A",0.15),brightYellow:brighten("#D79921",0.15),brightBlue:brighten("#458588",0.15),brightMagenta:"#B16286",brightCyan:brighten("#689D6A",0.15),brightWhite:"#3C3836",foreground:"#3C3836",background:"#FBF1C7",cursorColor:"#3C3836",cursorText:"#FBF1C7",selectionBackground:"#A89984",selectionForeground:"#3C3836"}});var rosePine,rosePineMoon,rosePineDawn;var init_rose_pine=__esm(()=>{init_color();rosePine={name:"rose-pine",dark:!0,black:"#191724",red:"#EB6F92",green:"#31748F",yellow:"#F6C177",blue:"#3E8FB0",magenta:"#C4A7E7",cyan:"#9CCFD8",white:"#908CAA",brightBlack:"#26233A",brightRed:"#EA9A97",brightGreen:brighten("#31748F",0.15),brightYellow:brighten("#F6C177",0.15),brightBlue:brighten("#3E8FB0",0.15),brightMagenta:"#EBBCBA",brightCyan:brighten("#9CCFD8",0.15),brightWhite:"#E0DEF4",foreground:"#E0DEF4",background:"#1F1D2E",cursorColor:"#E0DEF4",cursorText:"#1F1D2E",selectionBackground:"#6E6A86",selectionForeground:"#E0DEF4"},rosePineMoon={name:"rose-pine-moon",dark:!0,black:"#232136",red:"#EB6F92",green:"#3E8FB0",yellow:"#F6C177",blue:"#3E8FB0",magenta:"#C4A7E7",cyan:"#9CCFD8",white:"#908CAA",brightBlack:"#393552",brightRed:"#EA9A97",brightGreen:brighten("#3E8FB0",0.15),brightYellow:brighten("#F6C177",0.15),brightBlue:brighten("#3E8FB0",0.15),brightMagenta:"#EA9A97",brightCyan:brighten("#9CCFD8",0.15),brightWhite:"#E0DEF4",foreground:"#E0DEF4",background:"#2A273F",cursorColor:"#E0DEF4",cursorText:"#2A273F",selectionBackground:"#6E6A86",selectionForeground:"#E0DEF4"},rosePineDawn={name:"rose-pine-dawn",dark:!1,black:"#FAF4ED",red:"#B4637A",green:"#286983",yellow:"#EA9D34",blue:"#286983",magenta:"#907AA9",cyan:"#56949F",white:"#797593",brightBlack:"#F2E9E1",brightRed:"#D7827E",brightGreen:brighten("#286983",0.15),brightYellow:brighten("#EA9D34",0.15),brightBlue:brighten("#286983",0.15),brightMagenta:"#D7827E",brightCyan:brighten("#56949F",0.15),brightWhite:"#575279",foreground:"#575279",background:"#FFFAF3",cursorColor:"#575279",cursorText:"#FFFAF3",selectionBackground:"#9893A5",selectionForeground:"#575279"}});var kanagawaWave,kanagawaDragon,kanagawaLotus;var init_kanagawa=__esm(()=>{init_color();kanagawaWave={name:"kanagawa-wave",dark:!0,black:"#16161D",red:"#C34043",green:"#98BB6C",yellow:"#E6C384",blue:"#7E9CD8",magenta:"#957FB8",cyan:"#6A9589",white:"#727169",brightBlack:"#2A2A37",brightRed:"#FFA066",brightGreen:brighten("#98BB6C",0.15),brightYellow:brighten("#E6C384",0.15),brightBlue:brighten("#7E9CD8",0.15),brightMagenta:"#D27E99",brightCyan:brighten("#6A9589",0.15),brightWhite:"#DCD7BA",foreground:"#DCD7BA",background:"#1F1F28",cursorColor:"#DCD7BA",cursorText:"#1F1F28",selectionBackground:"#54546D",selectionForeground:"#DCD7BA"},kanagawaDragon={name:"kanagawa-dragon",dark:!0,black:"#0d0c0c",red:"#c4746e",green:"#87a987",yellow:"#c4b28a",blue:"#8ba4b0",magenta:"#8992a7",cyan:"#8ea4a2",white:"#737c73",brightBlack:"#282727",brightRed:"#b6927b",brightGreen:brighten("#87a987",0.15),brightYellow:brighten("#c4b28a",0.15),brightBlue:brighten("#8ba4b0",0.15),brightMagenta:"#a292a3",brightCyan:brighten("#8ea4a2",0.15),brightWhite:"#c5c9c5",foreground:"#c5c9c5",background:"#181616",cursorColor:"#c5c9c5",cursorText:"#181616",selectionBackground:"#625e5a",selectionForeground:"#c5c9c5"},kanagawaLotus={name:"kanagawa-lotus",dark:!1,black:"#e5ddb0",red:"#c84053",green:"#6f894e",yellow:"#de9800",blue:"#4d699b",magenta:"#624c83",cyan:"#597b75",white:"#716e61",brightBlack:"#dcd5ac",brightRed:"#cc6d00",brightGreen:brighten("#6f894e",0.15),brightYellow:brighten("#de9800",0.15),brightBlue:brighten("#4d699b",0.15),brightMagenta:"#b35b79",brightCyan:brighten("#597b75",0.15),brightWhite:"#545464",foreground:"#545464",background:"#f2ecbc",cursorColor:"#545464",cursorText:"#f2ecbc",selectionBackground:"#8a8980",selectionForeground:"#545464"}});var everforestDark,everforestLight;var init_everforest=__esm(()=>{init_color();everforestDark={name:"everforest-dark",dark:!0,black:"#232a2e",red:"#e67e80",green:"#a7c080",yellow:"#dbbc7f",blue:"#7fbbb3",magenta:"#d699b6",cyan:"#83c092",white:"#859289",brightBlack:"#343f44",brightRed:"#e69875",brightGreen:brighten("#a7c080",0.15),brightYellow:brighten("#dbbc7f",0.15),brightBlue:brighten("#7fbbb3",0.15),brightMagenta:"#e67e80",brightCyan:brighten("#83c092",0.15),brightWhite:"#d3c6aa",foreground:"#d3c6aa",background:"#2d353b",cursorColor:"#d3c6aa",cursorText:"#2d353b",selectionBackground:"#4f585e",selectionForeground:"#d3c6aa"},everforestLight={name:"everforest-light",dark:!1,black:"#efebd4",red:"#f85552",green:"#8da101",yellow:"#dfa000",blue:"#3a94c5",magenta:"#df69ba",cyan:"#35a77c",white:"#939f91",brightBlack:"#f4f0d9",brightRed:"#f57d26",brightGreen:brighten("#8da101",0.15),brightYellow:brighten("#dfa000",0.15),brightBlue:brighten("#3a94c5",0.15),brightMagenta:"#f85552",brightCyan:brighten("#35a77c",0.15),brightWhite:"#5c6a72",foreground:"#5c6a72",background:"#fdf6e3",cursorColor:"#5c6a72",cursorText:"#fdf6e3",selectionBackground:"#e0dcc7",selectionForeground:"#5c6a72"}});var monokai,monokaiPro;var init_monokai=__esm(()=>{init_color();monokai={name:"monokai",dark:!0,black:"#1a1a1a",red:"#F92672",green:"#A6E22E",yellow:"#E6DB74",blue:"#66D9EF",magenta:"#AE81FF",cyan:"#66D9EF",white:"#a59f85",brightBlack:"#3e3d32",brightRed:"#FD971F",brightGreen:brighten("#A6E22E",0.15),brightYellow:brighten("#E6DB74",0.15),brightBlue:brighten("#66D9EF",0.15),brightMagenta:"#F92672",brightCyan:brighten("#66D9EF",0.15),brightWhite:"#F8F8F2",foreground:"#F8F8F2",background:"#272822",cursorColor:"#F8F8F2",cursorText:"#272822",selectionBackground:"#75715E",selectionForeground:"#F8F8F2"},monokaiPro={name:"monokai-pro",dark:!0,black:"#221f22",red:"#ff6188",green:"#a9dc76",yellow:"#ffd866",blue:"#78dce8",magenta:"#ab9df2",cyan:"#78dce8",white:"#939293",brightBlack:"#403e41",brightRed:"#fc9867",brightGreen:brighten("#a9dc76",0.15),brightYellow:brighten("#ffd866",0.15),brightBlue:brighten("#78dce8",0.15),brightMagenta:"#ff6188",brightCyan:brighten("#78dce8",0.15),brightWhite:"#fcfcfa",foreground:"#fcfcfa",background:"#2d2a2e",cursorColor:"#fcfcfa",cursorText:"#2d2a2e",selectionBackground:"#727072",selectionForeground:"#fcfcfa"}});var snazzy;var init_snazzy=__esm(()=>{init_color();snazzy={name:"snazzy",dark:!0,black:"#222430",red:"#ff5c57",green:"#5af78e",yellow:"#f3f99d",blue:"#57c7ff",magenta:"#b267e6",cyan:"#9aedfe",white:"#97979b",brightBlack:"#34353e",brightRed:"#ff9f43",brightGreen:brighten("#5af78e",0.15),brightYellow:brighten("#f3f99d",0.15),brightBlue:brighten("#57c7ff",0.15),brightMagenta:"#ff6ac1",brightCyan:brighten("#9aedfe",0.15),brightWhite:"#eff0eb",foreground:"#eff0eb",background:"#282a36",cursorColor:"#eff0eb",cursorText:"#282a36",selectionBackground:"#686868",selectionForeground:"#eff0eb"}});var materialDark,materialLight;var init_material=__esm(()=>{init_color();materialDark={name:"material-dark",dark:!0,black:"#171717",red:"#ff5370",green:"#c3e88d",yellow:"#ffcb6b",blue:"#82aaff",magenta:"#c792ea",cyan:"#89ddff",white:"#545454",brightBlack:"#2c2c2c",brightRed:"#f78c6c",brightGreen:brighten("#c3e88d",0.15),brightYellow:brighten("#ffcb6b",0.15),brightBlue:brighten("#82aaff",0.15),brightMagenta:"#f07178",brightCyan:brighten("#89ddff",0.15),brightWhite:"#eeffff",foreground:"#eeffff",background:"#212121",cursorColor:"#eeffff",cursorText:"#212121",selectionBackground:"#424242",selectionForeground:"#eeffff"},materialLight={name:"material-light",dark:!1,black:"#ecf0f1",red:"#e53935",green:"#91b859",yellow:"#ffb62c",blue:"#6182b8",magenta:"#7c4dff",cyan:"#39adb5",white:"#90a4ae",brightBlack:"#ebf4f3",brightRed:"#f76d47",brightGreen:brighten("#91b859",0.15),brightYellow:brighten("#ffb62c",0.15),brightBlue:brighten("#6182b8",0.15),brightMagenta:"#ff5370",brightCyan:brighten("#39adb5",0.15),brightWhite:"#546E7A",foreground:"#546E7A",background:"#fafafa",cursorColor:"#546E7A",cursorText:"#fafafa",selectionBackground:"#cfd8dc",selectionForeground:"#546E7A"}});var palenight;var init_palenight=__esm(()=>{init_color();palenight={name:"palenight",dark:!0,black:"#1c1f2b",red:"#f07178",green:"#c3e88d",yellow:"#ffcb6b",blue:"#82aaff",magenta:"#c792ea",cyan:"#89ddff",white:"#676e95",brightBlack:"#343b51",brightRed:"#f78c6c",brightGreen:brighten("#c3e88d",0.15),brightYellow:brighten("#ffcb6b",0.15),brightBlue:brighten("#82aaff",0.15),brightMagenta:"#ff5370",brightCyan:brighten("#89ddff",0.15),brightWhite:"#a6accd",foreground:"#a6accd",background:"#292d3e",cursorColor:"#a6accd",cursorText:"#292d3e",selectionBackground:"#4e5579",selectionForeground:"#a6accd"}});var ayuDark,ayuMirage,ayuLight;var init_ayu=__esm(()=>{init_color();ayuDark={name:"ayu-dark",dark:!0,black:"#05070A",red:"#D95757",green:"#AAD94C",yellow:"#E6B450",blue:"#59C2FF",magenta:"#D2A6FF",cyan:"#95E6CB",white:"#636A72",brightBlack:"#11151C",brightRed:"#F29668",brightGreen:brighten("#AAD94C",0.15),brightYellow:brighten("#E6B450",0.15),brightBlue:brighten("#59C2FF",0.15),brightMagenta:"#F07178",brightCyan:brighten("#95E6CB",0.15),brightWhite:"#BFBDB6",foreground:"#BFBDB6",background:"#0B0E14",cursorColor:"#BFBDB6",cursorText:"#0B0E14",selectionBackground:"#565B66",selectionForeground:"#BFBDB6"},ayuMirage={name:"ayu-mirage",dark:!0,black:"#101521",red:"#FF6666",green:"#D5FF80",yellow:"#FFCC66",blue:"#73D0FF",magenta:"#DFBFFF",cyan:"#95E6CB",white:"#6C7A8B",brightBlack:"#171B24",brightRed:"#F29E74",brightGreen:brighten("#D5FF80",0.15),brightYellow:brighten("#FFCC66",0.15),brightBlue:brighten("#73D0FF",0.15),brightMagenta:"#F28779",brightCyan:brighten("#95E6CB",0.15),brightWhite:"#CCCAC2",foreground:"#CCCAC2",background:"#1F2430",cursorColor:"#CCCAC2",cursorText:"#1F2430",selectionBackground:"#707A8C",selectionForeground:"#CCCAC2"},ayuLight={name:"ayu-light",dark:!1,black:"#E7EAED",red:"#E65050",green:"#86B300",yellow:"#FFAA33",blue:"#399EE6",magenta:"#A37ACC",cyan:"#4CBF99",white:"#ABADB1",brightBlack:"#F3F4F5",brightRed:"#ED9366",brightGreen:brighten("#86B300",0.15),brightYellow:brighten("#FFAA33",0.15),brightBlue:brighten("#399EE6",0.15),brightMagenta:"#F07171",brightCyan:brighten("#4CBF99",0.15),brightWhite:"#5C6166",foreground:"#5C6166",background:"#F8F9FA",cursorColor:"#5C6166",cursorText:"#F8F9FA",selectionBackground:"#8A9199",selectionForeground:"#5C6166"}});var nightfox,dawnfox;var init_nightfox=__esm(()=>{init_color();nightfox={name:"nightfox",dark:!0,black:"#131A24",red:"#C94F6D",green:"#81B29A",yellow:"#DBC074",blue:"#719CD6",magenta:"#9D79D6",cyan:"#63CDCF",white:"#71839B",brightBlack:"#212E3F",brightRed:"#F4A261",brightGreen:brighten("#81B29A",0.15),brightYellow:brighten("#DBC074",0.15),brightBlue:brighten("#719CD6",0.15),brightMagenta:"#D67AD2",brightCyan:brighten("#63CDCF",0.15),brightWhite:"#CDCECF",foreground:"#CDCECF",background:"#192330",cursorColor:"#CDCECF",cursorText:"#192330",selectionBackground:"#39506D",selectionForeground:"#CDCECF"},dawnfox={name:"dawnfox",dark:!1,black:"#EBE5DF",red:"#B4637A",green:"#618774",yellow:"#EA9D34",blue:"#286983",magenta:"#907AA9",cyan:"#56949F",white:"#A8A3B3",brightBlack:"#EBE0DF",brightRed:"#D7827E",brightGreen:brighten("#618774",0.15),brightYellow:brighten("#EA9D34",0.15),brightBlue:brighten("#286983",0.15),brightMagenta:"#D685AF",brightCyan:brighten("#56949F",0.15),brightWhite:"#575279",foreground:"#575279",background:"#FAF4ED",cursorColor:"#575279",cursorText:"#FAF4ED",selectionBackground:"#BDBFC9",selectionForeground:"#575279"}});var horizon;var init_horizon=__esm(()=>{init_color();horizon={name:"horizon",dark:!0,black:"#16161C",red:"#E95678",green:"#29D398",yellow:"#FAC29A",blue:"#26BBD9",magenta:"#B877DB",cyan:"#59E1E3",white:"#6C6F93",brightBlack:"#232530",brightRed:"#FAB795",brightGreen:brighten("#29D398",0.15),brightYellow:brighten("#FAC29A",0.15),brightBlue:brighten("#26BBD9",0.15),brightMagenta:"#EE64AC",brightCyan:brighten("#59E1E3",0.15),brightWhite:"#D5D8DA",foreground:"#D5D8DA",background:"#1C1E26",cursorColor:"#D5D8DA",cursorText:"#1C1E26",selectionBackground:"#2E303E",selectionForeground:"#D5D8DA"}});var moonfly;var init_moonfly=__esm(()=>{init_color();moonfly={name:"moonfly",dark:!0,black:"#121212",red:"#FF5D5D",green:"#8CC85F",yellow:"#E3C78A",blue:"#80A0FF",magenta:"#AE81FF",cyan:"#79DAC8",white:"#808080",brightBlack:"#1C1C1C",brightRed:"#DE935F",brightGreen:brighten("#8CC85F",0.15),brightYellow:brighten("#E3C78A",0.15),brightBlue:brighten("#80A0FF",0.15),brightMagenta:"#FF5189",brightCyan:brighten("#79DAC8",0.15),brightWhite:"#C6C6C6",foreground:"#C6C6C6",background:"#080808",cursorColor:"#C6C6C6",cursorText:"#080808",selectionBackground:"#323437",selectionForeground:"#C6C6C6"}});var nightfly;var init_nightfly=__esm(()=>{init_color();nightfly={name:"nightfly",dark:!0,black:"#081E2F",red:"#FC514E",green:"#A1CD5E",yellow:"#E3D18A",blue:"#82AAFF",magenta:"#C792EA",cyan:"#7FDBCA",white:"#7C8F8F",brightBlack:"#0E293F",brightRed:"#F78C6C",brightGreen:brighten("#A1CD5E",0.15),brightYellow:brighten("#E3D18A",0.15),brightBlue:brighten("#82AAFF",0.15),brightMagenta:"#FF5874",brightCyan:brighten("#7FDBCA",0.15),brightWhite:"#C3CCDC",foreground:"#C3CCDC",background:"#011627",cursorColor:"#C3CCDC",cursorText:"#011627",selectionBackground:"#2C3043",selectionForeground:"#C3CCDC"}});var oxocarbonDark,oxocarbonLight;var init_oxocarbon=__esm(()=>{init_color();oxocarbonDark={name:"oxocarbon-dark",dark:!0,black:"#131313",red:"#EE5396",green:"#42BE65",yellow:"#82CFFF",blue:"#78A9FF",magenta:"#BE95FF",cyan:"#08BDBA",white:"#5C5C5C",brightBlack:"#2A2A2A",brightRed:"#FF7EB6",brightGreen:brighten("#42BE65",0.15),brightYellow:brighten("#82CFFF",0.15),brightBlue:brighten("#78A9FF",0.15),brightMagenta:"#FF7EB6",brightCyan:brighten("#08BDBA",0.15),brightWhite:"#F3F3F3",foreground:"#F3F3F3",background:"#161616",cursorColor:"#F3F3F3",cursorText:"#161616",selectionBackground:"#404040",selectionForeground:"#F3F3F3"},oxocarbonLight={name:"oxocarbon-light",dark:!1,black:"#F3F3F3",red:"#EE5396",green:"#42BE65",yellow:"#FFAB91",blue:"#0F62FE",magenta:"#BE95FF",cyan:"#08BDBA",white:"#90A4AE",brightBlack:"#D5D5D5",brightRed:"#FF6F00",brightGreen:brighten("#42BE65",0.15),brightYellow:brighten("#FFAB91",0.15),brightBlue:brighten("#0F62FE",0.15),brightMagenta:"#FF7EB6",brightCyan:brighten("#08BDBA",0.15),brightWhite:"#37474F",foreground:"#37474F",background:"#FFFFFF",cursorColor:"#37474F",cursorText:"#FFFFFF",selectionBackground:"#525252",selectionForeground:"#37474F"}});var sonokai;var init_sonokai=__esm(()=>{init_color();sonokai={name:"sonokai",dark:!0,black:"#181819",red:"#FC5D7C",green:"#9ED072",yellow:"#E7C664",blue:"#76CCE0",magenta:"#B39DF3",cyan:"#76CCE0",white:"#7F8490",brightBlack:"#33353F",brightRed:"#F39660",brightGreen:brighten("#9ED072",0.15),brightYellow:brighten("#E7C664",0.15),brightBlue:brighten("#76CCE0",0.15),brightMagenta:"#FC5D7C",brightCyan:brighten("#76CCE0",0.15),brightWhite:"#E2E2E3",foreground:"#E2E2E3",background:"#2C2E34",cursorColor:"#E2E2E3",cursorText:"#2C2E34",selectionBackground:"#414550",selectionForeground:"#E2E2E3"}});var edgeDark,edgeLight;var init_edge=__esm(()=>{init_color();edgeDark={name:"edge-dark",dark:!0,black:"#202023",red:"#EC7279",green:"#A0C980",yellow:"#DEB974",blue:"#6CB6EB",magenta:"#D38AEA",cyan:"#5DBBC1",white:"#758094",brightBlack:"#33353F",brightRed:"#DEB974",brightGreen:brighten("#A0C980",0.15),brightYellow:brighten("#DEB974",0.15),brightBlue:brighten("#6CB6EB",0.15),brightMagenta:"#EC7279",brightCyan:brighten("#5DBBC1",0.15),brightWhite:"#C5CDD9",foreground:"#C5CDD9",background:"#2C2E34",cursorColor:"#C5CDD9",cursorText:"#2C2E34",selectionBackground:"#414550",selectionForeground:"#C5CDD9"},edgeLight={name:"edge-light",dark:!1,black:"#DDE2E7",red:"#D05858",green:"#608E32",yellow:"#BE7E05",blue:"#5079BE",magenta:"#B05CCC",cyan:"#3A8B84",white:"#8790A0",brightBlack:"#EEF1F4",brightRed:"#BE7E05",brightGreen:brighten("#608E32",0.15),brightYellow:brighten("#BE7E05",0.15),brightBlue:brighten("#5079BE",0.15),brightMagenta:"#D05858",brightCyan:brighten("#3A8B84",0.15),brightWhite:"#4B505B",foreground:"#4B505B",background:"#FAFAFA",cursorColor:"#4B505B",cursorText:"#FAFAFA",selectionBackground:"#DDE2E7",selectionForeground:"#4B505B"}});var modusVivendi,modusOperandi;var init_modus=__esm(()=>{init_color();modusVivendi={name:"modus-vivendi",dark:!0,black:"#000000",red:"#FF5F59",green:"#44BC44",yellow:"#D0BC00",blue:"#2FAFFF",magenta:"#B6A0FF",cyan:"#00D3D0",white:"#989898",brightBlack:"#1E1E1E",brightRed:"#FEC43F",brightGreen:brighten("#44BC44",0.15),brightYellow:brighten("#D0BC00",0.15),brightBlue:brighten("#2FAFFF",0.15),brightMagenta:"#FEACD0",brightCyan:brighten("#00D3D0",0.15),brightWhite:"#FFFFFF",foreground:"#FFFFFF",background:"#000000",cursorColor:"#FFFFFF",cursorText:"#000000",selectionBackground:"#535353",selectionForeground:"#FFFFFF"},modusOperandi={name:"modus-operandi",dark:!1,black:"#E0E0E0",red:"#A60000",green:"#006800",yellow:"#6F5500",blue:"#0031A9",magenta:"#531AB6",cyan:"#005E8B",white:"#595959",brightBlack:"#F2F2F2",brightRed:"#884900",brightGreen:brighten("#006800",0.15),brightYellow:brighten("#6F5500",0.15),brightBlue:brighten("#0031A9",0.15),brightMagenta:"#721045",brightCyan:brighten("#005E8B",0.15),brightWhite:"#000000",foreground:"#000000",background:"#FFFFFF",cursorColor:"#000000",cursorText:"#FFFFFF",selectionBackground:"#9F9F9F",selectionForeground:"#000000"}});var githubDark,githubLight;var init_github=__esm(()=>{githubDark={name:"github-dark",dark:!0,black:"#000000",red:"#f78166",green:"#56d364",yellow:"#e3b341",blue:"#6ca4f8",magenta:"#db61a2",cyan:"#2b7489",white:"#ffffff",brightBlack:"#4d4d4d",brightRed:"#f78166",brightGreen:"#56d364",brightYellow:"#e3b341",brightBlue:"#6ca4f8",brightMagenta:"#db61a2",brightCyan:"#2b7489",brightWhite:"#ffffff",foreground:"#8b949e",background:"#101216",cursorColor:"#c9d1d9",cursorText:"#101216",selectionBackground:"#3b5070",selectionForeground:"#c9d1d9"},githubLight={name:"github-light",dark:!1,black:"#3e3e3e",red:"#970b16",green:"#07962a",yellow:"#f8eec7",blue:"#003e8a",magenta:"#e94691",cyan:"#89d1ec",white:"#ffffff",brightBlack:"#666666",brightRed:"#de0000",brightGreen:"#87d5a2",brightYellow:"#f1d007",brightBlue:"#2e6cba",brightMagenta:"#ffa29f",brightCyan:"#1cfafe",brightWhite:"#ffffff",foreground:"#3e3e3e",background:"#f4f4f4",cursorColor:"#3f3f3f",cursorText:"#f4f4f4",selectionBackground:"#a9c1e2",selectionForeground:"#3e3e3e"}});var cobalt2;var init_cobalt2=__esm(()=>{cobalt2={name:"cobalt2",dark:!0,black:"#000000",red:"#ff0000",green:"#38de21",yellow:"#ffe50a",blue:"#1460d2",magenta:"#ff005d",cyan:"#00bbbb",white:"#bbbbbb",brightBlack:"#555555",brightRed:"#f40e17",brightGreen:"#3bd01d",brightYellow:"#edc809",brightBlue:"#5555ff",brightMagenta:"#ff55ff",brightCyan:"#6ae3fa",brightWhite:"#ffffff",foreground:"#ffffff",background:"#132738",cursorColor:"#f0cc09",cursorText:"#132738",selectionBackground:"#18354f",selectionForeground:"#ffffff"}});var synthwave,synthwave84;var init_synthwave=__esm(()=>{synthwave={name:"synthwave",dark:!0,black:"#000000",red:"#f6188f",green:"#1ebb2b",yellow:"#fdf834",blue:"#2186ec",magenta:"#f85a21",cyan:"#12c3e2",white:"#ffffff",brightBlack:"#000000",brightRed:"#f841a0",brightGreen:"#25c141",brightYellow:"#fdf454",brightBlue:"#2f9ded",brightMagenta:"#f97137",brightCyan:"#19cde6",brightWhite:"#ffffff",foreground:"#dad9c7",background:"#000000",cursorColor:"#19cde6",cursorText:"#000000",selectionBackground:"#19cde6",selectionForeground:"#000000"},synthwave84={name:"synthwave-84",dark:!0,black:"#fefefe",red:"#f97e72",green:"#72f1b8",yellow:"#fede5d",blue:"#6d77b3",magenta:"#c792ea",cyan:"#f772e0",white:"#fefefe",brightBlack:"#fefefe",brightRed:"#f88414",brightGreen:"#72f1b8",brightYellow:"#fff951",brightBlue:"#36f9f6",brightMagenta:"#e1acff",brightCyan:"#f92aad",brightWhite:"#fefefe",foreground:"#f0eff1",background:"#2a2139",cursorColor:"#72f1b8",cursorText:"#2a2139",selectionBackground:"#181521",selectionForeground:"#f0eff1"}});var tomorrowNight,tomorrowNightBlue,tomorrowNightEighties;var init_tomorrow_night=__esm(()=>{tomorrowNight={name:"tomorrow-night",dark:!0,black:"#282a2e",red:"#cc6666",green:"#b5bd68",yellow:"#f0c674",blue:"#81a2be",magenta:"#b294bb",cyan:"#8abeb7",white:"#e0e0e0",brightBlack:"#373b41",brightRed:"#cc6666",brightGreen:"#b5bd68",brightYellow:"#f0c674",brightBlue:"#81a2be",brightMagenta:"#b294bb",brightCyan:"#8abeb7",brightWhite:"#ffffff",foreground:"#c5c8c6",background:"#1d1f21",cursorColor:"#c5c8c6",cursorText:"#1d1f21",selectionBackground:"#373b41",selectionForeground:"#c5c8c6"},tomorrowNightBlue={name:"tomorrow-night-blue",dark:!0,black:"#000000",red:"#ff9da4",green:"#d1f1a9",yellow:"#ffeead",blue:"#bbdaff",magenta:"#ebbbff",cyan:"#99ffff",white:"#ffffff",brightBlack:"#000000",brightRed:"#ff9da4",brightGreen:"#d1f1a9",brightYellow:"#ffeead",brightBlue:"#bbdaff",brightMagenta:"#ebbbff",brightCyan:"#99ffff",brightWhite:"#ffffff",foreground:"#ffffff",background:"#002451",cursorColor:"#ffffff",cursorText:"#002451",selectionBackground:"#003f8e",selectionForeground:"#ffffff"},tomorrowNightEighties={name:"tomorrow-night-eighties",dark:!0,black:"#393939",red:"#f2777a",green:"#99cc99",yellow:"#ffcc66",blue:"#6699cc",magenta:"#cc99cc",cyan:"#66cccc",white:"#e0e0e0",brightBlack:"#515151",brightRed:"#f2777a",brightGreen:"#99cc99",brightYellow:"#ffcc66",brightBlue:"#6699cc",brightMagenta:"#cc99cc",brightCyan:"#66cccc",brightWhite:"#ffffff",foreground:"#cccccc",background:"#2d2d2d",cursorColor:"#cccccc",cursorText:"#2d2d2d",selectionBackground:"#515151",selectionForeground:"#cccccc"}});var zenburn;var init_zenburn=__esm(()=>{zenburn={name:"zenburn",dark:!0,black:"#4d4d4d",red:"#705050",green:"#60b48a",yellow:"#f0dfaf",blue:"#506070",magenta:"#dc8cc3",cyan:"#8cd0d3",white:"#dcdccc",brightBlack:"#709080",brightRed:"#dca3a3",brightGreen:"#c3bf9f",brightYellow:"#e0cf9f",brightBlue:"#94bff3",brightMagenta:"#ec93d3",brightCyan:"#93e0e3",brightWhite:"#ffffff",foreground:"#dcdccc",background:"#3f3f3f",cursorColor:"#73635a",cursorText:"#3f3f3f",selectionBackground:"#21322f",selectionForeground:"#dcdccc"}});var ubuntu;var init_ubuntu=__esm(()=>{ubuntu={name:"ubuntu",dark:!0,black:"#2e3436",red:"#cc0000",green:"#4e9a06",yellow:"#c4a000",blue:"#3465a4",magenta:"#75507b",cyan:"#06989a",white:"#d3d7cf",brightBlack:"#555753",brightRed:"#ef2929",brightGreen:"#8ae234",brightYellow:"#fce94f",brightBlue:"#729fcf",brightMagenta:"#ad7fa8",brightCyan:"#34e2e2",brightWhite:"#eeeeec",foreground:"#eeeeec",background:"#300a24",cursorColor:"#bbbbbb",cursorText:"#300a24",selectionBackground:"#b5d5ff",selectionForeground:"#300a24"}});var tangoDark,tangoLight;var init_tango=__esm(()=>{tangoDark={name:"tango-dark",dark:!0,black:"#000000",red:"#cc0000",green:"#4e9a06",yellow:"#c4a000",blue:"#3465a4",magenta:"#75507b",cyan:"#06989a",white:"#d3d7cf",brightBlack:"#555753",brightRed:"#ef2929",brightGreen:"#8ae234",brightYellow:"#fce94f",brightBlue:"#729fcf",brightMagenta:"#ad7fa8",brightCyan:"#34e2e2",brightWhite:"#eeeeec",foreground:"#ffffff",background:"#000000",cursorColor:"#ffffff",cursorText:"#000000",selectionBackground:"#b5d5ff",selectionForeground:"#000000"},tangoLight={name:"tango-light",dark:!1,black:"#000000",red:"#cc0000",green:"#4e9a06",yellow:"#c4a000",blue:"#3465a4",magenta:"#75507b",cyan:"#06989a",white:"#d3d7cf",brightBlack:"#555753",brightRed:"#ef2929",brightGreen:"#8ae234",brightYellow:"#fce94f",brightBlue:"#729fcf",brightMagenta:"#ad7fa8",brightCyan:"#34e2e2",brightWhite:"#eeeeec",foreground:"#000000",background:"#ffffff",cursorColor:"#000000",cursorText:"#ffffff",selectionBackground:"#b5d5ff",selectionForeground:"#000000"}});var cyberpunk;var init_cyberpunk=__esm(()=>{cyberpunk={name:"cyberpunk",dark:!0,black:"#000000",red:"#ff7092",green:"#00fbac",yellow:"#fffa6a",blue:"#00bfff",magenta:"#df95ff",cyan:"#86cbfe",white:"#ffffff",brightBlack:"#000000",brightRed:"#ff8aa4",brightGreen:"#21f6bc",brightYellow:"#fff787",brightBlue:"#1bccfd",brightMagenta:"#e6aefe",brightCyan:"#99d6fc",brightWhite:"#ffffff",foreground:"#e5e5e5",background:"#332a57",cursorColor:"#21f6bc",cursorText:"#332a57",selectionBackground:"#c1deff",selectionForeground:"#332a57"}});var vscodeDark;var init_vscode=__esm(()=>{vscodeDark={name:"vscode-dark",dark:!0,black:"#000000",red:"#cd3131",green:"#0dbc79",yellow:"#e5e510",blue:"#2472c8",magenta:"#bc3fbc",cyan:"#11a8cd",white:"#e5e5e5",brightBlack:"#666666",brightRed:"#f14c4c",brightGreen:"#23d18b",brightYellow:"#f5f543",brightBlue:"#3b8eea",brightMagenta:"#d670d6",brightCyan:"#29b8db",brightWhite:"#e5e5e5",foreground:"#cccccc",background:"#1e1e1e",cursorColor:"#ffffff",cursorText:"#1e1e1e",selectionBackground:"#3a3d41",selectionForeground:"#cccccc"}});var oneLight,oneHalfDark,oneHalfLight;var init_one_light=__esm(()=>{oneLight={name:"one-light",dark:!1,black:"#000000",red:"#de3e35",green:"#3f953a",yellow:"#d2b67c",blue:"#2f5af3",magenta:"#950095",cyan:"#3f953a",white:"#bbbbbb",brightBlack:"#000000",brightRed:"#de3e35",brightGreen:"#3f953a",brightYellow:"#d2b67c",brightBlue:"#2f5af3",brightMagenta:"#a00095",brightCyan:"#3f953a",brightWhite:"#ffffff",foreground:"#2a2c33",background:"#f9f9f9",cursorColor:"#bbbbbb",cursorText:"#f9f9f9",selectionBackground:"#ededed",selectionForeground:"#2a2c33"},oneHalfDark={name:"one-half-dark",dark:!0,black:"#282c34",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#dcdfe4",brightBlack:"#282c34",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#dcdfe4",foreground:"#dcdfe4",background:"#282c34",cursorColor:"#a3b3cc",cursorText:"#282c34",selectionBackground:"#474e5d",selectionForeground:"#dcdfe4"},oneHalfLight={name:"one-half-light",dark:!1,black:"#383a42",red:"#e45649",green:"#50a14f",yellow:"#c18401",blue:"#0184bc",magenta:"#a626a4",cyan:"#0997b3",white:"#fafafa",brightBlack:"#4f525e",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff",foreground:"#383a42",background:"#fafafa",cursorColor:"#bfceff",cursorText:"#fafafa",selectionBackground:"#bfceff",selectionForeground:"#383a42"}});var nightOwlLight;var init_night_owl=__esm(()=>{nightOwlLight={name:"night-owl-light",dark:!1,black:"#011627",red:"#d3423e",green:"#2aa298",yellow:"#daaa01",blue:"#4876d6",magenta:"#403f53",cyan:"#08916a",white:"#7a8181",brightBlack:"#7a8181",brightRed:"#f76e6e",brightGreen:"#49d0c5",brightYellow:"#dac26b",brightBlue:"#5ca7e4",brightMagenta:"#697098",brightCyan:"#00c990",brightWhite:"#989fb1",foreground:"#403f53",background:"#ffffff",cursorColor:"#403f53",cursorText:"#ffffff",selectionBackground:"#f2f2f2",selectionForeground:"#403f53"}});var shadesOfPurple;var init_shades_of_purple=__esm(()=>{shadesOfPurple={name:"shades-of-purple",dark:!0,black:"#000000",red:"#d90429",green:"#3ad900",yellow:"#ffe700",blue:"#6943ff",magenta:"#ff2c70",cyan:"#00c5c7",white:"#c7c7c7",brightBlack:"#686868",brightRed:"#f92a1c",brightGreen:"#43d426",brightYellow:"#f1d000",brightBlue:"#6871ff",brightMagenta:"#ff77ff",brightCyan:"#79e8fb",brightWhite:"#ffffff",foreground:"#ffffff",background:"#1e1d40",cursorColor:"#fad000",cursorText:"#1e1d40",selectionBackground:"#b362ff",selectionForeground:"#ffffff"}});var homebrew;var init_homebrew=__esm(()=>{homebrew={name:"homebrew",dark:!0,black:"#000000",red:"#990000",green:"#00a600",yellow:"#999900",blue:"#0000b2",magenta:"#b200b2",cyan:"#00a6b2",white:"#bfbfbf",brightBlack:"#666666",brightRed:"#e50000",brightGreen:"#00d900",brightYellow:"#e5e500",brightBlue:"#0000ff",brightMagenta:"#e500e5",brightCyan:"#00e5e5",brightWhite:"#e5e5e5",foreground:"#00ff00",background:"#000000",cursorColor:"#23ff18",cursorText:"#000000",selectionBackground:"#083905",selectionForeground:"#00ff00"}});var neon;var init_neon=__esm(()=>{neon={name:"neon",dark:!0,black:"#000000",red:"#ff3045",green:"#5ffa74",yellow:"#fffc7e",blue:"#0208cb",magenta:"#f924e7",cyan:"#00fffc",white:"#c7c7c7",brightBlack:"#686868",brightRed:"#ff5a5a",brightGreen:"#75ff88",brightYellow:"#fffd96",brightBlue:"#3c40cb",brightMagenta:"#f15be5",brightCyan:"#88fffe",brightWhite:"#ffffff",foreground:"#00fffc",background:"#14161a",cursorColor:"#c7c7c7",cursorText:"#14161a",selectionBackground:"#0013ff",selectionForeground:"#ffffff"}});var challengerDeep;var init_challenger_deep=__esm(()=>{challengerDeep={name:"challenger-deep",dark:!0,black:"#141228",red:"#ff5458",green:"#62d196",yellow:"#ffb378",blue:"#65b2ff",magenta:"#906cff",cyan:"#63f2f1",white:"#a6b3cc",brightBlack:"#565575",brightRed:"#ff8080",brightGreen:"#95ffa4",brightYellow:"#ffe9aa",brightBlue:"#91ddff",brightMagenta:"#c991e1",brightCyan:"#aaffe4",brightWhite:"#cbe3e7",foreground:"#cbe1e7",background:"#1e1c31",cursorColor:"#fbfcfc",cursorText:"#1e1c31",selectionBackground:"#cbe1e7",selectionForeground:"#1e1c31"}});var doomOne;var init_doom_one=__esm(()=>{doomOne={name:"doom-one",dark:!0,black:"#000000",red:"#ff6c6b",green:"#98be65",yellow:"#ecbe7b",blue:"#a9a1e1",magenta:"#c678dd",cyan:"#51afef",white:"#bbc2cf",brightBlack:"#000000",brightRed:"#ff6655",brightGreen:"#99bb66",brightYellow:"#ecbe7b",brightBlue:"#a9a1e1",brightMagenta:"#c678dd",brightCyan:"#51afef",brightWhite:"#bfbfbf",foreground:"#bbc2cf",background:"#282c34",cursorColor:"#51afef",cursorText:"#282c34",selectionBackground:"#42444b",selectionForeground:"#bbc2cf"}});var mariana;var init_mariana=__esm(()=>{mariana={name:"mariana",dark:!0,black:"#000000",red:"#ec5f66",green:"#99c794",yellow:"#f9ae58",blue:"#6699cc",magenta:"#c695c6",cyan:"#5fb4b4",white:"#f7f7f7",brightBlack:"#333333",brightRed:"#f97b58",brightGreen:"#acd1a8",brightYellow:"#fac761",brightBlue:"#85add6",brightMagenta:"#d8b6d8",brightCyan:"#82c4c4",brightWhite:"#ffffff",foreground:"#d8dee9",background:"#343d46",cursorColor:"#fcbb6a",cursorText:"#343d46",selectionBackground:"#4e5a65",selectionForeground:"#d8dee9"}});var darcula;var init_darcula=__esm(()=>{darcula={name:"darcula",dark:!0,black:"#000000",red:"#fa5355",green:"#126e00",yellow:"#c2c300",blue:"#4581eb",magenta:"#fa54ff",cyan:"#33c2c1",white:"#adadad",brightBlack:"#555555",brightRed:"#fb7172",brightGreen:"#67ff4f",brightYellow:"#ffff00",brightBlue:"#6d9df1",brightMagenta:"#fb82ff",brightCyan:"#60d3d1",brightWhite:"#eeeeee",foreground:"#adadad",background:"#202020",cursorColor:"#ffffff",cursorText:"#202020",selectionBackground:"#1a3272",selectionForeground:"#adadad"}});var espresso;var init_espresso=__esm(()=>{espresso={name:"espresso",dark:!0,black:"#353535",red:"#d25252",green:"#a5c261",yellow:"#ffc66d",blue:"#6c99bb",magenta:"#d197d9",cyan:"#bed6ff",white:"#eeeeec",brightBlack:"#535353",brightRed:"#f00c0c",brightGreen:"#c2e075",brightYellow:"#e1e48b",brightBlue:"#8ab7d9",brightMagenta:"#efb5f7",brightCyan:"#dcf4ff",brightWhite:"#ffffff",foreground:"#ffffff",background:"#323232",cursorColor:"#d6d6d6",cursorText:"#323232",selectionBackground:"#5b5b5b",selectionForeground:"#ffffff"}});var icebergDark,icebergLight;var init_iceberg=__esm(()=>{icebergDark={name:"iceberg-dark",dark:!0,black:"#1e2132",red:"#e27878",green:"#b4be82",yellow:"#e2a478",blue:"#84a0c6",magenta:"#a093c7",cyan:"#89b8c2",white:"#c6c8d1",brightBlack:"#6b7089",brightRed:"#e98989",brightGreen:"#c0ca8e",brightYellow:"#e9b189",brightBlue:"#91acd1",brightMagenta:"#ada0d3",brightCyan:"#95c4ce",brightWhite:"#d2d4de",foreground:"#c6c8d1",background:"#161821",cursorColor:"#c6c8d1",cursorText:"#161821",selectionBackground:"#c6c8d1",selectionForeground:"#161821"},icebergLight={name:"iceberg-light",dark:!1,black:"#dcdfe7",red:"#cc517a",green:"#668e3d",yellow:"#c57339",blue:"#2d539e",magenta:"#7759b4",cyan:"#3f83a6",white:"#33374c",brightBlack:"#8389a3",brightRed:"#cc3768",brightGreen:"#598030",brightYellow:"#b6662d",brightBlue:"#22478e",brightMagenta:"#6845ad",brightCyan:"#327698",brightWhite:"#262a3f",foreground:"#33374c",background:"#e8e9ec",cursorColor:"#33374c",cursorText:"#e8e9ec",selectionBackground:"#33374c",selectionForeground:"#e8e9ec"}});var serendipityMidnight,serendipityMorning;var init_serendipity=__esm(()=>{serendipityMidnight={name:"serendipity-midnight",dark:!0,black:"#232534",red:"#ee8679",green:"#9ccfd8",yellow:"#f8d2c9",blue:"#5ba2d0",magenta:"#a78bfa",cyan:"#94b8ff",white:"#dee0ef",brightBlack:"#8d8f9e",brightRed:"#ee8679",brightGreen:"#9ccfd8",brightYellow:"#f8d2c9",brightBlue:"#5ba2d0",brightMagenta:"#a78bfa",brightCyan:"#94b8ff",brightWhite:"#dee0ef",foreground:"#dee0ef",background:"#1c1e2d",cursorColor:"#6b6d7c",cursorText:"#1c1e2d",selectionBackground:"#2c2e3d",selectionForeground:"#dee0ef"},serendipityMorning={name:"serendipity-morning",dark:!1,black:"#f2e9de",red:"#d26a5d",green:"#77aab3",yellow:"#c8a299",blue:"#3788be",magenta:"#886cdb",cyan:"#7397de",white:"#575279",brightBlack:"#6e6a86",brightRed:"#d26a5d",brightGreen:"#77aab3",brightYellow:"#c8a299",brightBlue:"#3788be",brightMagenta:"#886cdb",brightCyan:"#7397de",brightWhite:"#575279",foreground:"#575279",background:"#fffaf3",cursorColor:"#9893a5",cursorText:"#fffaf3",selectionBackground:"#f4efea",selectionForeground:"#575279"}});var twilight;var init_twilight=__esm(()=>{twilight={name:"twilight",dark:!0,black:"#141414",red:"#c06d44",green:"#afb97a",yellow:"#c2a86c",blue:"#44474a",magenta:"#b4be7c",cyan:"#778385",white:"#ffffd4",brightBlack:"#262626",brightRed:"#de7c4c",brightGreen:"#ccd88c",brightYellow:"#e2c47e",brightBlue:"#5a5e62",brightMagenta:"#d0dc8e",brightCyan:"#8a989b",brightWhite:"#ffffd4",foreground:"#ffffd4",background:"#141414",cursorColor:"#ffffff",cursorText:"#141414",selectionBackground:"#313131",selectionForeground:"#ffffd4"}});var breeze;var init_breeze=__esm(()=>{breeze={name:"breeze",dark:!0,black:"#31363b",red:"#ed1515",green:"#11d116",yellow:"#f67400",blue:"#1d99f3",magenta:"#9b59b6",cyan:"#1abc9c",white:"#eff0f1",brightBlack:"#7f8c8d",brightRed:"#c0392b",brightGreen:"#1cdc9a",brightYellow:"#fdbc4b",brightBlue:"#3daee9",brightMagenta:"#8e44ad",brightCyan:"#16a085",brightWhite:"#fcfcfc",foreground:"#eff0f1",background:"#31363b",cursorColor:"#eff0f1",cursorText:"#31363b",selectionBackground:"#eff0f1",selectionForeground:"#31363b"}});var andromeda;var init_andromeda=__esm(()=>{andromeda={name:"andromeda",dark:!0,black:"#000000",red:"#cd3131",green:"#05bc79",yellow:"#e5e512",blue:"#2472c8",magenta:"#bc3fbc",cyan:"#0fa8cd",white:"#e5e5e5",brightBlack:"#666666",brightRed:"#cd3131",brightGreen:"#05bc79",brightYellow:"#e5e512",brightBlue:"#2472c8",brightMagenta:"#bc3fbc",brightCyan:"#0fa8cd",brightWhite:"#e5e5e5",foreground:"#e5e5e5",background:"#262a33",cursorColor:"#f8f8f0",cursorText:"#262a33",selectionBackground:"#5a5c62",selectionForeground:"#e5e5e5"}});var relaxed;var init_relaxed=__esm(()=>{relaxed={name:"relaxed",dark:!0,black:"#151515",red:"#bc5653",green:"#909d63",yellow:"#ebc17a",blue:"#6a8799",magenta:"#b06698",cyan:"#c9dfff",white:"#d9d9d9",brightBlack:"#636363",brightRed:"#bc5653",brightGreen:"#a0ac77",brightYellow:"#ebc17a",brightBlue:"#7eaac7",brightMagenta:"#b06698",brightCyan:"#acbbd0",brightWhite:"#f7f7f7",foreground:"#d9d9d9",background:"#353a44",cursorColor:"#d9d9d9",cursorText:"#353a44",selectionBackground:"#6a7985",selectionForeground:"#d9d9d9"}});function getThemeByName(name){if(!name)return ansi16DarkTheme2;let builtin=builtinThemes[name];if(builtin)return builtin;let palette=builtinPalettes[name];if(palette)return deriveTheme(palette);return ansi16DarkTheme2}var ansi16DarkTheme2,ansi16LightTheme2,defaultDarkTheme,defaultLightTheme,builtinPalettes,builtinThemes;var init_palettes=__esm(()=>{init_derive2();init_catppuccin();init_nord();init_dracula();init_solarized();init_tokyo_night();init_one_dark();init_gruvbox();init_rose_pine();init_kanagawa();init_everforest();init_monokai();init_snazzy();init_material();init_palenight();init_ayu();init_nightfox();init_horizon();init_moonfly();init_nightfly();init_oxocarbon();init_sonokai();init_edge();init_modus();init_github();init_cobalt2();init_synthwave();init_tomorrow_night();init_zenburn();init_ubuntu();init_tango();init_cyberpunk();init_vscode();init_one_light();init_night_owl();init_shades_of_purple();init_homebrew();init_neon();init_challenger_deep();init_doom_one();init_mariana();init_darcula();init_espresso();init_iceberg();init_serendipity();init_twilight();init_breeze();init_andromeda();init_relaxed();init_catppuccin();init_nord();init_dracula();init_solarized();init_tokyo_night();init_one_dark();init_gruvbox();init_rose_pine();init_kanagawa();init_everforest();init_monokai();init_snazzy();init_material();init_palenight();init_ayu();init_nightfox();init_horizon();init_moonfly();init_nightfly();init_oxocarbon();init_sonokai();init_edge();init_modus();init_github();init_cobalt2();init_synthwave();init_tomorrow_night();init_zenburn();init_ubuntu();init_tango();init_cyberpunk();init_vscode();init_one_light();init_night_owl();init_shades_of_purple();init_homebrew();init_neon();init_challenger_deep();init_doom_one();init_mariana();init_darcula();init_espresso();init_iceberg();init_serendipity();init_twilight();init_breeze();init_andromeda();init_relaxed();ansi16DarkTheme2={name:"dark-ansi16",bg:"",fg:"whiteBright",muted:"white",mutedbg:"black",surface:"whiteBright",surfacebg:"black",popover:"whiteBright",popoverbg:"black",inverse:"black",inversebg:"whiteBright",cursor:"black",cursorbg:"yellow",selection:"black",selectionbg:"yellow",primary:"yellow",primaryfg:"black",secondary:"white",secondaryfg:"black",accent:"blueBright",accentfg:"black",error:"redBright",errorfg:"black",warning:"yellow",warningfg:"black",success:"greenBright",successfg:"black",info:"cyan",infofg:"black",border:"gray",inputborder:"gray",focusborder:"blueBright",link:"blueBright",disabledfg:"gray",palette:["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]},ansi16LightTheme2={name:"light-ansi16",bg:"",fg:"black",muted:"blackBright",mutedbg:"white",surface:"black",surfacebg:"white",popover:"black",popoverbg:"white",inverse:"whiteBright",inversebg:"black",cursor:"black",cursorbg:"blue",selection:"black",selectionbg:"cyan",primary:"blue",primaryfg:"black",secondary:"blue",secondaryfg:"black",accent:"cyan",accentfg:"black",error:"red",errorfg:"black",warning:"yellow",warningfg:"black",success:"green",successfg:"black",info:"cyan",infofg:"black",border:"gray",inputborder:"gray",focusborder:"blue",link:"blueBright",disabledfg:"gray",palette:["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]},defaultDarkTheme=deriveTheme(nord),defaultLightTheme=deriveTheme(catppuccinLatte),builtinPalettes={"catppuccin-mocha":catppuccinMocha,"catppuccin-frappe":catppuccinFrappe,"catppuccin-macchiato":catppuccinMacchiato,"catppuccin-latte":catppuccinLatte,nord,dracula,"solarized-dark":solarizedDark,"solarized-light":solarizedLight,"tokyo-night":tokyoNight,"tokyo-night-storm":tokyoNightStorm,"tokyo-night-day":tokyoNightDay,"one-dark":oneDark,"gruvbox-dark":gruvboxDark,"gruvbox-light":gruvboxLight,"rose-pine":rosePine,"rose-pine-moon":rosePineMoon,"rose-pine-dawn":rosePineDawn,"kanagawa-wave":kanagawaWave,"kanagawa-dragon":kanagawaDragon,"kanagawa-lotus":kanagawaLotus,"everforest-dark":everforestDark,"everforest-light":everforestLight,monokai,"monokai-pro":monokaiPro,snazzy,"material-dark":materialDark,"material-light":materialLight,palenight,"ayu-dark":ayuDark,"ayu-mirage":ayuMirage,"ayu-light":ayuLight,nightfox,dawnfox,horizon,moonfly,nightfly,"oxocarbon-dark":oxocarbonDark,"oxocarbon-light":oxocarbonLight,sonokai,"edge-dark":edgeDark,"edge-light":edgeLight,"modus-vivendi":modusVivendi,"modus-operandi":modusOperandi,"github-dark":githubDark,"github-light":githubLight,cobalt2,synthwave,"synthwave-84":synthwave84,"tomorrow-night":tomorrowNight,"tomorrow-night-blue":tomorrowNightBlue,"tomorrow-night-eighties":tomorrowNightEighties,zenburn,ubuntu,"tango-dark":tangoDark,"tango-light":tangoLight,cyberpunk,"vscode-dark":vscodeDark,"one-light":oneLight,"one-half-dark":oneHalfDark,"one-half-light":oneHalfLight,"night-owl-light":nightOwlLight,"shades-of-purple":shadesOfPurple,homebrew,neon,"challenger-deep":challengerDeep,"doom-one":doomOne,mariana,darcula,espresso,"iceberg-dark":icebergDark,"iceberg-light":icebergLight,"serendipity-midnight":serendipityMidnight,"serendipity-morning":serendipityMorning,twilight,breeze,andromeda,relaxed},builtinThemes={"dark-ansi16":ansi16DarkTheme2,"light-ansi16":ansi16LightTheme2,"dark-truecolor":defaultDarkTheme,"light-truecolor":defaultLightTheme,dark:defaultDarkTheme,light:defaultLightTheme,"ansi16-dark":ansi16DarkTheme2,"ansi16-light":ansi16LightTheme2}});function getActiveTheme(){return _contextStack.length>0?_contextStack[_contextStack.length-1]:_activeTheme}function pushContextTheme(theme){_contextStack.push(theme)}function popContextTheme(){_contextStack.pop()}var _activeTheme,_contextStack;var init_state=__esm(()=>{init_palettes();_activeTheme=ansi16DarkTheme2;_contextStack=[]});var init_resolve=__esm(()=>{init_src2()});function blendColors(c1,c2,t){return{r:Math.round(c1.r*(1-t)+c2.r*t),g:Math.round(c1.g*(1-t)+c2.g*t),b:Math.round(c1.b*(1-t)+c2.b*t)}}function parseColor(color){if(color==="inherit")return null;if(color==="$default")return DEFAULT_BG;if(color.startsWith("mix(")&&color.endsWith(")")){let inner=color.slice(4,-1),args=[],depth=0,start=0;for(let i=0;i<inner.length;i++)if(inner[i]==="(")depth++;else if(inner[i]===")")depth--;else if(inner[i]===","&&depth===0)args.push(inner.slice(start,i).trim()),start=i+1;if(args.push(inner.slice(start).trim()),args.length===3){let c1=parseColor(args[0]),c2=parseColor(args[1]),amountStr=args[2],t;if(amountStr.endsWith("%"))t=Number.parseFloat(amountStr.slice(0,-1))/100;else t=Number.parseFloat(amountStr);if(c1!==null&&c2!==null&&typeof c1==="object"&&typeof c2==="object"&&!Number.isNaN(t))return blendColors(c1,c2,Math.max(0,Math.min(1,t)));return null}}if(color.startsWith("$")){let resolved=resolveThemeColor(color,getActiveTheme());if(resolved&&resolved!==color)return parseColor(resolved);return null}if(color in namedColors)return namedColors[color];if(color.startsWith("#")){let hex=color.slice(1);if(hex.length===3){let r=Number.parseInt(hex[0]+hex[0],16),g=Number.parseInt(hex[1]+hex[1],16),b=Number.parseInt(hex[2]+hex[2],16);return{r,g,b}}if(hex.length===6){let r=Number.parseInt(hex.slice(0,2),16),g=Number.parseInt(hex.slice(2,4),16),b=Number.parseInt(hex.slice(4,6),16);return{r,g,b}}}let rgbMatch=color.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(rgbMatch)return{r:Number.parseInt(rgbMatch[1],10),g:Number.parseInt(rgbMatch[2],10),b:Number.parseInt(rgbMatch[3],10)};let ansi256Match=color.match(/^ansi256\s*\(\s*(\d+)\s*\)$/i);if(ansi256Match)return Number.parseInt(ansi256Match[1],10);return null}function getBorderChars(style2){if(style2&&typeof style2==="object"){let obj=style2,topHorizontal=obj.top??obj.horizontal??"-",leftVertical=obj.left??obj.vertical??"|";return{topLeft:obj.topLeft??"+",topRight:obj.topRight??"+",bottomLeft:obj.bottomLeft??"+",bottomRight:obj.bottomRight??"+",horizontal:topHorizontal,vertical:leftVertical,bottomHorizontal:obj.bottom&&obj.bottom!==topHorizontal?obj.bottom:void 0,rightVertical:obj.right&&obj.right!==leftVertical?obj.right:void 0}}return borders[style2??"single"]}function getTextStyle(props){let underlineStyle;if(props.underlineStyle!==void 0)underlineStyle=props.underlineStyle;else if(props.underline)underlineStyle="single";return{fg:props.color?parseColor(props.color):null,bg:props.backgroundColor?parseColor(props.backgroundColor):null,underlineColor:props.underlineColor?parseColor(props.underlineColor):null,attrs:{bold:props.bold,dim:props.dim||props.dimColor,italic:props.italic,underline:props.underline||!!underlineStyle,underlineStyle,strikethrough:props.strikethrough,inverse:props.inverse}}}function getTextWidth2(text,ctx){if(ctx)return ctx.measurer.displayWidthAnsi(text);return displayWidthAnsi(text)}var namedColors,borders;var init_render_helpers=__esm(()=>{init_buffer();init_state();init_resolve();init_unicode();init_helpers();namedColors={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,gray:8,grey:8,blackBright:8,redBright:9,greenBright:10,yellowBright:11,blueBright:12,magentaBright:13,cyanBright:14,whiteBright:15};borders={single:{topLeft:"┌",topRight:"┐",bottomLeft:"└",bottomRight:"┘",horizontal:"─",vertical:"│"},double:{topLeft:"╔",topRight:"╗",bottomLeft:"╚",bottomRight:"╝",horizontal:"═",vertical:"║"},round:{topLeft:"╭",topRight:"╮",bottomLeft:"╰",bottomRight:"╯",horizontal:"─",vertical:"│"},bold:{topLeft:"┏",topRight:"┓",bottomLeft:"┗",bottomRight:"┛",horizontal:"━",vertical:"┃"},singleDouble:{topLeft:"╓",topRight:"╖",bottomLeft:"╙",bottomRight:"╜",horizontal:"─",vertical:"║"},doubleSingle:{topLeft:"╒",topRight:"╕",bottomLeft:"╘",bottomRight:"╛",horizontal:"═",vertical:"│"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|"}}});import{createLogger as createLogger6}from"loggily";function getBgConflictMode(){return bgConflictMode}function formatBgConflictColor(c){if(c===null||c===void 0)return"none";if(typeof c==="number"){if(c&16777216){let r=c>>16&255,g=c>>8&255,b=c&255;return`#${r.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${b.toString(16).padStart(2,"0")}`}return{40:"black",41:"red",42:"green",43:"yellow",44:"blue",45:"magenta",46:"cyan",47:"white",100:"brightBlack",101:"brightRed",102:"brightGreen",103:"brightYellow",104:"brightBlue",105:"brightMagenta",106:"brightCyan",107:"brightWhite"}[c]??`palette(${c})`}return`rgb(${c.r},${c.g},${c.b})`}function clearBgConflictWarnings(){warnedBgConflicts.clear()}function styleToAnsi2(style2){let parts=[];if(style2.color){let color=parseColor(style2.color);if(color!==null)if(typeof color==="number")parts.push(`38;5;${color}`);else parts.push(`38;2;${color.r};${color.g};${color.b}`)}if(style2.bold)parts.push("1");if(style2.dim)parts.push("2");if(style2.italic)parts.push("3");if(style2.underlineStyle){let styleMap={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"};parts.push(styleMap[style2.underlineStyle]??"4")}else if(style2.underline)parts.push("4");if(style2.underlineColor){let ulColor=parseColor(style2.underlineColor);if(ulColor!==null)if(typeof ulColor==="number")parts.push(`58;5;${ulColor}`);else parts.push(`58;2;${ulColor.r};${ulColor.g};${ulColor.b}`)}if(style2.inverse)parts.push("7");if(style2.strikethrough)parts.push("9");if(parts.length===0)return"";return`\x1B[${parts.join(";")}m`}function mergeStyleContext(parent,childProps){return{color:childProps.color??parent.color,backgroundColor:childProps.backgroundColor??parent.backgroundColor,bold:childProps.bold??parent.bold,dim:childProps.dim??childProps.dimColor??parent.dim,italic:childProps.italic??parent.italic,underline:childProps.underline??childProps.underlineStyle?!0:parent.underline,underlineStyle:childProps.underlineStyle??parent.underlineStyle,underlineColor:childProps.underlineColor??parent.underlineColor,inverse:childProps.inverse??parent.inverse,strikethrough:childProps.strikethrough??parent.strikethrough}}function applyTextStyleAnsi(text,childStyle,parentStyle){if(!text)return text;let childAnsi=styleToAnsi2(childStyle),parentAnsi=styleToAnsi2(parentStyle);if(!childAnsi)return text;return`${childAnsi}${text}\x1B[0m${parentAnsi}`}function collectTextWithBg(node,parentContext={},offset=0,maxDisplayWidth,ctx){if(node.textContent!==void 0){let text=node.textContent;if(maxDisplayWidth!==void 0){if(getTextWidth2(text,ctx)>maxDisplayWidth)text=(ctx?ctx.measurer.sliceByWidth:sliceByWidth)(text,maxDisplayWidth)}let plainLen=getTextWidth2(text,ctx);return{text,bgSegments:[],childSpans:[],plainLen}}let result="",bgSegments=[],childSpans=[],currentOffset=offset,displayWidthCollected=0;for(let i=0;i<node.children.length;i++){let child=node.children[i];if(maxDisplayWidth!==void 0&&displayWidthCollected>=maxDisplayWidth)break;let childBudget=maxDisplayWidth!==void 0?maxDisplayWidth-displayWidthCollected:void 0;if(child.type==="silvery-text"&&child.props&&!child.layoutNode){let childProps=child.props,childContext=mergeStyleContext(parentContext,childProps),childResult=collectTextWithBg(child,childContext,currentOffset,childBudget,ctx),childTransform=childProps.internal_transform;if(childTransform&&childResult.text.length>0)childResult.text=childTransform(childResult.text,i);let styledText=applyTextStyleAnsi(childResult.text,childContext,parentContext);if(result+=styledText,childContext.backgroundColor){let bg=parseColor(childContext.backgroundColor);if(bg!==null){if(childResult.plainLen>0)bgSegments.push({start:currentOffset,end:currentOffset+childResult.plainLen,bg})}}else if(childProps.backgroundColor===""&&childResult.plainLen>0)bgSegments.push({start:currentOffset,end:currentOffset+childResult.plainLen,bg:null});if(childResult.plainLen>0)childSpans.push({node:child,start:currentOffset,end:currentOffset+childResult.plainLen});bgSegments.push(...childResult.bgSegments),childSpans.push(...childResult.childSpans),currentOffset+=childResult.plainLen,displayWidthCollected+=childResult.plainLen}else{let childResult=collectTextWithBg(child,parentContext,currentOffset,childBudget,ctx);result+=childResult.text,bgSegments.push(...childResult.bgSegments),childSpans.push(...childResult.childSpans),currentOffset+=childResult.plainLen,displayWidthCollected+=childResult.plainLen}}return{text:result,bgSegments,childSpans,plainLen:displayWidthCollected}}function applyBgSegmentsToLine(buffer,x,y,lineText,lineCharStart,lineCharEnd,bgSegments,ctx){if(bgSegments.length===0)return;if(y<0||y>=buffer.height)return;let bgCell=createMutableCell(),gWidthFn=ctx?ctx.measurer.graphemeWidth:graphemeWidth;for(let seg of bgSegments){let overlapStart=Math.max(seg.start,lineCharStart),overlapEnd=Math.min(seg.end,lineCharEnd);if(overlapStart>=overlapEnd)continue;let relStart=overlapStart-lineCharStart,relEnd=overlapEnd-lineCharStart,col=x,graphemes=splitGraphemes(hasAnsi(lineText)?stripAnsiForBg(lineText):lineText);for(let grapheme of graphemes){let gWidth=gWidthFn(grapheme);if(gWidth===0)continue;let displayOffset=col-x;if(displayOffset>=relStart&&displayOffset<relEnd){if(buffer.readCellInto(col,y,bgCell),bgCell.bg=seg.bg,buffer.setCell(col,y,bgCell),gWidth===2&&col+1<buffer.width)buffer.readCellInto(col+1,y,bgCell),bgCell.bg=seg.bg,buffer.setCell(col+1,y,bgCell)}if(col+=gWidth,col-x>=relEnd)break}}}function stripAnsiForBg(text){return text.replace(/\x1b\[[0-9;:?]*[A-Za-z]/g,"").replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g,"").replace(/\x1b[DME78]/g,"").replace(/\x1b\(B/g,"")}function mapLinesToCharOffsets(originalText,formattedLines,ctx){let normalized=(hasAnsi(originalText)?stripAnsiForBg(originalText):originalText).replace(/\t/g," "),result=[],charOffset=0,displayOffset=0;for(let line of formattedLines){let plainLine=hasAnsi(line)?stripAnsiForBg(line):line,lineStart=findLineStart(normalized,plainLine,charOffset);if(lineStart>charOffset){let skipped=normalized.slice(charOffset,lineStart);displayOffset+=getTextWidth2(skipped,ctx)}let lineDisplayWidth=getTextWidth2(plainLine,ctx);result.push({start:displayOffset,end:displayOffset+lineDisplayWidth});let lineLen=Math.min(plainLine.length,normalized.length-lineStart);charOffset=lineStart+lineLen,displayOffset+=lineDisplayWidth}return result}function findLineStart(normalized,plainLine,fromOffset){if(plainLine.length===0){let pos2=fromOffset;while(pos2<normalized.length&&normalized[pos2]===`
|
|
67
67
|
`)pos2++;return pos2}if(normalized.startsWith(plainLine,fromOffset))return fromOffset;let ELLIPSIS="…",ellipsisIdx=plainLine.indexOf(ELLIPSIS),truncatedPrefix=ellipsisIdx>0?plainLine.slice(0,ellipsisIdx):null;if(truncatedPrefix&&normalized.startsWith(truncatedPrefix,fromOffset))return fromOffset;let pos=fromOffset;while(pos<normalized.length){let ch=normalized[pos];if(ch===`
|
|
68
68
|
`||ch===" "){pos++;continue}if(normalized.startsWith(plainLine,pos))return pos;if(truncatedPrefix&&normalized.startsWith(truncatedPrefix,pos))return pos;pos++}return fromOffset}function formatTextLines(text,width,wrap,ctx,trim=!0){if(width<=0)return[];let normalizedText=text.replace(/\t/g," "),lines=normalizedText.split(`
|
|
69
69
|
`);if(wrap==="clip"){let sliceFn=ctx?ctx.measurer.sliceByWidth:sliceByWidth;return lines.map((line)=>{if(getTextWidth2(line,ctx)<=width)return line;return sliceFn(line,width)})}if(wrap==="hard"){let sliceFn=ctx?ctx.measurer.sliceByWidth:sliceByWidth,out=[];for(let line of lines){if(line===""){out.push("");continue}let remaining=line;while(getTextWidth2(remaining,ctx)>width){let head=sliceFn(remaining,width);if(head.length===0)break;out.push(head),remaining=remaining.slice(head.length)}out.push(remaining)}return out}if(wrap===!1||wrap==="truncate-end"||wrap==="truncate")return lines.map((line)=>truncateText2(line,width,"end",ctx));if(wrap==="truncate-start")return lines.map((line)=>truncateText2(line,width,"start",ctx));if(wrap==="truncate-middle")return lines.map((line)=>truncateText2(line,width,"middle",ctx));if(wrap==="even"){let gWidthFn=ctx?.measurer?.graphemeWidth?.bind(ctx.measurer)??graphemeWidth,analysis=buildTextAnalysis(normalizedText,gWidthFn);return optimalWrap(normalizedText,analysis,width)}if(ctx)return ctx.measurer.wrapText(normalizedText,width,!0,trim);return wrapText(normalizedText,width,!0,trim)}function truncateText2(text,width,mode,ctx){if(getTextWidth2(text,ctx)<=width)return text;let ellipsis="…",availableWidth=width-1;if(availableWidth<=0)return width>0?ellipsis:"";let sliceFn=ctx?ctx.measurer.sliceByWidth:sliceByWidth,sliceEndFn=ctx?ctx.measurer.sliceByWidthFromEnd:sliceByWidthFromEnd;if(mode==="end")return sliceFn(text,availableWidth)+ellipsis;if(mode==="start")return ellipsis+sliceEndFn(text,availableWidth);let halfWidth=Math.floor(availableWidth/2),startPart=sliceFn(text,halfWidth),endPart=sliceEndFn(text,availableWidth-halfWidth);return startPart+ellipsis+endPart}function renderTextLine(buffer,x,y,text,baseStyle,maxCol,inheritedBg,ctx){if(hasAnsi(text)){renderAnsiTextLine(buffer,x,y,text,baseStyle,maxCol,inheritedBg,ctx);return}renderGraphemes(buffer,splitGraphemes(text),x,y,baseStyle,maxCol,inheritedBg,ctx)}function renderTextLineReturn(buffer,x,y,text,baseStyle,maxCol,inheritedBg,ctx,minCol){if(hasAnsi(text))return renderAnsiTextLineReturn(buffer,x,y,text,baseStyle,maxCol,inheritedBg,ctx,minCol);return renderGraphemes(buffer,splitGraphemes(text),x,y,baseStyle,maxCol,inheritedBg,ctx,minCol)}function renderGraphemes(buffer,graphemes,startCol,y,style2,maxCol,inheritedBg,ctx,minCol){let col=startCol,rightEdge=maxCol!==void 0?Math.min(maxCol,buffer.width):buffer.width,leftEdge=minCol!==void 0?Math.max(minCol,0):0,gWidthFn=ctx?ctx.measurer.graphemeWidth:graphemeWidth;for(let grapheme of graphemes){if(col>=rightEdge)break;let width=gWidthFn(grapheme);if(width===0)continue;if(col+width<=leftEdge){col+=width;continue}if(col<leftEdge){col=leftEdge;continue}let existingBg=style2.bg!==null?style2.bg:inheritedBg!==void 0?inheritedBg:buffer.getCellBg(col,y);if(width===2&&col+1>=rightEdge){buffer.setCell(col,y,{char:" ",fg:style2.fg,bg:existingBg,underlineColor:style2.underlineColor??null,attrs:style2.attrs,wide:!1,continuation:!1,hyperlink:style2.hyperlink}),col+=1;continue}let outputChar=width===2?ensureEmojiPresentation(grapheme):grapheme;if(buffer.setCell(col,y,{char:outputChar,fg:style2.fg,bg:existingBg,underlineColor:style2.underlineColor??null,attrs:style2.attrs,wide:width===2,continuation:!1,hyperlink:style2.hyperlink}),width===2&&col+1<buffer.width){let existingBg2=style2.bg!==null?style2.bg:inheritedBg!==void 0?inheritedBg:buffer.getCellBg(col+1,y);buffer.setCell(col+1,y,{char:"",fg:style2.fg,bg:existingBg2,underlineColor:style2.underlineColor??null,attrs:style2.attrs,wide:!1,continuation:!0,hyperlink:style2.hyperlink}),col+=2}else col+=width}return col}function renderAnsiTextLine(buffer,x,y,text,baseStyle,maxCol,inheritedBg,ctx){renderAnsiTextLineReturn(buffer,x,y,text,baseStyle,maxCol,inheritedBg,ctx)}function renderAnsiTextLineReturn(buffer,x,y,text,baseStyle,maxCol,inheritedBg,ctx,minCol){let segments=parseAnsiText(text),col=x;for(let segment of segments){let style2=mergeAnsiStyle(baseStyle,segment),effectiveBgConflictMode=ctx?.bgConflictMode??getBgConflictMode();if(effectiveBgConflictMode!=="ignore"&&!segment.bgOverride&&segment.bg!==void 0&&segment.bg!==null){let existingBufBg=col<buffer.width?buffer.getCellBg(col,y):null;if(baseStyle.bg!==null||existingBufBg!==null){let preview=segment.text.slice(0,30),chalkBg=formatBgConflictColor(segment.bg),silveryBg=baseStyle.bg!==null?`Text.bg=${formatBgConflictColor(baseStyle.bg)}`:`bufferBg=${formatBgConflictColor(existingBufBg)}`,textPreview=text.length>80?text.slice(0,80)+"…":text,msg=`[silvery] Background conflict at (${col},${y}): chalk bg=${chalkBg} on silvery ${silveryBg}. Text: "${preview}${segment.text.length>30?"…":""}". Raw ANSI (first 80): ${JSON.stringify(textPreview)}. Chalk bg will override only text characters, causing visual gaps in padding. Use ansi.bgOverride() to suppress if intentional.`;if(effectiveBgConflictMode==="throw")throw Error(msg);let effectiveWarnedBgConflicts=ctx?.warnedBgConflicts??warnedBgConflicts,key=`${JSON.stringify(existingBufBg)}-${segment.bg}-${preview}`;if(!effectiveWarnedBgConflicts.has(key))effectiveWarnedBgConflicts.add(key),log6.warn?.(msg)}}col=renderGraphemes(buffer,splitGraphemes(segment.text),col,y,style2,maxCol,inheritedBg,ctx,minCol)}return col}function mergeStyles(base,overlay,options={}){let{preserveDecorations=!0,preserveEmphasis=!0}=options,baseAttrs=base.attrs??{},overlayAttrs=overlay.attrs??{},attrs={};if(preserveDecorations){let hasBaseUnderline=baseAttrs.underline||baseAttrs.underlineStyle,hasOverlayUnderline=overlayAttrs.underline||overlayAttrs.underlineStyle;if(hasBaseUnderline||hasOverlayUnderline)attrs.underline=!0,attrs.underlineStyle=overlayAttrs.underlineStyle??baseAttrs.underlineStyle??"single";attrs.strikethrough=overlayAttrs.strikethrough||baseAttrs.strikethrough}else attrs.underline=overlayAttrs.underline??baseAttrs.underline,attrs.underlineStyle=overlayAttrs.underlineStyle??baseAttrs.underlineStyle,attrs.strikethrough=overlayAttrs.strikethrough??baseAttrs.strikethrough;if(preserveEmphasis)attrs.bold=overlayAttrs.bold||baseAttrs.bold,attrs.dim=overlayAttrs.dim||baseAttrs.dim,attrs.italic=overlayAttrs.italic||baseAttrs.italic;else attrs.bold=overlayAttrs.bold??baseAttrs.bold,attrs.dim=overlayAttrs.dim??baseAttrs.dim,attrs.italic=overlayAttrs.italic??baseAttrs.italic;return attrs.inverse=overlayAttrs.inverse,attrs.hidden=overlayAttrs.hidden,attrs.blink=overlayAttrs.blink,{fg:overlay.fg??base.fg,bg:overlay.bg??base.bg,underlineColor:overlay.underlineColor??base.underlineColor,attrs}}function mergeAnsiStyle(base,segment,options={}){let{preserveDecorations=!0,preserveEmphasis=!0}=options,fg=base.fg,bg=base.bg,underlineColor2=base.underlineColor??null;if(segment.fg!==void 0&&segment.fg!==null)fg=ansiColorToColor(segment.fg);if(segment.bg!==void 0&&segment.bg!==null)bg=ansiColorToColor(segment.bg);if(segment.underlineColor!==void 0&&segment.underlineColor!==null)underlineColor2=ansiColorToColor(segment.underlineColor);let overlayAttrs={};if(segment.bold!==void 0)overlayAttrs.bold=segment.bold;if(segment.dim!==void 0)overlayAttrs.dim=segment.dim;if(segment.italic!==void 0)overlayAttrs.italic=segment.italic;if(segment.underline!==void 0)overlayAttrs.underline=segment.underline;if(segment.underlineStyle!==void 0)overlayAttrs.underlineStyle=segment.underlineStyle;if(segment.inverse!==void 0)overlayAttrs.inverse=segment.inverse;let merged=mergeStyles(base,{fg,bg,underlineColor:underlineColor2,attrs:overlayAttrs},{preserveDecorations,preserveEmphasis});if(segment.hyperlink)merged.hyperlink=segment.hyperlink;return merged}function ansiColorToColor(code){if(code>=16777216){let r=code>>16&255,g=code>>8&255,b=code&255;return{r,g,b}}if(code<30||code>=38&&code<40||code>=48&&code<90)return code;if(code>=30&&code<=37)return code-30;if(code>=40&&code<=47)return code-40;if(code>=90&&code<=97)return code-90+8;if(code>=100&&code<=107)return code-100+8;return null}function renderText(node,buffer,layout,props,nodeState,inheritedBg,inheritedFg,ctx){let{scrollOffset,clipBounds}=nodeState,{x,width,height}=layout,{y}=layout;if(y-=scrollOffset,props.backgroundColor==="")inheritedBg=null;if(clipBounds){if(y+height<=clipBounds.top||y>=clipBounds.bottom)return;if(clipBounds.left!==void 0&&clipBounds.right!==void 0){if(x+width<=clipBounds.left||x>=clipBounds.right)return}}let maxDisplayWidth;if((props.wrap===!1||props.wrap==="truncate-end"||props.wrap==="truncate"||props.wrap==="clip")&&width>0){let cachedPlain=getCachedPlainText(node),lineCount;if(cachedPlain)lineCount=cachedPlain.lineCount;else{let plainText=collectPlainText(node);lineCount=(plainText.match(/\n/g)?.length??0)+1,setCachedPlainText(node,plainText,lineCount)}maxDisplayWidth=(width+1)*lineCount}let text,bgSegments,childSpans,cachedCollected=getCachedCollectedText(node,maxDisplayWidth);if(cachedCollected)text=cachedCollected.text,bgSegments=cachedCollected.bgSegments,childSpans=cachedCollected.childSpans;else{let collected=collectTextWithBg(node,{},0,maxDisplayWidth,ctx);text=collected.text,bgSegments=collected.bgSegments,childSpans=collected.childSpans,setCachedCollectedText(node,collected,maxDisplayWidth)}let style2=getTextStyle(props);if(style2.fg===null&&inheritedFg!==void 0)style2.fg=inheritedFg;let trim=!(style2.bg!==null||bgSegments.length>0||inheritedBg!==void 0&&inheritedBg!==null),internalTransform=props.internal_transform,lines,lineOffsets,cachedFmt=!internalTransform?getCachedFormat(node,width,props.wrap,trim):null;if(cachedFmt)lines=cachedFmt.lines,lineOffsets=cachedFmt.hasLineOffsets?cachedFmt.lineOffsets:[];else{if(lines=formatTextLines(text,width,props.wrap,ctx,trim),internalTransform)lines=lines.map((line,index)=>internalTransform(line,index));let needLineOffsets=bgSegments.length>0||childSpans.length>0;if(lineOffsets=needLineOffsets?mapLinesToCharOffsets(text,lines,ctx):[],!internalTransform)setCachedFormat(node,width,props.wrap,trim,lines,lineOffsets,needLineOffsets)}for(let lineIdx=0;lineIdx<lines.length&&lineIdx<height;lineIdx++){let lineY=y+lineIdx;if(clipBounds&&(lineY<clipBounds.top||lineY>=clipBounds.bottom))continue;let line=lines[lineIdx],layoutRight=internalTransform?buffer.width:x+width,maxCol=clipBounds&&"right"in clipBounds&&clipBounds.right!==void 0?Math.min(layoutRight,clipBounds.right):layoutRight,minCol=clipBounds&&"left"in clipBounds&&clipBounds.left!==void 0?clipBounds.left:void 0,endCol=renderTextLineReturn(buffer,x,lineY,line,style2,maxCol,inheritedBg,ctx,minCol),clearStart=minCol!==void 0?Math.max(endCol,minCol):endCol;if(clearStart<maxCol){let clearBg=inheritedBg??null;for(let cx=clearStart;cx<maxCol&&cx<buffer.width;cx++)buffer.setCell(cx,lineY,{char:" ",fg:style2.fg,bg:clearBg,underlineColor:null,attrs:{bold:!1,dim:!1,italic:!1,underline:!1,inverse:!1,strikethrough:!1,blink:!1,hidden:!1},wide:!1,continuation:!1})}if(bgSegments.length>0&&lineIdx<lineOffsets.length){let{start,end}=lineOffsets[lineIdx];applyBgSegmentsToLine(buffer,x,lineY,line,start,end,bgSegments,ctx)}}if(childSpans.length>0&&lineOffsets.length>0)computeInlineRects(childSpans,lineOffsets,x,y,lines.length,height)}function computeInlineRects(childSpans,lineOffsets,parentX,parentY,lineCount,maxHeight){for(let span of childSpans){let rects=[];for(let lineIdx=0;lineIdx<lineCount&&lineIdx<maxHeight;lineIdx++){let lineOffset=lineOffsets[lineIdx];if(!lineOffset)continue;let overlapStart=Math.max(span.start,lineOffset.start),overlapEnd=Math.min(span.end,lineOffset.end);if(overlapStart>=overlapEnd)continue;let rectX=parentX+(overlapStart-lineOffset.start),rectY=parentY+lineIdx,rectWidth=overlapEnd-overlapStart;rects.push({x:rectX,y:rectY,width:rectWidth,height:1})}span.node.inlineRects=rects.length>0?rects:null}}var log6,bgConflictMode,warnedBgConflicts;var init_render_text=__esm(()=>{init_buffer();init_unicode();init_render_helpers();init_prepared_text();init_pretext();log6=createLogger6("silvery:content"),bgConflictMode=(()=>{let env=typeof process<"u"?process.env.SILVERY_BG_CONFLICT?.toLowerCase():void 0;if(env==="ignore"||env==="warn"||env==="throw")return env;return"throw"})();warnedBgConflicts=new Set});function getEffectiveBg(props){if(props.backgroundColor)return props.backgroundColor;if(props.theme)return props.theme.bg;return}function renderBox(_node,buffer,layout,props,nodeState,skipBgFill=!1,inheritedBg,bgOnlyChange=!1){let{scrollOffset,clipBounds}=nodeState,{x,width,height}=layout,y=layout.y-scrollOffset;if(clipBounds){if(y+height<=clipBounds.top||y>=clipBounds.bottom)return;if(clipBounds.left!==void 0&&clipBounds.right!==void 0){if(x+width<=clipBounds.left||x>=clipBounds.right)return}}let effectiveBgStr=getEffectiveBg(props);if(effectiveBgStr&&!skipBgFill){let bg=parseColor(effectiveBgStr);if(clipBounds){let clippedY=Math.max(y,clipBounds.top),clippedHeight=Math.min(y+height,clipBounds.bottom)-clippedY,clippedX=x,clippedWidth=width;if(clipBounds.left!==void 0&&clipBounds.right!==void 0)clippedX=Math.max(x,clipBounds.left),clippedWidth=Math.min(x+width,clipBounds.right)-clippedX;if(clippedHeight>0&&clippedWidth>0)if(bgOnlyChange)buffer.fillBg(clippedX,clippedY,clippedWidth,clippedHeight,bg);else buffer.fill(clippedX,clippedY,clippedWidth,clippedHeight,{bg})}else if(bgOnlyChange)buffer.fillBg(x,y,width,height,bg);else buffer.fill(x,y,width,height,{bg})}if(props.borderStyle)renderBorder(buffer,x,y,width,height,props,clipBounds,inheritedBg)}function renderBorder(buffer,x,y,width,height,props,clipBounds,inheritedBg){let chars=getBorderChars(props.borderStyle??"single"),color=props.borderColor?parseColor(props.borderColor):null,baseBg=props.backgroundColor?parseColor(props.backgroundColor):inheritedBg??null,borderBgStr=props.borderBackgroundColor,borderBgBase=borderBgStr?parseColor(borderBgStr):baseBg,topBorderBgStr=props.borderTopBackgroundColor,bottomBorderBgStr=props.borderBottomBackgroundColor,leftBorderBgStr=props.borderLeftBackgroundColor,rightBorderBgStr=props.borderRightBackgroundColor,topBg=topBorderBgStr?parseColor(topBorderBgStr):borderBgBase,bottomBg=bottomBorderBgStr?parseColor(bottomBorderBgStr):borderBgBase,leftBg=leftBorderBgStr?parseColor(leftBorderBgStr):borderBgBase,rightBg=rightBorderBgStr?parseColor(rightBorderBgStr):borderBgBase,showTop=props.borderTop!==!1,showBottom=props.borderBottom!==!1,showLeft=props.borderLeft!==!1,showRight=props.borderRight!==!1,isRowVisible=(row)=>{if(!clipBounds)return row>=0&&row<buffer.height;return row>=clipBounds.top&&row<clipBounds.bottom&&row<buffer.height},isColVisible=(col)=>{if(clipBounds?.left===void 0||clipBounds.right===void 0)return col>=0&&col<buffer.width;return col>=clipBounds.left&&col<clipBounds.right&&col<buffer.width};if(showTop&&isRowVisible(y)){if(showLeft&&isColVisible(x))buffer.setCell(x,y,{char:chars.topLeft,fg:color,bg:topBg});let hStart=showLeft?x+1:x,hEnd=showRight?x+width-1:x+width;for(let col=hStart;col<hEnd&&col<buffer.width;col++)if(isColVisible(col))buffer.setCell(col,y,{char:chars.horizontal,fg:color,bg:topBg});if(showRight&&x+width-1<buffer.width&&isColVisible(x+width-1))buffer.setCell(x+width-1,y,{char:chars.topRight,fg:color,bg:topBg})}let rightVertical=chars.rightVertical??chars.vertical,sideStart=showTop?y+1:y,sideEnd=showBottom?y+height-1:y+height;for(let row=sideStart;row<sideEnd;row++){if(!isRowVisible(row))continue;if(showLeft&&isColVisible(x))buffer.setCell(x,row,{char:chars.vertical,fg:color,bg:leftBg});if(showRight&&x+width-1<buffer.width&&isColVisible(x+width-1))buffer.setCell(x+width-1,row,{char:rightVertical,fg:color,bg:rightBg})}let bottomHorizontal=chars.bottomHorizontal??chars.horizontal,bottomY=y+height-1;if(showBottom&&isRowVisible(bottomY)){if(showLeft&&isColVisible(x))buffer.setCell(x,bottomY,{char:chars.bottomLeft,fg:color,bg:bottomBg});let bStart=showLeft?x+1:x,bEnd=showRight?x+width-1:x+width;for(let col=bStart;col<bEnd&&col<buffer.width;col++)if(isColVisible(col))buffer.setCell(col,bottomY,{char:bottomHorizontal,fg:color,bg:bottomBg});if(showRight&&x+width-1<buffer.width&&isColVisible(x+width-1))buffer.setCell(x+width-1,bottomY,{char:chars.bottomRight,fg:color,bg:bottomBg})}}function renderOutline(buffer,x,y,width,height,props,clipBounds,inheritedBg){let chars=getBorderChars(props.outlineStyle??"single"),color=props.outlineColor?parseColor(props.outlineColor):null,bg=props.backgroundColor?parseColor(props.backgroundColor):inheritedBg??null,attrs=props.outlineDimColor?{dim:!0}:{},isRowVisible=(row)=>{if(!clipBounds)return row>=0&&row<buffer.height;return row>=clipBounds.top&&row<clipBounds.bottom&&row<buffer.height},isColVisible=(col)=>{if(clipBounds?.left===void 0||clipBounds.right===void 0)return col>=0&&col<buffer.width;return col>=clipBounds.left&&col<clipBounds.right&&col<buffer.width},showTop=props.outlineTop!==!1,showBottom=props.outlineBottom!==!1,showLeft=props.outlineLeft!==!1,showRight=props.outlineRight!==!1;if(showTop&&isRowVisible(y)){if(showLeft&&isColVisible(x))buffer.setCell(x,y,{char:chars.topLeft,fg:color,bg,attrs});for(let col=x+1;col<x+width-1&&col<buffer.width;col++)if(isColVisible(col))buffer.setCell(col,y,{char:chars.horizontal,fg:color,bg,attrs});if(showRight&&x+width-1<buffer.width&&isColVisible(x+width-1))buffer.setCell(x+width-1,y,{char:chars.topRight,fg:color,bg,attrs})}let outlineRightVertical=chars.rightVertical??chars.vertical,sideStart=showTop?y+1:y,sideEnd=showBottom?y+height-1:y+height;for(let row=sideStart;row<sideEnd;row++){if(!isRowVisible(row))continue;if(showLeft&&isColVisible(x))buffer.setCell(x,row,{char:chars.vertical,fg:color,bg,attrs});if(showRight&&x+width-1<buffer.width&&isColVisible(x+width-1))buffer.setCell(x+width-1,row,{char:outlineRightVertical,fg:color,bg,attrs})}let outlineBottomHorizontal=chars.bottomHorizontal??chars.horizontal,bottomY=y+height-1;if(showBottom&&isRowVisible(bottomY)){if(showLeft&&isColVisible(x))buffer.setCell(x,bottomY,{char:chars.bottomLeft,fg:color,bg,attrs});for(let col=x+1;col<x+width-1&&col<buffer.width;col++)if(isColVisible(col))buffer.setCell(col,bottomY,{char:outlineBottomHorizontal,fg:color,bg,attrs});if(showRight&&x+width-1<buffer.width&&isColVisible(x+width-1))buffer.setCell(x+width-1,bottomY,{char:chars.bottomRight,fg:color,bg,attrs})}}function renderScrollIndicators(_node,buffer,layout,props,ss,ctx){let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},indicatorStyle={fg:15,bg:8,attrs:{}},showBorderless=props.overflowIndicator===!0;if(ss.hiddenAbove>0){let indicator=`▲${ss.hiddenAbove}`;if(border.top>0){let contentWidth=layout.width-border.left-border.right,bar=padCenter(indicator,contentWidth),x=layout.x+border.left,y=layout.y,maxCol=x+contentWidth;renderTextLine(buffer,x,y,bar,indicatorStyle,maxCol,void 0,ctx)}else if(showBorderless){let padding=getPadding(props),contentWidth=layout.width-padding.left-padding.right,bar=padCenter(indicator,contentWidth),x=layout.x+padding.left,y=layout.y+padding.top,maxCol=x+contentWidth;renderTextLine(buffer,x,y,bar,indicatorStyle,maxCol,void 0,ctx)}}if(ss.hiddenBelow>0){let indicator=`▼${ss.hiddenBelow}`;if(border.bottom>0){let contentWidth=layout.width-border.left-border.right,bar=padCenter(indicator,contentWidth),x=layout.x+border.left,y=layout.y+layout.height-1,maxCol=x+contentWidth;renderTextLine(buffer,x,y,bar,indicatorStyle,maxCol,void 0,ctx)}else if(showBorderless){let padding=getPadding(props),contentWidth=layout.width-padding.left-padding.right,bar=padCenter(indicator,contentWidth),x=layout.x+padding.left,y=layout.y+layout.height-padding.bottom-1,maxCol=x+contentWidth;renderTextLine(buffer,x,y,bar,indicatorStyle,maxCol,void 0,ctx)}}}function padCenter(text,width){if(width<=0)return"";if(text.length>width)return text.slice(0,width);if(text.length===width)return text;let leftPad=Math.floor((width-text.length)/2),rightPad=width-text.length-leftPad;return" ".repeat(leftPad)+text+" ".repeat(rightPad)}var init_render_box=__esm(()=>{init_helpers();init_render_helpers();init_render_text()});function computeCascade(inputs){let{hasPrevBuffer,contentDirty,stylePropsDirty,layoutChanged,subtreeDirty,childrenDirty,childPositionChanged,ancestorLayoutChanged,ancestorCleared,bgDirty,isTextNode,hasBgColor,absoluteChildMutated,descendantOverflowChanged}=inputs,canSkipEntireSubtree=hasPrevBuffer&&!contentDirty&&!stylePropsDirty&&!layoutChanged&&!subtreeDirty&&!childrenDirty&&!childPositionChanged&&!ancestorLayoutChanged,textPaintDirty=isTextNode&&stylePropsDirty,contentAreaAffected=contentDirty||layoutChanged||childPositionChanged||childrenDirty||bgDirty||textPaintDirty||absoluteChildMutated||descendantOverflowChanged,bgOnlyAffected=bgDirty&&!contentDirty&&!layoutChanged&&!childPositionChanged&&!childrenDirty&&!textPaintDirty&&!absoluteChildMutated&&!descendantOverflowChanged,bgOnlyChange=!1,bgRefillNeeded=hasPrevBuffer&&!contentAreaAffected&&subtreeDirty&&hasBgColor;return{canSkipEntireSubtree,contentAreaAffected,bgRefillNeeded,contentRegionCleared:(hasPrevBuffer||ancestorCleared)&&contentAreaAffected&&!hasBgColor,skipBgFill:hasPrevBuffer&&!ancestorCleared&&!contentAreaAffected&&!bgRefillNeeded,childrenNeedFreshRender:(hasPrevBuffer||ancestorCleared)&&(contentAreaAffected||bgRefillNeeded)&&!0,bgOnlyChange:!1}}function createReactiveSystem({update,notify,unwatched}){return{link,unlink,propagate,checkDirty,shallowPropagate};function link(dep,sub,version){let prevDep=sub.depsTail;if(prevDep!==void 0&&prevDep.dep===dep)return;let nextDep=prevDep!==void 0?prevDep.nextDep:sub.deps;if(nextDep!==void 0&&nextDep.dep===dep){nextDep.version=version,sub.depsTail=nextDep;return}let prevSub=dep.subsTail;if(prevSub!==void 0&&prevSub.version===version&&prevSub.sub===sub)return;let newLink=sub.depsTail=dep.subsTail={version,dep,sub,prevDep,nextDep,prevSub,nextSub:void 0};if(nextDep!==void 0)nextDep.prevDep=newLink;if(prevDep!==void 0)prevDep.nextDep=newLink;else sub.deps=newLink;if(prevSub!==void 0)prevSub.nextSub=newLink;else dep.subs=newLink}function unlink(link2,sub=link2.sub){let{dep,prevDep,nextDep,nextSub,prevSub}=link2;if(nextDep!==void 0)nextDep.prevDep=prevDep;else sub.depsTail=prevDep;if(prevDep!==void 0)prevDep.nextDep=nextDep;else sub.deps=nextDep;if(nextSub!==void 0)nextSub.prevSub=prevSub;else dep.subsTail=prevSub;if(prevSub!==void 0)prevSub.nextSub=nextSub;else if((dep.subs=nextSub)===void 0)unwatched(dep);return nextDep}function propagate(link2){let next=link2.nextSub,stack;top:do{let sub=link2.sub,flags=sub.flags;if(!(flags&60))sub.flags=flags|32;else if(!(flags&12))flags=0;else if(!(flags&4))sub.flags=flags&-9|32;else if(!(flags&48)&&isValidLink(link2,sub))sub.flags=flags|40,flags&=1;else flags=0;if(flags&2)notify(sub);if(flags&1){let subSubs=sub.subs;if(subSubs!==void 0){let nextSub=(link2=subSubs).nextSub;if(nextSub!==void 0)stack={value:next,prev:stack},next=nextSub;continue}}if((link2=next)!==void 0){next=link2.nextSub;continue}while(stack!==void 0)if(link2=stack.value,stack=stack.prev,link2!==void 0){next=link2.nextSub;continue top}break}while(!0)}function checkDirty(link2,sub){let stack,checkDepth=0,dirty=!1;top:do{let dep=link2.dep,flags=dep.flags;if(sub.flags&16)dirty=!0;else if((flags&17)===17){if(update(dep)){let subs=dep.subs;if(subs.nextSub!==void 0)shallowPropagate(subs);dirty=!0}}else if((flags&33)===33){if(link2.nextSub!==void 0||link2.prevSub!==void 0)stack={value:link2,prev:stack};link2=dep.deps,sub=dep,++checkDepth;continue}if(!dirty){let nextDep=link2.nextDep;if(nextDep!==void 0){link2=nextDep;continue}}while(checkDepth--){let firstSub=sub.subs,hasMultipleSubs=firstSub.nextSub!==void 0;if(hasMultipleSubs)link2=stack.value,stack=stack.prev;else link2=firstSub;if(dirty){if(update(sub)){if(hasMultipleSubs)shallowPropagate(firstSub);sub=link2.sub;continue}dirty=!1}else sub.flags&=-33;sub=link2.sub;let nextDep=link2.nextDep;if(nextDep!==void 0){link2=nextDep;continue top}}return dirty}while(!0)}function shallowPropagate(link2){do{let sub=link2.sub,flags=sub.flags;if((flags&48)===32){if(sub.flags=flags|16,(flags&6)===2)notify(sub)}}while((link2=link2.nextSub)!==void 0)}function isValidLink(checkLink,sub){let link2=sub.depsTail;while(link2!==void 0){if(link2===checkLink)return!0;link2=link2.prevDep}return!1}}var init_system=()=>{};function setActiveSub(sub){let prevSub=activeSub;return activeSub=sub,prevSub}function signal(initialValue){return signalOper.bind({currentValue:initialValue,pendingValue:initialValue,subs:void 0,subsTail:void 0,flags:1})}function computed(getter){return computedOper.bind({value:void 0,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:0,getter})}function updateComputed(c){++cycle,c.depsTail=void 0,c.flags=5;let prevSub=setActiveSub(c);try{let oldValue=c.value;return oldValue!==(c.value=c.getter(oldValue))}finally{activeSub=prevSub,c.flags&=-5,purgeDeps(c)}}function updateSignal(s){return s.flags=1,s.currentValue!==(s.currentValue=s.pendingValue)}function run(e){let flags=e.flags;if(flags&16||flags&32&&checkDirty(e.deps,e)){++cycle,e.depsTail=void 0,e.flags=6;let prevSub=setActiveSub(e);try{e.fn()}finally{activeSub=prevSub,e.flags&=-5,purgeDeps(e)}}else e.flags=2}function flush(){try{while(notifyIndex<queuedLength){let effect=queued[notifyIndex];queued[notifyIndex++]=void 0,run(effect)}}finally{while(notifyIndex<queuedLength){let effect=queued[notifyIndex];queued[notifyIndex++]=void 0,effect.flags|=10}notifyIndex=0,queuedLength=0}}function computedOper(){let flags=this.flags;if(flags&16||flags&32&&(checkDirty(this.deps,this)||(this.flags=flags&-33,!1))){if(updateComputed(this)){let subs=this.subs;if(subs!==void 0)shallowPropagate(subs)}}else if(!flags){this.flags=5;let prevSub=setActiveSub(this);try{this.value=this.getter()}finally{activeSub=prevSub,this.flags&=-5}}let sub=activeSub;if(sub!==void 0)link(this,sub,cycle);return this.value}function signalOper(...value){if(value.length){if(this.pendingValue!==(this.pendingValue=value[0])){this.flags=17;let subs=this.subs;if(subs!==void 0){if(propagate(subs),!batchDepth)flush()}}}else{if(this.flags&16){if(updateSignal(this)){let subs=this.subs;if(subs!==void 0)shallowPropagate(subs)}}let sub=activeSub;while(sub!==void 0){if(sub.flags&3){link(this,sub,cycle);break}sub=sub.subs?.sub}return this.currentValue}}function effectScopeOper(){this.depsTail=void 0,this.flags=0,purgeDeps(this);let sub=this.subs;if(sub!==void 0)unlink(sub)}function purgeDeps(sub){let depsTail=sub.depsTail,dep=depsTail!==void 0?depsTail.nextDep:sub.deps;while(dep!==void 0)dep=unlink(dep,sub)}var cycle=0,batchDepth=0,notifyIndex=0,queuedLength=0,activeSub,queued,link,unlink,propagate,checkDirty,shallowPropagate;var init_esm=__esm(()=>{init_system();queued=[],{link,unlink,propagate,checkDirty,shallowPropagate}=createReactiveSystem({update(node){if(node.depsTail!==void 0)return updateComputed(node);else return updateSignal(node)},notify(effect){let insertIndex=queuedLength,firstInsertedIndex=insertIndex;do if(queued[insertIndex++]=effect,effect.flags&=-3,effect=effect.subs?.sub,effect===void 0||!(effect.flags&2))break;while(!0);queuedLength=insertIndex;while(firstInsertedIndex<--insertIndex){let left=queued[firstInsertedIndex];queued[firstInsertedIndex++]=queued[insertIndex],queued[insertIndex]=left}},unwatched(node){if(!(node.flags&1))effectScopeOper.call(node);else if(node.depsTail!==void 0)node.depsTail=void 0,node.flags=17,purgeDeps(node)}})});var init_src3=__esm(()=>{init_esm();init_esm()});function createReactiveNodeState(){let contentDirty=signal(!1),stylePropsDirty=signal(!1),bgDirty=signal(!1),childrenDirty=signal(!1),subtreeDirty=signal(!1),layoutChanged=signal(!1),hasPrevBuffer=signal(!1),childPositionChanged=signal(!1),ancestorLayoutChanged=signal(!1),ancestorCleared=signal(!1),isTextNode=signal(!1),hasBgColor=signal(!1),absoluteChildMutated=signal(!1),descendantOverflowChanged=signal(!1),canSkipEntireSubtree=computed(()=>hasPrevBuffer()&&!contentDirty()&&!stylePropsDirty()&&!layoutChanged()&&!subtreeDirty()&&!childrenDirty()&&!childPositionChanged()&&!ancestorLayoutChanged()),textPaintDirty=computed(()=>isTextNode()&&stylePropsDirty()),contentAreaAffected=computed(()=>contentDirty()||layoutChanged()||childPositionChanged()||childrenDirty()||bgDirty()||textPaintDirty()||absoluteChildMutated()||descendantOverflowChanged()),bgOnlyChange=computed(()=>!1),bgRefillNeeded=computed(()=>hasPrevBuffer()&&!contentAreaAffected()&&subtreeDirty()&&hasBgColor()),contentRegionCleared=computed(()=>(hasPrevBuffer()||ancestorCleared())&&contentAreaAffected()&&!hasBgColor()),skipBgFill=computed(()=>hasPrevBuffer()&&!ancestorCleared()&&!contentAreaAffected()&&!bgRefillNeeded()),childrenNeedFreshRender=computed(()=>(hasPrevBuffer()||ancestorCleared())&&(contentAreaAffected()||bgRefillNeeded())&&!bgOnlyChange());return{contentDirty,stylePropsDirty,bgDirty,childrenDirty,subtreeDirty,layoutChanged,hasPrevBuffer,childPositionChanged,ancestorLayoutChanged,ancestorCleared,isTextNode,hasBgColor,absoluteChildMutated,descendantOverflowChanged,canSkipEntireSubtree,textPaintDirty,contentAreaAffected,bgRefillNeeded,contentRegionCleared,skipBgFill,childrenNeedFreshRender,bgOnlyChange}}function syncToSignals(state,node,ctx){state.contentDirty(isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)),state.stylePropsDirty(isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)),state.bgDirty(isDirty(node.dirtyBits,node.dirtyEpoch,BG_BIT)),state.childrenDirty(isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)),state.subtreeDirty(isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)),state.layoutChanged(ctx.layoutChanged),state.hasPrevBuffer(ctx.hasPrevBuffer),state.childPositionChanged(ctx.childPositionChanged),state.ancestorLayoutChanged(ctx.ancestorLayoutChanged),state.ancestorCleared(ctx.ancestorCleared),state.isTextNode(node.type==="silvery-text"),state.hasBgColor(ctx.hasBgColor),state.absoluteChildMutated(ctx.absoluteChildMutated),state.descendantOverflowChanged(ctx.descendantOverflowChanged)}function readReactiveCascade(state){return{canSkipEntireSubtree:state.canSkipEntireSubtree(),contentAreaAffected:state.contentAreaAffected(),bgRefillNeeded:state.bgRefillNeeded(),contentRegionCleared:state.contentRegionCleared(),skipBgFill:state.skipBgFill(),childrenNeedFreshRender:state.childrenNeedFreshRender(),bgOnlyChange:state.bgOnlyChange()}}function assertReactiveMatchesOracle(state,oracle,nodeId){let fields=["canSkipEntireSubtree","contentAreaAffected","bgRefillNeeded","contentRegionCleared","skipBgFill","childrenNeedFreshRender","bgOnlyChange"],mismatches=[];for(let field of fields){let reactiveValue=state[field](),oracleValue=oracle[field];if(reactiveValue!==oracleValue)mismatches.push(` ${field}: reactive=${reactiveValue}, oracle=${oracleValue}`)}if(mismatches.length>0)throw Error(`ReactiveNodeState mismatch for ${nodeId||"(unnamed)"}:
|
|
70
70
|
${mismatches.join(`
|
|
71
|
-
`)}`)}function getReactiveState(node){let state=nodeStates.get(node);if(!state)state=createReactiveNodeState(),nodeStates.set(node,state);return state}var nodeStates;var init_reactive_node=__esm(()=>{init_src3();nodeStates=new WeakMap});import{createLogger as createLogger7}from"loggily";function renderPhase(root,prevBuffer,ctx){let layout=root.boxRect;if(!layout)throw Error("renderPhase called before layout phase");let instr=resolveInstrumentation(ctx),hasPrevBuffer=prevBuffer&&prevBuffer.width===layout.width&&prevBuffer.height===layout.height;if(instr.enabled)instr.stats._prevBufferNull=prevBuffer==null?1:0,instr.stats._prevBufferDimMismatch=prevBuffer&&!hasPrevBuffer?1:0,instr.stats._hasPrevBuffer=hasPrevBuffer?1:0,instr.stats._layoutW=layout.width,instr.stats._layoutH=layout.height,instr.stats._prevW=prevBuffer?.width??0,instr.stats._prevH=prevBuffer?.height??0;let t0=instr.enabled?performance.now():0,buffer=hasPrevBuffer?prevBuffer.clone():new TerminalBuffer(layout.width,layout.height),tClone=instr.enabled?performance.now()-t0:0;buffer.setSelectableMode(!0);let t1=instr.enabled?performance.now():0;renderNodeToBuffer(root,buffer,{scrollOffset:0,clipBounds:void 0,hasPrevBuffer:!!hasPrevBuffer,ancestorCleared:!1,bufferIsCloned:!!hasPrevBuffer,ancestorLayoutChanged:!1,inheritedBg:{color:null,ancestorRect:null},inheritedFg:null},ctx);let tRender=instr.enabled?performance.now()-t1:0;if(instr.enabled)emitRenderPhaseStats(instr.stats,instr.nodeTrace,instr.nodeTraceEnabled,tClone,tRender);return syncPrevLayout(root),advanceRenderEpoch(),buffer}function syncPrevLayout(root){let stack=[root];while(stack.length>0){let node=stack.pop();node.prevLayout=node.boxRect;let children=node.children;for(let i=children.length-1;i>=0;i--)stack.push(children[i])}}function envTruthy(val){return!!val&&val!=="0"&&val!=="false"}function resolveInstrumentation(ctx){return{enabled:ctx?.instrumentEnabled??_instrumentEnabled,stats:ctx?.stats??_renderPhaseStats,nodeTrace:ctx?.nodeTrace??_nodeTrace,nodeTraceEnabled:ctx?.nodeTraceEnabled??_nodeTraceEnabled}}function getCellDebug(){return globalThis.__silvery_cell_debug}function cellCoversPoint(cellDbg,x,y,width,height){return x<=cellDbg.x&&x+width>cellDbg.x&&y<=cellDbg.y&&y+height>cellDbg.y}function _getNodeDepth(node){let depth=0,n=node.parent;while(n)depth++,n=n.parent;return depth}function emitRenderPhaseStats(stats,nodeTrace,nodeTraceEnabled,tClone,tRender){_renderPhaseCallCount++,stats._callCount=_renderPhaseCallCount;let snap={clone:tClone,render:tRender,...structuredClone(stats)};globalThis.__silvery_content_detail=snap,(globalThis.__silvery_content_all??=[]).push(snap),contentLog.debug?.(`frame ${snap._callCount}: ${snap.nodesRendered}/${snap.nodesVisited} rendered, ${snap.nodesSkipped} skipped (${tClone.toFixed(1)}ms clone, ${tRender.toFixed(1)}ms render)`);for(let key of Object.keys(stats))stats[key]=0;if(stats.cascadeMinDepth=999,stats.cascadeNodes="",stats.scrollClearReason="",stats.normalRepaintReason="",nodeTraceEnabled&&nodeTrace.length>0)(globalThis.__silvery_node_trace??=[]).push([...nodeTrace]),traceLog.debug?.(`${nodeTrace.length} nodes traced`),nodeTrace.length=0}function renderNodeToBuffer(node,buffer,nodeState,ctx){let{scrollOffset,clipBounds,hasPrevBuffer,ancestorCleared,bufferIsCloned,ancestorLayoutChanged=!1}=nodeState,instr=resolveInstrumentation(ctx);if(instr.enabled)instr.stats.nodesVisited++;let layout=node.boxRect;if(!layout)return;if(!node.layoutNode){clearVirtualTextFlags(node);return}if(node.hidden){clearDirtyFlags(node);return}let props=node.props,prevSelectableMode=buffer.getSelectableMode(),userSelect=props.userSelect;if(userSelect==="none")buffer.setSelectableMode(!1);else if(userSelect==="text"||userSelect==="contain")buffer.setSelectableMode(!0);if(props.display==="none"){clearDirtyFlags(node),buffer.setSelectableMode(prevSelectableMode);return}let screenY=layout.y-scrollOffset;if(screenY>=buffer.height||screenY+layout.height<=0){buffer.setSelectableMode(prevSelectableMode);return}let layoutChanged=isCurrentEpoch(node.layoutChangedThisFrame),childPositionChanged=!!(hasPrevBuffer&&!layoutChanged&&hasChildPositionChanged(node)),scrollOffsetChanged=!!(node.scrollState&&node.scrollState.offset!==node.scrollState.prevOffset),canSkipEntireSubtree=hasPrevBuffer&&!isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)&&!isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)&&!layoutChanged&&!isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&!isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)&&!childPositionChanged&&!ancestorLayoutChanged&&!scrollOffsetChanged,_nodeId=instr.enabled?props.id??"":"",_traceThis=instr.enabled&&instr.nodeTraceEnabled&&_nodeId,_cellDbg=getCellDebug(),_coversCellNow=_cellDbg&&cellCoversPoint(_cellDbg,layout.x,screenY,layout.width,layout.height),_coversCellPrev=_cellDbg&&node.prevLayout&&cellCoversPoint(_cellDbg,node.prevLayout.x,node.prevLayout.y-scrollOffset,node.prevLayout.width,node.prevLayout.height);if(canSkipEntireSubtree){if(_cellDbg&&(_coversCellNow||_coversCellPrev)){let id=props.id??node.type,depth=_getNodeDepth(node),prev=node.prevLayout,msg=`SKIP ${id}@${depth} rect=${layout.x},${screenY} ${layout.width}x${layout.height} prev=${prev?`${prev.x},${prev.y-scrollOffset} ${prev.width}x${prev.height}`:"null"} coversNow=${_coversCellNow} coversPrev=${_coversCellPrev}`;_cellDbg.log.push(msg),cellLog.debug?.(msg)}if(instr.enabled){if(instr.stats.nodesSkipped++,_traceThis)instr.nodeTrace.push({id:_nodeId,type:node.type,depth:_getNodeDepth(node),rect:`${layout.x},${layout.y} ${layout.width}x${layout.height}`,prevLayout:node.prevLayout?`${node.prevLayout.x},${node.prevLayout.y} ${node.prevLayout.width}x${node.prevLayout.height}`:"null",hasPrev:hasPrevBuffer,ancestorCleared,flags:"",decision:"SKIPPED",layoutChanged})}clearDirtyFlags(node),buffer.setSelectableMode(prevSelectableMode);return}if(instr.enabled){if(instr.stats.nodesRendered++,!hasPrevBuffer)instr.stats.noPrevBuffer++;if(isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT))instr.stats.flagContentDirty++;if(isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT))instr.stats.flagStylePropsDirty++;if(layoutChanged)instr.stats.flagLayoutChanged++;if(isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT))instr.stats.flagSubtreeDirty++;if(isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT))instr.stats.flagChildrenDirty++;if(childPositionChanged)instr.stats.flagChildPositionChanged++;if(ancestorLayoutChanged)instr.stats.flagAncestorLayoutChanged++}let nodeTheme=props.theme;if(nodeTheme)pushContextTheme(nodeTheme);try{let isScrollContainer=props.overflow==="scroll"&&node.scrollState,{absoluteChildMutated,descendantOverflowChanged}=buildCascadeInputs(node,hasPrevBuffer),cascadeInputs={hasPrevBuffer,contentDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT),stylePropsDirty:isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT),layoutChanged,subtreeDirty:isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT),childrenDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT),childPositionChanged,ancestorLayoutChanged,ancestorCleared,bgDirty:isDirty(node.dirtyBits,node.dirtyEpoch,BG_BIT),isTextNode:node.type==="silvery-text",hasBgColor:!!getEffectiveBg(props),absoluteChildMutated,descendantOverflowChanged},cascade;if(_reactiveEnabled){let reactiveState=getReactiveState(node);if(syncToSignals(reactiveState,node,{hasPrevBuffer,layoutChanged,childPositionChanged,ancestorLayoutChanged,ancestorCleared,absoluteChildMutated,descendantOverflowChanged,hasBgColor:cascadeInputs.hasBgColor}),cascade=readReactiveCascade(reactiveState),_reactiveVerifyEnabled)assertReactiveMatchesOracle(reactiveState,computeCascade(cascadeInputs),props.id??node.type)}else cascade=computeCascade(cascadeInputs);if(cascade.bgOnlyChange&&hasDescendantWithBg(node)){let childrenNeedFreshRender2=(hasPrevBuffer||ancestorCleared)&&(cascade.contentAreaAffected||cascade.bgRefillNeeded);cascade={...cascade,bgOnlyChange:!1,childrenNeedFreshRender:childrenNeedFreshRender2}}let{contentRegionCleared,skipBgFill,childrenNeedFreshRender}=cascade;if(instr.enabled||_cellDbg&&(_coversCellNow||_coversCellPrev))traceRenderDecision(node,props,layout,screenY,scrollOffset,hasPrevBuffer,ancestorCleared,layoutChanged,childPositionChanged,cascade,_nodeId,_traceThis,_cellDbg,_coversCellNow,_coversCellPrev,instr.enabled,instr.stats,instr.nodeTrace);let useTextStyleFastPath=!1;executeRegionClearing(node,buffer,layout,scrollOffset,clipBounds,bufferIsCloned,layoutChanged,useTextStyleFastPath?!1:contentRegionCleared,descendantOverflowChanged,instr.enabled,instr.stats,nodeState.inheritedBg);let needsOwnRepaint=!hasPrevBuffer||ancestorCleared||ancestorLayoutChanged||cascade.contentAreaAffected||isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)||cascade.bgRefillNeeded,boxInheritedBg=node.type==="silvery-box"&&!getEffectiveBg(props)?nodeState.inheritedBg.color:void 0;if(needsOwnRepaint)renderOwnContent(node,buffer,layout,props,nodeState,skipBgFill,instr.enabled,instr.stats,ctx,cascade.bgOnlyChange,useTextStyleFastPath);let effectiveBg=getEffectiveBg(props),childInheritedBg=effectiveBg?{color:parseColor(effectiveBg),ancestorRect:node.boxRect}:nodeTheme?{color:parseColor(nodeTheme.bg),ancestorRect:node.boxRect}:nodeState.inheritedBg,childInheritedFg=props.color?parseColor(props.color):nodeTheme?parseColor(nodeTheme.fg):nodeState.inheritedFg,childState={...nodeState,inheritedBg:childInheritedBg,inheritedFg:childInheritedFg};if(isScrollContainer)renderScrollContainerChildren(node,buffer,props,childState,contentRegionCleared,childrenNeedFreshRender,ctx),renderScrollIndicators(node,buffer,layout,props,node.scrollState,ctx);else renderNormalChildren(node,buffer,props,childState,childPositionChanged,contentRegionCleared,childrenNeedFreshRender,ctx);if(node.type==="silvery-box"&&props.outlineStyle){let{x,width,height}=layout,y=layout.y-scrollOffset;renderOutline(buffer,x,y,width,height,props,clipBounds,boxInheritedBg)}clearNodeDirtyFlags(node)}finally{if(nodeTheme)popContextTheme();buffer.setSelectableMode(prevSelectableMode)}}function buildCascadeInputs(node,hasPrevBuffer){if(!hasPrevBuffer||!isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)||node.children===void 0)return{absoluteChildMutated:!1,descendantOverflowChanged:!1};return{absoluteChildMutated:isDirty(node.dirtyBits,node.dirtyEpoch,ABS_CHILD_BIT),descendantOverflowChanged:isDirty(node.dirtyBits,node.dirtyEpoch,DESC_OVERFLOW_BIT)}}function traceRenderDecision(node,props,layout,screenY,scrollOffset,hasPrevBuffer,ancestorCleared,layoutChanged,childPositionChanged,cascade,_nodeId,_traceThis,_cellDbg,_coversCellNow,_coversCellPrev,instrumentEnabled,stats,nodeTrace){let{contentAreaAffected,contentRegionCleared,skipBgFill,childrenNeedFreshRender}=cascade;if(instrumentEnabled){if(_traceThis){let flagStr=[isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)&&"C",isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)&&"P",isDirty(node.dirtyBits,node.dirtyEpoch,BG_BIT)&&"B",isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&"S",isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)&&"Ch",childPositionChanged&&"CP"].filter(Boolean).join(","),childHasPrev_=isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)||childPositionChanged||childrenNeedFreshRender?!1:hasPrevBuffer,childAncestorCleared_=contentRegionCleared||ancestorCleared&&!getEffectiveBg(props);nodeTrace.push({id:_nodeId,type:node.type,depth:_getNodeDepth(node),rect:`${layout.x},${layout.y} ${layout.width}x${layout.height}`,prevLayout:node.prevLayout?`${node.prevLayout.x},${node.prevLayout.y} ${node.prevLayout.width}x${node.prevLayout.height}`:"null",hasPrev:hasPrevBuffer,ancestorCleared,flags:flagStr,decision:"RENDER",layoutChanged,contentAreaAffected,contentRegionCleared,childrenNeedFreshRender,childHasPrev:childHasPrev_,childAncestorCleared:childAncestorCleared_,skipBgFill,bgColor:props.backgroundColor})}if(childrenNeedFreshRender&&node.children.length>0){let depth=_getNodeDepth(node);if(depth<stats.cascadeMinDepth)stats.cascadeMinDepth=depth;let id=node.props.id??node.type,flags=[isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)&&"C",isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)&&"P",isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)&&"Ch",layoutChanged&&"L",childPositionChanged&&"CP"].filter(Boolean).join(""),entry=`${id}@${depth}[${flags}:${node.children.length}ch]`;stats.cascadeNodes+=(stats.cascadeNodes?" ":"")+entry}}if(_cellDbg&&(_coversCellNow||_coversCellPrev)){let id=props.id??node.type,depth=_getNodeDepth(node),prev=node.prevLayout,flags=[isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)&&"C",isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)&&"P",layoutChanged&&"L",isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&"S",isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)&&"Ch",childPositionChanged&&"CP",isDirty(node.dirtyBits,node.dirtyEpoch,BG_BIT)&&"B"].filter(Boolean).join(","),msg=`RENDER ${id}@${depth} rect=${layout.x},${screenY} ${layout.width}x${layout.height} prev=${prev?`${prev.x},${prev.y-scrollOffset} ${prev.width}x${prev.height}`:"null"} flags=[${flags}] hasPrev=${hasPrevBuffer} ancClr=${ancestorCleared} caa=${contentAreaAffected} prc=${contentRegionCleared} prm=${childrenNeedFreshRender} coversNow=${_coversCellNow} coversPrev=${_coversCellPrev} bg=${props.backgroundColor??"none"}`;_cellDbg.log.push(msg),cellLog.debug?.(msg)}}function executeRegionClearing(node,buffer,layout,scrollOffset,clipBounds,bufferIsCloned,layoutChanged,contentRegionCleared,descendantOverflowChanged,instrumentEnabled,stats,threadedInheritedBg){if(contentRegionCleared){if(instrumentEnabled)stats.clearOps++;clearNodeRegion(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,threadedInheritedBg)}else if(bufferIsCloned&&layoutChanged&&node.prevLayout)clearExcessArea(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,threadedInheritedBg);if(descendantOverflowChanged)clearDescendantOverflowRegions(node,buffer,layout,scrollOffset,clipBounds,threadedInheritedBg)}function renderOwnContent(node,buffer,layout,props,nodeState,skipBgFill,instrumentEnabled,stats,ctx,bgOnlyChange=!1,useTextStyleFastPath=!1){let boxInheritedBg=node.type==="silvery-box"&&!getEffectiveBg(props)?nodeState.inheritedBg.color:void 0;if(node.type==="silvery-box"){if(instrumentEnabled)stats.boxNodes++;renderBox(node,buffer,layout,props,nodeState,skipBgFill,boxInheritedBg,bgOnlyChange)}else if(node.type==="silvery-text"){if(instrumentEnabled)stats.textNodes++;let textInheritedBg=nodeState.inheritedBg.color,textInheritedFg=nodeState.inheritedFg;if(useTextStyleFastPath){let style2=getTextStyle(props);if(style2.fg===null&&textInheritedFg!==void 0)style2.fg=textInheritedFg;let effectiveBg=style2.bg!==null?style2.bg:textInheritedBg??null,{x,width,height}=layout,y=layout.y-nodeState.scrollOffset;buffer.restyleRegion(x,y,width,height,{fg:style2.fg,bg:effectiveBg,underlineColor:style2.underlineColor??null,attrs:style2.attrs})}else renderText(node,buffer,layout,props,nodeState,textInheritedBg,textInheritedFg,ctx)}return boxInheritedBg}function planScrollRender(inputs){let{scrollOffsetChanged,visibleRangeChanged,hasStickyChildren,childrenNeedFreshRender,childrenDirty,hasPrevBuffer,ancestorCleared,contentRegionCleared,scrollBg}=inputs,scrollOnly=hasPrevBuffer&&scrollOffsetChanged&&!childrenDirty&&!childrenNeedFreshRender&&!hasStickyChildren&&!visibleRangeChanged,needsViewportClear=hasPrevBuffer&&!scrollOnly&&(scrollOffsetChanged||childrenDirty||childrenNeedFreshRender||visibleRangeChanged),stickyForceRefresh=hasStickyChildren&&hasPrevBuffer&&!needsViewportClear,reasons=[];if(scrollOnly)reasons.push("SHIFT");if(needsViewportClear){if(scrollOffsetChanged)reasons.push("scrollOffset");if(childrenDirty)reasons.push("childrenDirty");if(childrenNeedFreshRender)reasons.push("childrenNeedFreshRender");if(visibleRangeChanged)reasons.push("visibleRangeChanged")}if(stickyForceRefresh)reasons.push("stickyForceRefresh");return{tier:scrollOnly?"shift":needsViewportClear?"clear":"subtree-only",clearBg:scrollOnly||needsViewportClear?scrollBg:null,childHasPrev:needsViewportClear?!1:hasPrevBuffer,childAncestorCleared:needsViewportClear?!0:ancestorCleared||contentRegionCleared,stickyForceRefresh,reasons}}function renderScrollContainerChildren(node,buffer,props,nodeState,contentRegionCleared=!1,childrenNeedFreshRender=!1,ctx){let{clipBounds,hasPrevBuffer,ancestorCleared,bufferIsCloned,ancestorLayoutChanged,inheritedBg,inheritedFg}=nodeState,instr=resolveInstrumentation(ctx),layout=node.boxRect,ss=node.scrollState;if(!layout||!ss)return;let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),childClipBounds=computeChildClipBounds(layout,props,clipBounds,0,!1,!0),scrollOffsetChanged=ss.offset!==ss.prevOffset,hasStickyChildren=!!(ss.stickyChildren&&ss.stickyChildren.length>0),visibleRangeChanged=ss.firstVisibleChild!==ss.prevFirstVisibleChild||ss.lastVisibleChild!==ss.prevLastVisibleChild,clearY=childClipBounds.top,clearHeight=childClipBounds.bottom-childClipBounds.top,contentX=layout.x+border.left+padding.left,contentWidth=layout.width-border.left-border.right-padding.left-padding.right,scrollBg=scrollOffsetChanged||isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)||childrenNeedFreshRender||visibleRangeChanged?getEffectiveBg(props)?parseColor(getEffectiveBg(props)):inheritedBg.color:null,plan=planScrollRender({scrollOffsetChanged,visibleRangeChanged,hasStickyChildren,childrenNeedFreshRender,childrenDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT),hasPrevBuffer,ancestorCleared,contentRegionCleared,scrollBg}),{tier,stickyForceRefresh}=plan,defaultChildHasPrev=plan.childHasPrev,defaultChildAncestorCleared=plan.childAncestorCleared;if(instr.enabled){if(instr.stats.scrollContainerCount++,tier!=="subtree-only"||stickyForceRefresh){instr.stats.scrollViewportCleared++;let reasons=[...plan.reasons];if(scrollOffsetChanged)reasons.push(`scrollOffset(${ss.prevOffset}->${ss.offset})`);reasons.push(`vp=${ss.viewportHeight} content=${ss.contentHeight} vis=${ss.firstVisibleChild}-${ss.lastVisibleChild}`),instr.stats.scrollClearReason=reasons.join("+")}}if(process?.env?.SILVERY_STRICT&&tier==="shift"&&hasStickyChildren)throw Error(`[SILVERY_STRICT] Scroll Tier 1 (buffer shift) activated with sticky children (node: ${props.id??node.type}, stickyCount: ${ss.stickyChildren?.length??0})`);let scrollDelta=ss.offset-(ss.prevOffset??ss.offset);if(tier==="shift"&&clearHeight>0){if(props.overflowIndicator===!0&&!border.top&&!border.bottom){let topIndicatorY=clearY,bottomIndicatorY=clearY+clearHeight-1;if(ss.prevOffset!=null&&ss.prevOffset>0)buffer.fill(contentX,topIndicatorY,contentWidth,1,{char:" ",bg:plan.clearBg});buffer.fill(contentX,bottomIndicatorY,contentWidth,1,{char:" ",bg:plan.clearBg})}buffer.scrollRegion(contentX,clearY,contentWidth,clearHeight,scrollDelta,{char:" ",bg:plan.clearBg})}if(tier==="clear"&&clearHeight>0)buffer.fill(contentX,clearY,contentWidth,clearHeight,{char:" ",bg:plan.clearBg});if(stickyForceRefresh&&clearHeight>0)buffer.fill(contentX,clearY,contentWidth,clearHeight,{char:" ",bg:null});let childAncestorLayoutChanged=isCurrentEpoch(node.layoutChangedThisFrame)||!!ancestorLayoutChanged,prevVisTop=ss.prevOffset??ss.offset,prevVisBottom=prevVisTop+ss.viewportHeight;for(let i=0;i<node.children.length;i++){let child=node.children[i];if(!child)continue;if(child.props.position==="sticky")continue;if(i<ss.firstVisibleChild||i>ss.lastVisibleChild)continue;let thisChildHasPrev=defaultChildHasPrev,thisChildAncestorCleared=defaultChildAncestorCleared;if(tier==="shift"){let childRect=child.boxRect;if(childRect){let childTop=childRect.y-layout.y-border.top-padding.top,childBottom=childTop+childRect.height,wasFullyVisible=childTop>=prevVisTop&&childBottom<=prevVisBottom;thisChildHasPrev=wasFullyVisible,thisChildAncestorCleared=wasFullyVisible?ancestorCleared||contentRegionCleared:!0}}if(stickyForceRefresh&&thisChildHasPrev)thisChildHasPrev=!1,thisChildAncestorCleared=!1;if(canSkipChildSubtree(child,thisChildHasPrev,childAncestorLayoutChanged))continue;renderNodeToBuffer(child,buffer,{scrollOffset:ss.offset,clipBounds:childClipBounds,hasPrevBuffer:thisChildHasPrev,ancestorCleared:thisChildAncestorCleared,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}if(ss.stickyChildren)for(let sticky of ss.stickyChildren){let child=node.children[sticky.index];if(!child?.boxRect)continue;let stickyScrollOffset=sticky.naturalTop-sticky.renderOffset;renderNodeToBuffer(child,buffer,{scrollOffset:stickyScrollOffset,clipBounds:childClipBounds,hasPrevBuffer:!1,ancestorCleared:!1,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}}function renderNormalChildren(node,buffer,props,nodeState,childPositionChanged=!1,contentRegionCleared=!1,childrenNeedFreshRender=!1,ctx){let{scrollOffset,clipBounds,hasPrevBuffer,ancestorCleared,bufferIsCloned,ancestorLayoutChanged,inheritedBg,inheritedFg}=nodeState,instr=resolveInstrumentation(ctx),layout=node.boxRect;if(!layout)return;let clipX=(props.overflowX??props.overflow)==="hidden",clipY=(props.overflowY??props.overflow)==="hidden",effectiveClipBounds=clipX||clipY?computeChildClipBounds(layout,props,clipBounds,scrollOffset,clipX,clipY):clipBounds,hasStickyChildren=!!(node.stickyChildren&&node.stickyChildren.length>0),stickyForceRefresh=hasStickyChildren&&hasPrevBuffer;if(stickyForceRefresh){let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),clearX=layout.x+border.left+padding.left,clearY=layout.y-scrollOffset+border.top+padding.top,clearW=layout.width-border.left-border.right-padding.left-padding.right,clearH=layout.height-border.top-border.bottom-padding.top-padding.bottom;if(clipBounds){let{top:clipTop,bottom:clipBottom}=clipBounds;if(clearY<clipTop)clearH-=clipTop-clearY,clearY=clipTop;if(clearY+clearH>clipBottom)clearH=clipBottom-clearY;if(clipBounds.left!==void 0&&clearX<clipBounds.left)clearW-=clipBounds.left-clearX,clearX=clipBounds.left;if(clipBounds.right!==void 0&&clearX+clearW>clipBounds.right)clearW=clipBounds.right-clearX}if(clearW>0&&clearH>0)buffer.fill(clearX,clearY,clearW,clearH,{char:" ",bg:null})}let childrenNeedRepaint=isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)||childPositionChanged||childrenNeedFreshRender;if(instr.enabled&&childrenNeedRepaint&&hasPrevBuffer){instr.stats.normalChildrenRepaint++;let reasons=[];if(isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT))reasons.push("childrenDirty");if(childPositionChanged)reasons.push("childPositionChanged");if(childrenNeedFreshRender)reasons.push("childrenNeedFreshRender");instr.stats.normalRepaintReason=reasons.join("+")}let childHasPrev=childrenNeedRepaint?!1:hasPrevBuffer,childAncestorCleared=contentRegionCleared||ancestorCleared&&!getEffectiveBg(props),childAncestorLayoutChanged=isCurrentEpoch(node.layoutChangedThisFrame)||!!ancestorLayoutChanged;if(stickyForceRefresh)childHasPrev=!1,childAncestorCleared=!1;let hasAbsoluteChildren=!1;for(let child of node.children){let childProps=child.props;if(childProps.position==="absolute"){hasAbsoluteChildren=!0;continue}if(hasStickyChildren&&childProps.position==="sticky")continue;if(canSkipChildSubtree(child,childHasPrev,childAncestorLayoutChanged))continue;renderNodeToBuffer(child,buffer,{scrollOffset,clipBounds:effectiveClipBounds,hasPrevBuffer:childHasPrev,ancestorCleared:childAncestorCleared,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}if(node.stickyChildren)for(let sticky of node.stickyChildren){let child=node.children[sticky.index];if(!child?.boxRect)continue;let stickyScrollOffset=sticky.naturalTop-sticky.renderOffset;renderNodeToBuffer(child,buffer,{scrollOffset:stickyScrollOffset,clipBounds:effectiveClipBounds,hasPrevBuffer:!1,ancestorCleared:!1,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}if(hasAbsoluteChildren)for(let child of node.children){if(child.props.position!=="absolute")continue;renderNodeToBuffer(child,buffer,{scrollOffset,clipBounds:effectiveClipBounds,hasPrevBuffer:!1,ancestorCleared:!1,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}}function canSkipChildSubtree(child,childHasPrev,childAncestorLayoutChanged){if(!childHasPrev)return!1;if(childAncestorLayoutChanged)return!1;if(isDirty(child.dirtyBits,child.dirtyEpoch,SUBTREE_BIT))return!1;if(isCurrentEpoch(child.layoutChangedThisFrame))return!1;if(child.scrollState&&child.scrollState.offset!==child.scrollState.prevOffset)return!1;return!0}function clearNodeDirtyFlags(node){node.dirtyBits=0,node.dirtyEpoch=INITIAL_EPOCH,node.layoutChangedThisFrame=INITIAL_EPOCH}function clearDirtyFlags(node){clearNodeDirtyFlags(node);for(let child of node.children)if(child.layoutNode)clearDirtyFlags(child);else clearVirtualTextFlags(child)}function clearVirtualTextFlags(node){clearNodeDirtyFlags(node);for(let child of node.children)clearVirtualTextFlags(child)}function hasChildPositionChanged(node){for(let child of node.children)if(child.boxRect&&child.prevLayout){if(child.boxRect.x!==child.prevLayout.x||child.boxRect.y!==child.prevLayout.y)return!0}return!1}function hasDescendantWithBg(node){for(let child of node.children){if(getEffectiveBg(child.props))return!0;if(child.children.length>0&&hasDescendantWithBg(child))return!0}return!1}function computeChildClipBounds(layout,props,parentClip,scrollOffset=0,horizontal=!0,vertical=!0){let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),adjustedY=layout.y-scrollOffset,nodeClip=vertical?{top:adjustedY+border.top+padding.top,bottom:adjustedY+layout.height-border.bottom-padding.bottom}:{top:-1/0,bottom:1/0};if(horizontal)nodeClip.left=layout.x+border.left+padding.left,nodeClip.right=layout.x+layout.width-border.right-padding.right;if(!parentClip)return nodeClip;let result={top:vertical?Math.max(parentClip.top,nodeClip.top):parentClip.top,bottom:vertical?Math.min(parentClip.bottom,nodeClip.bottom):parentClip.bottom};if(horizontal&&nodeClip.left!==void 0&&nodeClip.right!==void 0)result.left=Math.max(parentClip.left??0,nodeClip.left),result.right=Math.min(parentClip.right??1/0,nodeClip.right);else if(parentClip.left!==void 0&&parentClip.right!==void 0)result.left=parentClip.left,result.right=parentClip.right;return result}function clearDescendantOverflowRegions(node,buffer,layout,scrollOffset,clipBounds,threadedInheritedBg){let clearBg=threadedInheritedBg.color,nodeRight=layout.x+layout.width,nodeBottom=layout.y-scrollOffset+layout.height,nodeLeft=layout.x,nodeTop=layout.y-scrollOffset;_clearDescendantOverflow(node.children,buffer,nodeLeft,nodeTop,nodeRight,nodeBottom,scrollOffset,clipBounds,clearBg)}function _clearDescendantOverflow(children,buffer,nodeLeft,nodeTop,nodeRight,nodeBottom,scrollOffset,clipBounds,clearBg){for(let child of children){if(child.prevLayout&&isCurrentEpoch(child.layoutChangedThisFrame)){let prev=child.prevLayout,prevRight=prev.x+prev.width,prevBottom=prev.y-scrollOffset+prev.height,prevTop=prev.y-scrollOffset;if(prevRight>nodeRight){let overflowX=nodeRight,overflowWidth=Math.min(prevRight,buffer.width)-overflowX,overflowTop=Math.max(prevTop,clipBounds?.top??0),overflowBottom=Math.min(prevBottom,clipBounds?.bottom??buffer.height);if(overflowWidth>0&&overflowBottom>overflowTop)buffer.fill(overflowX,overflowTop,overflowWidth,overflowBottom-overflowTop,{char:" ",bg:clearBg})}if(prevBottom>nodeBottom){let overflowTop=Math.max(nodeBottom,clipBounds?.top??0),overflowBottom=Math.min(prevBottom,clipBounds?.bottom??buffer.height),overflowX=Math.max(prev.x,clipBounds?.left??0),overflowWidth=Math.min(prevRight,clipBounds?.right??buffer.width)-overflowX;if(overflowWidth>0&&overflowBottom>overflowTop)buffer.fill(overflowX,overflowTop,overflowWidth,overflowBottom-overflowTop,{char:" ",bg:clearBg})}if(prev.x<nodeLeft){let overflowX=Math.max(prev.x,0),overflowWidth=Math.min(nodeLeft,buffer.width)-overflowX,overflowTop=Math.max(prevTop,clipBounds?.top??0),overflowBottom=Math.min(prevBottom,clipBounds?.bottom??buffer.height);if(overflowWidth>0&&overflowBottom>overflowTop)buffer.fill(overflowX,overflowTop,overflowWidth,overflowBottom-overflowTop,{char:" ",bg:clearBg})}if(prevTop<nodeTop){let overflowTop=Math.max(prevTop,clipBounds?.top??0),overflowBottom=Math.min(nodeTop,clipBounds?.bottom??buffer.height),overflowX=Math.max(prev.x,clipBounds?.left??0),overflowWidth=Math.min(prevRight,clipBounds?.right??buffer.width)-overflowX;if(overflowWidth>0&&overflowBottom>overflowTop)buffer.fill(overflowX,overflowTop,overflowWidth,overflowBottom-overflowTop,{char:" ",bg:clearBg})}}if(isDirty(child.dirtyBits,child.dirtyEpoch,SUBTREE_BIT)&&child.children!==void 0)_clearDescendantOverflow(child.children,buffer,nodeLeft,nodeTop,nodeRight,nodeBottom,scrollOffset,clipBounds,clearBg)}}function clearNodeRegion(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,threadedInheritedBg){let inherited=threadedInheritedBg,clearBg=inherited.color,screenY=layout.y-scrollOffset,parentRect=node.parent?.boxRect,parentBottom=parentRect?parentRect.y-scrollOffset+parentRect.height:void 0,clearY=clipBounds?Math.max(screenY,clipBounds.top):screenY,clearBottom=clipBounds?Math.min(screenY+layout.height,clipBounds.bottom):screenY+layout.height;if(parentBottom!==void 0)clearBottom=Math.min(clearBottom,parentBottom);let{x:clearX,width:clearWidth}=layout;if(clipBounds?.left!==void 0&&clipBounds.right!==void 0){if(clearX<clipBounds.left)clearWidth-=clipBounds.left-clearX,clearX=clipBounds.left;if(clearX+clearWidth>clipBounds.right)clearWidth=Math.max(0,clipBounds.right-clearX)}if(inherited.ancestorRect){let ancestorRight=inherited.ancestorRect.x+inherited.ancestorRect.width,ancestorLeft=inherited.ancestorRect.x;if(clearX<ancestorLeft)clearWidth-=ancestorLeft-clearX,clearX=ancestorLeft;if(clearX+clearWidth>ancestorRight)clearWidth=Math.max(0,ancestorRight-clearX)}let clearHeight=clearBottom-clearY;if(clearHeight>0&&clearWidth>0){let _cellDbg2=getCellDebug();if(_cellDbg2&&cellCoversPoint(_cellDbg2,clearX,clearY,clearWidth,clearHeight)){let msg=`CLEAR_REGION ${node.props.id??node.type} fill=${clearX},${clearY} ${clearWidth}x${clearHeight} bg=${String(clearBg)} COVERS TARGET`;_cellDbg2.log.push(msg),cellLog.debug?.(msg)}buffer.fill(clearX,clearY,clearWidth,clearHeight,{char:" ",bg:clearBg})}clearExcessArea(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,inherited)}function clearExcessArea(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,inherited){if(!layoutChanged||!node.prevLayout)return;let prev=node.prevLayout,_cellDbg3=getCellDebug(),_prevCoversCell3=_cellDbg3&&cellCoversPoint(_cellDbg3,prev.x,prev.y-scrollOffset,prev.width,prev.height);if(prev.width<=layout.width&&prev.height<=layout.height){if(_cellDbg3&&_prevCoversCell3){let msg=`EXCESS_SKIP_NO_SHRINK ${node.props.id??node.type} prev=${prev.x},${prev.y-scrollOffset} ${prev.width}x${prev.height} now=${layout.x},${layout.y-scrollOffset} ${layout.width}x${layout.height}`;_cellDbg3.log.push(msg),cellLog.debug?.(msg)}return}if(prev.x!==layout.x||prev.y!==layout.y){if(_cellDbg3&&_prevCoversCell3){let msg=`EXCESS_SKIP_MOVED ${node.props.id??node.type} prev=${prev.x},${prev.y-scrollOffset} ${prev.width}x${prev.height} now=${layout.x},${layout.y-scrollOffset} ${layout.width}x${layout.height} (dx=${layout.x-prev.x} dy=${layout.y-prev.y})`;_cellDbg3.log.push(msg),cellLog.debug?.(msg)}return}let clearBg=inherited.color,screenY=layout.y-scrollOffset,prevScreenY=prev.y-scrollOffset,clipRect=inherited.ancestorRect??node.parent?.boxRect;if(!clipRect)return;let clipRectBottom=clipRect.y-scrollOffset+clipRect.height,clipRectRight=clipRect.x+clipRect.width,parent=node.parent;if(parent?.boxRect){let parentProps=parent.props,border=getBorderSize(parentProps),padding=getPadding(parentProps),parentRight=parent.boxRect.x+parent.boxRect.width-border.right-padding.right,parentBottom=parent.boxRect.y-scrollOffset+parent.boxRect.height-border.bottom-padding.bottom;clipRectRight=Math.min(clipRectRight,parentRight),clipRectBottom=Math.min(clipRectBottom,parentBottom)}if(prev.width>layout.width){let excessX=layout.x+layout.width,excessWidth=prev.width-layout.width;if(excessX+excessWidth>clipRectRight)excessWidth=Math.max(0,clipRectRight-excessX);if(excessWidth>0)clippedFill(buffer,excessX,excessWidth,prevScreenY,prevScreenY+prev.height,clipBounds,clipRectBottom,clearBg)}if(prev.height>layout.height){let bottomWidth=prev.width;if(layout.x+bottomWidth>clipRectRight)bottomWidth=Math.max(0,clipRectRight-layout.x);clippedFill(buffer,layout.x,bottomWidth,screenY+layout.height,prevScreenY+prev.height,clipBounds,clipRectBottom,clearBg)}}function clippedFill(buffer,x,width,top,bottom,clipBounds,outerBottom,bg){let clippedTop=clipBounds?Math.max(top,clipBounds.top):top,clippedBottom=Math.min(clipBounds?Math.min(bottom,clipBounds.bottom):bottom,outerBottom),clippedX=x,clippedWidth=width;if(clipBounds?.left!==void 0&&clipBounds.right!==void 0){if(clippedX<clipBounds.left)clippedWidth-=clipBounds.left-clippedX,clippedX=clipBounds.left;if(clippedX+clippedWidth>clipBounds.right)clippedWidth=Math.max(0,clipBounds.right-clippedX)}let height=clippedBottom-clippedTop;if(height>0&&clippedWidth>0)buffer.fill(clippedX,clippedTop,clippedWidth,height,{char:" ",bg})}var contentLog,traceLog,cellLog,_instrumentEnabled,_renderPhaseStats,_renderPhaseCallCount=0,_nodeTrace,_nodeTraceEnabled,_reactiveEnabled,_reactiveVerifyEnabled;var init_render_phase=__esm(()=>{init_buffer();init_helpers();init_render_box();init_render_helpers();init_render_text();init_state();init_reactive_node();contentLog=createLogger7("silvery:content"),traceLog=createLogger7("silvery:content:trace"),cellLog=createLogger7("silvery:content:cell");_instrumentEnabled=typeof process<"u"&&(envTruthy(process.env?.SILVERY_STRICT)||envTruthy(process.env?.SILVERY_INSTRUMENT)),_renderPhaseStats={nodesVisited:0,nodesRendered:0,nodesSkipped:0,textNodes:0,boxNodes:0,clearOps:0,noPrevBuffer:0,flagContentDirty:0,flagStylePropsDirty:0,flagLayoutChanged:0,flagSubtreeDirty:0,flagChildrenDirty:0,flagChildPositionChanged:0,flagAncestorLayoutChanged:0,scrollContainerCount:0,scrollViewportCleared:0,scrollClearReason:"",normalChildrenRepaint:0,normalRepaintReason:"",cascadeMinDepth:999,cascadeNodes:"",_prevBufferNull:0,_prevBufferDimMismatch:0,_hasPrevBuffer:0,_layoutW:0,_layoutH:0,_prevW:0,_prevH:0,_callCount:0},_nodeTrace=[],_nodeTraceEnabled=typeof process<"u"&&envTruthy(process.env?.SILVERY_STRICT),_reactiveEnabled=typeof process>"u"||process.env?.SILVERY_REACTIVE!=="0",_reactiveVerifyEnabled=_reactiveEnabled&&typeof process<"u"&&envTruthy(process.env?.SILVERY_STRICT)});import{createLogger as createLogger8}from"loggily";function createAg(root,options){let measurer=options?.measurer,ctx=measurer?{measurer}:void 0,_prevBuffer=null,hasScroll=!1,hasSticky=!1;function doLayout(cols,rows,opts){let __stack6=[];try{let prevRootLayout=root.boxRect;let dimensionsChanged=prevRootLayout&&(prevRootLayout.width!==cols||prevRootLayout.height!==rows);if(!dimensionsChanged&&!hasLayoutDirty()&&!hasScrollDirty())return log7.debug?.("layout: skipped (no layoutDirty, no scrollDirty, dimensions unchanged)"),{tMeasure:0,tLayout:0,tScroll:0,tScrollRect:0,tNotify:0};const render=__using(__stack6,baseLog.span("pipeline",{width:cols,height:rows}),0);let tMeasure;{let __stack=[];try{const _m=__using(__stack,render.span("measure"),0);let t=performance.now();measurePhase(root,ctx);tMeasure=performance.now()-t;log7.debug?.(`measure: ${tMeasure.toFixed(2)}ms`)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}}let tLayout;{let __stack2=[];try{const _l=__using(__stack2,render.span("layout"),0);let t=performance.now();layoutPhase(root,cols,rows);tLayout=performance.now()-t;log7.debug?.(`layout: ${tLayout.toFixed(2)}ms`)}catch(_catch2){var _err2=_catch2,_hasErr2=1}finally{__callDispose(__stack2,_err2,_hasErr2)}}if(!hasScroll||!hasSticky){let features=detectPipelineFeatures(root);if(features.hasScroll)hasScroll=!0;if(features.hasSticky)hasSticky=!0}let tScroll;if(hasScroll){let __stack3=[];try{const _s=__using(__stack3,render.span("scroll"),0);let t=performance.now();scrollPhase(root,{skipStateUpdates:opts?.skipScrollStateUpdates});tScroll=performance.now()-t}catch(_catch3){var _err3=_catch3,_hasErr3=1}finally{__callDispose(__stack3,_err3,_hasErr3)}}else tScroll=0;if(hasSticky)stickyPhase(root);let tScrollRect;{let __stack4=[];try{const _r=__using(__stack4,render.span("scrollRect"),0);let t=performance.now();if(hasScroll||hasSticky)scrollrectPhase(root);else scrollrectPhaseSimple(root);tScrollRect=performance.now()-t}catch(_catch4){var _err4=_catch4,_hasErr4=1}finally{__callDispose(__stack4,_err4,_hasErr4)}}let tNotify=0;if(!opts?.skipLayoutNotifications){let __stack5=[];try{const _n=__using(__stack5,render.span("notify"),0);let t=performance.now();notifyLayoutSubscribers(root);tNotify=performance.now()-t}catch(_catch5){var _err5=_catch5,_hasErr5=1}finally{__callDispose(__stack5,_err5,_hasErr5)}}let acc=globalThis.__silvery_bench_phases;if(acc)acc.measure+=tMeasure,acc.layout+=tLayout,acc.scroll+=tScroll,acc.scrollRect+=tScrollRect,acc.notify+=tNotify,acc.layoutTotal+=tMeasure+tLayout+tScroll+tScrollRect+tNotify;return{tMeasure,tLayout,tScroll,tScrollRect,tNotify}}catch(_catch6){var _err6=_catch6,_hasErr6=1}finally{__callDispose(__stack6,_err6,_hasErr6)}}function doRender(opts){clearBgConflictWarnings();let prevBuffer=opts?.fresh?null:opts?.prevBuffer!==void 0?opts.prevBuffer:_prevBuffer,tContent,buffer;{let t=performance.now();buffer=renderPhase(root,prevBuffer,ctx),tContent=performance.now()-t,log7.debug?.(`content: ${tContent.toFixed(2)}ms`)}if(!opts?.fresh)_prevBuffer=buffer;clearDirtyTracking();let acc=globalThis.__silvery_bench_phases;if(acc)acc.content+=tContent,acc.renderCalls+=1;return{frame:createTextFrame(buffer),buffer,prevBuffer,tContent}}function agCreateNode(type,props){let layoutNode=getLayoutEngine().createNode();return{type,props,children:[],parent:null,layoutNode,boxRect:null,scrollRect:null,screenRect:null,prevLayout:null,prevScrollRect:null,prevScreenRect:null,layoutChangedThisFrame:INITIAL_EPOCH,layoutDirty:!0,dirtyBits:ALL_RECONCILER_BITS,dirtyEpoch:getRenderEpoch(),layoutSubscribers:new Set}}function agInsertChild(parent,child,index){if(child.parent)agRemoveChild(child.parent,child);if(parent.children.splice(index,0,child),child.parent=parent,parent.layoutNode&&child.layoutNode){let layoutIndex=parent.children.slice(0,index).filter((c)=>c.layoutNode!==null).length;parent.layoutNode.insertChild(child.layoutNode,layoutIndex)}}function agRemoveChild(parent,child){let index=parent.children.indexOf(child);if(index===-1)return;if(parent.children.splice(index,1),parent.layoutNode&&child.layoutNode)parent.layoutNode.removeChild(child.layoutNode),child.layoutNode.free();child.parent=null}return{root,layout(dims,options2){if(measurer)runWithMeasurer(measurer,()=>doLayout(dims.cols,dims.rows,options2));else doLayout(dims.cols,dims.rows,options2)},render(options2){let result=measurer?runWithMeasurer(measurer,()=>doRender(options2)):doRender(options2);return{frame:result.frame,buffer:result.buffer,prevBuffer:result.prevBuffer}},resetBuffer(){_prevBuffer=null},createNode:agCreateNode,insertChild:agInsertChild,removeChild:agRemoveChild,updateProps(node,props,oldProps){if(node.props=props,node.layoutNode)node.layoutNode.markDirty()},setText(node,text){node.textContent=text;let epoch=getRenderEpoch(),bits=CONTENT_BIT|STYLE_PROPS_BIT;if(node.dirtyBits=node.dirtyEpoch!==epoch?bits:node.dirtyBits|bits,node.dirtyEpoch=epoch,node.layoutNode)node.layoutNode.markDirty()},toString(){return`[Ag root=${root.type} children=${root.children.length}]`}}}var log7,baseLog;var init_ag=__esm(()=>{init_buffer();init_unicode();init_measure_phase();init_layout_phase();init_render_phase();init_dirty_tracking();log7=createLogger8("silvery:render"),baseLog=createLogger8("@silvery/ag-react")});var init_render_phase_adapter=__esm(()=>{init_helpers();init_unicode();init_render_text()});import{createLogger as createLogger9}from"loggily";function executeRender(root,width,height,prevBuffer,options="fullscreen",config){if(config?.measurer)return runWithMeasurer(config.measurer,()=>{return executeRenderCore(root,width,height,prevBuffer,options,config)});return executeRenderCore(root,width,height,prevBuffer,options,config)}function executeRenderCore(root,width,height,prevBuffer,options="fullscreen",config){let opts=typeof options==="string"?{mode:options}:options,{mode="fullscreen",skipLayoutNotifications=!1,skipScrollStateUpdates=!1,scrollbackOffset=0,termRows,cursorPos}=opts;if(process?.env?.SILVERY_DEV&&prevBuffer===null&&root.prevLayout!==null&&!skipLayoutNotifications)log8.warn?.("executeRender called with prevBuffer=null on frame 2+ — "+"incremental content rendering is disabled (full render every frame). Track the returned buffer and pass it as prevBuffer on subsequent renders.");let start=performance.now(),ag=createAg(root,{measurer:config?.measurer});ag.layout({cols:width,rows:height},{skipLayoutNotifications,skipScrollStateUpdates});let{buffer}=ag.render({prevBuffer}),tLayout=performance.now()-start,output,tOutput;{let t4=performance.now(),outputFn=config?.outputPhaseFn??outputPhase;try{output=outputFn(prevBuffer,buffer,mode,scrollbackOffset,termRows,cursorPos)}catch(e){if(e instanceof Error)e.__silvery_buffer=buffer;throw e}tOutput=performance.now()-t4,log8.debug?.(`output: ${tOutput.toFixed(2)}ms (${output.length} bytes)`)}let total=performance.now()-start;globalThis.__silvery_last_pipeline={layout:tLayout,output:tOutput,total,incremental:prevBuffer!==null},globalThis.__silvery_render_count=(globalThis.__silvery_render_count??0)+1;let acc=globalThis.__silvery_bench_phases;if(acc)acc.output+=tOutput,acc.total+=total,acc.pipelineCalls+=1;return log8.debug?.(`pipeline: layout+render=${tLayout.toFixed(1)}ms output=${tOutput.toFixed(1)}ms total=${total.toFixed(1)}ms`),{output,buffer}}var log8,baseLog2;var init_pipeline=__esm(()=>{init_unicode();init_ag();init_measure_phase();init_layout_phase();init_render_phase();init_render_phase_adapter();init_output_phase();init_render_phase_adapter();init_render_phase();init_layout_phase();init_measure_phase();init_output_phase();log8=createLogger9("silvery:render"),baseLog2=createLogger9("@silvery/ag-react")});var init_pipeline2=__esm(()=>{init_pipeline()});function classifyPropChanges(oldProps,newProps){if(oldProps===newProps)return NO_CHANGES;let keysA=Object.keys(oldProps),keysB=Object.keys(newProps),sameKeyCount=keysA.length===keysB.length,layoutChanged=!1,contentChanged=!1,anyChanged=!1;for(let key of keysA)if(oldProps[key]!==newProps[key]){if(anyChanged=!0,LAYOUT_PROPS.has(key))layoutChanged=!0;if(contentChanged!=="text"){if(key==="children"){let oldIsPrimitive=typeof oldProps[key]==="string"||typeof oldProps[key]==="number",newIsPrimitive=typeof newProps[key]==="string"||typeof newProps[key]==="number";if(oldIsPrimitive||newIsPrimitive)contentChanged="text"}else if(TEXT_CONTENT_PROPS.has(key))contentChanged="text";else if(contentChanged!=="style"&&STYLE_PROPS.has(key))contentChanged="style"}if(layoutChanged&&contentChanged==="text")break}if(!sameKeyCount){for(let key of keysB)if(!(key in oldProps)){if(anyChanged=!0,LAYOUT_PROPS.has(key))layoutChanged=!0;if(contentChanged!=="text"){if(key==="children"){if(typeof newProps[key]==="string"||typeof newProps[key]==="number")contentChanged="text"}else if(TEXT_CONTENT_PROPS.has(key))contentChanged="text";else if(contentChanged!=="style"&&STYLE_PROPS.has(key))contentChanged="style"}if(layoutChanged&&contentChanged==="text")break}}if(!anyChanged&&!sameKeyCount)anyChanged=!0;if(!anyChanged)return NO_CHANGES;return{anyChanged,layoutChanged,contentChanged}}var LAYOUT_PROPS,TEXT_CONTENT_PROPS,STYLE_PROPS,NO_CHANGES;var init_helpers2=__esm(()=>{LAYOUT_PROPS=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","flexDirection","flexWrap","justifyContent","alignItems","alignContent","alignSelf","flexGrow","flexShrink","flexBasis","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","margin","marginX","marginY","marginTop","marginBottom","marginLeft","marginRight","gap","columnGap","rowGap","borderStyle","borderTop","borderBottom","borderLeft","borderRight","display","position","top","left","bottom","right","aspectRatio","overflow","overflowX","overflowY"]),TEXT_CONTENT_PROPS=new Set(["wrap","internal_transform"]),STYLE_PROPS=new Set(["color","backgroundColor","bold","dim","dimColor","italic","underline","underlineStyle","underlineColor","strikethrough","inverse","borderColor","borderBackgroundColor","borderTopBackgroundColor","borderBottomBackgroundColor","borderLeftBackgroundColor","borderRightBackgroundColor","borderStyle","outlineStyle","outlineColor","outlineDimColor","outlineTop","outlineBottom","outlineLeft","outlineRight","theme"]),NO_CHANGES={anyChanged:!1,layoutChanged:!1,contentChanged:!1}});import{createLogger as createLogger10}from"loggily";function createNode(type,props,measurer){let layoutNode=getLayoutEngine().createNode(),epoch=getRenderEpoch(),node={type,props,children:[],parent:null,layoutNode,boxRect:null,scrollRect:null,screenRect:null,prevLayout:null,prevScrollRect:null,prevScreenRect:null,layoutChangedThisFrame:epoch,layoutDirty:!0,dirtyBits:ALL_RECONCILER_BITS,dirtyEpoch:epoch,layoutSubscribers:new Set};if(type==="silvery-box")applyBoxProps(layoutNode,props);if(type==="silvery-text"){let cachedText=null,measureCache=new Map;layoutNode.setMeasureFunc((width,widthMode,height,heightMode)=>{measureStats.calls++,measureLog.debug?.(`measure "${collectPlainTextSkipHidden(node).slice(0,40)}" width=${width} widthMode=${widthMode} height=${height} heightMode=${heightMode}`);let cacheKey=`${width}|${widthMode}|${height}|${heightMode}`,cached=measureCache.get(cacheKey);if(cached&&cachedText!==null&&!isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT))return measureStats.cacheHits++,cached;let text;if(cachedText!==null&&!isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT))text=cachedText;else{measureStats.textCollects++;let newText=collectPlainTextSkipHidden(node);if(newText!==cachedText)measureCache.clear();text=newText,cachedText=text,node.dirtyBits&=~CONTENT_BIT}if(!text)return{width:0,height:0};let cachedAfterCollect=measureCache.get(cacheKey);if(cachedAfterCollect)return measureStats.cacheHits++,cachedAfterCollect;let lines=text.split(`
|
|
71
|
+
`)}`)}function getReactiveState(node){let state=nodeStates.get(node);if(!state)state=createReactiveNodeState(),nodeStates.set(node,state);return state}var nodeStates;var init_reactive_node=__esm(()=>{init_src3();nodeStates=new WeakMap});import{createLogger as createLogger7}from"loggily";function renderPhase(root,prevBuffer,ctx){let layout=root.boxRect;if(!layout)throw Error("renderPhase called before layout phase");let instr=resolveInstrumentation(ctx),hasPrevBuffer=prevBuffer&&prevBuffer.width===layout.width&&prevBuffer.height===layout.height;if(hasPrevBuffer&&!isAnyDirty(root.dirtyBits,root.dirtyEpoch)&&!isCurrentEpoch(root.layoutChangedThisFrame)){if(instr.enabled)instr.stats._noopSkip=1;return advanceRenderEpoch(),prevBuffer}if(instr.enabled)instr.stats._prevBufferNull=prevBuffer==null?1:0,instr.stats._prevBufferDimMismatch=prevBuffer&&!hasPrevBuffer?1:0,instr.stats._hasPrevBuffer=hasPrevBuffer?1:0,instr.stats._layoutW=layout.width,instr.stats._layoutH=layout.height,instr.stats._prevW=prevBuffer?.width??0,instr.stats._prevH=prevBuffer?.height??0;let t0=instr.enabled?performance.now():0,buffer=hasPrevBuffer?prevBuffer.clone():new TerminalBuffer(layout.width,layout.height),tClone=instr.enabled?performance.now()-t0:0;buffer.setSelectableMode(!0);let t1=instr.enabled?performance.now():0;renderNodeToBuffer(root,buffer,{scrollOffset:0,clipBounds:void 0,hasPrevBuffer:!!hasPrevBuffer,ancestorCleared:!1,bufferIsCloned:!!hasPrevBuffer,ancestorLayoutChanged:!1,inheritedBg:{color:null,ancestorRect:null},inheritedFg:null},ctx);let tRender=instr.enabled?performance.now()-t1:0;if(instr.enabled)emitRenderPhaseStats(instr.stats,instr.nodeTrace,instr.nodeTraceEnabled,tClone,tRender);let anyLayoutChanged=isCurrentEpoch(root.layoutChangedThisFrame)||isDirty(root.dirtyBits,root.dirtyEpoch,SUBTREE_BIT);return syncPrevLayout(root,anyLayoutChanged||!hasPrevBuffer),advanceRenderEpoch(),buffer}function syncPrevLayout(root,layoutPhaseRan){if(!layoutPhaseRan)return;let stack=[root];while(stack.length>0){let node=stack.pop();node.prevLayout=node.boxRect;let children=node.children;for(let i=children.length-1;i>=0;i--)stack.push(children[i])}}function envTruthy(val){return!!val&&val!=="0"&&val!=="false"}function resolveInstrumentation(ctx){return{enabled:ctx?.instrumentEnabled??_instrumentEnabled,stats:ctx?.stats??_renderPhaseStats,nodeTrace:ctx?.nodeTrace??_nodeTrace,nodeTraceEnabled:ctx?.nodeTraceEnabled??_nodeTraceEnabled}}function getCellDebug(){return globalThis.__silvery_cell_debug}function cellCoversPoint(cellDbg,x,y,width,height){return x<=cellDbg.x&&x+width>cellDbg.x&&y<=cellDbg.y&&y+height>cellDbg.y}function _getNodeDepth(node){let depth=0,n=node.parent;while(n)depth++,n=n.parent;return depth}function emitRenderPhaseStats(stats,nodeTrace,nodeTraceEnabled,tClone,tRender){_renderPhaseCallCount++,stats._callCount=_renderPhaseCallCount;let snap={clone:tClone,render:tRender,...structuredClone(stats)};globalThis.__silvery_content_detail=snap,(globalThis.__silvery_content_all??=[]).push(snap),contentLog.debug?.(`frame ${snap._callCount}: ${snap.nodesRendered}/${snap.nodesVisited} rendered, ${snap.nodesSkipped} skipped (${tClone.toFixed(1)}ms clone, ${tRender.toFixed(1)}ms render)`);for(let key of Object.keys(stats))stats[key]=0;if(stats.cascadeMinDepth=999,stats.cascadeNodes="",stats.scrollClearReason="",stats.normalRepaintReason="",nodeTraceEnabled&&nodeTrace.length>0)(globalThis.__silvery_node_trace??=[]).push([...nodeTrace]),traceLog.debug?.(`${nodeTrace.length} nodes traced`),nodeTrace.length=0}function renderNodeToBuffer(node,buffer,nodeState,ctx){let{scrollOffset,clipBounds,hasPrevBuffer,ancestorCleared,bufferIsCloned,ancestorLayoutChanged=!1}=nodeState,instr=resolveInstrumentation(ctx);if(instr.enabled)instr.stats.nodesVisited++;let layout=node.boxRect;if(!layout)return;if(!node.layoutNode){clearVirtualTextFlags(node);return}if(node.hidden){clearDirtyFlags(node);return}let props=node.props,prevSelectableMode=buffer.getSelectableMode(),userSelect=props.userSelect;if(userSelect==="none")buffer.setSelectableMode(!1);else if(userSelect==="text"||userSelect==="contain")buffer.setSelectableMode(!0);if(props.display==="none"){clearDirtyFlags(node),buffer.setSelectableMode(prevSelectableMode);return}let screenY=layout.y-scrollOffset;if(screenY>=buffer.height||screenY+layout.height<=0){buffer.setSelectableMode(prevSelectableMode);return}let layoutChanged=isCurrentEpoch(node.layoutChangedThisFrame),childPositionChanged=!!(hasPrevBuffer&&!layoutChanged&&hasChildPositionChanged(node)),scrollOffsetChanged=!!(node.scrollState&&node.scrollState.offset!==node.scrollState.prevOffset),canSkipEntireSubtree=hasPrevBuffer&&!isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)&&!isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)&&!layoutChanged&&!isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&!isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)&&!childPositionChanged&&!ancestorLayoutChanged&&!scrollOffsetChanged,_nodeId=instr.enabled?props.id??"":"",_traceThis=instr.enabled&&instr.nodeTraceEnabled&&_nodeId,_cellDbg=getCellDebug(),_coversCellNow=_cellDbg&&cellCoversPoint(_cellDbg,layout.x,screenY,layout.width,layout.height),_coversCellPrev=_cellDbg&&node.prevLayout&&cellCoversPoint(_cellDbg,node.prevLayout.x,node.prevLayout.y-scrollOffset,node.prevLayout.width,node.prevLayout.height);if(canSkipEntireSubtree){if(_cellDbg&&(_coversCellNow||_coversCellPrev)){let id=props.id??node.type,depth=_getNodeDepth(node),prev=node.prevLayout,msg=`SKIP ${id}@${depth} rect=${layout.x},${screenY} ${layout.width}x${layout.height} prev=${prev?`${prev.x},${prev.y-scrollOffset} ${prev.width}x${prev.height}`:"null"} coversNow=${_coversCellNow} coversPrev=${_coversCellPrev}`;_cellDbg.log.push(msg),cellLog.debug?.(msg)}if(instr.enabled){if(instr.stats.nodesSkipped++,_traceThis)instr.nodeTrace.push({id:_nodeId,type:node.type,depth:_getNodeDepth(node),rect:`${layout.x},${layout.y} ${layout.width}x${layout.height}`,prevLayout:node.prevLayout?`${node.prevLayout.x},${node.prevLayout.y} ${node.prevLayout.width}x${node.prevLayout.height}`:"null",hasPrev:hasPrevBuffer,ancestorCleared,flags:"",decision:"SKIPPED",layoutChanged})}clearDirtyFlags(node),buffer.setSelectableMode(prevSelectableMode);return}if(instr.enabled){if(instr.stats.nodesRendered++,!hasPrevBuffer)instr.stats.noPrevBuffer++;if(isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT))instr.stats.flagContentDirty++;if(isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT))instr.stats.flagStylePropsDirty++;if(layoutChanged)instr.stats.flagLayoutChanged++;if(isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT))instr.stats.flagSubtreeDirty++;if(isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT))instr.stats.flagChildrenDirty++;if(childPositionChanged)instr.stats.flagChildPositionChanged++;if(ancestorLayoutChanged)instr.stats.flagAncestorLayoutChanged++}let nodeTheme=props.theme;if(nodeTheme)pushContextTheme(nodeTheme);try{let isScrollContainer=props.overflow==="scroll"&&node.scrollState,{absoluteChildMutated,descendantOverflowChanged}=buildCascadeInputs(node,hasPrevBuffer),cascadeInputs={hasPrevBuffer,contentDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT),stylePropsDirty:isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT),layoutChanged,subtreeDirty:isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT),childrenDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT),childPositionChanged,ancestorLayoutChanged,ancestorCleared,bgDirty:isDirty(node.dirtyBits,node.dirtyEpoch,BG_BIT),isTextNode:node.type==="silvery-text",hasBgColor:!!getEffectiveBg(props),absoluteChildMutated,descendantOverflowChanged},cascade;if(_reactiveEnabled){let reactiveState=getReactiveState(node);if(syncToSignals(reactiveState,node,{hasPrevBuffer,layoutChanged,childPositionChanged,ancestorLayoutChanged,ancestorCleared,absoluteChildMutated,descendantOverflowChanged,hasBgColor:cascadeInputs.hasBgColor}),cascade=readReactiveCascade(reactiveState),_reactiveVerifyEnabled)assertReactiveMatchesOracle(reactiveState,computeCascade(cascadeInputs),props.id??node.type)}else cascade=computeCascade(cascadeInputs);if(cascade.bgOnlyChange&&hasDescendantWithBg(node)){let childrenNeedFreshRender2=(hasPrevBuffer||ancestorCleared)&&(cascade.contentAreaAffected||cascade.bgRefillNeeded);cascade={...cascade,bgOnlyChange:!1,childrenNeedFreshRender:childrenNeedFreshRender2}}let{contentRegionCleared,skipBgFill,childrenNeedFreshRender}=cascade;if(instr.enabled||_cellDbg&&(_coversCellNow||_coversCellPrev))traceRenderDecision(node,props,layout,screenY,scrollOffset,hasPrevBuffer,ancestorCleared,layoutChanged,childPositionChanged,cascade,_nodeId,_traceThis,_cellDbg,_coversCellNow,_coversCellPrev,instr.enabled,instr.stats,instr.nodeTrace);let useTextStyleFastPath=!1;executeRegionClearing(node,buffer,layout,scrollOffset,clipBounds,bufferIsCloned,layoutChanged,useTextStyleFastPath?!1:contentRegionCleared,descendantOverflowChanged,instr.enabled,instr.stats,nodeState.inheritedBg);let needsOwnRepaint=!hasPrevBuffer||ancestorCleared||ancestorLayoutChanged||cascade.contentAreaAffected||isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)||cascade.bgRefillNeeded,boxInheritedBg=node.type==="silvery-box"&&!getEffectiveBg(props)?nodeState.inheritedBg.color:void 0;if(needsOwnRepaint)renderOwnContent(node,buffer,layout,props,nodeState,skipBgFill,instr.enabled,instr.stats,ctx,cascade.bgOnlyChange,useTextStyleFastPath);let effectiveBg=getEffectiveBg(props),childInheritedBg=effectiveBg?{color:parseColor(effectiveBg),ancestorRect:node.boxRect}:nodeTheme?{color:parseColor(nodeTheme.bg),ancestorRect:node.boxRect}:nodeState.inheritedBg,childInheritedFg=props.color?parseColor(props.color):nodeTheme?parseColor(nodeTheme.fg):nodeState.inheritedFg,childState={...nodeState,inheritedBg:childInheritedBg,inheritedFg:childInheritedFg};if(isScrollContainer)renderScrollContainerChildren(node,buffer,props,childState,contentRegionCleared,childrenNeedFreshRender,ctx),renderScrollIndicators(node,buffer,layout,props,node.scrollState,ctx);else renderNormalChildren(node,buffer,props,childState,childPositionChanged,contentRegionCleared,childrenNeedFreshRender,ctx);if(node.type==="silvery-box"&&props.outlineStyle){let{x,width,height}=layout,y=layout.y-scrollOffset;renderOutline(buffer,x,y,width,height,props,clipBounds,boxInheritedBg)}clearNodeDirtyFlags(node)}finally{if(nodeTheme)popContextTheme();buffer.setSelectableMode(prevSelectableMode)}}function buildCascadeInputs(node,hasPrevBuffer){if(!hasPrevBuffer||!isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)||node.children===void 0)return{absoluteChildMutated:!1,descendantOverflowChanged:!1};return{absoluteChildMutated:isDirty(node.dirtyBits,node.dirtyEpoch,ABS_CHILD_BIT),descendantOverflowChanged:isDirty(node.dirtyBits,node.dirtyEpoch,DESC_OVERFLOW_BIT)}}function traceRenderDecision(node,props,layout,screenY,scrollOffset,hasPrevBuffer,ancestorCleared,layoutChanged,childPositionChanged,cascade,_nodeId,_traceThis,_cellDbg,_coversCellNow,_coversCellPrev,instrumentEnabled,stats,nodeTrace){let{contentAreaAffected,contentRegionCleared,skipBgFill,childrenNeedFreshRender}=cascade;if(instrumentEnabled){if(_traceThis){let flagStr=[isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)&&"C",isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)&&"P",isDirty(node.dirtyBits,node.dirtyEpoch,BG_BIT)&&"B",isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&"S",isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)&&"Ch",childPositionChanged&&"CP"].filter(Boolean).join(","),childHasPrev_=isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)||childPositionChanged||childrenNeedFreshRender?!1:hasPrevBuffer,childAncestorCleared_=contentRegionCleared||ancestorCleared&&!getEffectiveBg(props);nodeTrace.push({id:_nodeId,type:node.type,depth:_getNodeDepth(node),rect:`${layout.x},${layout.y} ${layout.width}x${layout.height}`,prevLayout:node.prevLayout?`${node.prevLayout.x},${node.prevLayout.y} ${node.prevLayout.width}x${node.prevLayout.height}`:"null",hasPrev:hasPrevBuffer,ancestorCleared,flags:flagStr,decision:"RENDER",layoutChanged,contentAreaAffected,contentRegionCleared,childrenNeedFreshRender,childHasPrev:childHasPrev_,childAncestorCleared:childAncestorCleared_,skipBgFill,bgColor:props.backgroundColor})}if(childrenNeedFreshRender&&node.children.length>0){let depth=_getNodeDepth(node);if(depth<stats.cascadeMinDepth)stats.cascadeMinDepth=depth;let id=node.props.id??node.type,flags=[isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)&&"C",isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)&&"P",isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)&&"Ch",layoutChanged&&"L",childPositionChanged&&"CP"].filter(Boolean).join(""),entry=`${id}@${depth}[${flags}:${node.children.length}ch]`;stats.cascadeNodes+=(stats.cascadeNodes?" ":"")+entry}}if(_cellDbg&&(_coversCellNow||_coversCellPrev)){let id=props.id??node.type,depth=_getNodeDepth(node),prev=node.prevLayout,flags=[isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT)&&"C",isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT)&&"P",layoutChanged&&"L",isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)&&"S",isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)&&"Ch",childPositionChanged&&"CP",isDirty(node.dirtyBits,node.dirtyEpoch,BG_BIT)&&"B"].filter(Boolean).join(","),msg=`RENDER ${id}@${depth} rect=${layout.x},${screenY} ${layout.width}x${layout.height} prev=${prev?`${prev.x},${prev.y-scrollOffset} ${prev.width}x${prev.height}`:"null"} flags=[${flags}] hasPrev=${hasPrevBuffer} ancClr=${ancestorCleared} caa=${contentAreaAffected} prc=${contentRegionCleared} prm=${childrenNeedFreshRender} coversNow=${_coversCellNow} coversPrev=${_coversCellPrev} bg=${props.backgroundColor??"none"}`;_cellDbg.log.push(msg),cellLog.debug?.(msg)}}function executeRegionClearing(node,buffer,layout,scrollOffset,clipBounds,bufferIsCloned,layoutChanged,contentRegionCleared,descendantOverflowChanged,instrumentEnabled,stats,threadedInheritedBg){if(contentRegionCleared){if(instrumentEnabled)stats.clearOps++;clearNodeRegion(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,threadedInheritedBg)}else if(bufferIsCloned&&layoutChanged&&node.prevLayout)clearExcessArea(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,threadedInheritedBg);if(descendantOverflowChanged)clearDescendantOverflowRegions(node,buffer,layout,scrollOffset,clipBounds,threadedInheritedBg)}function renderOwnContent(node,buffer,layout,props,nodeState,skipBgFill,instrumentEnabled,stats,ctx,bgOnlyChange=!1,useTextStyleFastPath=!1){let boxInheritedBg=node.type==="silvery-box"&&!getEffectiveBg(props)?nodeState.inheritedBg.color:void 0;if(node.type==="silvery-box"){if(instrumentEnabled)stats.boxNodes++;renderBox(node,buffer,layout,props,nodeState,skipBgFill,boxInheritedBg,bgOnlyChange)}else if(node.type==="silvery-text"){if(instrumentEnabled)stats.textNodes++;let textInheritedBg=nodeState.inheritedBg.color,textInheritedFg=nodeState.inheritedFg;if(useTextStyleFastPath){let style2=getTextStyle(props);if(style2.fg===null&&textInheritedFg!==void 0)style2.fg=textInheritedFg;let effectiveBg=style2.bg!==null?style2.bg:textInheritedBg??null,{x,width,height}=layout,y=layout.y-nodeState.scrollOffset;buffer.restyleRegion(x,y,width,height,{fg:style2.fg,bg:effectiveBg,underlineColor:style2.underlineColor??null,attrs:style2.attrs})}else renderText(node,buffer,layout,props,nodeState,textInheritedBg,textInheritedFg,ctx)}return boxInheritedBg}function planScrollRender(inputs){let{scrollOffsetChanged,visibleRangeChanged,hasStickyChildren,childrenNeedFreshRender,childrenDirty,hasPrevBuffer,ancestorCleared,contentRegionCleared,scrollBg}=inputs,scrollOnly=hasPrevBuffer&&scrollOffsetChanged&&!childrenDirty&&!childrenNeedFreshRender&&!hasStickyChildren&&!visibleRangeChanged,needsViewportClear=hasPrevBuffer&&!scrollOnly&&(scrollOffsetChanged||childrenDirty||childrenNeedFreshRender||visibleRangeChanged),stickyForceRefresh=hasStickyChildren&&hasPrevBuffer&&!needsViewportClear,reasons=[];if(scrollOnly)reasons.push("SHIFT");if(needsViewportClear){if(scrollOffsetChanged)reasons.push("scrollOffset");if(childrenDirty)reasons.push("childrenDirty");if(childrenNeedFreshRender)reasons.push("childrenNeedFreshRender");if(visibleRangeChanged)reasons.push("visibleRangeChanged")}if(stickyForceRefresh)reasons.push("stickyForceRefresh");return{tier:scrollOnly?"shift":needsViewportClear?"clear":"subtree-only",clearBg:scrollOnly||needsViewportClear?scrollBg:null,childHasPrev:needsViewportClear?!1:hasPrevBuffer,childAncestorCleared:needsViewportClear?!0:ancestorCleared||contentRegionCleared,stickyForceRefresh,reasons}}function renderScrollContainerChildren(node,buffer,props,nodeState,contentRegionCleared=!1,childrenNeedFreshRender=!1,ctx){let{clipBounds,hasPrevBuffer,ancestorCleared,bufferIsCloned,ancestorLayoutChanged,inheritedBg,inheritedFg}=nodeState,instr=resolveInstrumentation(ctx),layout=node.boxRect,ss=node.scrollState;if(!layout||!ss)return;let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),childClipBounds=computeChildClipBounds(layout,props,clipBounds,0,!1,!0),scrollOffsetChanged=ss.offset!==ss.prevOffset,hasStickyChildren=!!(ss.stickyChildren&&ss.stickyChildren.length>0),visibleRangeChanged=ss.firstVisibleChild!==ss.prevFirstVisibleChild||ss.lastVisibleChild!==ss.prevLastVisibleChild,clearY=childClipBounds.top,clearHeight=childClipBounds.bottom-childClipBounds.top,contentX=layout.x+border.left+padding.left,contentWidth=layout.width-border.left-border.right-padding.left-padding.right,scrollBg=scrollOffsetChanged||isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)||childrenNeedFreshRender||visibleRangeChanged?getEffectiveBg(props)?parseColor(getEffectiveBg(props)):inheritedBg.color:null,plan=planScrollRender({scrollOffsetChanged,visibleRangeChanged,hasStickyChildren,childrenNeedFreshRender,childrenDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT),hasPrevBuffer,ancestorCleared,contentRegionCleared,scrollBg}),{tier,stickyForceRefresh}=plan,defaultChildHasPrev=plan.childHasPrev,defaultChildAncestorCleared=plan.childAncestorCleared;if(instr.enabled){if(instr.stats.scrollContainerCount++,tier!=="subtree-only"||stickyForceRefresh){instr.stats.scrollViewportCleared++;let reasons=[...plan.reasons];if(scrollOffsetChanged)reasons.push(`scrollOffset(${ss.prevOffset}->${ss.offset})`);reasons.push(`vp=${ss.viewportHeight} content=${ss.contentHeight} vis=${ss.firstVisibleChild}-${ss.lastVisibleChild}`),instr.stats.scrollClearReason=reasons.join("+")}}if(process?.env?.SILVERY_STRICT&&tier==="shift"&&hasStickyChildren)throw Error(`[SILVERY_STRICT] Scroll Tier 1 (buffer shift) activated with sticky children (node: ${props.id??node.type}, stickyCount: ${ss.stickyChildren?.length??0})`);let scrollDelta=ss.offset-(ss.prevOffset??ss.offset);if(tier==="shift"&&clearHeight>0){if(props.overflowIndicator===!0&&!border.top&&!border.bottom){let topIndicatorY=clearY,bottomIndicatorY=clearY+clearHeight-1;if(ss.prevOffset!=null&&ss.prevOffset>0)buffer.fill(contentX,topIndicatorY,contentWidth,1,{char:" ",bg:plan.clearBg});buffer.fill(contentX,bottomIndicatorY,contentWidth,1,{char:" ",bg:plan.clearBg})}buffer.scrollRegion(contentX,clearY,contentWidth,clearHeight,scrollDelta,{char:" ",bg:plan.clearBg})}if(tier==="clear"&&clearHeight>0)buffer.fill(contentX,clearY,contentWidth,clearHeight,{char:" ",bg:plan.clearBg});if(stickyForceRefresh&&clearHeight>0)buffer.fill(contentX,clearY,contentWidth,clearHeight,{char:" ",bg:null});let childAncestorLayoutChanged=isCurrentEpoch(node.layoutChangedThisFrame)||!!ancestorLayoutChanged,prevVisTop=ss.prevOffset??ss.offset,prevVisBottom=prevVisTop+ss.viewportHeight;for(let i=0;i<node.children.length;i++){let child=node.children[i];if(!child)continue;if(child.props.position==="sticky")continue;if(i<ss.firstVisibleChild||i>ss.lastVisibleChild)continue;let thisChildHasPrev=defaultChildHasPrev,thisChildAncestorCleared=defaultChildAncestorCleared;if(tier==="shift"){let childRect=child.boxRect;if(childRect){let childTop=childRect.y-layout.y-border.top-padding.top,childBottom=childTop+childRect.height,wasFullyVisible=childTop>=prevVisTop&&childBottom<=prevVisBottom;thisChildHasPrev=wasFullyVisible,thisChildAncestorCleared=wasFullyVisible?ancestorCleared||contentRegionCleared:!0}}if(stickyForceRefresh&&thisChildHasPrev)thisChildHasPrev=!1,thisChildAncestorCleared=!1;if(canSkipChildSubtree(child,thisChildHasPrev,childAncestorLayoutChanged))continue;renderNodeToBuffer(child,buffer,{scrollOffset:ss.offset,clipBounds:childClipBounds,hasPrevBuffer:thisChildHasPrev,ancestorCleared:thisChildAncestorCleared,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}if(ss.stickyChildren)for(let sticky of ss.stickyChildren){let child=node.children[sticky.index];if(!child?.boxRect)continue;let stickyScrollOffset=sticky.naturalTop-sticky.renderOffset;renderNodeToBuffer(child,buffer,{scrollOffset:stickyScrollOffset,clipBounds:childClipBounds,hasPrevBuffer:!1,ancestorCleared:!1,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}}function renderNormalChildren(node,buffer,props,nodeState,childPositionChanged=!1,contentRegionCleared=!1,childrenNeedFreshRender=!1,ctx){let{scrollOffset,clipBounds,hasPrevBuffer,ancestorCleared,bufferIsCloned,ancestorLayoutChanged,inheritedBg,inheritedFg}=nodeState,instr=resolveInstrumentation(ctx),layout=node.boxRect;if(!layout)return;let clipX=(props.overflowX??props.overflow)==="hidden",clipY=(props.overflowY??props.overflow)==="hidden",effectiveClipBounds=clipX||clipY?computeChildClipBounds(layout,props,clipBounds,scrollOffset,clipX,clipY):clipBounds,hasStickyChildren=!!(node.stickyChildren&&node.stickyChildren.length>0),stickyForceRefresh=hasStickyChildren&&hasPrevBuffer;if(stickyForceRefresh){let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),clearX=layout.x+border.left+padding.left,clearY=layout.y-scrollOffset+border.top+padding.top,clearW=layout.width-border.left-border.right-padding.left-padding.right,clearH=layout.height-border.top-border.bottom-padding.top-padding.bottom;if(clipBounds){let{top:clipTop,bottom:clipBottom}=clipBounds;if(clearY<clipTop)clearH-=clipTop-clearY,clearY=clipTop;if(clearY+clearH>clipBottom)clearH=clipBottom-clearY;if(clipBounds.left!==void 0&&clearX<clipBounds.left)clearW-=clipBounds.left-clearX,clearX=clipBounds.left;if(clipBounds.right!==void 0&&clearX+clearW>clipBounds.right)clearW=clipBounds.right-clearX}if(clearW>0&&clearH>0)buffer.fill(clearX,clearY,clearW,clearH,{char:" ",bg:null})}let childrenNeedRepaint=isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT)||childPositionChanged||childrenNeedFreshRender;if(instr.enabled&&childrenNeedRepaint&&hasPrevBuffer){instr.stats.normalChildrenRepaint++;let reasons=[];if(isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT))reasons.push("childrenDirty");if(childPositionChanged)reasons.push("childPositionChanged");if(childrenNeedFreshRender)reasons.push("childrenNeedFreshRender");instr.stats.normalRepaintReason=reasons.join("+")}let childHasPrev=childrenNeedRepaint?!1:hasPrevBuffer,childAncestorCleared=contentRegionCleared||ancestorCleared&&!getEffectiveBg(props),childAncestorLayoutChanged=isCurrentEpoch(node.layoutChangedThisFrame)||!!ancestorLayoutChanged;if(stickyForceRefresh)childHasPrev=!1,childAncestorCleared=!1;let hasAbsoluteChildren=!1;for(let child of node.children){let childProps=child.props;if(childProps.position==="absolute"){hasAbsoluteChildren=!0;continue}if(hasStickyChildren&&childProps.position==="sticky")continue;if(canSkipChildSubtree(child,childHasPrev,childAncestorLayoutChanged))continue;renderNodeToBuffer(child,buffer,{scrollOffset,clipBounds:effectiveClipBounds,hasPrevBuffer:childHasPrev,ancestorCleared:childAncestorCleared,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}if(node.stickyChildren)for(let sticky of node.stickyChildren){let child=node.children[sticky.index];if(!child?.boxRect)continue;let stickyScrollOffset=sticky.naturalTop-sticky.renderOffset;renderNodeToBuffer(child,buffer,{scrollOffset:stickyScrollOffset,clipBounds:effectiveClipBounds,hasPrevBuffer:!1,ancestorCleared:!1,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}if(hasAbsoluteChildren)for(let child of node.children){if(child.props.position!=="absolute")continue;renderNodeToBuffer(child,buffer,{scrollOffset,clipBounds:effectiveClipBounds,hasPrevBuffer:!1,ancestorCleared:!1,bufferIsCloned,ancestorLayoutChanged:childAncestorLayoutChanged,inheritedBg,inheritedFg},ctx)}}function canSkipChildSubtree(child,childHasPrev,childAncestorLayoutChanged){if(!childHasPrev)return!1;if(childAncestorLayoutChanged)return!1;if(isDirty(child.dirtyBits,child.dirtyEpoch,SUBTREE_BIT))return!1;if(isCurrentEpoch(child.layoutChangedThisFrame))return!1;if(child.scrollState&&child.scrollState.offset!==child.scrollState.prevOffset)return!1;return!0}function clearNodeDirtyFlags(node){node.dirtyBits=0,node.dirtyEpoch=INITIAL_EPOCH,node.layoutChangedThisFrame=INITIAL_EPOCH}function clearDirtyFlags(node){clearNodeDirtyFlags(node);for(let child of node.children)if(child.layoutNode)clearDirtyFlags(child);else clearVirtualTextFlags(child)}function clearVirtualTextFlags(node){clearNodeDirtyFlags(node);for(let child of node.children)clearVirtualTextFlags(child)}function hasChildPositionChanged(node){for(let child of node.children)if(child.boxRect&&child.prevLayout){if(child.boxRect.x!==child.prevLayout.x||child.boxRect.y!==child.prevLayout.y)return!0}return!1}function hasDescendantWithBg(node){for(let child of node.children){if(getEffectiveBg(child.props))return!0;if(child.children.length>0&&hasDescendantWithBg(child))return!0}return!1}function computeChildClipBounds(layout,props,parentClip,scrollOffset=0,horizontal=!0,vertical=!0){let border=props.borderStyle?getBorderSize(props):{top:0,bottom:0,left:0,right:0},padding=getPadding(props),adjustedY=layout.y-scrollOffset,nodeClip=vertical?{top:adjustedY+border.top+padding.top,bottom:adjustedY+layout.height-border.bottom-padding.bottom}:{top:-1/0,bottom:1/0};if(horizontal)nodeClip.left=layout.x+border.left+padding.left,nodeClip.right=layout.x+layout.width-border.right-padding.right;if(!parentClip)return nodeClip;let result={top:vertical?Math.max(parentClip.top,nodeClip.top):parentClip.top,bottom:vertical?Math.min(parentClip.bottom,nodeClip.bottom):parentClip.bottom};if(horizontal&&nodeClip.left!==void 0&&nodeClip.right!==void 0)result.left=Math.max(parentClip.left??0,nodeClip.left),result.right=Math.min(parentClip.right??1/0,nodeClip.right);else if(parentClip.left!==void 0&&parentClip.right!==void 0)result.left=parentClip.left,result.right=parentClip.right;return result}function clearDescendantOverflowRegions(node,buffer,layout,scrollOffset,clipBounds,threadedInheritedBg){let clearBg=threadedInheritedBg.color,nodeRight=layout.x+layout.width,nodeBottom=layout.y-scrollOffset+layout.height,nodeLeft=layout.x,nodeTop=layout.y-scrollOffset;_clearDescendantOverflow(node.children,buffer,nodeLeft,nodeTop,nodeRight,nodeBottom,scrollOffset,clipBounds,clearBg)}function _clearDescendantOverflow(children,buffer,nodeLeft,nodeTop,nodeRight,nodeBottom,scrollOffset,clipBounds,clearBg){for(let child of children){if(child.prevLayout&&isCurrentEpoch(child.layoutChangedThisFrame)){let prev=child.prevLayout,prevRight=prev.x+prev.width,prevBottom=prev.y-scrollOffset+prev.height,prevTop=prev.y-scrollOffset;if(prevRight>nodeRight){let overflowX=nodeRight,overflowWidth=Math.min(prevRight,buffer.width)-overflowX,overflowTop=Math.max(prevTop,clipBounds?.top??0),overflowBottom=Math.min(prevBottom,clipBounds?.bottom??buffer.height);if(overflowWidth>0&&overflowBottom>overflowTop)buffer.fill(overflowX,overflowTop,overflowWidth,overflowBottom-overflowTop,{char:" ",bg:clearBg})}if(prevBottom>nodeBottom){let overflowTop=Math.max(nodeBottom,clipBounds?.top??0),overflowBottom=Math.min(prevBottom,clipBounds?.bottom??buffer.height),overflowX=Math.max(prev.x,clipBounds?.left??0),overflowWidth=Math.min(prevRight,clipBounds?.right??buffer.width)-overflowX;if(overflowWidth>0&&overflowBottom>overflowTop)buffer.fill(overflowX,overflowTop,overflowWidth,overflowBottom-overflowTop,{char:" ",bg:clearBg})}if(prev.x<nodeLeft){let overflowX=Math.max(prev.x,0),overflowWidth=Math.min(nodeLeft,buffer.width)-overflowX,overflowTop=Math.max(prevTop,clipBounds?.top??0),overflowBottom=Math.min(prevBottom,clipBounds?.bottom??buffer.height);if(overflowWidth>0&&overflowBottom>overflowTop)buffer.fill(overflowX,overflowTop,overflowWidth,overflowBottom-overflowTop,{char:" ",bg:clearBg})}if(prevTop<nodeTop){let overflowTop=Math.max(prevTop,clipBounds?.top??0),overflowBottom=Math.min(nodeTop,clipBounds?.bottom??buffer.height),overflowX=Math.max(prev.x,clipBounds?.left??0),overflowWidth=Math.min(prevRight,clipBounds?.right??buffer.width)-overflowX;if(overflowWidth>0&&overflowBottom>overflowTop)buffer.fill(overflowX,overflowTop,overflowWidth,overflowBottom-overflowTop,{char:" ",bg:clearBg})}}if(isDirty(child.dirtyBits,child.dirtyEpoch,SUBTREE_BIT)&&child.children!==void 0)_clearDescendantOverflow(child.children,buffer,nodeLeft,nodeTop,nodeRight,nodeBottom,scrollOffset,clipBounds,clearBg)}}function clearNodeRegion(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,threadedInheritedBg){let inherited=threadedInheritedBg,clearBg=inherited.color,screenY=layout.y-scrollOffset,parentRect=node.parent?.boxRect,parentBottom=parentRect?parentRect.y-scrollOffset+parentRect.height:void 0,clearY=clipBounds?Math.max(screenY,clipBounds.top):screenY,clearBottom=clipBounds?Math.min(screenY+layout.height,clipBounds.bottom):screenY+layout.height;if(parentBottom!==void 0)clearBottom=Math.min(clearBottom,parentBottom);let{x:clearX,width:clearWidth}=layout;if(clipBounds?.left!==void 0&&clipBounds.right!==void 0){if(clearX<clipBounds.left)clearWidth-=clipBounds.left-clearX,clearX=clipBounds.left;if(clearX+clearWidth>clipBounds.right)clearWidth=Math.max(0,clipBounds.right-clearX)}if(inherited.ancestorRect){let ancestorRight=inherited.ancestorRect.x+inherited.ancestorRect.width,ancestorLeft=inherited.ancestorRect.x;if(clearX<ancestorLeft)clearWidth-=ancestorLeft-clearX,clearX=ancestorLeft;if(clearX+clearWidth>ancestorRight)clearWidth=Math.max(0,ancestorRight-clearX)}let clearHeight=clearBottom-clearY;if(clearHeight>0&&clearWidth>0){let _cellDbg2=getCellDebug();if(_cellDbg2&&cellCoversPoint(_cellDbg2,clearX,clearY,clearWidth,clearHeight)){let msg=`CLEAR_REGION ${node.props.id??node.type} fill=${clearX},${clearY} ${clearWidth}x${clearHeight} bg=${String(clearBg)} COVERS TARGET`;_cellDbg2.log.push(msg),cellLog.debug?.(msg)}buffer.fill(clearX,clearY,clearWidth,clearHeight,{char:" ",bg:clearBg})}clearExcessArea(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,inherited)}function clearExcessArea(node,buffer,layout,scrollOffset,clipBounds,layoutChanged,inherited){if(!layoutChanged||!node.prevLayout)return;let prev=node.prevLayout,_cellDbg3=getCellDebug(),_prevCoversCell3=_cellDbg3&&cellCoversPoint(_cellDbg3,prev.x,prev.y-scrollOffset,prev.width,prev.height);if(prev.width<=layout.width&&prev.height<=layout.height){if(_cellDbg3&&_prevCoversCell3){let msg=`EXCESS_SKIP_NO_SHRINK ${node.props.id??node.type} prev=${prev.x},${prev.y-scrollOffset} ${prev.width}x${prev.height} now=${layout.x},${layout.y-scrollOffset} ${layout.width}x${layout.height}`;_cellDbg3.log.push(msg),cellLog.debug?.(msg)}return}if(prev.x!==layout.x||prev.y!==layout.y){if(_cellDbg3&&_prevCoversCell3){let msg=`EXCESS_SKIP_MOVED ${node.props.id??node.type} prev=${prev.x},${prev.y-scrollOffset} ${prev.width}x${prev.height} now=${layout.x},${layout.y-scrollOffset} ${layout.width}x${layout.height} (dx=${layout.x-prev.x} dy=${layout.y-prev.y})`;_cellDbg3.log.push(msg),cellLog.debug?.(msg)}return}let clearBg=inherited.color,screenY=layout.y-scrollOffset,prevScreenY=prev.y-scrollOffset,clipRect=inherited.ancestorRect??node.parent?.boxRect;if(!clipRect)return;let clipRectBottom=clipRect.y-scrollOffset+clipRect.height,clipRectRight=clipRect.x+clipRect.width,parent=node.parent;if(parent?.boxRect){let parentProps=parent.props,border=getBorderSize(parentProps),padding=getPadding(parentProps),parentRight=parent.boxRect.x+parent.boxRect.width-border.right-padding.right,parentBottom=parent.boxRect.y-scrollOffset+parent.boxRect.height-border.bottom-padding.bottom;clipRectRight=Math.min(clipRectRight,parentRight),clipRectBottom=Math.min(clipRectBottom,parentBottom)}if(prev.width>layout.width){let excessX=layout.x+layout.width,excessWidth=prev.width-layout.width;if(excessX+excessWidth>clipRectRight)excessWidth=Math.max(0,clipRectRight-excessX);if(excessWidth>0)clippedFill(buffer,excessX,excessWidth,prevScreenY,prevScreenY+prev.height,clipBounds,clipRectBottom,clearBg)}if(prev.height>layout.height){let bottomWidth=prev.width;if(layout.x+bottomWidth>clipRectRight)bottomWidth=Math.max(0,clipRectRight-layout.x);clippedFill(buffer,layout.x,bottomWidth,screenY+layout.height,prevScreenY+prev.height,clipBounds,clipRectBottom,clearBg)}}function clippedFill(buffer,x,width,top,bottom,clipBounds,outerBottom,bg){let clippedTop=clipBounds?Math.max(top,clipBounds.top):top,clippedBottom=Math.min(clipBounds?Math.min(bottom,clipBounds.bottom):bottom,outerBottom),clippedX=x,clippedWidth=width;if(clipBounds?.left!==void 0&&clipBounds.right!==void 0){if(clippedX<clipBounds.left)clippedWidth-=clipBounds.left-clippedX,clippedX=clipBounds.left;if(clippedX+clippedWidth>clipBounds.right)clippedWidth=Math.max(0,clipBounds.right-clippedX)}let height=clippedBottom-clippedTop;if(height>0&&clippedWidth>0)buffer.fill(clippedX,clippedTop,clippedWidth,height,{char:" ",bg})}var contentLog,traceLog,cellLog,_instrumentEnabled,_renderPhaseStats,_renderPhaseCallCount=0,_nodeTrace,_nodeTraceEnabled,_reactiveEnabled,_reactiveVerifyEnabled;var init_render_phase=__esm(()=>{init_buffer();init_helpers();init_render_box();init_render_helpers();init_render_text();init_state();init_reactive_node();contentLog=createLogger7("silvery:content"),traceLog=createLogger7("silvery:content:trace"),cellLog=createLogger7("silvery:content:cell");_instrumentEnabled=typeof process<"u"&&(envTruthy(process.env?.SILVERY_STRICT)||envTruthy(process.env?.SILVERY_INSTRUMENT)),_renderPhaseStats={nodesVisited:0,nodesRendered:0,nodesSkipped:0,textNodes:0,boxNodes:0,clearOps:0,noPrevBuffer:0,flagContentDirty:0,flagStylePropsDirty:0,flagLayoutChanged:0,flagSubtreeDirty:0,flagChildrenDirty:0,flagChildPositionChanged:0,flagAncestorLayoutChanged:0,scrollContainerCount:0,scrollViewportCleared:0,scrollClearReason:"",normalChildrenRepaint:0,normalRepaintReason:"",cascadeMinDepth:999,cascadeNodes:"",_noopSkip:0,_prevBufferNull:0,_prevBufferDimMismatch:0,_hasPrevBuffer:0,_layoutW:0,_layoutH:0,_prevW:0,_prevH:0,_callCount:0},_nodeTrace=[],_nodeTraceEnabled=typeof process<"u"&&envTruthy(process.env?.SILVERY_STRICT),_reactiveEnabled=typeof process>"u"||process.env?.SILVERY_REACTIVE!=="0",_reactiveVerifyEnabled=_reactiveEnabled&&typeof process<"u"&&envTruthy(process.env?.SILVERY_STRICT)});import{createLogger as createLogger8}from"loggily";function createAg(root,options){let measurer=options?.measurer,ctx=measurer?{measurer}:void 0,_prevBuffer=null,hasScroll=!1,hasSticky=!1;function doLayout(cols,rows,opts){let __stack6=[];try{let prevRootLayout=root.boxRect;let dimensionsChanged=prevRootLayout&&(prevRootLayout.width!==cols||prevRootLayout.height!==rows);if(!dimensionsChanged&&!hasLayoutDirty()&&!hasScrollDirty())return log7.debug?.("layout: skipped (no layoutDirty, no scrollDirty, dimensions unchanged)"),{tMeasure:0,tLayout:0,tScroll:0,tScrollRect:0,tNotify:0};const render=__using(__stack6,baseLog.span("pipeline",{width:cols,height:rows}),0);let tMeasure;{let __stack=[];try{const _m=__using(__stack,render.span("measure"),0);let t=performance.now();measurePhase(root,ctx);tMeasure=performance.now()-t;log7.debug?.(`measure: ${tMeasure.toFixed(2)}ms`)}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}}let tLayout;{let __stack2=[];try{const _l=__using(__stack2,render.span("layout"),0);let t=performance.now();layoutPhase(root,cols,rows);tLayout=performance.now()-t;log7.debug?.(`layout: ${tLayout.toFixed(2)}ms`)}catch(_catch2){var _err2=_catch2,_hasErr2=1}finally{__callDispose(__stack2,_err2,_hasErr2)}}if(!hasScroll||!hasSticky){let features=detectPipelineFeatures(root);if(features.hasScroll)hasScroll=!0;if(features.hasSticky)hasSticky=!0}let tScroll;if(hasScroll){let __stack3=[];try{const _s=__using(__stack3,render.span("scroll"),0);let t=performance.now();scrollPhase(root,{skipStateUpdates:opts?.skipScrollStateUpdates});tScroll=performance.now()-t}catch(_catch3){var _err3=_catch3,_hasErr3=1}finally{__callDispose(__stack3,_err3,_hasErr3)}}else tScroll=0;if(hasSticky)stickyPhase(root);let tScrollRect;{let __stack4=[];try{const _r=__using(__stack4,render.span("scrollRect"),0);let t=performance.now();if(hasScroll||hasSticky)scrollrectPhase(root);else scrollrectPhaseSimple(root);tScrollRect=performance.now()-t}catch(_catch4){var _err4=_catch4,_hasErr4=1}finally{__callDispose(__stack4,_err4,_hasErr4)}}let tNotify=0;if(!opts?.skipLayoutNotifications){let __stack5=[];try{const _n=__using(__stack5,render.span("notify"),0);let t=performance.now();notifyLayoutSubscribers(root);tNotify=performance.now()-t}catch(_catch5){var _err5=_catch5,_hasErr5=1}finally{__callDispose(__stack5,_err5,_hasErr5)}}let acc=globalThis.__silvery_bench_phases;if(acc)acc.measure+=tMeasure,acc.layout+=tLayout,acc.scroll+=tScroll,acc.scrollRect+=tScrollRect,acc.notify+=tNotify,acc.layoutTotal+=tMeasure+tLayout+tScroll+tScrollRect+tNotify;return{tMeasure,tLayout,tScroll,tScrollRect,tNotify}}catch(_catch6){var _err6=_catch6,_hasErr6=1}finally{__callDispose(__stack6,_err6,_hasErr6)}}function doRender(opts){clearBgConflictWarnings();let prevBuffer=opts?.fresh?null:opts?.prevBuffer!==void 0?opts.prevBuffer:_prevBuffer,tContent,buffer;{let t=performance.now();buffer=renderPhase(root,prevBuffer,ctx),tContent=performance.now()-t,log7.debug?.(`content: ${tContent.toFixed(2)}ms`)}if(!opts?.fresh)_prevBuffer=buffer;clearDirtyTracking();let acc=globalThis.__silvery_bench_phases;if(acc)acc.content+=tContent,acc.renderCalls+=1;return{frame:createTextFrame(buffer),buffer,prevBuffer,tContent}}function agCreateNode(type,props){let layoutNode=getLayoutEngine().createNode();return{type,props,children:[],parent:null,layoutNode,boxRect:null,scrollRect:null,screenRect:null,prevLayout:null,prevScrollRect:null,prevScreenRect:null,layoutChangedThisFrame:INITIAL_EPOCH,layoutDirty:!0,dirtyBits:ALL_RECONCILER_BITS,dirtyEpoch:getRenderEpoch(),layoutSubscribers:new Set}}function agInsertChild(parent,child,index){if(child.parent)agRemoveChild(child.parent,child);if(parent.children.splice(index,0,child),child.parent=parent,parent.layoutNode&&child.layoutNode){let layoutIndex=parent.children.slice(0,index).filter((c)=>c.layoutNode!==null).length;parent.layoutNode.insertChild(child.layoutNode,layoutIndex)}}function agRemoveChild(parent,child){let index=parent.children.indexOf(child);if(index===-1)return;if(parent.children.splice(index,1),parent.layoutNode&&child.layoutNode)parent.layoutNode.removeChild(child.layoutNode),child.layoutNode.free();child.parent=null}return{root,layout(dims,options2){if(measurer)runWithMeasurer(measurer,()=>doLayout(dims.cols,dims.rows,options2));else doLayout(dims.cols,dims.rows,options2)},render(options2){let result=measurer?runWithMeasurer(measurer,()=>doRender(options2)):doRender(options2);return{frame:result.frame,buffer:result.buffer,prevBuffer:result.prevBuffer}},resetBuffer(){_prevBuffer=null},createNode:agCreateNode,insertChild:agInsertChild,removeChild:agRemoveChild,updateProps(node,props,oldProps){if(node.props=props,node.layoutNode)node.layoutNode.markDirty()},setText(node,text){node.textContent=text;let epoch=getRenderEpoch(),bits=CONTENT_BIT|STYLE_PROPS_BIT;if(node.dirtyBits=node.dirtyEpoch!==epoch?bits:node.dirtyBits|bits,node.dirtyEpoch=epoch,node.layoutNode)node.layoutNode.markDirty()},toString(){return`[Ag root=${root.type} children=${root.children.length}]`}}}var log7,baseLog;var init_ag=__esm(()=>{init_buffer();init_unicode();init_measure_phase();init_layout_phase();init_render_phase();init_dirty_tracking();log7=createLogger8("silvery:render"),baseLog=createLogger8("@silvery/ag-react")});var init_render_phase_adapter=__esm(()=>{init_helpers();init_unicode();init_render_text()});import{createLogger as createLogger9}from"loggily";function executeRender(root,width,height,prevBuffer,options="fullscreen",config){if(config?.measurer)return runWithMeasurer(config.measurer,()=>{return executeRenderCore(root,width,height,prevBuffer,options,config)});return executeRenderCore(root,width,height,prevBuffer,options,config)}function executeRenderCore(root,width,height,prevBuffer,options="fullscreen",config){let opts=typeof options==="string"?{mode:options}:options,{mode="fullscreen",skipLayoutNotifications=!1,skipScrollStateUpdates=!1,scrollbackOffset=0,termRows,cursorPos}=opts;if(process?.env?.SILVERY_DEV&&prevBuffer===null&&root.prevLayout!==null&&!skipLayoutNotifications)log8.warn?.("executeRender called with prevBuffer=null on frame 2+ — "+"incremental content rendering is disabled (full render every frame). Track the returned buffer and pass it as prevBuffer on subsequent renders.");let start=performance.now(),ag=createAg(root,{measurer:config?.measurer});ag.layout({cols:width,rows:height},{skipLayoutNotifications,skipScrollStateUpdates});let{buffer}=ag.render({prevBuffer}),tLayout=performance.now()-start,output,tOutput;{let t4=performance.now(),outputFn=config?.outputPhaseFn??outputPhase;try{output=outputFn(prevBuffer,buffer,mode,scrollbackOffset,termRows,cursorPos)}catch(e){if(e instanceof Error)e.__silvery_buffer=buffer;throw e}tOutput=performance.now()-t4,log8.debug?.(`output: ${tOutput.toFixed(2)}ms (${output.length} bytes)`)}let total=performance.now()-start;globalThis.__silvery_last_pipeline={layout:tLayout,output:tOutput,total,incremental:prevBuffer!==null},globalThis.__silvery_render_count=(globalThis.__silvery_render_count??0)+1;let acc=globalThis.__silvery_bench_phases;if(acc)acc.output+=tOutput,acc.total+=total,acc.pipelineCalls+=1;return log8.debug?.(`pipeline: layout+render=${tLayout.toFixed(1)}ms output=${tOutput.toFixed(1)}ms total=${total.toFixed(1)}ms`),{output,buffer}}var log8,baseLog2;var init_pipeline=__esm(()=>{init_unicode();init_ag();init_measure_phase();init_layout_phase();init_render_phase();init_render_phase_adapter();init_output_phase();init_render_phase_adapter();init_render_phase();init_layout_phase();init_measure_phase();init_output_phase();log8=createLogger9("silvery:render"),baseLog2=createLogger9("@silvery/ag-react")});var init_pipeline2=__esm(()=>{init_pipeline()});function classifyPropChanges(oldProps,newProps){if(oldProps===newProps)return NO_CHANGES;let keysA=Object.keys(oldProps),keysB=Object.keys(newProps),sameKeyCount=keysA.length===keysB.length,layoutChanged=!1,contentChanged=!1,anyChanged=!1;for(let key of keysA)if(oldProps[key]!==newProps[key]){if(anyChanged=!0,LAYOUT_PROPS.has(key))layoutChanged=!0;if(contentChanged!=="text"){if(key==="children"){let oldIsPrimitive=typeof oldProps[key]==="string"||typeof oldProps[key]==="number",newIsPrimitive=typeof newProps[key]==="string"||typeof newProps[key]==="number";if(oldIsPrimitive||newIsPrimitive)contentChanged="text"}else if(TEXT_CONTENT_PROPS.has(key))contentChanged="text";else if(contentChanged!=="style"&&STYLE_PROPS.has(key))contentChanged="style"}if(layoutChanged&&contentChanged==="text")break}if(!sameKeyCount){for(let key of keysB)if(!(key in oldProps)){if(anyChanged=!0,LAYOUT_PROPS.has(key))layoutChanged=!0;if(contentChanged!=="text"){if(key==="children"){if(typeof newProps[key]==="string"||typeof newProps[key]==="number")contentChanged="text"}else if(TEXT_CONTENT_PROPS.has(key))contentChanged="text";else if(contentChanged!=="style"&&STYLE_PROPS.has(key))contentChanged="style"}if(layoutChanged&&contentChanged==="text")break}}if(!anyChanged&&!sameKeyCount)anyChanged=!0;if(!anyChanged)return NO_CHANGES;return{anyChanged,layoutChanged,contentChanged}}var LAYOUT_PROPS,TEXT_CONTENT_PROPS,STYLE_PROPS,NO_CHANGES;var init_helpers2=__esm(()=>{LAYOUT_PROPS=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","flexDirection","flexWrap","justifyContent","alignItems","alignContent","alignSelf","flexGrow","flexShrink","flexBasis","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","margin","marginX","marginY","marginTop","marginBottom","marginLeft","marginRight","gap","columnGap","rowGap","borderStyle","borderTop","borderBottom","borderLeft","borderRight","display","position","top","left","bottom","right","aspectRatio","overflow","overflowX","overflowY"]),TEXT_CONTENT_PROPS=new Set(["wrap","internal_transform"]),STYLE_PROPS=new Set(["color","backgroundColor","bold","dim","dimColor","italic","underline","underlineStyle","underlineColor","strikethrough","inverse","borderColor","borderBackgroundColor","borderTopBackgroundColor","borderBottomBackgroundColor","borderLeftBackgroundColor","borderRightBackgroundColor","borderStyle","outlineStyle","outlineColor","outlineDimColor","outlineTop","outlineBottom","outlineLeft","outlineRight","theme"]),NO_CHANGES={anyChanged:!1,layoutChanged:!1,contentChanged:!1}});import{createLogger as createLogger10}from"loggily";function createNode(type,props,measurer){let layoutNode=getLayoutEngine().createNode(),epoch=getRenderEpoch(),node={type,props,children:[],parent:null,layoutNode,boxRect:null,scrollRect:null,screenRect:null,prevLayout:null,prevScrollRect:null,prevScreenRect:null,layoutChangedThisFrame:epoch,layoutDirty:!0,dirtyBits:ALL_RECONCILER_BITS,dirtyEpoch:epoch,layoutSubscribers:new Set};if(type==="silvery-box")applyBoxProps(layoutNode,props);if(type==="silvery-text"){let cachedText=null,measureCache=new Map;layoutNode.setMeasureFunc((width,widthMode,height,heightMode)=>{measureStats.calls++,measureLog.debug?.(`measure "${collectPlainTextSkipHidden(node).slice(0,40)}" width=${width} widthMode=${widthMode} height=${height} heightMode=${heightMode}`);let cacheKey=`${width}|${widthMode}|${height}|${heightMode}`,cached=measureCache.get(cacheKey);if(cached&&cachedText!==null&&!isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT))return measureStats.cacheHits++,cached;let text;if(cachedText!==null&&!isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT))text=cachedText;else{measureStats.textCollects++;let newText=collectPlainTextSkipHidden(node);if(newText!==cachedText)measureCache.clear();text=newText,cachedText=text,node.dirtyBits&=~CONTENT_BIT}if(!text)return{width:0,height:0};let cachedAfterCollect=measureCache.get(cacheKey);if(cachedAfterCollect)return measureStats.cacheHits++,cachedAfterCollect;let lines=text.split(`
|
|
72
72
|
`),maxWidth=widthMode==="undefined"||Number.isNaN(width)?Number.POSITIVE_INFINITY:width,{wrap}=node.props,isTruncate=wrap==="truncate"||wrap==="truncate-start"||wrap==="truncate-middle"||wrap==="truncate-end"||wrap==="clip"||wrap===!1,isHardWrap=wrap==="hard",totalHeight=0,actualWidth=0,dw=measurer?measurer.displayWidth.bind(measurer):displayWidth,wt=measurer?measurer.wrapText.bind(measurer):wrapText,lh=getActiveLineHeight();for(let line of lines){measureStats.displayWidthCalls++;let lineWidth=dw(line);if(isTruncate||lineWidth<=maxWidth)totalHeight+=lh,actualWidth=Math.max(actualWidth,isTruncate?Math.min(lineWidth,maxWidth):lineWidth);else if(isHardWrap)if(Number.isFinite(maxWidth)&&maxWidth>0)totalHeight+=Math.ceil(lineWidth/maxWidth)*lh,actualWidth=Math.max(actualWidth,maxWidth);else totalHeight+=lh,actualWidth=Math.max(actualWidth,lineWidth);else{let wrapped=wt(line,maxWidth,!1,!0);totalHeight+=wrapped.length*lh;for(let wl of wrapped)actualWidth=Math.max(actualWidth,dw(wl))}}let resultHeight=Math.max(lh,totalHeight);if(heightMode==="exactly"&&Number.isFinite(height))resultHeight=height;else if(heightMode==="at-most"&&Number.isFinite(height))resultHeight=Math.min(resultHeight,height);let result={width:Math.min(actualWidth,maxWidth),height:resultHeight};return measureCache.set(cacheKey,result),result})}return node}function createRootNode(){let node=createNode("silvery-root",{}),c=getConstants();return node.layoutNode.setFlexDirection(c.FLEX_DIRECTION_COLUMN),node}function createVirtualTextNode(props){let epoch=getRenderEpoch();return{type:"silvery-text",props,children:[],parent:null,layoutNode:null,boxRect:null,scrollRect:null,screenRect:null,prevLayout:null,prevScrollRect:null,prevScreenRect:null,layoutChangedThisFrame:INITIAL_EPOCH,layoutDirty:!1,dirtyBits:CONTENT_BIT|STYLE_PROPS_BIT|BG_BIT|SUBTREE_BIT,dirtyEpoch:epoch,layoutSubscribers:new Set,isRawText:!1,inlineRects:null}}function applyBoxProps(layoutNode,props,oldProps){let c=getConstants(),wasRemoved=(prop)=>oldProps?.[prop]!==void 0&&props[prop]===void 0;if(props.width!==void 0){if(typeof props.width==="string"&&props.width.endsWith("%"))layoutNode.setWidthPercent(Number.parseFloat(props.width));else if(typeof props.width==="number")layoutNode.setWidth(props.width);else if(props.width==="auto")layoutNode.setWidthAuto()}else if(wasRemoved("width"))layoutNode.setWidthAuto();if(props.height!==void 0){if(typeof props.height==="string"&&props.height.endsWith("%"))layoutNode.setHeightPercent(Number.parseFloat(props.height));else if(typeof props.height==="number")layoutNode.setHeight(props.height);else if(props.height==="auto")layoutNode.setHeightAuto()}else if(wasRemoved("height"))layoutNode.setHeightAuto();if(props.minWidth!==void 0){if(typeof props.minWidth==="string"&&props.minWidth.endsWith("%"))layoutNode.setMinWidthPercent(Number.parseFloat(props.minWidth));else if(typeof props.minWidth==="number")layoutNode.setMinWidth(props.minWidth)}else if(wasRemoved("minWidth"))layoutNode.setMinWidth(0);if(props.minHeight!==void 0){if(typeof props.minHeight==="string"&&props.minHeight.endsWith("%"))layoutNode.setMinHeightPercent(Number.parseFloat(props.minHeight));else if(typeof props.minHeight==="number")layoutNode.setMinHeight(props.minHeight)}else if(wasRemoved("minHeight"))layoutNode.setMinHeight(0);if(props.maxWidth!==void 0){if(typeof props.maxWidth==="string"&&props.maxWidth.endsWith("%"))layoutNode.setMaxWidthPercent(Number.parseFloat(props.maxWidth));else if(typeof props.maxWidth==="number")layoutNode.setMaxWidth(props.maxWidth)}else if(wasRemoved("maxWidth"))layoutNode.setMaxWidth(Number.POSITIVE_INFINITY);if(props.maxHeight!==void 0){if(typeof props.maxHeight==="string"&&props.maxHeight.endsWith("%"))layoutNode.setMaxHeightPercent(Number.parseFloat(props.maxHeight));else if(typeof props.maxHeight==="number")layoutNode.setMaxHeight(props.maxHeight)}else if(wasRemoved("maxHeight"))layoutNode.setMaxHeight(Number.POSITIVE_INFINITY);if(props.flexGrow!==void 0)layoutNode.setFlexGrow(props.flexGrow);else if(wasRemoved("flexGrow"))layoutNode.setFlexGrow(0);if(props.flexShrink!==void 0)layoutNode.setFlexShrink(props.flexShrink);else if(wasRemoved("flexShrink"))layoutNode.setFlexShrink(1);if(props.flexBasis!==void 0){if(typeof props.flexBasis==="string"&&props.flexBasis.endsWith("%"))layoutNode.setFlexBasisPercent(Number.parseFloat(props.flexBasis));else if(props.flexBasis==="auto")layoutNode.setFlexBasisAuto();else if(typeof props.flexBasis==="number")layoutNode.setFlexBasis(props.flexBasis)}else if(wasRemoved("flexBasis"))layoutNode.setFlexBasisAuto();if(props.flexDirection!==void 0){let directionMap={row:c.FLEX_DIRECTION_ROW,column:c.FLEX_DIRECTION_COLUMN,"row-reverse":c.FLEX_DIRECTION_ROW_REVERSE,"column-reverse":c.FLEX_DIRECTION_COLUMN_REVERSE};layoutNode.setFlexDirection(directionMap[props.flexDirection]??c.FLEX_DIRECTION_ROW)}else if(wasRemoved("flexDirection"))layoutNode.setFlexDirection(c.FLEX_DIRECTION_ROW);if(props.flexWrap!==void 0){let wrapMap={nowrap:c.WRAP_NO_WRAP,wrap:c.WRAP_WRAP,"wrap-reverse":c.WRAP_WRAP_REVERSE};layoutNode.setFlexWrap(wrapMap[props.flexWrap]??c.WRAP_NO_WRAP)}else if(wasRemoved("flexWrap"))layoutNode.setFlexWrap(c.WRAP_NO_WRAP);if(props.alignItems!==void 0)layoutNode.setAlignItems(alignToConstant(props.alignItems));else if(wasRemoved("alignItems"))layoutNode.setAlignItems(c.ALIGN_STRETCH);if(props.alignSelf!==void 0)if(props.alignSelf==="auto")layoutNode.setAlignSelf(c.ALIGN_AUTO);else layoutNode.setAlignSelf(alignToConstant(props.alignSelf));else if(wasRemoved("alignSelf"))layoutNode.setAlignSelf(c.ALIGN_AUTO);if(props.alignContent!==void 0)layoutNode.setAlignContent(alignToConstant(props.alignContent));else if(wasRemoved("alignContent"))layoutNode.setAlignContent(c.ALIGN_FLEX_START);if(props.justifyContent!==void 0)layoutNode.setJustifyContent(justifyToConstant(props.justifyContent));else if(wasRemoved("justifyContent"))layoutNode.setJustifyContent(c.JUSTIFY_FLEX_START);if(applySpacing(layoutNode,"padding",props),applySpacing(layoutNode,"margin",props),props.gap!==void 0)layoutNode.setGap(c.GUTTER_ALL,props.gap);else if(wasRemoved("gap"))layoutNode.setGap(c.GUTTER_ALL,0);if(props.columnGap!==void 0)layoutNode.setGap(c.GUTTER_COLUMN,props.columnGap);else if(wasRemoved("columnGap"))layoutNode.setGap(c.GUTTER_COLUMN,0);if(props.rowGap!==void 0)layoutNode.setGap(c.GUTTER_ROW,props.rowGap);else if(wasRemoved("rowGap"))layoutNode.setGap(c.GUTTER_ROW,0);if(props.display!==void 0)layoutNode.setDisplay(props.display==="none"?c.DISPLAY_NONE:c.DISPLAY_FLEX);else if(wasRemoved("display"))layoutNode.setDisplay(c.DISPLAY_FLEX);if(props.position!==void 0)if(props.position==="absolute")layoutNode.setPositionType(c.POSITION_TYPE_ABSOLUTE);else if(props.position==="static")layoutNode.setPositionType(c.POSITION_TYPE_STATIC);else layoutNode.setPositionType(c.POSITION_TYPE_RELATIVE);else if(wasRemoved("position"))layoutNode.setPositionType(c.POSITION_TYPE_RELATIVE);if(props.position!=="static")applyPositionOffset(layoutNode,c.EDGE_TOP,props.top),applyPositionOffset(layoutNode,c.EDGE_LEFT,props.left),applyPositionOffset(layoutNode,c.EDGE_BOTTOM,props.bottom),applyPositionOffset(layoutNode,c.EDGE_RIGHT,props.right);if(props.aspectRatio!==void 0)layoutNode.setAspectRatio(props.aspectRatio);else if(wasRemoved("aspectRatio"))layoutNode.setAspectRatio(NaN);let effectiveOverflow=props.overflow??(props.overflowX==="hidden"||props.overflowY==="hidden"?"hidden":void 0);if(effectiveOverflow!==void 0)if(effectiveOverflow==="hidden")layoutNode.setOverflow(c.OVERFLOW_HIDDEN);else if(effectiveOverflow==="scroll")layoutNode.setOverflow(c.OVERFLOW_HIDDEN);else layoutNode.setOverflow(c.OVERFLOW_VISIBLE);else if(wasRemoved("overflow")||wasRemoved("overflowX")||wasRemoved("overflowY"))layoutNode.setOverflow(c.OVERFLOW_VISIBLE);if(props.borderStyle){let borderWidth=getActiveLineHeight()>1?0:1;if(props.borderTop!==!1)layoutNode.setBorder(c.EDGE_TOP,borderWidth);else layoutNode.setBorder(c.EDGE_TOP,0);if(props.borderBottom!==!1)layoutNode.setBorder(c.EDGE_BOTTOM,borderWidth);else layoutNode.setBorder(c.EDGE_BOTTOM,0);if(props.borderLeft!==!1)layoutNode.setBorder(c.EDGE_LEFT,borderWidth);else layoutNode.setBorder(c.EDGE_LEFT,0);if(props.borderRight!==!1)layoutNode.setBorder(c.EDGE_RIGHT,borderWidth);else layoutNode.setBorder(c.EDGE_RIGHT,0)}else layoutNode.setBorder(c.EDGE_TOP,0),layoutNode.setBorder(c.EDGE_BOTTOM,0),layoutNode.setBorder(c.EDGE_LEFT,0),layoutNode.setBorder(c.EDGE_RIGHT,0)}function applySpacing(layoutNode,type,props){let c=getConstants(),set=type==="padding"?layoutNode.setPadding.bind(layoutNode):layoutNode.setMargin.bind(layoutNode),all=props[type],x=props[`${type}X`],yy=props[`${type}Y`],top=props[`${type}Top`],bottom=props[`${type}Bottom`],left=props[`${type}Left`],right=props[`${type}Right`];set(c.EDGE_TOP,top??yy??all??0),set(c.EDGE_BOTTOM,bottom??yy??all??0),set(c.EDGE_LEFT,left??x??all??0),set(c.EDGE_RIGHT,right??x??all??0)}function applyPositionOffset(layoutNode,edge,value){if(value===void 0){layoutNode.setPosition(edge,NaN);return}if(typeof value==="string"&&value.endsWith("%"))layoutNode.setPositionPercent(edge,Number.parseFloat(value));else if(typeof value==="number")layoutNode.setPosition(edge,value)}function alignToConstant(align){let c=getConstants();return{"flex-start":c.ALIGN_FLEX_START,"flex-end":c.ALIGN_FLEX_END,center:c.ALIGN_CENTER,stretch:c.ALIGN_STRETCH,baseline:c.ALIGN_BASELINE,"space-between":c.ALIGN_SPACE_BETWEEN,"space-around":c.ALIGN_SPACE_AROUND,"space-evenly":c.ALIGN_SPACE_EVENLY}[align]??c.ALIGN_STRETCH}function justifyToConstant(justify){let c=getConstants();return{"flex-start":c.JUSTIFY_FLEX_START,"flex-end":c.JUSTIFY_FLEX_END,center:c.JUSTIFY_CENTER,"space-between":c.JUSTIFY_SPACE_BETWEEN,"space-around":c.JUSTIFY_SPACE_AROUND,"space-evenly":c.JUSTIFY_SPACE_EVENLY}[justify]??c.JUSTIFY_FLEX_START}var measureLog;var init_nodes=__esm(()=>{init_unicode();init_measure_stats();measureLog=createLogger10("silvery:measure")});import{createContext as createContext2}from"react";import{DefaultEventPriority,DiscreteEventPriority,NoEventPriority}from"react-reconciler/constants.js";import{createLogger as createLogger11}from"loggily";function normalizeNodeType(type){if(type==="ink-box")return"silvery-box";if(type==="ink-text")return"silvery-text";return type}function setOnNodeRemoved(callback){onNodeRemovedCallback=callback}function markSubtreeDirty(node){let epoch=getRenderEpoch();while(node&&!isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT)){if(node.dirtyEpoch!==epoch)node.dirtyBits=SUBTREE_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=SUBTREE_BIT;node=node.parent}}function markLayoutAncestorDirty(node){if(node.layoutNode)return;let ancestor=node.parent;while(ancestor&&!ancestor.layoutNode)ancestor=ancestor.parent;if(ancestor?.layoutNode){let epoch=getRenderEpoch();if(ancestor.dirtyEpoch!==epoch)ancestor.dirtyBits=CONTENT_BIT|STYLE_PROPS_BIT,ancestor.dirtyEpoch=epoch;else ancestor.dirtyBits|=CONTENT_BIT|STYLE_PROPS_BIT;ancestor.layoutDirty=!0,ancestor.layoutNode.markDirty(),trackLayoutDirty(ancestor),trackContentDirty(ancestor)}}function runWithDiscreteEvent(fn){let prev=currentUpdatePriority;currentUpdatePriority=DiscreteEventPriority;try{fn()}finally{currentUpdatePriority=prev}}var log9,onNodeRemovedCallback=null,hasWarnedBoxInsideText=!1,inkStrictValidation=!1,currentUpdatePriority,hostConfig;var init_host_config=__esm(()=>{init_dirty_tracking();init_helpers2();init_nodes();log9=createLogger11("silvery:reconciler");currentUpdatePriority=NoEventPriority;hostConfig={rendererPackageName:"@silvery/ag-react",rendererVersion:"0.0.1",supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,isPrimaryRenderer:!0,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,getRootHostContext(){return{isInsideText:!1}},getChildHostContext(parentHostContext,type){let normalizedType=normalizeNodeType(type),isInsideText=parentHostContext.isInsideText||normalizedType==="silvery-text";if(isInsideText===parentHostContext.isInsideText)return parentHostContext;return{isInsideText}},createInstance(type,props,_rootContainer,hostContext){if(type=normalizeNodeType(type),"style"in props&&props.style&&typeof props.style==="object")props={...props.style,...props};if(type==="silvery-box"&&hostContext.isInsideText){if(inkStrictValidation)throw Error("<Box> can’t be nested inside <Text> component");if(!hasWarnedBoxInsideText)hasWarnedBoxInsideText=!0,log9.warn?.("<Box> cannot be nested inside <Text>. This produces undefined layout behavior.")}if(type==="silvery-text"&&hostContext.isInsideText)return createVirtualTextNode(props);return createNode(type,props)},createTextInstance(text,_rootContainer,hostContext){if(inkStrictValidation&&!hostContext.isInsideText&&text.trim().length>0)throw Error(`Text string "${text}" must be rendered inside <Text> component`);let epoch=getRenderEpoch();return{type:"silvery-text",props:{children:text},children:[],parent:null,layoutNode:null,boxRect:null,scrollRect:null,screenRect:null,prevLayout:null,prevScrollRect:null,prevScreenRect:null,layoutChangedThisFrame:INITIAL_EPOCH,layoutDirty:!1,dirtyBits:CONTENT_BIT|STYLE_PROPS_BIT|BG_BIT|SUBTREE_BIT,dirtyEpoch:epoch,layoutSubscribers:new Set,textContent:text,isRawText:!0}},appendChild(parentInstance,child){let existingIndex=parentInstance.children.indexOf(child);if(existingIndex!==-1){if(parentInstance.children.splice(existingIndex,1),parentInstance.layoutNode&&child.layoutNode)parentInstance.layoutNode.removeChild(child.layoutNode)}if(child.parent=parentInstance,parentInstance.children.push(child),parentInstance.layoutNode&&child.layoutNode){let layoutIndex=parentInstance.children.filter((c)=>c.layoutNode!==null).length-1;parentInstance.layoutNode.insertChild(child.layoutNode,layoutIndex)}{let epoch=getRenderEpoch(),bits=CHILDREN_BIT|CONTENT_BIT;parentInstance.dirtyBits=parentInstance.dirtyEpoch!==epoch?bits:parentInstance.dirtyBits|bits,parentInstance.dirtyEpoch=epoch}parentInstance.layoutDirty=!0,parentInstance.layoutNode?.markDirty(),trackLayoutDirty(parentInstance),trackContentDirty(parentInstance),markLayoutAncestorDirty(parentInstance),markSubtreeDirty(parentInstance)},appendInitialChild(parentInstance,child){if(child.parent=parentInstance,parentInstance.children.push(child),parentInstance.layoutNode&&child.layoutNode){let layoutIndex=parentInstance.children.filter((c)=>c.layoutNode!==null).length-1;parentInstance.layoutNode.insertChild(child.layoutNode,layoutIndex)}},appendChildToContainer(container,child){let existingIndex=container.root.children.indexOf(child);if(existingIndex!==-1){if(container.root.children.splice(existingIndex,1),container.root.layoutNode&&child.layoutNode)container.root.layoutNode.removeChild(child.layoutNode)}if(child.parent=container.root,container.root.children.push(child),container.root.layoutNode&&child.layoutNode){let layoutIndex=container.root.children.filter((c)=>c.layoutNode!==null).length-1;container.root.layoutNode.insertChild(child.layoutNode,layoutIndex)}{let epoch=getRenderEpoch(),bits=CHILDREN_BIT|CONTENT_BIT;container.root.dirtyBits=container.root.dirtyEpoch!==epoch?bits:container.root.dirtyBits|bits,container.root.dirtyEpoch=epoch}container.root.layoutDirty=!0,container.root.layoutNode?.markDirty(),trackLayoutDirty(container.root),trackContentDirty(container.root),markSubtreeDirty(container.root)},removeChild(parentInstance,child){let index=parentInstance.children.indexOf(child);if(index!==-1){if(onNodeRemovedCallback?.(child),parentInstance.children.splice(index,1),parentInstance.layoutNode&&child.layoutNode)parentInstance.layoutNode.removeChild(child.layoutNode),child.layoutNode.free();child.parent=null;{let epoch=getRenderEpoch(),bits=CHILDREN_BIT|CONTENT_BIT;parentInstance.dirtyBits=parentInstance.dirtyEpoch!==epoch?bits:parentInstance.dirtyBits|bits,parentInstance.dirtyEpoch=epoch}parentInstance.layoutDirty=!0,parentInstance.layoutNode?.markDirty(),trackLayoutDirty(parentInstance),trackContentDirty(parentInstance),markLayoutAncestorDirty(parentInstance),markSubtreeDirty(parentInstance)}},removeChildFromContainer(container,child){let index=container.root.children.indexOf(child);if(index!==-1){if(onNodeRemovedCallback?.(child),container.root.children.splice(index,1),container.root.layoutNode&&child.layoutNode)container.root.layoutNode.removeChild(child.layoutNode),child.layoutNode.free();child.parent=null;{let epoch=getRenderEpoch(),bits=CHILDREN_BIT|CONTENT_BIT;container.root.dirtyBits=container.root.dirtyEpoch!==epoch?bits:container.root.dirtyBits|bits,container.root.dirtyEpoch=epoch}container.root.layoutDirty=!0,container.root.layoutNode?.markDirty(),trackLayoutDirty(container.root),trackContentDirty(container.root),markSubtreeDirty(container.root)}},insertBefore(parentInstance,child,beforeChild){let existingIndex=parentInstance.children.indexOf(child);if(existingIndex!==-1){if(parentInstance.children.splice(existingIndex,1),parentInstance.layoutNode&&child.layoutNode)parentInstance.layoutNode.removeChild(child.layoutNode)}let beforeIndex=parentInstance.children.indexOf(beforeChild);if(beforeIndex!==-1){if(child.parent=parentInstance,parentInstance.children.splice(beforeIndex,0,child),parentInstance.layoutNode&&child.layoutNode){let layoutIndex=parentInstance.children.slice(0,beforeIndex).filter((c)=>c.layoutNode!==null).length;parentInstance.layoutNode.insertChild(child.layoutNode,layoutIndex)}{let epoch=getRenderEpoch(),bits=CHILDREN_BIT|CONTENT_BIT;parentInstance.dirtyBits=parentInstance.dirtyEpoch!==epoch?bits:parentInstance.dirtyBits|bits,parentInstance.dirtyEpoch=epoch}parentInstance.layoutDirty=!0,parentInstance.layoutNode?.markDirty(),trackLayoutDirty(parentInstance),trackContentDirty(parentInstance),markLayoutAncestorDirty(parentInstance),markSubtreeDirty(parentInstance)}},insertInContainerBefore(container,child,beforeChild){let existingIndex=container.root.children.indexOf(child);if(existingIndex!==-1){if(container.root.children.splice(existingIndex,1),container.root.layoutNode&&child.layoutNode)container.root.layoutNode.removeChild(child.layoutNode)}let beforeIndex=container.root.children.indexOf(beforeChild);if(beforeIndex!==-1){if(child.parent=container.root,container.root.children.splice(beforeIndex,0,child),container.root.layoutNode&&child.layoutNode){let layoutIndex=container.root.children.slice(0,beforeIndex).filter((c)=>c.layoutNode!==null).length;container.root.layoutNode.insertChild(child.layoutNode,layoutIndex)}{let epoch=getRenderEpoch(),bits=CHILDREN_BIT|CONTENT_BIT;container.root.dirtyBits=container.root.dirtyEpoch!==epoch?bits:container.root.dirtyBits|bits,container.root.dirtyEpoch=epoch}container.root.layoutDirty=!0,container.root.layoutNode?.markDirty(),trackLayoutDirty(container.root),trackContentDirty(container.root),markSubtreeDirty(container.root)}},prepareUpdate(_instance,_type,oldProps,newProps){return classifyPropChanges(oldProps,newProps).anyChanged},commitUpdate(instance,_type,oldProps,newProps,_finishedWork){if("style"in oldProps&&oldProps.style&&typeof oldProps.style==="object")oldProps={...oldProps.style,...oldProps};if("style"in newProps&&newProps.style&&typeof newProps.style==="object")newProps={...newProps.style,...newProps};let{anyChanged,layoutChanged,contentChanged}=classifyPropChanges(oldProps,newProps);if(!anyChanged){instance.props=newProps;return}if(layoutChanged){if(instance.layoutNode)applyBoxProps(instance.layoutNode,newProps,oldProps),instance.layoutNode.markDirty();instance.layoutDirty=!0,trackLayoutDirty(instance)}if(contentChanged){let epoch=getRenderEpoch(),bits=STYLE_PROPS_BIT;if(contentChanged==="text"){if(bits|=CONTENT_BIT,instance.layoutNode)instance.layoutNode.markDirty()}if(oldProps.backgroundColor!==newProps.backgroundColor)bits|=BG_BIT;if(oldProps.borderStyle&&!newProps.borderStyle)bits|=BG_BIT;if(oldProps.outlineStyle&&!newProps.outlineStyle)bits|=BG_BIT;if(oldProps.theme!==newProps.theme)bits|=BG_BIT;instance.dirtyBits=instance.dirtyEpoch!==epoch?bits:instance.dirtyBits|bits,instance.dirtyEpoch=epoch}if(contentChanged)trackContentDirty(instance);if(contentChanged==="style"&&!layoutChanged&&!isDirty(instance.dirtyBits,instance.dirtyEpoch,BG_BIT)&&!isDirty(instance.dirtyBits,instance.dirtyEpoch,CONTENT_BIT)&&!isDirty(instance.dirtyBits,instance.dirtyEpoch,CHILDREN_BIT))trackStyleOnlyDirty(instance);instance.props=newProps;let scrollToChanged=oldProps.scrollTo!==newProps.scrollTo,scrollOffsetChanged=oldProps.scrollOffset!==newProps.scrollOffset;if(scrollToChanged||scrollOffsetChanged)trackScrollDirty(instance);if(instance.layoutDirty||contentChanged||scrollToChanged||scrollOffsetChanged)markLayoutAncestorDirty(instance),markSubtreeDirty(instance)},commitTextUpdate(textInstance,_oldText,newText){textInstance.textContent=newText,textInstance.props={children:newText};let epoch=getRenderEpoch(),bits=CONTENT_BIT|STYLE_PROPS_BIT;textInstance.dirtyBits=textInstance.dirtyEpoch!==epoch?bits:textInstance.dirtyBits|bits,textInstance.dirtyEpoch=epoch,trackContentDirty(textInstance),markLayoutAncestorDirty(textInstance),markSubtreeDirty(textInstance)},finalizeInitialChildren(){return!1},prepareForCommit(){return null},resetAfterCommit(container){container.onRender()},getPublicInstance(instance){return instance},shouldSetTextContent(){return!1},clearContainer(container){for(let child of container.root.children)onNodeRemovedCallback?.(child);for(let child of container.root.children)if(container.root.layoutNode&&child.layoutNode)container.root.layoutNode.removeChild(child.layoutNode),child.layoutNode.free();container.root.children=[];{let epoch=getRenderEpoch(),bits=CHILDREN_BIT|CONTENT_BIT;container.root.dirtyBits=container.root.dirtyEpoch!==epoch?bits:container.root.dirtyBits|bits,container.root.dirtyEpoch=epoch}container.root.layoutDirty=!0,container.root.layoutNode?.markDirty(),trackLayoutDirty(container.root),trackContentDirty(container.root),markSubtreeDirty(container.root)},preparePortalMount(){},getCurrentEventPriority(){if(currentUpdatePriority!==NoEventPriority)return currentUpdatePriority;return DefaultEventPriority},getInstanceFromNode(){return null},beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},prepareScopeUpdate(){},getInstanceFromScope(){return null},detachDeletedInstance(){},setCurrentUpdatePriority(newPriority){currentUpdatePriority=newPriority},getCurrentUpdatePriority(){return currentUpdatePriority},resolveUpdatePriority(){if(currentUpdatePriority!==NoEventPriority)return currentUpdatePriority;return DefaultEventPriority},maySuspendCommit(){return!1},NotPendingTransition:null,HostTransitionContext:createContext2(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},hideInstance(instance){instance.hidden=!0;let epoch=getRenderEpoch(),bits=CONTENT_BIT|STYLE_PROPS_BIT;if(instance.dirtyBits=instance.dirtyEpoch!==epoch?bits:instance.dirtyBits|bits,instance.dirtyEpoch=epoch,instance.layoutDirty=!0,instance.layoutNode)instance.layoutNode.markDirty();if(trackLayoutDirty(instance),trackContentDirty(instance),instance.parent){if(instance.parent.dirtyEpoch!==epoch)instance.parent.dirtyBits=CONTENT_BIT,instance.parent.dirtyEpoch=epoch;else instance.parent.dirtyBits|=CONTENT_BIT;trackContentDirty(instance.parent)}markLayoutAncestorDirty(instance),markSubtreeDirty(instance)},unhideInstance(instance,_props){instance.hidden=!1;let epoch=getRenderEpoch(),bits=CONTENT_BIT|STYLE_PROPS_BIT;if(instance.dirtyBits=instance.dirtyEpoch!==epoch?bits:instance.dirtyBits|bits,instance.dirtyEpoch=epoch,instance.layoutDirty=!0,instance.layoutNode)instance.layoutNode.markDirty();if(trackLayoutDirty(instance),trackContentDirty(instance),instance.parent){if(instance.parent.dirtyEpoch!==epoch)instance.parent.dirtyBits=CONTENT_BIT,instance.parent.dirtyEpoch=epoch;else instance.parent.dirtyBits|=CONTENT_BIT;trackContentDirty(instance.parent)}markLayoutAncestorDirty(instance),markSubtreeDirty(instance)},hideTextInstance(textInstance){textInstance.hidden=!0;let epoch=getRenderEpoch(),bits=CONTENT_BIT|STYLE_PROPS_BIT;if(textInstance.dirtyBits=textInstance.dirtyEpoch!==epoch?bits:textInstance.dirtyBits|bits,textInstance.dirtyEpoch=epoch,trackContentDirty(textInstance),textInstance.parent){if(textInstance.parent.dirtyEpoch!==epoch)textInstance.parent.dirtyBits=CONTENT_BIT,textInstance.parent.dirtyEpoch=epoch;else textInstance.parent.dirtyBits|=CONTENT_BIT;trackContentDirty(textInstance.parent)}markLayoutAncestorDirty(textInstance),markSubtreeDirty(textInstance)},unhideTextInstance(textInstance,_text){textInstance.hidden=!1;let epoch=getRenderEpoch(),bits=CONTENT_BIT|STYLE_PROPS_BIT;if(textInstance.dirtyBits=textInstance.dirtyEpoch!==epoch?bits:textInstance.dirtyBits|bits,textInstance.dirtyEpoch=epoch,trackContentDirty(textInstance),textInstance.parent){if(textInstance.parent.dirtyEpoch!==epoch)textInstance.parent.dirtyBits=CONTENT_BIT,textInstance.parent.dirtyEpoch=epoch;else textInstance.parent.dirtyBits|=CONTENT_BIT;trackContentDirty(textInstance.parent)}markLayoutAncestorDirty(textInstance),markSubtreeDirty(textInstance)}}});import Reconciler from"react-reconciler";function createContainer(onRender){return{root:createRootNode(),onRender}}function createFiberRoot(container){return reconciler.createContainer(container,1,null,!1,null,"",()=>{},()=>{},()=>{},null)}function getContainerRoot(container){return container.root}var reconciler;var init_reconciler=__esm(()=>{init_host_config();init_nodes();init_host_config();reconciler=Reconciler(hostConfig)});import Reconciler2 from"react-reconciler";var stringReconciler;var init_string_reconciler=__esm(()=>{init_host_config();stringReconciler=Reconciler2({...hostConfig,isPrimaryRenderer:!1})});var exports_render_string={};__export(exports_render_string,{renderStringSync:()=>renderStringSync,renderString:()=>renderString});import React,{act}from"react";async function ensureLayoutEngine(){if(engineInitialized||isLayoutEngineInitialized())return;let{ensureDefaultLayoutEngine:ensureDefaultLayoutEngine2}=await Promise.resolve().then(() => exports_layout_engine);await ensureDefaultLayoutEngine2(),engineInitialized=!0}async function renderString(element,options={}){return await ensureLayoutEngine(),renderStringSync(element,options)}function renderStringSync(element,options={}){if(!isLayoutEngineInitialized())throw Error("Layout engine not initialized. Use renderString() (async) or initialize with setLayoutEngine().");let{width=80,height=24,plain=!1,pipelineConfig,trimTrailingWhitespace=!0,trimEmptyLines=!0,onContentHeight,alwaysStyled=!1}=options,hadReactCommit=!1,container=createContainer(()=>{hadReactCommit=!0}),uncaughtError=null,onUncaughtError=(error)=>{uncaughtError=error},fiberRoot=stringReconciler.createContainer(container,1,null,!1,null,"",onUncaughtError,()=>{},()=>{},null),mockStdout={columns:width,rows:height,write:()=>!0,isTTY:!1,on:()=>mockStdout,off:()=>mockStdout,once:()=>mockStdout,removeListener:()=>mockStdout,addListener:()=>mockStdout},mockTerm=createTerm({color:plain?null:"truecolor"}),wrapped=React.createElement(TermContext.Provider,{value:mockTerm},React.createElement(StdoutContext.Provider,{value:{stdout:mockStdout,write:()=>{}}},React.createElement(StderrContext.Provider,{value:{stderr:process.stderr,write:(data)=>{process.stderr.write(data)}}},element)));if(withActEnvironment(()=>{act(()=>{stringReconciler.updateContainerSync(wrapped,fiberRoot,null,null),stringReconciler.flushSyncWork()})}),uncaughtError)throw uncaughtError instanceof Error?uncaughtError:Error(String(uncaughtError));let buffer,rootNode,MAX_ITERATIONS=5;for(let i=0;i<MAX_ITERATIONS;i++)if(hadReactCommit=!1,withActEnvironment(()=>{if(act(()=>{let root=getContainerRoot(container);rootNode=root,buffer=executeRender(root,width,height,null,void 0,pipelineConfig).buffer}),!hadReactCommit)act(()=>{stringReconciler.flushSyncWork()})}),!hadReactCommit)break;if(onContentHeight&&rootNode){let maxBottom=0,hasChildren=!1;for(let child of rootNode.children)if(child.boxRect){hasChildren=!0;let props=child.props,mb=props.marginBottom??props.marginY??props.margin??0,childBottom=child.boxRect.y+child.boxRect.height+mb;if(childBottom>maxBottom)maxBottom=childBottom}onContentHeight(hasChildren?maxBottom:0)}return withActEnvironment(()=>{act(()=>{stringReconciler.updateContainerSync(null,fiberRoot,null,null),stringReconciler.flushSyncWork()})}),plain&&!alwaysStyled?bufferToText(buffer,{trimTrailingWhitespace,trimEmptyLines}):bufferToStyledText(buffer,{trimTrailingWhitespace,trimEmptyLines})}function withActEnvironment(fn){let prev=globalThis.IS_REACT_ACT_ENVIRONMENT;globalThis.IS_REACT_ACT_ENVIRONMENT=!0;try{fn()}finally{globalThis.IS_REACT_ACT_ENVIRONMENT=prev}}var engineInitialized=!1;var init_render_string=__esm(()=>{init_ansi2();init_buffer();init_context();init_pipeline2();init_reconciler();init_string_reconciler()});var require_constants=__commonJS((exports,module)=>{var BINARY_TYPES=["nodebuffer","arraybuffer","fragments"],hasBlob=typeof Blob<"u";if(hasBlob)BINARY_TYPES.push("blob");module.exports={BINARY_TYPES,CLOSE_TIMEOUT:30000,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var require_buffer_util=__commonJS((exports,module)=>{var{EMPTY_BUFFER}=require_constants(),FastBuffer=Buffer[Symbol.species];function concat(list,totalLength){if(list.length===0)return EMPTY_BUFFER;if(list.length===1)return list[0];let target=Buffer.allocUnsafe(totalLength),offset=0;for(let i=0;i<list.length;i++){let buf=list[i];target.set(buf,offset),offset+=buf.length}if(offset<totalLength)return new FastBuffer(target.buffer,target.byteOffset,offset);return target}function _mask(source,mask,output,offset,length){for(let i=0;i<length;i++)output[offset+i]=source[i]^mask[i&3]}function _unmask(buffer,mask){for(let i=0;i<buffer.length;i++)buffer[i]^=mask[i&3]}function toArrayBuffer(buf){if(buf.length===buf.buffer.byteLength)return buf.buffer;return buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.length)}function toBuffer(data){if(toBuffer.readOnly=!0,Buffer.isBuffer(data))return data;let buf;if(data instanceof ArrayBuffer)buf=new FastBuffer(data);else if(ArrayBuffer.isView(data))buf=new FastBuffer(data.buffer,data.byteOffset,data.byteLength);else buf=Buffer.from(data),toBuffer.readOnly=!1;return buf}module.exports={concat,mask:_mask,toArrayBuffer,toBuffer,unmask:_unmask};if(!process.env.WS_NO_BUFFER_UTIL)try{let bufferUtil=(()=>{throw new Error("Cannot require module "+"bufferutil");})();module.exports.mask=function(source,mask,output,offset,length){if(length<48)_mask(source,mask,output,offset,length);else bufferUtil.mask(source,mask,output,offset,length)},module.exports.unmask=function(buffer,mask){if(buffer.length<32)_unmask(buffer,mask);else bufferUtil.unmask(buffer,mask)}}catch(e){}});var require_limiter=__commonJS((exports,module)=>{var kDone=Symbol("kDone"),kRun=Symbol("kRun");class Limiter{constructor(concurrency){this[kDone]=()=>{this.pending--,this[kRun]()},this.concurrency=concurrency||1/0,this.jobs=[],this.pending=0}add(job){this.jobs.push(job),this[kRun]()}[kRun](){if(this.pending===this.concurrency)return;if(this.jobs.length){let job=this.jobs.shift();this.pending++,job(this[kDone])}}}module.exports=Limiter});var require_permessage_deflate=__commonJS((exports,module)=>{var zlib=__require("zlib"),bufferUtil=require_buffer_util(),Limiter=require_limiter(),{kStatusCode}=require_constants(),FastBuffer=Buffer[Symbol.species],TRAILER=Buffer.from([0,0,255,255]),kPerMessageDeflate=Symbol("permessage-deflate"),kTotalLength=Symbol("total-length"),kCallback=Symbol("callback"),kBuffers=Symbol("buffers"),kError=Symbol("error"),zlibLimiter;class PerMessageDeflate{constructor(options){if(this._options=options||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!zlibLimiter){let concurrency=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;zlibLimiter=new Limiter(concurrency)}}static get extensionName(){return"permessage-deflate"}offer(){let params={};if(this._options.serverNoContextTakeover)params.server_no_context_takeover=!0;if(this._options.clientNoContextTakeover)params.client_no_context_takeover=!0;if(this._options.serverMaxWindowBits)params.server_max_window_bits=this._options.serverMaxWindowBits;if(this._options.clientMaxWindowBits)params.client_max_window_bits=this._options.clientMaxWindowBits;else if(this._options.clientMaxWindowBits==null)params.client_max_window_bits=!0;return params}accept(configurations){return configurations=this.normalizeParams(configurations),this.params=this._isServer?this.acceptAsServer(configurations):this.acceptAsClient(configurations),this.params}cleanup(){if(this._inflate)this._inflate.close(),this._inflate=null;if(this._deflate){let callback=this._deflate[kCallback];if(this._deflate.close(),this._deflate=null,callback)callback(Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(offers){let opts=this._options,accepted=offers.find((params)=>{if(opts.serverNoContextTakeover===!1&¶ms.server_no_context_takeover||params.server_max_window_bits&&(opts.serverMaxWindowBits===!1||typeof opts.serverMaxWindowBits==="number"&&opts.serverMaxWindowBits>params.server_max_window_bits)||typeof opts.clientMaxWindowBits==="number"&&!params.client_max_window_bits)return!1;return!0});if(!accepted)throw Error("None of the extension offers can be accepted");if(opts.serverNoContextTakeover)accepted.server_no_context_takeover=!0;if(opts.clientNoContextTakeover)accepted.client_no_context_takeover=!0;if(typeof opts.serverMaxWindowBits==="number")accepted.server_max_window_bits=opts.serverMaxWindowBits;if(typeof opts.clientMaxWindowBits==="number")accepted.client_max_window_bits=opts.clientMaxWindowBits;else if(accepted.client_max_window_bits===!0||opts.clientMaxWindowBits===!1)delete accepted.client_max_window_bits;return accepted}acceptAsClient(response){let params=response[0];if(this._options.clientNoContextTakeover===!1&¶ms.client_no_context_takeover)throw Error('Unexpected parameter "client_no_context_takeover"');if(!params.client_max_window_bits){if(typeof this._options.clientMaxWindowBits==="number")params.client_max_window_bits=this._options.clientMaxWindowBits}else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==="number"&¶ms.client_max_window_bits>this._options.clientMaxWindowBits)throw Error('Unexpected or invalid parameter "client_max_window_bits"');return params}normalizeParams(configurations){return configurations.forEach((params)=>{Object.keys(params).forEach((key)=>{let value=params[key];if(value.length>1)throw Error(`Parameter "${key}" must have only a single value`);if(value=value[0],key==="client_max_window_bits"){if(value!==!0){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else if(key==="server_max_window_bits"){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(key==="client_no_context_takeover"||key==="server_no_context_takeover"){if(value!==!0)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else throw Error(`Unknown parameter "${key}"`);params[key]=value})}),configurations}decompress(data,fin,callback){zlibLimiter.add((done)=>{this._decompress(data,fin,(err,result)=>{done(),callback(err,result)})})}compress(data,fin,callback){zlibLimiter.add((done)=>{this._compress(data,fin,(err,result)=>{done(),callback(err,result)})})}_decompress(data,fin,callback){let endpoint=this._isServer?"client":"server";if(!this._inflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]!=="number"?zlib.Z_DEFAULT_WINDOWBITS:this.params[key];this._inflate=zlib.createInflateRaw({...this._options.zlibInflateOptions,windowBits}),this._inflate[kPerMessageDeflate]=this,this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],this._inflate.on("error",inflateOnError),this._inflate.on("data",inflateOnData)}if(this._inflate[kCallback]=callback,this._inflate.write(data),fin)this._inflate.write(TRAILER);this._inflate.flush(()=>{let err=this._inflate[kError];if(err){this._inflate.close(),this._inflate=null,callback(err);return}let data2=bufferUtil.concat(this._inflate[kBuffers],this._inflate[kTotalLength]);if(this._inflate._readableState.endEmitted)this._inflate.close(),this._inflate=null;else if(this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`])this._inflate.reset();callback(null,data2)})}_compress(data,fin,callback){let endpoint=this._isServer?"server":"client";if(!this._deflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]!=="number"?zlib.Z_DEFAULT_WINDOWBITS:this.params[key];this._deflate=zlib.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits}),this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],this._deflate.on("data",deflateOnData)}this._deflate[kCallback]=callback,this._deflate.write(data),this._deflate.flush(zlib.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let data2=bufferUtil.concat(this._deflate[kBuffers],this._deflate[kTotalLength]);if(fin)data2=new FastBuffer(data2.buffer,data2.byteOffset,data2.length-4);if(this._deflate[kCallback]=null,this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`])this._deflate.reset();callback(null,data2)})}}module.exports=PerMessageDeflate;function deflateOnData(chunk){this[kBuffers].push(chunk),this[kTotalLength]+=chunk.length}function inflateOnData(chunk){if(this[kTotalLength]+=chunk.length,this[kPerMessageDeflate]._maxPayload<1||this[kTotalLength]<=this[kPerMessageDeflate]._maxPayload){this[kBuffers].push(chunk);return}this[kError]=RangeError("Max payload size exceeded"),this[kError].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[kError][kStatusCode]=1009,this.removeListener("data",inflateOnData),this.reset()}function inflateOnError(err){if(this[kPerMessageDeflate]._inflate=null,this[kError]){this[kCallback](this[kError]);return}err[kStatusCode]=1007,this[kCallback](err)}});var require_validation=__commonJS((exports,module)=>{var{isUtf8}=__require("buffer"),{hasBlob}=require_constants(),tokenChars=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function isValidStatusCode(code){return code>=1000&&code<=1014&&code!==1004&&code!==1005&&code!==1006||code>=3000&&code<=4999}function _isValidUTF8(buf){let len=buf.length,i=0;while(i<len)if((buf[i]&128)===0)i++;else if((buf[i]&224)===192){if(i+1===len||(buf[i+1]&192)!==128||(buf[i]&254)===192)return!1;i+=2}else if((buf[i]&240)===224){if(i+2>=len||(buf[i+1]&192)!==128||(buf[i+2]&192)!==128||buf[i]===224&&(buf[i+1]&224)===128||buf[i]===237&&(buf[i+1]&224)===160)return!1;i+=3}else if((buf[i]&248)===240){if(i+3>=len||(buf[i+1]&192)!==128||(buf[i+2]&192)!==128||(buf[i+3]&192)!==128||buf[i]===240&&(buf[i+1]&240)===128||buf[i]===244&&buf[i+1]>143||buf[i]>244)return!1;i+=4}else return!1;return!0}function isBlob(value){return hasBlob&&typeof value==="object"&&typeof value.arrayBuffer==="function"&&typeof value.type==="string"&&typeof value.stream==="function"&&(value[Symbol.toStringTag]==="Blob"||value[Symbol.toStringTag]==="File")}module.exports={isBlob,isValidStatusCode,isValidUTF8:_isValidUTF8,tokenChars};if(isUtf8)module.exports.isValidUTF8=function(buf){return buf.length<24?_isValidUTF8(buf):isUtf8(buf)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let isValidUTF8=(()=>{throw new Error("Cannot require module "+"utf-8-validate");})();module.exports.isValidUTF8=function(buf){return buf.length<32?_isValidUTF8(buf):isValidUTF8(buf)}}catch(e){}});var require_receiver=__commonJS((exports,module)=>{var{Writable}=__require("stream"),PerMessageDeflate=require_permessage_deflate(),{BINARY_TYPES,EMPTY_BUFFER,kStatusCode,kWebSocket}=require_constants(),{concat,toArrayBuffer,unmask}=require_buffer_util(),{isValidStatusCode,isValidUTF8}=require_validation(),FastBuffer=Buffer[Symbol.species];class Receiver extends Writable{constructor(options={}){super();this._allowSynchronousEvents=options.allowSynchronousEvents!==void 0?options.allowSynchronousEvents:!0,this._binaryType=options.binaryType||BINARY_TYPES[0],this._extensions=options.extensions||{},this._isServer=!!options.isServer,this._maxPayload=options.maxPayload|0,this._skipUTF8Validation=!!options.skipUTF8Validation,this[kWebSocket]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(chunk,encoding,cb){if(this._opcode===8&&this._state==0)return cb();this._bufferedBytes+=chunk.length,this._buffers.push(chunk),this.startLoop(cb)}consume(n){if(this._bufferedBytes-=n,n===this._buffers[0].length)return this._buffers.shift();if(n<this._buffers[0].length){let buf=this._buffers[0];return this._buffers[0]=new FastBuffer(buf.buffer,buf.byteOffset+n,buf.length-n),new FastBuffer(buf.buffer,buf.byteOffset,n)}let dst=Buffer.allocUnsafe(n);do{let buf=this._buffers[0],offset=dst.length-n;if(n>=buf.length)dst.set(this._buffers.shift(),offset);else dst.set(new Uint8Array(buf.buffer,buf.byteOffset,n),offset),this._buffers[0]=new FastBuffer(buf.buffer,buf.byteOffset+n,buf.length-n);n-=buf.length}while(n>0);return dst}startLoop(cb){this._loop=!0;do switch(this._state){case 0:this.getInfo(cb);break;case 1:this.getPayloadLength16(cb);break;case 2:this.getPayloadLength64(cb);break;case 3:this.getMask();break;case 4:this.getData(cb);break;case 5:case 6:this._loop=!1;return}while(this._loop);if(!this._errored)cb()}getInfo(cb){if(this._bufferedBytes<2){this._loop=!1;return}let buf=this.consume(2);if((buf[0]&48)!==0){let error=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");cb(error);return}let compressed=(buf[0]&64)===64;if(compressed&&!this._extensions[PerMessageDeflate.extensionName]){let error=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");cb(error);return}if(this._fin=(buf[0]&128)===128,this._opcode=buf[0]&15,this._payloadLength=buf[1]&127,this._opcode===0){if(compressed){let error=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");cb(error);return}if(!this._fragmented){let error=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");cb(error);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let error=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");cb(error);return}this._compressed=compressed}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let error=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");cb(error);return}if(compressed){let error=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");cb(error);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let error=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");cb(error);return}}else{let error=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");cb(error);return}if(!this._fin&&!this._fragmented)this._fragmented=this._opcode;if(this._masked=(buf[1]&128)===128,this._isServer){if(!this._masked){let error=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");cb(error);return}}else if(this._masked){let error=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");cb(error);return}if(this._payloadLength===126)this._state=1;else if(this._payloadLength===127)this._state=2;else this.haveLength(cb)}getPayloadLength16(cb){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(cb)}getPayloadLength64(cb){if(this._bufferedBytes<8){this._loop=!1;return}let buf=this.consume(8),num=buf.readUInt32BE(0);if(num>Math.pow(2,21)-1){let error=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");cb(error);return}this._payloadLength=num*Math.pow(2,32)+buf.readUInt32BE(4),this.haveLength(cb)}haveLength(cb){if(this._payloadLength&&this._opcode<8){if(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0){let error=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");cb(error);return}}if(this._masked)this._state=3;else this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(cb){let data=EMPTY_BUFFER;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}if(data=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0)unmask(data,this._mask)}if(this._opcode>7){this.controlMessage(data,cb);return}if(this._compressed){this._state=5,this.decompress(data,cb);return}if(data.length)this._messageLength=this._totalPayloadLength,this._fragments.push(data);this.dataMessage(cb)}decompress(data,cb){this._extensions[PerMessageDeflate.extensionName].decompress(data,this._fin,(err,buf)=>{if(err)return cb(err);if(buf.length){if(this._messageLength+=buf.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let error=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");cb(error);return}this._fragments.push(buf)}if(this.dataMessage(cb),this._state===0)this.startLoop(cb)})}dataMessage(cb){if(!this._fin){this._state=0;return}let messageLength=this._messageLength,fragments=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let data;if(this._binaryType==="nodebuffer")data=concat(fragments,messageLength);else if(this._binaryType==="arraybuffer")data=toArrayBuffer(concat(fragments,messageLength));else if(this._binaryType==="blob")data=new Blob(fragments);else data=fragments;if(this._allowSynchronousEvents)this.emit("message",data,!0),this._state=0;else this._state=6,setImmediate(()=>{this.emit("message",data,!0),this._state=0,this.startLoop(cb)})}else{let buf=concat(fragments,messageLength);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){let error=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");cb(error);return}if(this._state===5||this._allowSynchronousEvents)this.emit("message",buf,!1),this._state=0;else this._state=6,setImmediate(()=>{this.emit("message",buf,!1),this._state=0,this.startLoop(cb)})}}controlMessage(data,cb){if(this._opcode===8){if(data.length===0)this._loop=!1,this.emit("conclude",1005,EMPTY_BUFFER),this.end();else{let code=data.readUInt16BE(0);if(!isValidStatusCode(code)){let error=this.createError(RangeError,`invalid status code ${code}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");cb(error);return}let buf=new FastBuffer(data.buffer,data.byteOffset+2,data.length-2);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){let error=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");cb(error);return}this._loop=!1,this.emit("conclude",code,buf),this.end()}this._state=0;return}if(this._allowSynchronousEvents)this.emit(this._opcode===9?"ping":"pong",data),this._state=0;else this._state=6,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",data),this._state=0,this.startLoop(cb)})}createError(ErrorCtor,message,prefix,statusCode,errorCode){this._loop=!1,this._errored=!0;let err=new ErrorCtor(prefix?`Invalid WebSocket frame: ${message}`:message);return Error.captureStackTrace(err,this.createError),err.code=errorCode,err[kStatusCode]=statusCode,err}}module.exports=Receiver});var require_sender=__commonJS((exports,module)=>{var{Duplex}=__require("stream"),{randomFillSync}=__require("crypto"),PerMessageDeflate=require_permessage_deflate(),{EMPTY_BUFFER,kWebSocket,NOOP}=require_constants(),{isBlob,isValidStatusCode}=require_validation(),{mask:applyMask,toBuffer}=require_buffer_util(),kByteLength=Symbol("kByteLength"),maskBuffer=Buffer.alloc(4),randomPool,randomPoolPointer=8192,DEFAULT=0,DEFLATING=1,GET_BLOB_DATA=2;class Sender{constructor(socket,extensions,generateMask){if(this._extensions=extensions||{},generateMask)this._generateMask=generateMask,this._maskBuffer=Buffer.alloc(4);this._socket=socket,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=DEFAULT,this.onerror=NOOP,this[kWebSocket]=void 0}static frame(data,options){let mask,merge=!1,offset=2,skipMasking=!1;if(options.mask){if(mask=options.maskBuffer||maskBuffer,options.generateMask)options.generateMask(mask);else{if(randomPoolPointer===8192){if(randomPool===void 0)randomPool=Buffer.alloc(8192);randomFillSync(randomPool,0,8192),randomPoolPointer=0}mask[0]=randomPool[randomPoolPointer++],mask[1]=randomPool[randomPoolPointer++],mask[2]=randomPool[randomPoolPointer++],mask[3]=randomPool[randomPoolPointer++]}skipMasking=(mask[0]|mask[1]|mask[2]|mask[3])===0,offset=6}let dataLength;if(typeof data==="string")if((!options.mask||skipMasking)&&options[kByteLength]!==void 0)dataLength=options[kByteLength];else data=Buffer.from(data),dataLength=data.length;else dataLength=data.length,merge=options.mask&&options.readOnly&&!skipMasking;let payloadLength=dataLength;if(dataLength>=65536)offset+=8,payloadLength=127;else if(dataLength>125)offset+=2,payloadLength=126;let target=Buffer.allocUnsafe(merge?dataLength+offset:offset);if(target[0]=options.fin?options.opcode|128:options.opcode,options.rsv1)target[0]|=64;if(target[1]=payloadLength,payloadLength===126)target.writeUInt16BE(dataLength,2);else if(payloadLength===127)target[2]=target[3]=0,target.writeUIntBE(dataLength,4,6);if(!options.mask)return[target,data];if(target[1]|=128,target[offset-4]=mask[0],target[offset-3]=mask[1],target[offset-2]=mask[2],target[offset-1]=mask[3],skipMasking)return[target,data];if(merge)return applyMask(data,mask,target,offset,dataLength),[target];return applyMask(data,mask,data,0,dataLength),[target,data]}close(code,data,mask,cb){let buf;if(code===void 0)buf=EMPTY_BUFFER;else if(typeof code!=="number"||!isValidStatusCode(code))throw TypeError("First argument must be a valid error code number");else if(data===void 0||!data.length)buf=Buffer.allocUnsafe(2),buf.writeUInt16BE(code,0);else{let length=Buffer.byteLength(data);if(length>123)throw RangeError("The message must not be greater than 123 bytes");if(buf=Buffer.allocUnsafe(2+length),buf.writeUInt16BE(code,0),typeof data==="string")buf.write(data,2);else buf.set(data,2)}let options={[kByteLength]:buf.length,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};if(this._state!==DEFAULT)this.enqueue([this.dispatch,buf,!1,options,cb]);else this.sendFrame(Sender.frame(buf,options),cb)}ping(data,mask,cb){let byteLength,readOnly;if(typeof data==="string")byteLength=Buffer.byteLength(data),readOnly=!1;else if(isBlob(data))byteLength=data.size,readOnly=!1;else data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly;if(byteLength>125)throw RangeError("The data size must not be greater than 125 bytes");let options={[kByteLength]:byteLength,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:9,readOnly,rsv1:!1};if(isBlob(data))if(this._state!==DEFAULT)this.enqueue([this.getBlobData,data,!1,options,cb]);else this.getBlobData(data,!1,options,cb);else if(this._state!==DEFAULT)this.enqueue([this.dispatch,data,!1,options,cb]);else this.sendFrame(Sender.frame(data,options),cb)}pong(data,mask,cb){let byteLength,readOnly;if(typeof data==="string")byteLength=Buffer.byteLength(data),readOnly=!1;else if(isBlob(data))byteLength=data.size,readOnly=!1;else data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly;if(byteLength>125)throw RangeError("The data size must not be greater than 125 bytes");let options={[kByteLength]:byteLength,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:10,readOnly,rsv1:!1};if(isBlob(data))if(this._state!==DEFAULT)this.enqueue([this.getBlobData,data,!1,options,cb]);else this.getBlobData(data,!1,options,cb);else if(this._state!==DEFAULT)this.enqueue([this.dispatch,data,!1,options,cb]);else this.sendFrame(Sender.frame(data,options),cb)}send(data,options,cb){let perMessageDeflate=this._extensions[PerMessageDeflate.extensionName],opcode=options.binary?2:1,rsv1=options.compress,byteLength,readOnly;if(typeof data==="string")byteLength=Buffer.byteLength(data),readOnly=!1;else if(isBlob(data))byteLength=data.size,readOnly=!1;else data=toBuffer(data),byteLength=data.length,readOnly=toBuffer.readOnly;if(this._firstFragment){if(this._firstFragment=!1,rsv1&&perMessageDeflate&&perMessageDeflate.params[perMessageDeflate._isServer?"server_no_context_takeover":"client_no_context_takeover"])rsv1=byteLength>=perMessageDeflate._threshold;this._compress=rsv1}else rsv1=!1,opcode=0;if(options.fin)this._firstFragment=!0;let opts={[kByteLength]:byteLength,fin:options.fin,generateMask:this._generateMask,mask:options.mask,maskBuffer:this._maskBuffer,opcode,readOnly,rsv1};if(isBlob(data))if(this._state!==DEFAULT)this.enqueue([this.getBlobData,data,this._compress,opts,cb]);else this.getBlobData(data,this._compress,opts,cb);else if(this._state!==DEFAULT)this.enqueue([this.dispatch,data,this._compress,opts,cb]);else this.dispatch(data,this._compress,opts,cb)}getBlobData(blob,compress,options,cb){this._bufferedBytes+=options[kByteLength],this._state=GET_BLOB_DATA,blob.arrayBuffer().then((arrayBuffer)=>{if(this._socket.destroyed){let err=Error("The socket was closed while the blob was being read");process.nextTick(callCallbacks,this,err,cb);return}this._bufferedBytes-=options[kByteLength];let data=toBuffer(arrayBuffer);if(!compress)this._state=DEFAULT,this.sendFrame(Sender.frame(data,options),cb),this.dequeue();else this.dispatch(data,compress,options,cb)}).catch((err)=>{process.nextTick(onError,this,err,cb)})}dispatch(data,compress,options,cb){if(!compress){this.sendFrame(Sender.frame(data,options),cb);return}let perMessageDeflate=this._extensions[PerMessageDeflate.extensionName];this._bufferedBytes+=options[kByteLength],this._state=DEFLATING,perMessageDeflate.compress(data,options.fin,(_2,buf)=>{if(this._socket.destroyed){let err=Error("The socket was closed while data was being compressed");callCallbacks(this,err,cb);return}this._bufferedBytes-=options[kByteLength],this._state=DEFAULT,options.readOnly=!1,this.sendFrame(Sender.frame(buf,options),cb),this.dequeue()})}dequeue(){while(this._state===DEFAULT&&this._queue.length){let params=this._queue.shift();this._bufferedBytes-=params[3][kByteLength],Reflect.apply(params[0],this,params.slice(1))}}enqueue(params){this._bufferedBytes+=params[3][kByteLength],this._queue.push(params)}sendFrame(list,cb){if(list.length===2)this._socket.cork(),this._socket.write(list[0]),this._socket.write(list[1],cb),this._socket.uncork();else this._socket.write(list[0],cb)}}module.exports=Sender;function callCallbacks(sender,err,cb){if(typeof cb==="function")cb(err);for(let i=0;i<sender._queue.length;i++){let params=sender._queue[i],callback=params[params.length-1];if(typeof callback==="function")callback(err)}}function onError(sender,err,cb){callCallbacks(sender,err,cb),sender.onerror(err)}});var require_event_target=__commonJS((exports,module)=>{var{kForOnEventAttribute,kListener}=require_constants(),kCode=Symbol("kCode"),kData=Symbol("kData"),kError=Symbol("kError"),kMessage=Symbol("kMessage"),kReason=Symbol("kReason"),kTarget=Symbol("kTarget"),kType=Symbol("kType"),kWasClean=Symbol("kWasClean");class Event{constructor(type){this[kTarget]=null,this[kType]=type}get target(){return this[kTarget]}get type(){return this[kType]}}Object.defineProperty(Event.prototype,"target",{enumerable:!0});Object.defineProperty(Event.prototype,"type",{enumerable:!0});class CloseEvent extends Event{constructor(type,options={}){super(type);this[kCode]=options.code===void 0?0:options.code,this[kReason]=options.reason===void 0?"":options.reason,this[kWasClean]=options.wasClean===void 0?!1:options.wasClean}get code(){return this[kCode]}get reason(){return this[kReason]}get wasClean(){return this[kWasClean]}}Object.defineProperty(CloseEvent.prototype,"code",{enumerable:!0});Object.defineProperty(CloseEvent.prototype,"reason",{enumerable:!0});Object.defineProperty(CloseEvent.prototype,"wasClean",{enumerable:!0});class ErrorEvent extends Event{constructor(type,options={}){super(type);this[kError]=options.error===void 0?null:options.error,this[kMessage]=options.message===void 0?"":options.message}get error(){return this[kError]}get message(){return this[kMessage]}}Object.defineProperty(ErrorEvent.prototype,"error",{enumerable:!0});Object.defineProperty(ErrorEvent.prototype,"message",{enumerable:!0});class MessageEvent extends Event{constructor(type,options={}){super(type);this[kData]=options.data===void 0?null:options.data}get data(){return this[kData]}}Object.defineProperty(MessageEvent.prototype,"data",{enumerable:!0});var EventTarget={addEventListener(type,handler,options={}){for(let listener of this.listeners(type))if(!options[kForOnEventAttribute]&&listener[kListener]===handler&&!listener[kForOnEventAttribute])return;let wrapper;if(type==="message")wrapper=function(data,isBinary){let event=new MessageEvent("message",{data:isBinary?data:data.toString()});event[kTarget]=this,callListener(handler,this,event)};else if(type==="close")wrapper=function(code,message){let event=new CloseEvent("close",{code,reason:message.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});event[kTarget]=this,callListener(handler,this,event)};else if(type==="error")wrapper=function(error){let event=new ErrorEvent("error",{error,message:error.message});event[kTarget]=this,callListener(handler,this,event)};else if(type==="open")wrapper=function(){let event=new Event("open");event[kTarget]=this,callListener(handler,this,event)};else return;if(wrapper[kForOnEventAttribute]=!!options[kForOnEventAttribute],wrapper[kListener]=handler,options.once)this.once(type,wrapper);else this.on(type,wrapper)},removeEventListener(type,handler){for(let listener of this.listeners(type))if(listener[kListener]===handler&&!listener[kForOnEventAttribute]){this.removeListener(type,listener);break}}};module.exports={CloseEvent,ErrorEvent,Event,EventTarget,MessageEvent};function callListener(listener,thisArg,event){if(typeof listener==="object"&&listener.handleEvent)listener.handleEvent.call(listener,event);else listener.call(thisArg,event)}});var require_extension=__commonJS((exports,module)=>{var{tokenChars}=require_validation();function push(dest,name,elem){if(dest[name]===void 0)dest[name]=[elem];else dest[name].push(elem)}function parse(header){let offers=Object.create(null),params=Object.create(null),mustUnescape=!1,isEscaping=!1,inQuotes=!1,extensionName,paramName,start=-1,code=-1,end=-1,i=0;for(;i<header.length;i++)if(code=header.charCodeAt(i),extensionName===void 0)if(end===-1&&tokenChars[code]===1){if(start===-1)start=i}else if(i!==0&&(code===32||code===9)){if(end===-1&&start!==-1)end=i}else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);if(end===-1)end=i;let name=header.slice(start,end);if(code===44)push(offers,name,params),params=Object.create(null);else extensionName=name;start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`);else if(paramName===void 0)if(end===-1&&tokenChars[code]===1){if(start===-1)start=i}else if(code===32||code===9){if(end===-1&&start!==-1)end=i}else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);if(end===-1)end=i;if(push(params,header.slice(start,end),!0),code===44)push(offers,extensionName,params),params=Object.create(null),extensionName=void 0;start=end=-1}else if(code===61&&start!==-1&&end===-1)paramName=header.slice(start,i),start=end=-1;else throw SyntaxError(`Unexpected character at index ${i}`);else if(isEscaping){if(tokenChars[code]!==1)throw SyntaxError(`Unexpected character at index ${i}`);if(start===-1)start=i;else if(!mustUnescape)mustUnescape=!0;isEscaping=!1}else if(inQuotes)if(tokenChars[code]===1){if(start===-1)start=i}else if(code===34&&start!==-1)inQuotes=!1,end=i;else if(code===92)isEscaping=!0;else throw SyntaxError(`Unexpected character at index ${i}`);else if(code===34&&header.charCodeAt(i-1)===61)inQuotes=!0;else if(end===-1&&tokenChars[code]===1){if(start===-1)start=i}else if(start!==-1&&(code===32||code===9)){if(end===-1)end=i}else if(code===59||code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);if(end===-1)end=i;let value=header.slice(start,end);if(mustUnescape)value=value.replace(/\\/g,""),mustUnescape=!1;if(push(params,paramName,value),code===44)push(offers,extensionName,params),params=Object.create(null),extensionName=void 0;paramName=void 0,start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`);if(start===-1||inQuotes||code===32||code===9)throw SyntaxError("Unexpected end of input");if(end===-1)end=i;let token=header.slice(start,end);if(extensionName===void 0)push(offers,token,params);else{if(paramName===void 0)push(params,token,!0);else if(mustUnescape)push(params,paramName,token.replace(/\\/g,""));else push(params,paramName,token);push(offers,extensionName,params)}return offers}function format(extensions){return Object.keys(extensions).map((extension)=>{let configurations=extensions[extension];if(!Array.isArray(configurations))configurations=[configurations];return configurations.map((params)=>{return[extension].concat(Object.keys(params).map((k)=>{let values=params[k];if(!Array.isArray(values))values=[values];return values.map((v)=>v===!0?k:`${k}=${v}`).join("; ")})).join("; ")}).join(", ")}).join(", ")}module.exports={format,parse}});var require_websocket=__commonJS((exports,module)=>{var EventEmitter=__require("events"),https=__require("https"),http=__require("http"),net=__require("net"),tls=__require("tls"),{randomBytes,createHash}=__require("crypto"),{Duplex,Readable}=__require("stream"),{URL:URL2}=__require("url"),PerMessageDeflate=require_permessage_deflate(),Receiver=require_receiver(),Sender=require_sender(),{isBlob}=require_validation(),{BINARY_TYPES,CLOSE_TIMEOUT,EMPTY_BUFFER,GUID,kForOnEventAttribute,kListener,kStatusCode,kWebSocket,NOOP}=require_constants(),{EventTarget:{addEventListener,removeEventListener}}=require_event_target(),{format,parse}=require_extension(),{toBuffer}=require_buffer_util(),kAborted=Symbol("kAborted"),protocolVersions=[8,13],readyStates=["CONNECTING","OPEN","CLOSING","CLOSED"],subprotocolRegex=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class WebSocket extends EventEmitter{constructor(address,protocols,options){super();if(this._binaryType=BINARY_TYPES[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=EMPTY_BUFFER,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=WebSocket.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,address!==null){if(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,protocols===void 0)protocols=[];else if(!Array.isArray(protocols))if(typeof protocols==="object"&&protocols!==null)options=protocols,protocols=[];else protocols=[protocols];initAsClient(this,address,protocols,options)}else this._autoPong=options.autoPong,this._closeTimeout=options.closeTimeout,this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(type){if(!BINARY_TYPES.includes(type))return;if(this._binaryType=type,this._receiver)this._receiver._binaryType=type}get bufferedAmount(){if(!this._socket)return this._bufferedAmount;return this._socket._writableState.length+this._sender._bufferedBytes}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(socket,head,options){let receiver=new Receiver({allowSynchronousEvents:options.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:options.maxPayload,skipUTF8Validation:options.skipUTF8Validation}),sender=new Sender(socket,this._extensions,options.generateMask);if(this._receiver=receiver,this._sender=sender,this._socket=socket,receiver[kWebSocket]=this,sender[kWebSocket]=this,socket[kWebSocket]=this,receiver.on("conclude",receiverOnConclude),receiver.on("drain",receiverOnDrain),receiver.on("error",receiverOnError),receiver.on("message",receiverOnMessage),receiver.on("ping",receiverOnPing),receiver.on("pong",receiverOnPong),sender.onerror=senderOnError,socket.setTimeout)socket.setTimeout(0);if(socket.setNoDelay)socket.setNoDelay();if(head.length>0)socket.unshift(head);socket.on("close",socketOnClose),socket.on("data",socketOnData),socket.on("end",socketOnEnd),socket.on("error",socketOnError),this._readyState=WebSocket.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}if(this._extensions[PerMessageDeflate.extensionName])this._extensions[PerMessageDeflate.extensionName].cleanup();this._receiver.removeAllListeners(),this._readyState=WebSocket.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(code,data){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){abortHandshake(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===WebSocket.CLOSING){if(this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted))this._socket.end();return}this._readyState=WebSocket.CLOSING,this._sender.close(code,data,!this._isServer,(err)=>{if(err)return;if(this._closeFrameSent=!0,this._closeFrameReceived||this._receiver._writableState.errorEmitted)this._socket.end()}),setCloseTimer(this)}pause(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED)return;this._paused=!0,this._socket.pause()}ping(data,mask,cb){if(this.readyState===WebSocket.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof data==="function")cb=data,data=mask=void 0;else if(typeof mask==="function")cb=mask,mask=void 0;if(typeof data==="number")data=data.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}if(mask===void 0)mask=!this._isServer;this._sender.ping(data||EMPTY_BUFFER,mask,cb)}pong(data,mask,cb){if(this.readyState===WebSocket.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof data==="function")cb=data,data=mask=void 0;else if(typeof mask==="function")cb=mask,mask=void 0;if(typeof data==="number")data=data.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}if(mask===void 0)mask=!this._isServer;this._sender.pong(data||EMPTY_BUFFER,mask,cb)}resume(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED)return;if(this._paused=!1,!this._receiver._writableState.needDrain)this._socket.resume()}send(data,options,cb){if(this.readyState===WebSocket.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof options==="function")cb=options,options={};if(typeof data==="number")data=data.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}let opts={binary:typeof data!=="string",mask:!this._isServer,compress:!0,fin:!0,...options};if(!this._extensions[PerMessageDeflate.extensionName])opts.compress=!1;this._sender.send(data||EMPTY_BUFFER,opts,cb)}terminate(){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){abortHandshake(this,this._req,"WebSocket was closed before the connection was established");return}if(this._socket)this._readyState=WebSocket.CLOSING,this._socket.destroy()}}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:!0,value:readyStates.indexOf("CONNECTING")});Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:!0,value:readyStates.indexOf("CONNECTING")});Object.defineProperty(WebSocket,"OPEN",{enumerable:!0,value:readyStates.indexOf("OPEN")});Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:!0,value:readyStates.indexOf("OPEN")});Object.defineProperty(WebSocket,"CLOSING",{enumerable:!0,value:readyStates.indexOf("CLOSING")});Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:!0,value:readyStates.indexOf("CLOSING")});Object.defineProperty(WebSocket,"CLOSED",{enumerable:!0,value:readyStates.indexOf("CLOSED")});Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:!0,value:readyStates.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((property)=>{Object.defineProperty(WebSocket.prototype,property,{enumerable:!0})});["open","error","close","message"].forEach((method)=>{Object.defineProperty(WebSocket.prototype,`on${method}`,{enumerable:!0,get(){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute])return listener[kListener];return null},set(handler){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute]){this.removeListener(method,listener);break}if(typeof handler!=="function")return;this.addEventListener(method,handler,{[kForOnEventAttribute]:!0})}})});WebSocket.prototype.addEventListener=addEventListener;WebSocket.prototype.removeEventListener=removeEventListener;module.exports=WebSocket;function initAsClient(websocket,address,protocols,options){let opts={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:CLOSE_TIMEOUT,protocolVersion:protocolVersions[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...options,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(websocket._autoPong=opts.autoPong,websocket._closeTimeout=opts.closeTimeout,!protocolVersions.includes(opts.protocolVersion))throw RangeError(`Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(", ")})`);let parsedUrl;if(address instanceof URL2)parsedUrl=address;else try{parsedUrl=new URL2(address)}catch{throw SyntaxError(`Invalid URL: ${address}`)}if(parsedUrl.protocol==="http:")parsedUrl.protocol="ws:";else if(parsedUrl.protocol==="https:")parsedUrl.protocol="wss:";websocket._url=parsedUrl.href;let isSecure=parsedUrl.protocol==="wss:",isIpcUrl=parsedUrl.protocol==="ws+unix:",invalidUrlMessage;if(parsedUrl.protocol!=="ws:"&&!isSecure&&!isIpcUrl)invalidUrlMessage=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`;else if(isIpcUrl&&!parsedUrl.pathname)invalidUrlMessage="The URL's pathname is empty";else if(parsedUrl.hash)invalidUrlMessage="The URL contains a fragment identifier";if(invalidUrlMessage){let err=SyntaxError(invalidUrlMessage);if(websocket._redirects===0)throw err;else{emitErrorAndClose(websocket,err);return}}let defaultPort=isSecure?443:80,key=randomBytes(16).toString("base64"),request=isSecure?https.request:http.request,protocolSet=new Set,perMessageDeflate;if(opts.createConnection=opts.createConnection||(isSecure?tlsConnect:netConnect),opts.defaultPort=opts.defaultPort||defaultPort,opts.port=parsedUrl.port||defaultPort,opts.host=parsedUrl.hostname.startsWith("[")?parsedUrl.hostname.slice(1,-1):parsedUrl.hostname,opts.headers={...opts.headers,"Sec-WebSocket-Version":opts.protocolVersion,"Sec-WebSocket-Key":key,Connection:"Upgrade",Upgrade:"websocket"},opts.path=parsedUrl.pathname+parsedUrl.search,opts.timeout=opts.handshakeTimeout,opts.perMessageDeflate)perMessageDeflate=new PerMessageDeflate({...opts.perMessageDeflate,isServer:!1,maxPayload:opts.maxPayload}),opts.headers["Sec-WebSocket-Extensions"]=format({[PerMessageDeflate.extensionName]:perMessageDeflate.offer()});if(protocols.length){for(let protocol of protocols){if(typeof protocol!=="string"||!subprotocolRegex.test(protocol)||protocolSet.has(protocol))throw SyntaxError("An invalid or duplicated subprotocol was specified");protocolSet.add(protocol)}opts.headers["Sec-WebSocket-Protocol"]=protocols.join(",")}if(opts.origin)if(opts.protocolVersion<13)opts.headers["Sec-WebSocket-Origin"]=opts.origin;else opts.headers.Origin=opts.origin;if(parsedUrl.username||parsedUrl.password)opts.auth=`${parsedUrl.username}:${parsedUrl.password}`;if(isIpcUrl){let parts=opts.path.split(":");opts.socketPath=parts[0],opts.path=parts[1]}let req;if(opts.followRedirects){if(websocket._redirects===0){websocket._originalIpc=isIpcUrl,websocket._originalSecure=isSecure,websocket._originalHostOrSocketPath=isIpcUrl?opts.socketPath:parsedUrl.host;let headers=options&&options.headers;if(options={...options,headers:{}},headers)for(let[key2,value]of Object.entries(headers))options.headers[key2.toLowerCase()]=value}else if(websocket.listenerCount("redirect")===0){let isSameHost=isIpcUrl?websocket._originalIpc?opts.socketPath===websocket._originalHostOrSocketPath:!1:websocket._originalIpc?!1:parsedUrl.host===websocket._originalHostOrSocketPath;if(!isSameHost||websocket._originalSecure&&!isSecure){if(delete opts.headers.authorization,delete opts.headers.cookie,!isSameHost)delete opts.headers.host;opts.auth=void 0}}if(opts.auth&&!options.headers.authorization)options.headers.authorization="Basic "+Buffer.from(opts.auth).toString("base64");if(req=websocket._req=request(opts),websocket._redirects)websocket.emit("redirect",websocket.url,req)}else req=websocket._req=request(opts);if(opts.timeout)req.on("timeout",()=>{abortHandshake(websocket,req,"Opening handshake has timed out")});if(req.on("error",(err)=>{if(req===null||req[kAborted])return;req=websocket._req=null,emitErrorAndClose(websocket,err)}),req.on("response",(res)=>{let location=res.headers.location,statusCode=res.statusCode;if(location&&opts.followRedirects&&statusCode>=300&&statusCode<400){if(++websocket._redirects>opts.maxRedirects){abortHandshake(websocket,req,"Maximum redirects exceeded");return}req.abort();let addr;try{addr=new URL2(location,address)}catch(e){let err=SyntaxError(`Invalid URL: ${location}`);emitErrorAndClose(websocket,err);return}initAsClient(websocket,addr,protocols,options)}else if(!websocket.emit("unexpected-response",req,res))abortHandshake(websocket,req,`Unexpected server response: ${res.statusCode}`)}),req.on("upgrade",(res,socket,head)=>{if(websocket.emit("upgrade",res),websocket.readyState!==WebSocket.CONNECTING)return;req=websocket._req=null;let upgrade=res.headers.upgrade;if(upgrade===void 0||upgrade.toLowerCase()!=="websocket"){abortHandshake(websocket,socket,"Invalid Upgrade header");return}let digest=createHash("sha1").update(key+GUID).digest("base64");if(res.headers["sec-websocket-accept"]!==digest){abortHandshake(websocket,socket,"Invalid Sec-WebSocket-Accept header");return}let serverProt=res.headers["sec-websocket-protocol"],protError;if(serverProt!==void 0){if(!protocolSet.size)protError="Server sent a subprotocol but none was requested";else if(!protocolSet.has(serverProt))protError="Server sent an invalid subprotocol"}else if(protocolSet.size)protError="Server sent no subprotocol";if(protError){abortHandshake(websocket,socket,protError);return}if(serverProt)websocket._protocol=serverProt;let secWebSocketExtensions=res.headers["sec-websocket-extensions"];if(secWebSocketExtensions!==void 0){if(!perMessageDeflate){abortHandshake(websocket,socket,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let extensions;try{extensions=parse(secWebSocketExtensions)}catch(err){abortHandshake(websocket,socket,"Invalid Sec-WebSocket-Extensions header");return}let extensionNames=Object.keys(extensions);if(extensionNames.length!==1||extensionNames[0]!==PerMessageDeflate.extensionName){abortHandshake(websocket,socket,"Server indicated an extension that was not requested");return}try{perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName])}catch(err){abortHandshake(websocket,socket,"Invalid Sec-WebSocket-Extensions header");return}websocket._extensions[PerMessageDeflate.extensionName]=perMessageDeflate}websocket.setSocket(socket,head,{allowSynchronousEvents:opts.allowSynchronousEvents,generateMask:opts.generateMask,maxPayload:opts.maxPayload,skipUTF8Validation:opts.skipUTF8Validation})}),opts.finishRequest)opts.finishRequest(req,websocket);else req.end()}function emitErrorAndClose(websocket,err){websocket._readyState=WebSocket.CLOSING,websocket._errorEmitted=!0,websocket.emit("error",err),websocket.emitClose()}function netConnect(options){return options.path=options.socketPath,net.connect(options)}function tlsConnect(options){if(options.path=void 0,!options.servername&&options.servername!=="")options.servername=net.isIP(options.host)?"":options.host;return tls.connect(options)}function abortHandshake(websocket,stream,message){websocket._readyState=WebSocket.CLOSING;let err=Error(message);if(Error.captureStackTrace(err,abortHandshake),stream.setHeader){if(stream[kAborted]=!0,stream.abort(),stream.socket&&!stream.socket.destroyed)stream.socket.destroy();process.nextTick(emitErrorAndClose,websocket,err)}else stream.destroy(err),stream.once("error",websocket.emit.bind(websocket,"error")),stream.once("close",websocket.emitClose.bind(websocket))}function sendAfterClose(websocket,data,cb){if(data){let length=isBlob(data)?data.size:toBuffer(data).length;if(websocket._socket)websocket._sender._bufferedBytes+=length;else websocket._bufferedAmount+=length}if(cb){let err=Error(`WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})`);process.nextTick(cb,err)}}function receiverOnConclude(code,reason){let websocket=this[kWebSocket];if(websocket._closeFrameReceived=!0,websocket._closeMessage=reason,websocket._closeCode=code,websocket._socket[kWebSocket]===void 0)return;if(websocket._socket.removeListener("data",socketOnData),process.nextTick(resume,websocket._socket),code===1005)websocket.close();else websocket.close(code,reason)}function receiverOnDrain(){let websocket=this[kWebSocket];if(!websocket.isPaused)websocket._socket.resume()}function receiverOnError(err){let websocket=this[kWebSocket];if(websocket._socket[kWebSocket]!==void 0)websocket._socket.removeListener("data",socketOnData),process.nextTick(resume,websocket._socket),websocket.close(err[kStatusCode]);if(!websocket._errorEmitted)websocket._errorEmitted=!0,websocket.emit("error",err)}function receiverOnFinish(){this[kWebSocket].emitClose()}function receiverOnMessage(data,isBinary){this[kWebSocket].emit("message",data,isBinary)}function receiverOnPing(data){let websocket=this[kWebSocket];if(websocket._autoPong)websocket.pong(data,!this._isServer,NOOP);websocket.emit("ping",data)}function receiverOnPong(data){this[kWebSocket].emit("pong",data)}function resume(stream){stream.resume()}function senderOnError(err){let websocket=this[kWebSocket];if(websocket.readyState===WebSocket.CLOSED)return;if(websocket.readyState===WebSocket.OPEN)websocket._readyState=WebSocket.CLOSING,setCloseTimer(websocket);if(this._socket.end(),!websocket._errorEmitted)websocket._errorEmitted=!0,websocket.emit("error",err)}function setCloseTimer(websocket){websocket._closeTimer=setTimeout(websocket._socket.destroy.bind(websocket._socket),websocket._closeTimeout)}function socketOnClose(){let websocket=this[kWebSocket];if(this.removeListener("close",socketOnClose),this.removeListener("data",socketOnData),this.removeListener("end",socketOnEnd),websocket._readyState=WebSocket.CLOSING,!this._readableState.endEmitted&&!websocket._closeFrameReceived&&!websocket._receiver._writableState.errorEmitted&&this._readableState.length!==0){let chunk=this.read(this._readableState.length);websocket._receiver.write(chunk)}if(websocket._receiver.end(),this[kWebSocket]=void 0,clearTimeout(websocket._closeTimer),websocket._receiver._writableState.finished||websocket._receiver._writableState.errorEmitted)websocket.emitClose();else websocket._receiver.on("error",receiverOnFinish),websocket._receiver.on("finish",receiverOnFinish)}function socketOnData(chunk){if(!this[kWebSocket]._receiver.write(chunk))this.pause()}function socketOnEnd(){let websocket=this[kWebSocket];websocket._readyState=WebSocket.CLOSING,websocket._receiver.end(),this.end()}function socketOnError(){let websocket=this[kWebSocket];if(this.removeListener("error",socketOnError),this.on("error",NOOP),websocket)websocket._readyState=WebSocket.CLOSING,this.destroy()}});var require_stream=__commonJS((exports,module)=>{var WebSocket=require_websocket(),{Duplex}=__require("stream");function emitClose(stream){stream.emit("close")}function duplexOnEnd(){if(!this.destroyed&&this._writableState.finished)this.destroy()}function duplexOnError(err){if(this.removeListener("error",duplexOnError),this.destroy(),this.listenerCount("error")===0)this.emit("error",err)}function createWebSocketStream(ws,options){let terminateOnDestroy=!0,duplex=new Duplex({...options,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return ws.on("message",function(msg,isBinary){let data=!isBinary&&duplex._readableState.objectMode?msg.toString():msg;if(!duplex.push(data))ws.pause()}),ws.once("error",function(err){if(duplex.destroyed)return;terminateOnDestroy=!1,duplex.destroy(err)}),ws.once("close",function(){if(duplex.destroyed)return;duplex.push(null)}),duplex._destroy=function(err,callback){if(ws.readyState===ws.CLOSED){callback(err),process.nextTick(emitClose,duplex);return}let called=!1;if(ws.once("error",function(err2){called=!0,callback(err2)}),ws.once("close",function(){if(!called)callback(err);process.nextTick(emitClose,duplex)}),terminateOnDestroy)ws.terminate()},duplex._final=function(callback){if(ws.readyState===ws.CONNECTING){ws.once("open",function(){duplex._final(callback)});return}if(ws._socket===null)return;if(ws._socket._writableState.finished){if(callback(),duplex._readableState.endEmitted)duplex.destroy()}else ws._socket.once("finish",function(){callback()}),ws.close()},duplex._read=function(){if(ws.isPaused)ws.resume()},duplex._write=function(chunk,encoding,callback){if(ws.readyState===ws.CONNECTING){ws.once("open",function(){duplex._write(chunk,encoding,callback)});return}ws.send(chunk,callback)},duplex.on("end",duplexOnEnd),duplex.on("error",duplexOnError),duplex}module.exports=createWebSocketStream});var require_subprotocol=__commonJS((exports,module)=>{var{tokenChars}=require_validation();function parse(header){let protocols=new Set,start=-1,end=-1,i=0;for(i;i<header.length;i++){let code=header.charCodeAt(i);if(end===-1&&tokenChars[code]===1){if(start===-1)start=i}else if(i!==0&&(code===32||code===9)){if(end===-1&&start!==-1)end=i}else if(code===44){if(start===-1)throw SyntaxError(`Unexpected character at index ${i}`);if(end===-1)end=i;let protocol2=header.slice(start,end);if(protocols.has(protocol2))throw SyntaxError(`The "${protocol2}" subprotocol is duplicated`);protocols.add(protocol2),start=end=-1}else throw SyntaxError(`Unexpected character at index ${i}`)}if(start===-1||end!==-1)throw SyntaxError("Unexpected end of input");let protocol=header.slice(start,i);if(protocols.has(protocol))throw SyntaxError(`The "${protocol}" subprotocol is duplicated`);return protocols.add(protocol),protocols}module.exports={parse}});var require_websocket_server=__commonJS((exports,module)=>{var EventEmitter=__require("events"),http=__require("http"),{Duplex}=__require("stream"),{createHash}=__require("crypto"),extension=require_extension(),PerMessageDeflate=require_permessage_deflate(),subprotocol=require_subprotocol(),WebSocket=require_websocket(),{CLOSE_TIMEOUT,GUID,kWebSocket}=require_constants(),keyRegex=/^[+/0-9A-Za-z]{22}==$/;class WebSocketServer extends EventEmitter{constructor(options,callback){super();if(options={allowSynchronousEvents:!0,autoPong:!0,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:CLOSE_TIMEOUT,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket,...options},options.port==null&&!options.server&&!options.noServer||options.port!=null&&(options.server||options.noServer)||options.server&&options.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(options.port!=null)this._server=http.createServer((req,res)=>{let body=http.STATUS_CODES[426];res.writeHead(426,{"Content-Length":body.length,"Content-Type":"text/plain"}),res.end(body)}),this._server.listen(options.port,options.host,options.backlog,callback);else if(options.server)this._server=options.server;if(this._server){let emitConnection=this.emit.bind(this,"connection");this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(req,socket,head)=>{this.handleUpgrade(req,socket,head,emitConnection)}})}if(options.perMessageDeflate===!0)options.perMessageDeflate={};if(options.clientTracking)this.clients=new Set,this._shouldEmitClose=!1;this.options=options,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');if(!this._server)return null;return this._server.address()}close(cb){if(this._state===2){if(cb)this.once("close",()=>{cb(Error("The server is not running"))});process.nextTick(emitClose,this);return}if(cb)this.once("close",cb);if(this._state===1)return;if(this._state=1,this.options.noServer||this.options.server){if(this._server)this._removeListeners(),this._removeListeners=this._server=null;if(this.clients)if(!this.clients.size)process.nextTick(emitClose,this);else this._shouldEmitClose=!0;else process.nextTick(emitClose,this)}else{let server=this._server;this._removeListeners(),this._removeListeners=this._server=null,server.close(()=>{emitClose(this)})}}shouldHandle(req){if(this.options.path){let index=req.url.indexOf("?");if((index!==-1?req.url.slice(0,index):req.url)!==this.options.path)return!1}return!0}handleUpgrade(req,socket,head,cb){socket.on("error",socketOnError);let key=req.headers["sec-websocket-key"],upgrade=req.headers.upgrade,version=+req.headers["sec-websocket-version"];if(req.method!=="GET"){abortHandshakeOrEmitwsClientError(this,req,socket,405,"Invalid HTTP method");return}if(upgrade===void 0||upgrade.toLowerCase()!=="websocket"){abortHandshakeOrEmitwsClientError(this,req,socket,400,"Invalid Upgrade header");return}if(key===void 0||!keyRegex.test(key)){abortHandshakeOrEmitwsClientError(this,req,socket,400,"Missing or invalid Sec-WebSocket-Key header");return}if(version!==13&&version!==8){abortHandshakeOrEmitwsClientError(this,req,socket,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(req)){abortHandshake(socket,400);return}let secWebSocketProtocol=req.headers["sec-websocket-protocol"],protocols=new Set;if(secWebSocketProtocol!==void 0)try{protocols=subprotocol.parse(secWebSocketProtocol)}catch(err){abortHandshakeOrEmitwsClientError(this,req,socket,400,"Invalid Sec-WebSocket-Protocol header");return}let secWebSocketExtensions=req.headers["sec-websocket-extensions"],extensions={};if(this.options.perMessageDeflate&&secWebSocketExtensions!==void 0){let perMessageDeflate=new PerMessageDeflate({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let offers=extension.parse(secWebSocketExtensions);if(offers[PerMessageDeflate.extensionName])perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]),extensions[PerMessageDeflate.extensionName]=perMessageDeflate}catch(err){abortHandshakeOrEmitwsClientError(this,req,socket,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let info={origin:req.headers[`${version===8?"sec-websocket-origin":"origin"}`],secure:!!(req.socket.authorized||req.socket.encrypted),req};if(this.options.verifyClient.length===2){this.options.verifyClient(info,(verified,code,message,headers)=>{if(!verified)return abortHandshake(socket,code||401,message,headers);this.completeUpgrade(extensions,key,protocols,req,socket,head,cb)});return}if(!this.options.verifyClient(info))return abortHandshake(socket,401)}this.completeUpgrade(extensions,key,protocols,req,socket,head,cb)}completeUpgrade(extensions,key,protocols,req,socket,head,cb){if(!socket.readable||!socket.writable)return socket.destroy();if(socket[kWebSocket])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return abortHandshake(socket,503);let headers=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${createHash("sha1").update(key+GUID).digest("base64")}`],ws=new this.options.WebSocket(null,void 0,this.options);if(protocols.size){let protocol=this.options.handleProtocols?this.options.handleProtocols(protocols,req):protocols.values().next().value;if(protocol)headers.push(`Sec-WebSocket-Protocol: ${protocol}`),ws._protocol=protocol}if(extensions[PerMessageDeflate.extensionName]){let params=extensions[PerMessageDeflate.extensionName].params,value=extension.format({[PerMessageDeflate.extensionName]:[params]});headers.push(`Sec-WebSocket-Extensions: ${value}`),ws._extensions=extensions}if(this.emit("headers",headers,req),socket.write(headers.concat(`\r
|
|
73
73
|
`).join(`\r
|
|
74
74
|
`)),socket.removeListener("error",socketOnError),ws.setSocket(socket,head,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients)this.clients.add(ws),ws.on("close",()=>{if(this.clients.delete(ws),this._shouldEmitClose&&!this.clients.size)process.nextTick(emitClose,this)});cb(ws,req)}}module.exports=WebSocketServer;function addListeners(server,map){for(let event of Object.keys(map))server.on(event,map[event]);return function(){for(let event of Object.keys(map))server.removeListener(event,map[event])}}function emitClose(server){server._state=2,server.emit("close")}function socketOnError(){this.destroy()}function abortHandshake(socket,code,message,headers){message=message||http.STATUS_CODES[code],headers={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(message),...headers},socket.once("finish",socket.destroy),socket.end(`HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r
|
|
@@ -148,7 +148,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
148
148
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var normalCompletion=!0,didErr=!1,err;return{s:function(){it=it.call(o)},n:function(){var step=it.next();return normalCompletion=step.done,step},e:function(_e2){didErr=!0,err=_e2},f:function(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function hook_toConsumableArray(arr){return hook_arrayWithoutHoles(arr)||hook_iterableToArray(arr)||hook_unsupportedIterableToArray(arr)||hook_nonIterableSpread()}function hook_nonIterableSpread(){throw TypeError(`Invalid attempt to spread non-iterable instance.
|
|
149
149
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hook_unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return hook_arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hook_arrayLikeToArray(o,minLen)}function hook_iterableToArray(iter){if(typeof Symbol<"u"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function hook_arrayWithoutHoles(arr){if(Array.isArray(arr))return hook_arrayLikeToArray(arr)}function hook_arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=Array(len);i<len;i++)arr2[i]=arr[i];return arr2}var PREFIX_REGEX=/\s{4}(in|at)\s{1}/,ROW_COLUMN_NUMBER_REGEX=/:\d+:\d+(\n|$)/;function isStringComponentStack(text){return PREFIX_REGEX.test(text)||ROW_COLUMN_NUMBER_REGEX.test(text)}var frameDiffs=/ \(\<anonymous\>\)$|\@unknown\:0\:0$|\(|\)|\[|\]/gm;function areStackTracesEqual(a,b){return a.replace(frameDiffs,"")===b.replace(frameDiffs,"")}var targetConsole=console,defaultProfilingSettings={recordChangeDescriptions:!1,recordTimeline:!1};function installHook(target,maybeSettingsOrSettingsPromise){var shouldStartProfilingNow=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,profilingSettings=arguments.length>3&&arguments[3]!==void 0?arguments[3]:defaultProfilingSettings;if(target.hasOwnProperty("__REACT_DEVTOOLS_GLOBAL_HOOK__"))return null;function detectReactBuildType(renderer){try{if(typeof renderer.version==="string"){if(renderer.bundleType>0)return"development";return"production"}var _toString=Function.prototype.toString;if(renderer.Mount&&renderer.Mount._renderNewRootComponent){var renderRootCode=_toString.call(renderer.Mount._renderNewRootComponent);if(renderRootCode.indexOf("function")!==0)return"production";if(renderRootCode.indexOf("storedMeasure")!==-1)return"development";if(renderRootCode.indexOf("should be a pure function")!==-1){if(renderRootCode.indexOf("NODE_ENV")!==-1)return"development";if(renderRootCode.indexOf("development")!==-1)return"development";if(renderRootCode.indexOf("true")!==-1)return"development";if(renderRootCode.indexOf("nextElement")!==-1||renderRootCode.indexOf("nextComponent")!==-1)return"unminified";else return"development"}if(renderRootCode.indexOf("nextElement")!==-1||renderRootCode.indexOf("nextComponent")!==-1)return"unminified";return"outdated"}}catch(err){}return"production"}function checkDCE(fn){try{var _toString2=Function.prototype.toString,code=_toString2.call(fn);if(code.indexOf("^_^")>-1)hasDetectedBadDCE=!0,setTimeout(function(){throw Error("React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://react.dev/link/perf-use-production-build")})}catch(err){}}var isProfiling=shouldStartProfilingNow,uidCounter2=0;function inject(renderer){var id=++uidCounter2;renderers.set(id,renderer);var reactBuildType=hasDetectedBadDCE?"deadcode":detectReactBuildType(renderer);hook.emit("renderer",{id,renderer,reactBuildType});var rendererInterface=attachRenderer(hook,id,renderer,target,isProfiling,profilingSettings);if(rendererInterface!=null)hook.rendererInterfaces.set(id,rendererInterface),hook.emit("renderer-attached",{id,rendererInterface});else hook.hasUnsupportedRendererAttached=!0,hook.emit("unsupported-renderer-version");return id}var hasDetectedBadDCE=!1;function sub(event,fn){return hook.on(event,fn),function(){return hook.off(event,fn)}}function on(event,fn){if(!listeners[event])listeners[event]=[];listeners[event].push(fn)}function off(event,fn){if(!listeners[event])return;var index=listeners[event].indexOf(fn);if(index!==-1)listeners[event].splice(index,1);if(!listeners[event].length)delete listeners[event]}function emit(event,data){if(listeners[event])listeners[event].map(function(fn){return fn(data)})}function getFiberRoots(rendererID){var roots=fiberRoots;if(!roots[rendererID])roots[rendererID]=new Set;return roots[rendererID]}function onCommitFiberUnmount(rendererID,fiber){var rendererInterface=rendererInterfaces.get(rendererID);if(rendererInterface!=null)rendererInterface.handleCommitFiberUnmount(fiber)}function onCommitFiberRoot(rendererID,root,priorityLevel){var mountedRoots=hook.getFiberRoots(rendererID),current=root.current,isKnownRoot=mountedRoots.has(root),isUnmounting=current.memoizedState==null||current.memoizedState.element==null;if(!isKnownRoot&&!isUnmounting)mountedRoots.add(root);else if(isKnownRoot&&isUnmounting)mountedRoots.delete(root);var rendererInterface=rendererInterfaces.get(rendererID);if(rendererInterface!=null)rendererInterface.handleCommitFiberRoot(root,priorityLevel)}function onPostCommitFiberRoot(rendererID,root){var rendererInterface=rendererInterfaces.get(rendererID);if(rendererInterface!=null)rendererInterface.handlePostCommitFiberRoot(root)}var isRunningDuringStrictModeInvocation=!1;function setStrictMode(rendererID,isStrictMode){if(isRunningDuringStrictModeInvocation=isStrictMode,isStrictMode)patchConsoleForStrictMode();else unpatchConsoleForStrictMode()}var unpatchConsoleCallbacks=[];function patchConsoleForStrictMode(){if(!hook.settings)return;if(unpatchConsoleCallbacks.length>0)return;var consoleMethodsToOverrideForStrictMode=["group","groupCollapsed","info","log"],_loop=function(){var method=_consoleMethodsToOver[_i],originalMethod=targetConsole[method],overrideMethod=function(){var settings=hook.settings;for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];if(settings==null){originalMethod.apply(void 0,args);return}if(settings.hideConsoleLogsInStrictMode)return;originalMethod.apply(void 0,[ANSI_STYLE_DIMMING_TEMPLATE].concat(hook_toConsumableArray(formatConsoleArguments.apply(void 0,args))))};targetConsole[method]=overrideMethod,unpatchConsoleCallbacks.push(function(){targetConsole[method]=originalMethod})};for(var _i=0,_consoleMethodsToOver=consoleMethodsToOverrideForStrictMode;_i<_consoleMethodsToOver.length;_i++)_loop()}function unpatchConsoleForStrictMode(){unpatchConsoleCallbacks.forEach(function(callback){return callback()}),unpatchConsoleCallbacks.length=0}var openModuleRangesStack=[],moduleRanges=[];function getTopStackFrameString(error){var frames=error.stack.split(`
|
|
150
150
|
`),frame=frames.length>1?frames[1]:null;return frame}function getInternalModuleRanges(){return moduleRanges}function registerInternalModuleStart(error){var startStackFrame=getTopStackFrameString(error);if(startStackFrame!==null)openModuleRangesStack.push(startStackFrame)}function registerInternalModuleStop(error){if(openModuleRangesStack.length>0){var startStackFrame=openModuleRangesStack.pop(),stopStackFrame=getTopStackFrameString(error);if(stopStackFrame!==null)moduleRanges.push([startStackFrame,stopStackFrame])}}function patchConsoleForErrorsAndWarnings(){if(!hook.settings)return;var consoleMethodsToOverrideForErrorsAndWarnings=["error","trace","warn"],_loop2=function(){var method=_consoleMethodsToOver2[_i2],originalMethod=targetConsole[method],overrideMethod=function(){var settings=hook.settings;for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2<_len2;_key2++)args[_key2]=arguments[_key2];if(settings==null){originalMethod.apply(void 0,args);return}if(isRunningDuringStrictModeInvocation&&settings.hideConsoleLogsInStrictMode)return;var injectedComponentStackAsFakeError=!1,alreadyHasComponentStack=!1;if(settings.appendComponentStack){var lastArg=args.length>0?args[args.length-1]:null;alreadyHasComponentStack=typeof lastArg==="string"&&isStringComponentStack(lastArg)}var shouldShowInlineWarningsAndErrors=settings.showInlineWarningsAndErrors&&(method==="error"||method==="warn"),_iterator=hook_createForOfIteratorHelper(hook.rendererInterfaces.values()),_step;try{var _loop3=function(){var rendererInterface=_step.value,onErrorOrWarning=rendererInterface.onErrorOrWarning,getComponentStack=rendererInterface.getComponentStack;try{if(shouldShowInlineWarningsAndErrors){if(onErrorOrWarning!=null)onErrorOrWarning(method,args.slice())}}catch(error){setTimeout(function(){throw error},0)}try{if(settings.appendComponentStack&&getComponentStack!=null){var topFrame=Error("react-stack-top-frame"),match=getComponentStack(topFrame);if(match!==null){var{enableOwnerStacks,componentStack}=match;if(componentStack!==""){var fakeError=Error("");if(fakeError.name=enableOwnerStacks?"Stack":"Component Stack",fakeError.stack=(enableOwnerStacks?"Error Stack:":"Error Component Stack:")+componentStack,alreadyHasComponentStack){if(areStackTracesEqual(args[args.length-1],componentStack)){var firstArg=args[0];if(args.length>1&&typeof firstArg==="string"&&firstArg.endsWith("%s"))args[0]=firstArg.slice(0,firstArg.length-2);args[args.length-1]=fakeError,injectedComponentStackAsFakeError=!0}}else args.push(fakeError),injectedComponentStackAsFakeError=!0}return 1}}}catch(error){setTimeout(function(){throw error},0)}};for(_iterator.s();!(_step=_iterator.n()).done;)if(_loop3())break}catch(err){_iterator.e(err)}finally{_iterator.f()}if(settings.breakOnConsoleErrors)debugger;if(isRunningDuringStrictModeInvocation)if(!1)var argsWithCSSStyles;else originalMethod.apply(void 0,[injectedComponentStackAsFakeError?ANSI_STYLE_DIMMING_TEMPLATE_WITH_COMPONENT_STACK:ANSI_STYLE_DIMMING_TEMPLATE].concat(hook_toConsumableArray(formatConsoleArguments.apply(void 0,args))));else originalMethod.apply(void 0,args)};targetConsole[method]=overrideMethod};for(var _i2=0,_consoleMethodsToOver2=consoleMethodsToOverrideForErrorsAndWarnings;_i2<_consoleMethodsToOver2.length;_i2++)_loop2()}var fiberRoots={},rendererInterfaces=new Map,listeners={},renderers=new Map,backends=new Map,hook={rendererInterfaces,listeners,backends,renderers,hasUnsupportedRendererAttached:!1,emit,getFiberRoots,inject,on,off,sub,supportsFiber:!0,supportsFlight:!0,checkDCE,onCommitFiberUnmount,onCommitFiberRoot,onPostCommitFiberRoot,setStrictMode,getInternalModuleRanges,registerInternalModuleStart,registerInternalModuleStop};if(maybeSettingsOrSettingsPromise==null)hook.settings={appendComponentStack:!0,breakOnConsoleErrors:!1,showInlineWarningsAndErrors:!0,hideConsoleLogsInStrictMode:!1},patchConsoleForErrorsAndWarnings();else Promise.resolve(maybeSettingsOrSettingsPromise).then(function(settings){hook.settings=settings,hook.emit("settingsInitialized",settings),patchConsoleForErrorsAndWarnings()}).catch(function(){targetConsole.error("React DevTools failed to get Console Patching settings. Console won't be patched and some console features will not work.")});return Object.defineProperty(target,"__REACT_DEVTOOLS_GLOBAL_HOOK__",{configurable:!1,enumerable:!1,get:function(){return hook}}),hook}function initBackend(hook,agent2,global,isReloadAndProfileSupported){if(hook==null)return function(){};function registerRendererInterface(id,rendererInterface){agent2.registerRendererInterface(id,rendererInterface),rendererInterface.flushInitialOperations()}var subs=[hook.sub("renderer-attached",function(_ref){var{id,rendererInterface}=_ref;registerRendererInterface(id,rendererInterface)}),hook.sub("unsupported-renderer-version",function(){agent2.onUnsupportedRenderer()}),hook.sub("fastRefreshScheduled",agent2.onFastRefreshScheduled),hook.sub("operations",agent2.onHookOperations),hook.sub("traceUpdates",agent2.onTraceUpdates),hook.sub("settingsInitialized",agent2.onHookSettings)];agent2.addListener("getIfHasUnsupportedRendererVersion",function(){if(hook.hasUnsupportedRendererAttached)agent2.onUnsupportedRenderer()}),hook.rendererInterfaces.forEach(function(rendererInterface,id){registerRendererInterface(id,rendererInterface)}),hook.emit("react-devtools",agent2),hook.reactDevtoolsAgent=agent2;var onAgentShutdown=function(){subs.forEach(function(fn){return fn()}),hook.rendererInterfaces.forEach(function(rendererInterface){rendererInterface.cleanup()}),hook.reactDevtoolsAgent=null};if(agent2.addListener("shutdown",onAgentShutdown),agent2.addListener("updateHookSettings",function(settings){hook.settings=settings}),agent2.addListener("getHookSettings",function(){if(hook.settings!=null)agent2.onHookSettings(hook.settings)}),isReloadAndProfileSupported)agent2.onReloadAndProfileSupportedByHost();return function(){subs.forEach(function(fn){return fn()})}}function resolveBoxStyle(prefix2,style2){var hasParts=!1,result={bottom:0,left:0,right:0,top:0},styleForAll=style2[prefix2];if(styleForAll!=null){for(var _i=0,_Object$keys=Object.keys(result);_i<_Object$keys.length;_i++){var key=_Object$keys[_i];result[key]=styleForAll}hasParts=!0}var styleForHorizontal=style2[prefix2+"Horizontal"];if(styleForHorizontal!=null)result.left=styleForHorizontal,result.right=styleForHorizontal,hasParts=!0;else{var styleForLeft=style2[prefix2+"Left"];if(styleForLeft!=null)result.left=styleForLeft,hasParts=!0;var styleForRight=style2[prefix2+"Right"];if(styleForRight!=null)result.right=styleForRight,hasParts=!0;var styleForEnd=style2[prefix2+"End"];if(styleForEnd!=null)result.right=styleForEnd,hasParts=!0;var styleForStart=style2[prefix2+"Start"];if(styleForStart!=null)result.left=styleForStart,hasParts=!0}var styleForVertical=style2[prefix2+"Vertical"];if(styleForVertical!=null)result.bottom=styleForVertical,result.top=styleForVertical,hasParts=!0;else{var styleForBottom=style2[prefix2+"Bottom"];if(styleForBottom!=null)result.bottom=styleForBottom,hasParts=!0;var styleForTop=style2[prefix2+"Top"];if(styleForTop!=null)result.top=styleForTop,hasParts=!0}return hasParts?result:null}function setupNativeStyleEditor_typeof(o){return setupNativeStyleEditor_typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o2){return typeof o2}:function(o2){return o2&&typeof Symbol=="function"&&o2.constructor===Symbol&&o2!==Symbol.prototype?"symbol":typeof o2},setupNativeStyleEditor_typeof(o)}function setupNativeStyleEditor_defineProperty(obj,key,value){if(key=setupNativeStyleEditor_toPropertyKey(key),key in obj)Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0});else obj[key]=value;return obj}function setupNativeStyleEditor_toPropertyKey(t){var i=setupNativeStyleEditor_toPrimitive(t,"string");return setupNativeStyleEditor_typeof(i)=="symbol"?i:i+""}function setupNativeStyleEditor_toPrimitive(t,r){if(setupNativeStyleEditor_typeof(t)!="object"||!t)return t;var e=t[Symbol.toPrimitive];if(e!==void 0){var i=e.call(t,r||"default");if(setupNativeStyleEditor_typeof(i)!="object")return i;throw TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(t)}function setupNativeStyleEditor(bridge,agent2,resolveNativeStyle,validAttributes){bridge.addListener("NativeStyleEditor_measure",function(_ref){var{id,rendererID}=_ref;measureStyle(agent2,bridge,resolveNativeStyle,id,rendererID)}),bridge.addListener("NativeStyleEditor_renameAttribute",function(_ref2){var{id,rendererID,oldName,newName,value}=_ref2;renameStyle(agent2,id,rendererID,oldName,newName,value),setTimeout(function(){return measureStyle(agent2,bridge,resolveNativeStyle,id,rendererID)})}),bridge.addListener("NativeStyleEditor_setValue",function(_ref3){var{id,rendererID,name,value}=_ref3;setStyle(agent2,id,rendererID,name,value),setTimeout(function(){return measureStyle(agent2,bridge,resolveNativeStyle,id,rendererID)})}),bridge.send("isNativeStyleEditorSupported",{isSupported:!0,validAttributes})}var EMPTY_BOX_STYLE={top:0,left:0,right:0,bottom:0},componentIDToStyleOverrides=new Map;function measureStyle(agent2,bridge,resolveNativeStyle,id,rendererID){var data=agent2.getInstanceAndStyle({id,rendererID});if(!data||!data.style){bridge.send("NativeStyleEditor_styleAndLayout",{id,layout:null,style:null});return}var{instance,style:style2}=data,resolvedStyle=resolveNativeStyle(style2),styleOverrides=componentIDToStyleOverrides.get(id);if(styleOverrides!=null)resolvedStyle=Object.assign({},resolvedStyle,styleOverrides);if(!instance||typeof instance.measure!=="function"){bridge.send("NativeStyleEditor_styleAndLayout",{id,layout:null,style:resolvedStyle||null});return}instance.measure(function(x,y,width,height,left,top){if(typeof x!=="number"){bridge.send("NativeStyleEditor_styleAndLayout",{id,layout:null,style:resolvedStyle||null});return}var margin=resolvedStyle!=null&&resolveBoxStyle("margin",resolvedStyle)||EMPTY_BOX_STYLE,padding=resolvedStyle!=null&&resolveBoxStyle("padding",resolvedStyle)||EMPTY_BOX_STYLE;bridge.send("NativeStyleEditor_styleAndLayout",{id,layout:{x,y,width,height,left,top,margin,padding},style:resolvedStyle||null})})}function shallowClone(object){var cloned={};for(var n in object)cloned[n]=object[n];return cloned}function renameStyle(agent2,id,rendererID,oldName,newName,value){var data=agent2.getInstanceAndStyle({id,rendererID});if(!data||!data.style)return;var{instance,style:style2}=data,newStyle=newName?setupNativeStyleEditor_defineProperty(setupNativeStyleEditor_defineProperty({},oldName,void 0),newName,value):setupNativeStyleEditor_defineProperty({},oldName,void 0),customStyle;if(instance!==null&&typeof instance.setNativeProps==="function"){var styleOverrides=componentIDToStyleOverrides.get(id);if(!styleOverrides)componentIDToStyleOverrides.set(id,newStyle);else Object.assign(styleOverrides,newStyle);instance.setNativeProps({style:newStyle})}else if(src_isArray(style2)){var lastIndex=style2.length-1;if(setupNativeStyleEditor_typeof(style2[lastIndex])==="object"&&!src_isArray(style2[lastIndex])){if(customStyle=shallowClone(style2[lastIndex]),delete customStyle[oldName],newName)customStyle[newName]=value;else customStyle[oldName]=void 0;agent2.overrideValueAtPath({type:"props",id,rendererID,path:["style",lastIndex],value:customStyle})}else agent2.overrideValueAtPath({type:"props",id,rendererID,path:["style"],value:style2.concat([newStyle])})}else if(setupNativeStyleEditor_typeof(style2)==="object"){if(customStyle=shallowClone(style2),delete customStyle[oldName],newName)customStyle[newName]=value;else customStyle[oldName]=void 0;agent2.overrideValueAtPath({type:"props",id,rendererID,path:["style"],value:customStyle})}else agent2.overrideValueAtPath({type:"props",id,rendererID,path:["style"],value:[style2,newStyle]});agent2.emit("hideNativeHighlight")}function setStyle(agent2,id,rendererID,name,value){var data=agent2.getInstanceAndStyle({id,rendererID});if(!data||!data.style)return;var{instance,style:style2}=data,newStyle=setupNativeStyleEditor_defineProperty({},name,value);if(instance!==null&&typeof instance.setNativeProps==="function"){var styleOverrides=componentIDToStyleOverrides.get(id);if(!styleOverrides)componentIDToStyleOverrides.set(id,newStyle);else Object.assign(styleOverrides,newStyle);instance.setNativeProps({style:newStyle})}else if(src_isArray(style2)){var lastLength=style2.length-1;if(setupNativeStyleEditor_typeof(style2[lastLength])==="object"&&!src_isArray(style2[lastLength]))agent2.overrideValueAtPath({type:"props",id,rendererID,path:["style",lastLength,name],value});else agent2.overrideValueAtPath({type:"props",id,rendererID,path:["style"],value:style2.concat([newStyle])})}else agent2.overrideValueAtPath({type:"props",id,rendererID,path:["style"],value:[style2,newStyle]});agent2.emit("hideNativeHighlight")}var savedComponentFilters=getDefaultComponentFilters();function backend_debug(methodName){if(__DEBUG__){var _console;for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];(_console=console).log.apply(_console,["%c[core/backend] %c".concat(methodName),"color: teal; font-weight: bold;","font-weight: bold;"].concat(args))}}function backend_initialize(maybeSettingsOrSettingsPromise){var shouldStartProfilingNow=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,profilingSettings=arguments.length>2?arguments[2]:void 0;installHook(window,maybeSettingsOrSettingsPromise,shouldStartProfilingNow,profilingSettings)}function connectToDevTools(options){var hook=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(hook==null)return;var _ref=options||{},_ref$host=_ref.host,host=_ref$host===void 0?"localhost":_ref$host,nativeStyleEditorValidAttributes=_ref.nativeStyleEditorValidAttributes,_ref$useHttps=_ref.useHttps,useHttps=_ref$useHttps===void 0?!1:_ref$useHttps,_ref$port=_ref.port,port=_ref$port===void 0?8097:_ref$port,websocket=_ref.websocket,_ref$resolveRNStyle=_ref.resolveRNStyle,resolveRNStyle=_ref$resolveRNStyle===void 0?null:_ref$resolveRNStyle,_ref$retryConnectionD=_ref.retryConnectionDelay,retryConnectionDelay=_ref$retryConnectionD===void 0?2000:_ref$retryConnectionD,_ref$isAppActive=_ref.isAppActive,isAppActive=_ref$isAppActive===void 0?function(){return!0}:_ref$isAppActive,onSettingsUpdated=_ref.onSettingsUpdated,_ref$isReloadAndProfi=_ref.isReloadAndProfileSupported,isReloadAndProfileSupported=_ref$isReloadAndProfi===void 0?getIsReloadAndProfileSupported():_ref$isReloadAndProfi,isProfiling=_ref.isProfiling,onReloadAndProfile2=_ref.onReloadAndProfile,onReloadAndProfileFlagsReset2=_ref.onReloadAndProfileFlagsReset,protocol=useHttps?"wss":"ws",retryTimeoutID=null;function scheduleRetry(){if(retryTimeoutID===null)retryTimeoutID=setTimeout(function(){return connectToDevTools(options)},retryConnectionDelay)}if(!isAppActive()){scheduleRetry();return}var bridge=null,messageListeners=[],uri=protocol+"://"+host+":"+port,ws=websocket?websocket:new window.WebSocket(uri);ws.onclose=handleClose,ws.onerror=handleFailed,ws.onmessage=handleMessage,ws.onopen=function(){if(bridge=new src_bridge({listen:function(fn){return messageListeners.push(fn),function(){var index=messageListeners.indexOf(fn);if(index>=0)messageListeners.splice(index,1)}},send:function(event,payload,transferable){if(ws.readyState===ws.OPEN){if(__DEBUG__)backend_debug("wall.send()",event,payload);ws.send(JSON.stringify({event,payload}))}else{if(__DEBUG__)backend_debug("wall.send()","Shutting down bridge because of closed WebSocket connection");if(bridge!==null)bridge.shutdown();scheduleRetry()}}}),bridge.addListener("updateComponentFilters",function(componentFilters){savedComponentFilters=componentFilters}),window.__REACT_DEVTOOLS_COMPONENT_FILTERS__==null)bridge.send("overrideComponentFilters",savedComponentFilters);var agent2=new Agent(bridge,isProfiling,onReloadAndProfile2);if(typeof onReloadAndProfileFlagsReset2==="function")onReloadAndProfileFlagsReset2();if(onSettingsUpdated!=null)agent2.addListener("updateHookSettings",onSettingsUpdated);if(agent2.addListener("shutdown",function(){if(onSettingsUpdated!=null)agent2.removeListener("updateHookSettings",onSettingsUpdated);hook.emit("shutdown")}),initBackend(hook,agent2,window,isReloadAndProfileSupported),resolveRNStyle!=null||hook.resolveRNStyle!=null)setupNativeStyleEditor(bridge,agent2,resolveRNStyle||hook.resolveRNStyle,nativeStyleEditorValidAttributes||hook.nativeStyleEditorValidAttributes||null);else{var lazyResolveRNStyle,lazyNativeStyleEditorValidAttributes,initAfterTick=function(){if(bridge!==null)setupNativeStyleEditor(bridge,agent2,lazyResolveRNStyle,lazyNativeStyleEditorValidAttributes)};if(!hook.hasOwnProperty("resolveRNStyle"))Object.defineProperty(hook,"resolveRNStyle",{enumerable:!1,get:function(){return lazyResolveRNStyle},set:function(value){lazyResolveRNStyle=value,initAfterTick()}});if(!hook.hasOwnProperty("nativeStyleEditorValidAttributes"))Object.defineProperty(hook,"nativeStyleEditorValidAttributes",{enumerable:!1,get:function(){return lazyNativeStyleEditorValidAttributes},set:function(value){lazyNativeStyleEditorValidAttributes=value,initAfterTick()}})}};function handleClose(){if(__DEBUG__)backend_debug("WebSocket.onclose");if(bridge!==null)bridge.emit("shutdown");scheduleRetry()}function handleFailed(){if(__DEBUG__)backend_debug("WebSocket.onerror");scheduleRetry()}function handleMessage(event){var data;try{if(typeof event.data==="string"){if(data=JSON.parse(event.data),__DEBUG__)backend_debug("WebSocket.onmessage",data)}else throw Error()}catch(e){console.error("[React DevTools] Failed to parse JSON: "+event.data);return}messageListeners.forEach(function(fn){try{fn(data)}catch(error){throw console.log("[React DevTools] Error calling listener",data),console.log("error:",error),error}})}}function connectWithCustomMessagingProtocol(_ref2){var{onSubscribe,onUnsubscribe,onMessage,nativeStyleEditorValidAttributes,resolveRNStyle,onSettingsUpdated,isReloadAndProfileSupported:_ref2$isReloadAndProf}=_ref2,isReloadAndProfileSupported=_ref2$isReloadAndProf===void 0?getIsReloadAndProfileSupported():_ref2$isReloadAndProf,isProfiling=_ref2.isProfiling,onReloadAndProfile2=_ref2.onReloadAndProfile,onReloadAndProfileFlagsReset2=_ref2.onReloadAndProfileFlagsReset,hook=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(hook==null)return;var wall={listen:function(fn){return onSubscribe(fn),function(){onUnsubscribe(fn)}},send:function(event,payload){onMessage(event,payload)}},bridge=new src_bridge(wall);if(bridge.addListener("updateComponentFilters",function(componentFilters){savedComponentFilters=componentFilters}),window.__REACT_DEVTOOLS_COMPONENT_FILTERS__==null)bridge.send("overrideComponentFilters",savedComponentFilters);var agent2=new Agent(bridge,isProfiling,onReloadAndProfile2);if(typeof onReloadAndProfileFlagsReset2==="function")onReloadAndProfileFlagsReset2();if(onSettingsUpdated!=null)agent2.addListener("updateHookSettings",onSettingsUpdated);agent2.addListener("shutdown",function(){if(onSettingsUpdated!=null)agent2.removeListener("updateHookSettings",onSettingsUpdated);hook.emit("shutdown")});var unsubscribeBackend=initBackend(hook,agent2,window,isReloadAndProfileSupported),nativeStyleResolver=resolveRNStyle||hook.resolveRNStyle;if(nativeStyleResolver!=null){var validAttributes=nativeStyleEditorValidAttributes||hook.nativeStyleEditorValidAttributes||null;setupNativeStyleEditor(bridge,agent2,nativeStyleResolver,validAttributes)}return unsubscribeBackend}})(),__webpack_exports__})()})});var exports_devtools={};__export(exports_devtools,{isDevToolsConnected:()=>isDevToolsConnected,connectDevTools:()=>connectDevTools,autoConnectDevTools:()=>autoConnectDevTools});import{createLogger as createLogger14}from"loggily";async function connectDevTools(){if(connected)return!0;try{if(typeof globalThis.WebSocket>"u")try{let ws=await Promise.resolve().then(() => (init_wrapper(),exports_wrapper));globalThis.WebSocket=ws.default??ws}catch{return log12.warn?.("WebSocket polyfill (ws) not available. Install ws for DevTools support: bun add -d ws"),!1}if(typeof globalThis.window>"u")globalThis.window=globalThis;if(!globalThis.__REACT_DEVTOOLS_COMPONENT_FILTERS__)globalThis.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:"SilveryApp",isEnabled:!0,isValid:!0}];let devtools=await Promise.resolve().then(() => __toESM(require_backend(),1));return devtools.initialize(),devtools.connectToDevTools(),reconciler.injectIntoDevTools(),connected=!0,!0}catch(error){let message=error instanceof Error?error.message:String(error);return log12.warn?.(`Failed to connect to React DevTools. Install react-devtools-core: bun add -d react-devtools-core
|
|
151
|
-
Error: ${message}`),!1}}function isDevToolsConnected(){return connected}async function autoConnectDevTools(){if(process.env.DEBUG_DEVTOOLS==="1"||process.env.DEBUG_DEVTOOLS==="true")await connectDevTools()}var log12,connected=!1;var init_devtools=__esm(()=>{init_reconciler();log12=createLogger14("silvery:devtools")});init_context();import{forwardRef,useImperativeHandle,useLayoutEffect,useRef,useState}from"react";import{jsxDEV}from"react/jsx-dev-runtime";var Box=forwardRef(function(props,ref){let{children,onLayout,...restProps}=props,nodeRef=useRef(null),[node,setNode]=useState(null),lastReportedLayout=useRef(null);return useLayoutEffect(()=>{if(nodeRef.current)setNode(nodeRef.current)},[]),useLayoutEffect(()=>{if(!onLayout||!node)return;let handleLayoutChange=()=>{let layout=node.boxRect;if(!layout)return;let last=lastReportedLayout.current;if(!last||last.x!==layout.x||last.y!==layout.y||last.width!==layout.width||last.height!==layout.height)lastReportedLayout.current=layout,onLayout(layout)};if(node.layoutSubscribers.add(handleLayoutChange),node.boxRect)handleLayoutChange();return()=>{node.layoutSubscribers.delete(handleLayoutChange)}},[node,onLayout]),useImperativeHandle(ref,()=>({getNode:()=>nodeRef.current,getBoxRect:()=>nodeRef.current?.boxRect??null,getScrollRect:()=>nodeRef.current?.scrollRect??null}),[]),jsxDEV("silvery-box",{ref:nodeRef,...restProps,children:jsxDEV(NodeContext.Provider,{value:node,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)});import React3,{forwardRef as forwardRef2,useCallback as useCallback3,useContext as useContext3,useEffect as useEffect4,useImperativeHandle as useImperativeHandle2,useMemo as useMemo3,useRef as useRef5,useState as useState4}from"react";import{useCallback,useEffect,useMemo,useRef as useRef2,useState as useState2}from"react";function calcEdgeBasedScrollOffset(selectedIndex,currentOffset,visibleCount,totalCount,padding=1){if(totalCount<=visibleCount)return 0;let effectivePadding=padding*2>=visibleCount?0:padding,visibleStart=currentOffset,visibleEnd=currentOffset+visibleCount-1,paddedStart=visibleStart+effectivePadding,paddedEnd=visibleEnd-effectivePadding,newOffset=currentOffset;if(selectedIndex<paddedStart)newOffset=Math.max(0,selectedIndex-effectivePadding);else if(effectivePadding===0&&selectedIndex===paddedStart&¤tOffset>0&&visibleCount>padding)newOffset=Math.max(0,selectedIndex-padding);else if(selectedIndex>paddedEnd)newOffset=Math.min(totalCount-visibleCount,selectedIndex-visibleCount+effectivePadding+1);return Math.max(0,Math.min(newOffset,totalCount-visibleCount))}var DEFAULT_SCROLL_PADDING=1,DEFAULT_OVERSCAN=5,DEFAULT_MAX_RENDERED=100;function getHeight(index,estimateHeight,measuredHeights,getItemKey,avgMeasuredHeight){if(measuredHeights&&measuredHeights.size>0){let key=getItemKey?getItemKey(index):index,measured=measuredHeights.get(key);if(measured!==void 0)return measured;if(avgMeasuredHeight!==void 0)return avgMeasuredHeight}return typeof estimateHeight==="function"?estimateHeight(index):estimateHeight}function calcAverageHeight(count,estimateHeight,measuredHeights){if(count===0)return 1;if(measuredHeights&&measuredHeights.size>0){let total2=0;for(let h of measuredHeights.values())total2+=h;return total2/measuredHeights.size}if(typeof estimateHeight==="number")return estimateHeight;let sampleSize=Math.min(count,10),total=0;for(let i=0;i<sampleSize;i++)total+=typeof estimateHeight==="function"?estimateHeight(i):estimateHeight;return total/sampleSize}function sumHeights(startIndex,endIndex,estimateHeight,gap,measuredHeights,getItemKey){let itemCount=endIndex-startIndex;if(itemCount<=0)return 0;let gapTotal=(itemCount-1)*gap;if((!measuredHeights||measuredHeights.size===0)&&typeof estimateHeight==="number")return itemCount*estimateHeight+gapTotal;let avgMeasured;if(measuredHeights&&measuredHeights.size>0){let measuredTotal=0;for(let h of measuredHeights.values())measuredTotal+=h;avgMeasured=measuredTotal/measuredHeights.size}let total=0;for(let i=startIndex;i<endIndex;i++)total+=getHeight(i,estimateHeight,measuredHeights,getItemKey,avgMeasured);return total+gapTotal}function useVirtualizer(config){let{count,estimateHeight,viewportHeight,scrollTo,scrollPadding=DEFAULT_SCROLL_PADDING,overscan=DEFAULT_OVERSCAN,maxRendered=DEFAULT_MAX_RENDERED,gap=0,getItemKey}=config,measuredHeightsRef=useRef2(new Map),[measurementVersion,setMeasurementVersion]=useState2(0),measureItem=useCallback((key,height)=>{let cache=measuredHeightsRef.current;if(cache.get(key)===height)return!1;return cache.set(key,height),setMeasurementVersion((v)=>v+1),!0},[]),measuredHeights=measuredHeightsRef.current,avgHeight=calcAverageHeight(count,estimateHeight,measuredHeights),estimatedVisibleCount=Math.max(1,Math.ceil(viewportHeight/(avgHeight+gap))),selectedIndexRef=useRef2(Math.max(0,Math.min(scrollTo??0,count-1))),scrollOffsetRef=useRef2(calcEdgeBasedScrollOffset(selectedIndexRef.current,0,estimatedVisibleCount,count,scrollPadding)),[,setScrollOffset]=useState2(()=>scrollOffsetRef.current);if(scrollTo!==void 0){let clampedIndex=Math.max(0,Math.min(scrollTo,count-1));selectedIndexRef.current=clampedIndex;let newOffset=calcEdgeBasedScrollOffset(clampedIndex,scrollOffsetRef.current,estimatedVisibleCount,count,scrollPadding);if(newOffset!==scrollOffsetRef.current)scrollOffsetRef.current=newOffset}let effectiveScrollOffset=scrollOffsetRef.current;useEffect(()=>{setScrollOffset((prev)=>prev===effectiveScrollOffset?prev:effectiveScrollOffset)},[effectiveScrollOffset]);let scrollToItem=useCallback((index)=>{let clampedIndex=Math.max(0,Math.min(index,count-1));selectedIndexRef.current=clampedIndex;let newOffset=calcEdgeBasedScrollOffset(clampedIndex,scrollOffsetRef.current,estimatedVisibleCount,count,scrollPadding);scrollOffsetRef.current=newOffset,setScrollOffset(newOffset)},[count,estimatedVisibleCount,scrollPadding]),getKey=useCallback((index)=>{return getItemKey?getItemKey(index):index},[getItemKey]),windowCalc=useMemo(()=>{if(count===0)return{startIndex:0,endIndex:0,leadingHeight:0,trailingHeight:0};let minWindowSize=estimatedVisibleCount+2*overscan;if(count<=minWindowSize)return{startIndex:0,endIndex:count,leadingHeight:0,trailingHeight:0};let renderCount=Math.min(estimatedVisibleCount+2*overscan,maxRendered),viewportCenter=selectedIndexRef.current,halfWindow=Math.floor(renderCount/2),start=Math.max(0,viewportCenter-halfWindow),end=Math.min(count,start+renderCount);if(end===count)start=Math.max(0,end-renderCount);let leadingSize=sumHeights(0,start,estimateHeight,gap,measuredHeights,getItemKey),trailingSize=sumHeights(end,count,estimateHeight,gap,measuredHeights,getItemKey);return{startIndex:start,endIndex:end,leadingHeight:leadingSize,trailingHeight:trailingSize}},[count,effectiveScrollOffset,maxRendered,overscan,estimateHeight,avgHeight,gap,measurementVersion,getItemKey]),onEndReachedRef=useRef2(config.onEndReached);onEndReachedRef.current=config.onEndReached;let firedForCountRef=useRef2(-1),threshold=config.onEndReachedThreshold??DEFAULT_OVERSCAN,{endIndex}=windowCalc;return useEffect(()=>{if(!onEndReachedRef.current||count===0)return;if(endIndex>=count-threshold&&firedForCountRef.current!==count)firedForCountRef.current=count,onEndReachedRef.current()},[endIndex,count,threshold]),{range:{startIndex:windowCalc.startIndex,endIndex:windowCalc.endIndex},leadingHeight:windowCalc.leadingHeight,trailingHeight:windowCalc.trailingHeight,hiddenBefore:windowCalc.startIndex,hiddenAfter:count-windowCalc.endIndex,scrollOffset:effectiveScrollOffset,scrollToItem,getKey,measureItem,measuredHeights}}init_context();import{useContext,useEffect as useEffect2,useRef as useRef3}from"react";function
|
|
151
|
+
Error: ${message}`),!1}}function isDevToolsConnected(){return connected}async function autoConnectDevTools(){if(process.env.DEBUG_DEVTOOLS==="1"||process.env.DEBUG_DEVTOOLS==="true")await connectDevTools()}var log12,connected=!1;var init_devtools=__esm(()=>{init_reconciler();log12=createLogger14("silvery:devtools")});init_context();import{forwardRef,useImperativeHandle,useLayoutEffect,useRef,useState}from"react";import{jsxDEV}from"react/jsx-dev-runtime";var Box=forwardRef(function(props,ref){let{children,onLayout,...restProps}=props,nodeRef=useRef(null),[node,setNode]=useState(null),lastReportedLayout=useRef(null);return useLayoutEffect(()=>{if(nodeRef.current)setNode(nodeRef.current)},[]),useLayoutEffect(()=>{if(!onLayout||!node)return;let handleLayoutChange=()=>{let layout=node.boxRect;if(!layout)return;let last=lastReportedLayout.current;if(!last||last.x!==layout.x||last.y!==layout.y||last.width!==layout.width||last.height!==layout.height)lastReportedLayout.current=layout,onLayout(layout)};if(node.layoutSubscribers.add(handleLayoutChange),node.boxRect)handleLayoutChange();return()=>{node.layoutSubscribers.delete(handleLayoutChange)}},[node,onLayout]),useImperativeHandle(ref,()=>({getNode:()=>nodeRef.current,getBoxRect:()=>nodeRef.current?.boxRect??null,getScrollRect:()=>nodeRef.current?.scrollRect??null}),[]),jsxDEV("silvery-box",{ref:nodeRef,...restProps,children:jsxDEV(NodeContext.Provider,{value:node,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)});import React3,{forwardRef as forwardRef2,useCallback as useCallback3,useContext as useContext3,useEffect as useEffect4,useImperativeHandle as useImperativeHandle2,useMemo as useMemo3,useRef as useRef5,useState as useState4}from"react";import{useCallback,useEffect,useMemo,useRef as useRef2,useState as useState2}from"react";function calcEdgeBasedScrollOffset(selectedIndex,currentOffset,visibleCount,totalCount,padding=1){if(totalCount<=visibleCount)return 0;let effectivePadding=padding*2>=visibleCount?0:padding,visibleStart=currentOffset,visibleEnd=currentOffset+visibleCount-1,paddedStart=visibleStart+effectivePadding,paddedEnd=visibleEnd-effectivePadding,newOffset=currentOffset;if(selectedIndex<paddedStart)newOffset=Math.max(0,selectedIndex-effectivePadding);else if(effectivePadding===0&&selectedIndex===paddedStart&¤tOffset>0&&visibleCount>padding)newOffset=Math.max(0,selectedIndex-padding);else if(selectedIndex>paddedEnd)newOffset=Math.min(totalCount-visibleCount,selectedIndex-visibleCount+effectivePadding+1);return Math.max(0,Math.min(newOffset,totalCount-visibleCount))}var DEFAULT_SCROLL_PADDING=1,DEFAULT_OVERSCAN=5,DEFAULT_MAX_RENDERED=100;function getHeight(index,estimateHeight,measuredHeights,getItemKey,avgMeasuredHeight){if(measuredHeights&&measuredHeights.size>0){let key=getItemKey?getItemKey(index):index,measured=measuredHeights.get(key);if(measured!==void 0)return measured;if(avgMeasuredHeight!==void 0)return avgMeasuredHeight}return typeof estimateHeight==="function"?estimateHeight(index):estimateHeight}function calcAverageHeight(count,estimateHeight,measuredHeights){if(count===0)return 1;if(measuredHeights&&measuredHeights.size>0){let total2=0;for(let h of measuredHeights.values())total2+=h;return total2/measuredHeights.size}if(typeof estimateHeight==="number")return estimateHeight;let sampleSize=Math.min(count,10),total=0;for(let i=0;i<sampleSize;i++)total+=typeof estimateHeight==="function"?estimateHeight(i):estimateHeight;return total/sampleSize}function sumHeights(startIndex,endIndex,estimateHeight,gap,measuredHeights,getItemKey){let itemCount=endIndex-startIndex;if(itemCount<=0)return 0;let gapTotal=(itemCount-1)*gap;if((!measuredHeights||measuredHeights.size===0)&&typeof estimateHeight==="number")return itemCount*estimateHeight+gapTotal;let avgMeasured;if(measuredHeights&&measuredHeights.size>0){let measuredTotal=0;for(let h of measuredHeights.values())measuredTotal+=h;avgMeasured=measuredTotal/measuredHeights.size}let total=0;for(let i=startIndex;i<endIndex;i++)total+=getHeight(i,estimateHeight,measuredHeights,getItemKey,avgMeasured);return total+gapTotal}function useVirtualizer(config){let{count,estimateHeight,viewportHeight,scrollTo,scrollPadding=DEFAULT_SCROLL_PADDING,overscan=DEFAULT_OVERSCAN,maxRendered=DEFAULT_MAX_RENDERED,gap=0,getItemKey}=config,measuredHeightsRef=useRef2(new Map),[measurementVersion,setMeasurementVersion]=useState2(0),measureItem=useCallback((key,height)=>{let cache=measuredHeightsRef.current;if(cache.get(key)===height)return!1;return cache.set(key,height),setMeasurementVersion((v)=>v+1),!0},[]),measuredHeights=measuredHeightsRef.current,avgHeight=calcAverageHeight(count,estimateHeight,measuredHeights),estimatedVisibleCount=Math.max(1,Math.ceil(viewportHeight/(avgHeight+gap))),selectedIndexRef=useRef2(Math.max(0,Math.min(scrollTo??0,count-1))),scrollOffsetRef=useRef2(calcEdgeBasedScrollOffset(selectedIndexRef.current,0,estimatedVisibleCount,count,scrollPadding)),[,setScrollOffset]=useState2(()=>scrollOffsetRef.current);if(scrollTo!==void 0){let clampedIndex=Math.max(0,Math.min(scrollTo,count-1));selectedIndexRef.current=clampedIndex;let newOffset=calcEdgeBasedScrollOffset(clampedIndex,scrollOffsetRef.current,estimatedVisibleCount,count,scrollPadding);if(newOffset!==scrollOffsetRef.current)scrollOffsetRef.current=newOffset}let effectiveScrollOffset=scrollOffsetRef.current;useEffect(()=>{setScrollOffset((prev)=>prev===effectiveScrollOffset?prev:effectiveScrollOffset)},[effectiveScrollOffset]);let scrollToItem=useCallback((index)=>{let clampedIndex=Math.max(0,Math.min(index,count-1));selectedIndexRef.current=clampedIndex;let newOffset=calcEdgeBasedScrollOffset(clampedIndex,scrollOffsetRef.current,estimatedVisibleCount,count,scrollPadding);scrollOffsetRef.current=newOffset,setScrollOffset(newOffset)},[count,estimatedVisibleCount,scrollPadding]),getKey=useCallback((index)=>{return getItemKey?getItemKey(index):index},[getItemKey]),windowCalc=useMemo(()=>{if(count===0)return{startIndex:0,endIndex:0,leadingHeight:0,trailingHeight:0};let minWindowSize=estimatedVisibleCount+2*overscan;if(count<=minWindowSize)return{startIndex:0,endIndex:count,leadingHeight:0,trailingHeight:0};let renderCount=Math.min(estimatedVisibleCount+2*overscan,maxRendered),viewportCenter=selectedIndexRef.current,halfWindow=Math.floor(renderCount/2),start=Math.max(0,viewportCenter-halfWindow),end=Math.min(count,start+renderCount);if(end===count)start=Math.max(0,end-renderCount);let leadingSize=sumHeights(0,start,estimateHeight,gap,measuredHeights,getItemKey),trailingSize=sumHeights(end,count,estimateHeight,gap,measuredHeights,getItemKey);return{startIndex:start,endIndex:end,leadingHeight:leadingSize,trailingHeight:trailingSize}},[count,effectiveScrollOffset,maxRendered,overscan,estimateHeight,avgHeight,gap,measurementVersion,getItemKey]),onEndReachedRef=useRef2(config.onEndReached);onEndReachedRef.current=config.onEndReached;let firedForCountRef=useRef2(-1),threshold=config.onEndReachedThreshold??DEFAULT_OVERSCAN,{endIndex}=windowCalc;return useEffect(()=>{if(!onEndReachedRef.current||count===0)return;if(endIndex>=count-threshold&&firedForCountRef.current!==count)firedForCountRef.current=count,onEndReachedRef.current()},[endIndex,count,threshold]),{range:{startIndex:windowCalc.startIndex,endIndex:windowCalc.endIndex},leadingHeight:windowCalc.leadingHeight,trailingHeight:windowCalc.trailingHeight,hiddenBefore:windowCalc.startIndex,hiddenAfter:count-windowCalc.endIndex,scrollOffset:effectiveScrollOffset,scrollToItem,getKey,measureItem,measuredHeights}}init_context();init_keys();import{useContext,useEffect as useEffect2,useRef as useRef3}from"react";function useInput(inputHandler,options={}){let rt=useContext(RuntimeContext),{isActive=!0,onPaste,onRelease}=options,handlerRef=useRef3(inputHandler);handlerRef.current=inputHandler;let onPasteRef=useRef3(onPaste);onPasteRef.current=onPaste;let onReleaseRef=useRef3(onRelease);onReleaseRef.current=onRelease,useEffect2(()=>{if(!isActive||!rt)return;return rt.on("input",(input,key)=>{if(isModifierOnlyEvent(input,key))return;if(key.eventType==="release"){onReleaseRef.current?.(input,key);return}if(handlerRef.current(input,key)==="exit")rt.exit()})},[isActive,rt]),useEffect2(()=>{if(!isActive||!rt)return;return rt.on("paste",(text)=>{onPasteRef.current?.(text)})},[isActive,rt])}init_context();init_render_string();init_unicode();function createHistoryItem(key,ansi,width){let rows=ansi.split(`
|
|
152
152
|
`),plainTextRows=rows.map((r)=>stripAnsi2(r));return{key,ansi,rows,plainTextRows,width}}function createHistoryBuffer(capacity=1e4){let items=[],_totalRows=0;function evict(){while(_totalRows>capacity&&items.length>0){let removed=items.shift();_totalRows-=removed.rows.length}}function resolveRow(row){if(row<0||row>=_totalRows)return null;let cumulative=0;for(let i=0;i<items.length;i++){let itemRows=items[i].rows.length;if(row<cumulative+itemRows)return{itemIndex:i,localRow:row-cumulative};cumulative+=itemRows}return null}return{push(item){items.push(item),_totalRows+=item.rows.length,evict()},get totalRows(){return _totalRows},get itemCount(){return items.length},get capacity(){return capacity},getRows(startRow,count){let result=[];for(let r=startRow;r<startRow+count;r++){let resolved=resolveRow(r);if(resolved)result.push(items[resolved.itemIndex].rows[resolved.localRow]);else result.push("")}return result},getPlainTextRows(startRow,count){let result=[];for(let r=startRow;r<startRow+count;r++){let resolved=resolveRow(r);if(resolved)result.push(items[resolved.itemIndex].plainTextRows[resolved.localRow]);else result.push("")}return result},search(query){if(!query)return[];let lowerQuery=query.toLowerCase(),matches=[],rowOffset=0;for(let item of items){for(let r=0;r<item.plainTextRows.length;r++)if(item.plainTextRows[r].toLowerCase().includes(lowerQuery))matches.push(rowOffset+r);rowOffset+=item.rows.length}return matches},getItemAtRow(row){let resolved=resolveRow(row);if(!resolved)return null;return{item:items[resolved.itemIndex],localRow:resolved.localRow}},clear(){items=[],_totalRows=0}}}function createListDocument(history,getLiveItems){function liveRowCount(){let total=0;for(let block of getLiveItems())total+=block.rows.length;return total}return{get totalRows(){return history.totalRows+liveRowCount()},get frozenRows(){return history.totalRows},get liveRows(){return liveRowCount()},getRows(startRow,count){let frozen=history.totalRows,result=[];for(let r=startRow;r<startRow+count;r++)if(r<0||r>=this.totalRows)result.push("");else if(r<frozen)result.push(...history.getRows(r,1));else{let liveRow=r-frozen,found=!1;for(let block of getLiveItems()){if(liveRow<block.rows.length){result.push(block.rows[liveRow]),found=!0;break}liveRow-=block.rows.length}if(!found)result.push("")}return result},getPlainTextRows(startRow,count){let frozen=history.totalRows,result=[];for(let r=startRow;r<startRow+count;r++)if(r<0||r>=this.totalRows)result.push("");else if(r<frozen)result.push(...history.getPlainTextRows(r,1));else{let liveRow=r-frozen,found=!1;for(let block of getLiveItems()){if(liveRow<block.plainTextRows.length){result.push(block.plainTextRows[liveRow]),found=!0;break}liveRow-=block.plainTextRows.length}if(!found)result.push("")}return result},getSource(row){let frozen=history.totalRows;if(row<0||row>=this.totalRows)return null;if(row<frozen){let hit=history.getItemAtRow(row);if(!hit)return null;return{type:"frozen",itemKey:hit.item.key,localRow:hit.localRow}}let liveItems=getLiveItems(),liveRow=row-frozen;for(let block of liveItems){if(liveRow<block.rows.length)return{type:"live",itemIndex:block.itemIndex,localRow:liveRow};liveRow-=block.rows.length}return null},search(query){if(!query)return[];let lowerQuery=query.toLowerCase(),matches=[],frozen=history.totalRows,frozenRowMatches=history.search(query);for(let row of frozenRowMatches){let line=history.getPlainTextRows(row,1)[0].toLowerCase(),pos=line.indexOf(lowerQuery);while(pos!==-1)matches.push({row,startCol:pos,endCol:pos+query.length}),pos=line.indexOf(lowerQuery,pos+1)}let rowOffset=0;for(let block of getLiveItems()){for(let i=0;i<block.plainTextRows.length;i++){let line=block.plainTextRows[i].toLowerCase(),pos=line.indexOf(lowerQuery);while(pos!==-1)matches.push({row:frozen+rowOffset+i,startCol:pos,endCol:pos+query.length}),pos=line.indexOf(lowerQuery,pos+1)}rowOffset+=block.plainTextRows.length}return matches}}}init_unicode();function createTextSurface(config){let listeners=new Set;function notify(){for(let fn of listeners)fn()}return{get id(){return config.id},get document(){return config.document},getText(startRow,startCol,endRow,endCol){let rows=config.document.getRows(startRow,endRow-startRow+1),lines=[];for(let i=0;i<rows.length;i++){let plain=stripAnsi2(rows[i]),row=startRow+i;if(row===startRow&&row===endRow)lines.push(plain.slice(startCol,endCol));else if(row===startRow)lines.push(plain.slice(startCol));else if(row===endRow)lines.push(plain.slice(0,endCol));else lines.push(plain)}return lines.join(`
|
|
153
153
|
`)},search(query){return config.document.search(query)},hitTest(viewportRow,viewportCol){let docRow=config.viewportToDocument(viewportRow);if(docRow<0||docRow>=config.document.totalRows)return null;return{row:docRow,col:viewportCol}},reveal(row){config.onReveal(row),notify()},notifyContentChange(){notify()},subscribe(listener){return listeners.add(listener),()=>{listeners.delete(listener)}},get capabilities(){return config.capabilities}}}function composeViewport(config){let{history,viewportHeight,scrollOffset}=config,totalHistory=history.totalRows;if(scrollOffset<=0||totalHistory===0)return{overlayRows:[],overlayRowCount:0,liveRowsVisible:viewportHeight,isScrolledUp:!1,totalHeight:totalHistory+viewportHeight};let clampedOffset=Math.min(scrollOffset,totalHistory),startRow=Math.max(0,totalHistory-clampedOffset),rowsToShow=Math.min(viewportHeight,totalHistory-startRow),overlayRows=history.getRows(startRow,rowsToShow),liveRowsVisible=viewportHeight-rowsToShow;return{overlayRows,overlayRowCount:rowsToShow,liveRowsVisible,isScrolledUp:!0,totalHeight:totalHistory+viewportHeight}}init_unicode();import React2,{createContext as createContext3,useCallback as useCallback2,useContext as useContext2,useEffect as useEffect3,useMemo as useMemo2,useRef as useRef4,useState as useState3}from"react";function createSearchState(){return{active:!1,query:"",matches:[],currentMatch:-1,cursorPosition:0}}function searchUpdate(action,state,searchFn){switch(action.type){case"open":return[{...state,active:!0,query:"",matches:[],currentMatch:-1,cursorPosition:0},[{type:"render"}]];case"close":return[createSearchState(),[{type:"render"}]];case"input":{let query=state.query.slice(0,state.cursorPosition)+action.char+state.query.slice(state.cursorPosition),cursorPosition=state.cursorPosition+1,matches=searchFn?searchFn(query):[],currentMatch=matches.length>0?0:-1,effects=[{type:"render"}];if(currentMatch>=0)effects.push({type:"scrollTo",row:matches[0].row});return[{...state,query,cursorPosition,matches,currentMatch},effects]}case"backspace":{if(state.cursorPosition===0)return[state,[]];let query=state.query.slice(0,state.cursorPosition-1)+state.query.slice(state.cursorPosition),cursorPosition=state.cursorPosition-1,matches=searchFn?searchFn(query):[],currentMatch=matches.length>0?0:-1,effects=[{type:"render"}];if(currentMatch>=0)effects.push({type:"scrollTo",row:matches[0].row});return[{...state,query,cursorPosition,matches,currentMatch},effects]}case"nextMatch":{if(state.matches.length===0)return[state,[]];let currentMatch=(state.currentMatch+1)%state.matches.length;return[{...state,currentMatch},[{type:"scrollTo",row:state.matches[currentMatch].row},{type:"render"}]]}case"prevMatch":{if(state.matches.length===0)return[state,[]];let currentMatch=(state.currentMatch-1+state.matches.length)%state.matches.length;return[{...state,currentMatch},[{type:"scrollTo",row:state.matches[currentMatch].row},{type:"render"}]]}case"cursorLeft":if(state.cursorPosition===0)return[state,[]];return[{...state,cursorPosition:state.cursorPosition-1},[]];case"cursorRight":if(state.cursorPosition>=state.query.length)return[state,[]];return[{...state,cursorPosition:state.cursorPosition+1},[]];case"cursorToStart":if(state.cursorPosition===0)return[state,[]];return[{...state,cursorPosition:0},[]];case"cursorToEnd":if(state.cursorPosition>=state.query.length)return[state,[]];return[{...state,cursorPosition:state.query.length},[]];case"deleteWordBack":{if(state.cursorPosition===0)return[state,[]];let pos=state.cursorPosition;while(pos>0&&/\s/.test(state.query[pos-1]??""))pos--;while(pos>0&&!/\s/.test(state.query[pos-1]??""))pos--;let query=state.query.slice(0,pos)+state.query.slice(state.cursorPosition),cursorPosition=pos,matches=searchFn?searchFn(query):[],currentMatch=matches.length>0?0:-1,effects=[{type:"render"}];if(currentMatch>=0)effects.push({type:"scrollTo",row:matches[0].row});return[{...state,query,cursorPosition,matches,currentMatch},effects]}case"deleteToStart":{if(state.cursorPosition===0)return[state,[]];let query=state.query.slice(state.cursorPosition),cursorPosition=0,matches=searchFn?searchFn(query):[],currentMatch=matches.length>0?0:-1,effects=[{type:"render"}];if(currentMatch>=0)effects.push({type:"scrollTo",row:matches[0].row});return[{...state,query,cursorPosition,matches,currentMatch},effects]}}}var SearchContext=createContext3(null);function SearchProvider({children}){let[state,setState]=useState3(createSearchState),[focusedId,setFocusedId]=useState3(null),[activeId,setActiveId]=useState3(null),searchablesRef=useRef4(new Map),getActiveSearchable=useCallback2(()=>{let id=activeId??focusedId;if(!id){let entries=searchablesRef.current;if(entries.size===1)return entries.values().next().value;return null}return searchablesRef.current.get(id)??null},[activeId,focusedId]),getSearchFn=useCallback2(()=>{let searchable=getActiveSearchable();if(!searchable)return;return(query)=>searchable.search(query)},[getActiveSearchable]),pendingEffectsRef=useRef4(null);useEffect3(()=>{let pending=pendingEffectsRef.current;if(!pending)return;pendingEffectsRef.current=null;let searchable=getActiveSearchable();if(!searchable)return;for(let eff of pending.effects)if(eff.type==="scrollTo"){let match=pending.state.currentMatch>=0?pending.state.matches[pending.state.currentMatch]:void 0;if(match)searchable.reveal(match)}});let dispatch=useCallback2((action)=>{setState((prev2)=>{let searchFn=getSearchFn(),[next2,effects]=searchUpdate(action,prev2,searchFn);if(effects.length>0)pendingEffectsRef.current={effects,state:next2};return next2})},[getSearchFn]),registerSearchable=useCallback2((id,searchable)=>{return searchablesRef.current.set(id,searchable),()=>{searchablesRef.current.delete(id)}},[]),setFocused=useCallback2((id)=>{setFocusedId(id)},[]),open=useCallback2(()=>{setActiveId(focusedId),dispatch({type:"open"})},[focusedId,dispatch]),close=useCallback2(()=>{setActiveId(null),dispatch({type:"close"})},[dispatch]),next=useCallback2(()=>{dispatch({type:"nextMatch"})},[dispatch]),prev=useCallback2(()=>{dispatch({type:"prevMatch"})},[dispatch]),input=useCallback2((char)=>{dispatch({type:"input",char})},[dispatch]),backspace=useCallback2(()=>{dispatch({type:"backspace"})},[dispatch]),cursorLeft=useCallback2(()=>{setState((prev2)=>{let[next2]=searchUpdate({type:"cursorLeft"},prev2);return next2})},[]),cursorRight=useCallback2(()=>{setState((prev2)=>{let[next2]=searchUpdate({type:"cursorRight"},prev2);return next2})},[]),cursorToStart=useCallback2(()=>{setState((prev2)=>{let[next2]=searchUpdate({type:"cursorToStart"},prev2);return next2})},[]),cursorToEnd=useCallback2(()=>{setState((prev2)=>{let[next2]=searchUpdate({type:"cursorToEnd"},prev2);return next2})},[]),deleteWordBack=useCallback2(()=>{dispatch({type:"deleteWordBack"})},[dispatch]),deleteToStart=useCallback2(()=>{dispatch({type:"deleteToStart"})},[dispatch]),value=useMemo2(()=>({isActive:state.active,query:state.query,matches:state.matches,currentMatch:state.currentMatch,cursorPosition:state.cursorPosition,open,close,next,prev,input,backspace,cursorLeft,cursorRight,cursorToStart,cursorToEnd,deleteWordBack,deleteToStart,registerSearchable,setFocused}),[state,open,close,next,prev,input,backspace,cursorLeft,cursorRight,cursorToStart,cursorToEnd,deleteWordBack,deleteToStart,registerSearchable,setFocused]);return React2.createElement(SearchContext.Provider,{value},React2.createElement(SearchBindings,{ctx:value}),children)}function SearchBindings({ctx}){return useInput((input,key)=>{if(!ctx.isActive){if(key.ctrl&&input==="f"){ctx.open();return}return}if(key.escape){ctx.close();return}if(key.return&&!key.shift){ctx.next();return}if(key.return&&key.shift){ctx.prev();return}if(key.backspace&&key.meta){ctx.deleteWordBack();return}if(key.backspace){ctx.backspace();return}if(key.ctrl&&input==="w"){ctx.deleteWordBack();return}if(key.ctrl&&input==="u"){ctx.deleteToStart();return}if(key.ctrl&&input==="a"){ctx.cursorToStart();return}if(key.ctrl&&input==="e"){ctx.cursorToEnd();return}if(key.home){ctx.cursorToStart();return}if(key.end){ctx.cursorToEnd();return}if(key.leftArrow){ctx.cursorLeft();return}if(key.rightArrow){ctx.cursorRight();return}if(input&&!key.ctrl&&!key.meta){ctx.input(input);return}},{isActive:!0}),null}function useSearch(){let ctx=useContext2(SearchContext);if(!ctx)throw Error("useSearch must be used within a SearchProvider");return ctx}function useSearchOptional(){return useContext2(SearchContext)}import{jsxDEV as jsxDEV2}from"react/jsx-dev-runtime";var DEFAULT_ESTIMATE_HEIGHT=1,DEFAULT_OVERSCAN2=5,DEFAULT_MAX_RENDERED2=100,DEFAULT_SCROLL_PADDING2=2,WHEEL_STEP=3;function MeasuredItem({itemKey,measureItem,children}){let keyRef=useRef5(itemKey);keyRef.current=itemKey;let measureRef=useRef5(measureItem);measureRef.current=measureItem;let handleLayout=useCallback3((rect)=>{if(rect.height>0)measureRef.current(keyRef.current,rect.height)},[]);return jsxDEV2(Box,{flexDirection:"column",flexShrink:0,onLayout:handleLayout,children},void 0,!1,void 0,this)}function ListViewInner({items,height,estimateHeight=DEFAULT_ESTIMATE_HEIGHT,renderItem,scrollTo:scrollToProp,overscan=DEFAULT_OVERSCAN2,maxRendered=DEFAULT_MAX_RENDERED2,scrollPadding=DEFAULT_SCROLL_PADDING2,overflowIndicator,getKey,width,gap=0,renderSeparator,onWheel:onWheelProp,onEndReached,onEndReachedThreshold,listFooter,unmounted,nav,cursorKey:cursorKeyProp,onCursor,onSelect,active,surfaceId,search:searchProp,cache:cacheProp},ref){let term2=useContext3(TermContext),cacheBackendFromContext=useContext3(CacheBackendContext),stdoutCtx=useContext3(StdoutContext),isControlled=cursorKeyProp!==void 0,[uncontrolledCursor,setUncontrolledCursor]=useState4(0),activeCursor=nav?isControlled?cursorKeyProp:uncontrolledCursor:-1,moveTo=useCallback3((next)=>{let clamped=Math.max(0,Math.min(next,items.length-1));if(!isControlled)setUncontrolledCursor(clamped);onCursor?.(clamped)},[isControlled,items.length,onCursor]);useInput((input,key)=>{if(!nav)return;let cur=activeCursor;if(input==="j"||key.downArrow)moveTo(cur+1);else if(input==="k"||key.upArrow)moveTo(cur-1);else if(input==="G"||key.end)moveTo(items.length-1);else if(key.home)moveTo(0);else if(key.pageDown||input==="d"&&key.ctrl)moveTo(cur+Math.floor(height/2));else if(key.pageUp||input==="u"&&key.ctrl)moveTo(cur-Math.floor(height/2));else if(key.return)onSelect?.(cur)},{isActive:nav&&active!==!1});let scrollTo=nav?activeCursor:scrollToProp,cacheConfig=typeof cacheProp==="object"?cacheProp:cacheProp?{mode:"auto"}:void 0,rawCacheMode=cacheConfig?.mode??"none",cacheMode=rawCacheMode==="auto"?cacheBackendFromContext==="terminal"?"terminal":"virtual":rawCacheMode,cacheBufferRef=useRef5(null);if(cacheMode==="virtual"&&!cacheBufferRef.current)cacheBufferRef.current=createHistoryBuffer(cacheConfig?.capacity??1e4);let cacheBuffer=cacheBufferRef.current,searchConfig=typeof searchProp==="object"?searchProp:searchProp?{}:void 0,getText=searchConfig?.getText??(searchConfig?(item)=>String(item):void 0),cachedCount=0;if((cacheMode==="virtual"||cacheMode==="terminal")&&cacheConfig?.isCacheable)for(let i=0;i<items.length;i++){if(!cacheConfig.isCacheable(items[i],i))break;cachedCount++}let prevCachedRef=useRef5(0);if(cachedCount>prevCachedRef.current&&(cacheMode==="virtual"||cacheMode==="terminal")){let captureWidth=width??term2?.cols??80,canCapture=isLayoutEngineInitialized();for(let i=prevCachedRef.current;i<cachedCount;i++){let item=items[i],key=getKey?.(item,i)??i,ansi;if(canCapture)try{let element=renderItem(item,i,{isCursor:!1});ansi=renderStringSync(element,{width:captureWidth,plain:!1,trimTrailingWhitespace:!0,trimEmptyLines:!1})}catch{ansi=getText?.(item)??String(item)}else ansi=getText?.(item)??String(item);if(cacheMode==="terminal"){let lineCount=ansi.split(`
|
|
154
154
|
`).length;stdoutCtx?.promoteScrollback?.(`${ansi}\x1B[K\r
|
|
@@ -157,19 +157,19 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
157
157
|
`);for(let lineIdx=0;lineIdx<lines.length;lineIdx++){let lowerLine=lines[lineIdx].toLowerCase(),col=0;while(col<lowerLine.length){let found=lowerLine.indexOf(lowerQuery,col);if(found===-1)break;matches.push({row:row+lineIdx,startCol:found,endCol:found+query.length}),col=found+1}}row+=lines.length}return matches},reveal(match){let currentItems=itemsRef.current,currentGetText=getTextRef.current,row=0;for(let i=0;i<currentItems.length;i++){let item=currentItems[i],lineCount=(currentGetText?.(item)??String(item)).split(`
|
|
158
158
|
`).length;if(match.row<row+lineCount){scrollToItemRef.current(Math.max(0,i-unmountedCountRef.current));return}row+=lineCount}}};return searchCtx.registerSearchable(surfaceId,searchable)},[searchConfig,searchCtx,surfaceId]),cacheMode==="virtual"&&cacheBuffer)composedViewportRef.current=composeViewport({history:cacheBuffer,viewportHeight:height,scrollOffset:0});useImperativeHandle2(ref,()=>({scrollToItem(index){scrollToItem(Math.max(0,index-unmountedCount))},getHistoryBuffer(){return cacheBufferRef.current},getComposedViewport(){return composedViewportRef.current}}),[scrollToItem,unmountedCount]);let onWheel=useMemo3(()=>{if(nav&&active!==!1)return(e)=>{let delta=e.deltaY>0?WHEEL_STEP:-WHEEL_STEP;moveTo(activeCursor+delta)};return onWheelProp},[nav,active,activeCursor,moveTo,onWheelProp]);if(activeItems.length===0)return jsxDEV2(Box,{flexDirection:"column",height,width},void 0,!1,void 0,this);let{startIndex,endIndex}=range,visibleItems=activeItems.slice(startIndex,endIndex),hasTopPlaceholder=leadingHeight>0,selectedIndexInSlice=(adjustedScrollTo!==void 0?Math.max(0,Math.min(adjustedScrollTo,activeItems.length-1)):scrollOffset)-startIndex,isSelectedInSlice=selectedIndexInSlice>=0&&selectedIndexInSlice<visibleItems.length,scrollToIndex=hasTopPlaceholder?selectedIndexInSlice+1:selectedIndexInSlice,boxScrollTo=isSelectedInSlice?Math.max(0,scrollToIndex):void 0;return jsxDEV2(Box,{flexDirection:"column",height,width,overflow:"scroll",scrollTo:boxScrollTo,overflowIndicator,onWheel,children:[leadingHeight>0&&jsxDEV2(Box,{height:leadingHeight,flexShrink:0},void 0,!1,void 0,this),visibleItems.map((item,i)=>{let originalIndex=startIndex+i+unmountedCount,key=getKey?getKey(item,originalIndex):startIndex+i,isLast=i===visibleItems.length-1,meta={isCursor:originalIndex===activeCursor},measureKey=wrappedGetKey?wrappedGetKey(startIndex+i):startIndex+i;return jsxDEV2(React3.Fragment,{children:[jsxDEV2(MeasuredItem,{itemKey:measureKey,measureItem,children:renderItem(item,originalIndex,meta)},void 0,!1,void 0,this),!isLast&&renderSeparator&&renderSeparator(),!isLast&&gap>0&&!renderSeparator&&jsxDEV2(Box,{height:gap,flexShrink:0},void 0,!1,void 0,this)]},key,!0,void 0,this)}),listFooter,trailingHeight>0&&jsxDEV2(Box,{height:trailingHeight,flexShrink:0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var ListView=forwardRef2(ListViewInner);import React4,{forwardRef as forwardRef4,useImperativeHandle as useImperativeHandle3}from"react";import{useMemo as useMemo4}from"react";function useVirtualization(config){let{items,viewportSize,itemSize,scrollTo,scrollPadding,overscan,maxRendered,gap}=config,estimateHeight=useMemo4(()=>{if(typeof itemSize==="number")return itemSize;return(index)=>itemSize(items[index],index)},[items,itemSize]),result=useVirtualizer({count:items.length,estimateHeight,viewportHeight:viewportSize,scrollTo,scrollPadding,overscan,maxRendered,gap}),currentSelectedIndex=scrollTo!==void 0?Math.max(0,Math.min(scrollTo,items.length-1)):result.scrollOffset;return{startIndex:result.range.startIndex,endIndex:result.range.endIndex,currentSelectedIndex,scrollOffset:result.scrollOffset,leadingPlaceholderSize:result.leadingHeight,trailingPlaceholderSize:result.trailingHeight,hiddenBefore:result.hiddenBefore,hiddenAfter:result.hiddenAfter,scrollToItem:result.scrollToItem}}import{forwardRef as forwardRef3}from"react";import{jsxDEV as jsxDEV3}from"react/jsx-dev-runtime";var Text=forwardRef3(function(props,ref){let{children,...styleProps}=props;return jsxDEV3("silvery-text",{ref:(node)=>{if(typeof ref==="function")ref(node?{getNode:()=>node}:null);else if(ref)ref.current=node?{getNode:()=>node}:null},...styleProps,children},void 0,!1,void 0,this)});import{jsxDEV as jsxDEV4}from"react/jsx-dev-runtime";var DEFAULT_OVERSCAN3=1,DEFAULT_MAX_RENDERED3=20,SCROLL_PADDING=1;function calcTotalItemsWidth(items,itemWidth,gap){if(items.length===0)return 0;if(typeof itemWidth==="number")return items.length*itemWidth+(items.length-1)*gap;let total=0;for(let i=0;i<items.length;i++)total+=itemWidth(items[i],i)+(i>0?gap:0);return total}function calcActualVisibleCount(items,startFrom,viewport,itemWidth,gap){if(typeof itemWidth==="number")return Math.max(1,Math.floor((viewport+gap)/(itemWidth+gap)));let usedSize=0,count=0;for(let i=startFrom;i<items.length;i++){let sizeWithGap=itemWidth(items[i],i)+(count>0?gap:0);if(usedSize+sizeWithGap>viewport)break;usedSize+=sizeWithGap,count++}return Math.max(1,count)}function calcItemOverflow(items,scrollOffset,targetIndex,viewport,itemWidth,gap){if(targetIndex<scrollOffset||targetIndex>=items.length)return 0;let pos=0;for(let i=scrollOffset;i<=targetIndex;i++){let w=typeof itemWidth==="number"?itemWidth:itemWidth(items[i],i);pos+=w+(i>scrollOffset?gap:0)}return pos-viewport}function HorizontalVirtualListInner({items,width,itemWidth,scrollTo,overscan=DEFAULT_OVERSCAN3,maxRendered=DEFAULT_MAX_RENDERED3,renderItem,overflowIndicator,renderOverflowIndicator,overflowIndicatorWidth=0,getKey,height,gap=0,renderSeparator},ref){let allItemsFit=calcTotalItemsWidth(items,itemWidth,gap)<=width,hasIndicatorRenderer=renderOverflowIndicator!=null||overflowIndicator===!0,indicatorReserved=hasIndicatorRenderer?overflowIndicatorWidth*2:0,effectiveViewport=Math.max(1,width-indicatorReserved),{startIndex,endIndex,scrollOffset,scrollToItem}=useVirtualization({items,viewportSize:effectiveViewport,itemSize:itemWidth,scrollTo,scrollPadding:SCROLL_PADDING,overscan,maxRendered,gap});if(useImperativeHandle3(ref,()=>({scrollToItem}),[scrollToItem]),items.length===0)return jsxDEV4(Box,{flexDirection:"row",width,height},void 0,!1,void 0,this);let displayScrollOffset=allItemsFit?0:scrollOffset;if(scrollTo!==void 0&&!allItemsFit&&scrollTo>=displayScrollOffset){let wouldShowLeft=hasIndicatorRenderer&&displayScrollOffset>0,prelimVisibleCount=calcActualVisibleCount(items,displayScrollOffset,effectiveViewport,itemWidth,gap),wouldShowRight=hasIndicatorRenderer&&items.length-displayScrollOffset-prelimVisibleCount>0,actualIndicatorWidth=(wouldShowLeft?overflowIndicatorWidth:0)+(wouldShowRight?overflowIndicatorWidth:0),actualViewport=Math.max(1,width-actualIndicatorWidth);if(calcItemOverflow(items,displayScrollOffset,scrollTo,actualViewport,itemWidth,gap)>0){let maxOffset=Math.max(0,items.length-1);displayScrollOffset=Math.min(maxOffset,displayScrollOffset+1)}}let visibleCount=calcActualVisibleCount(items,displayScrollOffset,effectiveViewport,itemWidth,gap),vpStart=Math.max(startIndex,displayScrollOffset),rawVpEnd=Math.min(endIndex,displayScrollOffset+visibleCount+overscan),vpEnd=vpStart,usedWidth=0;for(let i=vpStart;i<rawVpEnd;i++){let w=typeof itemWidth==="number"?itemWidth:itemWidth(items[i],i),gapWidth=vpEnd>vpStart?gap:0;if(usedWidth>0&&usedWidth+gapWidth+w>effectiveViewport)break;usedWidth+=w+gapWidth,vpEnd=i+1}let visibleItems=items.slice(vpStart,vpEnd),overflowBefore=displayScrollOffset,overflowAfter=Math.max(0,items.length-displayScrollOffset-visibleCount),hasCustomIndicator=renderOverflowIndicator!=null,showIndicators=hasCustomIndicator||overflowIndicator===!0,showLeftIndicator=showIndicators&&overflowBefore>0,showRightIndicator=showIndicators&&overflowAfter>0;return jsxDEV4(Box,{flexDirection:"row",width,height,children:[showLeftIndicator&&(hasCustomIndicator?renderOverflowIndicator("before",overflowBefore):jsxDEV4(Box,{flexShrink:0,children:jsxDEV4(Text,{color:"$inverse",backgroundColor:"$inverse-bg",children:["◀",overflowBefore]},void 0,!0,void 0,this)},void 0,!1,void 0,this)),showIndicators&&!showLeftIndicator&&overflowIndicatorWidth>0&&jsxDEV4(Box,{width:overflowIndicatorWidth,flexShrink:0},void 0,!1,void 0,this),jsxDEV4(Box,{flexGrow:1,flexDirection:"row",overflow:"hidden",children:visibleItems.map((item,i)=>{let actualIndex=vpStart+i,key=getKey?getKey(item,actualIndex):actualIndex,isLast=i===visibleItems.length-1;return jsxDEV4(React4.Fragment,{children:[jsxDEV4(Box,{flexShrink:0,children:renderItem(item,actualIndex)},void 0,!1,void 0,this),!isLast&&renderSeparator&&renderSeparator(),!isLast&&gap>0&&!renderSeparator&&jsxDEV4(Box,{width:gap,flexShrink:0},void 0,!1,void 0,this)]},key,!0,void 0,this)})},void 0,!1,void 0,this),showRightIndicator&&(hasCustomIndicator?renderOverflowIndicator("after",overflowAfter):jsxDEV4(Box,{flexShrink:0,children:jsxDEV4(Text,{color:"$inverse",backgroundColor:"$inverse-bg",children:[overflowAfter,"▶"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)),showIndicators&&!showRightIndicator&&overflowIndicatorWidth>0&&jsxDEV4(Box,{width:overflowIndicatorWidth,flexShrink:0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var HorizontalVirtualList=forwardRef4(HorizontalVirtualListInner);import{jsxDEV as jsxDEV5}from"react/jsx-dev-runtime";var MIN_PANE_HEIGHT=5,DEFAULT_FOCUSED_COLOR="green",DEFAULT_UNFOCUSED_COLOR="gray";function SplitView(props){let{layout,renderPane,focusedPaneId,showBorders=!0,focusedBorderColor=DEFAULT_FOCUSED_COLOR,unfocusedBorderColor=DEFAULT_UNFOCUSED_COLOR,renderPaneTitle}=props;return jsxDEV5(Box,{flexGrow:1,flexDirection:"column",children:jsxDEV5(LayoutNodeView,{node:layout,renderPane,focusedPaneId,showBorders,focusedBorderColor,unfocusedBorderColor,renderPaneTitle},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function LayoutNodeView(props){let{node,renderPane,focusedPaneId,showBorders,focusedBorderColor,unfocusedBorderColor,renderPaneTitle}=props;if(node.type==="leaf")return jsxDEV5(LeafPane,{id:node.id,renderPane,isFocused:focusedPaneId===node.id,showBorders,focusedBorderColor,unfocusedBorderColor,title:renderPaneTitle?.(node.id)},void 0,!1,void 0,this);let isHorizontal=node.direction==="horizontal",firstPercent=`${Math.round(node.ratio*100)}%`,secondPercent=`${100-Math.round(node.ratio*100)}%`,firstFlex=Math.round(node.ratio*100),secondFlex=100-firstFlex;return jsxDEV5(Box,{flexGrow:1,flexDirection:isHorizontal?"row":"column",children:[jsxDEV5(Box,{width:isHorizontal?firstPercent:void 0,flexGrow:isHorizontal?void 0:firstFlex,flexShrink:1,minHeight:!isHorizontal?MIN_PANE_HEIGHT:void 0,overflow:"hidden",children:jsxDEV5(LayoutNodeView,{node:node.first,renderPane,focusedPaneId,showBorders,focusedBorderColor,unfocusedBorderColor,renderPaneTitle},void 0,!1,void 0,this)},void 0,!1,void 0,this),jsxDEV5(Box,{width:isHorizontal?secondPercent:void 0,flexGrow:isHorizontal?void 0:secondFlex,flexShrink:1,minHeight:!isHorizontal?MIN_PANE_HEIGHT:void 0,overflow:"hidden",children:jsxDEV5(LayoutNodeView,{node:node.second,renderPane,focusedPaneId,showBorders,focusedBorderColor,unfocusedBorderColor,renderPaneTitle},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function LeafPane(props){let{id,renderPane,isFocused,showBorders,focusedBorderColor,unfocusedBorderColor,title}=props;if(!showBorders)return jsxDEV5(Box,{flexGrow:1,testID:`pane-${id}`,children:renderPane(id)},void 0,!1,void 0,this);return jsxDEV5(Box,{flexGrow:1,flexBasis:0,overflow:"hidden",borderStyle:"single",borderColor:isFocused?focusedBorderColor:unfocusedBorderColor,testID:`pane-${id}`,flexDirection:"column",children:[title!=null&&jsxDEV5(Box,{children:jsxDEV5(Text,{color:isFocused?focusedBorderColor:unfocusedBorderColor,children:title},void 0,!1,void 0,this)},void 0,!1,void 0,this),jsxDEV5(Box,{flexGrow:1,children:renderPane(id)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function createLeaf(id){return{type:"leaf",id}}function getPaneIds(layout){if(layout.type==="leaf")return[layout.id];return[...getPaneIds(layout.first),...getPaneIds(layout.second)]}function getTabOrder(layout){return getPaneIds(layout)}function splitPane(layout,targetPaneId,direction,newPaneId,ratio=0.5){let clampedRatio=clampRatio(ratio);if(layout.type==="leaf"){if(layout.id===targetPaneId)return{type:"split",direction,ratio:clampedRatio,first:{type:"leaf",id:targetPaneId},second:{type:"leaf",id:newPaneId}};return layout}let newFirst=splitPane(layout.first,targetPaneId,direction,newPaneId,ratio),newSecond=splitPane(layout.second,targetPaneId,direction,newPaneId,ratio);if(newFirst===layout.first&&newSecond===layout.second)return layout;return{...layout,first:newFirst,second:newSecond}}function removePane(layout,paneId){if(layout.type==="leaf")return layout.id===paneId?null:layout;if(layout.first.type==="leaf"&&layout.first.id===paneId)return layout.second;if(layout.second.type==="leaf"&&layout.second.id===paneId)return layout.first;let newFirst=removePane(layout.first,paneId),newSecond=removePane(layout.second,paneId);if(newFirst===null)return newSecond;if(newSecond===null)return newFirst;if(newFirst===layout.first&&newSecond===layout.second)return layout;return{...layout,first:newFirst,second:newSecond}}function swapPanes(layout,paneId1,paneId2){if(layout.type==="leaf"){if(layout.id===paneId1)return{type:"leaf",id:paneId2};if(layout.id===paneId2)return{type:"leaf",id:paneId1};return layout}let newFirst=swapPanes(layout.first,paneId1,paneId2),newSecond=swapPanes(layout.second,paneId1,paneId2);if(newFirst===layout.first&&newSecond===layout.second)return layout;return{...layout,first:newFirst,second:newSecond}}function resizeSplit(layout,paneId,delta){if(layout.type==="leaf")return layout;if(getPaneIds(layout.first).includes(paneId)){let newRatio=clampRatio(layout.ratio+delta);if(newRatio===layout.ratio)return layout;return{...layout,ratio:newRatio}}if(getPaneIds(layout.second).includes(paneId)){let newRatio=clampRatio(layout.ratio-delta);if(newRatio===layout.ratio)return layout;return{...layout,ratio:newRatio}}return layout}function findAdjacentPane(layout,paneId,direction){let path=findPath(layout,paneId);if(!path)return null;let splitDirection=direction==="left"||direction==="right"?"horizontal":"vertical",goToSecond=direction==="right"||direction==="down";for(let i=path.length-1;i>=0;i--){let step=path[i];if(step.node.type!=="split")continue;if(step.node.direction!==splitDirection)continue;if(step.side==="first"&&goToSecond)return firstLeaf(step.node.second);if(step.side==="second"&&!goToSecond)return lastLeaf(step.node.first)}return null}function clampRatio(ratio){return Math.max(0.1,Math.min(0.9,ratio))}function firstLeaf(node){if(node.type==="leaf")return node.id;return firstLeaf(node.first)}function lastLeaf(node){if(node.type==="leaf")return node.id;return lastLeaf(node.second)}function findPath(layout,paneId){if(layout.type==="leaf")return layout.id===paneId?[]:null;let firstPath=findPath(layout.first,paneId);if(firstPath!==null)return[{node:layout,side:"first"},...firstPath];let secondPath=findPath(layout.second,paneId);if(secondPath!==null)return[{node:layout,side:"second"},...secondPath];return null}init_unicode();import{useMemo as useMemo5,Children,isValidElement,cloneElement}from"react";import{jsxDEV as jsxDEV6,Fragment}from"react/jsx-dev-runtime";var MAX_FILL_COLS=500;function extractText(children){let text="";return Children.forEach(children,(child)=>{if(typeof child==="string")text+=child;else if(typeof child==="number")text+=String(child);else if(isValidElement(child)&&child.props.children!=null)text+=extractText(child.props.children)}),text}function renderWithText(children,text){let firstChild=Children.toArray(children)[0];if(isValidElement(firstChild))return cloneElement(firstChild,{wrap:"clip"},text);return jsxDEV6(Fragment,{children:text},void 0,!1,void 0,this)}function Fill({children,measurer}){let repeatedText=useMemo5(()=>{let pattern=extractText(children);if(!pattern)return null;let unitWidth=(measurer?measurer.displayWidth.bind(measurer):displayWidth)(pattern);if(unitWidth<=0)return null;let count=Math.ceil(MAX_FILL_COLS/unitWidth);return pattern.repeat(count)},[children,measurer]);if(!repeatedText)return jsxDEV6(Fragment,{children},void 0,!1,void 0,this);return renderWithText(children,repeatedText)}import{useCallback as useCallback4,useContext as useContext6,useState as useState5}from"react";init_context();import{useContext as useContext4,useMemo as useMemo6,useSyncExternalStore}from"react";var INITIAL={super:!1,ctrl:!1,alt:!1,shift:!1},lastModifierState=INITIAL,stores=new WeakMap;function getOrCreateStore(rt){let store=stores.get(rt);if(store)return store;let state=INITIAL,listeners=new Set;function notify(){for(let cb of listeners)cb()}return rt.on("input",(_input,key)=>{let next={super:!!key.super,ctrl:!!key.ctrl,alt:!!key.meta,shift:!!key.shift};if(next.super!==state.super||next.ctrl!==state.ctrl||next.alt!==state.alt||next.shift!==state.shift)state=next,lastModifierState=next,notify()}),rt.on("focus",(focused)=>{if(!focused&&(state.super||state.ctrl||state.alt||state.shift))state=INITIAL,lastModifierState=INITIAL,notify()}),store={subscribe:(cb)=>{return listeners.add(cb),()=>listeners.delete(cb)},getSnapshot:()=>state},stores.set(rt,store),store}function getModifierState(rt){let store=stores.get(rt);return store?store.getSnapshot():INITIAL}var noopUnsubscribe=()=>{},noopSubscribe=(_cb)=>noopUnsubscribe;function useModifierKeys(opts){let enabled=opts?.enabled??!0,rt=useContext4(RuntimeContext),store=useMemo6(()=>rt?getOrCreateStore(rt):null,[rt]);return useSyncExternalStore(enabled&&store?store.subscribe:noopSubscribe,store?store.getSnapshot:()=>INITIAL,()=>INITIAL)}init_context();import{useEffect as useEffect5,useContext as useContext5}from"react";init_src2();import{hostname}from"node:os";var ESC2="\x1B",CSI=`${ESC2}[`,CURSOR_HIDE=`${CSI}?25l`,CURSOR_SHOW=`${CSI}?25h`,CURSOR_HOME=`${CSI}H`,SYNC_BEGIN=`${CSI}?2026h`,SYNC_END=`${CSI}?2026l`,RESET=`${CSI}0m`,SGR={bold:1,dim:2,italic:3,underline:4,blink:5,inverse:7,hidden:8,strikethrough:9,boldOff:22,italicOff:23,underlineOff:24,blinkOff:25,inverseOff:27,hiddenOff:28,strikethroughOff:29,fgDefault:39,fgBlack:30,fgRed:31,fgGreen:32,fgYellow:33,fgBlue:34,fgMagenta:35,fgCyan:36,fgWhite:37,fgBrightBlack:90,fgBrightRed:91,fgBrightGreen:92,fgBrightYellow:93,fgBrightBlue:94,fgBrightMagenta:95,fgBrightCyan:96,fgBrightWhite:97,bgDefault:49,bgBlack:40,bgRed:41,bgGreen:42,bgYellow:43,bgBlue:44,bgMagenta:45,bgCyan:46,bgWhite:47,bgBrightBlack:100,bgBrightRed:101,bgBrightGreen:102,bgBrightYellow:103,bgBrightBlue:104,bgBrightMagenta:105,bgBrightCyan:106,bgBrightWhite:107};function moveCursor(x,y){return`${CSI}${y+1};${x+1}H`}function cursorUp(n){if(n<=0)return"";if(n===1)return`${CSI}A`;return`${CSI}${n}A`}function cursorDown(n){if(n<=0)return"";if(n===1)return`${CSI}B`;return`${CSI}${n}B`}function cursorRight(n){if(n<=0)return"";if(n===1)return`${CSI}C`;return`${CSI}${n}C`}function cursorLeft(n){if(n<=0)return"";if(n===1)return`${CSI}D`;return`${CSI}${n}D`}function cursorToColumn(x){return`${CSI}${x+1}G`}var CURSOR_SHAPE_CODES={block:{blink:1,steady:2},underline:{blink:3,steady:4},bar:{blink:5,steady:6}};function setCursorStyle(shape,blink=!1){let code=blink?CURSOR_SHAPE_CODES[shape].blink:CURSOR_SHAPE_CODES[shape].steady;return`${CSI}${code} q`}function resetCursorStyle(){return`${CSI}0 q`}function enterAlternateScreen(){return`${CSI}?1049h${CSI}2J${CURSOR_HOME}${CURSOR_HIDE}`}function leaveAlternateScreen(){return`${SYNC_END}${CURSOR_SHOW}${CSI}?1049l`}var enableMouse2=enableMouse,disableMouse2=disableMouse,KittyFlags={DISAMBIGUATE:1,REPORT_EVENTS:2,REPORT_ALTERNATE:4,REPORT_ALL_KEYS:8,REPORT_TEXT:16},enableKittyKeyboard2=enableKittyKeyboard;function queryKittyKeyboard(){return`${CSI}?u`}var disableKittyKeyboard2=disableKittyKeyboard,BEL="\x07";function notifyITerm2(message){return`${ESC2}]9;${message}${BEL}`}function notifyKitty(message,opts){let params=opts?.title?`;t=t;${opts.title}`:"";return`${ESC2}]99;i=1:d=0${params};${message}${ESC2}\\`}function notify(stdout,message,opts){let termProgram=process.env.TERM_PROGRAM??"",term2=process.env.TERM??"";if(termProgram==="iTerm.app")stdout.write(notifyITerm2(message));else if(term2==="xterm-kitty")stdout.write(notifyKitty(message,opts));else stdout.write(BEL)}function setWindowTitle(stdout,title){stdout.write(`${ESC2}]2;${title}${BEL}`)}function setWindowAndIconTitle(stdout,title){stdout.write(`${ESC2}]0;${title}${BEL}`)}function resetWindowTitle(stdout){stdout.write(`${ESC2}]2;${BEL}`)}function reportDirectory(stdout,path){let host=hostname(),encoded=encodeURI(path).replace(/#/g,"%23");stdout.write(`${ESC2}]7;file://${host}${encoded}${BEL}`)}function setMouseCursorShape(shape){return`${ESC2}]22;${shape}${BEL}`}function resetMouseCursorShape(){return`${ESC2}]22;default${BEL}`}var ANSI={ESC:ESC2,CSI,CURSOR_HIDE,CURSOR_SHOW,CURSOR_HOME,SYNC_BEGIN,SYNC_END,RESET,SGR,moveCursor,cursorUp,cursorDown,cursorLeft,cursorRight,cursorToColumn};function useMouseCursor(shape){let term2=useContext5(TermContext);useEffect5(()=>{if(!shape||!term2)return;return term2.write(setMouseCursorShape(shape)),()=>{term2.write(resetMouseCursorShape())}},[shape,term2])}init_context();import{jsxDEV as jsxDEV7}from"react/jsx-dev-runtime";function osc8Open(href){return`\x1B]8;;${href}\x1B\\`}var OSC8_CLOSE="\x1B]8;;\x1B\\";function Link({href,children,color="$link",variant="arm-on-cmd-hover",onClick,onMouseEnter,onMouseLeave,...rest}){let[hovered,setHovered]=useState5(!1),rt=useContext6(RuntimeContext),needsModifier=variant==="arm-on-cmd-hover",{super:cmdHeld}=useModifierKeys({enabled:hovered&&needsModifier}),armed=hovered&&(needsModifier?cmdHeld:!0);if(armed)rest.underline=!0;useMouseCursor(armed?"pointer":null);let handleClick=useCallback4((e)=>{if(armed||needsModifier&&hovered&&e.metaKey)rt?.emit("link:open",href),e.preventDefault();onClick?.(e)},[armed,needsModifier,hovered,href,onClick,rt]);return jsxDEV7(Text,{color,...rest,onClick:handleClick,onMouseEnter:(e)=>{setHovered(!0),onMouseEnter?.(e)},onMouseLeave:(e)=>{setHovered(!1),onMouseLeave?.(e)},children:[osc8Open(href),children,OSC8_CLOSE]},void 0,!0,void 0,this)}import{Component}from"react";import{jsxDEV as jsxDEV8}from"react/jsx-dev-runtime";class ErrorBoundary extends Component{state={hasError:!1,error:null,errorInfo:null};static getDerivedStateFromError(error){return{hasError:!0,error}}componentDidCatch(error,errorInfo){this.setState({errorInfo}),this.props.onError?.(error,errorInfo)}componentDidUpdate(prevProps){if(!this.state.hasError)return;let resetKeyChanged=this.props.resetKey!==void 0&&prevProps.resetKey!==this.props.resetKey,resetKeysChanged=this.props.resetKeys!==void 0&&(this.props.resetKeys.length!==prevProps.resetKeys?.length||this.props.resetKeys.some((key,i)=>key!==prevProps.resetKeys?.[i]));if(resetKeyChanged||resetKeysChanged)this.props.onReset?.(),this.setState({hasError:!1,error:null,errorInfo:null})}render(){if(this.state.hasError){let{fallback}=this.props,{error,errorInfo}=this.state;if(typeof fallback==="function"&&error)return fallback(error,errorInfo??{componentStack:null});if(fallback!==void 0)return fallback;return jsxDEV8(Box,{borderStyle:"single",borderColor:"$error",padding:1,flexDirection:"column",children:[jsxDEV8(Text,{color:"$error",bold:!0,children:"Error"},void 0,!1,void 0,this),error&&jsxDEV8(Text,{color:"$error",children:error.message},void 0,!1,void 0,this),errorInfo?.componentStack&&jsxDEV8(Text,{dim:!0,wrap:"truncate",children:errorInfo.componentStack.split(`
|
|
159
159
|
`).slice(0,3).join(`
|
|
160
|
-
`)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}return this.props.children}}import{useEffect as useEffect6,useState as useState6}from"react";function useConsole(patched,debounceMs=200){let[entries,setEntries]=useState6(patched.getSnapshot);return useEffect6(()=>{let timer=null,unsub=patched.subscribe(()=>{if(timer)return;timer=setTimeout(()=>{timer=null,setEntries(patched.getSnapshot())},debounceMs)});return setEntries(patched.getSnapshot()),()=>{if(unsub(),timer)clearTimeout(timer)}},[patched,debounceMs]),entries}import{jsxDEV as jsxDEV9}from"react/jsx-dev-runtime";function formatArgs(args){return args.map((arg)=>{if(typeof arg==="string")return arg;if(typeof arg==="number"||typeof arg==="boolean")return String(arg);if(arg===null)return"null";if(arg===void 0)return"undefined";try{return JSON.stringify(arg)}catch{return String(arg)}}).join(" ")}function Console({console:patched,children,height=20,cache=!0,search=!0,surfaceId}){let entries=useConsole(patched);return jsxDEV9(ListView,{items:entries,height,scrollTo:entries.length-1,cache,search:search?{getText:(entry)=>formatArgs(entry.args)}:!1,surfaceId,renderItem:(entry,index)=>children?children(entry,index):jsxDEV9(Text,{color:entry.stream==="stderr"?"red":void 0,children:formatArgs(entry.args)},index,!1,void 0,this)},void 0,!1,void 0,this)}import{useState as useState7,useEffect as useEffect7}from"react";import{jsxDEV as jsxDEV10}from"react/jsx-dev-runtime";function getTermDims(){return{width:process.stdout.columns??80,height:process.stdout.rows??24}}function Screen({children,flexDirection="column"}){let[dims,setDims]=useState7(getTermDims);return useEffect7(()=>{let onResize=()=>setDims(getTermDims());return process.stdout.on("resize",onResize),()=>{process.stdout.off("resize",onResize)}},[]),jsxDEV10(Box,{width:dims.width,height:dims.height,flexDirection,children},void 0,!1,void 0,this)}import{useCallback as useCallback16,useImperativeHandle as useImperativeHandle4,forwardRef as forwardRef5,useState as useState10,useEffect as useEffect15,useRef as useRef14}from"react";import{useCallback as useCallback14,useRef as useRef12,useState as useState9}from"react";init_context();import{useContext as useContext7,useLayoutEffect as useLayoutEffect2,useReducer,useRef as useRef6}from"react";var EMPTY_RECT={x:0,y:0,width:0,height:0};function getInnerRect(node){let rect=node.boxRect;if(!rect)return EMPTY_RECT;let props=node.props;if(!props||node.type==="silvery-text")return rect;let pTop=props.paddingTop??props.paddingY??props.padding??0,pBottom=props.paddingBottom??props.paddingY??props.padding??0,pLeft=props.paddingLeft??props.paddingX??props.padding??0,pRight=props.paddingRight??props.paddingX??props.padding??0,bTop=0,bBottom=0,bLeft=0,bRight=0;if(props.borderStyle)bTop=props.borderTop!==!1?1:0,bBottom=props.borderBottom!==!1?1:0,bLeft=props.borderLeft!==!1?1:0,bRight=props.borderRight!==!1?1:0;return{x:rect.x+pLeft+bLeft,y:rect.y+pTop+bTop,width:Math.max(0,rect.width-pLeft-pRight-bLeft-bRight),height:Math.max(0,rect.height-pTop-pBottom-bTop-bBottom)}}function useReactiveRect(getRect){let node=useContext7(NodeContext),[,forceUpdate]=useReducer((x)=>x+1,0),prevRef=useRef6(null);if(useLayoutEffect2(()=>{if(!node)return;let handleLayoutComplete=()=>{let next=getRect(node)??null;if(!rectEqual(prevRef.current,next))prevRef.current=next,forceUpdate()};return node.layoutSubscribers.add(handleLayoutComplete),()=>{node.layoutSubscribers.delete(handleLayoutComplete)}},[node]),!node)return EMPTY_RECT;return getRect(node)??EMPTY_RECT}function useCallbackRect(getRect,callback){let node=useContext7(NodeContext),callbackRef=useRef6(callback);callbackRef.current=callback;let getRectRef=useRef6(getRect);getRectRef.current=getRect,useLayoutEffect2(()=>{if(!node)return;let handleLayoutComplete=()=>{let rect2=getRectRef.current(node);if(rect2)callbackRef.current(rect2)};node.layoutSubscribers.add(handleLayoutComplete);let rect=getRectRef.current(node);if(rect)callbackRef.current(rect);return()=>{node.layoutSubscribers.delete(handleLayoutComplete)}},[node])}function useBoxRect(callback){if(callback)return useCallbackRect((node)=>getInnerRect(node),callback);return useReactiveRect((node)=>getInnerRect(node))}function useScrollRect(callback){if(callback)return useCallbackRect((node)=>node.scrollRect,callback);return useReactiveRect((node)=>node.scrollRect)}function useScreenRect(callback){if(callback)return useCallbackRect((node)=>node.screenRect,callback);return useReactiveRect((node)=>node.screenRect)}init_context();import{useContext as useContext8,useLayoutEffect as useLayoutEffect3,useReducer as useReducer2}from"react";var EMPTY_METRICS={width:0,height:0,left:0,top:0,hasMeasured:!1};function resolveNode(refValue){if(!refValue)return null;let obj=refValue;if(typeof obj.getNode==="function")return obj.getNode();if(obj.boxRect!==void 0)return refValue;return null}function computeMetrics(node){let rect=node.boxRect;if(!rect)return EMPTY_METRICS;let parent=node.parent,parentRect=parent?.boxRect,parentProps=parent?.props,padLeft=parentProps?.paddingLeft??parentProps?.paddingX??parentProps?.padding??0,padTop=parentProps?.paddingTop??parentProps?.paddingY??parentProps?.padding??0,borderLeft=parentProps?.borderStyle?1:0,borderTop=parentProps?.borderStyle?1:0,contentX=parentRect?parentRect.x+padLeft+borderLeft:0,contentY=parentRect?parentRect.y+padTop+borderTop:0;return{width:rect.width,height:rect.height,left:parentRect?rect.x-contentX:rect.x,top:parentRect?rect.y-contentY:rect.y,hasMeasured:!0}}function useBoxMetrics(ref){let contextNode=useContext8(NodeContext),[,forceUpdate]=useReducer2((x)=>x+1,0),node=ref?resolveNode(ref.current):contextNode;if(useLayoutEffect3(()=>{if(!node)return;return node.layoutSubscribers.add(forceUpdate),()=>{node.layoutSubscribers.delete(forceUpdate)}},[node]),!node)return EMPTY_METRICS;return computeMetrics(node)}import{useEffect as useEffect8,useReducer as useReducer3,useRef as useRef7}from"react";function createScheduler(){let timers=new Map;function register(interval,callback){let entry=timers.get(interval);if(!entry)entry={handle:setInterval(()=>{let cbs=timers.get(interval)?.callbacks;if(cbs)for(let cb of cbs)cb()},interval),callbacks:new Set},timers.set(interval,entry);entry.callbacks.add(callback)}function unregister(interval,callback){let entry=timers.get(interval);if(!entry)return;if(entry.callbacks.delete(callback),entry.callbacks.size===0)clearInterval(entry.handle),timers.delete(interval)}return{register,unregister,get activeTimerCount(){return timers.size},get totalCallbackCount(){let count=0;for(let entry of timers.values())count+=entry.callbacks.size;return count}}}var _scheduler=createScheduler();init_context();import{useContext as useContext9}from"react";function useRuntime(){return useContext9(RuntimeContext)}init_context();import{useContext as useContext10}from"react";var staticResult={exit:()=>{}};function useApp(){let rt=useContext10(RuntimeContext);if(!rt)return staticResult;return{exit:rt.exit,pause:rt.pause,resume:rt.resume}}init_context();import{useContext as useContext11}from"react";function useStdout(){let context=useContext11(StdoutContext);if(!context)throw Error("useStdout must be used within an Silvery application");return{stdout:context.stdout,write:context.write}}init_context();import{useContext as useContext12}from"react";function useStderr(){let context=useContext12(StderrContext);if(!context)return{stderr:process.stderr,write:(data)=>{process.stderr.write(data)}};return{stderr:context.stderr,write:context.write}}init_context();import{useCallback as useCallback5,useContext as useContext13,useEffect as useEffect9,useRef as useRef8,useSyncExternalStore as useSyncExternalStore2}from"react";var autoIdCounter=0;function useFocus(options={}){let{isActive=!0,autoFocus=!1,id}=options,fm=useContext13(FocusManagerContext),node=useContext13(NodeContext),autoIdRef=useRef8(null);if(!autoIdRef.current&&!id)autoIdRef.current=`__useFocus_${++autoIdCounter}`;let focusId=id??autoIdRef.current;useEffect9(()=>{if(!fm||!focusId)return;return fm.registerHookFocusable(focusId,{isActive,autoFocus})},[fm,focusId]),useEffect9(()=>{if(!fm||!focusId)return;fm.setHookFocusableActive(focusId,isActive)},[fm,focusId,isActive]);let subscribe=useCallback5((listener)=>{if(!fm)return()=>{};return fm.subscribe(listener)},[fm]),getSnapshot=useCallback5(()=>{if(!fm)return null;return fm.getSnapshot()},[fm]),snapshot=useSyncExternalStore2(subscribe,getSnapshot,getSnapshot),isFocused=isActive&&focusId!==null&&snapshot!==null&&snapshot.activeId===focusId,getRoot=useCallback5(()=>{if(!node)return null;let root=node;while(root.parent)root=root.parent;return root},[node]),focus=useCallback5((targetId)=>{if(!fm)return;let root=getRoot();if(root)fm.focusById(targetId,root,"programmatic")},[fm,getRoot]);return{isFocused,focus}}init_context();import{useCallback as useCallback6,useContext as useContext14,useEffect as useEffect10,useMemo as useMemo7,useSyncExternalStore as useSyncExternalStore3}from"react";function useFocusable(){let fm=useContext14(FocusManagerContext),node=useContext14(NodeContext),testID=node?node.props.testID??null:null,autoFocus=node?!!node.props.autoFocus:!1,subscribe=useCallback6((listener)=>{if(!fm)return()=>{};return fm.subscribe(listener)},[fm]),getSnapshot=useCallback6(()=>{if(!fm)return null;return fm.getSnapshot()},[fm]),snapshot=useSyncExternalStore3(subscribe,getSnapshot,getSnapshot),focused=testID!==null&&snapshot!==null&&snapshot.activeId===testID,focusOrigin=focused?snapshot.focusOrigin:null;useEffect10(()=>{if(fm&&node&&autoFocus)fm.focus(node,"programmatic")},[fm,node,autoFocus]),useEffect10(()=>{return()=>{if(fm&&fm.activeElement===node)fm.blur()}},[fm,node]);let focus=useMemo7(()=>{return()=>{if(fm&&node)fm.focus(node,"programmatic")}},[fm,node]),blur=useMemo7(()=>{return()=>{if(fm&&focused)fm.blur()}},[fm,focused]);return{focused,focus,blur,focusOrigin}}init_context();import{useCallback as useCallback7,useContext as useContext15,useSyncExternalStore as useSyncExternalStore4}from"react";function useFocusWithin(testID){let fm=useContext15(FocusManagerContext),node=useContext15(NodeContext),subscribe=useCallback7((listener)=>{if(!fm)return()=>{};return fm.subscribe(listener)},[fm]),getSnapshot=useCallback7(()=>{if(!fm)return null;return fm.getSnapshot()},[fm]);if(!useSyncExternalStore4(subscribe,getSnapshot,getSnapshot)?.activeId)return!1;if(!node)return!1;let root=node;while(root.parent)root=root.parent;return fm.hasFocusWithin(root,testID)}init_context();import{useCallback as useCallback8,useContext as useContext16,useSyncExternalStore as useSyncExternalStore5}from"react";function useFocusManager(){let fm=useContext16(FocusManagerContext),node=useContext16(NodeContext),subscribe=useCallback8((listener)=>{if(!fm)return()=>{};return fm.subscribe(listener)},[fm]),getSnapshot=useCallback8(()=>{if(!fm)return null;return fm.getSnapshot()},[fm]),snapshot=useSyncExternalStore5(subscribe,getSnapshot,getSnapshot),getRoot=useCallback8(()=>{if(!node)return null;let root=node;while(root.parent)root=root.parent;return root},[node]),focus=useCallback8((nodeOrId)=>{if(!fm)return;if(typeof nodeOrId==="string"){let root=getRoot();if(root)fm.focusById(nodeOrId,root,"programmatic")}else fm.focus(nodeOrId,"programmatic")},[fm,getRoot]),focusNext=useCallback8(()=>{if(!fm)return;let root=getRoot();if(root)fm.focusNext(root)},[fm,getRoot]),focusPrev=useCallback8(()=>{if(!fm)return;let root=getRoot();if(root)fm.focusPrev(root)},[fm,getRoot]),blur=useCallback8(()=>{if(!fm)return;fm.blur()},[fm]),activateScope=useCallback8((scopeId)=>{if(!fm)return;let root=getRoot();if(root)fm.activateScope(scopeId,root)},[fm,getRoot]),noOp=useCallback8(()=>{},[]);if(fm)return{activeElement:fm.activeElement,activeId:snapshot?.activeId??null,activeScopeId:snapshot?.activeScopeId??null,focus,focusNext,focusPrev,blur,activateScope,enableFocus:noOp,disableFocus:noOp,focusPrevious:focusPrev};return{activeElement:null,activeId:null,activeScopeId:null,focus:noOp,focusNext:noOp,focusPrev:noOp,blur:noOp,activateScope:noOp,enableFocus:noOp,disableFocus:noOp,focusPrevious:noOp}}import{createContext as createContext4,useCallback as useCallback9,useContext as useContext17,useLayoutEffect as useLayoutEffect4,useMemo as useMemo8,useRef as useRef9}from"react";import{jsxDEV as jsxDEV11}from"react/jsx-dev-runtime";var InputLayerContext=createContext4(null);function InputLayerProvider({children}){let layersRef=useRef9([]),push=useCallback9((layer)=>{let existing=layersRef.current,existingIndex=existing.findIndex((l)=>l.id===layer.id);if(existingIndex>=0){let updated=[...existing];updated[existingIndex]=layer,layersRef.current=updated}else layersRef.current=[...existing,layer]},[]),pop=useCallback9((id)=>{layersRef.current=layersRef.current.filter((l)=>l.id!==id)},[]),dispatch=useCallback9((input,key)=>{let layers=layersRef.current;for(let i=0;i<layers.length;i++)if(layers[i]?.handler(input,key))return},[]);useInput((input,key)=>{dispatch(input,key)});let contextValue=useMemo8(()=>({push,pop,dispatch}),[push,pop,dispatch]);return jsxDEV11(InputLayerContext.Provider,{value:contextValue,children},void 0,!1,void 0,this)}function useInputLayerContext(){let ctx=useContext17(InputLayerContext);if(!ctx)throw Error("useInputLayerContext must be used within an InputLayerProvider");return ctx}function useInputLayer(id,handler){let ctx=useContext17(InputLayerContext);useLayoutEffect4(()=>{if(!ctx)return;return ctx.push({id,handler}),()=>{ctx.pop(id)}},[ctx,id,handler])}import{useState as useState8,useEffect as useEffect11}from"react";function useTerminalFocused(){let[focused,setFocused]=useState8(!0),rt=useRuntime();return useEffect11(()=>{if(!rt)return;return rt.on("focus",(isFocused)=>{setFocused(isFocused)})},[rt]),focused}import{useEffect as useEffect12,useRef as useRef10}from"react";function setScrollRegion2(stdout,top,bottom){stdout.write(`\x1B[${top};${bottom}r`)}function resetScrollRegion2(stdout){stdout.write("\x1B[r")}function scrollUp2(stdout,lines=1){stdout.write(`\x1B[${lines}S`)}function scrollDown2(stdout,lines=1){stdout.write(`\x1B[${lines}T`)}function moveCursor2(stdout,row,col){stdout.write(`\x1B[${row};${col}H`)}function supportsScrollRegions(){let term2=process.env.TERM??"",termProgram=process.env.TERM_PROGRAM??"";if(termProgram==="iTerm.app"||termProgram==="WezTerm"||termProgram==="ghostty"||termProgram==="vscode")return!0;if(term2.includes("xterm")||term2.includes("screen")||term2.includes("tmux")||term2.includes("kitty"))return!0;if(term2==="linux")return!1;return term2!==""}import React6,{createContext as createContext5,useContext as useContext18}from"react";var PasteContext=createContext5(null);function PasteProvider({handler,children}){return React6.createElement(PasteContext.Provider,{value:handler},children)}function usePaste(){return useContext18(PasteContext)}init_context();import{useContext as useContext19,useEffect as useEffect13,useRef as useRef11}from"react";var internalClipboard=null;function getInternalClipboard(){return internalClipboard}function createPasteEvent(text,clipboard){if(clipboard&&clipboard.text===text)return{text,source:"internal",data:clipboard};return{text,source:"external"}}function createCopyProvider(enrichCopy){return{enrichCopy}}function usePasteEvents(){let rt=useContext19(RuntimeContext),pasteHandler=usePaste(),handlerRef=useRef11(pasteHandler);handlerRef.current=pasteHandler,useEffect13(()=>{if(!rt)return;return rt.on("paste",(text)=>{let handler=handlerRef.current;if(!handler)return;let clipboard=getInternalClipboard(),event=createPasteEvent(text,clipboard);handler.onPaste(event)})},[rt])}init_context();import{useContext as useContext20,useSyncExternalStore as useSyncExternalStore6}from"react";var SELECTION_CAPABILITY=Symbol.for("silvery.selection"),noopSubscribe2=(_listener)=>()=>{},getUndefined=()=>{return};function useSelection(){let feature=useContext20(CapabilityRegistryContext)?.get(SELECTION_CAPABILITY);return useSyncExternalStore6(feature?(listener)=>feature.subscribe(listener):noopSubscribe2,feature?()=>feature.state:getUndefined)}init_context();import{useContext as useContext21,useSyncExternalStore as useSyncExternalStore7,useCallback as useCallback10}from"react";var FIND_CAPABILITY=Symbol.for("silvery.find"),noop=()=>()=>{};function useFindState(){let feature=useContext21(CapabilityRegistryContext)?.get(FIND_CAPABILITY),subscribe=useCallback10((onStoreChange)=>{if(!feature)return noop();return feature.subscribe(onStoreChange)},[feature]),getSnapshot=useCallback10(()=>{return feature?.state},[feature]);return useSyncExternalStore7(subscribe,getSnapshot)}init_context();import{useContext as useContext22,useSyncExternalStore as useSyncExternalStore8,useCallback as useCallback11}from"react";var COPY_MODE_CAPABILITY=Symbol.for("silvery.copy-mode"),noop2=()=>()=>{};function useCopyModeState(){let feature=useContext22(CapabilityRegistryContext)?.get(COPY_MODE_CAPABILITY),subscribe=useCallback11((onStoreChange)=>{if(!feature)return noop2();return feature.subscribe(onStoreChange)},[feature]),getSnapshot=useCallback11(()=>{return feature?.state},[feature]);return useSyncExternalStore8(subscribe,getSnapshot)}init_context();import{useContext as useContext23,useSyncExternalStore as useSyncExternalStore9,useCallback as useCallback12}from"react";var DRAG_CAPABILITY=Symbol.for("silvery.drag"),noop3=()=>()=>{};function useDragState(){let feature=useContext23(CapabilityRegistryContext)?.get(DRAG_CAPABILITY),subscribe=useCallback12((onStoreChange)=>{if(!feature)return noop3();return feature.subscribe(onStoreChange)},[feature]),getSnapshot=useCallback12(()=>{if(!feature)return;return feature.state},[feature]);return useSyncExternalStore9(subscribe,getSnapshot)}init_context();import{useContext as useContext24}from"react";var DEFAULT_STATE=Object.freeze({hovered:!1,armed:!1,selected:!1,focused:!1,dropTarget:!1});function useInteractiveState(){let node=useContext24(NodeContext);if(!node?.interactiveState)return DEFAULT_STATE;return node.interactiveState}import{createContext as createContext6,useContext as useContext25,useMemo as useMemo9}from"react";import{jsxDEV as jsxDEV12}from"react/jsx-dev-runtime";var ListItemCtx=createContext6(null);function useListItem(){let ctx=useContext25(ListItemCtx);if(!ctx)throw Error("useListItem() must be used inside a ListView item");return ctx}init_context();import{useCallback as useCallback13,useContext as useContext26,useSyncExternalStore as useSyncExternalStore10}from"react";var COLOR_SCHEME_CAPABILITY=Symbol.for("silvery.color-scheme");function useColorScheme(){let detector=useContext26(CapabilityRegistryContext)?.get(COLOR_SCHEME_CAPABILITY)??null,subscribe=useCallback13((onStoreChange)=>{if(!detector)return()=>{};return detector.subscribe(onStoreChange)},[detector]),getSnapshot=useCallback13(()=>{if(!detector)return"unknown";return detector.scheme},[detector]);return useSyncExternalStore10(subscribe,getSnapshot,getSnapshot)}var killRing=[];function addToKillRing(text){if(!text)return;if(killRing.unshift(text),killRing.length>10)killRing.pop()}function findWordBoundary(value,cursor,direction){let pos=cursor,peek=direction>0?(p)=>value[p]:(p)=>value[p-1],inBounds=direction>0?(p)=>p<value.length:(p)=>p>0;while(inBounds(pos)&&/\s/.test(peek(pos)??""))pos+=direction;while(inBounds(pos)&&!/\s/.test(peek(pos)??""))pos+=direction;return pos}function findPrevWordStart(value,cursor){return findWordBoundary(value,cursor,-1)}function findNextWordEnd(value,cursor){return findWordBoundary(value,cursor,1)}function handleReadlineKey(input,key,value,cursor,yankState){if(key.leftArrow||key.ctrl&&input==="b")return{value,cursor:cursor>0?cursor-1:cursor,yankState:null};if(key.rightArrow||key.ctrl&&input==="f")return{value,cursor:cursor<value.length?cursor+1:cursor,yankState:null};if(key.meta&&input==="b")return{value,cursor:findPrevWordStart(value,cursor),yankState:null};if(key.meta&&input==="f")return{value,cursor:findNextWordEnd(value,cursor),yankState:null};if(key.ctrl&&input==="w"){if(cursor===0)return{value,cursor,yankState:null};let newCursor=findPrevWordStart(value,cursor);return addToKillRing(value.slice(newCursor,cursor)),{value:value.slice(0,newCursor)+value.slice(cursor),cursor:newCursor,yankState:null}}if(key.meta&&key.backspace){if(cursor===0)return{value,cursor,yankState:null};let newCursor=findPrevWordStart(value,cursor);return addToKillRing(value.slice(newCursor,cursor)),{value:value.slice(0,newCursor)+value.slice(cursor),cursor:newCursor,yankState:null}}if(key.meta&&input==="d"){if(cursor>=value.length)return{value,cursor,yankState:null};let newEnd=findNextWordEnd(value,cursor);return addToKillRing(value.slice(cursor,newEnd)),{value:value.slice(0,cursor)+value.slice(newEnd),cursor,yankState:null}}if(key.ctrl&&input==="y"){if(killRing.length===0)return{value,cursor,yankState};let text=killRing[0]??"",newCursor=cursor+text.length;return{value:value.slice(0,cursor)+text+value.slice(cursor),cursor:newCursor,yankState:{lastYankIndex:0,yankStart:cursor,yankEnd:newCursor}}}if(key.meta&&input==="y"){if(!yankState||killRing.length<=1)return{value,cursor,yankState};let nextIndex=(yankState.lastYankIndex+1)%killRing.length,text=killRing[nextIndex]??"",newValue=value.slice(0,yankState.yankStart)+text+value.slice(yankState.yankEnd),newCursor=yankState.yankStart+text.length;return{value:newValue,cursor:newCursor,yankState:{lastYankIndex:nextIndex,yankStart:yankState.yankStart,yankEnd:newCursor}}}if(key.ctrl&&input==="t"){if(cursor<2)return{value,cursor,yankState:null};return{value:value.slice(0,cursor-2)+value[cursor-1]+value[cursor-2]+value.slice(cursor),cursor,yankState:null}}if(key.ctrl&&input==="h"){if(cursor>0)return{value:value.slice(0,cursor-1)+value.slice(cursor),cursor:cursor-1,yankState:null};return{value,cursor,yankState:null}}if(key.backspace||key.delete){if(cursor>0)return{value:value.slice(0,cursor-1)+value.slice(cursor),cursor:cursor-1,yankState:null};return{value,cursor,yankState:null}}if(key.ctrl&&input==="d"){if(cursor<value.length)return{value:value.slice(0,cursor)+value.slice(cursor+1),cursor,yankState:null};return{value,cursor,yankState:null}}let char=key.text??input;if(char.length>=1&&char>=" ")return{value:value.slice(0,cursor)+char+value.slice(cursor),cursor:cursor+char.length,yankState:null};return null}function useReadline({initialValue="",onChange,isActive=!0,handleEnter=!1,handleEscape=!1,handleVerticalArrows=!1,onEOF,onSubmit}={}){let[state,setState]=useState9({value:initialValue,cursor:initialValue.length}),stateRef=useRef12({value:initialValue,cursor:initialValue.length});stateRef.current=state;let yankStateRef=useRef12(null),applyResult=useCallback14((result,prevValue)=>{if(yankStateRef.current=result.yankState,result.value===prevValue&&result.cursor===stateRef.current.cursor)return;let next={value:result.value,cursor:result.cursor};if(stateRef.current=next,setState(next),result.value!==prevValue)onChange?.(result.value)},[onChange]),clear=useCallback14(()=>{let next={value:"",cursor:0};stateRef.current=next,setState(next),onChange?.(""),yankStateRef.current=null},[onChange]),setValue=useCallback14((value)=>{let next={value,cursor:value.length};stateRef.current=next,setState(next),onChange?.(value),yankStateRef.current=null},[onChange]),setValueWithCursor=useCallback14((value,cursor)=>{let next={value,cursor:Math.max(0,Math.min(cursor,value.length))};stateRef.current=next,setState(next),onChange?.(value),yankStateRef.current=null},[onChange]);return useInput((input,key)=>{let{value,cursor}=stateRef.current;if(key.return&&!handleEnter)return;if(key.return&&handleEnter){onSubmit?.(value);return}if(key.escape&&!handleEscape)return;if((key.upArrow||key.downArrow)&&!handleVerticalArrows)return;if(key.ctrl&&input==="d"&&value.length===0){onEOF?.();return}if(key.ctrl&&input==="a"){applyResult({value,cursor:0,yankState:null},value);return}if(key.ctrl&&input==="e"){applyResult({value,cursor:value.length,yankState:null},value);return}if(key.ctrl&&input==="u"){if(cursor===0)return;addToKillRing(value.slice(0,cursor)),applyResult({value:value.slice(cursor),cursor:0,yankState:null},value);return}if(key.ctrl&&input==="k"){if(cursor>=value.length)return;addToKillRing(value.slice(cursor)),applyResult({value:value.slice(0,cursor),cursor,yankState:null},value);return}let result=handleReadlineKey(input,key,value,cursor,yankStateRef.current);if(result)applyResult(result,value)},{isActive}),{value:state.value,cursor:state.cursor,beforeCursor:state.value.slice(0,state.cursor),afterCursor:state.value.slice(state.cursor),clear,setValue,setValueWithCursor,killRing:[...killRing]}}init_context();import React7,{createContext as createContext7,useCallback as useCallback15,useContext as useContext27,useEffect as useEffect14,useLayoutEffect as useLayoutEffect5,useRef as useRef13}from"react";function createCursorStore(){let store={state:null,listeners:new Set,accessors:null,setCursorState(s){store.state=s;for(let listener of store.listeners)listener()}};return store.accessors={getCursorState:()=>store.state,subscribeCursor:(listener)=>{return store.listeners.add(listener),()=>{store.listeners.delete(listener)}}},store}var CursorCtx=createContext7(null);function CursorProvider({store,children}){return React7.createElement(CursorCtx.Provider,{value:store},children)}var _globalCursorState=null,_globalCursorListeners=new Set;function globalSetCursorState(state){_globalCursorState=state;for(let listener of _globalCursorListeners)listener()}function globalGetCursorState(){return _globalCursorState}function globalSubscribeCursor(listener){return _globalCursorListeners.add(listener),()=>{_globalCursorListeners.delete(listener)}}function resetCursorState(){_globalCursorState=null,_globalCursorListeners=new Set}function useCursor(position){let{col,row,visible=!0,shape}=position,store=useContext27(CursorCtx),node=useContext27(NodeContext),set=store?store.setCursorState.bind(store):globalSetCursorState,get=store?store.accessors.getCursorState:globalGetCursorState,props=node?.props,padLeft=props?.paddingLeft??props?.paddingX??props?.padding??0,padTop=props?.paddingTop??props?.paddingY??props?.padding??0,borderLeft=props?.borderStyle?1:0,borderTop=props?.borderStyle?1:0,contentOffsetX=borderLeft+padLeft,contentOffsetY=borderTop+padTop,colRef=useRef13(col),rowRef=useRef13(row),visibleRef=useRef13(visible),shapeRef=useRef13(shape),setRef=useRef13(set),getRef=useRef13(get),lastRectRef=useRef13(null),contentOffsetXRef=useRef13(contentOffsetX),contentOffsetYRef=useRef13(contentOffsetY);colRef.current=col,rowRef.current=row,visibleRef.current=visible,shapeRef.current=shape,setRef.current=set,getRef.current=get,contentOffsetXRef.current=contentOffsetX,contentOffsetYRef.current=contentOffsetY,useScrollRect(useCallback15((rect)=>{if(lastRectRef.current=rect,!visibleRef.current)return;setRef.current({x:rect.x+contentOffsetXRef.current+colRef.current,y:rect.y+contentOffsetYRef.current+rowRef.current,visible:!0,shape:shapeRef.current})},[])),useLayoutEffect5(()=>{let rect=lastRectRef.current;if(!rect||!visible)return;set({x:rect.x+contentOffsetX+col,y:rect.y+contentOffsetY+row,visible:!0,shape})},[col,row,contentOffsetX,contentOffsetY,shape,visible,set]),useEffect14(()=>{if(!visible){if(getRef.current())setRef.current(null)}return()=>{setRef.current(null)}},[visible])}function getCursorState(){return globalGetCursorState()}function subscribeCursor(listener){return globalSubscribeCursor(listener)}import{jsxDEV as jsxDEV13,Fragment as Fragment2}from"react/jsx-dev-runtime";var TextInput=forwardRef5(function({value:controlledValue,defaultValue="",onChange,onSubmit,onEOF,placeholder="",isActive:isActiveProp,prompt="",promptColor="$control",color,cursorStyle:cursorStyle2="block",showUnderline=!1,underlineWidth=40,mask,borderStyle:borderStyleProp,borderColor:borderColorProp="$border",focusBorderColor="$focusborder",testID},ref){let{focused}=useFocusable(),isActive=isActiveProp??(testID?focused:!0),isControlled=controlledValue!==void 0,internalChangeRef=useRef14(!1),readline=useReadline({initialValue:isControlled?controlledValue??"":defaultValue,onChange:useCallback16((newValue)=>{internalChangeRef.current=!0,onChange?.(newValue)},[onChange]),isActive,handleEnter:!!onSubmit,onSubmit,onEOF}),[lastControlledValue,setLastControlledValue]=useState10(controlledValue);useEffect15(()=>{if(isControlled&&controlledValue!==lastControlledValue){if(internalChangeRef.current)internalChangeRef.current=!1;else readline.setValue(controlledValue??"");setLastControlledValue(controlledValue)}},[isControlled,controlledValue,lastControlledValue,readline]);let{value,cursor,clear,setValue,killRing:killRing2}=readline;useImperativeHandle4(ref,()=>({clear,getValue:()=>value,setValue,getKillRing:()=>killRing2}));let displayValue=mask?mask.repeat(value.length):value,displayBeforeCursor=displayValue.slice(0,cursor),displayAtCursor=displayValue[cursor]??" ",displayAfterCursor=displayValue.slice(cursor+1),showPlaceholder=!value&&placeholder,cursorEl=cursorStyle2==="underline"?jsxDEV13(Text,{underline:!0,children:displayAtCursor},void 0,!1,void 0,this):jsxDEV13(Text,{inverse:!0,children:displayAtCursor},void 0,!1,void 0,this),borderColOffset=borderStyleProp?2:0,borderRowOffset=borderStyleProp?1:0;useCursor({col:prompt.length+displayBeforeCursor.length+borderColOffset,row:borderRowOffset,visible:isActive});let handleMouseDown=useCallback16((e)=>{if(e.button!==0)return;let rect=e.currentTarget.scrollRect;if(!rect)return;let relativeX=e.clientX-rect.x-prompt.length,newCursor=Math.max(0,Math.min(relativeX,value.length));readline.setValueWithCursor(value,newCursor)},[prompt.length,value,readline]),inputContent=jsxDEV13(Text,{color,children:[prompt&&jsxDEV13(Text,{color:promptColor,children:prompt},void 0,!1,void 0,this),showPlaceholder?jsxDEV13(Fragment2,{children:[cursorStyle2==="underline"?jsxDEV13(Text,{underline:!0,dimColor:!0,children:placeholder[0]},void 0,!1,void 0,this):jsxDEV13(Text,{inverse:!0,dimColor:!0,children:placeholder[0]},void 0,!1,void 0,this),jsxDEV13(Text,{dimColor:!0,children:placeholder.slice(1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV13(Fragment2,{children:[jsxDEV13(Text,{children:displayBeforeCursor},void 0,!1,void 0,this),cursorEl,jsxDEV13(Text,{children:displayAfterCursor},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(borderStyleProp)return jsxDEV13(Box,{focusable:!0,testID,flexDirection:"column",borderStyle:borderStyleProp,borderColor:isActive?focusBorderColor:borderColorProp,paddingX:1,onMouseDown:handleMouseDown,children:[inputContent,showUnderline&&jsxDEV13(Text,{dimColor:!0,children:"─".repeat(underlineWidth)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return jsxDEV13(Box,{focusable:!0,testID,flexDirection:"column",onMouseDown:handleMouseDown,children:[inputContent,showUnderline&&jsxDEV13(Text,{dimColor:!0,children:"─".repeat(underlineWidth)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)});import{forwardRef as forwardRef6,useCallback as useCallback18,useImperativeHandle as useImperativeHandle5,useRef as useRef16}from"react";import{useCallback as useCallback17,useMemo as useMemo10,useRef as useRef15,useState as useState11}from"react";init_unicode();function cursorToRowCol(text,cursor,wrapWidth,measurer){if(wrapWidth<=0)return{row:0,col:0};return cursorToRowColFromLines(getWrappedLines(text,wrapWidth,measurer),cursor)}function cursorToRowColFromLines(lines,cursor){for(let i=0;i<lines.length;i++){let line=lines[i],lineEnd=line.startOffset+line.line.length,isLast=i===lines.length-1;if(cursor<=lineEnd||isLast){let col=Math.max(0,Math.min(cursor-line.startOffset,line.line.length));return{row:i,col}}}return{row:Math.max(0,lines.length-1),col:0}}function getWrappedLines(text,wrapWidth,measurer){if(wrapWidth<=0)return[{line:"",startOffset:0}];let logicalLines=text.split(`
|
|
160
|
+
`)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}return this.props.children}}import{useEffect as useEffect6,useState as useState6}from"react";function useConsole(patched,debounceMs=200){let[entries,setEntries]=useState6(patched.getSnapshot);return useEffect6(()=>{let timer=null,unsub=patched.subscribe(()=>{if(timer)return;timer=setTimeout(()=>{timer=null,setEntries(patched.getSnapshot())},debounceMs)});return setEntries(patched.getSnapshot()),()=>{if(unsub(),timer)clearTimeout(timer)}},[patched,debounceMs]),entries}import{jsxDEV as jsxDEV9}from"react/jsx-dev-runtime";function formatArgs(args){return args.map((arg)=>{if(typeof arg==="string")return arg;if(typeof arg==="number"||typeof arg==="boolean")return String(arg);if(arg===null)return"null";if(arg===void 0)return"undefined";try{return JSON.stringify(arg)}catch{return String(arg)}}).join(" ")}function Console({console:patched,children,height=20,cache=!0,search=!0,surfaceId}){let entries=useConsole(patched);return jsxDEV9(ListView,{items:entries,height,scrollTo:entries.length-1,cache,search:search?{getText:(entry)=>formatArgs(entry.args)}:!1,surfaceId,renderItem:(entry,index)=>children?children(entry,index):jsxDEV9(Text,{color:entry.stream==="stderr"?"red":void 0,children:formatArgs(entry.args)},index,!1,void 0,this)},void 0,!1,void 0,this)}import{useState as useState7,useEffect as useEffect7}from"react";import{jsxDEV as jsxDEV10}from"react/jsx-dev-runtime";function getTermDims(){return{width:process.stdout.columns??80,height:process.stdout.rows??24}}function Screen({children,flexDirection="column"}){let[dims,setDims]=useState7(getTermDims);return useEffect7(()=>{let onResize=()=>setDims(getTermDims());return process.stdout.on("resize",onResize),()=>{process.stdout.off("resize",onResize)}},[]),jsxDEV10(Box,{width:dims.width,height:dims.height,flexDirection,children},void 0,!1,void 0,this)}import{useCallback as useCallback16,useImperativeHandle as useImperativeHandle4,forwardRef as forwardRef5,useState as useState10,useEffect as useEffect15,useRef as useRef14}from"react";import{useCallback as useCallback14,useRef as useRef12,useState as useState9}from"react";init_context();import{useContext as useContext7,useLayoutEffect as useLayoutEffect2,useReducer,useRef as useRef6}from"react";var EMPTY_RECT={x:0,y:0,width:0,height:0};function getInnerRect(node){let rect=node.boxRect;if(!rect)return EMPTY_RECT;let props=node.props;if(!props||node.type==="silvery-text")return rect;let pTop=props.paddingTop??props.paddingY??props.padding??0,pBottom=props.paddingBottom??props.paddingY??props.padding??0,pLeft=props.paddingLeft??props.paddingX??props.padding??0,pRight=props.paddingRight??props.paddingX??props.padding??0,bTop=0,bBottom=0,bLeft=0,bRight=0;if(props.borderStyle)bTop=props.borderTop!==!1?1:0,bBottom=props.borderBottom!==!1?1:0,bLeft=props.borderLeft!==!1?1:0,bRight=props.borderRight!==!1?1:0;return{x:rect.x+pLeft+bLeft,y:rect.y+pTop+bTop,width:Math.max(0,rect.width-pLeft-pRight-bLeft-bRight),height:Math.max(0,rect.height-pTop-pBottom-bTop-bBottom)}}function useReactiveRect(getRect){let node=useContext7(NodeContext),[,forceUpdate]=useReducer((x)=>x+1,0),prevRef=useRef6(null);if(useLayoutEffect2(()=>{if(!node)return;let handleLayoutComplete=()=>{let next=getRect(node)??null;if(!rectEqual(prevRef.current,next))prevRef.current=next,forceUpdate()};return node.layoutSubscribers.add(handleLayoutComplete),()=>{node.layoutSubscribers.delete(handleLayoutComplete)}},[node]),!node)return EMPTY_RECT;return getRect(node)??EMPTY_RECT}function useCallbackRect(getRect,callback){let node=useContext7(NodeContext),callbackRef=useRef6(callback);callbackRef.current=callback;let getRectRef=useRef6(getRect);getRectRef.current=getRect,useLayoutEffect2(()=>{if(!node)return;let handleLayoutComplete=()=>{let rect2=getRectRef.current(node);if(rect2)callbackRef.current(rect2)};node.layoutSubscribers.add(handleLayoutComplete);let rect=getRectRef.current(node);if(rect)callbackRef.current(rect);return()=>{node.layoutSubscribers.delete(handleLayoutComplete)}},[node])}function useBoxRect(callback){if(callback)return useCallbackRect((node)=>getInnerRect(node),callback);return useReactiveRect((node)=>getInnerRect(node))}function useScrollRect(callback){if(callback)return useCallbackRect((node)=>node.scrollRect,callback);return useReactiveRect((node)=>node.scrollRect)}function useScreenRect(callback){if(callback)return useCallbackRect((node)=>node.screenRect,callback);return useReactiveRect((node)=>node.screenRect)}init_context();import{useContext as useContext8,useLayoutEffect as useLayoutEffect3,useReducer as useReducer2}from"react";var EMPTY_METRICS={width:0,height:0,left:0,top:0,hasMeasured:!1};function resolveNode(refValue){if(!refValue)return null;let obj=refValue;if(typeof obj.getNode==="function")return obj.getNode();if(obj.boxRect!==void 0)return refValue;return null}function computeMetrics(node){let rect=node.boxRect;if(!rect)return EMPTY_METRICS;let parent=node.parent,parentRect=parent?.boxRect,parentProps=parent?.props,padLeft=parentProps?.paddingLeft??parentProps?.paddingX??parentProps?.padding??0,padTop=parentProps?.paddingTop??parentProps?.paddingY??parentProps?.padding??0,borderLeft=parentProps?.borderStyle?1:0,borderTop=parentProps?.borderStyle?1:0,contentX=parentRect?parentRect.x+padLeft+borderLeft:0,contentY=parentRect?parentRect.y+padTop+borderTop:0;return{width:rect.width,height:rect.height,left:parentRect?rect.x-contentX:rect.x,top:parentRect?rect.y-contentY:rect.y,hasMeasured:!0}}function useBoxMetrics(ref){let contextNode=useContext8(NodeContext),[,forceUpdate]=useReducer2((x)=>x+1,0),node=ref?resolveNode(ref.current):contextNode;if(useLayoutEffect3(()=>{if(!node)return;return node.layoutSubscribers.add(forceUpdate),()=>{node.layoutSubscribers.delete(forceUpdate)}},[node]),!node)return EMPTY_METRICS;return computeMetrics(node)}import{useEffect as useEffect8,useReducer as useReducer3,useRef as useRef7}from"react";function createScheduler(){let timers=new Map;function register(interval,callback){let entry=timers.get(interval);if(!entry)entry={handle:setInterval(()=>{let cbs=timers.get(interval)?.callbacks;if(cbs)for(let cb of cbs)cb()},interval),callbacks:new Set},timers.set(interval,entry);entry.callbacks.add(callback)}function unregister(interval,callback){let entry=timers.get(interval);if(!entry)return;if(entry.callbacks.delete(callback),entry.callbacks.size===0)clearInterval(entry.handle),timers.delete(interval)}return{register,unregister,get activeTimerCount(){return timers.size},get totalCallbackCount(){let count=0;for(let entry of timers.values())count+=entry.callbacks.size;return count}}}var _scheduler=createScheduler();init_context();import{useContext as useContext9}from"react";function useRuntime(){return useContext9(RuntimeContext)}init_context();import{useContext as useContext10}from"react";var staticResult={exit:()=>{}};function useApp(){let rt=useContext10(RuntimeContext);if(!rt)return staticResult;return{exit:rt.exit,pause:rt.pause,resume:rt.resume}}init_context();import{useContext as useContext11}from"react";function useExit(){let rt=useContext11(RuntimeContext);if(!rt)throw Error("useExit must be used within run() or createApp()");return rt.exit}init_context();import{useContext as useContext12}from"react";function useStdout(){let context=useContext12(StdoutContext);if(!context)throw Error("useStdout must be used within an Silvery application");return{stdout:context.stdout,write:context.write}}init_context();import{useContext as useContext13}from"react";function useStderr(){let context=useContext13(StderrContext);if(!context)return{stderr:process.stderr,write:(data)=>{process.stderr.write(data)}};return{stderr:context.stderr,write:context.write}}init_context();import{useCallback as useCallback5,useContext as useContext14,useEffect as useEffect9,useRef as useRef8,useSyncExternalStore as useSyncExternalStore2}from"react";var autoIdCounter=0;function useFocus(options={}){let{isActive=!0,autoFocus=!1,id}=options,fm=useContext14(FocusManagerContext),node=useContext14(NodeContext),autoIdRef=useRef8(null);if(!autoIdRef.current&&!id)autoIdRef.current=`__useFocus_${++autoIdCounter}`;let focusId=id??autoIdRef.current;useEffect9(()=>{if(!fm||!focusId)return;return fm.registerHookFocusable(focusId,{isActive,autoFocus})},[fm,focusId]),useEffect9(()=>{if(!fm||!focusId)return;fm.setHookFocusableActive(focusId,isActive)},[fm,focusId,isActive]);let subscribe=useCallback5((listener)=>{if(!fm)return()=>{};return fm.subscribe(listener)},[fm]),getSnapshot=useCallback5(()=>{if(!fm)return null;return fm.getSnapshot()},[fm]),snapshot=useSyncExternalStore2(subscribe,getSnapshot,getSnapshot),isFocused=isActive&&focusId!==null&&snapshot!==null&&snapshot.activeId===focusId,getRoot=useCallback5(()=>{if(!node)return null;let root=node;while(root.parent)root=root.parent;return root},[node]),focus=useCallback5((targetId)=>{if(!fm)return;let root=getRoot();if(root)fm.focusById(targetId,root,"programmatic")},[fm,getRoot]);return{isFocused,focus}}init_context();import{useCallback as useCallback6,useContext as useContext15,useEffect as useEffect10,useMemo as useMemo7,useSyncExternalStore as useSyncExternalStore3}from"react";function useFocusable(){let fm=useContext15(FocusManagerContext),node=useContext15(NodeContext),testID=node?node.props.testID??null:null,autoFocus=node?!!node.props.autoFocus:!1,subscribe=useCallback6((listener)=>{if(!fm)return()=>{};return fm.subscribe(listener)},[fm]),getSnapshot=useCallback6(()=>{if(!fm)return null;return fm.getSnapshot()},[fm]),snapshot=useSyncExternalStore3(subscribe,getSnapshot,getSnapshot),focused=testID!==null&&snapshot!==null&&snapshot.activeId===testID,focusOrigin=focused?snapshot.focusOrigin:null;useEffect10(()=>{if(fm&&node&&autoFocus)fm.focus(node,"programmatic")},[fm,node,autoFocus]),useEffect10(()=>{return()=>{if(fm&&fm.activeElement===node)fm.blur()}},[fm,node]);let focus=useMemo7(()=>{return()=>{if(fm&&node)fm.focus(node,"programmatic")}},[fm,node]),blur=useMemo7(()=>{return()=>{if(fm&&focused)fm.blur()}},[fm,focused]);return{focused,focus,blur,focusOrigin}}init_context();import{useCallback as useCallback7,useContext as useContext16,useSyncExternalStore as useSyncExternalStore4}from"react";function useFocusWithin(testID){let fm=useContext16(FocusManagerContext),node=useContext16(NodeContext),subscribe=useCallback7((listener)=>{if(!fm)return()=>{};return fm.subscribe(listener)},[fm]),getSnapshot=useCallback7(()=>{if(!fm)return null;return fm.getSnapshot()},[fm]);if(!useSyncExternalStore4(subscribe,getSnapshot,getSnapshot)?.activeId)return!1;if(!node)return!1;let root=node;while(root.parent)root=root.parent;return fm.hasFocusWithin(root,testID)}init_context();import{useCallback as useCallback8,useContext as useContext17,useSyncExternalStore as useSyncExternalStore5}from"react";function useFocusManager(){let fm=useContext17(FocusManagerContext),node=useContext17(NodeContext),subscribe=useCallback8((listener)=>{if(!fm)return()=>{};return fm.subscribe(listener)},[fm]),getSnapshot=useCallback8(()=>{if(!fm)return null;return fm.getSnapshot()},[fm]),snapshot=useSyncExternalStore5(subscribe,getSnapshot,getSnapshot),getRoot=useCallback8(()=>{if(!node)return null;let root=node;while(root.parent)root=root.parent;return root},[node]),focus=useCallback8((nodeOrId)=>{if(!fm)return;if(typeof nodeOrId==="string"){let root=getRoot();if(root)fm.focusById(nodeOrId,root,"programmatic")}else fm.focus(nodeOrId,"programmatic")},[fm,getRoot]),focusNext=useCallback8(()=>{if(!fm)return;let root=getRoot();if(root)fm.focusNext(root)},[fm,getRoot]),focusPrev=useCallback8(()=>{if(!fm)return;let root=getRoot();if(root)fm.focusPrev(root)},[fm,getRoot]),blur=useCallback8(()=>{if(!fm)return;fm.blur()},[fm]),activateScope=useCallback8((scopeId)=>{if(!fm)return;let root=getRoot();if(root)fm.activateScope(scopeId,root)},[fm,getRoot]),noOp=useCallback8(()=>{},[]);if(fm)return{activeElement:fm.activeElement,activeId:snapshot?.activeId??null,activeScopeId:snapshot?.activeScopeId??null,focus,focusNext,focusPrev,blur,activateScope,enableFocus:noOp,disableFocus:noOp,focusPrevious:focusPrev};return{activeElement:null,activeId:null,activeScopeId:null,focus:noOp,focusNext:noOp,focusPrev:noOp,blur:noOp,activateScope:noOp,enableFocus:noOp,disableFocus:noOp,focusPrevious:noOp}}import{createContext as createContext4,useCallback as useCallback9,useContext as useContext18,useLayoutEffect as useLayoutEffect4,useMemo as useMemo8,useRef as useRef9}from"react";import{jsxDEV as jsxDEV11}from"react/jsx-dev-runtime";var InputLayerContext=createContext4(null);function InputLayerProvider({children}){let layersRef=useRef9([]),push=useCallback9((layer)=>{let existing=layersRef.current,existingIndex=existing.findIndex((l)=>l.id===layer.id);if(existingIndex>=0){let updated=[...existing];updated[existingIndex]=layer,layersRef.current=updated}else layersRef.current=[...existing,layer]},[]),pop=useCallback9((id)=>{layersRef.current=layersRef.current.filter((l)=>l.id!==id)},[]),dispatch=useCallback9((input,key)=>{let layers=layersRef.current;for(let i=0;i<layers.length;i++)if(layers[i]?.handler(input,key))return},[]);useInput((input,key)=>{dispatch(input,key)});let contextValue=useMemo8(()=>({push,pop,dispatch}),[push,pop,dispatch]);return jsxDEV11(InputLayerContext.Provider,{value:contextValue,children},void 0,!1,void 0,this)}function useInputLayerContext(){let ctx=useContext18(InputLayerContext);if(!ctx)throw Error("useInputLayerContext must be used within an InputLayerProvider");return ctx}function useInputLayer(id,handler){let ctx=useContext18(InputLayerContext);useLayoutEffect4(()=>{if(!ctx)return;return ctx.push({id,handler}),()=>{ctx.pop(id)}},[ctx,id,handler])}import{useState as useState8,useEffect as useEffect11}from"react";function useTerminalFocused(){let[focused,setFocused]=useState8(!0),rt=useRuntime();return useEffect11(()=>{if(!rt)return;return rt.on("focus",(isFocused)=>{setFocused(isFocused)})},[rt]),focused}import{useEffect as useEffect12,useRef as useRef10}from"react";function setScrollRegion2(stdout,top,bottom){stdout.write(`\x1B[${top};${bottom}r`)}function resetScrollRegion2(stdout){stdout.write("\x1B[r")}function scrollUp2(stdout,lines=1){stdout.write(`\x1B[${lines}S`)}function scrollDown2(stdout,lines=1){stdout.write(`\x1B[${lines}T`)}function moveCursor2(stdout,row,col){stdout.write(`\x1B[${row};${col}H`)}function supportsScrollRegions(){let term2=process.env.TERM??"",termProgram=process.env.TERM_PROGRAM??"";if(termProgram==="iTerm.app"||termProgram==="WezTerm"||termProgram==="ghostty"||termProgram==="vscode")return!0;if(term2.includes("xterm")||term2.includes("screen")||term2.includes("tmux")||term2.includes("kitty"))return!0;if(term2==="linux")return!1;return term2!==""}import React6,{createContext as createContext5,useContext as useContext19}from"react";var PasteContext=createContext5(null);function PasteProvider({handler,children}){return React6.createElement(PasteContext.Provider,{value:handler},children)}function usePaste(){return useContext19(PasteContext)}init_context();import{useContext as useContext20,useEffect as useEffect13,useRef as useRef11}from"react";var internalClipboard=null;function getInternalClipboard(){return internalClipboard}function createPasteEvent(text,clipboard){if(clipboard&&clipboard.text===text)return{text,source:"internal",data:clipboard};return{text,source:"external"}}function createCopyProvider(enrichCopy){return{enrichCopy}}function usePasteEvents(){let rt=useContext20(RuntimeContext),pasteHandler=usePaste(),handlerRef=useRef11(pasteHandler);handlerRef.current=pasteHandler,useEffect13(()=>{if(!rt)return;return rt.on("paste",(text)=>{let handler=handlerRef.current;if(!handler)return;let clipboard=getInternalClipboard(),event=createPasteEvent(text,clipboard);handler.onPaste(event)})},[rt])}init_context();import{useContext as useContext21,useSyncExternalStore as useSyncExternalStore6}from"react";var SELECTION_CAPABILITY=Symbol.for("silvery.selection"),noopSubscribe2=(_listener)=>()=>{},getUndefined=()=>{return};function useSelection(){let feature=useContext21(CapabilityRegistryContext)?.get(SELECTION_CAPABILITY);return useSyncExternalStore6(feature?(listener)=>feature.subscribe(listener):noopSubscribe2,feature?()=>feature.state:getUndefined)}init_context();import{useContext as useContext22,useSyncExternalStore as useSyncExternalStore7,useCallback as useCallback10}from"react";var FIND_CAPABILITY=Symbol.for("silvery.find"),noop=()=>()=>{};function useFindState(){let feature=useContext22(CapabilityRegistryContext)?.get(FIND_CAPABILITY),subscribe=useCallback10((onStoreChange)=>{if(!feature)return noop();return feature.subscribe(onStoreChange)},[feature]),getSnapshot=useCallback10(()=>{return feature?.state},[feature]);return useSyncExternalStore7(subscribe,getSnapshot)}init_context();import{useContext as useContext23,useSyncExternalStore as useSyncExternalStore8,useCallback as useCallback11}from"react";var COPY_MODE_CAPABILITY=Symbol.for("silvery.copy-mode"),noop2=()=>()=>{};function useCopyModeState(){let feature=useContext23(CapabilityRegistryContext)?.get(COPY_MODE_CAPABILITY),subscribe=useCallback11((onStoreChange)=>{if(!feature)return noop2();return feature.subscribe(onStoreChange)},[feature]),getSnapshot=useCallback11(()=>{return feature?.state},[feature]);return useSyncExternalStore8(subscribe,getSnapshot)}init_context();import{useContext as useContext24,useSyncExternalStore as useSyncExternalStore9,useCallback as useCallback12}from"react";var DRAG_CAPABILITY=Symbol.for("silvery.drag"),noop3=()=>()=>{};function useDragState(){let feature=useContext24(CapabilityRegistryContext)?.get(DRAG_CAPABILITY),subscribe=useCallback12((onStoreChange)=>{if(!feature)return noop3();return feature.subscribe(onStoreChange)},[feature]),getSnapshot=useCallback12(()=>{if(!feature)return;return feature.state},[feature]);return useSyncExternalStore9(subscribe,getSnapshot)}init_context();import{useContext as useContext25}from"react";var DEFAULT_STATE=Object.freeze({hovered:!1,armed:!1,selected:!1,focused:!1,dropTarget:!1});function useInteractiveState(){let node=useContext25(NodeContext);if(!node?.interactiveState)return DEFAULT_STATE;return node.interactiveState}import{createContext as createContext6,useContext as useContext26,useMemo as useMemo9}from"react";import{jsxDEV as jsxDEV12}from"react/jsx-dev-runtime";var ListItemCtx=createContext6(null);function useListItem(){let ctx=useContext26(ListItemCtx);if(!ctx)throw Error("useListItem() must be used inside a ListView item");return ctx}init_context();import{useCallback as useCallback13,useContext as useContext27,useSyncExternalStore as useSyncExternalStore10}from"react";var COLOR_SCHEME_CAPABILITY=Symbol.for("silvery.color-scheme");function useColorScheme(){let detector=useContext27(CapabilityRegistryContext)?.get(COLOR_SCHEME_CAPABILITY)??null,subscribe=useCallback13((onStoreChange)=>{if(!detector)return()=>{};return detector.subscribe(onStoreChange)},[detector]),getSnapshot=useCallback13(()=>{if(!detector)return"unknown";return detector.scheme},[detector]);return useSyncExternalStore10(subscribe,getSnapshot,getSnapshot)}var killRing=[];function addToKillRing(text){if(!text)return;if(killRing.unshift(text),killRing.length>10)killRing.pop()}function findWordBoundary(value,cursor,direction){let pos=cursor,peek=direction>0?(p)=>value[p]:(p)=>value[p-1],inBounds=direction>0?(p)=>p<value.length:(p)=>p>0;while(inBounds(pos)&&/\s/.test(peek(pos)??""))pos+=direction;while(inBounds(pos)&&!/\s/.test(peek(pos)??""))pos+=direction;return pos}function findPrevWordStart(value,cursor){return findWordBoundary(value,cursor,-1)}function findNextWordEnd(value,cursor){return findWordBoundary(value,cursor,1)}function handleReadlineKey(input,key,value,cursor,yankState){if(key.leftArrow||key.ctrl&&input==="b")return{value,cursor:cursor>0?cursor-1:cursor,yankState:null};if(key.rightArrow||key.ctrl&&input==="f")return{value,cursor:cursor<value.length?cursor+1:cursor,yankState:null};if(key.meta&&input==="b")return{value,cursor:findPrevWordStart(value,cursor),yankState:null};if(key.meta&&input==="f")return{value,cursor:findNextWordEnd(value,cursor),yankState:null};if(key.ctrl&&input==="w"){if(cursor===0)return{value,cursor,yankState:null};let newCursor=findPrevWordStart(value,cursor);return addToKillRing(value.slice(newCursor,cursor)),{value:value.slice(0,newCursor)+value.slice(cursor),cursor:newCursor,yankState:null}}if(key.meta&&key.backspace){if(cursor===0)return{value,cursor,yankState:null};let newCursor=findPrevWordStart(value,cursor);return addToKillRing(value.slice(newCursor,cursor)),{value:value.slice(0,newCursor)+value.slice(cursor),cursor:newCursor,yankState:null}}if(key.meta&&input==="d"){if(cursor>=value.length)return{value,cursor,yankState:null};let newEnd=findNextWordEnd(value,cursor);return addToKillRing(value.slice(cursor,newEnd)),{value:value.slice(0,cursor)+value.slice(newEnd),cursor,yankState:null}}if(key.ctrl&&input==="y"){if(killRing.length===0)return{value,cursor,yankState};let text=killRing[0]??"",newCursor=cursor+text.length;return{value:value.slice(0,cursor)+text+value.slice(cursor),cursor:newCursor,yankState:{lastYankIndex:0,yankStart:cursor,yankEnd:newCursor}}}if(key.meta&&input==="y"){if(!yankState||killRing.length<=1)return{value,cursor,yankState};let nextIndex=(yankState.lastYankIndex+1)%killRing.length,text=killRing[nextIndex]??"",newValue=value.slice(0,yankState.yankStart)+text+value.slice(yankState.yankEnd),newCursor=yankState.yankStart+text.length;return{value:newValue,cursor:newCursor,yankState:{lastYankIndex:nextIndex,yankStart:yankState.yankStart,yankEnd:newCursor}}}if(key.ctrl&&input==="t"){if(cursor<2)return{value,cursor,yankState:null};return{value:value.slice(0,cursor-2)+value[cursor-1]+value[cursor-2]+value.slice(cursor),cursor,yankState:null}}if(key.ctrl&&input==="h"){if(cursor>0)return{value:value.slice(0,cursor-1)+value.slice(cursor),cursor:cursor-1,yankState:null};return{value,cursor,yankState:null}}if(key.backspace||key.delete){if(cursor>0)return{value:value.slice(0,cursor-1)+value.slice(cursor),cursor:cursor-1,yankState:null};return{value,cursor,yankState:null}}if(key.ctrl&&input==="d"){if(cursor<value.length)return{value:value.slice(0,cursor)+value.slice(cursor+1),cursor,yankState:null};return{value,cursor,yankState:null}}let char=key.text??input;if(char.length>=1&&char>=" ")return{value:value.slice(0,cursor)+char+value.slice(cursor),cursor:cursor+char.length,yankState:null};return null}function useReadline({initialValue="",onChange,isActive=!0,handleEnter=!1,handleEscape=!1,handleVerticalArrows=!1,onEOF,onSubmit}={}){let[state,setState]=useState9({value:initialValue,cursor:initialValue.length}),stateRef=useRef12({value:initialValue,cursor:initialValue.length});stateRef.current=state;let yankStateRef=useRef12(null),applyResult=useCallback14((result,prevValue)=>{if(yankStateRef.current=result.yankState,result.value===prevValue&&result.cursor===stateRef.current.cursor)return;let next={value:result.value,cursor:result.cursor};if(stateRef.current=next,setState(next),result.value!==prevValue)onChange?.(result.value)},[onChange]),clear=useCallback14(()=>{let next={value:"",cursor:0};stateRef.current=next,setState(next),onChange?.(""),yankStateRef.current=null},[onChange]),setValue=useCallback14((value)=>{let next={value,cursor:value.length};stateRef.current=next,setState(next),onChange?.(value),yankStateRef.current=null},[onChange]),setValueWithCursor=useCallback14((value,cursor)=>{let next={value,cursor:Math.max(0,Math.min(cursor,value.length))};stateRef.current=next,setState(next),onChange?.(value),yankStateRef.current=null},[onChange]);return useInput((input,key)=>{let{value,cursor}=stateRef.current;if(key.return&&!handleEnter)return;if(key.return&&handleEnter){onSubmit?.(value);return}if(key.escape&&!handleEscape)return;if((key.upArrow||key.downArrow)&&!handleVerticalArrows)return;if(key.ctrl&&input==="d"&&value.length===0){onEOF?.();return}if(key.ctrl&&input==="a"){applyResult({value,cursor:0,yankState:null},value);return}if(key.ctrl&&input==="e"){applyResult({value,cursor:value.length,yankState:null},value);return}if(key.ctrl&&input==="u"){if(cursor===0)return;addToKillRing(value.slice(0,cursor)),applyResult({value:value.slice(cursor),cursor:0,yankState:null},value);return}if(key.ctrl&&input==="k"){if(cursor>=value.length)return;addToKillRing(value.slice(cursor)),applyResult({value:value.slice(0,cursor),cursor,yankState:null},value);return}let result=handleReadlineKey(input,key,value,cursor,yankStateRef.current);if(result)applyResult(result,value)},{isActive}),{value:state.value,cursor:state.cursor,beforeCursor:state.value.slice(0,state.cursor),afterCursor:state.value.slice(state.cursor),clear,setValue,setValueWithCursor,killRing:[...killRing]}}init_context();import React7,{createContext as createContext7,useCallback as useCallback15,useContext as useContext28,useEffect as useEffect14,useLayoutEffect as useLayoutEffect5,useRef as useRef13}from"react";function createCursorStore(){let store={state:null,listeners:new Set,accessors:null,setCursorState(s){store.state=s;for(let listener of store.listeners)listener()}};return store.accessors={getCursorState:()=>store.state,subscribeCursor:(listener)=>{return store.listeners.add(listener),()=>{store.listeners.delete(listener)}}},store}var CursorCtx=createContext7(null);function CursorProvider({store,children}){return React7.createElement(CursorCtx.Provider,{value:store},children)}var _globalCursorState=null,_globalCursorListeners=new Set;function globalSetCursorState(state){_globalCursorState=state;for(let listener of _globalCursorListeners)listener()}function globalGetCursorState(){return _globalCursorState}function globalSubscribeCursor(listener){return _globalCursorListeners.add(listener),()=>{_globalCursorListeners.delete(listener)}}function resetCursorState(){_globalCursorState=null,_globalCursorListeners=new Set}function useCursor(position){let{col,row,visible=!0,shape}=position,store=useContext28(CursorCtx),node=useContext28(NodeContext),set=store?store.setCursorState.bind(store):globalSetCursorState,get=store?store.accessors.getCursorState:globalGetCursorState,props=node?.props,padLeft=props?.paddingLeft??props?.paddingX??props?.padding??0,padTop=props?.paddingTop??props?.paddingY??props?.padding??0,borderLeft=props?.borderStyle?1:0,borderTop=props?.borderStyle?1:0,contentOffsetX=borderLeft+padLeft,contentOffsetY=borderTop+padTop,colRef=useRef13(col),rowRef=useRef13(row),visibleRef=useRef13(visible),shapeRef=useRef13(shape),setRef=useRef13(set),getRef=useRef13(get),lastRectRef=useRef13(null),contentOffsetXRef=useRef13(contentOffsetX),contentOffsetYRef=useRef13(contentOffsetY);colRef.current=col,rowRef.current=row,visibleRef.current=visible,shapeRef.current=shape,setRef.current=set,getRef.current=get,contentOffsetXRef.current=contentOffsetX,contentOffsetYRef.current=contentOffsetY,useScrollRect(useCallback15((rect)=>{if(lastRectRef.current=rect,!visibleRef.current)return;setRef.current({x:rect.x+contentOffsetXRef.current+colRef.current,y:rect.y+contentOffsetYRef.current+rowRef.current,visible:!0,shape:shapeRef.current})},[])),useLayoutEffect5(()=>{let rect=lastRectRef.current;if(!rect||!visible)return;set({x:rect.x+contentOffsetX+col,y:rect.y+contentOffsetY+row,visible:!0,shape})},[col,row,contentOffsetX,contentOffsetY,shape,visible,set]),useEffect14(()=>{if(!visible){if(getRef.current())setRef.current(null)}return()=>{setRef.current(null)}},[visible])}function getCursorState(){return globalGetCursorState()}function subscribeCursor(listener){return globalSubscribeCursor(listener)}import{jsxDEV as jsxDEV13,Fragment as Fragment2}from"react/jsx-dev-runtime";var TextInput=forwardRef5(function({value:controlledValue,defaultValue="",onChange,onSubmit,onEOF,placeholder="",isActive:isActiveProp,prompt="",promptColor="$control",color,cursorStyle:cursorStyle2="block",showUnderline=!1,underlineWidth=40,mask,borderStyle:borderStyleProp,borderColor:borderColorProp="$border",focusBorderColor="$focusborder",testID},ref){let{focused}=useFocusable(),isActive=isActiveProp??(testID?focused:!0),isControlled=controlledValue!==void 0,internalChangeRef=useRef14(!1),readline=useReadline({initialValue:isControlled?controlledValue??"":defaultValue,onChange:useCallback16((newValue)=>{internalChangeRef.current=!0,onChange?.(newValue)},[onChange]),isActive,handleEnter:!!onSubmit,onSubmit,onEOF}),[lastControlledValue,setLastControlledValue]=useState10(controlledValue);useEffect15(()=>{if(isControlled&&controlledValue!==lastControlledValue){if(internalChangeRef.current)internalChangeRef.current=!1;else readline.setValue(controlledValue??"");setLastControlledValue(controlledValue)}},[isControlled,controlledValue,lastControlledValue,readline]);let{value,cursor,clear,setValue,killRing:killRing2}=readline;useImperativeHandle4(ref,()=>({clear,getValue:()=>value,setValue,getKillRing:()=>killRing2}));let displayValue=mask?mask.repeat(value.length):value,displayBeforeCursor=displayValue.slice(0,cursor),displayAtCursor=displayValue[cursor]??" ",displayAfterCursor=displayValue.slice(cursor+1),showPlaceholder=!value&&placeholder,cursorEl=cursorStyle2==="underline"?jsxDEV13(Text,{underline:!0,children:displayAtCursor},void 0,!1,void 0,this):jsxDEV13(Text,{inverse:!0,children:displayAtCursor},void 0,!1,void 0,this),borderColOffset=borderStyleProp?2:0,borderRowOffset=borderStyleProp?1:0;useCursor({col:prompt.length+displayBeforeCursor.length+borderColOffset,row:borderRowOffset,visible:isActive});let handleMouseDown=useCallback16((e)=>{if(e.button!==0)return;let rect=e.currentTarget.scrollRect;if(!rect)return;let relativeX=e.clientX-rect.x-prompt.length,newCursor=Math.max(0,Math.min(relativeX,value.length));readline.setValueWithCursor(value,newCursor)},[prompt.length,value,readline]),inputContent=jsxDEV13(Text,{color,children:[prompt&&jsxDEV13(Text,{color:promptColor,children:prompt},void 0,!1,void 0,this),showPlaceholder?jsxDEV13(Fragment2,{children:[cursorStyle2==="underline"?jsxDEV13(Text,{underline:!0,dimColor:!0,children:placeholder[0]},void 0,!1,void 0,this):jsxDEV13(Text,{inverse:!0,dimColor:!0,children:placeholder[0]},void 0,!1,void 0,this),jsxDEV13(Text,{dimColor:!0,children:placeholder.slice(1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):jsxDEV13(Fragment2,{children:[jsxDEV13(Text,{children:displayBeforeCursor},void 0,!1,void 0,this),cursorEl,jsxDEV13(Text,{children:displayAfterCursor},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);if(borderStyleProp)return jsxDEV13(Box,{focusable:!0,testID,flexDirection:"column",borderStyle:borderStyleProp,borderColor:isActive?focusBorderColor:borderColorProp,paddingX:1,onMouseDown:handleMouseDown,children:[inputContent,showUnderline&&jsxDEV13(Text,{dimColor:!0,children:"─".repeat(underlineWidth)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return jsxDEV13(Box,{focusable:!0,testID,flexDirection:"column",onMouseDown:handleMouseDown,children:[inputContent,showUnderline&&jsxDEV13(Text,{dimColor:!0,children:"─".repeat(underlineWidth)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)});import{forwardRef as forwardRef6,useCallback as useCallback18,useImperativeHandle as useImperativeHandle5,useRef as useRef16}from"react";import{useCallback as useCallback17,useMemo as useMemo10,useRef as useRef15,useState as useState11}from"react";init_unicode();function cursorToRowCol(text,cursor,wrapWidth,measurer){if(wrapWidth<=0)return{row:0,col:0};return cursorToRowColFromLines(getWrappedLines(text,wrapWidth,measurer),cursor)}function cursorToRowColFromLines(lines,cursor){for(let i=0;i<lines.length;i++){let line=lines[i],lineEnd=line.startOffset+line.line.length,isLast=i===lines.length-1;if(cursor<=lineEnd||isLast){let col=Math.max(0,Math.min(cursor-line.startOffset,line.line.length));return{row:i,col}}}return{row:Math.max(0,lines.length-1),col:0}}function getWrappedLines(text,wrapWidth,measurer){if(wrapWidth<=0)return[{line:"",startOffset:0}];let logicalLines=text.split(`
|
|
161
161
|
`),result=[],offset=0,wt=measurer?measurer.wrapText.bind(measurer):wrapText;for(let li=0;li<logicalLines.length;li++){let line=logicalLines[li],wrapped=wt(line,wrapWidth,!1,!0),lines=wrapped.length===0?[""]:wrapped;for(let wLine of lines){while(offset<text.length&&text[offset]===" "&&wLine.length>0&&text[offset]!==wLine[0])offset++;result.push({line:wLine,startOffset:offset}),offset+=wLine.length}while(offset<text.length&&text[offset]===" ")offset++;offset++}return result}function rowColToCursor(text,row,col,wrapWidth,measurer){let lines=getWrappedLines(text,wrapWidth,measurer);if(row<0)return 0;if(row>=lines.length)return text.length;let line=lines[row];return line.startOffset+Math.min(col,line.line.length)}function cursorMoveUp(text,cursor,wrapWidth,stickyX,measurer){if(wrapWidth<=0)return cursor>0?0:null;let lines=getWrappedLines(text,wrapWidth,measurer),{row,col}=cursorToRowColFromLines(lines,cursor);if(row===0)return null;let targetX=stickyX??col;for(let prevRow=row-1;prevRow>=0;prevRow--){let targetLine=lines[prevRow],next=targetLine.startOffset+Math.min(targetX,targetLine.line.length);if(next!==cursor)return next}return null}function cursorMoveDown(text,cursor,wrapWidth,stickyX,measurer){if(wrapWidth<=0)return cursor<text.length?text.length:null;let lines=getWrappedLines(text,wrapWidth,measurer),{row,col}=cursorToRowColFromLines(lines,cursor);if(row>=lines.length-1)return null;let targetX=stickyX??col;for(let nextRow=row+1;nextRow<lines.length;nextRow++){let targetLine=lines[nextRow],next=targetLine.startOffset+Math.min(targetX,targetLine.line.length);if(next!==cursor)return next}return null}function countVisualLines(text,wrapWidth,measurer){return getWrappedLines(text,wrapWidth,measurer).length}function clampScroll(cursorRow,currentScroll,viewportHeight,totalLines,margin){if(viewportHeight<=0)return 0;let effectiveMargin=totalLines<=viewportHeight?0:Math.min(margin,Math.floor((viewportHeight-1)/2)),scroll=currentScroll;if(cursorRow<scroll+effectiveMargin)scroll=cursorRow-effectiveMargin;if(cursorRow>=scroll+viewportHeight-effectiveMargin)scroll=cursorRow-viewportHeight+1+effectiveMargin;return Math.max(0,Math.min(scroll,Math.max(0,totalLines-viewportHeight)))}function useTextArea({value:controlledValue,defaultValue="",onChange,onSubmit,submitKey="ctrl+enter",isActive=!0,height,wrapWidth:rawWrapWidth,scrollMargin=1,disabled,maxLength}){let isControlled=controlledValue!==void 0,[uncontrolledValue,setUncontrolledValue]=useState11(defaultValue),[cursor,setCursor]=useState11(defaultValue.length),[scrollOffset,setScrollOffset]=useState11(0),stickyXRef=useRef15(null),yankStateRef=useRef15(null),[selectionAnchor,setSelectionAnchor]=useState11(null),selectionAnchorRef=useRef15(null);selectionAnchorRef.current=selectionAnchor;let value=isControlled?controlledValue??"":uncontrolledValue,wrapWidth=Math.max(1,rawWrapWidth),clampedCursor=Math.min(cursor,value.length);if(clampedCursor!==cursor)setCursor(clampedCursor);let stateRef=useRef15({value,cursor:clampedCursor});stateRef.current.value=value,stateRef.current.cursor=clampedCursor;let scrollRef=useRef15(scrollOffset);scrollRef.current=scrollOffset;let setCursorAndScroll=useCallback17((newCursor,text)=>{stateRef.current.cursor=newCursor,setCursor(newCursor);let{row}=cursorToRowCol(text,newCursor,wrapWidth),totalLines=getWrappedLines(text,wrapWidth).length,newScroll=clampScroll(row,scrollRef.current,height,totalLines,scrollMargin);if(newScroll!==scrollRef.current)setScrollOffset(newScroll)},[wrapWidth,height,scrollMargin]),updateValue=useCallback17((newValue,newCursor)=>{if(maxLength!==void 0&&newValue.length>maxLength&&newValue.length>stateRef.current.value.length)return;if(stateRef.current.value=newValue,stateRef.current.cursor=newCursor,!isControlled)setUncontrolledValue(newValue);setCursorAndScroll(newCursor,newValue),onChange?.(newValue),yankStateRef.current=null},[isControlled,maxLength,onChange,setCursorAndScroll]),getSelectionRange=useCallback17(()=>{let anchor=selectionAnchorRef.current;if(anchor===null)return null;let cur=stateRef.current.cursor;if(anchor===cur)return null;return{start:Math.min(anchor,cur),end:Math.max(anchor,cur)}},[]),deleteSelection=useCallback17(()=>{let sel=getSelectionRange();if(!sel)return null;let v=stateRef.current.value;return{newValue:v.slice(0,sel.start)+v.slice(sel.end),newCursor:sel.start}},[getSelectionRange]),moveCursor3=useCallback17((newCursor,text,shift)=>{if(shift){if(selectionAnchorRef.current===null){let anchor=stateRef.current.cursor;setSelectionAnchor(anchor),selectionAnchorRef.current=anchor}}else if(selectionAnchorRef.current!==null)setSelectionAnchor(null),selectionAnchorRef.current=null;setCursorAndScroll(newCursor,text)},[setCursorAndScroll]),replaceSelectionWith=useCallback17((insertText)=>{let sel=getSelectionRange(),{value:value2}=stateRef.current;if(sel){let newValue=value2.slice(0,sel.start)+insertText+value2.slice(sel.end),newCursor=sel.start+insertText.length;return setSelectionAnchor(null),selectionAnchorRef.current=null,updateValue(newValue,newCursor),!0}return!1},[getSelectionRange,updateValue]),wrappedLines=useMemo10(()=>getWrappedLines(value,wrapWidth),[value,wrapWidth]),{row:cursorRow,col:cursorCol}=useMemo10(()=>cursorToRowCol(value,clampedCursor,wrapWidth),[value,clampedCursor,wrapWidth]);useInput((input,key)=>{if(disabled)return;let{value:value2,cursor:cursor2}=stateRef.current,lines=getWrappedLines(value2,wrapWidth),{row:cRow,col:cCol}=cursorToRowCol(value2,cursor2,wrapWidth),hasSelection=selectionAnchorRef.current!==null&&selectionAnchorRef.current!==cursor2,clearSelection=()=>{if(selectionAnchorRef.current!==null)setSelectionAnchor(null),selectionAnchorRef.current=null};if(submitKey==="ctrl+enter"&&key.return&&key.ctrl){onSubmit?.(value2);return}if(submitKey==="enter"&&key.return&&!key.ctrl){onSubmit?.(value2);return}if(submitKey==="meta+enter"&&key.return&&key.meta){onSubmit?.(value2);return}if(key.ctrl&&input==="a"){stickyXRef.current=null,setSelectionAnchor(0),selectionAnchorRef.current=0,setCursorAndScroll(value2.length,value2),yankStateRef.current=null;return}if(key.return&&submitKey!=="enter"){if(stickyXRef.current=null,hasSelection)replaceSelectionWith(`
|
|
162
162
|
`);else updateValue(value2.slice(0,cursor2)+`
|
|
163
|
-
`+value2.slice(cursor2),cursor2+1);return}if(key.leftArrow&&key.shift){stickyXRef.current=null;let target=key.ctrl?findPrevWordStart(value2,cursor2):Math.max(0,cursor2-1);moveCursor3(target,value2,!0),yankStateRef.current=null;return}if(key.rightArrow&&key.shift){stickyXRef.current=null;let target=key.ctrl?findNextWordEnd(value2,cursor2):Math.min(value2.length,cursor2+1);moveCursor3(target,value2,!0),yankStateRef.current=null;return}if(key.upArrow&&key.shift){if(cRow>0){let targetX=stickyXRef.current??cCol;stickyXRef.current=targetX;let targetLine=lines[cRow-1];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(targetX,targetLine.line.length),value2,!0)}yankStateRef.current=null;return}if(key.downArrow&&key.shift){if(cRow<lines.length-1){let targetX=stickyXRef.current??cCol;stickyXRef.current=targetX;let targetLine=lines[cRow+1];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(targetX,targetLine.line.length),value2,!0)}yankStateRef.current=null;return}if(key.home&&key.shift){stickyXRef.current=null;let currentLine=lines[cRow];if(currentLine)moveCursor3(currentLine.startOffset,value2,!0);yankStateRef.current=null;return}if(key.end&&key.shift){stickyXRef.current=null;let currentLine=lines[cRow];if(currentLine)moveCursor3(currentLine.startOffset+currentLine.line.length,value2,!0);yankStateRef.current=null;return}if(key.upArrow){if(cRow>0){let targetX=stickyXRef.current??cCol;stickyXRef.current=targetX;let targetLine=lines[cRow-1];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(targetX,targetLine.line.length),value2,!1)}else clearSelection();yankStateRef.current=null;return}if(key.downArrow){if(cRow<lines.length-1){let targetX=stickyXRef.current??cCol;stickyXRef.current=targetX;let targetLine=lines[cRow+1];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(targetX,targetLine.line.length),value2,!1)}else clearSelection();yankStateRef.current=null;return}if(key.ctrl&&key.home){stickyXRef.current=null,moveCursor3(0,value2,!1),yankStateRef.current=null;return}if(key.ctrl&&key.end){stickyXRef.current=null,moveCursor3(value2.length,value2,!1),yankStateRef.current=null;return}if(key.home){stickyXRef.current=null;let currentLine=lines[cRow];if(currentLine)moveCursor3(currentLine.startOffset,value2,!1);yankStateRef.current=null;return}if(key.end||key.ctrl&&input==="e"){stickyXRef.current=null;let currentLine=lines[cRow];if(currentLine)moveCursor3(currentLine.startOffset+currentLine.line.length,value2,!1);yankStateRef.current=null;return}if(key.pageUp){stickyXRef.current=null;let targetLine=lines[Math.max(0,cRow-height)];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(cCol,targetLine.line.length),value2,!1);yankStateRef.current=null;return}if(key.pageDown){stickyXRef.current=null;let targetLine=lines[Math.min(lines.length-1,cRow+height)];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(cCol,targetLine.line.length),value2,!1);yankStateRef.current=null;return}if(key.ctrl&&input==="k"){stickyXRef.current=null,clearSelection();let currentLine=lines[cRow];if(!currentLine)return;let lineEnd=currentLine.startOffset+currentLine.line.length;if(cursor2<lineEnd)addToKillRing(value2.slice(cursor2,lineEnd)),updateValue(value2.slice(0,cursor2)+value2.slice(lineEnd),cursor2);else if(cursor2<value2.length)addToKillRing(value2.slice(cursor2,cursor2+1)),updateValue(value2.slice(0,cursor2)+value2.slice(cursor2+1),cursor2);return}if(key.ctrl&&input==="u"){stickyXRef.current=null,clearSelection();let currentLine=lines[cRow];if(!currentLine)return;let lineStart=currentLine.startOffset;if(cursor2>lineStart)addToKillRing(value2.slice(lineStart,cursor2)),updateValue(value2.slice(0,lineStart)+value2.slice(cursor2),lineStart);return}if((key.backspace||key.delete)&&hasSelection){stickyXRef.current=null;let del=deleteSelection();if(del)clearSelection(),updateValue(del.newValue,del.newCursor);yankStateRef.current=null;return}if(hasSelection&&input.length>=1&&input>=" "){stickyXRef.current=null,replaceSelectionWith(input),yankStateRef.current=null;return}let result=handleReadlineKey(input,key,value2,cursor2,yankStateRef.current);if(result){if(stickyXRef.current=null,clearSelection(),result.value===value2&&result.cursor===cursor2){yankStateRef.current=result.yankState;return}if(result.value!==value2){if(maxLength!==void 0&&result.value.length>maxLength&&result.value.length>value2.length){yankStateRef.current=result.yankState;return}if(stateRef.current.value=result.value,stateRef.current.cursor=result.cursor,!isControlled)setUncontrolledValue(result.value);setCursorAndScroll(result.cursor,result.value),onChange?.(result.value)}else setCursorAndScroll(result.cursor,value2);yankStateRef.current=result.yankState}},{isActive});let visibleCursorRow=cursorRow-scrollOffset,selection=selectionAnchor!==null&&selectionAnchor!==clampedCursor?{start:Math.min(selectionAnchor,clampedCursor),end:Math.max(selectionAnchor,clampedCursor)}:null,visibleLines=wrappedLines.slice(scrollOffset,scrollOffset+height),clear=useCallback17(()=>{updateValue("",0),setScrollOffset(0),setSelectionAnchor(null)},[updateValue]),setValue=useCallback17((v)=>{updateValue(v,v.length),setSelectionAnchor(null)},[updateValue]),setCursorFn=useCallback17((offset)=>{let clamped=Math.min(Math.max(0,offset),stateRef.current.value.length);setSelectionAnchor(null),selectionAnchorRef.current=null,setCursorAndScroll(clamped,stateRef.current.value)},[setCursorAndScroll]);return{value,cursor:clampedCursor,cursorRow,cursorCol,visibleCursorRow,scrollOffset,wrappedLines,visibleLines,selection,selectionAnchor,clear,setValue,getSelection:getSelectionRange,setCursor:setCursorFn}}import{jsxDEV as jsxDEV14}from"react/jsx-dev-runtime";var TextArea=forwardRef6(function({value:controlledValue,defaultValue="",onChange,onSubmit,submitKey="ctrl+enter",placeholder="",isActive:isActiveProp,height,cursorStyle:cursorStyle2="block",scrollMargin=1,disabled,maxLength,borderStyle:borderStyleProp,borderColor:borderColorProp="$border",focusBorderColor="$focusborder",testID},ref){let{focused}=useFocusable(),isActive=isActiveProp??(testID?focused:!0),{width:parentWidth}=useBoxRect(),contentWidth=borderStyleProp?Math.max(1,parentWidth-4):parentWidth,ta=useTextArea({value:controlledValue,defaultValue,onChange,onSubmit,submitKey,isActive,height,wrapWidth:contentWidth,scrollMargin,disabled,maxLength});useImperativeHandle5(ref,()=>({clear:ta.clear,getValue:()=>ta.value,setValue:ta.setValue,getSelection:ta.getSelection}));let wrappedLinesRef=useRef16(ta.wrappedLines);wrappedLinesRef.current=ta.wrappedLines;let scrollOffsetRef=useRef16(ta.scrollOffset);scrollOffsetRef.current=ta.scrollOffset;let handleMouseDown=useCallback18((e)=>{if(e.button!==0)return;let rect=e.currentTarget.scrollRect;if(!rect)return;let lines=wrappedLinesRef.current,scroll=scrollOffsetRef.current,row=e.clientY-rect.y+scroll,clampedRow=Math.min(Math.max(0,row),lines.length-1),wl=lines[clampedRow];if(!wl)return;let relativeX=e.clientX-rect.x,col=Math.min(Math.max(0,relativeX),wl.line.length),offset=Math.min(Math.max(0,wl.startOffset+col),ta.value.length);ta.setCursor(offset)},[ta]),showPlaceholder=!ta.value&&placeholder,borderProps=borderStyleProp?{borderStyle:borderStyleProp,borderColor:isActive?focusBorderColor:borderColorProp,paddingX:1}:{},borderColOffset=borderStyleProp?2:0,borderRowOffset=borderStyleProp?1:0;if(useCursor({col:ta.cursorCol+borderColOffset,row:ta.visibleCursorRow+borderRowOffset,visible:isActive&&!disabled&&!ta.selection}),showPlaceholder)return jsxDEV14(Box,{focusable:!0,testID,flexDirection:"column",height,...borderProps,children:jsxDEV14(Text,{dimColor:!0,children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this);return jsxDEV14(Box,{focusable:!0,testID,flexDirection:"column",height,...borderProps,onMouseDown:handleMouseDown,children:ta.visibleLines.map((wl,i)=>{let absoluteRow=ta.scrollOffset+i,isCursorRow=absoluteRow===ta.cursorRow,lineStart=wl.startOffset,lineEnd=lineStart+wl.line.length,hasSelectionOnLine=ta.selection&&lineStart<ta.selection.end&&lineEnd>ta.selection.start;if(disabled)return jsxDEV14(Text,{dimColor:!0,children:wl.line||" "},absoluteRow,!1,void 0,this);if(hasSelectionOnLine){let selStart=Math.max(0,ta.selection.start-lineStart),selEnd=Math.min(wl.line.length,ta.selection.end-lineStart),before=wl.line.slice(0,selStart),selected=wl.line.slice(selStart,selEnd),after=wl.line.slice(selEnd);return jsxDEV14(Text,{children:[before,jsxDEV14(Text,{inverse:!0,children:selected||(selEnd===wl.line.length&&isCursorRow?" ":"")},void 0,!1,void 0,this),after]},absoluteRow,!0,void 0,this)}if(!isCursorRow)return jsxDEV14(Text,{children:wl.line||" "},absoluteRow,!1,void 0,this);let beforeCursor=wl.line.slice(0,ta.cursorCol),atCursor=wl.line[ta.cursorCol]??" ",afterCursor=wl.line.slice(ta.cursorCol+1);return jsxDEV14(Text,{children:[beforeCursor,isActive?jsxDEV14(Text,{children:atCursor},void 0,!1,void 0,this):cursorStyle2==="block"?jsxDEV14(Text,{inverse:!0,children:atCursor},void 0,!1,void 0,this):jsxDEV14(Text,{underline:!0,children:atCursor},void 0,!1,void 0,this),afterCursor]},absoluteRow,!0,void 0,this)})},ta.scrollOffset,!1,void 0,this)});import{useCallback as useCallback19,useMemo as useMemo11,useRef as useRef17}from"react";import{jsxDEV as jsxDEV15}from"react/jsx-dev-runtime";function clampScroll2(cursorRow,currentScroll,viewportHeight){if(viewportHeight<=0)return 0;let scroll=currentScroll;if(cursorRow<scroll)scroll=cursorRow;if(cursorRow>=scroll+viewportHeight)scroll=cursorRow-viewportHeight+1;return Math.max(0,scroll)}function EditContextDisplay({value,cursor,height,wrapWidth,cursorStyle:cursorStyle2="block",placeholder="",showCursor=!0,onCursorClick}){let scrollRef=useRef17(0),effectiveWrapWidth=wrapWidth!=null&&wrapWidth>0?wrapWidth:1e4,clampedCursor=Math.min(Math.max(0,cursor),value.length),wrappedLines=useMemo11(()=>getWrappedLines(value,effectiveWrapWidth),[value,effectiveWrapWidth]),{row:cursorRow,col:cursorCol}=useMemo11(()=>cursorToRowCol(value,clampedCursor,effectiveWrapWidth),[value,clampedCursor,effectiveWrapWidth]),hasViewport=height!=null&&height>0;if(hasViewport)scrollRef.current=clampScroll2(cursorRow,scrollRef.current,height);if(!value&&placeholder){if(hasViewport)return jsxDEV15(Box,{flexDirection:"column",height,justifyContent:"center",alignItems:"center",children:jsxDEV15(Text,{dimColor:!0,children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this);return jsxDEV15(Box,{flexDirection:"column",children:jsxDEV15(Text,{dimColor:!0,children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this)}let currentScroll=hasViewport?scrollRef.current:0,visibleLines=hasViewport?wrappedLines.slice(currentScroll,currentScroll+height):wrappedLines,wrappedLinesRef=useRef17(wrappedLines);wrappedLinesRef.current=wrappedLines;let scrollRefForClick=scrollRef,handleMouseDown=useCallback19((e)=>{if(!onCursorClick||e.button!==0)return;let rect=e.currentTarget.scrollRect;if(!rect)return;let lines=wrappedLinesRef.current,scroll=scrollRefForClick.current,row=e.clientY-rect.y+scroll,clampedRow=Math.min(Math.max(0,row),lines.length-1),wl=lines[clampedRow];if(!wl)return;let relativeX=e.clientX-rect.x,col=Math.min(Math.max(0,relativeX),wl.line.length),offset=Math.min(Math.max(0,wl.startOffset+col),value.length);onCursorClick(offset)},[onCursorClick,value.length]);return jsxDEV15(Box,{flexDirection:"column",height:hasViewport?height:void 0,onMouseDown:onCursorClick?handleMouseDown:void 0,children:visibleLines.map((wl,i)=>{let absoluteRow=currentScroll+i;if(!(absoluteRow===cursorRow&&showCursor))return jsxDEV15(Text,{children:wl.line||" "},absoluteRow,!1,void 0,this);let beforeCursorText=wl.line.slice(0,cursorCol),atCursor=wl.line[cursorCol]??" ",afterCursorText=wl.line.slice(cursorCol+1);return jsxDEV15(Text,{children:[beforeCursorText,cursorStyle2==="block"?jsxDEV15(Text,{inverse:!0,children:atCursor},void 0,!1,void 0,this):jsxDEV15(Text,{underline:!0,children:atCursor},void 0,!1,void 0,this),afterCursorText]},absoluteRow,!0,void 0,this)})},currentScroll,!1,void 0,this)}import{useCallback as useCallback20}from"react";import{jsxDEV as jsxDEV16}from"react/jsx-dev-runtime";function CursorLine({beforeCursor,afterCursor,color,showCursor=!0,cursorStyle:cursorStyle2="block",onCursorClick}){let totalLength=beforeCursor.length+afterCursor.length,handleMouseDown=useCallback20((e)=>{if(!onCursorClick||e.button!==0)return;let rect=e.currentTarget.scrollRect;if(!rect)return;let relativeX=e.clientX-rect.x,offset=Math.min(Math.max(0,relativeX),totalLength);onCursorClick(offset)},[onCursorClick,totalLength]),textContent=(()=>{if(!showCursor)return jsxDEV16(Text,{color,children:[beforeCursor,afterCursor]},void 0,!0,void 0,this);let cursorChar=afterCursor[0]??" ",rest=afterCursor.slice(1);return jsxDEV16(Text,{color,children:[beforeCursor,cursorStyle2==="block"?jsxDEV16(Text,{inverse:!0,children:cursorChar},void 0,!1,void 0,this):jsxDEV16(Text,{underline:!0,children:cursorChar},void 0,!1,void 0,this),rest]},void 0,!0,void 0,this)})();if(onCursorClick)return jsxDEV16(Box,{onMouseDown:handleMouseDown,children:textContent},void 0,!1,void 0,this);return textContent}import{jsxDEV as jsxDEV17,Fragment as Fragment3}from"react/jsx-dev-runtime";function formatTitleWithHotkey(title,hotkey,color){let idx=title.toLowerCase().indexOf(hotkey.toLowerCase());if(idx>=0&&hotkey.length===1&&hotkey.toLowerCase()!==hotkey.toUpperCase()){let before=title.slice(0,idx),matched=title[idx],after=title.slice(idx+1);return jsxDEV17(Text,{color,bold:!0,children:[before,jsxDEV17(Text,{dimColor:!0,bold:!1,children:"["},void 0,!1,void 0,this),jsxDEV17(Text,{bold:!0,children:matched},void 0,!1,void 0,this),jsxDEV17(Text,{dimColor:!0,bold:!1,children:"]"},void 0,!1,void 0,this),after]},void 0,!0,void 0,this)}return jsxDEV17(Text,{color,bold:!0,children:[jsxDEV17(Text,{dimColor:!0,bold:!1,children:"["},void 0,!1,void 0,this),jsxDEV17(Text,{bold:!0,children:hotkey},void 0,!1,void 0,this),jsxDEV17(Text,{dimColor:!0,bold:!1,children:"]"},void 0,!1,void 0,this)," ",title]},void 0,!0,void 0,this)}function ModalDialog({borderColor="$border",title,titleColor,titleAlign="center",hotkey,titleRight,width,height,footer,footerAlign="center",onClose:_onClose,focusScope:_focusScope=!0,children,...boxProps}){let effectiveTitleColor=titleColor??"$primary";return jsxDEV17(Box,{flexDirection:"column",width:width??"snug-content",height,borderStyle:"double",borderColor,backgroundColor:"$popover-bg",paddingX:2,paddingY:1,userSelect:"contain",...boxProps,children:[title&&jsxDEV17(Box,{flexShrink:0,flexDirection:"column",children:[jsxDEV17(Box,{justifyContent:titleRight?"space-between":titleAlign,children:[hotkey?formatTitleWithHotkey(title,hotkey,effectiveTitleColor):jsxDEV17(Text,{color:effectiveTitleColor,bold:!0,children:title},void 0,!1,void 0,this),titleRight]},void 0,!0,void 0,this),jsxDEV17(Text,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV17(Box,{flexDirection:"column",flexGrow:1,overflow:"hidden",children},void 0,!1,void 0,this),footer&&jsxDEV17(Fragment3,{children:[jsxDEV17(Text,{children:" "},void 0,!1,void 0,this),jsxDEV17(Box,{justifyContent:footerAlign,children:typeof footer==="string"?jsxDEV17(Text,{dimColor:!0,children:footer},void 0,!1,void 0,this):footer},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as useCallback21,useRef as useRef18,useState as useState12}from"react";import{jsxDEV as jsxDEV18}from"react/jsx-dev-runtime";function PickerList({items,selectedIndex,renderItem,getKey,emptyMessage="No items",maxVisible=10}){if(items.length===0)return jsxDEV18(Box,{flexDirection:"column",flexGrow:1,flexShrink:1,overflow:"hidden",children:jsxDEV18(Text,{dimColor:!0,children:emptyMessage},void 0,!1,void 0,this)},void 0,!1,void 0,this);let clampedIndex=Math.min(selectedIndex,items.length-1),effectiveHeight=Math.min(maxVisible,items.length);return jsxDEV18(Box,{flexDirection:"column",flexGrow:1,flexShrink:1,overflow:"hidden",children:jsxDEV18(ListView,{items,height:effectiveHeight,nav:!0,active:!1,cursorKey:clampedIndex,getKey:(item)=>getKey(item),renderItem:(item,_index,meta)=>renderItem(item,meta.isCursor)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV19}from"react/jsx-dev-runtime";function PickerDialog({title,placeholder,items,renderItem,getKey,onSelect,onCancel,onChange,initialValue="",emptyMessage="No items",maxVisible=10,width,height,footer,prompt,promptColor,isActive=!0}){let[selectedIndex,setSelectedIndex]=useState12(0),onSelectRef=useRef18(onSelect);onSelectRef.current=onSelect;let onCancelRef=useRef18(onCancel);onCancelRef.current=onCancel;let itemsRef=useRef18(items);itemsRef.current=items;let selectedIndexRef=useRef18(selectedIndex);selectedIndexRef.current=selectedIndex;let readline=useReadline({initialValue,onChange:useCallback21((value)=>{onChange?.(value),setSelectedIndex(0)},[onChange]),isActive,handleEnter:!1,handleEscape:!1,handleVerticalArrows:!1}),clampedIndex=items.length>0?Math.min(selectedIndex,items.length-1):0;if(clampedIndex!==selectedIndex)setSelectedIndex(clampedIndex);let effectiveMaxVisible=Math.min(maxVisible,items.length);useInput((_input,key)=>{if(key.escape){onCancelRef.current();return}if(key.return){let currentItems=itemsRef.current,idx=selectedIndexRef.current,item=currentItems[Math.min(idx,currentItems.length-1)];if(item)onSelectRef.current(item);return}if(key.upArrow){setSelectedIndex((i)=>Math.max(0,i-1));return}if(key.downArrow){setSelectedIndex((i)=>Math.min(i+1,Math.max(0,itemsRef.current.length-1)));return}if(key.pageUp){setSelectedIndex((i)=>Math.max(0,i-effectiveMaxVisible));return}if(key.pageDown){setSelectedIndex((i)=>Math.min(i+effectiveMaxVisible,Math.max(0,itemsRef.current.length-1)));return}},{isActive});let showPlaceholder=!readline.value&&placeholder;return jsxDEV19(ModalDialog,{title,width,height,footer,children:[jsxDEV19(Box,{flexShrink:0,flexDirection:"column",children:[jsxDEV19(Box,{children:[prompt&&jsxDEV19(Text,{color:promptColor,children:prompt},void 0,!1,void 0,this),showPlaceholder?jsxDEV19(Text,{dimColor:!0,children:placeholder},void 0,!1,void 0,this):jsxDEV19(CursorLine,{beforeCursor:readline.beforeCursor,afterCursor:readline.afterCursor,showCursor:isActive},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV19(Text,{dimColor:!0,children:"─".repeat(40)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV19(PickerList,{items,selectedIndex:clampedIndex,renderItem,getKey,emptyMessage,maxVisible},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV20}from"react/jsx-dev-runtime";function Toggle({value,onChange,label,isActive,...rest}){let{focused}=useFocusable(),active=isActive??focused;return useInput((_input,key)=>{if(_input===" "&&!key.ctrl&&!key.meta&&!key.shift)onChange(!value)},{isActive:active}),jsxDEV20(Box,{focusable:!0,...rest,children:[jsxDEV20(Text,{inverse:active,children:value?"[x]":"[ ]"},void 0,!1,void 0,this),label&&jsxDEV20(Text,{children:[" ",label]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV21}from"react/jsx-dev-runtime";function Button({label,onPress,isActive,color,...rest}){let{focused}=useFocusable(),active=isActive??focused;return useInput((_input,key)=>{if(key.return||_input===" "&&!key.ctrl&&!key.meta&&!key.shift)onPress()},{isActive:active}),jsxDEV21(Box,{focusable:!0,...rest,children:jsxDEV21(Text,{color,inverse:active,children:["[ ",label," ]"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import React11 from"react";function SearchBar(){let{isActive,query,matches,currentMatch}=useSearch();if(!isActive)return null;let matchInfo=matches.length>0?`[${currentMatch+1}/${matches.length}]`:query?"[no matches]":"";return React11.createElement(Box,{flexDirection:"row"},React11.createElement(Text,{inverse:!0},` / ${query} ${matchInfo} `))}import{useEffect as useEffect16,useState as useState13}from"react";import{jsxDEV as jsxDEV22}from"react/jsx-dev-runtime";var FRAMES={dots:["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],line:["|","/","—","\\"],arc:["◜","◠","◝","◞","◡","◟"],bounce:["⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈"]};function Spinner({type="dots",label,interval=80,...rest}){let[frameIndex,setFrameIndex]=useState13(0),frames=FRAMES[type];useEffect16(()=>{let timer=setInterval(()=>{setFrameIndex((prev)=>(prev+1)%frames.length)},interval);return()=>clearInterval(timer)},[frames.length,interval]);let frame=frames[frameIndex%frames.length];return jsxDEV22(Text,{...rest,children:[frame,label?` ${label}`:""]},void 0,!0,void 0,this)}import{useEffect as useEffect17,useState as useState14}from"react";import{jsxDEV as jsxDEV23}from"react/jsx-dev-runtime";var DEFAULT_FILL="█",DEFAULT_EMPTY="░",DEFAULT_WIDTH=30,INDETERMINATE_BLOCK_SIZE=4,INDETERMINATE_INTERVAL=100;function ProgressBar({value,width:widthProp,fillChar=DEFAULT_FILL,emptyChar=DEFAULT_EMPTY,showPercentage,label,color}){let layoutRect=useBoxRect(),contentWidth=widthProp?0:layoutRect.width,[bouncePos,setBouncePos]=useState14(0),[bounceDir,setBounceDir]=useState14(1),isDeterminate=value!==void 0,showPct=showPercentage??isDeterminate,labelWidth=label?label.length+1:0,pctWidth=showPct?5:0,availableWidth=widthProp??(contentWidth>0?contentWidth:DEFAULT_WIDTH),barWidth=Math.max(1,availableWidth-labelWidth-pctWidth);useEffect17(()=>{if(isDeterminate)return;let timer=setInterval(()=>{setBouncePos((prev)=>{let maxPos=barWidth-INDETERMINATE_BLOCK_SIZE;if(maxPos<=0)return 0;let next=prev+bounceDir;if(next>=maxPos)return setBounceDir(-1),maxPos;if(next<=0)return setBounceDir(1),0;return next})},INDETERMINATE_INTERVAL);return()=>clearInterval(timer)},[isDeterminate,barWidth,bounceDir]);let filledPart,emptyPart;if(isDeterminate){let clamped=Math.max(0,Math.min(1,value)),filled=Math.round(clamped*barWidth);filledPart=fillChar.repeat(filled),emptyPart=emptyChar.repeat(barWidth-filled)}else{let blockSize=Math.min(INDETERMINATE_BLOCK_SIZE,barWidth),pos=Math.max(0,Math.min(bouncePos,barWidth-blockSize));filledPart=emptyChar.repeat(pos)+fillChar.repeat(blockSize),emptyPart=emptyChar.repeat(barWidth-pos-blockSize)}let pct=isDeterminate?Math.round(Math.max(0,Math.min(1,value))*100):0;return jsxDEV23(Box,{children:[label&&jsxDEV23(Text,{children:[label," "]},void 0,!0,void 0,this),jsxDEV23(Text,{color,children:filledPart},void 0,!1,void 0,this),jsxDEV23(Text,{dimColor:!0,children:emptyPart},void 0,!1,void 0,this),showPct&&jsxDEV23(Text,{children:[String(pct).padStart(4),"%"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as useCallback22,useState as useState15}from"react";import{jsxDEV as jsxDEV24}from"react/jsx-dev-runtime";function findNextEnabled(items,current,direction){let len=items.length;if(len===0)return current;let next=current+direction;for(let i=0;i<len;i++){if(next<0)next=len-1;if(next>=len)next=0;if(!items[next].disabled)return next;next+=direction}return current}function findFirstEnabled(items){for(let i=0;i<items.length;i++)if(!items[i].disabled)return i;return 0}function SelectList({items,highlightedIndex:controlledIndex,onHighlight,onSelect,initialIndex,maxVisible,isActive=!0,indicator="▸ "}){let isControlled=controlledIndex!==void 0,[uncontrolledIndex,setUncontrolledIndex]=useState15(initialIndex??findFirstEnabled(items)),currentIndex=isControlled?controlledIndex:uncontrolledIndex,setIndex=useCallback22((index)=>{if(!isControlled)setUncontrolledIndex(index);onHighlight?.(index)},[isControlled,onHighlight]),handleCursor=useCallback22((nextIndex)=>{if(items[nextIndex]?.disabled){let direction=nextIndex>=currentIndex?1:-1;setIndex(findNextEnabled(items,currentIndex,direction))}else setIndex(nextIndex)},[items,currentIndex,setIndex]),handleSelect=useCallback22((index)=>{let item=items[index];if(item&&!item.disabled)onSelect?.(item,index)},[items,onSelect]),renderItem=useCallback22((item,_index,meta)=>jsxDEV24(Text,{inverse:meta.isCursor,dimColor:item.disabled,children:[indicator?meta.isCursor?indicator:" ".repeat(indicator.length):"",item.label]},item.value,!0,void 0,this),[indicator]);return jsxDEV24(ListView,{items,height:maxVisible??items.length,estimateHeight:1,nav:!0,cursorKey:currentIndex,onCursor:handleCursor,onSelect:handleSelect,active:isActive,getKey:(item)=>item.value,renderItem},void 0,!1,void 0,this)}import{useMemo as useMemo12}from"react";import{jsxDEV as jsxDEV25}from"react/jsx-dev-runtime";function computeWidths(columns,data,padding){return columns.map((col)=>{if(col.width)return col.width;if(col.grow)return 0;let cellValues=data.map((item,i)=>{if(col.render){let rendered=col.render(item,i);return typeof rendered==="string"?rendered:""}return String((col.key?item[col.key]:"")??"")});return Math.max(col.header.length,...cellValues.map((v)=>v.length))+padding})}function Table({data,columns,headerColor="$primary",showHeader=!0,padding=2}){let widths=useMemo12(()=>computeWidths(columns,data,padding),[columns,data,padding]),renderCell=(col,item,index,width)=>{let rendered=col.render?col.render(item,index):null,content=rendered!=null?typeof rendered==="string"?jsxDEV25(Text,{children:rendered},void 0,!1,void 0,this):rendered:jsxDEV25(Text,{children:String((col.key?item[col.key]:"")??"")},void 0,!1,void 0,this);return col.grow?jsxDEV25(Box,{flexGrow:1,justifyContent:col.align==="right"?"flex-end":void 0,children:content},col.header,!1,void 0,this):jsxDEV25(Box,{width,justifyContent:col.align==="right"?"flex-end":void 0,children:content},col.header,!1,void 0,this)},renderRow=(item,index)=>jsxDEV25(Box,{children:columns.map((col,colIndex)=>renderCell(col,item,index,widths[colIndex]))},void 0,!1,void 0,this),viewportHeight=Math.max(data.length,1);return jsxDEV25(Box,{flexDirection:"column",children:[showHeader&&jsxDEV25(Box,{children:columns.map((col,i)=>col.grow?jsxDEV25(Box,{flexGrow:1,children:jsxDEV25(Text,{bold:!0,color:headerColor,children:col.header},void 0,!1,void 0,this)},col.header,!1,void 0,this):jsxDEV25(Box,{width:widths[i],children:jsxDEV25(Text,{bold:!0,color:headerColor,children:col.header},void 0,!1,void 0,this)},col.header,!1,void 0,this))},void 0,!1,void 0,this),data.length>0&&jsxDEV25(ListView,{items:data,height:viewportHeight,estimateHeight:1,renderItem:renderRow},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV26}from"react/jsx-dev-runtime";var VARIANT_COLORS={default:"$fg",primary:"$primary",success:"$success",warning:"$warning",error:"$error"};function Badge({label,variant="default",color,...rest}){let resolvedColor=color??VARIANT_COLORS[variant];return jsxDEV26(Text,{color:resolvedColor,bold:!0,...rest,children:[" ",label," "]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV27}from"react/jsx-dev-runtime";var DEFAULT_CHAR="─",DEFAULT_WIDTH2=40;function Divider({char=DEFAULT_CHAR,title,width:widthProp}){let{width:contentWidth}=useBoxRect(),totalWidth=widthProp??(contentWidth>0?contentWidth:DEFAULT_WIDTH2);if(!title)return jsxDEV27(Box,{children:jsxDEV27(Text,{dimColor:!0,children:char.repeat(totalWidth)},void 0,!1,void 0,this)},void 0,!1,void 0,this);let titleWithPad=` ${title} `,remaining=Math.max(0,totalWidth-titleWithPad.length),leftLen=Math.floor(remaining/2),rightLen=remaining-leftLen;return jsxDEV27(Box,{children:[jsxDEV27(Text,{dimColor:!0,children:char.repeat(leftLen)},void 0,!1,void 0,this),jsxDEV27(Text,{bold:!0,children:titleWithPad},void 0,!1,void 0,this),jsxDEV27(Text,{dimColor:!0,children:char.repeat(rightLen)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{createContext as createContext8,useContext as useContext28,Children as Children2,cloneElement as cloneElement2,isValidElement as isValidElement2}from"react";import{jsxDEV as jsxDEV28}from"react/jsx-dev-runtime";function H1({children,color,...rest}){return jsxDEV28(Text,{bold:!0,color:color??"$primary",...rest,children},void 0,!1,void 0,this)}function H2({children,color,...rest}){return jsxDEV28(Text,{bold:!0,color:color??"$accent",...rest,children},void 0,!1,void 0,this)}function H3({children,color,...rest}){return jsxDEV28(Text,{color:color??"$primary",...rest,children},void 0,!1,void 0,this)}function P({children,color,...rest}){return jsxDEV28(Text,{color,...rest,children},void 0,!1,void 0,this)}function Lead({children,color,...rest}){return jsxDEV28(Text,{italic:!0,color:color??"$muted",...rest,children},void 0,!1,void 0,this)}function Muted({children,color,...rest}){return jsxDEV28(Text,{color:color??"$muted",...rest,children},void 0,!1,void 0,this)}function Small({children,color,...rest}){return jsxDEV28(Text,{dimColor:!0,color:color??"$muted",...rest,children},void 0,!1,void 0,this)}function Strong({children,color,...rest}){return jsxDEV28(Text,{bold:!0,color,...rest,children},void 0,!1,void 0,this)}function Em({children,color,...rest}){return jsxDEV28(Text,{italic:!0,color,...rest,children},void 0,!1,void 0,this)}function Code({children,color,...rest}){return jsxDEV28(Text,{backgroundColor:"$mutedbg",color,...rest,children:` ${children} `},void 0,!1,void 0,this)}function Kbd({children,color,...rest}){return jsxDEV28(Text,{backgroundColor:"$mutedbg",bold:!0,color,...rest,children:` ${children} `},void 0,!1,void 0,this)}function Blockquote({children,color}){return jsxDEV28(Box,{children:[jsxDEV28(Text,{color:color??"$muted",children:"│ "},void 0,!1,void 0,this),jsxDEV28(Box,{flexShrink:1,children:jsxDEV28(Text,{italic:!0,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function CodeBlock({children,color}){return jsxDEV28(Box,{children:[jsxDEV28(Text,{color:color??"$border",children:"│ "},void 0,!1,void 0,this),jsxDEV28(Box,{flexShrink:1,children:jsxDEV28(Text,{children},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function HR({color,...rest}){return jsxDEV28(Text,{color:color??"$border",wrap:"truncate",...rest,children:"─".repeat(200)},void 0,!1,void 0,this)}var ListContext=createContext8({level:0,ordered:!1});function UL({children}){let parent=useContext28(ListContext);return jsxDEV28(ListContext.Provider,{value:{level:parent.level+1,ordered:!1},children:jsxDEV28(Box,{flexDirection:"column",children},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function OL({children}){let parent=useContext28(ListContext),index=0,numbered=Children2.map(children,(child)=>{if(isValidElement2(child)&&child.type===LI)return index++,cloneElement2(child,{_index:index});return child});return jsxDEV28(ListContext.Provider,{value:{level:parent.level+1,ordered:!0},children:jsxDEV28(Box,{flexDirection:"column",children:numbered},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var BULLETS=["•","◦","▸","-"];function LI({children,color,_index}){let{level,ordered}=useContext28(ListContext),effectiveLevel=Math.max(level,1),indent=" ".repeat(effectiveLevel-1),bullet=BULLETS[Math.min(effectiveLevel-1,BULLETS.length-1)],marker=ordered&&_index!=null?`${_index}. `:`${bullet} `;return jsxDEV28(Box,{children:[jsxDEV28(Text,{color:color??"$muted",children:[indent,marker]},void 0,!0,void 0,this),jsxDEV28(Box,{flexShrink:1,children:jsxDEV28(Text,{color,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV29}from"react/jsx-dev-runtime";var LEVEL_SCALES={1:2,2:1.5,3:1.25,4:1,5:0.9,6:0.8},LEVEL_COLORS={1:"$primary",2:"$accent",3:"$primary",4:void 0,5:void 0,6:"$muted"};function Heading({level=1,children,color,...rest}){let scale=LEVEL_SCALES[level],defaultColor=LEVEL_COLORS[level];return jsxDEV29(Text,{bold:!0,textSize:scale,color:color??defaultColor,...rest,children},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV30}from"react/jsx-dev-runtime";function Form({onSubmit:_onSubmit,gap=1,children}){return jsxDEV30(Box,{flexDirection:"column",gap,children},void 0,!1,void 0,this)}function FormField({label,error,description,required,children}){return jsxDEV30(Box,{flexDirection:"column",children:[jsxDEV30(Text,{color:"$muted",bold:!0,children:[label,required&&jsxDEV30(Text,{color:"$error",children:" *"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),description&&jsxDEV30(Text,{color:"$disabledfg",children:description},void 0,!1,void 0,this),jsxDEV30(Box,{children},void 0,!1,void 0,this),error&&jsxDEV30(Text,{color:"$error",children:error},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as useCallback23,useEffect as useEffect18,useRef as useRef19,useState as useState16}from"react";import{jsxDEV as jsxDEV31}from"react/jsx-dev-runtime";var DEFAULT_DURATION=3000,VARIANT_COLORS2={default:"$fg",success:"$success",error:"$error",warning:"$warning",info:"$info"},VARIANT_ICONS={default:"i",success:"+",error:"x",warning:"!",info:"i"},nextToastId=0;function useToast(){let[toasts,setToasts]=useState16([]),timersRef=useRef19(new Map),dismiss=useCallback23((id)=>{setToasts((prev)=>prev.filter((t)=>t.id!==id));let timer=timersRef.current.get(id);if(timer)clearTimeout(timer),timersRef.current.delete(id)},[]),dismissAll=useCallback23(()=>{setToasts([]);for(let timer of timersRef.current.values())clearTimeout(timer);timersRef.current.clear()},[]),toast=useCallback23((options)=>{let id=`toast-${++nextToastId}`,data={id,title:options.title,description:options.description,variant:options.variant??"default",duration:options.duration??DEFAULT_DURATION};if(setToasts((prev)=>[...prev,data]),data.duration>0){let timer=setTimeout(()=>{dismiss(id)},data.duration);timersRef.current.set(id,timer)}return id},[dismiss]);return useEffect18(()=>{let timers=timersRef.current;return()=>{for(let timer of timers.values())clearTimeout(timer);timers.clear()}},[]),{toast,toasts,dismiss,dismissAll}}function ToastItem({toast,...boxProps}){let color=VARIANT_COLORS2[toast.variant],icon=VARIANT_ICONS[toast.variant];return jsxDEV31(Box,{borderStyle:"single",borderColor:"$border",paddingX:1,backgroundColor:"$popover-bg",width:"snug-content",...boxProps,children:[jsxDEV31(Text,{color,bold:!0,children:["[",icon,"]"]},void 0,!0,void 0,this),jsxDEV31(Text,{children:[" ",toast.title]},void 0,!0,void 0,this),toast.description&&jsxDEV31(Text,{color:"$muted",children:[" ",toast.description]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function ToastContainer({toasts,maxVisible=5,...boxProps}){let visible=toasts.slice(-maxVisible);return jsxDEV31(Box,{flexDirection:"column",...boxProps,children:visible.map((t)=>jsxDEV31(ToastItem,{toast:t},t.id,!1,void 0,this))},void 0,!1,void 0,this)}import{useCallback as useCallback24,useMemo as useMemo13,useState as useState17}from"react";import{jsxDEV as jsxDEV32}from"react/jsx-dev-runtime";function fuzzyMatch(query,text){let lower=text.toLowerCase(),q=query.toLowerCase(),qi=0;for(let i=0;i<lower.length&&qi<q.length;i++)if(lower[i]===q[qi])qi++;return qi===q.length}function CommandPalette({commands,onSelect,onClose,placeholder="Search commands...",maxVisible=10,isActive=!0}){let[query,setQuery]=useState17(""),[selectedIndex,setSelectedIndex]=useState17(0),filtered=useMemo13(()=>{if(!query)return commands;return commands.filter((cmd)=>fuzzyMatch(query,cmd.name)||cmd.description&&fuzzyMatch(query,cmd.description))},[commands,query]),visible=filtered.slice(0,maxVisible),clampIndex=useCallback24((idx)=>Math.max(0,Math.min(idx,filtered.length-1)),[filtered.length]);return useInput((input,key)=>{if(key.upArrow){setSelectedIndex((prev)=>clampIndex(prev-1));return}if(key.downArrow){setSelectedIndex((prev)=>clampIndex(prev+1));return}if(key.return){let cmd=filtered[selectedIndex];if(cmd)onSelect?.(cmd);return}if(key.escape){onClose?.();return}if(key.backspace||key.delete){setQuery((prev)=>{let next=prev.slice(0,-1);return setSelectedIndex(0),next});return}if(input&&input>=" "&&!key.ctrl&&!key.meta)setQuery((prev)=>{return setSelectedIndex(0),prev+input})},{isActive}),jsxDEV32(Box,{flexDirection:"column",borderStyle:"single",borderColor:"$border",backgroundColor:"$popover-bg",paddingX:1,children:[jsxDEV32(Box,{children:[jsxDEV32(Text,{color:"$primary",bold:!0,children:[">"," "]},void 0,!0,void 0,this),jsxDEV32(Text,{children:query||jsxDEV32(Text,{color:"$disabledfg",children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV32(Box,{children:jsxDEV32(Text,{color:"$border",children:"─".repeat(30)},void 0,!1,void 0,this)},void 0,!1,void 0,this),visible.length===0?jsxDEV32(Text,{color:"$disabledfg",children:"No matching commands"},void 0,!1,void 0,this):visible.map((cmd,i)=>{let isSelected=i===selectedIndex;return jsxDEV32(Box,{gap:1,children:[jsxDEV32(Text,{inverse:isSelected,color:isSelected?"$primary":"$fg",children:[isSelected?">":" "," ",cmd.name]},void 0,!0,void 0,this),cmd.description&&jsxDEV32(Text,{color:"$muted",children:cmd.description},void 0,!1,void 0,this),cmd.shortcut&&jsxDEV32(Text,{color:"$disabledfg",bold:!0,children:cmd.shortcut},void 0,!1,void 0,this)]},cmd.name,!0,void 0,this)}),filtered.length>maxVisible&&jsxDEV32(Text,{color:"$disabledfg",children:[filtered.length-maxVisible," more..."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as useCallback25,useMemo as useMemo14,useRef as useRef20,useState as useState18}from"react";import{jsxDEV as jsxDEV33}from"react/jsx-dev-runtime";function flattenTree(nodes,expanded,depth=0){let result=[];for(let node of nodes)if(result.push({node,depth}),node.children?.length&&expanded.has(node.id))result.push(...flattenTree(node.children,expanded,depth+1));return result}function collectAllIds(nodes){let ids=new Set;for(let node of nodes)if(ids.add(node.id),node.children)for(let id of collectAllIds(node.children))ids.add(id);return ids}function TreeView({data,renderNode,expandedIds:controlledExpanded,onToggle,defaultExpanded=!1,isActive=!0,indent=2,height}){let isControlled=controlledExpanded!==void 0,[uncontrolledExpanded,setUncontrolledExpanded]=useState18(()=>defaultExpanded?collectAllIds(data):new Set),expanded=isControlled?controlledExpanded:uncontrolledExpanded,cursorRef=useRef20(0),flatItems=useMemo14(()=>flattenTree(data,expanded),[data,expanded]),toggleNode=useCallback25((nodeId)=>{let wasExpanded=expanded.has(nodeId);if(!isControlled)setUncontrolledExpanded((prev)=>{let next=new Set(prev);if(wasExpanded)next.delete(nodeId);else next.add(nodeId);return next});onToggle?.(nodeId,!wasExpanded)},[expanded,isControlled,onToggle]);useInput((_input,key)=>{if(flatItems.length===0)return;let cursor=Math.min(cursorRef.current,flatItems.length-1),item=flatItems[cursor];if(!item?.node.children?.length)return;if(key.rightArrow&&!expanded.has(item.node.id))toggleNode(item.node.id);else if(key.leftArrow&&expanded.has(item.node.id))toggleNode(item.node.id)},{isActive});let handleSelect=useCallback25((index)=>{let item=flatItems[index];if(item?.node.children?.length)toggleNode(item.node.id)},[flatItems,toggleNode]),handleCursor=useCallback25((index)=>{cursorRef.current=index},[]),getKey=useCallback25((item)=>item.node.id,[]),renderTreeItem=useCallback25((item,_index,meta)=>{let hasChildren=!!item.node.children?.length,isExpanded=expanded.has(item.node.id),prefix=hasChildren?isExpanded?"v ":"> ":" ",padding=" ".repeat(item.depth*indent);return jsxDEV33(Text,{inverse:meta.isCursor,children:[padding,jsxDEV33(Text,{color:hasChildren?"$primary":"$fg",children:prefix},void 0,!1,void 0,this),renderNode?renderNode(item.node,item.depth):jsxDEV33(Text,{children:item.node.label},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},[expanded,indent,renderNode]);if(flatItems.length===0)return jsxDEV33(Box,{children:jsxDEV33(Text,{color:"$disabledfg",children:"No items"},void 0,!1,void 0,this)},void 0,!1,void 0,this);return jsxDEV33(ListView,{items:flatItems,height:height??flatItems.length,nav:!0,active:isActive,onCursor:handleCursor,onSelect:handleSelect,renderItem:renderTreeItem,getKey,estimateHeight:1},void 0,!1,void 0,this)}import React19 from"react";import{jsxDEV as jsxDEV34}from"react/jsx-dev-runtime";function Breadcrumb({items,separator="/"}){if(items.length===0)return jsxDEV34(Box,{},void 0,!1,void 0,this);return jsxDEV34(Box,{children:items.map((item,i)=>{let isLast=i===items.length-1;return jsxDEV34(React19.Fragment,{children:[i>0&&jsxDEV34(Text,{color:"$disabledfg",children:[" ",separator," "]},void 0,!0,void 0,this),jsxDEV34(Text,{color:isLast?"$fg":"$muted",bold:isLast,children:item.label},void 0,!1,void 0,this)]},i,!0,void 0,this)})},void 0,!1,void 0,this)}import React20,{createContext as createContext9,useCallback as useCallback26,useContext as useContext29,useState as useState19}from"react";import{jsxDEV as jsxDEV35}from"react/jsx-dev-runtime";var TabsContext=createContext9({activeValue:"",setActiveValue:()=>{},tabValues:[],registerTab:()=>{}});function useTabsContext(){return useContext29(TabsContext)}function Tabs({defaultValue,value:controlledValue,onChange,isActive=!0,children}){let isControlled=controlledValue!==void 0,[uncontrolledValue,setUncontrolledValue]=useState19(defaultValue??""),[tabValues,setTabValues]=useState19([]),activeValue=isControlled?controlledValue:uncontrolledValue,setActiveValue=useCallback26((val)=>{if(!isControlled)setUncontrolledValue(val);onChange?.(val)},[isControlled,onChange]),registerTab=useCallback26((val)=>{setTabValues((prev)=>prev.includes(val)?prev:[...prev,val])},[]);return useInput((_input,key)=>{if(tabValues.length===0)return;let currentIdx=tabValues.indexOf(activeValue);if(currentIdx<0)return;if(key.rightArrow||_input==="l"){let next=(currentIdx+1)%tabValues.length;setActiveValue(tabValues[next]);return}if(key.leftArrow||_input==="h"){let next=(currentIdx-1+tabValues.length)%tabValues.length;setActiveValue(tabValues[next]);return}},{isActive}),jsxDEV35(TabsContext.Provider,{value:{activeValue,setActiveValue,tabValues,registerTab},children:jsxDEV35(Box,{flexDirection:"column",flexGrow:1,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function TabList({children}){return jsxDEV35(Box,{flexDirection:"row",gap:1,borderBottom:!0,borderColor:"$border",children},void 0,!1,void 0,this)}function Tab({value,children}){let{activeValue,setActiveValue,registerTab}=useTabsContext(),isActive=activeValue===value;return React20.useEffect(()=>{registerTab(value)},[value,registerTab]),jsxDEV35(Box,{onMouseDown:()=>setActiveValue(value),children:jsxDEV35(Text,{color:isActive?"$primary":"$muted",bold:isActive,underline:isActive,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function TabPanel({value,children}){let{activeValue}=useTabsContext();if(activeValue!==value)return null;return jsxDEV35(Box,{flexDirection:"column",flexGrow:1,children},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV36}from"react/jsx-dev-runtime";function Tooltip({content,show=!1,children,...boxProps}){return jsxDEV36(Box,{flexDirection:"column",...boxProps,children:[children,show&&jsxDEV36(Box,{width:"snug-content",children:jsxDEV36(Text,{color:"$muted",dimColor:!0,children:content},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV37}from"react/jsx-dev-runtime";var DEFAULT_WIDTH3=20,DEFAULT_CHAR2="░";function Skeleton({width=DEFAULT_WIDTH3,height:heightProp,char=DEFAULT_CHAR2,shape}){let resolvedShape=shape??(heightProp&&heightProp>1?"block":"line"),height=heightProp??(resolvedShape==="circle"?1:1);if(resolvedShape==="circle"){let circleWidth=Math.min(width,6),pad=Math.max(0,Math.floor((width-circleWidth)/2));return jsxDEV37(Box,{children:jsxDEV37(Text,{color:"$muted",children:[" ".repeat(pad),char.repeat(circleWidth)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}let line=char.repeat(width),rows=Array.from({length:height},(_2,i)=>i);return jsxDEV37(Box,{flexDirection:"column",children:rows.map((i)=>jsxDEV37(Text,{color:"$muted",children:line},i,!1,void 0,this))},void 0,!1,void 0,this)}import{createContext as createContext10,useContext as useContext30,useMemo as useMemo15}from"react";import{createLogger as createLogger12}from"loggily";import{jsxDEV as jsxDEV38}from"react/jsx-dev-runtime";var log10=createLogger12("silvery:position-registry");function createPositionRegistry(){let sections=new Map;return{register(sectionIndex,itemIndex,rect){let sectionMap=sections.get(sectionIndex);if(!sectionMap)sectionMap=new Map,sections.set(sectionIndex,sectionMap);sectionMap.set(itemIndex,{rect}),log10.debug?.(`register sec=${sectionIndex} item=${itemIndex} y=${rect.y} h=${rect.height}`)},unregister(sectionIndex,itemIndex){let sectionMap=sections.get(sectionIndex);if(sectionMap){if(sectionMap.delete(itemIndex),sectionMap.size===0)sections.delete(sectionIndex);log10.debug?.(`unregister sec=${sectionIndex} item=${itemIndex}`)}},getPosition(sectionIndex,itemIndex){return sections.get(sectionIndex)?.get(itemIndex)?.rect},hasSection(sectionIndex){let sectionMap=sections.get(sectionIndex);return sectionMap!==void 0&§ionMap.size>0},getItemCount(sectionIndex){return sections.get(sectionIndex)?.size??0},findItemAtY(sectionIndex,targetY){let sectionMap=sections.get(sectionIndex);if(!sectionMap||sectionMap.size===0)return-1;for(let[idx,entry]of sectionMap){let top=entry.rect.y,bottom=top+entry.rect.height;if(targetY>=top&&targetY<bottom)return idx}let closestIdx=-1,closestDist=1/0;for(let[idx,entry]of sectionMap){let mid=entry.rect.y+entry.rect.height/2,dist=Math.abs(mid-targetY);if(dist<closestDist)closestDist=dist,closestIdx=idx}let firstEntry=sectionMap.get(0);if(firstEntry&&targetY<firstEntry.rect.y)return-1;return closestIdx},findInsertionSlot(sectionIndex,targetY){let sectionMap=sections.get(sectionIndex);if(!sectionMap||sectionMap.size===0)return 0;let sorted=Array.from(sectionMap.entries()).sort((a,b)=>a[0]-b[0]);for(let i=0;i<sorted.length;i++){let entry=sorted[i];if(targetY<entry[1].rect.y)return i}return sorted.length},clear(){sections.clear(),log10.debug?.("cleared all positions")},dump(){let lines=[];if(sections.size===0)lines.push("(no items registered)");else for(let[secIdx,sectionMap]of sections){let entries=Array.from(sectionMap.entries()).sort((a,b)=>a[0]-b[0]).map(([idx,entry])=>`${idx}:y${entry.rect.y}:h${entry.rect.height}`).join(", ");lines.push(`sec[${secIdx}]: ${entries}`)}return lines.join(`
|
|
164
|
-
`)}}}var PositionRegistryContext=createContext10(null);function PositionRegistryProvider({children}){let registry=useMemo15(()=>createPositionRegistry(),[]);return jsxDEV38(PositionRegistryContext.Provider,{value:registry,children},void 0,!1,void 0,this)}function usePositionRegistry(){return
|
|
165
|
-
`.repeat(count)},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV42}from"react/jsx-dev-runtime";function Spacer(){return jsxDEV42("silvery-box",{flexGrow:1},void 0,!1,void 0,this)}init_context();init_render_string();import{useContext as
|
|
163
|
+
`+value2.slice(cursor2),cursor2+1);return}if(key.leftArrow&&key.shift){stickyXRef.current=null;let target=key.ctrl?findPrevWordStart(value2,cursor2):Math.max(0,cursor2-1);moveCursor3(target,value2,!0),yankStateRef.current=null;return}if(key.rightArrow&&key.shift){stickyXRef.current=null;let target=key.ctrl?findNextWordEnd(value2,cursor2):Math.min(value2.length,cursor2+1);moveCursor3(target,value2,!0),yankStateRef.current=null;return}if(key.upArrow&&key.shift){if(cRow>0){let targetX=stickyXRef.current??cCol;stickyXRef.current=targetX;let targetLine=lines[cRow-1];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(targetX,targetLine.line.length),value2,!0)}yankStateRef.current=null;return}if(key.downArrow&&key.shift){if(cRow<lines.length-1){let targetX=stickyXRef.current??cCol;stickyXRef.current=targetX;let targetLine=lines[cRow+1];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(targetX,targetLine.line.length),value2,!0)}yankStateRef.current=null;return}if(key.home&&key.shift){stickyXRef.current=null;let currentLine=lines[cRow];if(currentLine)moveCursor3(currentLine.startOffset,value2,!0);yankStateRef.current=null;return}if(key.end&&key.shift){stickyXRef.current=null;let currentLine=lines[cRow];if(currentLine)moveCursor3(currentLine.startOffset+currentLine.line.length,value2,!0);yankStateRef.current=null;return}if(key.upArrow){if(cRow>0){let targetX=stickyXRef.current??cCol;stickyXRef.current=targetX;let targetLine=lines[cRow-1];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(targetX,targetLine.line.length),value2,!1)}else clearSelection();yankStateRef.current=null;return}if(key.downArrow){if(cRow<lines.length-1){let targetX=stickyXRef.current??cCol;stickyXRef.current=targetX;let targetLine=lines[cRow+1];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(targetX,targetLine.line.length),value2,!1)}else clearSelection();yankStateRef.current=null;return}if(key.ctrl&&key.home){stickyXRef.current=null,moveCursor3(0,value2,!1),yankStateRef.current=null;return}if(key.ctrl&&key.end){stickyXRef.current=null,moveCursor3(value2.length,value2,!1),yankStateRef.current=null;return}if(key.home){stickyXRef.current=null;let currentLine=lines[cRow];if(currentLine)moveCursor3(currentLine.startOffset,value2,!1);yankStateRef.current=null;return}if(key.end||key.ctrl&&input==="e"){stickyXRef.current=null;let currentLine=lines[cRow];if(currentLine)moveCursor3(currentLine.startOffset+currentLine.line.length,value2,!1);yankStateRef.current=null;return}if(key.pageUp){stickyXRef.current=null;let targetLine=lines[Math.max(0,cRow-height)];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(cCol,targetLine.line.length),value2,!1);yankStateRef.current=null;return}if(key.pageDown){stickyXRef.current=null;let targetLine=lines[Math.min(lines.length-1,cRow+height)];if(targetLine)moveCursor3(targetLine.startOffset+Math.min(cCol,targetLine.line.length),value2,!1);yankStateRef.current=null;return}if(key.ctrl&&input==="k"){stickyXRef.current=null,clearSelection();let currentLine=lines[cRow];if(!currentLine)return;let lineEnd=currentLine.startOffset+currentLine.line.length;if(cursor2<lineEnd)addToKillRing(value2.slice(cursor2,lineEnd)),updateValue(value2.slice(0,cursor2)+value2.slice(lineEnd),cursor2);else if(cursor2<value2.length)addToKillRing(value2.slice(cursor2,cursor2+1)),updateValue(value2.slice(0,cursor2)+value2.slice(cursor2+1),cursor2);return}if(key.ctrl&&input==="u"){stickyXRef.current=null,clearSelection();let currentLine=lines[cRow];if(!currentLine)return;let lineStart=currentLine.startOffset;if(cursor2>lineStart)addToKillRing(value2.slice(lineStart,cursor2)),updateValue(value2.slice(0,lineStart)+value2.slice(cursor2),lineStart);return}if((key.backspace||key.delete)&&hasSelection){stickyXRef.current=null;let del=deleteSelection();if(del)clearSelection(),updateValue(del.newValue,del.newCursor);yankStateRef.current=null;return}if(hasSelection&&input.length>=1&&input>=" "){stickyXRef.current=null,replaceSelectionWith(input),yankStateRef.current=null;return}let result=handleReadlineKey(input,key,value2,cursor2,yankStateRef.current);if(result){if(stickyXRef.current=null,clearSelection(),result.value===value2&&result.cursor===cursor2){yankStateRef.current=result.yankState;return}if(result.value!==value2){if(maxLength!==void 0&&result.value.length>maxLength&&result.value.length>value2.length){yankStateRef.current=result.yankState;return}if(stateRef.current.value=result.value,stateRef.current.cursor=result.cursor,!isControlled)setUncontrolledValue(result.value);setCursorAndScroll(result.cursor,result.value),onChange?.(result.value)}else setCursorAndScroll(result.cursor,value2);yankStateRef.current=result.yankState}},{isActive});let visibleCursorRow=cursorRow-scrollOffset,selection=selectionAnchor!==null&&selectionAnchor!==clampedCursor?{start:Math.min(selectionAnchor,clampedCursor),end:Math.max(selectionAnchor,clampedCursor)}:null,visibleLines=wrappedLines.slice(scrollOffset,scrollOffset+height),clear=useCallback17(()=>{updateValue("",0),setScrollOffset(0),setSelectionAnchor(null)},[updateValue]),setValue=useCallback17((v)=>{updateValue(v,v.length),setSelectionAnchor(null)},[updateValue]),setCursorFn=useCallback17((offset)=>{let clamped=Math.min(Math.max(0,offset),stateRef.current.value.length);setSelectionAnchor(null),selectionAnchorRef.current=null,setCursorAndScroll(clamped,stateRef.current.value)},[setCursorAndScroll]);return{value,cursor:clampedCursor,cursorRow,cursorCol,visibleCursorRow,scrollOffset,wrappedLines,visibleLines,selection,selectionAnchor,clear,setValue,getSelection:getSelectionRange,setCursor:setCursorFn}}import{jsxDEV as jsxDEV14}from"react/jsx-dev-runtime";var TextArea=forwardRef6(function({value:controlledValue,defaultValue="",onChange,onSubmit,submitKey="ctrl+enter",placeholder="",isActive:isActiveProp,height,cursorStyle:cursorStyle2="block",scrollMargin=1,disabled,maxLength,borderStyle:borderStyleProp,borderColor:borderColorProp="$border",focusBorderColor="$focusborder",testID},ref){let{focused}=useFocusable(),isActive=isActiveProp??(testID?focused:!0),{width:parentWidth}=useBoxRect(),contentWidth=borderStyleProp?Math.max(1,parentWidth-4):parentWidth,ta=useTextArea({value:controlledValue,defaultValue,onChange,onSubmit,submitKey,isActive,height,wrapWidth:contentWidth,scrollMargin,disabled,maxLength});useImperativeHandle5(ref,()=>({clear:ta.clear,getValue:()=>ta.value,setValue:ta.setValue,getSelection:ta.getSelection}));let wrappedLinesRef=useRef16(ta.wrappedLines);wrappedLinesRef.current=ta.wrappedLines;let scrollOffsetRef=useRef16(ta.scrollOffset);scrollOffsetRef.current=ta.scrollOffset;let handleMouseDown=useCallback18((e)=>{if(e.button!==0)return;let rect=e.currentTarget.scrollRect;if(!rect)return;let lines=wrappedLinesRef.current,scroll=scrollOffsetRef.current,row=e.clientY-rect.y+scroll,clampedRow=Math.min(Math.max(0,row),lines.length-1),wl=lines[clampedRow];if(!wl)return;let relativeX=e.clientX-rect.x,col=Math.min(Math.max(0,relativeX),wl.line.length),offset=Math.min(Math.max(0,wl.startOffset+col),ta.value.length);ta.setCursor(offset)},[ta]),showPlaceholder=!ta.value&&placeholder,borderProps=borderStyleProp?{borderStyle:borderStyleProp,borderColor:isActive?focusBorderColor:borderColorProp,paddingX:1}:{},borderColOffset=borderStyleProp?2:0,borderRowOffset=borderStyleProp?1:0;if(useCursor({col:ta.cursorCol+borderColOffset,row:ta.visibleCursorRow+borderRowOffset,visible:isActive&&!disabled&&!ta.selection}),showPlaceholder)return jsxDEV14(Box,{focusable:!0,testID,flexDirection:"column",height,...borderProps,children:jsxDEV14(Text,{dimColor:!0,children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this);return jsxDEV14(Box,{focusable:!0,testID,flexDirection:"column",height,...borderProps,onMouseDown:handleMouseDown,children:ta.visibleLines.map((wl,i)=>{let absoluteRow=ta.scrollOffset+i,isCursorRow=absoluteRow===ta.cursorRow,lineStart=wl.startOffset,lineEnd=lineStart+wl.line.length,hasSelectionOnLine=ta.selection&&lineStart<ta.selection.end&&lineEnd>ta.selection.start;if(disabled)return jsxDEV14(Text,{dimColor:!0,children:wl.line||" "},absoluteRow,!1,void 0,this);if(hasSelectionOnLine){let selStart=Math.max(0,ta.selection.start-lineStart),selEnd=Math.min(wl.line.length,ta.selection.end-lineStart),before=wl.line.slice(0,selStart),selected=wl.line.slice(selStart,selEnd),after=wl.line.slice(selEnd);return jsxDEV14(Text,{children:[before,jsxDEV14(Text,{inverse:!0,children:selected||(selEnd===wl.line.length&&isCursorRow?" ":"")},void 0,!1,void 0,this),after]},absoluteRow,!0,void 0,this)}if(!isCursorRow)return jsxDEV14(Text,{children:wl.line||" "},absoluteRow,!1,void 0,this);let beforeCursor=wl.line.slice(0,ta.cursorCol),atCursor=wl.line[ta.cursorCol]??" ",afterCursor=wl.line.slice(ta.cursorCol+1);return jsxDEV14(Text,{children:[beforeCursor,isActive?jsxDEV14(Text,{children:atCursor},void 0,!1,void 0,this):cursorStyle2==="block"?jsxDEV14(Text,{inverse:!0,children:atCursor},void 0,!1,void 0,this):jsxDEV14(Text,{underline:!0,children:atCursor},void 0,!1,void 0,this),afterCursor]},absoluteRow,!0,void 0,this)})},ta.scrollOffset,!1,void 0,this)});import{useCallback as useCallback19,useMemo as useMemo11,useRef as useRef17}from"react";import{jsxDEV as jsxDEV15}from"react/jsx-dev-runtime";function clampScroll2(cursorRow,currentScroll,viewportHeight){if(viewportHeight<=0)return 0;let scroll=currentScroll;if(cursorRow<scroll)scroll=cursorRow;if(cursorRow>=scroll+viewportHeight)scroll=cursorRow-viewportHeight+1;return Math.max(0,scroll)}function EditContextDisplay({value,cursor,height,wrapWidth,cursorStyle:cursorStyle2="block",placeholder="",showCursor=!0,onCursorClick}){let scrollRef=useRef17(0),effectiveWrapWidth=wrapWidth!=null&&wrapWidth>0?wrapWidth:1e4,clampedCursor=Math.min(Math.max(0,cursor),value.length),wrappedLines=useMemo11(()=>getWrappedLines(value,effectiveWrapWidth),[value,effectiveWrapWidth]),{row:cursorRow,col:cursorCol}=useMemo11(()=>cursorToRowCol(value,clampedCursor,effectiveWrapWidth),[value,clampedCursor,effectiveWrapWidth]),hasViewport=height!=null&&height>0;if(hasViewport)scrollRef.current=clampScroll2(cursorRow,scrollRef.current,height);if(!value&&placeholder){if(hasViewport)return jsxDEV15(Box,{flexDirection:"column",height,justifyContent:"center",alignItems:"center",children:jsxDEV15(Text,{dimColor:!0,children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this);return jsxDEV15(Box,{flexDirection:"column",children:jsxDEV15(Text,{dimColor:!0,children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this)}let currentScroll=hasViewport?scrollRef.current:0,visibleLines=hasViewport?wrappedLines.slice(currentScroll,currentScroll+height):wrappedLines,wrappedLinesRef=useRef17(wrappedLines);wrappedLinesRef.current=wrappedLines;let scrollRefForClick=scrollRef,handleMouseDown=useCallback19((e)=>{if(!onCursorClick||e.button!==0)return;let rect=e.currentTarget.scrollRect;if(!rect)return;let lines=wrappedLinesRef.current,scroll=scrollRefForClick.current,row=e.clientY-rect.y+scroll,clampedRow=Math.min(Math.max(0,row),lines.length-1),wl=lines[clampedRow];if(!wl)return;let relativeX=e.clientX-rect.x,col=Math.min(Math.max(0,relativeX),wl.line.length),offset=Math.min(Math.max(0,wl.startOffset+col),value.length);onCursorClick(offset)},[onCursorClick,value.length]);return jsxDEV15(Box,{flexDirection:"column",height:hasViewport?height:void 0,onMouseDown:onCursorClick?handleMouseDown:void 0,children:visibleLines.map((wl,i)=>{let absoluteRow=currentScroll+i;if(!(absoluteRow===cursorRow&&showCursor))return jsxDEV15(Text,{children:wl.line||" "},absoluteRow,!1,void 0,this);let beforeCursorText=wl.line.slice(0,cursorCol),atCursor=wl.line[cursorCol]??" ",afterCursorText=wl.line.slice(cursorCol+1);return jsxDEV15(Text,{children:[beforeCursorText,cursorStyle2==="block"?jsxDEV15(Text,{inverse:!0,children:atCursor},void 0,!1,void 0,this):jsxDEV15(Text,{underline:!0,children:atCursor},void 0,!1,void 0,this),afterCursorText]},absoluteRow,!0,void 0,this)})},currentScroll,!1,void 0,this)}import{useCallback as useCallback20}from"react";import{jsxDEV as jsxDEV16}from"react/jsx-dev-runtime";function CursorLine({beforeCursor,afterCursor,color,showCursor=!0,cursorStyle:cursorStyle2="block",onCursorClick}){let totalLength=beforeCursor.length+afterCursor.length,handleMouseDown=useCallback20((e)=>{if(!onCursorClick||e.button!==0)return;let rect=e.currentTarget.scrollRect;if(!rect)return;let relativeX=e.clientX-rect.x,offset=Math.min(Math.max(0,relativeX),totalLength);onCursorClick(offset)},[onCursorClick,totalLength]),textContent=(()=>{if(!showCursor)return jsxDEV16(Text,{color,children:[beforeCursor,afterCursor]},void 0,!0,void 0,this);let cursorChar=afterCursor[0]??" ",rest=afterCursor.slice(1);return jsxDEV16(Text,{color,children:[beforeCursor,cursorStyle2==="block"?jsxDEV16(Text,{inverse:!0,children:cursorChar},void 0,!1,void 0,this):jsxDEV16(Text,{underline:!0,children:cursorChar},void 0,!1,void 0,this),rest]},void 0,!0,void 0,this)})();if(onCursorClick)return jsxDEV16(Box,{onMouseDown:handleMouseDown,children:textContent},void 0,!1,void 0,this);return textContent}import{jsxDEV as jsxDEV17,Fragment as Fragment3}from"react/jsx-dev-runtime";function formatTitleWithHotkey(title,hotkey,color){let idx=title.toLowerCase().indexOf(hotkey.toLowerCase());if(idx>=0&&hotkey.length===1&&hotkey.toLowerCase()!==hotkey.toUpperCase()){let before=title.slice(0,idx),matched=title[idx],after=title.slice(idx+1);return jsxDEV17(Text,{color,bold:!0,children:[before,jsxDEV17(Text,{dimColor:!0,bold:!1,children:"["},void 0,!1,void 0,this),jsxDEV17(Text,{bold:!0,children:matched},void 0,!1,void 0,this),jsxDEV17(Text,{dimColor:!0,bold:!1,children:"]"},void 0,!1,void 0,this),after]},void 0,!0,void 0,this)}return jsxDEV17(Text,{color,bold:!0,children:[jsxDEV17(Text,{dimColor:!0,bold:!1,children:"["},void 0,!1,void 0,this),jsxDEV17(Text,{bold:!0,children:hotkey},void 0,!1,void 0,this),jsxDEV17(Text,{dimColor:!0,bold:!1,children:"]"},void 0,!1,void 0,this)," ",title]},void 0,!0,void 0,this)}function ModalDialog({borderColor="$border",title,titleColor,titleAlign="center",hotkey,titleRight,width,height,footer,footerAlign="center",onClose:_onClose,focusScope:_focusScope=!0,children,...boxProps}){let effectiveTitleColor=titleColor??"$primary";return jsxDEV17(Box,{flexDirection:"column",width:width??"snug-content",height,borderStyle:"double",borderColor,backgroundColor:"$popover-bg",paddingX:2,paddingY:1,userSelect:"contain",...boxProps,children:[title&&jsxDEV17(Box,{flexShrink:0,flexDirection:"column",children:[jsxDEV17(Box,{justifyContent:titleRight?"space-between":titleAlign,children:[hotkey?formatTitleWithHotkey(title,hotkey,effectiveTitleColor):jsxDEV17(Text,{color:effectiveTitleColor,bold:!0,children:title},void 0,!1,void 0,this),titleRight]},void 0,!0,void 0,this),jsxDEV17(Text,{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV17(Box,{flexDirection:"column",flexGrow:1,overflow:"hidden",children},void 0,!1,void 0,this),footer&&jsxDEV17(Fragment3,{children:[jsxDEV17(Text,{children:" "},void 0,!1,void 0,this),jsxDEV17(Box,{justifyContent:footerAlign,children:typeof footer==="string"?jsxDEV17(Text,{dimColor:!0,children:footer},void 0,!1,void 0,this):footer},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as useCallback21,useRef as useRef18,useState as useState12}from"react";import{jsxDEV as jsxDEV18}from"react/jsx-dev-runtime";function PickerList({items,selectedIndex,renderItem,getKey,emptyMessage="No items",maxVisible=10}){if(items.length===0)return jsxDEV18(Box,{flexDirection:"column",flexGrow:1,flexShrink:1,overflow:"hidden",children:jsxDEV18(Text,{dimColor:!0,children:emptyMessage},void 0,!1,void 0,this)},void 0,!1,void 0,this);let clampedIndex=Math.min(selectedIndex,items.length-1),effectiveHeight=Math.min(maxVisible,items.length);return jsxDEV18(Box,{flexDirection:"column",flexGrow:1,flexShrink:1,overflow:"hidden",children:jsxDEV18(ListView,{items,height:effectiveHeight,nav:!0,active:!1,cursorKey:clampedIndex,getKey:(item)=>getKey(item),renderItem:(item,_index,meta)=>renderItem(item,meta.isCursor)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV19}from"react/jsx-dev-runtime";function PickerDialog({title,placeholder,items,renderItem,getKey,onSelect,onCancel,onChange,initialValue="",emptyMessage="No items",maxVisible=10,width,height,footer,prompt,promptColor,isActive=!0}){let[selectedIndex,setSelectedIndex]=useState12(0),onSelectRef=useRef18(onSelect);onSelectRef.current=onSelect;let onCancelRef=useRef18(onCancel);onCancelRef.current=onCancel;let itemsRef=useRef18(items);itemsRef.current=items;let selectedIndexRef=useRef18(selectedIndex);selectedIndexRef.current=selectedIndex;let readline=useReadline({initialValue,onChange:useCallback21((value)=>{onChange?.(value),setSelectedIndex(0)},[onChange]),isActive,handleEnter:!1,handleEscape:!1,handleVerticalArrows:!1}),clampedIndex=items.length>0?Math.min(selectedIndex,items.length-1):0;if(clampedIndex!==selectedIndex)setSelectedIndex(clampedIndex);let effectiveMaxVisible=Math.min(maxVisible,items.length);useInput((_input,key)=>{if(key.escape){onCancelRef.current();return}if(key.return){let currentItems=itemsRef.current,idx=selectedIndexRef.current,item=currentItems[Math.min(idx,currentItems.length-1)];if(item)onSelectRef.current(item);return}if(key.upArrow){setSelectedIndex((i)=>Math.max(0,i-1));return}if(key.downArrow){setSelectedIndex((i)=>Math.min(i+1,Math.max(0,itemsRef.current.length-1)));return}if(key.pageUp){setSelectedIndex((i)=>Math.max(0,i-effectiveMaxVisible));return}if(key.pageDown){setSelectedIndex((i)=>Math.min(i+effectiveMaxVisible,Math.max(0,itemsRef.current.length-1)));return}},{isActive});let showPlaceholder=!readline.value&&placeholder;return jsxDEV19(ModalDialog,{title,width,height,footer,children:[jsxDEV19(Box,{flexShrink:0,flexDirection:"column",children:[jsxDEV19(Box,{children:[prompt&&jsxDEV19(Text,{color:promptColor,children:prompt},void 0,!1,void 0,this),showPlaceholder?jsxDEV19(Text,{dimColor:!0,children:placeholder},void 0,!1,void 0,this):jsxDEV19(CursorLine,{beforeCursor:readline.beforeCursor,afterCursor:readline.afterCursor,showCursor:isActive},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV19(Text,{dimColor:!0,children:"─".repeat(40)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV19(PickerList,{items,selectedIndex:clampedIndex,renderItem,getKey,emptyMessage,maxVisible},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV20}from"react/jsx-dev-runtime";function Toggle({value,onChange,label,isActive,...rest}){let{focused}=useFocusable(),active=isActive??focused;return useInput((_input,key)=>{if(_input===" "&&!key.ctrl&&!key.meta&&!key.shift)onChange(!value)},{isActive:active}),jsxDEV20(Box,{focusable:!0,...rest,children:[jsxDEV20(Text,{inverse:active,children:value?"[x]":"[ ]"},void 0,!1,void 0,this),label&&jsxDEV20(Text,{children:[" ",label]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV21}from"react/jsx-dev-runtime";function Button({label,onPress,isActive,color,...rest}){let{focused}=useFocusable(),active=isActive??focused;return useInput((_input,key)=>{if(key.return||_input===" "&&!key.ctrl&&!key.meta&&!key.shift)onPress()},{isActive:active}),jsxDEV21(Box,{focusable:!0,...rest,children:jsxDEV21(Text,{color,inverse:active,children:["[ ",label," ]"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import React11 from"react";function SearchBar(){let{isActive,query,matches,currentMatch}=useSearch();if(!isActive)return null;let matchInfo=matches.length>0?`[${currentMatch+1}/${matches.length}]`:query?"[no matches]":"";return React11.createElement(Box,{flexDirection:"row"},React11.createElement(Text,{inverse:!0},` / ${query} ${matchInfo} `))}import{useEffect as useEffect16,useState as useState13}from"react";import{jsxDEV as jsxDEV22}from"react/jsx-dev-runtime";var FRAMES={dots:["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],line:["|","/","—","\\"],arc:["◜","◠","◝","◞","◡","◟"],bounce:["⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈"]};function Spinner({type="dots",label,interval=80,...rest}){let[frameIndex,setFrameIndex]=useState13(0),frames=FRAMES[type];useEffect16(()=>{let timer=setInterval(()=>{setFrameIndex((prev)=>(prev+1)%frames.length)},interval);return()=>clearInterval(timer)},[frames.length,interval]);let frame=frames[frameIndex%frames.length];return jsxDEV22(Text,{...rest,children:[frame,label?` ${label}`:""]},void 0,!0,void 0,this)}import{useEffect as useEffect17,useState as useState14}from"react";import{jsxDEV as jsxDEV23}from"react/jsx-dev-runtime";var DEFAULT_FILL="█",DEFAULT_EMPTY="░",DEFAULT_WIDTH=30,INDETERMINATE_BLOCK_SIZE=4,INDETERMINATE_INTERVAL=100;function ProgressBar({value,width:widthProp,fillChar=DEFAULT_FILL,emptyChar=DEFAULT_EMPTY,showPercentage,label,color}){let layoutRect=useBoxRect(),contentWidth=widthProp?0:layoutRect.width,[bouncePos,setBouncePos]=useState14(0),[bounceDir,setBounceDir]=useState14(1),isDeterminate=value!==void 0,showPct=showPercentage??isDeterminate,labelWidth=label?label.length+1:0,pctWidth=showPct?5:0,availableWidth=widthProp??(contentWidth>0?contentWidth:DEFAULT_WIDTH),barWidth=Math.max(1,availableWidth-labelWidth-pctWidth);useEffect17(()=>{if(isDeterminate)return;let timer=setInterval(()=>{setBouncePos((prev)=>{let maxPos=barWidth-INDETERMINATE_BLOCK_SIZE;if(maxPos<=0)return 0;let next=prev+bounceDir;if(next>=maxPos)return setBounceDir(-1),maxPos;if(next<=0)return setBounceDir(1),0;return next})},INDETERMINATE_INTERVAL);return()=>clearInterval(timer)},[isDeterminate,barWidth,bounceDir]);let filledPart,emptyPart;if(isDeterminate){let clamped=Math.max(0,Math.min(1,value)),filled=Math.round(clamped*barWidth);filledPart=fillChar.repeat(filled),emptyPart=emptyChar.repeat(barWidth-filled)}else{let blockSize=Math.min(INDETERMINATE_BLOCK_SIZE,barWidth),pos=Math.max(0,Math.min(bouncePos,barWidth-blockSize));filledPart=emptyChar.repeat(pos)+fillChar.repeat(blockSize),emptyPart=emptyChar.repeat(barWidth-pos-blockSize)}let pct=isDeterminate?Math.round(Math.max(0,Math.min(1,value))*100):0;return jsxDEV23(Box,{children:[label&&jsxDEV23(Text,{children:[label," "]},void 0,!0,void 0,this),jsxDEV23(Text,{color,children:filledPart},void 0,!1,void 0,this),jsxDEV23(Text,{dimColor:!0,children:emptyPart},void 0,!1,void 0,this),showPct&&jsxDEV23(Text,{children:[String(pct).padStart(4),"%"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as useCallback22,useState as useState15}from"react";import{jsxDEV as jsxDEV24}from"react/jsx-dev-runtime";function findNextEnabled(items,current,direction){let len=items.length;if(len===0)return current;let next=current+direction;for(let i=0;i<len;i++){if(next<0)next=len-1;if(next>=len)next=0;if(!items[next].disabled)return next;next+=direction}return current}function findFirstEnabled(items){for(let i=0;i<items.length;i++)if(!items[i].disabled)return i;return 0}function SelectList({items,highlightedIndex:controlledIndex,onHighlight,onSelect,initialIndex,maxVisible,isActive=!0,indicator="▸ "}){let isControlled=controlledIndex!==void 0,[uncontrolledIndex,setUncontrolledIndex]=useState15(initialIndex??findFirstEnabled(items)),currentIndex=isControlled?controlledIndex:uncontrolledIndex,setIndex=useCallback22((index)=>{if(!isControlled)setUncontrolledIndex(index);onHighlight?.(index)},[isControlled,onHighlight]),handleCursor=useCallback22((nextIndex)=>{if(items[nextIndex]?.disabled){let direction=nextIndex>=currentIndex?1:-1;setIndex(findNextEnabled(items,currentIndex,direction))}else setIndex(nextIndex)},[items,currentIndex,setIndex]),handleSelect=useCallback22((index)=>{let item=items[index];if(item&&!item.disabled)onSelect?.(item,index)},[items,onSelect]),renderItem=useCallback22((item,_index,meta)=>jsxDEV24(Text,{inverse:meta.isCursor,dimColor:item.disabled,children:[indicator?meta.isCursor?indicator:" ".repeat(indicator.length):"",item.label]},item.value,!0,void 0,this),[indicator]);return jsxDEV24(ListView,{items,height:maxVisible??items.length,estimateHeight:1,nav:!0,cursorKey:currentIndex,onCursor:handleCursor,onSelect:handleSelect,active:isActive,getKey:(item)=>item.value,renderItem},void 0,!1,void 0,this)}import{useMemo as useMemo12}from"react";import{jsxDEV as jsxDEV25}from"react/jsx-dev-runtime";function computeWidths(columns,data,padding){return columns.map((col)=>{if(col.width)return col.width;if(col.grow)return 0;let cellValues=data.map((item,i)=>{if(col.render){let rendered=col.render(item,i);return typeof rendered==="string"?rendered:""}return String((col.key?item[col.key]:"")??"")});return Math.max(col.header.length,...cellValues.map((v)=>v.length))+padding})}function Table({data,columns,headerColor="$primary",showHeader=!0,padding=2}){let widths=useMemo12(()=>computeWidths(columns,data,padding),[columns,data,padding]),renderCell=(col,item,index,width)=>{let rendered=col.render?col.render(item,index):null,content=rendered!=null?typeof rendered==="string"?jsxDEV25(Text,{children:rendered},void 0,!1,void 0,this):rendered:jsxDEV25(Text,{children:String((col.key?item[col.key]:"")??"")},void 0,!1,void 0,this);return col.grow?jsxDEV25(Box,{flexGrow:1,justifyContent:col.align==="right"?"flex-end":void 0,children:content},col.header,!1,void 0,this):jsxDEV25(Box,{width,justifyContent:col.align==="right"?"flex-end":void 0,children:content},col.header,!1,void 0,this)},renderRow=(item,index)=>jsxDEV25(Box,{children:columns.map((col,colIndex)=>renderCell(col,item,index,widths[colIndex]))},void 0,!1,void 0,this),viewportHeight=Math.max(data.length,1);return jsxDEV25(Box,{flexDirection:"column",children:[showHeader&&jsxDEV25(Box,{children:columns.map((col,i)=>col.grow?jsxDEV25(Box,{flexGrow:1,children:jsxDEV25(Text,{bold:!0,color:headerColor,children:col.header},void 0,!1,void 0,this)},col.header,!1,void 0,this):jsxDEV25(Box,{width:widths[i],children:jsxDEV25(Text,{bold:!0,color:headerColor,children:col.header},void 0,!1,void 0,this)},col.header,!1,void 0,this))},void 0,!1,void 0,this),data.length>0&&jsxDEV25(ListView,{items:data,height:viewportHeight,estimateHeight:1,renderItem:renderRow},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV26}from"react/jsx-dev-runtime";var VARIANT_COLORS={default:"$fg",primary:"$primary",success:"$success",warning:"$warning",error:"$error"};function Badge({label,variant="default",color,...rest}){let resolvedColor=color??VARIANT_COLORS[variant];return jsxDEV26(Text,{color:resolvedColor,bold:!0,...rest,children:[" ",label," "]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV27}from"react/jsx-dev-runtime";var DEFAULT_CHAR="─",DEFAULT_WIDTH2=40;function Divider({char=DEFAULT_CHAR,title,width:widthProp}){let{width:contentWidth}=useBoxRect(),totalWidth=widthProp??(contentWidth>0?contentWidth:DEFAULT_WIDTH2);if(!title)return jsxDEV27(Box,{children:jsxDEV27(Text,{dimColor:!0,children:char.repeat(totalWidth)},void 0,!1,void 0,this)},void 0,!1,void 0,this);let titleWithPad=` ${title} `,remaining=Math.max(0,totalWidth-titleWithPad.length),leftLen=Math.floor(remaining/2),rightLen=remaining-leftLen;return jsxDEV27(Box,{children:[jsxDEV27(Text,{dimColor:!0,children:char.repeat(leftLen)},void 0,!1,void 0,this),jsxDEV27(Text,{bold:!0,children:titleWithPad},void 0,!1,void 0,this),jsxDEV27(Text,{dimColor:!0,children:char.repeat(rightLen)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{createContext as createContext8,useContext as useContext29,Children as Children2,cloneElement as cloneElement2,isValidElement as isValidElement2}from"react";import{jsxDEV as jsxDEV28}from"react/jsx-dev-runtime";function H1({children,color,...rest}){return jsxDEV28(Text,{bold:!0,color:color??"$primary",...rest,children},void 0,!1,void 0,this)}function H2({children,color,...rest}){return jsxDEV28(Text,{bold:!0,color:color??"$accent",...rest,children},void 0,!1,void 0,this)}function H3({children,color,...rest}){return jsxDEV28(Text,{color:color??"$primary",...rest,children},void 0,!1,void 0,this)}function P({children,color,...rest}){return jsxDEV28(Text,{color,...rest,children},void 0,!1,void 0,this)}function Lead({children,color,...rest}){return jsxDEV28(Text,{italic:!0,color:color??"$muted",...rest,children},void 0,!1,void 0,this)}function Muted({children,color,...rest}){return jsxDEV28(Text,{color:color??"$muted",...rest,children},void 0,!1,void 0,this)}function Small({children,color,...rest}){return jsxDEV28(Text,{dimColor:!0,color:color??"$muted",...rest,children},void 0,!1,void 0,this)}function Strong({children,color,...rest}){return jsxDEV28(Text,{bold:!0,color,...rest,children},void 0,!1,void 0,this)}function Em({children,color,...rest}){return jsxDEV28(Text,{italic:!0,color,...rest,children},void 0,!1,void 0,this)}function Code({children,color,...rest}){return jsxDEV28(Text,{backgroundColor:"$mutedbg",color,...rest,children:` ${children} `},void 0,!1,void 0,this)}function Kbd({children,color,...rest}){return jsxDEV28(Text,{backgroundColor:"$mutedbg",bold:!0,color,...rest,children:` ${children} `},void 0,!1,void 0,this)}function Blockquote({children,color}){return jsxDEV28(Box,{children:[jsxDEV28(Text,{color:color??"$muted",children:"│ "},void 0,!1,void 0,this),jsxDEV28(Box,{flexShrink:1,children:jsxDEV28(Text,{italic:!0,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function CodeBlock({children,color}){return jsxDEV28(Box,{children:[jsxDEV28(Text,{color:color??"$border",children:"│ "},void 0,!1,void 0,this),jsxDEV28(Box,{flexShrink:1,children:jsxDEV28(Text,{children},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function HR({color,...rest}){return jsxDEV28(Text,{color:color??"$border",wrap:"truncate",...rest,children:"─".repeat(200)},void 0,!1,void 0,this)}var ListContext=createContext8({level:0,ordered:!1});function UL({children}){let parent=useContext29(ListContext);return jsxDEV28(ListContext.Provider,{value:{level:parent.level+1,ordered:!1},children:jsxDEV28(Box,{flexDirection:"column",children},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function OL({children}){let parent=useContext29(ListContext),index=0,numbered=Children2.map(children,(child)=>{if(isValidElement2(child)&&child.type===LI)return index++,cloneElement2(child,{_index:index});return child});return jsxDEV28(ListContext.Provider,{value:{level:parent.level+1,ordered:!0},children:jsxDEV28(Box,{flexDirection:"column",children:numbered},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var BULLETS=["•","◦","▸","-"];function LI({children,color,_index}){let{level,ordered}=useContext29(ListContext),effectiveLevel=Math.max(level,1),indent=" ".repeat(effectiveLevel-1),bullet=BULLETS[Math.min(effectiveLevel-1,BULLETS.length-1)],marker=ordered&&_index!=null?`${_index}. `:`${bullet} `;return jsxDEV28(Box,{children:[jsxDEV28(Text,{color:color??"$muted",children:[indent,marker]},void 0,!0,void 0,this),jsxDEV28(Box,{flexShrink:1,children:jsxDEV28(Text,{color,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV29}from"react/jsx-dev-runtime";var LEVEL_SCALES={1:2,2:1.5,3:1.25,4:1,5:0.9,6:0.8},LEVEL_COLORS={1:"$primary",2:"$accent",3:"$primary",4:void 0,5:void 0,6:"$muted"};function Heading({level=1,children,color,...rest}){let scale=LEVEL_SCALES[level],defaultColor=LEVEL_COLORS[level];return jsxDEV29(Text,{bold:!0,textSize:scale,color:color??defaultColor,...rest,children},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV30}from"react/jsx-dev-runtime";function Form({onSubmit:_onSubmit,gap=1,children}){return jsxDEV30(Box,{flexDirection:"column",gap,children},void 0,!1,void 0,this)}function FormField({label,error,description,required,children}){return jsxDEV30(Box,{flexDirection:"column",children:[jsxDEV30(Text,{color:"$muted",bold:!0,children:[label,required&&jsxDEV30(Text,{color:"$error",children:" *"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),description&&jsxDEV30(Text,{color:"$disabledfg",children:description},void 0,!1,void 0,this),jsxDEV30(Box,{children},void 0,!1,void 0,this),error&&jsxDEV30(Text,{color:"$error",children:error},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as useCallback23,useEffect as useEffect18,useRef as useRef19,useState as useState16}from"react";import{jsxDEV as jsxDEV31}from"react/jsx-dev-runtime";var DEFAULT_DURATION=3000,VARIANT_COLORS2={default:"$fg",success:"$success",error:"$error",warning:"$warning",info:"$info"},VARIANT_ICONS={default:"i",success:"+",error:"x",warning:"!",info:"i"},nextToastId=0;function useToast(){let[toasts,setToasts]=useState16([]),timersRef=useRef19(new Map),dismiss=useCallback23((id)=>{setToasts((prev)=>prev.filter((t)=>t.id!==id));let timer=timersRef.current.get(id);if(timer)clearTimeout(timer),timersRef.current.delete(id)},[]),dismissAll=useCallback23(()=>{setToasts([]);for(let timer of timersRef.current.values())clearTimeout(timer);timersRef.current.clear()},[]),toast=useCallback23((options)=>{let id=`toast-${++nextToastId}`,data={id,title:options.title,description:options.description,variant:options.variant??"default",duration:options.duration??DEFAULT_DURATION};if(setToasts((prev)=>[...prev,data]),data.duration>0){let timer=setTimeout(()=>{dismiss(id)},data.duration);timersRef.current.set(id,timer)}return id},[dismiss]);return useEffect18(()=>{let timers=timersRef.current;return()=>{for(let timer of timers.values())clearTimeout(timer);timers.clear()}},[]),{toast,toasts,dismiss,dismissAll}}function ToastItem({toast,...boxProps}){let color=VARIANT_COLORS2[toast.variant],icon=VARIANT_ICONS[toast.variant];return jsxDEV31(Box,{borderStyle:"single",borderColor:"$border",paddingX:1,backgroundColor:"$popover-bg",width:"snug-content",...boxProps,children:[jsxDEV31(Text,{color,bold:!0,children:["[",icon,"]"]},void 0,!0,void 0,this),jsxDEV31(Text,{children:[" ",toast.title]},void 0,!0,void 0,this),toast.description&&jsxDEV31(Text,{color:"$muted",children:[" ",toast.description]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function ToastContainer({toasts,maxVisible=5,...boxProps}){let visible=toasts.slice(-maxVisible);return jsxDEV31(Box,{flexDirection:"column",...boxProps,children:visible.map((t)=>jsxDEV31(ToastItem,{toast:t},t.id,!1,void 0,this))},void 0,!1,void 0,this)}import{useCallback as useCallback24,useMemo as useMemo13,useState as useState17}from"react";import{jsxDEV as jsxDEV32}from"react/jsx-dev-runtime";function fuzzyMatch(query,text){let lower=text.toLowerCase(),q=query.toLowerCase(),qi=0;for(let i=0;i<lower.length&&qi<q.length;i++)if(lower[i]===q[qi])qi++;return qi===q.length}function CommandPalette({commands,onSelect,onClose,placeholder="Search commands...",maxVisible=10,isActive=!0}){let[query,setQuery]=useState17(""),[selectedIndex,setSelectedIndex]=useState17(0),filtered=useMemo13(()=>{if(!query)return commands;return commands.filter((cmd)=>fuzzyMatch(query,cmd.name)||cmd.description&&fuzzyMatch(query,cmd.description))},[commands,query]),visible=filtered.slice(0,maxVisible),clampIndex=useCallback24((idx)=>Math.max(0,Math.min(idx,filtered.length-1)),[filtered.length]);return useInput((input,key)=>{if(key.upArrow){setSelectedIndex((prev)=>clampIndex(prev-1));return}if(key.downArrow){setSelectedIndex((prev)=>clampIndex(prev+1));return}if(key.return){let cmd=filtered[selectedIndex];if(cmd)onSelect?.(cmd);return}if(key.escape){onClose?.();return}if(key.backspace||key.delete){setQuery((prev)=>{let next=prev.slice(0,-1);return setSelectedIndex(0),next});return}if(input&&input>=" "&&!key.ctrl&&!key.meta)setQuery((prev)=>{return setSelectedIndex(0),prev+input})},{isActive}),jsxDEV32(Box,{flexDirection:"column",borderStyle:"single",borderColor:"$border",backgroundColor:"$popover-bg",paddingX:1,children:[jsxDEV32(Box,{children:[jsxDEV32(Text,{color:"$primary",bold:!0,children:[">"," "]},void 0,!0,void 0,this),jsxDEV32(Text,{children:query||jsxDEV32(Text,{color:"$disabledfg",children:placeholder},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),jsxDEV32(Box,{children:jsxDEV32(Text,{color:"$border",children:"─".repeat(30)},void 0,!1,void 0,this)},void 0,!1,void 0,this),visible.length===0?jsxDEV32(Text,{color:"$disabledfg",children:"No matching commands"},void 0,!1,void 0,this):visible.map((cmd,i)=>{let isSelected=i===selectedIndex;return jsxDEV32(Box,{gap:1,children:[jsxDEV32(Text,{inverse:isSelected,color:isSelected?"$primary":"$fg",children:[isSelected?">":" "," ",cmd.name]},void 0,!0,void 0,this),cmd.description&&jsxDEV32(Text,{color:"$muted",children:cmd.description},void 0,!1,void 0,this),cmd.shortcut&&jsxDEV32(Text,{color:"$disabledfg",bold:!0,children:cmd.shortcut},void 0,!1,void 0,this)]},cmd.name,!0,void 0,this)}),filtered.length>maxVisible&&jsxDEV32(Text,{color:"$disabledfg",children:[filtered.length-maxVisible," more..."]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as useCallback25,useMemo as useMemo14,useRef as useRef20,useState as useState18}from"react";import{jsxDEV as jsxDEV33}from"react/jsx-dev-runtime";function flattenTree(nodes,expanded,depth=0){let result=[];for(let node of nodes)if(result.push({node,depth}),node.children?.length&&expanded.has(node.id))result.push(...flattenTree(node.children,expanded,depth+1));return result}function collectAllIds(nodes){let ids=new Set;for(let node of nodes)if(ids.add(node.id),node.children)for(let id of collectAllIds(node.children))ids.add(id);return ids}function TreeView({data,renderNode,expandedIds:controlledExpanded,onToggle,defaultExpanded=!1,isActive=!0,indent=2,height}){let isControlled=controlledExpanded!==void 0,[uncontrolledExpanded,setUncontrolledExpanded]=useState18(()=>defaultExpanded?collectAllIds(data):new Set),expanded=isControlled?controlledExpanded:uncontrolledExpanded,cursorRef=useRef20(0),flatItems=useMemo14(()=>flattenTree(data,expanded),[data,expanded]),toggleNode=useCallback25((nodeId)=>{let wasExpanded=expanded.has(nodeId);if(!isControlled)setUncontrolledExpanded((prev)=>{let next=new Set(prev);if(wasExpanded)next.delete(nodeId);else next.add(nodeId);return next});onToggle?.(nodeId,!wasExpanded)},[expanded,isControlled,onToggle]);useInput((_input,key)=>{if(flatItems.length===0)return;let cursor=Math.min(cursorRef.current,flatItems.length-1),item=flatItems[cursor];if(!item?.node.children?.length)return;if(key.rightArrow&&!expanded.has(item.node.id))toggleNode(item.node.id);else if(key.leftArrow&&expanded.has(item.node.id))toggleNode(item.node.id)},{isActive});let handleSelect=useCallback25((index)=>{let item=flatItems[index];if(item?.node.children?.length)toggleNode(item.node.id)},[flatItems,toggleNode]),handleCursor=useCallback25((index)=>{cursorRef.current=index},[]),getKey=useCallback25((item)=>item.node.id,[]),renderTreeItem=useCallback25((item,_index,meta)=>{let hasChildren=!!item.node.children?.length,isExpanded=expanded.has(item.node.id),prefix=hasChildren?isExpanded?"v ":"> ":" ",padding=" ".repeat(item.depth*indent);return jsxDEV33(Text,{inverse:meta.isCursor,children:[padding,jsxDEV33(Text,{color:hasChildren?"$primary":"$fg",children:prefix},void 0,!1,void 0,this),renderNode?renderNode(item.node,item.depth):jsxDEV33(Text,{children:item.node.label},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},[expanded,indent,renderNode]);if(flatItems.length===0)return jsxDEV33(Box,{children:jsxDEV33(Text,{color:"$disabledfg",children:"No items"},void 0,!1,void 0,this)},void 0,!1,void 0,this);return jsxDEV33(ListView,{items:flatItems,height:height??flatItems.length,nav:!0,active:isActive,onCursor:handleCursor,onSelect:handleSelect,renderItem:renderTreeItem,getKey,estimateHeight:1},void 0,!1,void 0,this)}import React19 from"react";import{jsxDEV as jsxDEV34}from"react/jsx-dev-runtime";function Breadcrumb({items,separator="/"}){if(items.length===0)return jsxDEV34(Box,{},void 0,!1,void 0,this);return jsxDEV34(Box,{children:items.map((item,i)=>{let isLast=i===items.length-1;return jsxDEV34(React19.Fragment,{children:[i>0&&jsxDEV34(Text,{color:"$disabledfg",children:[" ",separator," "]},void 0,!0,void 0,this),jsxDEV34(Text,{color:isLast?"$fg":"$muted",bold:isLast,children:item.label},void 0,!1,void 0,this)]},i,!0,void 0,this)})},void 0,!1,void 0,this)}import React20,{createContext as createContext9,useCallback as useCallback26,useContext as useContext30,useState as useState19}from"react";import{jsxDEV as jsxDEV35}from"react/jsx-dev-runtime";var TabsContext=createContext9({activeValue:"",setActiveValue:()=>{},tabValues:[],registerTab:()=>{}});function useTabsContext(){return useContext30(TabsContext)}function Tabs({defaultValue,value:controlledValue,onChange,isActive=!0,children}){let isControlled=controlledValue!==void 0,[uncontrolledValue,setUncontrolledValue]=useState19(defaultValue??""),[tabValues,setTabValues]=useState19([]),activeValue=isControlled?controlledValue:uncontrolledValue,setActiveValue=useCallback26((val)=>{if(!isControlled)setUncontrolledValue(val);onChange?.(val)},[isControlled,onChange]),registerTab=useCallback26((val)=>{setTabValues((prev)=>prev.includes(val)?prev:[...prev,val])},[]);return useInput((_input,key)=>{if(tabValues.length===0)return;let currentIdx=tabValues.indexOf(activeValue);if(currentIdx<0)return;if(key.rightArrow||_input==="l"){let next=(currentIdx+1)%tabValues.length;setActiveValue(tabValues[next]);return}if(key.leftArrow||_input==="h"){let next=(currentIdx-1+tabValues.length)%tabValues.length;setActiveValue(tabValues[next]);return}},{isActive}),jsxDEV35(TabsContext.Provider,{value:{activeValue,setActiveValue,tabValues,registerTab},children:jsxDEV35(Box,{flexDirection:"column",flexGrow:1,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function TabList({children}){return jsxDEV35(Box,{flexDirection:"row",gap:1,borderBottom:!0,borderColor:"$border",children},void 0,!1,void 0,this)}function Tab({value,children}){let{activeValue,setActiveValue,registerTab}=useTabsContext(),isActive=activeValue===value;return React20.useEffect(()=>{registerTab(value)},[value,registerTab]),jsxDEV35(Box,{onMouseDown:()=>setActiveValue(value),children:jsxDEV35(Text,{color:isActive?"$primary":"$muted",bold:isActive,underline:isActive,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function TabPanel({value,children}){let{activeValue}=useTabsContext();if(activeValue!==value)return null;return jsxDEV35(Box,{flexDirection:"column",flexGrow:1,children},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV36}from"react/jsx-dev-runtime";function Tooltip({content,show=!1,children,...boxProps}){return jsxDEV36(Box,{flexDirection:"column",...boxProps,children:[children,show&&jsxDEV36(Box,{width:"snug-content",children:jsxDEV36(Text,{color:"$muted",dimColor:!0,children:content},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as jsxDEV37}from"react/jsx-dev-runtime";var DEFAULT_WIDTH3=20,DEFAULT_CHAR2="░";function Skeleton({width=DEFAULT_WIDTH3,height:heightProp,char=DEFAULT_CHAR2,shape}){let resolvedShape=shape??(heightProp&&heightProp>1?"block":"line"),height=heightProp??(resolvedShape==="circle"?1:1);if(resolvedShape==="circle"){let circleWidth=Math.min(width,6),pad=Math.max(0,Math.floor((width-circleWidth)/2));return jsxDEV37(Box,{children:jsxDEV37(Text,{color:"$muted",children:[" ".repeat(pad),char.repeat(circleWidth)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}let line=char.repeat(width),rows=Array.from({length:height},(_2,i)=>i);return jsxDEV37(Box,{flexDirection:"column",children:rows.map((i)=>jsxDEV37(Text,{color:"$muted",children:line},i,!1,void 0,this))},void 0,!1,void 0,this)}import{createContext as createContext10,useContext as useContext31,useMemo as useMemo15}from"react";import{createLogger as createLogger12}from"loggily";import{jsxDEV as jsxDEV38}from"react/jsx-dev-runtime";var log10=createLogger12("silvery:position-registry");function createPositionRegistry(){let sections=new Map;return{register(sectionIndex,itemIndex,rect){let sectionMap=sections.get(sectionIndex);if(!sectionMap)sectionMap=new Map,sections.set(sectionIndex,sectionMap);sectionMap.set(itemIndex,{rect}),log10.debug?.(`register sec=${sectionIndex} item=${itemIndex} y=${rect.y} h=${rect.height}`)},unregister(sectionIndex,itemIndex){let sectionMap=sections.get(sectionIndex);if(sectionMap){if(sectionMap.delete(itemIndex),sectionMap.size===0)sections.delete(sectionIndex);log10.debug?.(`unregister sec=${sectionIndex} item=${itemIndex}`)}},getPosition(sectionIndex,itemIndex){return sections.get(sectionIndex)?.get(itemIndex)?.rect},hasSection(sectionIndex){let sectionMap=sections.get(sectionIndex);return sectionMap!==void 0&§ionMap.size>0},getItemCount(sectionIndex){return sections.get(sectionIndex)?.size??0},findItemAtY(sectionIndex,targetY){let sectionMap=sections.get(sectionIndex);if(!sectionMap||sectionMap.size===0)return-1;for(let[idx,entry]of sectionMap){let top=entry.rect.y,bottom=top+entry.rect.height;if(targetY>=top&&targetY<bottom)return idx}let closestIdx=-1,closestDist=1/0;for(let[idx,entry]of sectionMap){let mid=entry.rect.y+entry.rect.height/2,dist=Math.abs(mid-targetY);if(dist<closestDist)closestDist=dist,closestIdx=idx}let firstEntry=sectionMap.get(0);if(firstEntry&&targetY<firstEntry.rect.y)return-1;return closestIdx},findInsertionSlot(sectionIndex,targetY){let sectionMap=sections.get(sectionIndex);if(!sectionMap||sectionMap.size===0)return 0;let sorted=Array.from(sectionMap.entries()).sort((a,b)=>a[0]-b[0]);for(let i=0;i<sorted.length;i++){let entry=sorted[i];if(targetY<entry[1].rect.y)return i}return sorted.length},clear(){sections.clear(),log10.debug?.("cleared all positions")},dump(){let lines=[];if(sections.size===0)lines.push("(no items registered)");else for(let[secIdx,sectionMap]of sections){let entries=Array.from(sectionMap.entries()).sort((a,b)=>a[0]-b[0]).map(([idx,entry])=>`${idx}:y${entry.rect.y}:h${entry.rect.height}`).join(", ");lines.push(`sec[${secIdx}]: ${entries}`)}return lines.join(`
|
|
164
|
+
`)}}}var PositionRegistryContext=createContext10(null);function PositionRegistryProvider({children}){let registry=useMemo15(()=>createPositionRegistry(),[]);return jsxDEV38(PositionRegistryContext.Provider,{value:registry,children},void 0,!1,void 0,this)}function usePositionRegistry(){return useContext31(PositionRegistryContext)}import{useEffect as useEffect19,useRef as useRef21}from"react";function useGridPosition(sectionIndex,itemIndex){let registry=usePositionRegistry(),sectionRef=useRef21(sectionIndex),itemRef=useRef21(itemIndex);sectionRef.current=sectionIndex,itemRef.current=itemIndex,useScrollRect((rect)=>{registry?.register(sectionRef.current,itemRef.current,rect)}),useEffect19(()=>{return()=>{registry?.unregister(sectionRef.current,itemRef.current)}},[registry]),useEffect19(()=>{return()=>{registry?.unregister(sectionIndex,itemIndex)}},[registry,sectionIndex,itemIndex])}import{jsxDEV as jsxDEV39}from"react/jsx-dev-runtime";function GridCell({sectionIndex,itemIndex,children}){return useGridPosition(sectionIndex,itemIndex),jsxDEV39(Box,{children},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV40}from"react/jsx-dev-runtime";function Transform({transform,children}){if(children===void 0||children===null)return null;return jsxDEV40("silvery-text",{internal_transform:transform,children},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV41}from"react/jsx-dev-runtime";function Newline({count=1}){return jsxDEV41("silvery-text",{children:`
|
|
165
|
+
`.repeat(count)},void 0,!1,void 0,this)}import{jsxDEV as jsxDEV42}from"react/jsx-dev-runtime";function Spacer(){return jsxDEV42("silvery-box",{flexGrow:1},void 0,!1,void 0,this)}init_context();init_render_string();import{useContext as useContext32,useRef as useRef22}from"react";import{jsxDEV as jsxDEV43}from"react/jsx-dev-runtime";function Static({items,children,style:style2}){let stdoutCtx=useContext32(StdoutContext),term2=useContext32(TermContext),promoteScrollback=stdoutCtx?.promoteScrollback,renderedRef=useRef22([]),promotedCountRef=useRef22(0),prevCount=renderedRef.current.length;if(items.length>prevCount)for(let i=prevCount;i<items.length;i++)renderedRef.current.push(children(items[i],i));else if(items.length<prevCount){if(renderedRef.current.length=items.length,promotedCountRef.current>items.length)promotedCountRef.current=items.length}if(promoteScrollback&&isLayoutEngineInitialized()){let renderWidth=term2?.cols??80,prevPromoted=promotedCountRef.current;for(let i=prevPromoted;i<renderedRef.current.length;i++){let element=renderedRef.current[i];if(!element)continue;try{let lines=renderStringSync(element,{width:renderWidth,plain:!1,trimTrailingWhitespace:!0,trimEmptyLines:!1}).split(`
|
|
166
166
|
`),frozenContent=lines.map((line)=>`${line}\x1B[K`).join(`\r
|
|
167
167
|
`)+`\r
|
|
168
168
|
`;promoteScrollback(frozenContent,lines.length)}catch{promoteScrollback(`[static item ${i}]\x1B[K\r
|
|
169
169
|
`,1)}}promotedCountRef.current=renderedRef.current.length;let liveElements=renderedRef.current.slice(promotedCountRef.current);if(liveElements.length===0)return jsxDEV43("silvery-box",{flexDirection:"column",...style2},void 0,!1,void 0,this);return jsxDEV43("silvery-box",{flexDirection:"column",...style2,children:liveElements},void 0,!1,void 0,this)}return jsxDEV43("silvery-box",{flexDirection:"column",...style2,children:renderedRef.current},void 0,!1,void 0,this)}import*as fs from"node:fs";import React21,{Component as Component2}from"react";function parseStackLine(line){let trimmed=line.trim();if(!trimmed.startsWith("at "))return null;let rest=trimmed.slice(3),match1=rest.match(/^(.+?)\s+\((.+?):(\d+):(\d+)\)$/);if(match1)return{function:match1[1],file:match1[2],line:Number(match1[3]),column:Number(match1[4])};let match2=rest.match(/^(.+?):(\d+):(\d+)$/);if(match2)return{file:match2[1],line:Number(match2[2]),column:Number(match2[3])};return null}function cleanupPath(filePath){if(!filePath)return filePath;let p=filePath,cwdPath=process.cwd();p=p.replace(/^file:\/\//,"");for(let prefix of[cwdPath,`/private${cwdPath}`])if(p.startsWith(`${prefix}/`)){p=p.slice(prefix.length+1);break}return p}function getCodeExcerpt(filePath,line){try{if(!fs.existsSync(filePath))return null;let lines=fs.readFileSync(filePath,"utf8").split(`
|
|
170
170
|
`),start=Math.max(0,line-4),end=Math.min(lines.length,line+3),result=[];for(let i=start;i<end;i++)result.push({line:i+1,value:(lines[i]??"").replace(/\t/g," ")});return result}catch{return null}}class SilveryErrorBoundary extends Component2{state={error:null};static getDerivedStateFromError(error){return{error}}componentDidCatch(error){this.props.onError?.(error)}render(){if(this.state.error){let err=this.state.error,stack=err.stack?err.stack.split(`
|
|
171
|
-
`).slice(1):[],origin=stack.length>0?parseStackLine(stack[0]):null,filePath=cleanupPath(origin?.file),excerpt=null,lineWidth=0;if(filePath&&origin?.line){if(excerpt=getCodeExcerpt(filePath,origin.line),excerpt)for(let{line}of excerpt)lineWidth=Math.max(lineWidth,String(line).length)}let children=[];if(children.push(React21.createElement("silvery-box",{key:"header"},React21.createElement("silvery-text",{backgroundColor:"red",color:"white"}," ERROR "),React21.createElement("silvery-text",{},` ${err.message}`))),filePath&&origin)children.push(React21.createElement("silvery-box",{key:"location",marginTop:1},React21.createElement("silvery-text",{dimColor:!0},`${filePath}:${origin.line}:${origin.column}`)));if(excerpt&&origin){let codeLines=excerpt.map(({line,value})=>{let lineNum=String(line).padStart(lineWidth," ");return React21.createElement("silvery-box",{key:`code-${line}`},React21.createElement("silvery-text",{dimColor:line!==origin.line,backgroundColor:line===origin.line?"red":void 0,color:line===origin.line?"white":void 0},`${lineNum}:`),React21.createElement("silvery-text",{backgroundColor:line===origin.line?"red":void 0,color:line===origin.line?"white":void 0},` ${value}`))});children.push(React21.createElement("silvery-box",{key:"code",marginTop:1,flexDirection:"column"},...codeLines))}if(stack.length>0){let stackLines=stack.map((line,i)=>{let parsed=parseStackLine(line);if(!parsed)return React21.createElement("silvery-box",{key:`stack-${i}`},React21.createElement("silvery-text",{dimColor:!0},`- ${line.trim()}`));let cleanFile=cleanupPath(parsed.file);return React21.createElement("silvery-box",{key:`stack-${i}`},React21.createElement("silvery-text",{dimColor:!0},"- "),React21.createElement("silvery-text",{dimColor:!0,bold:!0},parsed.function??""),React21.createElement("silvery-text",{dimColor:!0,color:"gray"},` (${cleanFile??""}:${parsed.line}:${parsed.column})`))});children.push(React21.createElement("silvery-box",{key:"stack",marginTop:1,flexDirection:"column"},...stackLines))}return React21.createElement("silvery-box",{flexDirection:"column",padding:1},...children)}return this.props.children}}function encodeKittyImage(pngData,opts){let b64=pngData.toString("base64"),chunks=splitIntoChunks(b64,4096);if(chunks.length===0)return`\x1B_G${buildParams(opts,0)};\x1B\\`;if(chunks.length===1)return`\x1B_G${buildParams(opts,0)};${chunks[0]}\x1B\\`;let parts=[];parts.push(`\x1B_G${buildParams(opts,1)};${chunks[0]}\x1B\\`);for(let i=1;i<chunks.length-1;i++)parts.push(`\x1B_Gm=1;${chunks[i]}\x1B\\`);return parts.push(`\x1B_Gm=0;${chunks[chunks.length-1]}\x1B\\`),parts.join("")}function deleteKittyImage(id){return`\x1B_Ga=d,d=i,i=${id}\x1B\\`}function isKittyGraphicsSupported(){let term2=process.env.TERM??"",termProgram=process.env.TERM_PROGRAM??"";if(term2==="xterm-kitty"||termProgram==="kitty")return!0;if(termProgram==="WezTerm")return!0;if(termProgram==="ghostty")return!0;if(termProgram==="konsole")return!0;return!1}function buildParams(opts,more){let parts=["a=T","f=100",`m=${more}`];if(opts?.width!=null)parts.push(`s=${opts.width}`);if(opts?.height!=null)parts.push(`v=${opts.height}`);if(opts?.id!=null)parts.push(`i=${opts.id}`);return parts.join(",")}function splitIntoChunks(str,size){if(str.length===0)return[];let chunks=[];for(let i=0;i<str.length;i+=size)chunks.push(str.slice(i,i+size));return chunks}function encodeSixel(imageData){let{width,height,data}=imageData;if(width===0||height===0||data.length===0)return"\x1BPq\x1B\\";let palette=new Map,pixelColors=new Uint16Array(width*height),nextColorIndex=1;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let offset=(y*width+x)*4,r=data[offset],g=data[offset+1],b=data[offset+2];if(data[offset+3]<128)continue;let qr=r>>2&63,qg=g>>2&63,qb=b>>2&63,key=`${qr},${qg},${qb}`,idx=palette.get(key);if(idx==null)if(nextColorIndex>=256)idx=1;else idx=nextColorIndex++,palette.set(key,idx);pixelColors[y*width+x]=idx}let parts=[];parts.push(`"1;1;${width};${height}`);for(let[key,idx]of palette){let[qr,qg,qb]=key.split(",").map(Number),rPct=Math.round(qr/63*100),gPct=Math.round(qg/63*100),bPct=Math.round(qb/63*100);parts.push(`#${idx};2;${rPct};${gPct};${bPct}`)}for(let bandY=0;bandY<height;bandY+=6){if(bandY>0)parts.push("-");let bandColors=new Set;for(let dy=0;dy<6&&bandY+dy<height;dy++)for(let x=0;x<width;x++){let ci=pixelColors[(bandY+dy)*width+x];if(ci>0)bandColors.add(ci)}let first=!0;for(let colorIdx of bandColors){if(!first)parts.push("$");first=!1,parts.push(`#${colorIdx}`);for(let x=0;x<width;x++){let sixelBits=0;for(let dy=0;dy<6;dy++){let y=bandY+dy;if(y<height&&pixelColors[y*width+x]===colorIdx)sixelBits|=1<<dy}parts.push(String.fromCharCode(sixelBits+63))}}}return`\x1BPq${parts.join("")}\x1B\\`}function isSixelSupported(){let term2=process.env.TERM??"",termProgram=process.env.TERM_PROGRAM??"";if(termProgram==="mlterm"||term2.startsWith("mlterm"))return!0;if(termProgram==="foot"||term2==="foot"||term2==="foot-extra")return!0;if(termProgram==="WezTerm")return!0;if(termProgram==="mintty")return!0;return!1}init_context();import{readFileSync as readFileSync2}from"node:fs";import{useContext as
|
|
172
|
-
`);return jsxDEV44("silvery-box",{width:effectiveWidth,height:effectiveHeight,children:jsxDEV44("silvery-text",{children:spaceContent},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function isFocusable(node){if(node.hidden)return!1;let props=node.props;return Boolean(props.focusable)&&props.display!=="none"}function isFocusScope(node){let props=node.props;return Boolean(props.focusScope)}function findFocusableAncestor(node){let current=node;while(current){if(isFocusable(current))return current;current=current.parent}return null}function getTabOrder2(root,scope){let result=[],walkRoot=scope??root;function walk(node){if(node.hidden)return;if(node.props.display==="none")return;if(node!==walkRoot&&isFocusScope(node)){if(isFocusable(node))result.push(node);return}if(isFocusable(node))result.push(node);for(let child of node.children)walk(child)}return walk(walkRoot),result}function findEnclosingScope(node){let current=node;while(current){if(isFocusScope(current)){let props=current.props;return typeof props.testID==="string"?props.testID:null}current=current.parent}return null}function findByTestID(root,testID){if(root.props.testID===testID)return root;for(let child of root.children){let found=findByTestID(child,testID);if(found)return found}return null}function rectCenter(rect){return{cx:rect.x+rect.width/2,cy:rect.y+rect.height/2}}function isInCone(source,candidate,direction){let dx=candidate.cx-source.cx,dy=candidate.cy-source.cy;switch(direction){case"up":if(dy>=0)return!1;return Math.abs(dx)<=Math.abs(dy);case"down":if(dy<=0)return!1;return Math.abs(dx)<=Math.abs(dy);case"left":if(dx>=0)return!1;return Math.abs(dy)<=Math.abs(dx);case"right":if(dx<=0)return!1;return Math.abs(dy)<=Math.abs(dx)}}function distance(a,b){let dx=a.cx-b.cx,dy=a.cy-b.cy;return Math.sqrt(dx*dx+dy*dy)}function findSpatialTarget(from,direction,candidates,layoutFn){let sourceRect=layoutFn(from);if(!sourceRect)return null;let source=rectCenter(sourceRect),best=null,bestDist=1/0;for(let candidate of candidates){if(candidate===from)continue;let candidateRect=layoutFn(candidate);if(!candidateRect)continue;let target=rectCenter(candidateRect);if(!isInCone(source,target,direction))continue;let dist=distance(source,target);if(dist<bestDist)bestDist=dist,best=candidate}return best}function getExplicitFocusLink(node,direction){let props=node.props,propName=`nextFocus${direction.charAt(0).toUpperCase()}${direction.slice(1)}`,value=props[propName];return typeof value==="string"?value:null}function ensureInteractiveState(node){if(!node.interactiveState)node.interactiveState={hovered:!1,armed:!1,selected:!1,focused:!1,dropTarget:!1};return node.interactiveState}function setHovered(node,value){let state=ensureInteractiveState(node);if(state.hovered===value)return!1;return state.hovered=value,!0}function setArmed(node,value){let state=ensureInteractiveState(node);if(state.armed===value)return!1;return state.armed=value,!0}function setFocused(node,value){let state=ensureInteractiveState(node);if(state.focused===value)return!1;return state.focused=value,!0}function createFocusManager(options){let onFocusChange=options?.onFocusChange,activeElement=null,activeId=null,previousElement=null,previousId=null,focusOrigin=null,scopeStack=[],scopeMemory={},activeScopeId=null,hookFocusables=[],hookFocusEnabled=!0,listeners=new Set,snapshot=null,notifyCount=0;function notify2(){snapshot=null,notifyCount++;for(let listener of listeners)listener()}function getTestID(node){let props=node.props;return typeof props.testID==="string"?props.testID:null}function focus(node,origin="programmatic"){if(activeElement===node){if(focusOrigin!==origin)focusOrigin=origin,notify2();return}let oldElement=activeElement;if(previousElement=activeElement,previousId=activeId,activeElement=node,activeId=getTestID(node),focusOrigin=origin,oldElement)setFocused(oldElement,!1);if(setFocused(node,!0),activeId&&scopeStack.length>0)scopeMemory[scopeStack[scopeStack.length-1]]=activeId;notify2(),onFocusChange?.(oldElement,node,origin)}function focusById(id,root,origin="programmatic"){let node=findByTestID(root,id);if(node){let focusable=findFocusableAncestor(node);if(focusable){focus(focusable,origin);return}}if(activeId===id&&!activeElement)return;let oldElement=activeElement;if(previousElement=activeElement,previousId=activeId,activeElement=null,activeId=id,focusOrigin=origin,oldElement)setFocused(oldElement,!1);notify2(),onFocusChange?.(oldElement,null,origin)}function blur(){if(!activeElement&&!activeId)return;let oldElement=activeElement;if(previousElement=activeElement,previousId=activeId,activeElement=null,activeId=null,focusOrigin=null,oldElement)setFocused(oldElement,!1);notify2(),onFocusChange?.(oldElement,null,null)}function focusVirtualId(id,origin="programmatic"){if(activeId===id&&!activeElement){if(focusOrigin!==origin)focusOrigin=origin,notify2();return}let oldElement=activeElement;if(previousElement=activeElement,previousId=activeId,activeElement=null,activeId=id,focusOrigin=origin,oldElement)setFocused(oldElement,!1);notify2(),onFocusChange?.(oldElement,null,origin)}function unregisterHookFocusable(id){let idx=hookFocusables.findIndex((f)=>f.id===id);if(idx===-1)return;if(hookFocusables.splice(idx,1),activeId===id&&!activeElement){previousId=activeId,activeId=null,focusOrigin=null,notify2(),onFocusChange?.(null,null,null);return}notify2()}function registerHookFocusable(id,opts={}){let{isActive=!0,autoFocus=!1}=opts,existing=hookFocusables.findIndex((f)=>f.id===id);if(existing!==-1){if(hookFocusables[existing].isActive===isActive&&!autoFocus)return()=>unregisterHookFocusable(id);hookFocusables[existing]={id,isActive}}else hookFocusables.push({id,isActive});if(autoFocus&&isActive&&activeId===null)focusVirtualId(id,"programmatic");else notify2();return()=>unregisterHookFocusable(id)}function setHookFocusableActive(id,isActive){let entry=hookFocusables.find((f)=>f.id===id);if(!entry)return;if(entry.isActive===isActive)return;if(entry.isActive=isActive,!isActive&&activeId===id&&!activeElement){previousId=activeId,activeId=null,focusOrigin=null,notify2(),onFocusChange?.(null,null,null);return}notify2()}function setHookFocusEnabled(enabled){if(hookFocusEnabled===enabled)return;hookFocusEnabled=enabled,notify2()}function subtreeContains(subtreeRoot,target){if(subtreeRoot===target)return!0;for(let child of subtreeRoot.children)if(subtreeContains(child,target))return!0;return!1}function handleSubtreeRemoved(removedRoot){let changed=!1;if(activeElement&&subtreeContains(removedRoot,activeElement)){let oldElement=activeElement;setFocused(oldElement,!1),previousElement=activeElement,previousId=activeId,activeElement=null,activeId=null,focusOrigin=null,changed=!0,onFocusChange?.(oldElement,null,null)}if(previousElement&&subtreeContains(removedRoot,previousElement))previousElement=null,previousId=null,changed=!0;if(changed)notify2()}function enterScope(scopeId){scopeStack.push(scopeId),notify2()}function exitScope(){if(scopeStack.pop()===void 0)return;notify2()}function activateScope(scopeId,root){if(activeScopeId&&activeId)scopeMemory[activeScopeId]=activeId;activeScopeId=scopeId;let countBefore=notifyCount,remembered=scopeMemory[scopeId];if(remembered)focusById(remembered,root,"programmatic");else{let scopeNode=findByTestID(root,scopeId);if(scopeNode){let order=getTabOrder2(root,scopeNode);if(order.length>0)focus(order[0],"programmatic")}}if(notifyCount===countBefore)notify2()}function getFocusPath(root){if(!activeElement)return[];let path=[],current=activeElement;while(current&¤t!==root.parent){let id=getTestID(current);if(id)path.push(id);current=current.parent}return path}function hasFocusWithin(root,testID){if(!activeElement)return!1;let target=findByTestID(root,testID);if(!target)return!1;let current=activeElement;while(current){if(current===target)return!0;current=current.parent}return!1}function resolveScope(root,explicitScope){if(explicitScope)return explicitScope;if(scopeStack.length>0){let scopeId=scopeStack[scopeStack.length-1],scopeNode=findByTestID(root,scopeId);if(scopeNode)return scopeNode}return}function buildTabEntries(root,scope){let effectiveScope=resolveScope(root,scope),nodes=getTabOrder2(root,effectiveScope),entries=nodes.map((node)=>({kind:"node",node}));if(!effectiveScope&&hookFocusEnabled){let treeIds=new Set(nodes.map((n)=>n.props.testID).filter(Boolean));for(let entry of hookFocusables)if(entry.isActive&&!treeIds.has(entry.id))entries.push({kind:"hook",id:entry.id})}return entries}function currentTabIndex(entries){if(activeElement){for(let i=0;i<entries.length;i++){let e=entries[i];if(e.kind==="node"&&e.node===activeElement)return i}return-1}if(activeId)for(let i=0;i<entries.length;i++){let e=entries[i];if(e.kind==="hook"&&e.id===activeId)return i}return-1}function focusTabEntry(entry,origin){if(entry.kind==="node")focus(entry.node,origin);else focusVirtualId(entry.id,origin)}function focusNext(root,scope){let entries=buildTabEntries(root,scope);if(entries.length===0)return;let currentIndex=currentTabIndex(entries);if(currentIndex===-1){focusTabEntry(entries[0],"keyboard");return}let nextIndex=(currentIndex+1)%entries.length;focusTabEntry(entries[nextIndex],"keyboard")}function focusPrev(root,scope){let entries=buildTabEntries(root,scope);if(entries.length===0)return;let currentIndex=currentTabIndex(entries);if(currentIndex===-1){focusTabEntry(entries[entries.length-1],"keyboard");return}let prevIndex=currentIndex<=0?entries.length-1:currentIndex-1;focusTabEntry(entries[prevIndex],"keyboard")}function focusDirection(root,direction,layoutFn){if(!activeElement)return;let explicitTarget=getExplicitFocusLink(activeElement,direction);if(explicitTarget){focusById(explicitTarget,root,"keyboard");return}let candidates=getTabOrder2(root),target=findSpatialTarget(activeElement,direction,candidates,layoutFn??((node)=>node.scrollRect));if(target)focus(target,"keyboard")}function subscribe(listener){return listeners.add(listener),()=>{listeners.delete(listener)}}function getSnapshot(){if(!snapshot)snapshot={activeId,previousId,focusOrigin,scopeStack:[...scopeStack],activeScopeId};return snapshot}return{get activeElement(){return activeElement},get activeId(){return activeId},get previousElement(){return previousElement},get previousId(){return previousId},get focusOrigin(){return focusOrigin},get scopeStack(){return[...scopeStack]},get scopeMemory(){return scopeMemory},get activeScopeId(){return activeScopeId},focus,focusById,focusVirtualId,blur,handleSubtreeRemoved,enterScope,exitScope,activateScope,getFocusPath,hasFocusWithin,focusNext,focusPrev,focusDirection,subscribe,getSnapshot,registerHookFocusable,setHookFocusableActive,get hasHookFocusables(){return hookFocusables.length>0},get hookFocusEnabled(){return hookFocusEnabled},setHookFocusEnabled}}function getAncestorPath(node){let path=[],current=node;while(current)path.push(current),current=current.parent;return path}function pointInRect(x,y,rect){return x>=rect.x&&x<rect.x+rect.width&&y>=rect.y&&y<rect.y+rect.height}function createKeyEvent(input,key,target){let propagationStopped=!1,defaultPrevented=!1;return{key:input,input,ctrl:key.ctrl,meta:key.meta,shift:key.shift,super:key.super,hyper:key.hyper,eventType:key.eventType,target,currentTarget:target,nativeEvent:{input,key},get propagationStopped(){return propagationStopped},get defaultPrevented(){return defaultPrevented},stopPropagation(){propagationStopped=!0},preventDefault(){defaultPrevented=!0}}}function createFocusEvent(type,target,relatedTarget){let propagationStopped=!1;return{type,target,relatedTarget,currentTarget:target,get propagationStopped(){return propagationStopped},stopPropagation(){propagationStopped=!0}}}function dispatchKeyEvent(event,dispatch){let path=getAncestorPath(event.target),mutableEvent=event,isRelease=event.eventType==="release",handlerProp=isRelease?"onKeyUp":"onKeyDown";if(!isRelease)for(let i=path.length-1;i>0;i--){if(event.propagationStopped)return;let node=path[i],handler=node.props.onKeyDownCapture;if(handler)mutableEvent.currentTarget=node,handler(event)}if(!event.propagationStopped){let target=path[0];mutableEvent.currentTarget=target;let handler=target.props[handlerProp];if(handler)handler(event,dispatch)}for(let i=1;i<path.length;i++){if(event.propagationStopped)return;let node=path[i],handler=node.props[handlerProp];if(handler)mutableEvent.currentTarget=node,handler(event,dispatch)}}function dispatchFocusEvent(event){let handlerProp=event.type==="focus"?"onFocus":"onBlur",path=getAncestorPath(event.target),mutableEvent=event;for(let node of path){if(event.propagationStopped)break;let handler=node.props[handlerProp];if(handler)mutableEvent.currentTarget=node,handler(event)}}init_context();import{useCallback as useCallback27,useContext as useContext33,useRef as useRef24,useSyncExternalStore as useSyncExternalStore11}from"react";function shallow(a,b){if(Object.is(a,b))return!0;if(typeof a!=="object"||typeof b!=="object"||a===null||b===null)return!1;let keysA=Object.keys(a),keysB=Object.keys(b);if(keysA.length!==keysB.length)return!1;for(let key of keysA)if(!Object.is(a[key],b[key]))return!1;return!0}function useTerm(selector,equalityFn){let term2=useContext33(TermContext);if(!term2)throw Error("useTerm must be used within a render(element, term) context");if(!selector)return term2;return useTermSelector(term2,selector,equalityFn)}function useTermSelector(term2,selector,equalityFn){let prevRef=useRef24(void 0),isEqual=equalityFn??Object.is,subscribe=useCallback27((listener)=>term2.subscribe(listener),[term2]),getSnapshot=useCallback27(()=>{let next=selector(term2);if(prevRef.current!==void 0&&isEqual(prevRef.current,next))return prevRef.current;return prevRef.current=next,next},[term2,selector,isEqual]);return useSyncExternalStore11(subscribe,getSnapshot,getSnapshot)}function useWindowSize(){return useTerm((t)=>{let s=t.getState();return{columns:s.cols,rows:s.rows}},shallow)}init_context();import{useTransition as useTransition2,useDeferredValue,useId as useId2}from"react";init_state();init_palettes();import React22,{createContext as createContext11,useContext as useContext34}from"react";var ThemeContext=createContext11(defaultDarkTheme);function useTheme(){return useContext34(ThemeContext)}import{jsxDEV as jsxDEV45}from"react/jsx-dev-runtime";function ThemeProvider({theme,children}){return jsxDEV45(ThemeContext.Provider,{value:theme,children},void 0,!1,void 0,this)}init_src2();init_derive2();init_color();init_resolve();function generateTheme(primary,dark){return{name:`${dark?"dark":"light"}-${primary}`,bg:"",fg:dark?"whiteBright":"black",muted:dark?"white":"blackBright",mutedbg:dark?"black":"white",surface:dark?"whiteBright":"black",surfacebg:dark?"black":"white",popover:dark?"whiteBright":"black",popoverbg:dark?"blackBright":"white",inverse:dark?"black":"whiteBright",inversebg:dark?"whiteBright":"black",cursor:"black",cursorbg:primary,selection:"black",selectionbg:primary,primary,primaryfg:"black",secondary:primary,secondaryfg:"black",accent:primary,accentfg:"black",error:dark?"redBright":"red",errorfg:"black",warning:primary,warningfg:"black",success:dark?"greenBright":"green",successfg:"black",info:dark?"cyanBright":"cyan",infofg:"black",border:"gray",inputborder:"gray",focusborder:dark?"blueBright":"blue",link:"blueBright",disabledfg:"gray",palette:["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]}}init_color();init_derive2();init_color();init_color();init_palettes();init_palettes();init_state();init_color();var THEME_TOKEN_KEYS=["bg","fg","muted","mutedbg","surface","surfacebg","popover","popoverbg","inverse","inversebg","cursor","cursorbg","selection","selectionbg","primary","primaryfg","secondary","secondaryfg","accent","accentfg","error","errorfg","warning","warningfg","success","successfg","info","infofg","border","inputborder","focusborder","link","disabledfg"],ALL_KNOWN_KEYS=new Set([...THEME_TOKEN_KEYS,"name","palette"]);init_src();init_color();init_derive2();init_color();init_derive2();init_src2();init_nord();init_catppuccin();async function detectTheme2(opts={}){let colorLevel=opts.caps?.colorLevel;if(colorLevel==="none"||colorLevel==="basic")return opts.caps?.darkBackground??!0?ansi16DarkTheme:ansi16LightTheme;let detected=await detectTerminalPalette(opts.timeoutMs),isDark=detected?.dark??opts.caps?.darkBackground??!0,fallback=opts.fallback??(isDark?nord:catppuccinLatte);if(!detected)return deriveTheme(fallback);let merged={...fallback,...stripNulls(detected.palette)};return deriveTheme(merged)}function stripNulls(partial){let result={};for(let[k,v]of Object.entries(partial))if(v!=null)result[k]=v;return result}init_palettes();init_palettes();init_ansi2();import{createContext as createContext12,useContext as useContext35,useEffect as useEffect21,useRef as useRef25}from"react";class HitRegistry{regions=new Map;register(id,region){this.regions.set(id,region)}unregister(id){this.regions.delete(id)}clear(){this.regions.clear()}get size(){return this.regions.size}hitTest(screenX,screenY){let bestMatch=null;for(let region of this.regions.values())if(screenX>=region.x&&screenX<region.x+region.width&&screenY>=region.y&&screenY<region.y+region.height){if(!bestMatch||region.zIndex>bestMatch.zIndex)bestMatch=region}return bestMatch?.target??null}hitTestAll(screenX,screenY){let matches=[];for(let region of this.regions.values())if(screenX>=region.x&&screenX<region.x+region.width&&screenY>=region.y&&screenY<region.y+region.height)matches.push(region);return matches.sort((a,b)=>b.zIndex-a.zIndex)}getAllRegions(){return new Map(this.regions)}}var hitRegionIdCounter=0;function generateHitRegionId(){return`hit-${++hitRegionIdCounter}`}function resetHitRegionIdCounter(){hitRegionIdCounter=0}var Z_INDEX={BACKGROUND:0,COLUMN_HEADER:5,CARD:10,FOLD_TOGGLE:15,LINK:20,FLOATING:50,DIALOG:100,DROPDOWN:150,TOOLTIP:200};var HitRegistryContext=createContext12(null);function useHitRegistry(){return useContext35(HitRegistryContext)}function useHitRegion(target,rect,zIndex=0,enabled=!0){let registry=useContext35(HitRegistryContext),idRef=useRef25(null);if(idRef.current===null)idRef.current=generateHitRegionId();useEffect21(()=>{if(!registry||!rect||!enabled){if(idRef.current&®istry)registry.unregister(idRef.current);return}let id=idRef.current;return registry.register(id,{x:rect.x,y:rect.y,width:rect.width,height:rect.height,target,zIndex}),()=>{registry.unregister(id)}},[registry,rect?.x,rect?.y,rect?.width,rect?.height,target,zIndex,enabled])}function useHitRegionCallback(target,zIndex=0,enabled=!0){let registry=useContext35(HitRegistryContext),idRef=useRef25(null);if(idRef.current===null)idRef.current=generateHitRegionId();return useEffect21(()=>{let id=idRef.current;return()=>{if(id&®istry)registry.unregister(id)}},[registry]),(rect)=>{if(!registry||!enabled){if(idRef.current&®istry)registry.unregister(idRef.current);return}registry.register(idRef.current,{x:rect.x,y:rect.y,width:rect.width,height:rect.height,target,zIndex})}}init_ansi2();init_context();import process2 from"node:process";import{createLogger as createLogger15}from"loggily";import{useCallback as useCallback28,useEffect as useEffect22,useMemo as useMemo17,useRef as useRef26}from"react";init_keys();init_reconciler();init_render_string();init_buffer();import{appendFileSync}from"node:fs";import{createLogger as createLogger13}from"loggily";function findNodeAtPosition(root,x,y){let result=null;function visit(node){let rect=node.scrollRect;if(!rect)return;if(x>=rect.x&&x<rect.x+rect.width&&y>=rect.y&&y<rect.y+rect.height){result=node;for(let child of node.children)visit(child)}}return visit(root),result}function findAllContainingNodes(root,x,y){let result=[];function visit(node){let rect=node.scrollRect;if(!rect)return;if(x>=rect.x&&x<rect.x+rect.width&&y>=rect.y&&y<rect.y+rect.height){result.push(node);for(let child of node.children)visit(child)}}return visit(root),result}function getNodePath(node){let parts=[],current=node;while(current){let props=current.props;if(props.id)parts.unshift(`#${props.id}`);else if(current.parent){let idx=current.parent.children.indexOf(current);parts.unshift(`[${idx}]`)}else parts.unshift("root");current=current.parent}return parts.join(" > ")}function rectChanged(a,b){if(a===b)return!1;if(!a||!b)return!0;return a.x!==b.x||a.y!==b.y||a.width!==b.width||a.height!==b.height}function getNodeDebugInfo(node){let props=node.props,childIndex=null;if(node.parent)childIndex=node.parent.children.indexOf(node);return{id:props.id,type:node.type,path:getNodePath(node),childIndex,dirtyFlags:{contentDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT),stylePropsDirty:isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT),subtreeDirty:isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT),childrenDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT),layoutDirty:node.layoutDirty},layout:{prevLayout:node.prevLayout,boxRect:node.boxRect,scrollRect:node.scrollRect,layoutChanged:rectChanged(node.prevLayout,node.boxRect)},scroll:node.scrollState?{offset:node.scrollState.offset,prevOffset:node.scrollState.prevOffset,offsetChanged:node.scrollState.offset!==node.scrollState.prevOffset,contentHeight:node.scrollState.contentHeight,viewportHeight:node.scrollState.viewportHeight,hiddenAbove:node.scrollState.hiddenAbove,hiddenBelow:node.scrollState.hiddenBelow,firstVisibleChild:node.scrollState.firstVisibleChild,lastVisibleChild:node.scrollState.lastVisibleChild}:void 0,backgroundColor:props.backgroundColor,childCount:node.children.length,hidden:node.hidden??!1}}function findScrollAncestors(node){let result=[],current=node.parent;while(current){if(current.scrollState)result.push(current);current=current.parent}return result}function analyzeFastPath(node,scrollAncestors){let analysis=[];if(!node)return analysis.push("⚠ No node found at mismatch position - possible virtualization issue"),analysis;let flags=node;if(!isAnyDirty(flags.dirtyBits,flags.dirtyEpoch)&&!flags.layoutDirty)analysis.push("⚠ ALL DIRTY FLAGS FALSE - fast-path likely skipped this node");let scrollParent=scrollAncestors[0];if(scrollParent?.scrollState){let ss=scrollParent.scrollState,childIndex=node.parent?node.parent.children.indexOf(node):-1,inVisibleRange=childIndex>=ss.firstVisibleChild&&childIndex<=ss.lastVisibleChild;if(!inVisibleRange&&childIndex>=0)analysis.push(`⚠ Node index ${childIndex} is OUTSIDE visible range [${ss.firstVisibleChild}..${ss.lastVisibleChild}]`),analysis.push(" → Node should have been skipped, but mismatch suggests it should render");else if(inVisibleRange)analysis.push(`✓ Node index ${childIndex} is in visible range [${ss.firstVisibleChild}..${ss.lastVisibleChild}]`);if(ss.offset===ss.prevOffset)analysis.push("✓ Scroll offset unchanged (fast-path enabled for children)");else analysis.push(`⚠ Scroll offset CHANGED: ${ss.prevOffset} → ${ss.offset}`);if(ss.firstVisibleChild!==0||ss.lastVisibleChild!==scrollParent.children.length-1)analysis.push(` Visible range is partial: [${ss.firstVisibleChild}..${ss.lastVisibleChild}] of ${scrollParent.children.length} children`),analysis.push(" → If visible range changed, newly visible children need rendering")}if(!rectChanged(node.prevLayout,node.boxRect)&&node.prevLayout)analysis.push("✓ Layout unchanged (prevLayout matches boxRect)");else if(!node.prevLayout)analysis.push("⚠ prevLayout is NULL - node may never have been rendered before");else analysis.push("⚠ Layout CHANGED but node still skipped - dirty flag not set?");if(node.parent&&node.parent.children.length>1){let siblingMoved=!1;for(let sibling of node.parent.children)if(sibling!==node&&sibling.boxRect&&sibling.prevLayout){if(sibling.boxRect.x!==sibling.prevLayout.x||sibling.boxRect.y!==sibling.prevLayout.y){siblingMoved=!0;break}}if(siblingMoved)analysis.push("⚠ SIBLING POSITION CHANGED - parent should have detected this")}if(node.hidden)analysis.push("⚠ Node is HIDDEN (Suspense) - should not be rendered");return analysis}function buildMismatchContext(root,x,y,incrementalCell,freshCell,renderNum){let innermost=findNodeAtPosition(root,x,y),containing=findAllContainingNodes(root,x,y),scrollAncestorNodes=innermost?findScrollAncestors(innermost):[];return{position:{x,y},cells:{incremental:incrementalCell,fresh:freshCell},renderNum,node:innermost?getNodeDebugInfo(innermost):null,scrollAncestors:scrollAncestorNodes.map(getNodeDebugInfo),containingNodes:containing.map(getNodeDebugInfo),fastPathAnalysis:analyzeFastPath(innermost,scrollAncestorNodes)}}function formatMismatchContext(ctx,renderPhaseStats){let lines=[];lines.push(`SILVERY_STRICT: MISMATCH at (${ctx.position.x}, ${ctx.position.y}) on render #${ctx.renderNum}`),lines.push("");let{incremental,fresh}=ctx.cells;if(lines.push("CELL VALUES:"),lines.push(` incremental: char=${JSON.stringify(incremental.char)} fg=${JSON.stringify(incremental.fg)} bg=${JSON.stringify(incremental.bg)} attrs=${JSON.stringify(incremental.attrs)}`),lines.push(` fresh: char=${JSON.stringify(fresh.char)} fg=${JSON.stringify(fresh.fg)} bg=${JSON.stringify(fresh.bg)} attrs=${JSON.stringify(fresh.attrs)}`),lines.push(""),ctx.node){if(lines.push("INNERMOST NODE:"),lines.push(` path: ${ctx.node.path}`),lines.push(` type: ${ctx.node.type}`),ctx.node.backgroundColor)lines.push(` backgroundColor: ${ctx.node.backgroundColor}`);lines.push("");let flags=ctx.node.dirtyFlags,activeFlags=Object.entries(flags).filter(([,v])=>v).map(([k])=>k);if(lines.push("DIRTY FLAGS:"),activeFlags.length>0)lines.push(` active: ${activeFlags.join(", ")}`);else lines.push(" active: (none - node was clean)");lines.push(` all: contentDirty=${flags.contentDirty} stylePropsDirty=${flags.stylePropsDirty} subtreeDirty=${flags.subtreeDirty} childrenDirty=${flags.childrenDirty} layoutDirty=${flags.layoutDirty}`),lines.push("");let{layout}=ctx.node;if(lines.push("LAYOUT:"),layout.layoutChanged)lines.push(" ⚠ LAYOUT CHANGED:"),lines.push(` prevLayout: ${formatRect(layout.prevLayout)}`),lines.push(` boxRect: ${formatRect(layout.boxRect)}`);else lines.push(` boxRect: ${formatRect(layout.boxRect)}`);if(lines.push(` scrollRect: ${formatRect(layout.scrollRect)}`),lines.push(""),ctx.node.scroll)lines.push("SCROLL STATE (this node):"),formatScrollState(lines,ctx.node.scroll),lines.push("")}else lines.push("INNERMOST NODE: (none found at this position)"),lines.push("");if(ctx.scrollAncestors.length>0){lines.push("SCROLL ANCESTORS:");for(let ancestor of ctx.scrollAncestors)if(lines.push(` ${ancestor.path}:`),ancestor.scroll)formatScrollState(lines,ancestor.scroll," ");lines.push("")}if(ctx.containingNodes.length>1){lines.push("ALL CONTAINING NODES (outermost to innermost):");for(let node of ctx.containingNodes){let flags=Object.entries(node.dirtyFlags).filter(([,v])=>v).map(([k])=>k.replace("Dirty","")).join(","),flagStr=flags?` [${flags}]`:" [clean]",bgStr=node.backgroundColor?` bg=${node.backgroundColor}`:"",childStr=node.childIndex!==null?` child[${node.childIndex}]`:"";lines.push(` ${node.path}${flagStr}${bgStr}${childStr}`)}lines.push("")}if(ctx.fastPathAnalysis.length>0){lines.push("FAST-PATH ANALYSIS:");for(let line of ctx.fastPathAnalysis)lines.push(` ${line}`);lines.push("")}if(renderPhaseStats){let s=renderPhaseStats;lines.push("RENDER PHASE STATS:"),lines.push(` nodesVisited: ${s.nodesVisited} nodesRendered: ${s.nodesRendered} nodesSkipped: ${s.nodesSkipped}`),lines.push(` textNodes: ${s.textNodes} boxNodes: ${s.boxNodes} clearOps: ${s.clearOps}`);let flagLines=[];if(s.noPrevBuffer)flagLines.push(`noPrevBuffer=${s.noPrevBuffer}`);if(s.flagContentDirty)flagLines.push(`contentDirty=${s.flagContentDirty}`);if(s.flagStylePropsDirty)flagLines.push(`stylePropsDirty=${s.flagStylePropsDirty}`);if(s.flagLayoutChanged)flagLines.push(`layoutChanged=${s.flagLayoutChanged}`);if(s.flagSubtreeDirty)flagLines.push(`subtreeDirty=${s.flagSubtreeDirty}`);if(s.flagChildrenDirty)flagLines.push(`childrenDirty=${s.flagChildrenDirty}`);if(s.flagChildPositionChanged)flagLines.push(`childPositionChanged=${s.flagChildPositionChanged}`);if(flagLines.length>0)lines.push(` render reasons: ${flagLines.join(", ")}`);if(s.scrollContainerCount>0){if(lines.push(` scrollContainers: ${s.scrollContainerCount} viewportCleared: ${s.scrollViewportCleared}`),s.scrollClearReason)lines.push(` scrollClearReason: ${s.scrollClearReason}`)}if(s.normalChildrenRepaint>0){if(lines.push(` normalChildrenRepaint: ${s.normalChildrenRepaint}`),s.normalRepaintReason)lines.push(` normalRepaintReason: ${s.normalRepaintReason}`)}if(s.cascadeMinDepth<999){if(lines.push(` cascadeMinDepth: ${s.cascadeMinDepth}`),s.cascadeNodes)lines.push(` cascadeNodes: ${s.cascadeNodes}`)}lines.push("")}return lines.join(`
|
|
171
|
+
`).slice(1):[],origin=stack.length>0?parseStackLine(stack[0]):null,filePath=cleanupPath(origin?.file),excerpt=null,lineWidth=0;if(filePath&&origin?.line){if(excerpt=getCodeExcerpt(filePath,origin.line),excerpt)for(let{line}of excerpt)lineWidth=Math.max(lineWidth,String(line).length)}let children=[];if(children.push(React21.createElement("silvery-box",{key:"header"},React21.createElement("silvery-text",{backgroundColor:"red",color:"white"}," ERROR "),React21.createElement("silvery-text",{},` ${err.message}`))),filePath&&origin)children.push(React21.createElement("silvery-box",{key:"location",marginTop:1},React21.createElement("silvery-text",{dimColor:!0},`${filePath}:${origin.line}:${origin.column}`)));if(excerpt&&origin){let codeLines=excerpt.map(({line,value})=>{let lineNum=String(line).padStart(lineWidth," ");return React21.createElement("silvery-box",{key:`code-${line}`},React21.createElement("silvery-text",{dimColor:line!==origin.line,backgroundColor:line===origin.line?"red":void 0,color:line===origin.line?"white":void 0},`${lineNum}:`),React21.createElement("silvery-text",{backgroundColor:line===origin.line?"red":void 0,color:line===origin.line?"white":void 0},` ${value}`))});children.push(React21.createElement("silvery-box",{key:"code",marginTop:1,flexDirection:"column"},...codeLines))}if(stack.length>0){let stackLines=stack.map((line,i)=>{let parsed=parseStackLine(line);if(!parsed)return React21.createElement("silvery-box",{key:`stack-${i}`},React21.createElement("silvery-text",{dimColor:!0},`- ${line.trim()}`));let cleanFile=cleanupPath(parsed.file);return React21.createElement("silvery-box",{key:`stack-${i}`},React21.createElement("silvery-text",{dimColor:!0},"- "),React21.createElement("silvery-text",{dimColor:!0,bold:!0},parsed.function??""),React21.createElement("silvery-text",{dimColor:!0,color:"gray"},` (${cleanFile??""}:${parsed.line}:${parsed.column})`))});children.push(React21.createElement("silvery-box",{key:"stack",marginTop:1,flexDirection:"column"},...stackLines))}return React21.createElement("silvery-box",{flexDirection:"column",padding:1},...children)}return this.props.children}}function encodeKittyImage(pngData,opts){let b64=pngData.toString("base64"),chunks=splitIntoChunks(b64,4096);if(chunks.length===0)return`\x1B_G${buildParams(opts,0)};\x1B\\`;if(chunks.length===1)return`\x1B_G${buildParams(opts,0)};${chunks[0]}\x1B\\`;let parts=[];parts.push(`\x1B_G${buildParams(opts,1)};${chunks[0]}\x1B\\`);for(let i=1;i<chunks.length-1;i++)parts.push(`\x1B_Gm=1;${chunks[i]}\x1B\\`);return parts.push(`\x1B_Gm=0;${chunks[chunks.length-1]}\x1B\\`),parts.join("")}function deleteKittyImage(id){return`\x1B_Ga=d,d=i,i=${id}\x1B\\`}function isKittyGraphicsSupported(){let term2=process.env.TERM??"",termProgram=process.env.TERM_PROGRAM??"";if(term2==="xterm-kitty"||termProgram==="kitty")return!0;if(termProgram==="WezTerm")return!0;if(termProgram==="ghostty")return!0;if(termProgram==="konsole")return!0;return!1}function buildParams(opts,more){let parts=["a=T","f=100",`m=${more}`];if(opts?.width!=null)parts.push(`s=${opts.width}`);if(opts?.height!=null)parts.push(`v=${opts.height}`);if(opts?.id!=null)parts.push(`i=${opts.id}`);return parts.join(",")}function splitIntoChunks(str,size){if(str.length===0)return[];let chunks=[];for(let i=0;i<str.length;i+=size)chunks.push(str.slice(i,i+size));return chunks}function encodeSixel(imageData){let{width,height,data}=imageData;if(width===0||height===0||data.length===0)return"\x1BPq\x1B\\";let palette=new Map,pixelColors=new Uint16Array(width*height),nextColorIndex=1;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let offset=(y*width+x)*4,r=data[offset],g=data[offset+1],b=data[offset+2];if(data[offset+3]<128)continue;let qr=r>>2&63,qg=g>>2&63,qb=b>>2&63,key=`${qr},${qg},${qb}`,idx=palette.get(key);if(idx==null)if(nextColorIndex>=256)idx=1;else idx=nextColorIndex++,palette.set(key,idx);pixelColors[y*width+x]=idx}let parts=[];parts.push(`"1;1;${width};${height}`);for(let[key,idx]of palette){let[qr,qg,qb]=key.split(",").map(Number),rPct=Math.round(qr/63*100),gPct=Math.round(qg/63*100),bPct=Math.round(qb/63*100);parts.push(`#${idx};2;${rPct};${gPct};${bPct}`)}for(let bandY=0;bandY<height;bandY+=6){if(bandY>0)parts.push("-");let bandColors=new Set;for(let dy=0;dy<6&&bandY+dy<height;dy++)for(let x=0;x<width;x++){let ci=pixelColors[(bandY+dy)*width+x];if(ci>0)bandColors.add(ci)}let first=!0;for(let colorIdx of bandColors){if(!first)parts.push("$");first=!1,parts.push(`#${colorIdx}`);for(let x=0;x<width;x++){let sixelBits=0;for(let dy=0;dy<6;dy++){let y=bandY+dy;if(y<height&&pixelColors[y*width+x]===colorIdx)sixelBits|=1<<dy}parts.push(String.fromCharCode(sixelBits+63))}}}return`\x1BPq${parts.join("")}\x1B\\`}function isSixelSupported(){let term2=process.env.TERM??"",termProgram=process.env.TERM_PROGRAM??"";if(termProgram==="mlterm"||term2.startsWith("mlterm"))return!0;if(termProgram==="foot"||term2==="foot"||term2==="foot-extra")return!0;if(termProgram==="WezTerm")return!0;if(termProgram==="mintty")return!0;return!1}init_context();import{readFileSync as readFileSync2}from"node:fs";import{useContext as useContext33,useEffect as useEffect20,useMemo as useMemo16,useRef as useRef23}from"react";import{jsxDEV as jsxDEV44}from"react/jsx-dev-runtime";function detectProtocol(preferred){if(preferred==="kitty")return isKittyGraphicsSupported()?"kitty":null;if(preferred==="sixel")return isSixelSupported()?"sixel":null;if(isKittyGraphicsSupported())return"kitty";if(isSixelSupported())return"sixel";return null}var nextImageId=1;function Image({src,width:requestedWidth,height:requestedHeight,fallback="[image]",protocol:preferredProtocol="auto"}){let boxRect=useBoxRect(),stdoutCtx=useContext33(StdoutContext),imageIdRef=useRef23(null),pngData=useMemo16(()=>{if(Buffer.isBuffer(src))return src;try{return readFileSync2(src)}catch{return null}},[src]),effectiveWidth=requestedWidth??boxRect.width,effectiveHeight=requestedHeight??Math.max(1,Math.floor(effectiveWidth/2)),activeProtocol=useMemo16(()=>detectProtocol(preferredProtocol),[preferredProtocol]);if(activeProtocol==="kitty"&&imageIdRef.current==null)imageIdRef.current=nextImageId++;if(useEffect20(()=>{if(!pngData||!stdoutCtx||!activeProtocol)return;if(effectiveWidth<=0||effectiveHeight<=0)return;let{write}=stdoutCtx;if(activeProtocol==="kitty"){let seq=encodeKittyImage(pngData,{width:effectiveWidth,height:effectiveHeight,id:imageIdRef.current??void 0});write(seq)}},[pngData,stdoutCtx,activeProtocol,effectiveWidth,effectiveHeight]),useEffect20(()=>{let id=imageIdRef.current;if(activeProtocol!=="kitty"||id==null||!stdoutCtx)return;return()=>{stdoutCtx.write(deleteKittyImage(id))}},[activeProtocol,stdoutCtx]),!activeProtocol||!pngData)return jsxDEV44("silvery-box",{width:effectiveWidth,height:effectiveHeight,children:jsxDEV44("silvery-text",{children:fallback},void 0,!1,void 0,this)},void 0,!1,void 0,this);let spaceLine=" ".repeat(Math.max(0,effectiveWidth)),spaceContent=Array.from({length:Math.max(0,effectiveHeight)},()=>spaceLine).join(`
|
|
172
|
+
`);return jsxDEV44("silvery-box",{width:effectiveWidth,height:effectiveHeight,children:jsxDEV44("silvery-text",{children:spaceContent},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function isFocusable(node){if(node.hidden)return!1;let props=node.props;return Boolean(props.focusable)&&props.display!=="none"}function isFocusScope(node){let props=node.props;return Boolean(props.focusScope)}function findFocusableAncestor(node){let current=node;while(current){if(isFocusable(current))return current;current=current.parent}return null}function getTabOrder2(root,scope){let result=[],walkRoot=scope??root;function walk(node){if(node.hidden)return;if(node.props.display==="none")return;if(node!==walkRoot&&isFocusScope(node)){if(isFocusable(node))result.push(node);return}if(isFocusable(node))result.push(node);for(let child of node.children)walk(child)}return walk(walkRoot),result}function findEnclosingScope(node){let current=node;while(current){if(isFocusScope(current)){let props=current.props;return typeof props.testID==="string"?props.testID:null}current=current.parent}return null}function findByTestID(root,testID){if(root.props.testID===testID)return root;for(let child of root.children){let found=findByTestID(child,testID);if(found)return found}return null}function rectCenter(rect){return{cx:rect.x+rect.width/2,cy:rect.y+rect.height/2}}function isInCone(source,candidate,direction){let dx=candidate.cx-source.cx,dy=candidate.cy-source.cy;switch(direction){case"up":if(dy>=0)return!1;return Math.abs(dx)<=Math.abs(dy);case"down":if(dy<=0)return!1;return Math.abs(dx)<=Math.abs(dy);case"left":if(dx>=0)return!1;return Math.abs(dy)<=Math.abs(dx);case"right":if(dx<=0)return!1;return Math.abs(dy)<=Math.abs(dx)}}function distance(a,b){let dx=a.cx-b.cx,dy=a.cy-b.cy;return Math.sqrt(dx*dx+dy*dy)}function findSpatialTarget(from,direction,candidates,layoutFn){let sourceRect=layoutFn(from);if(!sourceRect)return null;let source=rectCenter(sourceRect),best=null,bestDist=1/0;for(let candidate of candidates){if(candidate===from)continue;let candidateRect=layoutFn(candidate);if(!candidateRect)continue;let target=rectCenter(candidateRect);if(!isInCone(source,target,direction))continue;let dist=distance(source,target);if(dist<bestDist)bestDist=dist,best=candidate}return best}function getExplicitFocusLink(node,direction){let props=node.props,propName=`nextFocus${direction.charAt(0).toUpperCase()}${direction.slice(1)}`,value=props[propName];return typeof value==="string"?value:null}function ensureInteractiveState(node){if(!node.interactiveState)node.interactiveState={hovered:!1,armed:!1,selected:!1,focused:!1,dropTarget:!1};return node.interactiveState}function setHovered(node,value){let state=ensureInteractiveState(node);if(state.hovered===value)return!1;return state.hovered=value,!0}function setArmed(node,value){let state=ensureInteractiveState(node);if(state.armed===value)return!1;return state.armed=value,!0}function setFocused(node,value){let state=ensureInteractiveState(node);if(state.focused===value)return!1;return state.focused=value,!0}function createFocusManager(options){let onFocusChange=options?.onFocusChange,activeElement=null,activeId=null,previousElement=null,previousId=null,focusOrigin=null,scopeStack=[],scopeMemory={},activeScopeId=null,hookFocusables=[],hookFocusEnabled=!0,listeners=new Set,snapshot=null,notifyCount=0;function notify2(){snapshot=null,notifyCount++;for(let listener of listeners)listener()}function getTestID(node){let props=node.props;return typeof props.testID==="string"?props.testID:null}function focus(node,origin="programmatic"){if(activeElement===node){if(focusOrigin!==origin)focusOrigin=origin,notify2();return}let oldElement=activeElement;if(previousElement=activeElement,previousId=activeId,activeElement=node,activeId=getTestID(node),focusOrigin=origin,oldElement)setFocused(oldElement,!1);if(setFocused(node,!0),activeId&&scopeStack.length>0)scopeMemory[scopeStack[scopeStack.length-1]]=activeId;notify2(),onFocusChange?.(oldElement,node,origin)}function focusById(id,root,origin="programmatic"){let node=findByTestID(root,id);if(node){let focusable=findFocusableAncestor(node);if(focusable){focus(focusable,origin);return}}if(activeId===id&&!activeElement)return;let oldElement=activeElement;if(previousElement=activeElement,previousId=activeId,activeElement=null,activeId=id,focusOrigin=origin,oldElement)setFocused(oldElement,!1);notify2(),onFocusChange?.(oldElement,null,origin)}function blur(){if(!activeElement&&!activeId)return;let oldElement=activeElement;if(previousElement=activeElement,previousId=activeId,activeElement=null,activeId=null,focusOrigin=null,oldElement)setFocused(oldElement,!1);notify2(),onFocusChange?.(oldElement,null,null)}function focusVirtualId(id,origin="programmatic"){if(activeId===id&&!activeElement){if(focusOrigin!==origin)focusOrigin=origin,notify2();return}let oldElement=activeElement;if(previousElement=activeElement,previousId=activeId,activeElement=null,activeId=id,focusOrigin=origin,oldElement)setFocused(oldElement,!1);notify2(),onFocusChange?.(oldElement,null,origin)}function unregisterHookFocusable(id){let idx=hookFocusables.findIndex((f)=>f.id===id);if(idx===-1)return;if(hookFocusables.splice(idx,1),activeId===id&&!activeElement){previousId=activeId,activeId=null,focusOrigin=null,notify2(),onFocusChange?.(null,null,null);return}notify2()}function registerHookFocusable(id,opts={}){let{isActive=!0,autoFocus=!1}=opts,existing=hookFocusables.findIndex((f)=>f.id===id);if(existing!==-1){if(hookFocusables[existing].isActive===isActive&&!autoFocus)return()=>unregisterHookFocusable(id);hookFocusables[existing]={id,isActive}}else hookFocusables.push({id,isActive});if(autoFocus&&isActive&&activeId===null)focusVirtualId(id,"programmatic");else notify2();return()=>unregisterHookFocusable(id)}function setHookFocusableActive(id,isActive){let entry=hookFocusables.find((f)=>f.id===id);if(!entry)return;if(entry.isActive===isActive)return;if(entry.isActive=isActive,!isActive&&activeId===id&&!activeElement){previousId=activeId,activeId=null,focusOrigin=null,notify2(),onFocusChange?.(null,null,null);return}notify2()}function setHookFocusEnabled(enabled){if(hookFocusEnabled===enabled)return;hookFocusEnabled=enabled,notify2()}function subtreeContains(subtreeRoot,target){if(subtreeRoot===target)return!0;for(let child of subtreeRoot.children)if(subtreeContains(child,target))return!0;return!1}function handleSubtreeRemoved(removedRoot){let changed=!1;if(activeElement&&subtreeContains(removedRoot,activeElement)){let oldElement=activeElement;setFocused(oldElement,!1),previousElement=activeElement,previousId=activeId,activeElement=null,activeId=null,focusOrigin=null,changed=!0,onFocusChange?.(oldElement,null,null)}if(previousElement&&subtreeContains(removedRoot,previousElement))previousElement=null,previousId=null,changed=!0;if(changed)notify2()}function enterScope(scopeId){scopeStack.push(scopeId),notify2()}function exitScope(){if(scopeStack.pop()===void 0)return;notify2()}function activateScope(scopeId,root){if(activeScopeId&&activeId)scopeMemory[activeScopeId]=activeId;activeScopeId=scopeId;let countBefore=notifyCount,remembered=scopeMemory[scopeId];if(remembered)focusById(remembered,root,"programmatic");else{let scopeNode=findByTestID(root,scopeId);if(scopeNode){let order=getTabOrder2(root,scopeNode);if(order.length>0)focus(order[0],"programmatic")}}if(notifyCount===countBefore)notify2()}function getFocusPath(root){if(!activeElement)return[];let path=[],current=activeElement;while(current&¤t!==root.parent){let id=getTestID(current);if(id)path.push(id);current=current.parent}return path}function hasFocusWithin(root,testID){if(!activeElement)return!1;let target=findByTestID(root,testID);if(!target)return!1;let current=activeElement;while(current){if(current===target)return!0;current=current.parent}return!1}function resolveScope(root,explicitScope){if(explicitScope)return explicitScope;if(scopeStack.length>0){let scopeId=scopeStack[scopeStack.length-1],scopeNode=findByTestID(root,scopeId);if(scopeNode)return scopeNode}return}function buildTabEntries(root,scope){let effectiveScope=resolveScope(root,scope),nodes=getTabOrder2(root,effectiveScope),entries=nodes.map((node)=>({kind:"node",node}));if(!effectiveScope&&hookFocusEnabled){let treeIds=new Set(nodes.map((n)=>n.props.testID).filter(Boolean));for(let entry of hookFocusables)if(entry.isActive&&!treeIds.has(entry.id))entries.push({kind:"hook",id:entry.id})}return entries}function currentTabIndex(entries){if(activeElement){for(let i=0;i<entries.length;i++){let e=entries[i];if(e.kind==="node"&&e.node===activeElement)return i}return-1}if(activeId)for(let i=0;i<entries.length;i++){let e=entries[i];if(e.kind==="hook"&&e.id===activeId)return i}return-1}function focusTabEntry(entry,origin){if(entry.kind==="node")focus(entry.node,origin);else focusVirtualId(entry.id,origin)}function focusNext(root,scope){let entries=buildTabEntries(root,scope);if(entries.length===0)return;let currentIndex=currentTabIndex(entries);if(currentIndex===-1){focusTabEntry(entries[0],"keyboard");return}let nextIndex=(currentIndex+1)%entries.length;focusTabEntry(entries[nextIndex],"keyboard")}function focusPrev(root,scope){let entries=buildTabEntries(root,scope);if(entries.length===0)return;let currentIndex=currentTabIndex(entries);if(currentIndex===-1){focusTabEntry(entries[entries.length-1],"keyboard");return}let prevIndex=currentIndex<=0?entries.length-1:currentIndex-1;focusTabEntry(entries[prevIndex],"keyboard")}function focusDirection(root,direction,layoutFn){if(!activeElement)return;let explicitTarget=getExplicitFocusLink(activeElement,direction);if(explicitTarget){focusById(explicitTarget,root,"keyboard");return}let candidates=getTabOrder2(root),target=findSpatialTarget(activeElement,direction,candidates,layoutFn??((node)=>node.scrollRect));if(target)focus(target,"keyboard")}function subscribe(listener){return listeners.add(listener),()=>{listeners.delete(listener)}}function getSnapshot(){if(!snapshot)snapshot={activeId,previousId,focusOrigin,scopeStack:[...scopeStack],activeScopeId};return snapshot}return{get activeElement(){return activeElement},get activeId(){return activeId},get previousElement(){return previousElement},get previousId(){return previousId},get focusOrigin(){return focusOrigin},get scopeStack(){return[...scopeStack]},get scopeMemory(){return scopeMemory},get activeScopeId(){return activeScopeId},focus,focusById,focusVirtualId,blur,handleSubtreeRemoved,enterScope,exitScope,activateScope,getFocusPath,hasFocusWithin,focusNext,focusPrev,focusDirection,subscribe,getSnapshot,registerHookFocusable,setHookFocusableActive,get hasHookFocusables(){return hookFocusables.length>0},get hookFocusEnabled(){return hookFocusEnabled},setHookFocusEnabled}}function getAncestorPath(node){let path=[],current=node;while(current)path.push(current),current=current.parent;return path}function pointInRect(x,y,rect){return x>=rect.x&&x<rect.x+rect.width&&y>=rect.y&&y<rect.y+rect.height}function createKeyEvent(input,key,target){let propagationStopped=!1,defaultPrevented=!1;return{key:input,input,ctrl:key.ctrl,meta:key.meta,shift:key.shift,super:key.super,hyper:key.hyper,eventType:key.eventType,target,currentTarget:target,nativeEvent:{input,key},get propagationStopped(){return propagationStopped},get defaultPrevented(){return defaultPrevented},stopPropagation(){propagationStopped=!0},preventDefault(){defaultPrevented=!0}}}function createFocusEvent(type,target,relatedTarget){let propagationStopped=!1;return{type,target,relatedTarget,currentTarget:target,get propagationStopped(){return propagationStopped},stopPropagation(){propagationStopped=!0}}}function dispatchKeyEvent(event,dispatch){let path=getAncestorPath(event.target),mutableEvent=event,isRelease=event.eventType==="release",handlerProp=isRelease?"onKeyUp":"onKeyDown";if(!isRelease)for(let i=path.length-1;i>0;i--){if(event.propagationStopped)return;let node=path[i],handler=node.props.onKeyDownCapture;if(handler)mutableEvent.currentTarget=node,handler(event)}if(!event.propagationStopped){let target=path[0];mutableEvent.currentTarget=target;let handler=target.props[handlerProp];if(handler)handler(event,dispatch)}for(let i=1;i<path.length;i++){if(event.propagationStopped)return;let node=path[i],handler=node.props[handlerProp];if(handler)mutableEvent.currentTarget=node,handler(event,dispatch)}}function dispatchFocusEvent(event){let handlerProp=event.type==="focus"?"onFocus":"onBlur",path=getAncestorPath(event.target),mutableEvent=event;for(let node of path){if(event.propagationStopped)break;let handler=node.props[handlerProp];if(handler)mutableEvent.currentTarget=node,handler(event)}}init_context();import{useCallback as useCallback27,useContext as useContext34,useRef as useRef24,useSyncExternalStore as useSyncExternalStore11}from"react";function shallow(a,b){if(Object.is(a,b))return!0;if(typeof a!=="object"||typeof b!=="object"||a===null||b===null)return!1;let keysA=Object.keys(a),keysB=Object.keys(b);if(keysA.length!==keysB.length)return!1;for(let key of keysA)if(!Object.is(a[key],b[key]))return!1;return!0}function useTerm(selector,equalityFn){let term2=useContext34(TermContext);if(!term2)throw Error("useTerm must be used within a render(element, term) context");if(!selector)return term2;return useTermSelector(term2,selector,equalityFn)}function useTermSelector(term2,selector,equalityFn){let prevRef=useRef24(void 0),isEqual=equalityFn??Object.is,subscribe=useCallback27((listener)=>term2.subscribe(listener),[term2]),getSnapshot=useCallback27(()=>{let next=selector(term2);if(prevRef.current!==void 0&&isEqual(prevRef.current,next))return prevRef.current;return prevRef.current=next,next},[term2,selector,isEqual]);return useSyncExternalStore11(subscribe,getSnapshot,getSnapshot)}function useWindowSize(){return useTerm((t)=>{let s=t.getState();return{columns:s.cols,rows:s.rows}},shallow)}init_context();import{useTransition as useTransition2,useDeferredValue,useId as useId2}from"react";init_state();init_palettes();import React22,{createContext as createContext11,useContext as useContext35}from"react";var ThemeContext=createContext11(defaultDarkTheme);function useTheme(){return useContext35(ThemeContext)}import{jsxDEV as jsxDEV45}from"react/jsx-dev-runtime";function ThemeProvider({theme,children}){return jsxDEV45(ThemeContext.Provider,{value:theme,children},void 0,!1,void 0,this)}init_src2();init_derive2();init_color();init_resolve();function generateTheme(primary,dark){return{name:`${dark?"dark":"light"}-${primary}`,bg:"",fg:dark?"whiteBright":"black",muted:dark?"white":"blackBright",mutedbg:dark?"black":"white",surface:dark?"whiteBright":"black",surfacebg:dark?"black":"white",popover:dark?"whiteBright":"black",popoverbg:dark?"blackBright":"white",inverse:dark?"black":"whiteBright",inversebg:dark?"whiteBright":"black",cursor:"black",cursorbg:primary,selection:"black",selectionbg:primary,primary,primaryfg:"black",secondary:primary,secondaryfg:"black",accent:primary,accentfg:"black",error:dark?"redBright":"red",errorfg:"black",warning:primary,warningfg:"black",success:dark?"greenBright":"green",successfg:"black",info:dark?"cyanBright":"cyan",infofg:"black",border:"gray",inputborder:"gray",focusborder:dark?"blueBright":"blue",link:"blueBright",disabledfg:"gray",palette:["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]}}init_color();init_derive2();init_color();init_color();init_palettes();init_palettes();init_state();init_color();var THEME_TOKEN_KEYS=["bg","fg","muted","mutedbg","surface","surfacebg","popover","popoverbg","inverse","inversebg","cursor","cursorbg","selection","selectionbg","primary","primaryfg","secondary","secondaryfg","accent","accentfg","error","errorfg","warning","warningfg","success","successfg","info","infofg","border","inputborder","focusborder","link","disabledfg"],ALL_KNOWN_KEYS=new Set([...THEME_TOKEN_KEYS,"name","palette"]);init_src();init_color();init_derive2();init_color();init_derive2();init_src2();init_nord();init_catppuccin();async function detectTheme2(opts={}){let colorLevel=opts.caps?.colorLevel;if(colorLevel==="none"||colorLevel==="basic")return opts.caps?.darkBackground??!0?ansi16DarkTheme:ansi16LightTheme;let detected=await detectTerminalPalette(opts.timeoutMs),isDark=detected?.dark??opts.caps?.darkBackground??!0,fallback=opts.fallback??(isDark?nord:catppuccinLatte);if(!detected)return deriveTheme(fallback);let merged={...fallback,...stripNulls(detected.palette)};return deriveTheme(merged)}function stripNulls(partial){let result={};for(let[k,v]of Object.entries(partial))if(v!=null)result[k]=v;return result}init_palettes();init_palettes();init_ansi2();import{createContext as createContext12,useContext as useContext36,useEffect as useEffect21,useRef as useRef25}from"react";class HitRegistry{regions=new Map;register(id,region){this.regions.set(id,region)}unregister(id){this.regions.delete(id)}clear(){this.regions.clear()}get size(){return this.regions.size}hitTest(screenX,screenY){let bestMatch=null;for(let region of this.regions.values())if(screenX>=region.x&&screenX<region.x+region.width&&screenY>=region.y&&screenY<region.y+region.height){if(!bestMatch||region.zIndex>bestMatch.zIndex)bestMatch=region}return bestMatch?.target??null}hitTestAll(screenX,screenY){let matches=[];for(let region of this.regions.values())if(screenX>=region.x&&screenX<region.x+region.width&&screenY>=region.y&&screenY<region.y+region.height)matches.push(region);return matches.sort((a,b)=>b.zIndex-a.zIndex)}getAllRegions(){return new Map(this.regions)}}var hitRegionIdCounter=0;function generateHitRegionId(){return`hit-${++hitRegionIdCounter}`}function resetHitRegionIdCounter(){hitRegionIdCounter=0}var Z_INDEX={BACKGROUND:0,COLUMN_HEADER:5,CARD:10,FOLD_TOGGLE:15,LINK:20,FLOATING:50,DIALOG:100,DROPDOWN:150,TOOLTIP:200};var HitRegistryContext=createContext12(null);function useHitRegistry(){return useContext36(HitRegistryContext)}function useHitRegion(target,rect,zIndex=0,enabled=!0){let registry=useContext36(HitRegistryContext),idRef=useRef25(null);if(idRef.current===null)idRef.current=generateHitRegionId();useEffect21(()=>{if(!registry||!rect||!enabled){if(idRef.current&®istry)registry.unregister(idRef.current);return}let id=idRef.current;return registry.register(id,{x:rect.x,y:rect.y,width:rect.width,height:rect.height,target,zIndex}),()=>{registry.unregister(id)}},[registry,rect?.x,rect?.y,rect?.width,rect?.height,target,zIndex,enabled])}function useHitRegionCallback(target,zIndex=0,enabled=!0){let registry=useContext36(HitRegistryContext),idRef=useRef25(null);if(idRef.current===null)idRef.current=generateHitRegionId();return useEffect21(()=>{let id=idRef.current;return()=>{if(id&®istry)registry.unregister(id)}},[registry]),(rect)=>{if(!registry||!enabled){if(idRef.current&®istry)registry.unregister(idRef.current);return}registry.register(idRef.current,{x:rect.x,y:rect.y,width:rect.width,height:rect.height,target,zIndex})}}init_ansi2();init_context();import process2 from"node:process";import{createLogger as createLogger15}from"loggily";import{useCallback as useCallback28,useEffect as useEffect22,useMemo as useMemo17,useRef as useRef26}from"react";init_keys();init_reconciler();init_render_string();init_buffer();import{appendFileSync}from"node:fs";import{createLogger as createLogger13}from"loggily";function findNodeAtPosition(root,x,y){let result=null;function visit(node){let rect=node.scrollRect;if(!rect)return;if(x>=rect.x&&x<rect.x+rect.width&&y>=rect.y&&y<rect.y+rect.height){result=node;for(let child of node.children)visit(child)}}return visit(root),result}function findAllContainingNodes(root,x,y){let result=[];function visit(node){let rect=node.scrollRect;if(!rect)return;if(x>=rect.x&&x<rect.x+rect.width&&y>=rect.y&&y<rect.y+rect.height){result.push(node);for(let child of node.children)visit(child)}}return visit(root),result}function getNodePath(node){let parts=[],current=node;while(current){let props=current.props;if(props.id)parts.unshift(`#${props.id}`);else if(current.parent){let idx=current.parent.children.indexOf(current);parts.unshift(`[${idx}]`)}else parts.unshift("root");current=current.parent}return parts.join(" > ")}function rectChanged(a,b){if(a===b)return!1;if(!a||!b)return!0;return a.x!==b.x||a.y!==b.y||a.width!==b.width||a.height!==b.height}function getNodeDebugInfo(node){let props=node.props,childIndex=null;if(node.parent)childIndex=node.parent.children.indexOf(node);return{id:props.id,type:node.type,path:getNodePath(node),childIndex,dirtyFlags:{contentDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CONTENT_BIT),stylePropsDirty:isDirty(node.dirtyBits,node.dirtyEpoch,STYLE_PROPS_BIT),subtreeDirty:isDirty(node.dirtyBits,node.dirtyEpoch,SUBTREE_BIT),childrenDirty:isDirty(node.dirtyBits,node.dirtyEpoch,CHILDREN_BIT),layoutDirty:node.layoutDirty},layout:{prevLayout:node.prevLayout,boxRect:node.boxRect,scrollRect:node.scrollRect,layoutChanged:rectChanged(node.prevLayout,node.boxRect)},scroll:node.scrollState?{offset:node.scrollState.offset,prevOffset:node.scrollState.prevOffset,offsetChanged:node.scrollState.offset!==node.scrollState.prevOffset,contentHeight:node.scrollState.contentHeight,viewportHeight:node.scrollState.viewportHeight,hiddenAbove:node.scrollState.hiddenAbove,hiddenBelow:node.scrollState.hiddenBelow,firstVisibleChild:node.scrollState.firstVisibleChild,lastVisibleChild:node.scrollState.lastVisibleChild}:void 0,backgroundColor:props.backgroundColor,childCount:node.children.length,hidden:node.hidden??!1}}function findScrollAncestors(node){let result=[],current=node.parent;while(current){if(current.scrollState)result.push(current);current=current.parent}return result}function analyzeFastPath(node,scrollAncestors){let analysis=[];if(!node)return analysis.push("⚠ No node found at mismatch position - possible virtualization issue"),analysis;let flags=node;if(!isAnyDirty(flags.dirtyBits,flags.dirtyEpoch)&&!flags.layoutDirty)analysis.push("⚠ ALL DIRTY FLAGS FALSE - fast-path likely skipped this node");let scrollParent=scrollAncestors[0];if(scrollParent?.scrollState){let ss=scrollParent.scrollState,childIndex=node.parent?node.parent.children.indexOf(node):-1,inVisibleRange=childIndex>=ss.firstVisibleChild&&childIndex<=ss.lastVisibleChild;if(!inVisibleRange&&childIndex>=0)analysis.push(`⚠ Node index ${childIndex} is OUTSIDE visible range [${ss.firstVisibleChild}..${ss.lastVisibleChild}]`),analysis.push(" → Node should have been skipped, but mismatch suggests it should render");else if(inVisibleRange)analysis.push(`✓ Node index ${childIndex} is in visible range [${ss.firstVisibleChild}..${ss.lastVisibleChild}]`);if(ss.offset===ss.prevOffset)analysis.push("✓ Scroll offset unchanged (fast-path enabled for children)");else analysis.push(`⚠ Scroll offset CHANGED: ${ss.prevOffset} → ${ss.offset}`);if(ss.firstVisibleChild!==0||ss.lastVisibleChild!==scrollParent.children.length-1)analysis.push(` Visible range is partial: [${ss.firstVisibleChild}..${ss.lastVisibleChild}] of ${scrollParent.children.length} children`),analysis.push(" → If visible range changed, newly visible children need rendering")}if(!rectChanged(node.prevLayout,node.boxRect)&&node.prevLayout)analysis.push("✓ Layout unchanged (prevLayout matches boxRect)");else if(!node.prevLayout)analysis.push("⚠ prevLayout is NULL - node may never have been rendered before");else analysis.push("⚠ Layout CHANGED but node still skipped - dirty flag not set?");if(node.parent&&node.parent.children.length>1){let siblingMoved=!1;for(let sibling of node.parent.children)if(sibling!==node&&sibling.boxRect&&sibling.prevLayout){if(sibling.boxRect.x!==sibling.prevLayout.x||sibling.boxRect.y!==sibling.prevLayout.y){siblingMoved=!0;break}}if(siblingMoved)analysis.push("⚠ SIBLING POSITION CHANGED - parent should have detected this")}if(node.hidden)analysis.push("⚠ Node is HIDDEN (Suspense) - should not be rendered");return analysis}function buildMismatchContext(root,x,y,incrementalCell,freshCell,renderNum){let innermost=findNodeAtPosition(root,x,y),containing=findAllContainingNodes(root,x,y),scrollAncestorNodes=innermost?findScrollAncestors(innermost):[];return{position:{x,y},cells:{incremental:incrementalCell,fresh:freshCell},renderNum,node:innermost?getNodeDebugInfo(innermost):null,scrollAncestors:scrollAncestorNodes.map(getNodeDebugInfo),containingNodes:containing.map(getNodeDebugInfo),fastPathAnalysis:analyzeFastPath(innermost,scrollAncestorNodes)}}function formatMismatchContext(ctx,renderPhaseStats){let lines=[];lines.push(`SILVERY_STRICT: MISMATCH at (${ctx.position.x}, ${ctx.position.y}) on render #${ctx.renderNum}`),lines.push("");let{incremental,fresh}=ctx.cells;if(lines.push("CELL VALUES:"),lines.push(` incremental: char=${JSON.stringify(incremental.char)} fg=${JSON.stringify(incremental.fg)} bg=${JSON.stringify(incremental.bg)} attrs=${JSON.stringify(incremental.attrs)}`),lines.push(` fresh: char=${JSON.stringify(fresh.char)} fg=${JSON.stringify(fresh.fg)} bg=${JSON.stringify(fresh.bg)} attrs=${JSON.stringify(fresh.attrs)}`),lines.push(""),ctx.node){if(lines.push("INNERMOST NODE:"),lines.push(` path: ${ctx.node.path}`),lines.push(` type: ${ctx.node.type}`),ctx.node.backgroundColor)lines.push(` backgroundColor: ${ctx.node.backgroundColor}`);lines.push("");let flags=ctx.node.dirtyFlags,activeFlags=Object.entries(flags).filter(([,v])=>v).map(([k])=>k);if(lines.push("DIRTY FLAGS:"),activeFlags.length>0)lines.push(` active: ${activeFlags.join(", ")}`);else lines.push(" active: (none - node was clean)");lines.push(` all: contentDirty=${flags.contentDirty} stylePropsDirty=${flags.stylePropsDirty} subtreeDirty=${flags.subtreeDirty} childrenDirty=${flags.childrenDirty} layoutDirty=${flags.layoutDirty}`),lines.push("");let{layout}=ctx.node;if(lines.push("LAYOUT:"),layout.layoutChanged)lines.push(" ⚠ LAYOUT CHANGED:"),lines.push(` prevLayout: ${formatRect(layout.prevLayout)}`),lines.push(` boxRect: ${formatRect(layout.boxRect)}`);else lines.push(` boxRect: ${formatRect(layout.boxRect)}`);if(lines.push(` scrollRect: ${formatRect(layout.scrollRect)}`),lines.push(""),ctx.node.scroll)lines.push("SCROLL STATE (this node):"),formatScrollState(lines,ctx.node.scroll),lines.push("")}else lines.push("INNERMOST NODE: (none found at this position)"),lines.push("");if(ctx.scrollAncestors.length>0){lines.push("SCROLL ANCESTORS:");for(let ancestor of ctx.scrollAncestors)if(lines.push(` ${ancestor.path}:`),ancestor.scroll)formatScrollState(lines,ancestor.scroll," ");lines.push("")}if(ctx.containingNodes.length>1){lines.push("ALL CONTAINING NODES (outermost to innermost):");for(let node of ctx.containingNodes){let flags=Object.entries(node.dirtyFlags).filter(([,v])=>v).map(([k])=>k.replace("Dirty","")).join(","),flagStr=flags?` [${flags}]`:" [clean]",bgStr=node.backgroundColor?` bg=${node.backgroundColor}`:"",childStr=node.childIndex!==null?` child[${node.childIndex}]`:"";lines.push(` ${node.path}${flagStr}${bgStr}${childStr}`)}lines.push("")}if(ctx.fastPathAnalysis.length>0){lines.push("FAST-PATH ANALYSIS:");for(let line of ctx.fastPathAnalysis)lines.push(` ${line}`);lines.push("")}if(renderPhaseStats){let s=renderPhaseStats;lines.push("RENDER PHASE STATS:"),lines.push(` nodesVisited: ${s.nodesVisited} nodesRendered: ${s.nodesRendered} nodesSkipped: ${s.nodesSkipped}`),lines.push(` textNodes: ${s.textNodes} boxNodes: ${s.boxNodes} clearOps: ${s.clearOps}`);let flagLines=[];if(s.noPrevBuffer)flagLines.push(`noPrevBuffer=${s.noPrevBuffer}`);if(s.flagContentDirty)flagLines.push(`contentDirty=${s.flagContentDirty}`);if(s.flagStylePropsDirty)flagLines.push(`stylePropsDirty=${s.flagStylePropsDirty}`);if(s.flagLayoutChanged)flagLines.push(`layoutChanged=${s.flagLayoutChanged}`);if(s.flagSubtreeDirty)flagLines.push(`subtreeDirty=${s.flagSubtreeDirty}`);if(s.flagChildrenDirty)flagLines.push(`childrenDirty=${s.flagChildrenDirty}`);if(s.flagChildPositionChanged)flagLines.push(`childPositionChanged=${s.flagChildPositionChanged}`);if(flagLines.length>0)lines.push(` render reasons: ${flagLines.join(", ")}`);if(s.scrollContainerCount>0){if(lines.push(` scrollContainers: ${s.scrollContainerCount} viewportCleared: ${s.scrollViewportCleared}`),s.scrollClearReason)lines.push(` scrollClearReason: ${s.scrollClearReason}`)}if(s.normalChildrenRepaint>0){if(lines.push(` normalChildrenRepaint: ${s.normalChildrenRepaint}`),s.normalRepaintReason)lines.push(` normalRepaintReason: ${s.normalRepaintReason}`)}if(s.cascadeMinDepth<999){if(lines.push(` cascadeMinDepth: ${s.cascadeMinDepth}`),s.cascadeNodes)lines.push(` cascadeNodes: ${s.cascadeNodes}`)}lines.push("")}return lines.join(`
|
|
173
173
|
`)}function formatRect(rect){if(!rect)return"(null)";return`{x:${rect.x}, y:${rect.y}, w:${rect.width}, h:${rect.height}}`}function formatScrollState(lines,scroll,indent=" "){if(scroll.offsetChanged)lines.push(`${indent}⚠ SCROLL CHANGED: offset ${scroll.prevOffset} → ${scroll.offset}`);else lines.push(`${indent}offset: ${scroll.offset}`);lines.push(`${indent}viewport: ${scroll.viewportHeight}/${scroll.contentHeight} (hidden: ▲${scroll.hiddenAbove} ▼${scroll.hiddenBelow})`),lines.push(`${indent}visibleRange: [${scroll.firstVisibleChild}..${scroll.lastVisibleChild}]`)}init_unicode();init_unicode();function isTTY(stdout=process.stdout){if(!stdout.isTTY)return!1;if(process.env.TERM==="dumb")return!1;if(process.env.CI||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.JENKINS_URL||process.env.BUILDKITE||process.env.CIRCLECI||process.env.TRAVIS)return!1;return!0}function resolveNonTTYMode(options={}){let{mode="auto",stdout=process.stdout}=options;if(mode!=="auto")return mode;return isTTY(stdout)?"tty":"line-by-line"}function toLineByLineOutput(content,prevLineCount){let lines=content.split(`
|
|
174
174
|
`),output="";if(prevLineCount>0){if(output+="\r",prevLineCount>1)output+=`\x1B[${prevLineCount-1}A`}for(let i=0;i<lines.length;i++){if(i>0)output+=`
|
|
175
175
|
`;output+=lines[i],output+="\x1B[K"}let extraLines=prevLineCount-lines.length;if(extraLines>0){for(let i=0;i<extraLines;i++)output+=`
|
|
@@ -185,7 +185,7 @@ ${incText}
|
|
|
185
185
|
${freshText}`;if(process.env.DEBUG_LOG)appendFileSync(process.env.DEBUG_LOG,msg+`
|
|
186
186
|
`);throw log11.error?.(msg),new IncrementalRenderMismatchError(msg,{renderPhaseStats,mismatchContext:ctx})}}if(!found&&process.env.DEBUG_LOG)appendFileSync(process.env.DEBUG_LOG,`SILVERY_STRICT: render #${renderNum} OK
|
|
187
187
|
`)}let renderTime=Date.now()-startTime;this.stats.renderCount++,this.stats.lastRenderTime=renderTime,this.stats.avgRenderTime=(this.stats.avgRenderTime*(this.stats.renderCount-1)+renderTime)/this.stats.renderCount,this.lastRenderTime=Date.now(),render.spanData.renderCount=this.stats.renderCount,render.spanData.renderTime=renderTime,render.spanData.bytes=transformedOutput.length,log11.debug?.(`render #${this.stats.renderCount} complete: ${renderTime}ms, output: ${transformedOutput.length} bytes`);let threshold=this.stats.renderCount<=1?this.slowFrameThreshold*5:this.slowFrameThreshold;if(threshold>0&&renderTime>threshold)log11.debug?.(`slow frame: render #${this.stats.renderCount} took ${renderTime}ms (threshold: ${this.slowFrameThreshold}ms, bytes: ${transformedOutput.length})`);if(this.debugMode)this.logDebug(`Render #${this.stats.renderCount} took ${renderTime}ms`)}catch(error){throw log11.error?.(`render error: ${error}`),this.logError("Render error:",error),error}}catch(_catch){var _err=_catch,_hasErr=1}finally{__callDispose(__stack,_err,_hasErr)}}setupResizeListener(){let resizeTimeout=null,handleResize=()=>{if(resizeTimeout)clearTimeout(resizeTimeout);resizeTimeout=setTimeout(()=>{resizeTimeout=null,this.prevBuffer=null,this.scheduleRender()},50)};this.stdout.on("resize",handleResize),this.resizeCleanup=()=>{if(this.stdout.off("resize",handleResize),resizeTimeout)clearTimeout(resizeTimeout)}}logDebug(message){log11.debug?.(message)}logError(message,error){if(error instanceof Error)log11.error?.(`${message} ${error.stack??error.message}`);else log11.error?.(`${message} ${String(error)}`)}}init_output_guard();function isTerm(value){if(!value||typeof value!=="object"&&typeof value!=="function")return!1;let obj=value;return typeof obj.hasCursor==="function"&&typeof obj.hasInput==="function"&&typeof obj.hasColor==="function"&&typeof obj.write==="function"}function isTermDef(value){if(!value||typeof value!=="object")return!1;return typeof value.hasCursor!=="function"}function resolveTermDef(def){let width=def.width??def.stdout?.columns??80,height=def.height??def.stdout?.rows??24,colors=null;if(def.colors===!0)colors=detectColorLevel(def.stdout);else if(def.colors===!1||def.colors===null)colors=null;else if(def.colors)colors=def.colors;else colors=detectColorLevel(def.stdout);let events=null;if(def.events)events=def.events;else if(def.stdin)events=createInputEvents(def.stdin);return{stdout:def.stdout??null,width,height,colors,events,isStatic:events===null}}function resolveFromTerm(term2){return{stdout:term2.stdout,width:term2.cols??80,height:term2.rows??24,colors:term2.hasColor(),events:createInputEvents(term2.stdin),isStatic:!1}}function detectColorLevel(stdout){if(process.env.NO_COLOR!==void 0)return null;if(process.env.FORCE_COLOR!==void 0){let level=Number.parseInt(process.env.FORCE_COLOR,10);if(level===0)return null;if(level===1)return"basic";if(level===2)return"256";if(level>=3)return"truecolor";return"basic"}if(process.env.COLORTERM==="truecolor"||process.env.COLORTERM==="24bit")return"truecolor";if(!stdout?.isTTY)return null;let term2=process.env.TERM??"";if(term2.includes("256color")||term2.includes("256"))return"256";return"basic"}function createInputEvents(stdin){return{[Symbol.asyncIterator](){let buffer=[],resolveNext=null,done=!1,handleData=(chunk)=>{let data=typeof chunk==="string"?chunk:chunk.toString("utf8");for(let char of data){let event={type:"key",key:char,ctrl:char.charCodeAt(0)<32&&char!=="\r"&&char!==`
|
|
188
|
-
`&&char!=="\t"};if(resolveNext)resolveNext({value:event,done:!1}),resolveNext=null;else buffer.push(event)}},handleEnd=()=>{if(done=!0,resolveNext)resolveNext({value:void 0,done:!0}),resolveNext=null};if(stdin.isTTY&&typeof stdin.setRawMode==="function")stdin.setEncoding("utf8"),stdin.on("data",handleData),stdin.on("end",handleEnd);return{next(){let buffered=buffer.shift();if(buffered)return Promise.resolve({value:buffered,done:!1});if(done)return Promise.resolve({value:void 0,done:!0});return new Promise((resolve)=>{resolveNext=resolve})},return(){return done=!0,stdin.off("data",handleData),stdin.off("end",handleEnd),Promise.resolve({value:void 0,done:!0})}}}}}init_keys();init_flexily_zero_adapter();import{jsxDEV as jsxDEV46}from"react/jsx-dev-runtime";var log13=createLogger15("silvery:render");class RenderHandle{promise;constructor(promise){this.promise=promise}then(onfulfilled,onrejected){return this.promise.then(onfulfilled,onrejected)}catch(onrejected){return this.promise.catch(onrejected)}finally(onfinally){return this.promise.finally(onfinally)}async run(){await(await this.promise).waitUntilExit()}}var instances=new Map;async function ensureLayoutEngineInitialized(engineType){if(isLayoutEngineInitialized()){log13.debug?.("Layout engine already initialized");return}log13.debug?.(`Initializing layout engine (${engineType??"default"})...`);let startTime=Date.now(),{ensureDefaultLayoutEngine:ensureDefaultLayoutEngine2}=await Promise.resolve().then(() => exports_layout_engine);await ensureDefaultLayoutEngine2(engineType),log13.debug?.(`Layout engine initialized in ${Date.now()-startTime}ms`)}function
|
|
188
|
+
`&&char!=="\t"};if(resolveNext)resolveNext({value:event,done:!1}),resolveNext=null;else buffer.push(event)}},handleEnd=()=>{if(done=!0,resolveNext)resolveNext({value:void 0,done:!0}),resolveNext=null};if(stdin.isTTY&&typeof stdin.setRawMode==="function")stdin.setEncoding("utf8"),stdin.on("data",handleData),stdin.on("end",handleEnd);return{next(){let buffered=buffer.shift();if(buffered)return Promise.resolve({value:buffered,done:!1});if(done)return Promise.resolve({value:void 0,done:!0});return new Promise((resolve)=>{resolveNext=resolve})},return(){return done=!0,stdin.off("data",handleData),stdin.off("end",handleEnd),Promise.resolve({value:void 0,done:!0})}}}}}init_keys();function createSubscriberList(){return{input:new Set,paste:new Set}}init_flexily_zero_adapter();import{jsxDEV as jsxDEV46}from"react/jsx-dev-runtime";var log13=createLogger15("silvery:render");class RenderHandle{promise;constructor(promise){this.promise=promise}then(onfulfilled,onrejected){return this.promise.then(onfulfilled,onrejected)}catch(onrejected){return this.promise.catch(onrejected)}finally(onfinally){return this.promise.finally(onfinally)}async run(){await(await this.promise).waitUntilExit()}}var instances=new Map;async function ensureLayoutEngineInitialized(engineType){if(isLayoutEngineInitialized()){log13.debug?.("Layout engine already initialized");return}log13.debug?.(`Initializing layout engine (${engineType??"default"})...`);let startTime=Date.now(),{ensureDefaultLayoutEngine:ensureDefaultLayoutEngine2}=await Promise.resolve().then(() => exports_layout_engine);await ensureDefaultLayoutEngine2(engineType),log13.debug?.(`Layout engine initialized in ${Date.now()-startTime}ms`)}function SilveryApp({children,onInputSubscribe,exitOnCtrlC,stdoutWrite,stdout,onExit,onPause,onResume,onScrollback,getRoot:getRootProp,handleFocusCycling=!0}){let subscribersRef=useRef26(null);if(!subscribersRef.current)subscribersRef.current=createSubscriberList();let subscribers=subscribersRef.current,handleExit=useCallback28((error)=>{onExit(error)},[onExit]),exitOnCtrlCRef=useRef26(exitOnCtrlC);exitOnCtrlCRef.current=exitOnCtrlC;let handleExitRef=useRef26(handleExit);handleExitRef.current=handleExit;let focusManagerRef=useRef26(null),getRootRef=useRef26(getRootProp);getRootRef.current=getRootProp;let handleFocusCyclingRef=useRef26(handleFocusCycling);handleFocusCyclingRef.current=handleFocusCycling;let handleChunkRef=useRef26(null);if(handleChunkRef.current===null){let processSingleKey=function(chunk){if(log13.debug?.(`processSingleKey: ${JSON.stringify(chunk)}`),chunk==="\x03"&&exitOnCtrlCRef.current){handleExitRef.current();return}if(handleFocusCyclingRef.current){let fm=focusManagerRef.current,root=getRootRef.current?.();if(fm&&root){let[,key2]=parseKey(chunk);if(key2.tab&&!key2.shift){fm.focusNext(root),reconciler.flushSyncWork();return}if(key2.tab&&key2.shift){fm.focusPrev(root),reconciler.flushSyncWork();return}if(key2.escape&&fm.activeElement){fm.blur(),reconciler.flushSyncWork();return}}}let[input,key]=parseKey(chunk);runWithDiscreteEvent(()=>{for(let handler of subscribers.input)handler(input,key)}),reconciler.flushSyncWork()};handleChunkRef.current=(rawChunk)=>{log13.debug?.(`handleChunk: ${JSON.stringify(rawChunk)}`);let pasteResult=parseBracketedPaste(rawChunk);if(pasteResult){for(let handler of subscribers.paste)handler(pasteResult.content);return}for(let keypress of splitRawInput(rawChunk))processSingleKey(keypress)}}let handleChunk=handleChunkRef.current;useEffect22(()=>{if(!onInputSubscribe)return;return onInputSubscribe(handleChunk)},[onInputSubscribe,handleChunk]);let stdoutContextValue=useMemo17(()=>({stdout,write:stdoutWrite,notifyScrollback:onScrollback}),[stdout,stdoutWrite,onScrollback]),runtimeContextValue=useMemo17(()=>({on(event,handler){if(event==="input"){let typed=handler;return subscribers.input.add(typed),()=>{subscribers.input.delete(typed)}}if(event==="paste"){let typed=handler;return subscribers.paste.add(typed),()=>{subscribers.paste.delete(typed)}}return()=>{}},emit(){},exit:handleExit,pause:onPause,resume:onResume}),[subscribers,handleExit,onPause,onResume]),focusManager=useMemo17(()=>createFocusManager(),[]);return focusManagerRef.current=focusManager,useEffect22(()=>{return setOnNodeRemoved((removedNode)=>focusManager.handleSubtreeRemoved(removedNode)),()=>setOnNodeRemoved(null)},[focusManager]),jsxDEV46(StdoutContext.Provider,{value:stdoutContextValue,children:jsxDEV46(StderrContext.Provider,{value:{stderr:process2.stderr,write:(data)=>{process2.stderr.write(data)}},children:jsxDEV46(FocusManagerContext.Provider,{value:focusManager,children:jsxDEV46(RuntimeContext.Provider,{value:runtimeContextValue,children},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}class SilveryInstance{stdout;stdin;exitOnCtrlC;debug;alternateScreen;mode;nonTTYMode;scheduler=null;cursorStore;container=null;fiberRoot=null;lastElement=null;isUnmounted=!1;exitPromise=null;resolveExit=null;rejectExit=null;resizeCleanup=null;signalCleanup=null;outputGuard=null;constructor(options){log13.debug?.("SilveryInstance constructor start");let startTime=Date.now();if(this.stdout=options.stdout,this.stdin=options.stdin,this.exitOnCtrlC=options.exitOnCtrlC,this.debug=options.debug,this.alternateScreen=options.alternateScreen,this.mode=options.mode,this.nonTTYMode=options.nonTTYMode,this.exitPromise=new Promise((resolve,reject)=>{this.resolveExit=resolve,this.rejectExit=reject}),this.alternateScreen)this.stdout.write(enterAlternateScreen());if(this.stdout.isTTY)this.stdout.write(enableKittyKeyboard2());if(this.stdout.isTTY)enableBracketedPaste2(this.stdout);if(this.cursorStore=createCursorStore(),this.alternateScreen&&this.stdout===process2.stdout)this.outputGuard=createOutputGuard();this.container=createContainer(()=>{this.scheduler?.scheduleRender()}),this.fiberRoot=createFiberRoot(this.container),this.scheduler=new RenderScheduler({stdout:this.stdout,root:getContainerRoot(this.container),debug:this.debug,mode:this.mode,nonTTYMode:this.nonTTYMode,cursorAccessors:this.cursorStore.accessors,writeOutput:this.outputGuard?(data)=>this.outputGuard.writeStdout(data):void 0}),this.setupResizeListener(),this.setupSignalHandlers(),log13.debug?.(`SilveryInstance constructor complete in ${Date.now()-startTime}ms`)}render(element){log13.debug?.("SilveryInstance.render() start");let startTime=Date.now();if(this.isUnmounted||!this.fiberRoot)return;this.lastElement=element;let tree=jsxDEV46(CursorProvider,{store:this.cursorStore,children:jsxDEV46(SilveryApp,{onInputSubscribe:this.subscribeToInput,exitOnCtrlC:this.exitOnCtrlC,stdoutWrite:(data)=>{if(this.outputGuard)this.outputGuard.writeStdout(data);else this.stdout.write(data)},stdout:this.stdout,onExit:this.handleExit,onPause:this.pause,onResume:this.resume,onScrollback:this.handleScrollback,getRoot:()=>this.container?getContainerRoot(this.container):null,children:element},void 0,!1,void 0,this)},void 0,!1,void 0,this);log13.debug?.("SilveryInstance.render() calling updateContainerSync"),reconciler.updateContainerSync(tree,this.fiberRoot,null,null),log13.debug?.(`SilveryInstance.render() updateContainerSync complete in ${Date.now()-startTime}ms`),log13.debug?.("SilveryInstance.render() calling flushSyncWork");let flushStart=Date.now();reconciler.flushSyncWork(),log13.debug?.(`SilveryInstance.render() flushSyncWork complete in ${Date.now()-flushStart}ms (total: ${Date.now()-startTime}ms)`)}rerender=(element)=>{this.render(element)};flush=()=>{if(this.isUnmounted||!this.lastElement)return;this.render(this.lastElement),this.scheduler?.forceRender()};[Symbol.dispose]=()=>this.unmount();unmount=()=>{if(this.isUnmounted)return;if(this.isUnmounted=!0,this.scheduler?.forceRender(),this.resizeCleanup?.(),this.signalCleanup?.(),this.outputGuard)this.outputGuard.dispose(),this.outputGuard=null;if(this.stdout.isTTY)disableBracketedPaste2(this.stdout),this.stdout.write(disableKittyKeyboard2());if(this.stdout.isTTY)resetWindowTitle(this.stdout);if(this.alternateScreen)this.stdout.write(leaveAlternateScreen());else if(this.mode==="inline")this.stdout.write(`${ANSI.SYNC_END}${ANSI.CURSOR_SHOW}
|
|
189
189
|
`);else this.stdout.write(ANSI.SYNC_END);let{stdin}=this;if(stdin.removeAllListeners("readable"),stdin.removeAllListeners("data"),stdin.destroy(),typeof stdin.unref==="function")stdin.unref();if(this.fiberRoot)reconciler.updateContainer(null,this.fiberRoot,null,()=>{});this.scheduler?.dispose(),instances.delete(this.stdout),this.resolveExit?.()};waitUntilExit=()=>{return this.exitPromise??Promise.resolve()};clear=()=>{this.scheduler?.clear()};pause=()=>{this.scheduler?.pause()};resume=()=>{this.scheduler?.resume(),this.scheduler?.forceRender()};handleExit=(error)=>{if(this.isUnmounted)return;if(error)this.rejectExit?.(error);this.unmount()};handleScrollback=(lines)=>{this.scheduler?.addScrollbackLines(lines)};setupResizeListener(){let handleResize=()=>{this.scheduler?.clear(),this.scheduler?.forceRender()};this.stdout.on("resize",handleResize),this.resizeCleanup=()=>{this.stdout.off("resize",handleResize)}}setupSignalHandlers(){let handleSignal=()=>{this.unmount()};process2.on("SIGINT",handleSignal),process2.on("SIGTERM",handleSignal),this.signalCleanup=()=>{process2.off("SIGINT",handleSignal),process2.off("SIGTERM",handleSignal)}}subscribeToInput=(handler)=>{let{stdin}=this,isRawModeSupported=stdin.isTTY===!0;if(log13.debug?.(`subscribeToInput: stdin=${stdin===process2.stdin?"process.stdin":"other"}, isTTY=${stdin.isTTY}, isRawModeSupported=${isRawModeSupported}`),!isRawModeSupported)return log13.debug?.("subscribeToInput: raw mode not supported, skipping"),()=>{};let handleReadable=()=>{let chunk;while((chunk=stdin.read())!==null)log13.debug?.(`subscribeToInput: stdin.read() returned: ${JSON.stringify(chunk)}`),handler(chunk)};return stdin.setEncoding("utf8"),stdin.ref(),stdin.setRawMode(!0),stdin.on("readable",handleReadable),log13.debug?.(`subscribeToInput: enabled raw mode, stdin.isRaw=${stdin.isRaw}`),()=>{log13.debug?.("subscribeToInput: cleanup — disabling raw mode"),stdin.setRawMode(!1),stdin.off("readable",handleReadable),stdin.unref()}}}function render(element,termOrDef,options){return new RenderHandle(renderAsync(element,termOrDef,options))}async function renderAsync(element,termOrDef,options){let resolved,term2;if(!termOrDef)resolved=resolveTermDef({}),term2=createTerm({color:resolved.colors??void 0});else if(isTerm(termOrDef))resolved=resolveFromTerm(termOrDef),term2=termOrDef;else if(isTermDef(termOrDef))resolved=resolveTermDef(termOrDef),term2=createTerm({stdout:termOrDef.stdout,stdin:termOrDef.stdin,color:resolved.colors??void 0});else throw Error("Invalid second argument: expected Term, TermDef, or undefined");let mergedOptions={...options,stdout:options?.stdout??resolved.stdout??term2.stdout,stdin:options?.stdin??(resolved.isStatic?void 0:term2.stdin)};return renderImpl(element,mergedOptions,term2,resolved)}async function renderImpl(element,options,term2,resolved){log13.debug?.(`render() called, isStatic=${resolved.isStatic}`);let renderStart=Date.now();if(await ensureLayoutEngineInitialized(options.layoutEngine),log13.debug?.(`render(): layout engine ready in ${Date.now()-renderStart}ms`),process2.env.DEBUG_DEVTOOLS){let{autoConnectDevTools:autoConnectDevTools2}=await Promise.resolve().then(() => (init_devtools(),exports_devtools));await autoConnectDevTools2()}if(resolved.isStatic)return renderStaticImpl(element,term2,resolved);let mode=options.mode??"fullscreen",resolvedOptions={stdout:options.stdout??process2.stdout,stdin:options.stdin??process2.stdin,exitOnCtrlC:options.exitOnCtrlC??!0,debug:options.debug??!1,patchConsole:options.patchConsole??!0,alternateScreen:options.alternateScreen??mode==="fullscreen",mode,nonTTYMode:options.nonTTYMode??"auto"},instance=instances.get(resolvedOptions.stdout);if(!instance)log13.debug?.("render(): creating new SilveryInstance"),instance=new SilveryInstance(resolvedOptions),instances.set(resolvedOptions.stdout,instance),log13.debug?.(`render(): SilveryInstance created in ${Date.now()-renderStart}ms`);let wrappedElement=jsxDEV46(TermContext.Provider,{value:term2,children:element},void 0,!1,void 0,this);return log13.debug?.("render(): calling instance.render()"),instance.render(wrappedElement),log13.debug?.(`render(): instance.render() complete, total: ${Date.now()-renderStart}ms`),{rerender:(newElement)=>instance.rerender(jsxDEV46(TermContext.Provider,{value:term2,children:newElement},void 0,!1,void 0,this)),unmount:instance.unmount,[Symbol.dispose]:instance.unmount,waitUntilExit:instance.waitUntilExit,clear:instance.clear,flush:instance.flush,pause:instance.pause,resume:instance.resume}}async function renderStaticImpl(element,term2,resolved){log13.debug?.(`renderStatic() called, dimensions: ${resolved.width}x${resolved.height}`);let{renderStringSync:renderStringSync2}=await Promise.resolve().then(() => (init_render_string(),exports_render_string)),wrappedElement=jsxDEV46(TermContext.Provider,{value:term2,children:element},void 0,!1,void 0,this),output=renderStringSync2(wrappedElement,{width:resolved.width,height:resolved.height,plain:resolved.colors===null});if(resolved.stdout)resolved.stdout.write(output),resolved.stdout.write(`
|
|
190
190
|
`);let lastFrame=output;return{rerender:(newElement)=>{let newWrapped=jsxDEV46(TermContext.Provider,{value:term2,children:newElement},void 0,!1,void 0,this);if(lastFrame=renderStringSync2(newWrapped,{width:resolved.width,height:resolved.height,plain:resolved.colors===null}),resolved.stdout)resolved.stdout.write(lastFrame),resolved.stdout.write(`
|
|
191
191
|
`)},unmount:()=>{},[Symbol.dispose](){},waitUntilExit:()=>Promise.resolve(),clear:()=>{},pause:()=>{},resume:()=>{},get lastFrame(){return lastFrame}}}function renderSync(element,termOrDef,options){if(!isLayoutEngineInitialized())throw Error("Layout engine is not initialized. Call render() (async) first, or initialize manually with setLayoutEngine().");let resolved,term2;if(!termOrDef)resolved=resolveTermDef({}),term2=createTerm({color:resolved.colors??void 0});else if(isTerm(termOrDef))resolved=resolveFromTerm(termOrDef),term2=termOrDef;else if(isTermDef(termOrDef))resolved=resolveTermDef(termOrDef),term2=createTerm({stdout:termOrDef.stdout,stdin:termOrDef.stdin,color:resolved.colors??void 0});else throw Error("Invalid second argument: expected Term, TermDef, or undefined");if(resolved.isStatic){let wrappedElement2=jsxDEV46(TermContext.Provider,{value:term2,children:element},void 0,!1,void 0,this),lastFrame=renderStringSync(wrappedElement2,{width:resolved.width,height:resolved.height,plain:resolved.colors===null});if(resolved.stdout)resolved.stdout.write(lastFrame),resolved.stdout.write(`
|
|
@@ -339,6 +339,6 @@ ${details}`+(styleMismatches.length>5?`
|
|
|
339
339
|
${violations.length} violation(s):
|
|
340
340
|
${details}`+(violations.length>10?`
|
|
341
341
|
... and ${violations.length-10} more`:"")+(screenshotPath?`
|
|
342
|
-
Screenshot saved: ${screenshotPath}`:""))}}};return Object.defineProperties(wrapped,{id:{value:command.id,enumerable:!0},name:{value:command.name,enumerable:!0},help:{value:command.help,enumerable:!0},keys:{value:command.keys,enumerable:!0}}),wrapped},has(target,prop){return Reflect.has(target,prop)},ownKeys(target){return Reflect.ownKeys(target)},getOwnPropertyDescriptor(target,prop){return Reflect.getOwnPropertyDescriptor(target,prop)}});return Object.assign(app,{cmd:wrappedCmd})}init_context();init_keys();import{useCallback as useCallback30,useId,useLayoutEffect as useLayoutEffect7,useMemo as useMemo19,useRef as useRef28}from"react";import{jsxDEV as jsxDEV47}from"react/jsx-dev-runtime";function createSubscriberList2(){return{input:new Set,paste:new Set}}function toRawData(input,key){let name=keyToName(key);if(name){let mods=[];if(key.ctrl)mods.push("Control");if(key.shift)mods.push("Shift");if(key.meta)mods.push("Meta");if(key.super)mods.push("Super");if(key.hyper)mods.push("Hyper");return mods.push(name),keyToAnsi(mods.join("+"))}if(key.ctrl)return keyToAnsi(`Control+${input}`);return input}function InputBoundary({active,onEscape,exitKey="Escape",children}){let subscribersRef=useRef28(null);if(!subscribersRef.current)subscribersRef.current=createSubscriberList2();let subscribers=subscribersRef.current,activeRef=useRef28(active);activeRef.current=active;let onEscapeRef=useRef28(onEscape);onEscapeRef.current=onEscape;let exitKeyRef=useRef28(exitKey);exitKeyRef.current=exitKey;let handler=useCallback30((input,key)=>{if(!activeRef.current)return!1;let currentExitKey=exitKeyRef.current;if(currentExitKey!==null){let name=keyToName(key);if(name===currentExitKey||!name&&input===currentExitKey)return onEscapeRef.current?.(),!0}let raw=toRawData(input,key),[parsedInput,parsedKey]=parseKey(raw);for(let h of subscribers.input)h(parsedInput,parsedKey);return!0},[subscribers]),layerId=useId();useInputLayer(`input-boundary-${layerId}`,handler);let runtimeContextValue=useMemo19(()=>({on(event,handler2){if(event==="input"){let typed=handler2;return subscribers.input.add(typed),()=>{subscribers.input.delete(typed)}}if(event==="paste"){let typed=handler2;return subscribers.paste.add(typed),()=>{subscribers.paste.delete(typed)}}return()=>{}},emit(){},exit:()=>{}}),[subscribers]);return useLayoutEffect7(()=>{return()=>{subscribers.input.clear(),subscribers.paste.clear()}},[subscribers]),jsxDEV47(RuntimeContext.Provider,{value:runtimeContextValue,children:jsxDEV47(InputLayerProvider,{children},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var easings={linear:(t)=>t,ease:(t)=>t<0.5?2*t*t:-1+(4-2*t)*t,easeIn:(t)=>t*t,easeOut:(t)=>t*(2-t),easeInOut:(t)=>t<0.5?2*t*t:-1+(4-2*t)*t,easeInCubic:(t)=>t*t*t,easeOutCubic:(t)=>--t*t*t+1};function resolveEasing(easing){return typeof easing==="function"?easing:easings[easing]}import{useState as useState21,useEffect as useEffect24,useRef as useRef29,useCallback as useCallback31}from"react";var TICK_MS=33;function useAnimation2(options){let{duration,easing="linear",delay=0,onComplete,enabled=!0}=options,[value,setValue]=useState21(0),[isAnimating,setIsAnimating]=useState21(!1),startTimeRef=useRef29(0),intervalRef=useRef29(null),onCompleteRef=useRef29(onComplete);onCompleteRef.current=onComplete;let epochRef=useRef29(0),easingFn=resolveEasing(easing),stopInterval=useCallback31(()=>{if(intervalRef.current!==null)clearInterval(intervalRef.current),intervalRef.current=null},[]),startAnimation=useCallback31(()=>{stopInterval(),epochRef.current++;let epoch=epochRef.current;setValue(0),setIsAnimating(!0);let begin=()=>{if(epochRef.current!==epoch)return;startTimeRef.current=performance.now(),intervalRef.current=setInterval(()=>{if(epochRef.current!==epoch)return;let elapsed=performance.now()-startTimeRef.current,raw=Math.min(elapsed/duration,1),eased=easingFn(raw);if(setValue(eased),raw>=1)stopInterval(),setIsAnimating(!1),onCompleteRef.current?.()},TICK_MS)};if(delay>0)setTimeout(()=>begin(),delay);else begin()},[duration,delay,easingFn,stopInterval]);useEffect24(()=>{if(!enabled){stopInterval(),setValue(0),setIsAnimating(!1);return}return startAnimation(),()=>{stopInterval()}},[enabled,startAnimation,stopInterval]);let reset=useCallback31(()=>{startAnimation()},[startAnimation]);return{value,isAnimating,reset}}import{useState as useState22,useEffect as useEffect25,useRef as useRef30}from"react";var TICK_MS2=33;function useTransition(targetValue,options){let{duration=300,easing="easeOut"}=options??{},[currentValue,setCurrentValue]=useState22(targetValue),fromRef=useRef30(targetValue),toRef=useRef30(targetValue),startTimeRef=useRef30(0),intervalRef=useRef30(null),isFirstRef=useRef30(!0),easingFn=resolveEasing(easing);return useEffect25(()=>{if(isFirstRef.current){isFirstRef.current=!1;return}if(targetValue===toRef.current)return;if(fromRef.current=currentValue,toRef.current=targetValue,startTimeRef.current=performance.now(),intervalRef.current!==null)clearInterval(intervalRef.current);return intervalRef.current=setInterval(()=>{let elapsed=performance.now()-startTimeRef.current,raw=Math.min(elapsed/duration,1),eased=easingFn(raw),interpolated=fromRef.current+(toRef.current-fromRef.current)*eased;if(setCurrentValue(interpolated),raw>=1){if(setCurrentValue(toRef.current),intervalRef.current!==null)clearInterval(intervalRef.current),intervalRef.current=null}},TICK_MS2),()=>{if(intervalRef.current!==null)clearInterval(intervalRef.current),intervalRef.current=null}},[targetValue,duration,easingFn]),currentValue}import{useEffect as useEffect26,useRef as useRef31}from"react";function useInterval(callback,ms,enabled=!0){let callbackRef=useRef31(callback);callbackRef.current=callback,useEffect26(()=>{if(!enabled)return;let id=setInterval(()=>{callbackRef.current()},ms);return()=>{clearInterval(id)}},[ms,enabled])}import{useCallback as useCallback32,useEffect as useEffect27,useRef as useRef32}from"react";function useTimeout(callback,ms,enabled=!0){let callbackRef=useRef32(callback);callbackRef.current=callback;let timerRef=useRef32(null),clear=useCallback32(()=>{if(timerRef.current!==null)clearTimeout(timerRef.current),timerRef.current=null},[]),reset=useCallback32(()=>{if(clear(),enabled)timerRef.current=setTimeout(()=>{timerRef.current=null,callbackRef.current()},ms)},[ms,enabled,clear]);return useEffect27(()=>{if(!enabled){clear();return}return timerRef.current=setTimeout(()=>{timerRef.current=null,callbackRef.current()},ms),clear},[ms,enabled,clear]),{reset,clear}}import{useRef as useRef33}from"react";function useLatest(value){let ref=useRef33(value);return ref.current=value,ref}import{useCallback as useCallback33,useEffect as useEffect28,useRef as useRef34,useReducer as useReducer4}from"react";function collect(result){if(Array.isArray(result))return result;return[result,[]]}function delay(ms,msg,id){return{type:"delay",ms,msg,id}}function interval(ms,msg,id){return{type:"interval",ms,msg,id}}function cancel(id){return{type:"cancel",id}}var fx={delay,interval,cancel};function createTimerRunners(){let timers=new Map,nextAnon=0;function clearTimer(id){let existing=timers.get(id);if(existing!==void 0)clearTimeout(existing),clearInterval(existing),timers.delete(id)}let runners={delay(effect2,dispatch){let id=effect2.id??`__anon_${nextAnon++}`;clearTimer(id);let timer=setTimeout(()=>{timers.delete(id),dispatch(effect2.msg)},effect2.ms);timers.set(id,timer)},interval(effect2,dispatch){clearTimer(effect2.id);let timer=setInterval(()=>{dispatch(effect2.msg)},effect2.ms);timers.set(effect2.id,timer)},cancel(effect2){clearTimer(effect2.id)}};function cleanup(){for(let[id]of timers)clearTimer(id)}return{runners,cleanup}}function useTea(initialState,update,customRunners){let timerRef=useRef34(null);if(timerRef.current===null)timerRef.current=createTimerRunners();let{runners:timerRunners,cleanup}=timerRef.current,customRunnersRef=useRef34(customRunners);customRunnersRef.current=customRunners;let pendingEffectsRef=useRef34([]),[state,reactDispatch]=useReducer4((prevState,msg)=>{let result=update(prevState,msg),[newState,effects]=collect(result);if(effects.length>0)pendingEffectsRef.current.push(...effects);return newState},void 0,()=>typeof initialState==="function"?initialState():initialState),sendRef=useRef34(()=>{}),executeEffects=useCallback33(()=>{if(pendingEffectsRef.current.length===0)return;let effects=pendingEffectsRef.current.splice(0);for(let effect2 of effects){let timerRunner=timerRunners[effect2.type];if(timerRunner){timerRunner(effect2,sendRef.current);continue}let customRunner=customRunnersRef.current?.[effect2.type];if(customRunner)customRunner(effect2,sendRef.current)}},[timerRunners]),send=useCallback33((msg)=>{reactDispatch(msg),queueMicrotask(executeEffects)},[reactDispatch,executeEffects]);return sendRef.current=send,useEffect28(()=>{executeEffects()},[executeEffects]),useEffect28(()=>cleanup,[cleanup]),[state,send]}init_keys();init_ag();init_ag();init_output_phase();init_ag();init_reconciler();init_context();import React25 from"react";init_keys();init_buffer();init_pipeline2();init_output_phase();init_text_sizing();init_src2();init_mouse();init_unicode();init_unicode();init_errors();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_unicode();init_keys();import React26,{createContext as createContext13,Fragment as Fragment4}from"react";var InkCursorStoreCtx=createContext13(null);import React27,{createContext as createContext14,Fragment as Fragment5,useCallback as useCallback34,useEffect as useEffect29,useMemo as useMemo20,useState as useState23}from"react";var InkFocusContext=createContext14({activeId:void 0,isFocusEnabled:!0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){},blur(){}});import process3 from"node:process";import React29,{createContext as createContext15,useContext as useContext36,useEffect as useEffect30,useRef as useRef35}from"react";init_esm();init_ansi2();init_context();init_pipeline2();init_ag();init_text_sizing();init_reconciler();init_buffer();init_output_phase();init_pipeline2();init_reconciler();init_keys();init_keys2();init_ansi2();init_buffer();init_context();init_pipeline2();init_reconciler();import React28 from"react";init_term_provider();init_output_guard();import{createLogger as createLogger17}from"loggily";var perfLog=createLogger17("silvery:perf");import{createLogger as createLogger18}from"loggily";import{jsxDEV as jsxDEV48}from"react/jsx-dev-runtime";var log14=createLogger18("silvery:app"),ENV=typeof process3<"u"?process3.env:void 0,NO_INCREMENTAL=ENV?.SILVERY_NO_INCREMENTAL==="1",STRICT_MODE=(()=>{let v=ENV?.SILVERY_STRICT;return!!v&&v!=="0"&&v!=="false"})(),CELL_DEBUG=(()=>{let v=ENV?.SILVERY_CELL_DEBUG;if(!v||!v.includes(","))return null;let[cx,cy]=v.split(",").map(Number);if(!Number.isFinite(cx)||!Number.isFinite(cy))return null;return{x:cx,y:cy}})();var StoreContext=createContext15(null);import{jsxDEV as jsxDEV49}from"react/jsx-dev-runtime";function ReactiveThemeInner({dark=defaultDarkTheme,light=defaultLightTheme,initial,children}){let scheme=useColorScheme(),theme2;if(scheme==="light")theme2=light;else if(scheme==="dark")theme2=dark;else theme2=initial??dark;return jsxDEV49(ThemeProvider,{theme:theme2,children},void 0,!1,void 0,this)}function ReactiveThemeProvider(props){return jsxDEV49(ReactiveThemeInner,{...props},void 0,!1,void 0,this)}var VERSION="0.0.1";function render2(element,termOrDef,options){if(!termOrDef&&process.stdin?.isTTY&&process.stdout?.isTTY){let ttyDef={stdin:process.stdin,stdout:process.stdout};return render(element,ttyDef,options)}return render(element,termOrDef,options)}export{writeTextTruncated,writeTextToBuffer,writeLinesToBuffer,wrapText,withRender,withMeasurer,withKeybindings,withDiagnostics,withCommands,useWindowSize,useVirtualizer,useTransition2 as useTransition,useToast,useTimeout,useTheme,useTextArea,useTerminalFocused,useTerm,useTea,useStdout,useStderr,useSelection,useSearchOptional,useSearch,useScrollRect,useScreenRect,useRuntime,useReadline,usePositionRegistry,usePasteEvents,usePaste,useMouseCursor,useModifierKeys,useListItem,useLatest,useInterval,useInteractiveState,useInputLayerContext,useInputLayer,useInput,useId2 as useId,useHitRegistry,useHitRegionCallback,useHitRegion,useGridPosition,useFocusable,useFocusWithin,useFocusManager,useFocus,useFindState,useEditContext,useDragState,useDeferredValue,useCursor,useCopyModeState,useConsole,useColorScheme,useBoxRect,useBoxMetrics,useApp,useAnimation2 as useAnimation,useTransition as useAnimatedTransition,truncateText,truncateAnsi,textSized,term,swapPanes,supportsScrollRegions,subscribeCursor,stripAnsi2 as stripAnsiUnicode,stripAnsi2 as stripAnsi,splitPane,splitGraphemes,sliceByWidthRange,sliceByWidthFromEnd,sliceByWidth,shallow,setWindowTitle,setWindowAndIconTitle,setTextSizingEnabled,setTextEmojiWide,setScrollRegion2 as setScrollRegion,setPaletteColor,setOutputCaps,setMouseCursorShape,setLayoutEngine,setForegroundColor,setCursorStyle,setCursorColor,setBackgroundColor,scrollUp2 as scrollUp,scrollDown2 as scrollDown,runWithMeasurer,runTermtest,rowColToCursor,resolveThemeColor,resolveNonTTYMode,resolveEasing,resizeSplit,resetWindowTitle,resetScrollRegion2 as resetScrollRegion,resetMouseCursorShape,resetHitRegionIdCounter,resetForegroundColor,resetCursorStyle,resetCursorState,resetCursorColor,resetBackgroundColor,requestClipboard,reportDirectory,renderSync,renderStringSync,renderString,renderStatic,renderScreenReaderOutput,render2 as render,removePane,queryTextAreaSize,queryTextAreaPixels,queryTertiaryDA,queryTerminalVersion,querySecondaryDA,queryPrimaryDA,queryPaletteColor,queryMultiplePaletteColors,queryModes,queryMode,queryKittyKeyboard,queryForegroundColor,queryDeviceAttributes,queryCursorPosition,queryCursorFromStdio,queryCursorColor,queryCellSize,queryBackgroundColor,processMouseEvent,patchConsole,parsePaletteResponse,parseMouseSequence,parseKeypress,parseKey,parseHotkey,parseFocusEvent,parseClipboardResponse,parseBracketedPaste,parseAnsiText,padText,notifyKitty,notifyITerm2,notify,normalizeText,moveCursor2 as moveCursor,mergeTextOps,measureText,measureElement,matchHotkey,lastModifierState,keyToName,keyToModifiers,isZeroWidthGrapheme,isWideGrapheme,isTextSizingLikelySupported,isTextSizingEnabled,isTerm,isTTY,isSixelSupported,isPrivateUseArea,isMouseSequence,isLikelyEmoji,isLayoutEngineInitialized,isKittyGraphicsSupported,isInspectorEnabled,isDevToolsConnected,isCJK,invertTextOp,inspectTree,inspectFrame,injectDOMStyles,initYogaEngine,hitTest,hasZeroWidthCharacters,hasWideCharacters,hasAnsi,graphemeWidth,graphemeCount,getWrappedLines,getThemeByName,getTabOrder2 as getTabOrder,getTabOrder as getSplitTabOrder,getPaneIds,getModifierState,getInternalClipboard,getFirstCodePoint,getExplicitFocusLink,getCursorState,generateTheme,fx,formatTitleWithHotkey,findSpatialTarget,findFocusableAncestor,findEnclosingScope,findByTestID,findAdjacentPane,ensureEmojiPresentation,encodeSixel,encodeKittyImage,enableMouse2 as enableMouse,enableKittyKeyboard2 as enableKittyKeyboard,enableInspector,enableFocusReporting,enableBracketedPaste2 as enableBracketedPaste,emptyKey,easings,displayWidthAnsi,displayWidth,dispatchMouseEvent,dispatchKeyEvent,dispatchFocusEvent,disableMouse2 as disableMouse,disableKittyKeyboard2 as disableKittyKeyboard,disableInspector,disableFocusReporting,disableBracketedPaste2 as disableBracketedPaste,detectTheme2 as detectTheme,detectTextSizingSupport,detectTerminalCaps,detectKittySupport,detectKittyFromStdio,detectColorScheme,deriveTheme,deleteKittyImage,defaultLightTheme,defaultDarkTheme,defaultCaps,cursorToRowCol,cursorMoveUp,cursorMoveDown,createYogaEngine,createWidthMeasurer,createWheelEvent,createTermEditContext,createTerm,createPositionRegistry,createPipeline,createPasteEvent,createOutputPhase,createMouseEventProcessor,createMouseEvent,createMeasurer,createLeaf,createKeyEvent,createInputEvents,createFocusManager,createFocusEvent,createFlexilyZeroEngine as createFlexilyEngine,createDoubleClickState,createDOMAdapter,createCursorStore,createCopyProvider,createCanvasAdapter,countVisualLines,copyToClipboard,constrainText,connectDevTools,computeEnterLeave,collect,clampScroll,checkDoubleClick,calcEdgeBasedScrollOffset,builtinThemes,autoEnableInspector,applyTextOp,ansi16LightTheme2 as ansi16LightTheme,ansi16DarkTheme2 as ansi16DarkTheme,activeEditTargetRef,activeEditContextRef,Z_INDEX,YogaLayoutEngine,VirtualTerminal,VERSION,UL,TreeView,Transform,Tooltip,Toggle,ToastItem,ToastContainer,ThemeProvider,TextInput,TextArea,Text,TermContext,Tabs,Table,TabPanel,TabList,Tab,TERMTEST_SECTIONS,Strong,StderrContext,Static,SplitView,Spinner,Spacer,Small,Skeleton,SilveryErrorBoundary,SelectList,SearchProvider,SearchBar,Screen,RuntimeContext,ReactiveThemeProvider,ProgressBar,PositionRegistryProvider,PickerList,PickerDialog,PasteProvider,PASTE_START,PASTE_END,P,OSC133,OL,Newline,Muted,ModalDialog,ListView,Link,Lead,LI,KittyFlags,Kbd,InputLayerProvider,InputLayerContext,InputBoundary,IncrementalRenderMismatchError,Image,HorizontalVirtualList,HitRegistryContext,HitRegistry,Heading,HR,H3,H2,H1,GridCell,FormField,Form,FocusManagerContext,FlexilyZeroLayoutEngine as FlexilyLayoutEngine,Fill,ErrorBoundary,Em,EditContextDisplay,Divider,DecMode,DOMRenderBuffer,CursorProvider,CursorLine,Console,CommandPalette,CodeBlock,Code,CapabilityRegistryContext,CanvasRenderBuffer,CacheBackendContext,Button,Breadcrumb,Box,Blockquote,Badge,BEL,ANSI};
|
|
342
|
+
Screenshot saved: ${screenshotPath}`:""))}}};return Object.defineProperties(wrapped,{id:{value:command.id,enumerable:!0},name:{value:command.name,enumerable:!0},help:{value:command.help,enumerable:!0},keys:{value:command.keys,enumerable:!0}}),wrapped},has(target,prop){return Reflect.has(target,prop)},ownKeys(target){return Reflect.ownKeys(target)},getOwnPropertyDescriptor(target,prop){return Reflect.getOwnPropertyDescriptor(target,prop)}});return Object.assign(app,{cmd:wrappedCmd})}init_context();init_keys();import{useCallback as useCallback30,useId,useLayoutEffect as useLayoutEffect7,useMemo as useMemo19,useRef as useRef28}from"react";import{jsxDEV as jsxDEV47}from"react/jsx-dev-runtime";function toRawData(input,key){let name=keyToName(key);if(name){let mods=[];if(key.ctrl)mods.push("Control");if(key.shift)mods.push("Shift");if(key.meta)mods.push("Meta");if(key.super)mods.push("Super");if(key.hyper)mods.push("Hyper");return mods.push(name),keyToAnsi(mods.join("+"))}if(key.ctrl)return keyToAnsi(`Control+${input}`);return input}function InputBoundary({active,onEscape,exitKey="Escape",children}){let subscribersRef=useRef28(null);if(!subscribersRef.current)subscribersRef.current=createSubscriberList();let subscribers=subscribersRef.current,activeRef=useRef28(active);activeRef.current=active;let onEscapeRef=useRef28(onEscape);onEscapeRef.current=onEscape;let exitKeyRef=useRef28(exitKey);exitKeyRef.current=exitKey;let handler=useCallback30((input,key)=>{if(!activeRef.current)return!1;let currentExitKey=exitKeyRef.current;if(currentExitKey!==null){let name=keyToName(key);if(name===currentExitKey||!name&&input===currentExitKey)return onEscapeRef.current?.(),!0}let raw=toRawData(input,key),[parsedInput,parsedKey]=parseKey(raw);for(let h of subscribers.input)h(parsedInput,parsedKey);return!0},[subscribers]),layerId=useId();useInputLayer(`input-boundary-${layerId}`,handler);let runtimeContextValue=useMemo19(()=>({on(event,handler2){if(event==="input"){let typed=handler2;return subscribers.input.add(typed),()=>{subscribers.input.delete(typed)}}if(event==="paste"){let typed=handler2;return subscribers.paste.add(typed),()=>{subscribers.paste.delete(typed)}}return()=>{}},emit(){},exit:()=>{}}),[subscribers]);return useLayoutEffect7(()=>{return()=>{subscribers.input.clear(),subscribers.paste.clear()}},[subscribers]),jsxDEV47(RuntimeContext.Provider,{value:runtimeContextValue,children:jsxDEV47(InputLayerProvider,{children},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var easings={linear:(t)=>t,ease:(t)=>t<0.5?2*t*t:-1+(4-2*t)*t,easeIn:(t)=>t*t,easeOut:(t)=>t*(2-t),easeInOut:(t)=>t<0.5?2*t*t:-1+(4-2*t)*t,easeInCubic:(t)=>t*t*t,easeOutCubic:(t)=>--t*t*t+1};function resolveEasing(easing){return typeof easing==="function"?easing:easings[easing]}import{useState as useState21,useEffect as useEffect24,useRef as useRef29,useCallback as useCallback31}from"react";var TICK_MS=33;function useAnimation2(options){let{duration,easing="linear",delay=0,onComplete,enabled=!0}=options,[value,setValue]=useState21(0),[isAnimating,setIsAnimating]=useState21(!1),startTimeRef=useRef29(0),intervalRef=useRef29(null),onCompleteRef=useRef29(onComplete);onCompleteRef.current=onComplete;let epochRef=useRef29(0),easingFn=resolveEasing(easing),stopInterval=useCallback31(()=>{if(intervalRef.current!==null)clearInterval(intervalRef.current),intervalRef.current=null},[]),startAnimation=useCallback31(()=>{stopInterval(),epochRef.current++;let epoch=epochRef.current;setValue(0),setIsAnimating(!0);let begin=()=>{if(epochRef.current!==epoch)return;startTimeRef.current=performance.now(),intervalRef.current=setInterval(()=>{if(epochRef.current!==epoch)return;let elapsed=performance.now()-startTimeRef.current,raw=Math.min(elapsed/duration,1),eased=easingFn(raw);if(setValue(eased),raw>=1)stopInterval(),setIsAnimating(!1),onCompleteRef.current?.()},TICK_MS)};if(delay>0)setTimeout(()=>begin(),delay);else begin()},[duration,delay,easingFn,stopInterval]);useEffect24(()=>{if(!enabled){stopInterval(),setValue(0),setIsAnimating(!1);return}return startAnimation(),()=>{stopInterval()}},[enabled,startAnimation,stopInterval]);let reset=useCallback31(()=>{startAnimation()},[startAnimation]);return{value,isAnimating,reset}}import{useState as useState22,useEffect as useEffect25,useRef as useRef30}from"react";var TICK_MS2=33;function useTransition(targetValue,options){let{duration=300,easing="easeOut"}=options??{},[currentValue,setCurrentValue]=useState22(targetValue),fromRef=useRef30(targetValue),toRef=useRef30(targetValue),startTimeRef=useRef30(0),intervalRef=useRef30(null),isFirstRef=useRef30(!0),easingFn=resolveEasing(easing);return useEffect25(()=>{if(isFirstRef.current){isFirstRef.current=!1;return}if(targetValue===toRef.current)return;if(fromRef.current=currentValue,toRef.current=targetValue,startTimeRef.current=performance.now(),intervalRef.current!==null)clearInterval(intervalRef.current);return intervalRef.current=setInterval(()=>{let elapsed=performance.now()-startTimeRef.current,raw=Math.min(elapsed/duration,1),eased=easingFn(raw),interpolated=fromRef.current+(toRef.current-fromRef.current)*eased;if(setCurrentValue(interpolated),raw>=1){if(setCurrentValue(toRef.current),intervalRef.current!==null)clearInterval(intervalRef.current),intervalRef.current=null}},TICK_MS2),()=>{if(intervalRef.current!==null)clearInterval(intervalRef.current),intervalRef.current=null}},[targetValue,duration,easingFn]),currentValue}import{useEffect as useEffect26,useRef as useRef31}from"react";function useInterval(callback,ms,enabled=!0){let callbackRef=useRef31(callback);callbackRef.current=callback,useEffect26(()=>{if(!enabled)return;let id=setInterval(()=>{callbackRef.current()},ms);return()=>{clearInterval(id)}},[ms,enabled])}import{useCallback as useCallback32,useEffect as useEffect27,useRef as useRef32}from"react";function useTimeout(callback,ms,enabled=!0){let callbackRef=useRef32(callback);callbackRef.current=callback;let timerRef=useRef32(null),clear=useCallback32(()=>{if(timerRef.current!==null)clearTimeout(timerRef.current),timerRef.current=null},[]),reset=useCallback32(()=>{if(clear(),enabled)timerRef.current=setTimeout(()=>{timerRef.current=null,callbackRef.current()},ms)},[ms,enabled,clear]);return useEffect27(()=>{if(!enabled){clear();return}return timerRef.current=setTimeout(()=>{timerRef.current=null,callbackRef.current()},ms),clear},[ms,enabled,clear]),{reset,clear}}import{useRef as useRef33}from"react";function useLatest(value){let ref=useRef33(value);return ref.current=value,ref}import{useCallback as useCallback33,useEffect as useEffect28,useRef as useRef34,useReducer as useReducer4}from"react";function collect(result){if(Array.isArray(result))return result;return[result,[]]}function delay(ms,msg,id){return{type:"delay",ms,msg,id}}function interval(ms,msg,id){return{type:"interval",ms,msg,id}}function cancel(id){return{type:"cancel",id}}var fx={delay,interval,cancel};function createTimerRunners(){let timers=new Map,nextAnon=0;function clearTimer(id){let existing=timers.get(id);if(existing!==void 0)clearTimeout(existing),clearInterval(existing),timers.delete(id)}let runners={delay(effect2,dispatch){let id=effect2.id??`__anon_${nextAnon++}`;clearTimer(id);let timer=setTimeout(()=>{timers.delete(id),dispatch(effect2.msg)},effect2.ms);timers.set(id,timer)},interval(effect2,dispatch){clearTimer(effect2.id);let timer=setInterval(()=>{dispatch(effect2.msg)},effect2.ms);timers.set(effect2.id,timer)},cancel(effect2){clearTimer(effect2.id)}};function cleanup(){for(let[id]of timers)clearTimer(id)}return{runners,cleanup}}function useTea(initialState,update,customRunners){let timerRef=useRef34(null);if(timerRef.current===null)timerRef.current=createTimerRunners();let{runners:timerRunners,cleanup}=timerRef.current,customRunnersRef=useRef34(customRunners);customRunnersRef.current=customRunners;let pendingEffectsRef=useRef34([]),[state,reactDispatch]=useReducer4((prevState,msg)=>{let result=update(prevState,msg),[newState,effects]=collect(result);if(effects.length>0)pendingEffectsRef.current.push(...effects);return newState},void 0,()=>typeof initialState==="function"?initialState():initialState),sendRef=useRef34(()=>{}),executeEffects=useCallback33(()=>{if(pendingEffectsRef.current.length===0)return;let effects=pendingEffectsRef.current.splice(0);for(let effect2 of effects){let timerRunner=timerRunners[effect2.type];if(timerRunner){timerRunner(effect2,sendRef.current);continue}let customRunner=customRunnersRef.current?.[effect2.type];if(customRunner)customRunner(effect2,sendRef.current)}},[timerRunners]),send=useCallback33((msg)=>{reactDispatch(msg),queueMicrotask(executeEffects)},[reactDispatch,executeEffects]);return sendRef.current=send,useEffect28(()=>{executeEffects()},[executeEffects]),useEffect28(()=>cleanup,[cleanup]),[state,send]}init_keys();init_ag();init_ag();init_output_phase();init_ag();init_reconciler();init_context();import React25 from"react";init_keys();init_buffer();init_pipeline2();init_output_phase();init_text_sizing();init_src2();init_mouse();init_unicode();init_unicode();init_errors();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_ansi2();init_unicode();init_keys();import React26,{createContext as createContext13,Fragment as Fragment4}from"react";var InkCursorStoreCtx=createContext13(null);import React27,{createContext as createContext14,Fragment as Fragment5,useCallback as useCallback34,useEffect as useEffect29,useMemo as useMemo20,useState as useState23}from"react";var InkFocusContext=createContext14({activeId:void 0,isFocusEnabled:!0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){},blur(){}});init_term_provider();init_ansi2();init_buffer();init_context();init_pipeline2();init_reconciler();import React28 from"react";init_pipeline2();init_buffer();init_output_phase();import process3 from"node:process";import React29,{createContext as createContext15,useContext as useContext37,useEffect as useEffect30,useRef as useRef35}from"react";init_esm();init_ansi2();init_context();init_pipeline2();init_ag();init_text_sizing();init_reconciler();init_reconciler();init_keys();init_keys2();init_term_provider();init_output_guard();import{createLogger as createLogger17}from"loggily";var perfLog=createLogger17("silvery:perf");import{createLogger as createLogger18}from"loggily";import{jsxDEV as jsxDEV48}from"react/jsx-dev-runtime";var log14=createLogger18("silvery:app"),ENV=typeof process3<"u"?process3.env:void 0,NO_INCREMENTAL=ENV?.SILVERY_NO_INCREMENTAL==="1",STRICT_MODE=(()=>{let v=ENV?.SILVERY_STRICT;return!!v&&v!=="0"&&v!=="false"})(),CELL_DEBUG=(()=>{let v=ENV?.SILVERY_CELL_DEBUG;if(!v||!v.includes(","))return null;let[cx,cy]=v.split(",").map(Number);if(!Number.isFinite(cx)||!Number.isFinite(cy))return null;return{x:cx,y:cy}})();var StoreContext=createContext15(null);init_context();import{useContext as useContext38,useEffect as useEffect31,useRef as useRef36}from"react";import{jsxDEV as jsxDEV49}from"react/jsx-dev-runtime";init_keys2();import{jsxDEV as jsxDEV50}from"react/jsx-dev-runtime";function ReactiveThemeInner({dark=defaultDarkTheme,light=defaultLightTheme,initial,children}){let scheme=useColorScheme(),theme2;if(scheme==="light")theme2=light;else if(scheme==="dark")theme2=dark;else theme2=initial??dark;return jsxDEV50(ThemeProvider,{theme:theme2,children},void 0,!1,void 0,this)}function ReactiveThemeProvider(props){return jsxDEV50(ReactiveThemeInner,{...props},void 0,!1,void 0,this)}var VERSION="0.0.1";function render3(element,termOrDef,options){if(!termOrDef&&process.stdin?.isTTY&&process.stdout?.isTTY){let ttyDef={stdin:process.stdin,stdout:process.stdout};return render(element,ttyDef,options)}return render(element,termOrDef,options)}export{writeTextTruncated,writeTextToBuffer,writeLinesToBuffer,wrapText,withRender,withMeasurer,withKeybindings,withDiagnostics,withCommands,useWindowSize,useVirtualizer,useTransition2 as useTransition,useToast,useTimeout,useTheme,useTextArea,useTerminalFocused,useTerm,useTea,useStdout,useStderr,useSelection,useSearchOptional,useSearch,useScrollRect,useScreenRect,useRuntime,useReadline,usePositionRegistry,usePasteEvents,usePaste,useMouseCursor,useModifierKeys,useListItem,useLatest,useInterval,useInteractiveState,useInputLayerContext,useInputLayer,useInput,useId2 as useId,useHitRegistry,useHitRegionCallback,useHitRegion,useGridPosition,useFocusable,useFocusWithin,useFocusManager,useFocus,useFindState,useExit,useEditContext,useDragState,useDeferredValue,useCursor,useCopyModeState,useConsole,useColorScheme,useBoxRect,useBoxMetrics,useApp,useAnimation2 as useAnimation,useTransition as useAnimatedTransition,truncateText,truncateAnsi,textSized,term,swapPanes,supportsScrollRegions,subscribeCursor,stripAnsi2 as stripAnsiUnicode,stripAnsi2 as stripAnsi,splitPane,splitGraphemes,sliceByWidthRange,sliceByWidthFromEnd,sliceByWidth,shallow,setWindowTitle,setWindowAndIconTitle,setTextSizingEnabled,setTextEmojiWide,setScrollRegion2 as setScrollRegion,setPaletteColor,setOutputCaps,setMouseCursorShape,setLayoutEngine,setForegroundColor,setCursorStyle,setCursorColor,setBackgroundColor,scrollUp2 as scrollUp,scrollDown2 as scrollDown,runWithMeasurer,runTermtest,rowColToCursor,resolveThemeColor,resolveNonTTYMode,resolveEasing,resizeSplit,resetWindowTitle,resetScrollRegion2 as resetScrollRegion,resetMouseCursorShape,resetHitRegionIdCounter,resetForegroundColor,resetCursorStyle,resetCursorState,resetCursorColor,resetBackgroundColor,requestClipboard,reportDirectory,renderSync,renderStringSync,renderString,renderStatic,renderScreenReaderOutput,render3 as render,removePane,queryTextAreaSize,queryTextAreaPixels,queryTertiaryDA,queryTerminalVersion,querySecondaryDA,queryPrimaryDA,queryPaletteColor,queryMultiplePaletteColors,queryModes,queryMode,queryKittyKeyboard,queryForegroundColor,queryDeviceAttributes,queryCursorPosition,queryCursorFromStdio,queryCursorColor,queryCellSize,queryBackgroundColor,processMouseEvent,patchConsole,parsePaletteResponse,parseMouseSequence,parseKeypress,parseKey,parseHotkey,parseFocusEvent,parseClipboardResponse,parseBracketedPaste,parseAnsiText,padText,notifyKitty,notifyITerm2,notify,normalizeText,moveCursor2 as moveCursor,mergeTextOps,measureText,measureElement,matchHotkey,lastModifierState,keyToName,keyToModifiers,isZeroWidthGrapheme,isWideGrapheme,isTextSizingLikelySupported,isTextSizingEnabled,isTerm,isTTY,isSixelSupported,isPrivateUseArea,isMouseSequence,isLikelyEmoji,isLayoutEngineInitialized,isKittyGraphicsSupported,isInspectorEnabled,isDevToolsConnected,isCJK,invertTextOp,inspectTree,inspectFrame,injectDOMStyles,initYogaEngine,hitTest,hasZeroWidthCharacters,hasWideCharacters,hasAnsi,graphemeWidth,graphemeCount,getWrappedLines,getThemeByName,getTabOrder2 as getTabOrder,getTabOrder as getSplitTabOrder,getPaneIds,getModifierState,getInternalClipboard,getFirstCodePoint,getExplicitFocusLink,getCursorState,generateTheme,fx,formatTitleWithHotkey,findSpatialTarget,findFocusableAncestor,findEnclosingScope,findByTestID,findAdjacentPane,ensureEmojiPresentation,encodeSixel,encodeKittyImage,enableMouse2 as enableMouse,enableKittyKeyboard2 as enableKittyKeyboard,enableInspector,enableFocusReporting,enableBracketedPaste2 as enableBracketedPaste,emptyKey,easings,displayWidthAnsi,displayWidth,dispatchMouseEvent,dispatchKeyEvent,dispatchFocusEvent,disableMouse2 as disableMouse,disableKittyKeyboard2 as disableKittyKeyboard,disableInspector,disableFocusReporting,disableBracketedPaste2 as disableBracketedPaste,detectTheme2 as detectTheme,detectTextSizingSupport,detectTerminalCaps,detectKittySupport,detectKittyFromStdio,detectColorScheme,deriveTheme,deleteKittyImage,defaultLightTheme,defaultDarkTheme,defaultCaps,cursorToRowCol,cursorMoveUp,cursorMoveDown,createYogaEngine,createWidthMeasurer,createWheelEvent,createTermEditContext,createTerm,createPositionRegistry,createPipeline,createPasteEvent,createOutputPhase,createMouseEventProcessor,createMouseEvent,createMeasurer,createLeaf,createKeyEvent,createInputEvents,createFocusManager,createFocusEvent,createFlexilyZeroEngine as createFlexilyEngine,createDoubleClickState,createDOMAdapter,createCursorStore,createCopyProvider,createCanvasAdapter,countVisualLines,copyToClipboard,constrainText,connectDevTools,computeEnterLeave,collect,clampScroll,checkDoubleClick,calcEdgeBasedScrollOffset,builtinThemes,autoEnableInspector,applyTextOp,ansi16LightTheme2 as ansi16LightTheme,ansi16DarkTheme2 as ansi16DarkTheme,activeEditTargetRef,activeEditContextRef,Z_INDEX,YogaLayoutEngine,VirtualTerminal,VERSION,UL,TreeView,Transform,Tooltip,Toggle,ToastItem,ToastContainer,ThemeProvider,TextInput,TextArea,Text,TermContext,Tabs,Table,TabPanel,TabList,Tab,TERMTEST_SECTIONS,Strong,StderrContext,Static,SplitView,Spinner,Spacer,Small,Skeleton,SilveryErrorBoundary,SelectList,SearchProvider,SearchBar,Screen,RuntimeContext,ReactiveThemeProvider,ProgressBar,PositionRegistryProvider,PickerList,PickerDialog,PasteProvider,PASTE_START,PASTE_END,P,OSC133,OL,Newline,Muted,ModalDialog,ListView,Link,Lead,LI,KittyFlags,Kbd,InputLayerProvider,InputLayerContext,InputBoundary,IncrementalRenderMismatchError,Image,HorizontalVirtualList,HitRegistryContext,HitRegistry,Heading,HR,H3,H2,H1,GridCell,FormField,Form,FocusManagerContext,FlexilyZeroLayoutEngine as FlexilyLayoutEngine,Fill,ErrorBoundary,Em,EditContextDisplay,Divider,DecMode,DOMRenderBuffer,CursorProvider,CursorLine,Console,CommandPalette,CodeBlock,Code,CapabilityRegistryContext,CanvasRenderBuffer,CacheBackendContext,Button,Breadcrumb,Box,Blockquote,Badge,BEL,ANSI};
|
|
343
343
|
|
|
344
|
-
//# debugId=
|
|
344
|
+
//# debugId=8B5C0F3B848C7BCB64756E2164756E21
|