silvery 0.16.2 → 0.16.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +20 -16
- package/dist/ink.js +19 -15
- package/dist/runtime.js +14 -10
- package/package.json +2 -15
package/dist/ink.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire}from"node:module";var __defProp=Object.defineProperty;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()};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 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 __promiseAll=(args)=>Promise.all(args),__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()};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 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
2
|
`))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 init_default_palettes=()=>{};var init_types=()=>{};var init_osc_palette=()=>{};var init_osc_colors=()=>{};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
3
|
`).slice(1,6).join(`
|
|
4
4
|
`)??"";trap.log.push(` char="${char2}" fg=${cell.fg??"null"} bg=${cell.bg??"null"} dim=${cell.attrs?.dim} ul=${cell.attrs?.underline}
|
|
@@ -66,16 +66,20 @@ ${colDetails.join(`
|
|
|
66
66
|
`;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)}})});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 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=stripAnsi3(text);width=0;for(let grapheme of splitGraphemes(stripped))width+=measuredGraphemeWidth(grapheme)}return cache.set(text,width),width}function measuredDisplayWidthAnsi(text){return measuredDisplayWidth(stripAnsi3(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 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=stripAnsi3(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 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(`
|
|
67
67
|
`):[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 sliceByWidthFromEnd(text,maxWidth){return(_scopedMeasurer??getDefaultMeasurer()).sliceByWidthFromEnd(text,maxWidth)}function stripAnsi3(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(stripAnsi3(text))}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(`
|
|
68
68
|
`),maxWidth=0;for(let line of lines){let lineWidth=displayWidth(line);if(lineWidth>maxWidth)maxWidth=lineWidth}return{width:maxWidth,height:lines.length}}function getFirstCodePoint(str){return str.codePointAt(0)??0}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,_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;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}});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 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()+`
|
|
69
|
-
`+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=()=>{};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===`
|
|
69
|
+
`+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 FLEX_DIRECTION_COLUMN2=0,FLEX_DIRECTION_COLUMN_REVERSE2=1,FLEX_DIRECTION_ROW2=2,FLEX_DIRECTION_ROW_REVERSE2=3,WRAP_NO_WRAP2=0,WRAP_WRAP2=1,WRAP_WRAP_REVERSE2=2,ALIGN_AUTO2=0,ALIGN_FLEX_START2=1,ALIGN_CENTER2=2,ALIGN_FLEX_END2=3,ALIGN_STRETCH2=4,ALIGN_BASELINE2=5,ALIGN_SPACE_BETWEEN2=6,ALIGN_SPACE_AROUND2=7,ALIGN_SPACE_EVENLY=8,JUSTIFY_FLEX_START2=0,JUSTIFY_CENTER2=1,JUSTIFY_FLEX_END2=2,JUSTIFY_SPACE_BETWEEN2=3,JUSTIFY_SPACE_AROUND2=4,JUSTIFY_SPACE_EVENLY2=5,EDGE_LEFT2=0,EDGE_TOP2=1,EDGE_RIGHT2=2,EDGE_BOTTOM2=3,EDGE_START2=4,EDGE_END2=5,EDGE_HORIZONTAL2=6,EDGE_VERTICAL2=7,EDGE_ALL2=8,GUTTER_COLUMN2=0,GUTTER_ROW2=1,GUTTER_ALL2=2,DISPLAY_FLEX2=0,DISPLAY_NONE2=1,POSITION_TYPE_STATIC2=0,POSITION_TYPE_RELATIVE2=1,POSITION_TYPE_ABSOLUTE2=2,OVERFLOW_VISIBLE2=0,OVERFLOW_HIDDEN2=1,OVERFLOW_SCROLL2=2,DIRECTION_LTR2=1,DIRECTION_RTL2=2,MEASURE_MODE_UNDEFINED2=0,MEASURE_MODE_EXACTLY2=1,MEASURE_MODE_AT_MOST2=2,UNIT_UNDEFINED2=0,UNIT_POINT2=1,UNIT_PERCENT2=2,UNIT_AUTO2=3;function setEdgeValue(arr,edge,value,unit){let v={value,unit};switch(edge){case EDGE_LEFT2:arr[0]=v;break;case EDGE_TOP2:arr[1]=v;break;case EDGE_RIGHT2:arr[2]=v;break;case EDGE_BOTTOM2:arr[3]=v;break;case EDGE_HORIZONTAL2:arr[0]=v,arr[2]=v;break;case EDGE_VERTICAL2:arr[1]=v,arr[3]=v;break;case EDGE_ALL2:arr[0]=v,arr[1]=v,arr[2]=v,arr[3]=v;break;case EDGE_START2:arr[4]=v;break;case EDGE_END2:arr[5]=v;break}}function setEdgeBorder(arr,edge,value){switch(edge){case EDGE_LEFT2:arr[0]=value;break;case EDGE_TOP2:arr[1]=value;break;case EDGE_RIGHT2:arr[2]=value;break;case EDGE_BOTTOM2:arr[3]=value;break;case EDGE_HORIZONTAL2:arr[0]=value,arr[2]=value;break;case EDGE_VERTICAL2:arr[1]=value,arr[3]=value;break;case EDGE_ALL2:arr[0]=value,arr[1]=value,arr[2]=value,arr[3]=value;break;case EDGE_START2:arr[4]=value;break;case EDGE_END2:arr[5]=value;break}}function getEdgeValue(arr,edge){switch(edge){case EDGE_LEFT2:return arr[0];case EDGE_TOP2:return arr[1];case EDGE_RIGHT2:return arr[2];case EDGE_BOTTOM2:return arr[3];case EDGE_START2:return arr[4];case EDGE_END2:return arr[5];default:return arr[0]}}function getEdgeBorderValue(arr,edge){switch(edge){case EDGE_LEFT2:return arr[0];case EDGE_TOP2:return arr[1];case EDGE_RIGHT2:return arr[2];case EDGE_BOTTOM2:return arr[3];case EDGE_START2:return arr[4];case EDGE_END2:return arr[5];default:return arr[0]}}function resolveValue(value,availableSize){switch(value.unit){case UNIT_POINT2:return value.value;case UNIT_PERCENT2:if(Number.isNaN(availableSize))return 0;return availableSize*(value.value/100);default:return 0}}function applyMinMax(size,min,max,available){let result=size;if(max.unit!==UNIT_UNDEFINED2)if(max.unit===UNIT_PERCENT2&&Number.isNaN(available));else{let maxValue=resolveValue(max,available);if(!Number.isNaN(maxValue))if(Number.isNaN(result)){if(maxValue!==1/0)result=maxValue}else result=Math.min(result,maxValue)}if(min.unit!==UNIT_UNDEFINED2)if(min.unit===UNIT_PERCENT2&&Number.isNaN(available));else{let minValue=resolveValue(min,available);if(!Number.isNaN(minValue)){if(!Number.isNaN(result))result=Math.max(result,minValue)}}return result}var traversalStack;var init_utils3=__esm(()=>{traversalStack=[]});var require_ms=__commonJS((exports,module)=>{var s=1000,m=s*60,h=m*60,d=h*24,w=d*7,y=d*365.25;module.exports=function(val,options){options=options||{};var type=typeof val;if(type==="string"&&val.length>0)return parse(val);else if(type==="number"&&isFinite(val))return options.long?fmtLong(val):fmtShort(val);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(val))};function parse(str){if(str=String(str),str.length>100)return;var match=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);if(!match)return;var n=parseFloat(match[1]),type=(match[2]||"ms").toLowerCase();switch(type){case"years":case"year":case"yrs":case"yr":case"y":return n*y;case"weeks":case"week":case"w":return n*w;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"hrs":case"hr":case"h":return n*h;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}function fmtShort(ms){var msAbs=Math.abs(ms);if(msAbs>=d)return Math.round(ms/d)+"d";if(msAbs>=h)return Math.round(ms/h)+"h";if(msAbs>=m)return Math.round(ms/m)+"m";if(msAbs>=s)return Math.round(ms/s)+"s";return ms+"ms"}function fmtLong(ms){var msAbs=Math.abs(ms);if(msAbs>=d)return plural(ms,msAbs,d,"day");if(msAbs>=h)return plural(ms,msAbs,h,"hour");if(msAbs>=m)return plural(ms,msAbs,m,"minute");if(msAbs>=s)return plural(ms,msAbs,s,"second");return ms+" ms"}function plural(ms,msAbs,n,name){var isPlural=msAbs>=n*1.5;return Math.round(ms/n)+" "+name+(isPlural?"s":"")}});var require_common=__commonJS((exports,module)=>{function setup(env){createDebug.debug=createDebug,createDebug.default=createDebug,createDebug.coerce=coerce,createDebug.disable=disable,createDebug.enable=enable,createDebug.enabled=enabled,createDebug.humanize=require_ms(),createDebug.destroy=destroy,Object.keys(env).forEach((key)=>{createDebug[key]=env[key]}),createDebug.names=[],createDebug.skips=[],createDebug.formatters={};function selectColor(namespace){let hash=0;for(let i=0;i<namespace.length;i++)hash=(hash<<5)-hash+namespace.charCodeAt(i),hash|=0;return createDebug.colors[Math.abs(hash)%createDebug.colors.length]}createDebug.selectColor=selectColor;function createDebug(namespace){let prevTime,enableOverride=null,namespacesCache,enabledCache;function debug(...args){if(!debug.enabled)return;let self=debug,curr=Number(new Date),ms=curr-(prevTime||curr);if(self.diff=ms,self.prev=prevTime,self.curr=curr,prevTime=curr,args[0]=createDebug.coerce(args[0]),typeof args[0]!=="string")args.unshift("%O");let index=0;args[0]=args[0].replace(/%([a-zA-Z%])/g,(match,format)=>{if(match==="%%")return"%";index++;let formatter=createDebug.formatters[format];if(typeof formatter==="function"){let val=args[index];match=formatter.call(self,val),args.splice(index,1),index--}return match}),createDebug.formatArgs.call(self,args),(self.log||createDebug.log).apply(self,args)}if(debug.namespace=namespace,debug.useColors=createDebug.useColors(),debug.color=createDebug.selectColor(namespace),debug.extend=extend,debug.destroy=createDebug.destroy,Object.defineProperty(debug,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(enableOverride!==null)return enableOverride;if(namespacesCache!==createDebug.namespaces)namespacesCache=createDebug.namespaces,enabledCache=createDebug.enabled(namespace);return enabledCache},set:(v)=>{enableOverride=v}}),typeof createDebug.init==="function")createDebug.init(debug);return debug}function extend(namespace,delimiter){let newDebug=createDebug(this.namespace+(typeof delimiter>"u"?":":delimiter)+namespace);return newDebug.log=this.log,newDebug}function enable(namespaces){createDebug.save(namespaces),createDebug.namespaces=namespaces,createDebug.names=[],createDebug.skips=[];let split=(typeof namespaces==="string"?namespaces:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let ns of split)if(ns[0]==="-")createDebug.skips.push(ns.slice(1));else createDebug.names.push(ns)}function matchesTemplate(search,template){let searchIndex=0,templateIndex=0,starIndex=-1,matchIndex=0;while(searchIndex<search.length)if(templateIndex<template.length&&(template[templateIndex]===search[searchIndex]||template[templateIndex]==="*"))if(template[templateIndex]==="*")starIndex=templateIndex,matchIndex=searchIndex,templateIndex++;else searchIndex++,templateIndex++;else if(starIndex!==-1)templateIndex=starIndex+1,matchIndex++,searchIndex=matchIndex;else return!1;while(templateIndex<template.length&&template[templateIndex]==="*")templateIndex++;return templateIndex===template.length}function disable(){let namespaces=[...createDebug.names,...createDebug.skips.map((namespace)=>"-"+namespace)].join(",");return createDebug.enable(""),namespaces}function enabled(name){for(let skip of createDebug.skips)if(matchesTemplate(name,skip))return!1;for(let ns of createDebug.names)if(matchesTemplate(name,ns))return!0;return!1}function coerce(val){if(val instanceof Error)return val.stack||val.message;return val}function destroy(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return createDebug.enable(createDebug.load()),createDebug}module.exports=setup});var require_browser=__commonJS((exports,module)=>{exports.formatArgs=formatArgs;exports.save=save;exports.load=load;exports.useColors=useColors;exports.storage=localstorage();exports.destroy=(()=>{let warned=!1;return()=>{if(!warned)warned=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();exports.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let m;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(m=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(m[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(args){if(args[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+args[0]+(this.useColors?"%c ":" ")+"+"+module.exports.humanize(this.diff),!this.useColors)return;let c="color: "+this.color;args.splice(1,0,c,"color: inherit");let index=0,lastC=0;args[0].replace(/%[a-zA-Z%]/g,(match)=>{if(match==="%%")return;if(index++,match==="%c")lastC=index}),args.splice(lastC,0,c)}exports.log=console.debug||console.log||(()=>{});function save(namespaces){try{if(namespaces)exports.storage.setItem("debug",namespaces);else exports.storage.removeItem("debug")}catch(error){}}function load(){let r;try{r=exports.storage.getItem("debug")||exports.storage.getItem("DEBUG")}catch(error){}if(!r&&typeof process<"u"&&"env"in process)r=process.env.DEBUG;return r}function localstorage(){try{return localStorage}catch(error){}}module.exports=require_common()(exports);var{formatters}=module.exports;formatters.j=function(v){try{return JSON.stringify(v)}catch(error){return"[UnexpectedJSONParseError]: "+error.message}}});var require_node=__commonJS((exports,module)=>{var tty=__require("tty"),util=__require("util");exports.init=init;exports.log=log5;exports.formatArgs=formatArgs;exports.save=save;exports.load=load;exports.useColors=useColors;exports.destroy=util.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");exports.colors=[6,2,3,4,5,1];try{let supportsColor=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(supportsColor&&(supportsColor.stderr||supportsColor).level>=2)exports.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(error){}exports.inspectOpts=Object.keys(process.env).filter((key)=>{return/^debug_/i.test(key)}).reduce((obj,key)=>{let prop=key.substring(6).toLowerCase().replace(/_([a-z])/g,(_2,k)=>{return k.toUpperCase()}),val=process.env[key];if(/^(yes|on|true|enabled)$/i.test(val))val=!0;else if(/^(no|off|false|disabled)$/i.test(val))val=!1;else if(val==="null")val=null;else val=Number(val);return obj[prop]=val,obj},{});function useColors(){return"colors"in exports.inspectOpts?Boolean(exports.inspectOpts.colors):tty.isatty(process.stderr.fd)}function formatArgs(args){let{namespace:name,useColors:useColors2}=this;if(useColors2){let c=this.color,colorCode="\x1B[3"+(c<8?c:"8;5;"+c),prefix=` ${colorCode};1m${name} \x1B[0m`;args[0]=prefix+args[0].split(`
|
|
70
|
+
`).join(`
|
|
71
|
+
`+prefix),args.push(colorCode+"m+"+module.exports.humanize(this.diff)+"\x1B[0m")}else args[0]=getDate()+name+" "+args[0]}function getDate(){if(exports.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function log5(...args){return process.stderr.write(util.formatWithOptions(exports.inspectOpts,...args)+`
|
|
72
|
+
`)}function save(namespaces){if(namespaces)process.env.DEBUG=namespaces;else delete process.env.DEBUG}function load(){return process.env.DEBUG}function init(debug){debug.inspectOpts={};let keys=Object.keys(exports.inspectOpts);for(let i=0;i<keys.length;i++)debug.inspectOpts[keys[i]]=exports.inspectOpts[keys[i]]}module.exports=require_common()(exports);var{formatters}=module.exports;formatters.o=function(v){return this.inspectOpts.colors=this.useColors,util.inspect(v,this.inspectOpts).split(`
|
|
73
|
+
`).map((str)=>str.trim()).join(" ")};formatters.O=function(v){return this.inspectOpts.colors=this.useColors,util.inspect(v,this.inspectOpts)}});var require_src=__commonJS((exports,module)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)module.exports=require_browser();else module.exports=require_node()});async function createFallbackLogger(namespace){try{let{default:createDebug}=await Promise.resolve().then(() => __toESM(require_src(),1)),debug=createDebug(namespace);return{debug:debug.enabled?debug:void 0}}catch{return{debug:void 0}}}async function detectLogger(namespace){try{let{createLogger:createLogger5}=await import("loggily"),logger=createLogger5(namespace);if(logger.debug){let originalDebug=logger.debug;return{debug:(msg,...args)=>{let i=0,formatted=msg.replace(/%[sdOo]/g,()=>{let arg=args[i++];if(arg===void 0)return"";if(arg===null)return"null";if(typeof arg==="object")return JSON.stringify(arg);return String(arg)});originalDebug(formatted)}}}return{debug:void 0}}catch{return createFallbackLogger(namespace)}}var _logger=null,log5;var init_logger=__esm(async()=>{_logger=await detectLogger("flexily:layout");log5={get debug(){return _logger?.debug}}});function getTrace(){return _trace}var _trace=null;function isRowDirection(flexDirection){return flexDirection===FLEX_DIRECTION_ROW2||flexDirection===FLEX_DIRECTION_ROW_REVERSE2}function isReverseDirection(flexDirection){return flexDirection===FLEX_DIRECTION_ROW_REVERSE2||flexDirection===FLEX_DIRECTION_COLUMN_REVERSE2}function getLogicalEdgeValue(arr,physicalIndex,_flexDirection,direction=DIRECTION_LTR2){let isRTL=direction===DIRECTION_RTL2;if(physicalIndex===0)return isRTL?arr[5]:arr[4];else if(physicalIndex===2)return isRTL?arr[4]:arr[5];return}function resolveEdgeValue(arr,physicalIndex,flexDirection,availableSize,direction=DIRECTION_LTR2){let logicalValue=getLogicalEdgeValue(arr,physicalIndex,flexDirection,direction);if(logicalValue&&logicalValue.unit!==UNIT_UNDEFINED2)return resolveValue(logicalValue,availableSize);return resolveValue(arr[physicalIndex],availableSize)}function isEdgeAuto(arr,physicalIndex,flexDirection,direction=DIRECTION_LTR2){let logicalValue=getLogicalEdgeValue(arr,physicalIndex,flexDirection,direction);if(logicalValue&&logicalValue.unit!==UNIT_UNDEFINED2)return logicalValue.unit===UNIT_AUTO2;return arr[physicalIndex].unit===UNIT_AUTO2}function resolvePositionEdge(arr,physicalIndex,direction=DIRECTION_LTR2){let logicalValue=getLogicalEdgeValue(arr,physicalIndex,0,direction);if(logicalValue&&logicalValue.unit!==UNIT_UNDEFINED2)return logicalValue;return arr[physicalIndex]}function resolveEdgeBorderValue(arr,physicalIndex,_flexDirection,direction=DIRECTION_LTR2){let isRTL=direction===DIRECTION_RTL2,logicalSlot;if(physicalIndex===0)logicalSlot=isRTL?5:4;else if(physicalIndex===2)logicalSlot=isRTL?4:5;if(logicalSlot!==void 0&&!Number.isNaN(arr[logicalSlot]))return arr[logicalSlot];return arr[physicalIndex]}var init_layout_helpers=__esm(()=>{init_utils3()});function markSubtreeLayoutSeen(node){traversalStack.length=0,traversalStack.push(node);while(traversalStack.length>0){let current=traversalStack.pop();current._isDirty=!1,current._hasNewLayout=!0;for(let child of current.children)traversalStack.push(child)}}function countNodes(node){let count=0;traversalStack.length=0,traversalStack.push(node);while(traversalStack.length>0){let current=traversalStack.pop();count++;for(let child of current.children)traversalStack.push(child)}return count}function propagatePositionDelta(node,deltaX,deltaY){traversalStack.length=0;for(let child of node.children)traversalStack.push(child);while(traversalStack.length>0){let current=traversalStack.pop();current.flex.lastOffsetX+=deltaX,current.flex.lastOffsetY+=deltaY;for(let child of current.children)traversalStack.push(child)}}var init_layout_traversal=__esm(()=>{init_utils3()});function resetLayoutStats(){layoutNodeCalls=0,measureNodeCalls=0,layoutSizingCalls=0,layoutPositioningCalls=0,layoutCacheHits=0}function incLayoutNodeCalls(){layoutNodeCalls++}function incMeasureNodeCalls(){measureNodeCalls++}function incLayoutSizingCalls(){layoutSizingCalls++}function incLayoutPositioningCalls(){layoutPositioningCalls++}function incLayoutCacheHits(){layoutCacheHits++}var layoutNodeCalls=0,measureNodeCalls=0,layoutSizingCalls=0,layoutPositioningCalls=0,layoutCacheHits=0;function measureNode(node,availableWidth,availableHeight,direction=DIRECTION_LTR2){incMeasureNodeCalls();let{style:style2,layout}=node;if(style2.display===DISPLAY_NONE2){layout.width=0,layout.height=0;return}let marginLeft=resolveEdgeValue(style2.margin,0,style2.flexDirection,availableWidth,direction),marginTop=resolveEdgeValue(style2.margin,1,style2.flexDirection,availableWidth,direction),marginRight=resolveEdgeValue(style2.margin,2,style2.flexDirection,availableWidth,direction),marginBottom=resolveEdgeValue(style2.margin,3,style2.flexDirection,availableWidth,direction),paddingLeft=resolveEdgeValue(style2.padding,0,style2.flexDirection,availableWidth,direction),paddingTop=resolveEdgeValue(style2.padding,1,style2.flexDirection,availableWidth,direction),paddingRight=resolveEdgeValue(style2.padding,2,style2.flexDirection,availableWidth,direction),paddingBottom=resolveEdgeValue(style2.padding,3,style2.flexDirection,availableWidth,direction),borderLeft=resolveEdgeBorderValue(style2.border,0,style2.flexDirection,direction),borderTop=resolveEdgeBorderValue(style2.border,1,style2.flexDirection,direction),borderRight=resolveEdgeBorderValue(style2.border,2,style2.flexDirection,direction),borderBottom=resolveEdgeBorderValue(style2.border,3,style2.flexDirection,direction),nodeWidth;if(style2.width.unit===UNIT_POINT2)nodeWidth=style2.width.value;else if(style2.width.unit===UNIT_PERCENT2)nodeWidth=resolveValue(style2.width,availableWidth);else if(Number.isNaN(availableWidth))nodeWidth=NaN;else nodeWidth=availableWidth-marginLeft-marginRight;nodeWidth=applyMinMax(nodeWidth,style2.minWidth,style2.maxWidth,availableWidth);let nodeHeight;if(style2.height.unit===UNIT_POINT2)nodeHeight=style2.height.value;else if(style2.height.unit===UNIT_PERCENT2)nodeHeight=resolveValue(style2.height,availableHeight);else if(Number.isNaN(availableHeight))nodeHeight=NaN;else nodeHeight=availableHeight-marginTop-marginBottom;let aspectRatio=style2.aspectRatio;if(!Number.isNaN(aspectRatio)&&aspectRatio>0){let widthIsAuto=Number.isNaN(nodeWidth)||style2.width.unit===UNIT_AUTO2,heightIsAuto=Number.isNaN(nodeHeight)||style2.height.unit===UNIT_AUTO2;if(widthIsAuto&&!heightIsAuto&&!Number.isNaN(nodeHeight))nodeWidth=nodeHeight*aspectRatio,nodeWidth=applyMinMax(nodeWidth,style2.minWidth,style2.maxWidth,availableWidth);else if(heightIsAuto&&!widthIsAuto&&!Number.isNaN(nodeWidth))nodeHeight=nodeWidth/aspectRatio}nodeHeight=applyMinMax(nodeHeight,style2.minHeight,style2.maxHeight,availableHeight);let innerLeft=borderLeft+paddingLeft,innerTop=borderTop+paddingTop,innerRight=borderRight+paddingRight,innerBottom=borderBottom+paddingBottom,minInnerWidth=innerLeft+innerRight,minInnerHeight=innerTop+innerBottom;if(!Number.isNaN(nodeWidth)&&nodeWidth<minInnerWidth)nodeWidth=minInnerWidth;if(!Number.isNaN(nodeHeight)&&nodeHeight<minInnerHeight)nodeHeight=minInnerHeight;let contentWidth=Number.isNaN(nodeWidth)?NaN:Math.max(0,nodeWidth-innerLeft-innerRight),contentHeight=Number.isNaN(nodeHeight)?NaN:Math.max(0,nodeHeight-innerTop-innerBottom);if(node.hasMeasureFunc()&&node.children.length===0){let widthIsAuto=style2.width.unit===UNIT_AUTO2||style2.width.unit===UNIT_UNDEFINED2||Number.isNaN(nodeWidth),heightIsAuto=style2.height.unit===UNIT_AUTO2||style2.height.unit===UNIT_UNDEFINED2||Number.isNaN(nodeHeight),widthMode=widthIsAuto?MEASURE_MODE_AT_MOST2:MEASURE_MODE_EXACTLY2,heightMode=heightIsAuto?MEASURE_MODE_UNDEFINED2:MEASURE_MODE_EXACTLY2,measureWidth=Number.isNaN(contentWidth)?1/0:contentWidth,measureHeight=Number.isNaN(contentHeight)?1/0:contentHeight,measured=node.cachedMeasure(measureWidth,widthMode,measureHeight,heightMode);if(widthIsAuto)nodeWidth=measured.width+innerLeft+innerRight;if(heightIsAuto)nodeHeight=measured.height+innerTop+innerBottom;layout.width=Math.round(nodeWidth),layout.height=Math.round(nodeHeight);return}if(node.children.length===0){if(Number.isNaN(nodeWidth))nodeWidth=innerLeft+innerRight;if(Number.isNaN(nodeHeight))nodeHeight=innerTop+innerBottom;layout.width=Math.round(nodeWidth),layout.height=Math.round(nodeHeight);return}let relativeChildCount=0;for(let c of node.children){if(c.style.display===DISPLAY_NONE2)continue;if(c.style.positionType!==POSITION_TYPE_ABSOLUTE2)relativeChildCount++}if(relativeChildCount===0){if(Number.isNaN(nodeWidth))nodeWidth=minInnerWidth;if(Number.isNaN(nodeHeight))nodeHeight=minInnerHeight;layout.width=Math.round(nodeWidth),layout.height=Math.round(nodeHeight);return}let isRow=isRowDirection(style2.flexDirection),mainAxisSize=isRow?contentWidth:contentHeight,crossAxisSize=isRow?contentHeight:contentWidth,mainGap=isRow?style2.gap[0]:style2.gap[1],totalMainSize=0,maxCrossSize=0,itemCount=0;for(let child of node.children){if(child.style.display===DISPLAY_NONE2)continue;if(child.style.positionType===POSITION_TYPE_ABSOLUTE2)continue;let childStyle=child.style,childMarginMain=isRow?resolveEdgeValue(childStyle.margin,0,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(childStyle.margin,2,style2.flexDirection,contentWidth,direction):resolveEdgeValue(childStyle.margin,1,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(childStyle.margin,3,style2.flexDirection,contentWidth,direction),childMarginCross=isRow?resolveEdgeValue(childStyle.margin,1,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(childStyle.margin,3,style2.flexDirection,contentWidth,direction):resolveEdgeValue(childStyle.margin,0,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(childStyle.margin,2,style2.flexDirection,contentWidth,direction),childAvailW=isRow?NaN:crossAxisSize,childAvailH=isRow?crossAxisSize:NaN,measuredW=0,measuredH=0,cached=child.getCachedLayout(childAvailW,childAvailH);if(cached)incLayoutCacheHits();else{let savedW=child.layout.width,savedH=child.layout.height;measureNode(child,childAvailW,childAvailH,direction),measuredW=child.layout.width,measuredH=child.layout.height,child.layout.width=savedW,child.layout.height=savedH,child.setCachedLayout(childAvailW,childAvailH,measuredW,measuredH)}let childMainSize=cached?isRow?cached.width:cached.height:isRow?measuredW:measuredH,childCrossSize=cached?isRow?cached.height:cached.width:isRow?measuredH:measuredW;totalMainSize+=childMainSize+childMarginMain,maxCrossSize=Math.max(maxCrossSize,childCrossSize+childMarginCross),itemCount++}if(itemCount>1)totalMainSize+=mainGap*(itemCount-1);if(Number.isNaN(nodeWidth))nodeWidth=(isRow?totalMainSize:maxCrossSize)+innerLeft+innerRight;if(Number.isNaN(nodeHeight))nodeHeight=(isRow?maxCrossSize:totalMainSize)+innerTop+innerBottom;nodeWidth=applyMinMax(nodeWidth,style2.minWidth,style2.maxWidth,availableWidth),nodeHeight=applyMinMax(nodeHeight,style2.minHeight,style2.maxHeight,availableHeight),layout.width=Math.round(nodeWidth),layout.height=Math.round(nodeHeight)}var init_layout_measure=__esm(()=>{init_utils3();init_layout_helpers()});function growLineArrays(needed){let newSize=Math.max(needed,MAX_FLEX_LINES*2);MAX_FLEX_LINES=newSize,_lineCrossSizes=new Float64Array(newSize),_lineCrossOffsets=new Float64Array(newSize),_lineLengths=new Uint16Array(newSize),_lineJustifyStarts=new Float64Array(newSize),_lineItemSpacings=new Float64Array(newSize);while(_lineChildren.length<newSize)_lineChildren.push([])}function enterLayout(){if(_layoutDepth++===0)return null;return{crossSizes:_lineCrossSizes.slice(),crossOffsets:_lineCrossOffsets.slice(),lengths:_lineLengths.slice(),justifyStarts:_lineJustifyStarts.slice(),itemSpacings:_lineItemSpacings.slice(),children:_lineChildren.map((arr)=>arr.slice()),maxLines:MAX_FLEX_LINES}}function exitLayout(saved){if(_layoutDepth--,!saved)return;MAX_FLEX_LINES=saved.maxLines,_lineCrossSizes=saved.crossSizes,_lineCrossOffsets=saved.crossOffsets,_lineLengths=saved.lengths,_lineJustifyStarts=saved.justifyStarts,_lineItemSpacings=saved.itemSpacings,_lineChildren=saved.children}function breakIntoLines(parent,relativeCount,mainAxisSize,mainGap,wrap){if(wrap===WRAP_NO_WRAP2||Number.isNaN(mainAxisSize)||relativeCount===0){let lineArr=_lineChildren[0],idx=0;for(let child of parent.children)if(child.flex.relativeIndex>=0)child.flex.lineIndex=0,lineArr[idx++]=child;return lineArr.length=idx,_lineLengths[0]=relativeCount,_lineCrossSizes[0]=0,_lineCrossOffsets[0]=0,1}let lineIndex=0,lineMainSize=0,lineChildCount=0,lineChildIdx=0;for(let child of parent.children){if(child.flex.relativeIndex<0)continue;let flex=child.flex,childMainSize=Math.max(flex.minMain,Math.min(flex.maxMain,flex.baseSize))+flex.mainMargin,gapIfNotFirst=lineChildCount>0?mainGap:0;if(lineChildCount>0&&lineMainSize+gapIfNotFirst+childMainSize>mainAxisSize){if(_lineChildren[lineIndex].length=lineChildIdx,_lineLengths[lineIndex]=lineChildCount,lineIndex++,lineIndex>=MAX_FLEX_LINES)growLineArrays(lineIndex+16);lineChildIdx=0,lineMainSize=childMainSize,lineChildCount=1}else lineMainSize+=gapIfNotFirst+childMainSize,lineChildCount++;flex.lineIndex=lineIndex,_lineChildren[lineIndex][lineChildIdx++]=child}if(lineChildCount>0)_lineChildren[lineIndex].length=lineChildIdx,_lineLengths[lineIndex]=lineChildCount,lineIndex++;let numLines=lineIndex;for(let i=0;i<numLines;i++)_lineCrossSizes[i]=0,_lineCrossOffsets[i]=0;if(wrap===WRAP_WRAP_REVERSE2&&numLines>1){for(let i=0;i<Math.floor(numLines/2);i++){let j=numLines-1-i,lineI=_lineChildren[i],lineJ=_lineChildren[j],lenI=lineI.length,lenJ=lineJ.length,maxLen=Math.max(lenI,lenJ);for(let k=0;k<maxLen;k++){let hasI=k<lenI,hasJ=k<lenJ,tmpI=hasI?lineI[k]:null,tmpJ=hasJ?lineJ[k]:null;if(hasJ)lineI[k]=tmpJ;if(hasI)lineJ[k]=tmpI}lineI.length=lenJ,lineJ.length=lenI}for(let i=0;i<numLines;i++){let lc=_lineChildren[i];for(let c=0;c<lc.length;c++)lc[c].flex.lineIndex=i}}return numLines}function distributeFlexSpaceForLine(lineChildren,initialFreeSpace){let isGrowing=initialFreeSpace>0;if(initialFreeSpace===0)return;let childCount=lineChildren.length;if(childCount===0)return;if(childCount===1){let flex=lineChildren[0].flex;if(isGrowing?flex.flexGrow>0:flex.flexShrink>0){let target=flex.baseSize+initialFreeSpace;flex.mainSize=Math.max(flex.minMain,Math.min(flex.maxMain,target))}return}let totalBase=0;for(let i=0;i<childCount;i++)totalBase+=lineChildren[i].flex.baseSize;let containerInner=initialFreeSpace+totalBase;for(let i=0;i<childCount;i++)lineChildren[i].flex.frozen=!1;let freeSpace=initialFreeSpace,iterations=0,maxIterations=childCount+1;while(iterations++<maxIterations){let totalFlex=0;for(let i=0;i<childCount;i++){let flex=lineChildren[i].flex;if(flex.frozen)continue;if(isGrowing)totalFlex+=flex.flexGrow;else totalFlex+=flex.flexShrink*flex.baseSize}if(totalFlex===0)break;let effectiveFreeSpace=freeSpace;if(isGrowing&&totalFlex<1)effectiveFreeSpace=freeSpace*totalFlex;let totalViolation=0;for(let i=0;i<childCount;i++){let flex=lineChildren[i].flex;if(flex.frozen)continue;let flexFactor=isGrowing?flex.flexGrow:flex.flexShrink*flex.baseSize,ratio=totalFlex>0?flexFactor/totalFlex:0,target=flex.baseSize+effectiveFreeSpace*ratio,clamped=Math.max(flex.minMain,Math.min(flex.maxMain,target));totalViolation+=clamped-target,flex.mainSize=clamped}let anyFrozen=!1;if(Math.abs(totalViolation)<EPSILON_FLOAT){for(let i=0;i<childCount;i++)lineChildren[i].flex.frozen=!0;break}else if(totalViolation>0)for(let i=0;i<childCount;i++){let flex=lineChildren[i].flex;if(flex.frozen)continue;let target=flex.baseSize+(isGrowing?flex.flexGrow:flex.flexShrink*flex.baseSize)/totalFlex*effectiveFreeSpace;if(flex.mainSize>target+EPSILON_FLOAT)flex.frozen=!0,anyFrozen=!0}else for(let i=0;i<childCount;i++){let flex=lineChildren[i].flex;if(flex.frozen)continue;let flexFactor=isGrowing?flex.flexGrow:flex.flexShrink*flex.baseSize,target=flex.baseSize+flexFactor/totalFlex*effectiveFreeSpace;if(flex.mainSize<target-EPSILON_FLOAT)flex.frozen=!0,anyFrozen=!0}if(!anyFrozen)break;let frozenSpace=0,unfrozenBase=0;for(let i=0;i<childCount;i++){let flex=lineChildren[i].flex;if(flex.frozen)frozenSpace+=flex.mainSize;else unfrozenBase+=flex.baseSize}freeSpace=containerInner-frozenSpace-unfrozenBase}}var MAX_FLEX_LINES=32,_lineCrossSizes,_lineCrossOffsets,_lineLengths,_lineChildren,_lineJustifyStarts,_lineItemSpacings,_layoutDepth=0,EPSILON_FLOAT=0.001;var init_layout_flex_lines=__esm(()=>{_lineCrossSizes=new Float64Array(MAX_FLEX_LINES),_lineCrossOffsets=new Float64Array(MAX_FLEX_LINES),_lineLengths=new Uint16Array(MAX_FLEX_LINES),_lineChildren=Array.from({length:MAX_FLEX_LINES},()=>[]),_lineJustifyStarts=new Float64Array(MAX_FLEX_LINES),_lineItemSpacings=new Float64Array(MAX_FLEX_LINES)});function computeLayout(root,availableWidth,availableHeight,direction=DIRECTION_LTR2){let saved=enterLayout();try{resetLayoutStats(),getTrace()?.resetCounter(),root.resetLayoutCache(),layoutNode(root,availableWidth,availableHeight,0,0,0,0,direction)}finally{exitLayout(saved)}}function layoutNode(node,availableWidth,availableHeight,offsetX,offsetY,absX,absY,direction=DIRECTION_LTR2){if(incLayoutNodeCalls(),offsetX===0&&offsetY===0&&absX===0&&absY===0&&node.children.length>0)incLayoutSizingCalls();else incLayoutPositioningCalls();log5.debug?.("layoutNode called: availW=%d, availH=%d, offsetX=%d, offsetY=%d, absX=%d, absY=%d, children=%d",availableWidth,availableHeight,offsetX,offsetY,absX,absY,node.children.length);let _t=getTrace(),_tn=_t?.nextNode()??0;_t?.layoutEnter(_tn,availableWidth,availableHeight,node.isDirty(),node.children.length);let{style:style2,layout}=node;if(style2.display===DISPLAY_NONE2){layout.left=0,layout.top=0,layout.width=0,layout.height=0;return}let flex=node.flex;if(flex.layoutValid&&!node.isDirty()&&Object.is(flex.lastAvailW,availableWidth)&&Object.is(flex.lastAvailH,availableHeight)&&flex.lastDir===direction&&flex.lastAbsX===absX&&flex.lastAbsY===absY){_t?.fingerprintHit(_tn,availableWidth,availableHeight);let deltaX=offsetX-flex.lastOffsetX,deltaY=offsetY-flex.lastOffsetY;if(deltaX!==0||deltaY!==0)layout.left+=deltaX,layout.top+=deltaY,flex.lastOffsetX=offsetX,flex.lastOffsetY=offsetY,propagatePositionDelta(node,deltaX,deltaY);return}_t?.fingerprintMiss(_tn,availableWidth,availableHeight,{layoutValid:flex.layoutValid,isDirty:node.isDirty(),sameW:Object.is(flex.lastAvailW,availableWidth),sameH:Object.is(flex.lastAvailH,availableHeight),sameDir:flex.lastDir===direction,sameAbsX:flex.lastAbsX===absX,sameAbsY:flex.lastAbsY===absY});let marginLeft=resolveEdgeValue(style2.margin,0,style2.flexDirection,availableWidth,direction),marginTop=resolveEdgeValue(style2.margin,1,style2.flexDirection,availableWidth,direction),marginRight=resolveEdgeValue(style2.margin,2,style2.flexDirection,availableWidth,direction),marginBottom=resolveEdgeValue(style2.margin,3,style2.flexDirection,availableWidth,direction),paddingLeft=resolveEdgeValue(style2.padding,0,style2.flexDirection,availableWidth,direction),paddingTop=resolveEdgeValue(style2.padding,1,style2.flexDirection,availableWidth,direction),paddingRight=resolveEdgeValue(style2.padding,2,style2.flexDirection,availableWidth,direction),paddingBottom=resolveEdgeValue(style2.padding,3,style2.flexDirection,availableWidth,direction),borderLeft=resolveEdgeBorderValue(style2.border,0,style2.flexDirection,direction),borderTop=resolveEdgeBorderValue(style2.border,1,style2.flexDirection,direction),borderRight=resolveEdgeBorderValue(style2.border,2,style2.flexDirection,direction),borderBottom=resolveEdgeBorderValue(style2.border,3,style2.flexDirection,direction),nodeWidth;if(style2.width.unit===UNIT_POINT2)nodeWidth=style2.width.value;else if(style2.width.unit===UNIT_PERCENT2)nodeWidth=resolveValue(style2.width,availableWidth);else if(Number.isNaN(availableWidth))nodeWidth=NaN;else nodeWidth=availableWidth-marginLeft-marginRight;nodeWidth=applyMinMax(nodeWidth,style2.minWidth,style2.maxWidth,availableWidth);let nodeHeight;if(style2.height.unit===UNIT_POINT2)nodeHeight=style2.height.value;else if(style2.height.unit===UNIT_PERCENT2)nodeHeight=resolveValue(style2.height,availableHeight);else if(Number.isNaN(availableHeight))nodeHeight=NaN;else nodeHeight=availableHeight-marginTop-marginBottom;let aspectRatio=style2.aspectRatio;if(!Number.isNaN(aspectRatio)&&aspectRatio>0){let widthIsAuto=Number.isNaN(nodeWidth)||style2.width.unit===UNIT_AUTO2,heightIsAuto=Number.isNaN(nodeHeight)||style2.height.unit===UNIT_AUTO2;if(widthIsAuto&&!heightIsAuto&&!Number.isNaN(nodeHeight))nodeWidth=nodeHeight*aspectRatio,nodeWidth=applyMinMax(nodeWidth,style2.minWidth,style2.maxWidth,availableWidth);else if(heightIsAuto&&!widthIsAuto&&!Number.isNaN(nodeWidth))nodeHeight=nodeWidth/aspectRatio}nodeHeight=applyMinMax(nodeHeight,style2.minHeight,style2.maxHeight,availableHeight);let innerLeft=borderLeft+paddingLeft,innerTop=borderTop+paddingTop,innerRight=borderRight+paddingRight,innerBottom=borderBottom+paddingBottom,minInnerWidth=innerLeft+innerRight,minInnerHeight=innerTop+innerBottom;if(!Number.isNaN(nodeWidth)&&nodeWidth<minInnerWidth)nodeWidth=minInnerWidth;if(!Number.isNaN(nodeHeight)&&nodeHeight<minInnerHeight)nodeHeight=minInnerHeight;let contentWidth=Number.isNaN(nodeWidth)?NaN:Math.max(0,nodeWidth-innerLeft-innerRight),contentHeight=Number.isNaN(nodeHeight)?NaN:Math.max(0,nodeHeight-innerTop-innerBottom),parentPosOffsetX=0,parentPosOffsetY=0;if(style2.positionType===POSITION_TYPE_RELATIVE2){let leftPos=resolvePositionEdge(style2.position,0,direction),topPos=style2.position[1],rightPos=resolvePositionEdge(style2.position,2,direction),bottomPos=style2.position[3];if(leftPos.unit!==UNIT_UNDEFINED2)parentPosOffsetX=resolveValue(leftPos,availableWidth);else if(rightPos.unit!==UNIT_UNDEFINED2)parentPosOffsetX=-resolveValue(rightPos,availableWidth);if(topPos.unit!==UNIT_UNDEFINED2)parentPosOffsetY=resolveValue(topPos,availableHeight);else if(bottomPos.unit!==UNIT_UNDEFINED2)parentPosOffsetY=-resolveValue(bottomPos,availableHeight)}if(node.hasMeasureFunc()&&node.children.length===0){let widthIsAuto=style2.width.unit===UNIT_AUTO2||style2.width.unit===UNIT_UNDEFINED2||Number.isNaN(nodeWidth),heightIsAuto=style2.height.unit===UNIT_AUTO2||style2.height.unit===UNIT_UNDEFINED2||Number.isNaN(nodeHeight),widthMode=widthIsAuto?MEASURE_MODE_AT_MOST2:MEASURE_MODE_EXACTLY2,heightMode=heightIsAuto?MEASURE_MODE_UNDEFINED2:MEASURE_MODE_EXACTLY2,measureWidth=Number.isNaN(contentWidth)?1/0:contentWidth,measureHeight=Number.isNaN(contentHeight)?1/0:contentHeight,measured=node.cachedMeasure(measureWidth,widthMode,measureHeight,heightMode);if(widthIsAuto)nodeWidth=measured.width+innerLeft+innerRight;if(heightIsAuto)nodeHeight=measured.height+innerTop+innerBottom;layout.width=Math.round(nodeWidth),layout.height=Math.round(nodeHeight),layout.left=Math.round(offsetX+marginLeft),layout.top=Math.round(offsetY+marginTop);return}if(node.children.length===0){if(Number.isNaN(nodeWidth))nodeWidth=innerLeft+innerRight;if(Number.isNaN(nodeHeight))nodeHeight=innerTop+innerBottom;layout.width=Math.round(nodeWidth),layout.height=Math.round(nodeHeight),layout.left=Math.round(offsetX+marginLeft),layout.top=Math.round(offsetY+marginTop);return}let isRow=isRowDirection(style2.flexDirection),isReverse=isReverseDirection(style2.flexDirection),effectiveReverse=isRow?direction===DIRECTION_RTL2!==isReverse:isReverse,mainAxisSize=isRow?contentWidth:contentHeight,crossAxisSize=isRow?contentHeight:contentWidth,mainGap=isRow?style2.gap[0]:style2.gap[1],totalBaseMain=0,relativeCount=0,totalAutoMargins=0,hasBaselineAlignment=style2.alignItems===ALIGN_BASELINE2;for(let child of node.children){if(child.style.display===DISPLAY_NONE2||child.style.positionType===POSITION_TYPE_ABSOLUTE2){child.flex.relativeIndex=-1;continue}child.flex.relativeIndex=relativeCount++;let{style:childStyle,flex:cflex}=child,mainStartIndex=isRow?effectiveReverse?2:0:isReverse?3:1,mainEndIndex=isRow?effectiveReverse?0:2:isReverse?1:3;cflex.mainStartMarginAuto=isEdgeAuto(childStyle.margin,mainStartIndex,style2.flexDirection,direction),cflex.mainEndMarginAuto=isEdgeAuto(childStyle.margin,mainEndIndex,style2.flexDirection,direction),cflex.marginL=resolveEdgeValue(childStyle.margin,0,style2.flexDirection,contentWidth,direction),cflex.marginT=resolveEdgeValue(childStyle.margin,1,style2.flexDirection,contentWidth,direction),cflex.marginR=resolveEdgeValue(childStyle.margin,2,style2.flexDirection,contentWidth,direction),cflex.marginB=resolveEdgeValue(childStyle.margin,3,style2.flexDirection,contentWidth,direction),cflex.mainStartMarginValue=cflex.mainStartMarginAuto?0:isRow?effectiveReverse?cflex.marginR:cflex.marginL:isReverse?cflex.marginB:cflex.marginT,cflex.mainEndMarginValue=cflex.mainEndMarginAuto?0:isRow?effectiveReverse?cflex.marginL:cflex.marginR:isReverse?cflex.marginT:cflex.marginB,cflex.mainMargin=cflex.mainStartMarginValue+cflex.mainEndMarginValue;let baseSize=0;if(childStyle.flexBasis.unit===UNIT_POINT2)baseSize=childStyle.flexBasis.value;else if(childStyle.flexBasis.unit===UNIT_PERCENT2)baseSize=Number.isNaN(mainAxisSize)?0:mainAxisSize*(childStyle.flexBasis.value/100);else{let sizeVal=isRow?childStyle.width:childStyle.height;if(sizeVal.unit===UNIT_POINT2)baseSize=sizeVal.value;else if(sizeVal.unit===UNIT_PERCENT2)baseSize=Number.isNaN(mainAxisSize)?0:mainAxisSize*(sizeVal.value/100);else if(child.hasMeasureFunc()){let crossMargin=isRow?cflex.marginT+cflex.marginB:cflex.marginL+cflex.marginR,availCross=crossAxisSize-crossMargin,wantMaxContent=childStyle.flexGrow>0,mW=isRow?wantMaxContent?1/0:Number.isNaN(mainAxisSize)?1/0:mainAxisSize:Number.isNaN(availCross)?1/0:availCross,mH=isRow?Number.isNaN(availCross)?1/0:availCross:wantMaxContent?1/0:Number.isNaN(mainAxisSize)?1/0:mainAxisSize,mWMode=isRow?wantMaxContent?MEASURE_MODE_UNDEFINED2:MEASURE_MODE_AT_MOST2:Number.isNaN(availCross)?MEASURE_MODE_UNDEFINED2:MEASURE_MODE_AT_MOST2,mHMode=isRow?MEASURE_MODE_UNDEFINED2:wantMaxContent?MEASURE_MODE_UNDEFINED2:MEASURE_MODE_AT_MOST2,measured=child.cachedMeasure(mW,mWMode,mH,mHMode);baseSize=isRow?measured.width:measured.height}else if(child.children.length>0){let sizingW=isRow?NaN:crossAxisSize,sizingH=isRow?crossAxisSize:NaN,cached=child.getCachedLayout(sizingW,sizingH);if(cached)incLayoutCacheHits(),_t?.cacheHit(_tn,sizingW,sizingH,cached.width,cached.height),baseSize=isRow?cached.width:cached.height;else{_t?.cacheMiss(_tn,sizingW,sizingH);let savedW=child.layout.width,savedH=child.layout.height;measureNode(child,sizingW,sizingH,direction);let measuredW=child.layout.width,measuredH=child.layout.height;child.layout.width=savedW,child.layout.height=savedH,_t?.measureSaveRestore(_tn,savedW,savedH,measuredW,measuredH),baseSize=isRow?measuredW:measuredH,child.setCachedLayout(sizingW,sizingH,measuredW,measuredH)}}else{let parentWidth=isRow?mainAxisSize:crossAxisSize,childPadding=isRow?resolveEdgeValue(childStyle.padding,0,childStyle.flexDirection,parentWidth,direction)+resolveEdgeValue(childStyle.padding,2,childStyle.flexDirection,parentWidth,direction):resolveEdgeValue(childStyle.padding,1,childStyle.flexDirection,parentWidth,direction)+resolveEdgeValue(childStyle.padding,3,childStyle.flexDirection,parentWidth,direction),childBorder=isRow?resolveEdgeBorderValue(childStyle.border,0,childStyle.flexDirection,direction)+resolveEdgeBorderValue(childStyle.border,2,childStyle.flexDirection,direction):resolveEdgeBorderValue(childStyle.border,1,childStyle.flexDirection,direction)+resolveEdgeBorderValue(childStyle.border,3,childStyle.flexDirection,direction);baseSize=childPadding+childBorder}}let minVal=isRow?childStyle.minWidth:childStyle.minHeight,maxVal=isRow?childStyle.maxWidth:childStyle.maxHeight;cflex.minMain=minVal.unit!==UNIT_UNDEFINED2?resolveValue(minVal,mainAxisSize):0,cflex.maxMain=maxVal.unit!==UNIT_UNDEFINED2?resolveValue(maxVal,mainAxisSize):1/0,cflex.flexGrow=childStyle.flexGrow;let shrink=childStyle.flexShrink;if(childStyle.overflow!==OVERFLOW_VISIBLE2)shrink=Math.max(shrink,1);if(child.hasMeasureFunc()&&childStyle.flexGrow>0)shrink=Math.max(shrink,1);if(cflex.flexShrink=shrink,cflex.baseSize=baseSize,cflex.mainSize=baseSize,cflex.frozen=!1,totalBaseMain+=baseSize+cflex.mainMargin,cflex.mainStartMarginAuto)totalAutoMargins++;if(cflex.mainEndMarginAuto)totalAutoMargins++;if(!hasBaselineAlignment&&childStyle.alignSelf===ALIGN_BASELINE2)hasBaselineAlignment=!0}if(log5.debug?.("layoutNode: node.children=%d, relativeCount=%d",node.children.length,relativeCount),relativeCount>0){let numLines=breakIntoLines(node,relativeCount,mainAxisSize,mainGap,style2.flexWrap),crossGap=isRow?style2.gap[1]:style2.gap[0];for(let lineIdx=0;lineIdx<numLines;lineIdx++){let lineChildren=_lineChildren[lineIdx],lineLength=lineChildren.length;if(lineLength===0)continue;let lineTotalBaseMain=0;for(let i=0;i<lineLength;i++){let c=lineChildren[i];lineTotalBaseMain+=c.flex.baseSize+c.flex.mainMargin}let lineTotalGaps=lineLength>1?mainGap*(lineLength-1):0,effectiveMainSize=mainAxisSize;if(Number.isNaN(mainAxisSize)){let maxMainVal=isRow?style2.maxWidth:style2.maxHeight;if(maxMainVal.unit!==UNIT_UNDEFINED2){let maxMain=resolveValue(maxMainVal,isRow?availableWidth:availableHeight);if(!Number.isNaN(maxMain)&&lineTotalBaseMain+lineTotalGaps>maxMain){let innerMain=isRow?innerLeft+innerRight:innerTop+innerBottom;effectiveMainSize=maxMain-innerMain}}}if(!Number.isNaN(effectiveMainSize)){let adjustedFreeSpace=effectiveMainSize-lineTotalBaseMain-lineTotalGaps;distributeFlexSpaceForLine(lineChildren,adjustedFreeSpace)}for(let i=0;i<lineLength;i++){let f=lineChildren[i].flex;f.mainSize=Math.max(f.minMain,Math.min(f.maxMain,f.mainSize))}}for(let lineIdx=0;lineIdx<numLines;lineIdx++){let lineChildren=_lineChildren[lineIdx],lineLength=lineChildren.length;if(lineLength===0){_lineJustifyStarts[lineIdx]=0,_lineItemSpacings[lineIdx]=mainGap;continue}let lineUsedMain=0,lineAutoMargins=0;for(let i=0;i<lineLength;i++){let c=lineChildren[i];if(lineUsedMain+=c.flex.mainSize+c.flex.mainMargin,c.flex.mainStartMarginAuto)lineAutoMargins++;if(c.flex.mainEndMarginAuto)lineAutoMargins++}let lineGaps=lineLength>1?mainGap*(lineLength-1):0;lineUsedMain+=lineGaps;let lineRemainingSpace=Number.isNaN(mainAxisSize)?0:mainAxisSize-lineUsedMain,lineHasAutoMargins=lineAutoMargins>0;if(lineHasAutoMargins){let autoMarginValue=Math.max(0,lineRemainingSpace)/lineAutoMargins;for(let i=0;i<lineLength;i++){let child=lineChildren[i];if(child.flex.mainStartMarginAuto)child.flex.mainStartMarginValue=autoMarginValue;if(child.flex.mainEndMarginAuto)child.flex.mainEndMarginValue=autoMarginValue}}let lineStartOffset=0,lineItemSpacing=mainGap;if(!lineHasAutoMargins)switch(style2.justifyContent){case JUSTIFY_FLEX_END2:lineStartOffset=lineRemainingSpace;break;case JUSTIFY_CENTER2:lineStartOffset=lineRemainingSpace/2;break;case JUSTIFY_SPACE_BETWEEN2:if(lineLength>1&&lineRemainingSpace>0)lineItemSpacing=mainGap+lineRemainingSpace/(lineLength-1);break;case JUSTIFY_SPACE_AROUND2:if(lineLength>0&&lineRemainingSpace>0){let extraSpace=lineRemainingSpace/lineLength;lineStartOffset=extraSpace/2,lineItemSpacing=mainGap+extraSpace}break;case JUSTIFY_SPACE_EVENLY2:if(lineLength>0&&lineRemainingSpace>0){let extraSpace=lineRemainingSpace/(lineLength+1);lineStartOffset=extraSpace,lineItemSpacing=mainGap+extraSpace}break}_lineJustifyStarts[lineIdx]=lineStartOffset,_lineItemSpacings[lineIdx]=lineItemSpacing}let startOffset=_lineJustifyStarts[0],itemSpacing=_lineItemSpacings[0],maxBaseline=0,baselineZoneHeight=0,alignItemsIsBaseline=style2.alignItems===ALIGN_BASELINE2;if(hasBaselineAlignment&&isRow){let maxChildHeight=0;for(let child of node.children){if(child.flex.relativeIndex<0)continue;let childStyle=child.style,topMargin=child.flex.marginT,childWidth,childHeight,widthDim=childStyle.width,heightDim=childStyle.height;if(widthDim.unit===UNIT_POINT2)childWidth=widthDim.value;else if(widthDim.unit===UNIT_PERCENT2&&!Number.isNaN(mainAxisSize))childWidth=mainAxisSize*(widthDim.value/100);else childWidth=child.flex.mainSize;if(heightDim.unit===UNIT_POINT2)childHeight=heightDim.value;else if(heightDim.unit===UNIT_PERCENT2&&!Number.isNaN(crossAxisSize))childHeight=crossAxisSize*(heightDim.value/100);else{let cached=child.getCachedLayout(child.flex.mainSize,NaN);if(cached)incLayoutCacheHits(),_t?.cacheHit(_tn,child.flex.mainSize,NaN,cached.width,cached.height),childWidth=cached.width,childHeight=cached.height;else{_t?.cacheMiss(_tn,child.flex.mainSize,NaN);let savedW=child.layout.width,savedH=child.layout.height;measureNode(child,child.flex.mainSize,NaN,direction),childWidth=child.layout.width,childHeight=child.layout.height,child.layout.width=savedW,child.layout.height=savedH,_t?.measureSaveRestore(_tn,savedW,savedH,childWidth,childHeight),child.setCachedLayout(child.flex.mainSize,NaN,childWidth,childHeight)}}if(child.baselineFunc!==null)child.flex.baseline=topMargin+child.baselineFunc(childWidth,childHeight);else child.flex.baseline=topMargin+childHeight;if(maxChildHeight=Math.max(maxChildHeight,topMargin+childHeight+child.flex.marginB),alignItemsIsBaseline||childStyle.alignSelf===ALIGN_BASELINE2)maxBaseline=Math.max(maxBaseline,child.flex.baseline)}baselineZoneHeight=Math.max(maxBaseline,maxChildHeight)}let cumulativeCrossOffset=0,isWrapReverse=style2.flexWrap===WRAP_WRAP_REVERSE2;for(let lineIdx=0;lineIdx<numLines;lineIdx++){_lineCrossOffsets[lineIdx]=cumulativeCrossOffset;let lineChildren=_lineChildren[lineIdx],lineLength=lineChildren.length,maxLineCross=0;for(let i=0;i<lineLength;i++){let child=lineChildren[i],childStyle=child.style,crossDim=isRow?childStyle.height:childStyle.width,crossMarginStart=isRow?child.flex.marginT:child.flex.marginL,crossMarginEnd=isRow?child.flex.marginB:child.flex.marginR,childCross=0;if(crossDim.unit===UNIT_POINT2)childCross=crossDim.value;else if(crossDim.unit===UNIT_PERCENT2&&!Number.isNaN(crossAxisSize))childCross=crossAxisSize*(crossDim.value/100);else if(child.hasMeasureFunc()){let crossMargin=crossMarginStart+crossMarginEnd,availCross=Number.isNaN(crossAxisSize)?1/0:crossAxisSize-crossMargin,childMainSize=child.flex.mainSize,mW=isRow?childMainSize:availCross,mH=isRow?availCross:childMainSize,mWMode=Number.isNaN(mW)?MEASURE_MODE_UNDEFINED2:MEASURE_MODE_AT_MOST2,mHMode=Number.isNaN(mH)?MEASURE_MODE_UNDEFINED2:MEASURE_MODE_AT_MOST2,measured=child.cachedMeasure(Number.isNaN(mW)?1/0:mW,mWMode,Number.isNaN(mH)?1/0:mH,mHMode);if(measured)childCross=isRow?measured.height:measured.width}else if(child.children.length>0){let savedW=child.layout.width,savedH=child.layout.height;measureNode(child,NaN,NaN,direction),childCross=isRow?child.layout.height:child.layout.width,child.layout.width=savedW,child.layout.height=savedH}maxLineCross=Math.max(maxLineCross,childCross+crossMarginStart+crossMarginEnd)}let lineCrossSize=maxLineCross;_lineCrossSizes[lineIdx]=lineCrossSize,cumulativeCrossOffset+=lineCrossSize+crossGap}if(!Number.isNaN(crossAxisSize)&&numLines>0){let totalLineCrossSize=cumulativeCrossOffset-crossGap,freeSpace=crossAxisSize-totalLineCrossSize;switch(style2.alignContent){case ALIGN_FLEX_END2:for(let i=0;i<numLines;i++)_lineCrossOffsets[i]+=freeSpace;break;case ALIGN_CENTER2:{let centerOffset=freeSpace/2;for(let i=0;i<numLines;i++)_lineCrossOffsets[i]+=centerOffset}break;case ALIGN_SPACE_BETWEEN2:if(freeSpace>0&&numLines>1){let gap=freeSpace/(numLines-1);for(let i=1;i<numLines;i++)_lineCrossOffsets[i]+=gap*i}break;case ALIGN_SPACE_AROUND2:if(freeSpace>0){let halfGap=freeSpace/(numLines*2);for(let i=0;i<numLines;i++)_lineCrossOffsets[i]+=halfGap+halfGap*2*i}else{let centerOffset=freeSpace/2;for(let i=0;i<numLines;i++)_lineCrossOffsets[i]+=centerOffset}break;case ALIGN_SPACE_EVENLY:if(freeSpace>0&&numLines>0){let gap=freeSpace/(numLines+1);for(let i=0;i<numLines;i++)_lineCrossOffsets[i]+=gap*(i+1)}else if(freeSpace<0){let centerOffset=freeSpace/2;for(let i=0;i<numLines;i++)_lineCrossOffsets[i]+=centerOffset}break;case ALIGN_STRETCH2:if(freeSpace>0&&numLines>0){let extraPerLine=freeSpace/numLines;for(let i=0;i<numLines;i++)if(_lineCrossSizes[i]+=extraPerLine,i>0)_lineCrossOffsets[i]=_lineCrossOffsets[i-1]+_lineCrossSizes[i-1]+crossGap}break}if(isWrapReverse){let totalLineCrossSize2=0;for(let i=0;i<numLines;i++)totalLineCrossSize2+=_lineCrossSizes[i];totalLineCrossSize2+=crossGap*(numLines-1);let crossStartOffset=crossAxisSize-totalLineCrossSize2;for(let i=0;i<numLines;i++)_lineCrossOffsets[i]+=crossStartOffset}}let savedLineCrossSizes=null,savedLineCrossOffsets=null,savedLineJustifyStarts=null,savedLineItemSpacings=null;if(numLines>1){savedLineCrossSizes=new Float64Array(numLines),savedLineCrossOffsets=new Float64Array(numLines),savedLineJustifyStarts=new Float64Array(numLines),savedLineItemSpacings=new Float64Array(numLines);for(let i=0;i<numLines;i++)savedLineCrossSizes[i]=_lineCrossSizes[i],savedLineCrossOffsets[i]=_lineCrossOffsets[i],savedLineJustifyStarts[i]=_lineJustifyStarts[i],savedLineItemSpacings[i]=_lineItemSpacings[i]}let effectiveMainAxisSize=mainAxisSize,mainIsAuto=isRow?style2.width.unit!==UNIT_POINT2&&style2.width.unit!==UNIT_PERCENT2:style2.height.unit!==UNIT_POINT2&&style2.height.unit!==UNIT_PERCENT2,totalGaps=relativeCount>1?mainGap*(relativeCount-1):0;if(effectiveReverse&&mainIsAuto){let totalContent=0;for(let child of node.children){if(child.flex.relativeIndex<0)continue;totalContent+=child.flex.mainSize+child.flex.mainStartMarginValue+child.flex.mainEndMarginValue}totalContent+=totalGaps,effectiveMainAxisSize=totalContent}let mainPos=effectiveReverse?effectiveMainAxisSize-startOffset:startOffset,currentLineIdx=-1,relIdx=0,lineChildIdx=0,currentLineLength=0,currentItemSpacing=itemSpacing;log5.debug?.("positioning children: isRow=%s, startOffset=%d, relativeCount=%d, effectiveReverse=%s, numLines=%d",isRow,startOffset,relativeCount,effectiveReverse,numLines);for(let child of node.children){if(child.flex.relativeIndex<0)continue;let{flex:cflex,style:childStyle}=child,childLineIdx=cflex.lineIndex;if(childLineIdx!==currentLineIdx){currentLineIdx=childLineIdx,lineChildIdx=0,currentLineLength=_lineChildren[childLineIdx].length;let lineOffset=savedLineJustifyStarts?savedLineJustifyStarts[childLineIdx]:_lineJustifyStarts[childLineIdx];currentItemSpacing=savedLineItemSpacings?savedLineItemSpacings[childLineIdx]:_lineItemSpacings[childLineIdx],mainPos=effectiveReverse?effectiveMainAxisSize-lineOffset:lineOffset}let lineCrossOffset=savedLineCrossOffsets?savedLineCrossOffsets[childLineIdx]:childLineIdx<MAX_FLEX_LINES?_lineCrossOffsets[childLineIdx]:0,childMarginLeft,childMarginTop,childMarginRight,childMarginBottom;if(isRow)childMarginLeft=cflex.mainStartMarginAuto&&!effectiveReverse?cflex.mainStartMarginValue:cflex.mainEndMarginAuto&&effectiveReverse?cflex.mainEndMarginValue:cflex.marginL,childMarginRight=cflex.mainEndMarginAuto&&!effectiveReverse?cflex.mainEndMarginValue:cflex.mainStartMarginAuto&&effectiveReverse?cflex.mainStartMarginValue:cflex.marginR,childMarginTop=cflex.marginT,childMarginBottom=cflex.marginB;else childMarginTop=cflex.mainStartMarginAuto&&!isReverse?cflex.mainStartMarginValue:cflex.mainEndMarginAuto&&isReverse?cflex.mainEndMarginValue:cflex.marginT,childMarginBottom=cflex.mainEndMarginAuto&&!isReverse?cflex.mainEndMarginValue:cflex.mainStartMarginAuto&&isReverse?cflex.mainStartMarginValue:cflex.marginB,childMarginLeft=cflex.marginL,childMarginRight=cflex.marginR;let childMainSize=cflex.mainSize,alignment=style2.alignItems;if(childStyle.alignSelf!==ALIGN_AUTO2)alignment=childStyle.alignSelf;let childCrossDimForAR=isRow?childStyle.height:childStyle.width,childCrossIsAutoForAR=childCrossDimForAR.unit===UNIT_AUTO2||childCrossDimForAR.unit===UNIT_UNDEFINED2;if(alignment===ALIGN_STRETCH2&&childStyle.alignSelf===ALIGN_AUTO2&&!Number.isNaN(childStyle.aspectRatio)&&childStyle.aspectRatio>0&&childCrossIsAutoForAR)alignment=ALIGN_FLEX_START2;let childCrossSize,crossDim=isRow?childStyle.height:childStyle.width,crossMargin=isRow?childMarginTop+childMarginBottom:childMarginLeft+childMarginRight,parentCrossDim=isRow?style2.height:style2.width,parentHasDefiniteCross=parentCrossDim.unit===UNIT_POINT2||parentCrossDim.unit===UNIT_PERCENT2||!Number.isNaN(crossAxisSize);if(crossDim.unit===UNIT_POINT2)childCrossSize=crossDim.value;else if(crossDim.unit===UNIT_PERCENT2)childCrossSize=resolveValue(crossDim,crossAxisSize);else if(parentHasDefiniteCross&&alignment===ALIGN_STRETCH2)childCrossSize=(numLines>1?savedLineCrossSizes?savedLineCrossSizes[childLineIdx]:_lineCrossSizes[childLineIdx]:crossAxisSize)-crossMargin;else childCrossSize=NaN;let crossMinVal=isRow?childStyle.minHeight:childStyle.minWidth,crossMaxVal=isRow?childStyle.maxHeight:childStyle.maxWidth,crossMin=crossMinVal.unit!==UNIT_UNDEFINED2?resolveValue(crossMinVal,crossAxisSize):0,crossMax=crossMaxVal.unit!==UNIT_UNDEFINED2?resolveValue(crossMaxVal,crossAxisSize):1/0;if(Number.isNaN(childCrossSize)){if(crossMin>0)childCrossSize=crossMin}else childCrossSize=Math.max(crossMin,Math.min(crossMax,childCrossSize));let mainDim=isRow?childStyle.width:childStyle.height,hasDefiniteFlexBasis=childStyle.flexBasis.unit===UNIT_POINT2||childStyle.flexBasis.unit===UNIT_PERCENT2,mainIsAutoChild=(mainDim.unit===UNIT_AUTO2||mainDim.unit===UNIT_UNDEFINED2)&&!hasDefiniteFlexBasis,hasFlexGrow=cflex.flexGrow>0,effectiveMainSize=childMainSize,childWidth=isRow?effectiveMainSize:childCrossSize,childHeight=isRow?childCrossSize:effectiveMainSize,shouldMeasure=child.hasMeasureFunc()&&child.children.length===0&&!hasFlexGrow;if(shouldMeasure){let widthAuto=childStyle.width.unit===UNIT_AUTO2||childStyle.width.unit===UNIT_UNDEFINED2,heightAuto=childStyle.height.unit===UNIT_AUTO2||childStyle.height.unit===UNIT_UNDEFINED2;if(widthAuto||heightAuto){let widthMode=widthAuto?MEASURE_MODE_AT_MOST2:MEASURE_MODE_EXACTLY2,heightMode=heightAuto?MEASURE_MODE_UNDEFINED2:MEASURE_MODE_EXACTLY2,rawAvailW=widthAuto?isRow?mainAxisSize-mainPos:crossAxisSize-crossMargin:childStyle.width.value,rawAvailH=heightAuto?isRow?crossAxisSize-crossMargin:mainAxisSize-mainPos:childStyle.height.value,availW=Number.isNaN(rawAvailW)?1/0:rawAvailW,availH=Number.isNaN(rawAvailH)?1/0:rawAvailH,measured=child.cachedMeasure(availW,widthMode,availH,heightMode);if(widthAuto)childWidth=measured.width;if(heightAuto)childHeight=measured.height}}let childX,childY;if(effectiveReverse)if(isRow)childX=mainPos-childMainSize-childMarginRight,childY=lineCrossOffset+childMarginTop;else childX=lineCrossOffset+childMarginLeft,childY=mainPos-childMainSize-childMarginTop;else childX=isRow?mainPos+childMarginLeft:lineCrossOffset+childMarginLeft,childY=isRow?lineCrossOffset+childMarginTop:mainPos+childMarginTop;let fractionalLeft=innerLeft+childX,fractionalTop=innerTop+childY,posOffsetX=0,posOffsetY=0;if(childStyle.positionType===POSITION_TYPE_RELATIVE2){let relLeftPos=resolvePositionEdge(childStyle.position,0,direction),relTopPos=childStyle.position[1],relRightPos=resolvePositionEdge(childStyle.position,2,direction),relBottomPos=childStyle.position[3];if(relLeftPos.unit!==UNIT_UNDEFINED2)posOffsetX=resolveValue(relLeftPos,contentWidth);else if(relRightPos.unit!==UNIT_UNDEFINED2)posOffsetX=-resolveValue(relRightPos,contentWidth);if(relTopPos.unit!==UNIT_UNDEFINED2)posOffsetY=resolveValue(relTopPos,contentHeight);else if(relBottomPos.unit!==UNIT_UNDEFINED2)posOffsetY=-resolveValue(relBottomPos,contentHeight)}let absChildLeft=absX+marginLeft+parentPosOffsetX+fractionalLeft+posOffsetX,absChildTop=absY+marginTop+parentPosOffsetY+fractionalTop+posOffsetY,roundedAbsMainStart,roundedAbsMainEnd,edgeBasedMainSize,useEdgeBasedRounding=childMainSize>0,childPaddingL=resolveEdgeValue(childStyle.padding,0,childStyle.flexDirection,contentWidth,direction),childPaddingT=resolveEdgeValue(childStyle.padding,1,childStyle.flexDirection,contentWidth,direction),childPaddingR=resolveEdgeValue(childStyle.padding,2,childStyle.flexDirection,contentWidth,direction),childPaddingB=resolveEdgeValue(childStyle.padding,3,childStyle.flexDirection,contentWidth,direction),childBorderL=resolveEdgeBorderValue(childStyle.border,0,childStyle.flexDirection,direction),childBorderT=resolveEdgeBorderValue(childStyle.border,1,childStyle.flexDirection,direction),childBorderR=resolveEdgeBorderValue(childStyle.border,2,childStyle.flexDirection,direction),childBorderB=resolveEdgeBorderValue(childStyle.border,3,childStyle.flexDirection,direction),childMinW=childPaddingL+childPaddingR+childBorderL+childBorderR,childMinH=childPaddingT+childPaddingB+childBorderT+childBorderB,childMinMain=isRow?childMinW:childMinH,constrainedMainSize=Math.max(childMainSize,childMinMain);if(useEdgeBasedRounding)if(isRow)roundedAbsMainStart=Math.round(absChildLeft),roundedAbsMainEnd=Math.round(absChildLeft+constrainedMainSize),edgeBasedMainSize=roundedAbsMainEnd-roundedAbsMainStart;else roundedAbsMainStart=Math.round(absChildTop),roundedAbsMainEnd=Math.round(absChildTop+constrainedMainSize),edgeBasedMainSize=roundedAbsMainEnd-roundedAbsMainStart;else roundedAbsMainStart=isRow?Math.round(absChildLeft):Math.round(absChildTop),edgeBasedMainSize=childMinMain;let posRound=shouldMeasure?Math.floor:Math.round,childLeft=posRound(fractionalLeft+posOffsetX),childTop=posRound(fractionalTop+posOffsetY),crossDimForLayoutCall=isRow?childStyle.height:childStyle.width,crossIsAutoForLayoutCall=crossDimForLayoutCall.unit===UNIT_AUTO2||crossDimForLayoutCall.unit===UNIT_UNDEFINED2,mainIsPercentForLayoutCall=(isRow?childStyle.width:childStyle.height).unit===UNIT_PERCENT2,crossIsPercentForLayoutCall=crossDimForLayoutCall.unit===UNIT_PERCENT2,flexDistChanged=child.flex.mainSize!==child.flex.baseSize,hasMeasureLeaf=child.hasMeasureFunc()&&child.children.length===0,passWidthToChild=isRow&&mainIsAutoChild&&!hasFlexGrow&&!flexDistChanged&&!hasMeasureLeaf?NaN:!isRow&&crossIsAutoForLayoutCall&&!parentHasDefiniteCross?NaN:isRow&&mainIsPercentForLayoutCall?mainAxisSize:!isRow&&crossIsPercentForLayoutCall?crossAxisSize:childWidth,passHeightToChild=!isRow&&mainIsAutoChild&&!hasFlexGrow&&!flexDistChanged&&!hasMeasureLeaf?NaN:isRow&&crossIsAutoForLayoutCall&&!parentHasDefiniteCross?NaN:!isRow&&mainIsPercentForLayoutCall?mainAxisSize:isRow&&crossIsPercentForLayoutCall?crossAxisSize:childHeight,childAbsX=absChildLeft-childMarginLeft,childAbsY=absChildTop-childMarginTop;if(layoutNode(child,passWidthToChild,passHeightToChild,childLeft,childTop,childAbsX,childAbsY,direction),childWidth<childMinW)childWidth=childMinW;if(childHeight<childMinH)childHeight=childMinH;let hasMeasure=child.hasMeasureFunc()&&child.children.length===0,flexDistributionChangedSize=child.flex.mainSize!==child.flex.baseSize;if(!mainIsAuto&&!mainIsAutoChild||hasFlexGrow||hasMeasure||flexDistributionChangedSize)if(isRow)_t?.parentOverride(_tn,"main",child.layout.width,edgeBasedMainSize),child.layout.width=edgeBasedMainSize;else _t?.parentOverride(_tn,"main",child.layout.height,edgeBasedMainSize),child.layout.height=edgeBasedMainSize;let crossDimForCheck=isRow?childStyle.height:childStyle.width,crossIsAuto=crossDimForCheck.unit===UNIT_AUTO2||crossDimForCheck.unit===UNIT_UNDEFINED2,parentCrossIsAuto=!parentHasDefiniteCross,hasCrossMinMax=crossMinVal.unit!==UNIT_UNDEFINED2||crossMaxVal.unit!==UNIT_UNDEFINED2;if(!crossIsAuto||!parentCrossIsAuto&&alignment===ALIGN_STRETCH2||hasCrossMinMax&&!Number.isNaN(childCrossSize))if(isRow)child.layout.height=Math.round(childHeight);else child.layout.width=Math.round(childWidth);child.layout.left=childLeft,child.layout.top=childTop,childWidth=child.layout.width,childHeight=child.layout.height;let finalCrossSize=isRow?child.layout.height:child.layout.width,crossOffset=0,crossStartIndex=isRow?1:0,crossEndIndex=isRow?3:2,hasAutoStartMargin=isEdgeAuto(childStyle.margin,crossStartIndex,style2.flexDirection,direction),hasAutoEndMargin=isEdgeAuto(childStyle.margin,crossEndIndex,style2.flexDirection,direction),availableCrossSpace=(hasBaselineAlignment&&isRow&&!alignItemsIsBaseline&&alignment!==ALIGN_BASELINE2&&baselineZoneHeight>0?baselineZoneHeight:crossAxisSize)-finalCrossSize-crossMargin;if(hasAutoStartMargin&&hasAutoEndMargin)crossOffset=Math.max(0,availableCrossSpace)/2;else if(hasAutoStartMargin)crossOffset=Math.max(0,availableCrossSpace);else if(hasAutoEndMargin)crossOffset=0;else switch(alignment){case ALIGN_FLEX_END2:crossOffset=availableCrossSpace;break;case ALIGN_CENTER2:crossOffset=availableCrossSpace/2;break;case ALIGN_BASELINE2:if(isRow&&hasBaselineAlignment)crossOffset=maxBaseline-child.flex.baseline;break}if(crossOffset!==0){let crossRound=shouldMeasure?Math.floor:Math.round;if(isRow)child.layout.top+=crossRound(crossOffset);else child.layout.left+=crossRound(crossOffset)}let fractionalMainSize=!mainIsAuto&&!mainIsAutoChild||hasFlexGrow||hasMeasure||flexDistributionChangedSize?constrainedMainSize:isRow?child.layout.width:child.layout.height,totalMainMargin=cflex.mainStartMarginValue+cflex.mainEndMarginValue;if(log5.debug?.(" child %d: mainPos=%d -> top=%d (fractionalMainSize=%d, totalMainMargin=%d)",relIdx,mainPos,child.layout.top,fractionalMainSize,totalMainMargin),effectiveReverse){if(mainPos-=fractionalMainSize+totalMainMargin,lineChildIdx<currentLineLength-1)mainPos-=currentItemSpacing}else if(mainPos+=fractionalMainSize+totalMainMargin,lineChildIdx<currentLineLength-1)mainPos+=currentItemSpacing;relIdx++,lineChildIdx++}let actualUsedMain=0;for(let child of node.children){if(child.flex.relativeIndex<0)continue;let childMainSize=isRow?child.layout.width:child.layout.height,totalMainMargin=child.flex.mainStartMarginValue+child.flex.mainEndMarginValue;actualUsedMain+=childMainSize+totalMainMargin}actualUsedMain+=totalGaps;let hasAR=!Number.isNaN(aspectRatio)&&aspectRatio>0;if(isRow&&style2.width.unit!==UNIT_POINT2&&style2.width.unit!==UNIT_PERCENT2&&!hasAR)nodeWidth=actualUsedMain+innerLeft+innerRight;if(!isRow&&style2.height.unit!==UNIT_POINT2&&style2.height.unit!==UNIT_PERCENT2&&!hasAR)nodeHeight=actualUsedMain+innerTop+innerBottom;let totalCrossSize=0;if(numLines>1){for(let i=0;i<numLines;i++)totalCrossSize+=savedLineCrossSizes?savedLineCrossSizes[i]:_lineCrossSizes[i];totalCrossSize+=crossGap*(numLines-1)}else for(let child of node.children){if(child.flex.relativeIndex<0)continue;let childCross=isRow?child.layout.height:child.layout.width,childMargin=isRow?resolveEdgeValue(child.style.margin,1,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(child.style.margin,3,style2.flexDirection,contentWidth,direction):resolveEdgeValue(child.style.margin,0,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(child.style.margin,2,style2.flexDirection,contentWidth,direction);totalCrossSize=Math.max(totalCrossSize,childCross+childMargin)}if(isRow&&style2.height.unit!==UNIT_POINT2&&style2.height.unit!==UNIT_PERCENT2&&Number.isNaN(availableHeight)&&!hasAR)nodeHeight=totalCrossSize+innerTop+innerBottom;if(!isRow&&style2.width.unit!==UNIT_POINT2&&style2.width.unit!==UNIT_PERCENT2&&Number.isNaN(availableWidth)&&!hasAR)nodeWidth=totalCrossSize+innerLeft+innerRight}if(nodeWidth=applyMinMax(nodeWidth,style2.minWidth,style2.maxWidth,availableWidth),nodeHeight=applyMinMax(nodeHeight,style2.minHeight,style2.maxHeight,availableHeight),!Number.isNaN(nodeWidth)&&nodeWidth<minInnerWidth)nodeWidth=minInnerWidth;if(!Number.isNaN(nodeHeight)&&nodeHeight<minInnerHeight)nodeHeight=minInnerHeight;if(Number.isNaN(crossAxisSize)&&relativeCount>0){let finalCross=isRow?nodeHeight-innerTop-innerBottom:nodeWidth-innerLeft-innerRight;if(!Number.isNaN(finalCross)&&finalCross>0){for(let child of node.children){if(child.flex.relativeIndex<0)continue;let cstyle=child.style,childAlign=style2.alignItems;if(cstyle.alignSelf!==ALIGN_AUTO2)childAlign=cstyle.alignSelf;let cCrossDim=isRow?cstyle.height:cstyle.width,cCrossIsAuto=cCrossDim.unit===UNIT_AUTO2||cCrossDim.unit===UNIT_UNDEFINED2;if(childAlign===ALIGN_STRETCH2&&cstyle.alignSelf===ALIGN_AUTO2&&!Number.isNaN(cstyle.aspectRatio)&&cstyle.aspectRatio>0&&cCrossIsAuto)childAlign=ALIGN_FLEX_START2;if(childAlign!==ALIGN_STRETCH2)continue;if(!cCrossIsAuto)continue;let cCrossMargin=isRow?resolveEdgeValue(cstyle.margin,1,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(cstyle.margin,3,style2.flexDirection,contentWidth,direction):resolveEdgeValue(cstyle.margin,0,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(cstyle.margin,2,style2.flexDirection,contentWidth,direction),stretchedCross=finalCross-cCrossMargin,currentCross=isRow?child.layout.height:child.layout.width;if(Math.round(stretchedCross)<=currentCross)continue;let savedLeft=child.layout.left,savedTop=child.layout.top,cMarginL=resolveEdgeValue(cstyle.margin,0,style2.flexDirection,contentWidth,direction),cMarginT=resolveEdgeValue(cstyle.margin,1,style2.flexDirection,contentWidth,direction),cAbsX=absX+innerLeft+savedLeft-cMarginL,cAbsY=absY+innerTop+savedTop-cMarginT,passW=isRow?child.layout.width:stretchedCross,passH=isRow?stretchedCross:child.layout.height;if(layoutNode(child,passW,passH,savedLeft,savedTop,cAbsX,cAbsY,direction),child.layout.left=savedLeft,child.layout.top=savedTop,isRow)child.layout.height=Math.round(stretchedCross);else child.layout.width=Math.round(stretchedCross)}if(Number.isNaN(crossAxisSize)&&relativeCount>0){let finalCross9c=isRow?nodeHeight-innerTop-innerBottom:nodeWidth-innerLeft-innerRight;if(!Number.isNaN(finalCross9c)&&finalCross9c>0)for(let child of node.children){if(child.flex.relativeIndex<0)continue;let cstyle=child.style,childAlign=style2.alignItems;if(cstyle.alignSelf!==ALIGN_AUTO2)childAlign=cstyle.alignSelf;let cCrossDim=isRow?cstyle.height:cstyle.width,cCrossIsAuto=cCrossDim.unit===UNIT_AUTO2||cCrossDim.unit===UNIT_UNDEFINED2;if(childAlign===ALIGN_STRETCH2&&cstyle.alignSelf===ALIGN_AUTO2&&!Number.isNaN(cstyle.aspectRatio)&&cstyle.aspectRatio>0&&cCrossIsAuto)childAlign=ALIGN_FLEX_START2;let crossStartIdx=isRow?1:0,crossEndIdx=isRow?3:2,hasAutoStart=isEdgeAuto(cstyle.margin,crossStartIdx,style2.flexDirection,direction),hasAutoEnd=isEdgeAuto(cstyle.margin,crossEndIdx,style2.flexDirection,direction);if(!(hasAutoStart||hasAutoEnd||childAlign===ALIGN_CENTER2||childAlign===ALIGN_FLEX_END2))continue;let childCrossSize=isRow?child.layout.height:child.layout.width,cCrossMargin=isRow?resolveEdgeValue(cstyle.margin,1,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(cstyle.margin,3,style2.flexDirection,contentWidth,direction):resolveEdgeValue(cstyle.margin,0,style2.flexDirection,contentWidth,direction)+resolveEdgeValue(cstyle.margin,2,style2.flexDirection,contentWidth,direction),availSpace=finalCross9c-childCrossSize-cCrossMargin,crossOffset=0;if(hasAutoStart&&hasAutoEnd)crossOffset=Math.max(0,availSpace)/2;else if(hasAutoStart)crossOffset=Math.max(0,availSpace);else if(hasAutoEnd)crossOffset=0;else switch(childAlign){case ALIGN_FLEX_END2:crossOffset=availSpace;break;case ALIGN_CENTER2:crossOffset=availSpace/2;break}if(isRow){if(Number.isNaN(child.layout.top)){let cMarginT=resolveEdgeValue(cstyle.margin,1,style2.flexDirection,contentWidth,direction);child.layout.top=Math.round(cMarginT+crossOffset)}else if(crossOffset!==0)child.layout.top+=Math.round(crossOffset)}else if(Number.isNaN(child.layout.left)){let cMarginL=resolveEdgeValue(cstyle.margin,0,style2.flexDirection,contentWidth,direction);child.layout.left=Math.round(cMarginL+crossOffset)}else if(crossOffset!==0)child.layout.left+=Math.round(crossOffset)}}}}let absNodeLeft=absX+marginLeft+parentPosOffsetX,absNodeTop=absY+marginTop+parentPosOffsetY,absNodeRight=absNodeLeft+nodeWidth,absNodeBottom=absNodeTop+nodeHeight,roundedAbsLeft=Math.round(absNodeLeft),roundedAbsTop=Math.round(absNodeTop),roundedAbsRight=Math.round(absNodeRight),roundedAbsBottom=Math.round(absNodeBottom);layout.width=roundedAbsRight-roundedAbsLeft,layout.height=roundedAbsBottom-roundedAbsTop;let roundedAbsParentLeft=Math.round(absX),roundedAbsParentTop=Math.round(absY);layout.left=roundedAbsLeft-roundedAbsParentLeft,layout.top=roundedAbsTop-roundedAbsParentTop;let absInnerLeft=borderLeft,absInnerTop=borderTop,absInnerRight=borderRight,absInnerBottom=borderBottom,absPaddingBoxW=nodeWidth-absInnerLeft-absInnerRight,absPaddingBoxH=nodeHeight-absInnerTop-absInnerBottom,absContentBoxW=absPaddingBoxW-paddingLeft-paddingRight,absContentBoxH=absPaddingBoxH-paddingTop-paddingBottom;for(let child of node.children){if(child.style.display===DISPLAY_NONE2)continue;if(child.style.positionType!==POSITION_TYPE_ABSOLUTE2)continue;let childStyle=child.style,childMarginLeft=resolveEdgeValue(childStyle.margin,0,style2.flexDirection,nodeWidth,direction),childMarginTop=resolveEdgeValue(childStyle.margin,1,style2.flexDirection,nodeWidth,direction),childMarginRight=resolveEdgeValue(childStyle.margin,2,style2.flexDirection,nodeWidth,direction),childMarginBottom=resolveEdgeValue(childStyle.margin,3,style2.flexDirection,nodeWidth,direction),hasAutoMarginLeft=isEdgeAuto(childStyle.margin,0,style2.flexDirection,direction),hasAutoMarginRight=isEdgeAuto(childStyle.margin,2,style2.flexDirection,direction),hasAutoMarginTop=isEdgeAuto(childStyle.margin,1,style2.flexDirection,direction),hasAutoMarginBottom=isEdgeAuto(childStyle.margin,3,style2.flexDirection,direction),leftPos=resolvePositionEdge(childStyle.position,0,direction),topPos=childStyle.position[1],rightPos=resolvePositionEdge(childStyle.position,2,direction),bottomPos=childStyle.position[3],hasLeft=leftPos.unit!==UNIT_UNDEFINED2,hasRight=rightPos.unit!==UNIT_UNDEFINED2,hasTop=topPos.unit!==UNIT_UNDEFINED2,hasBottom=bottomPos.unit!==UNIT_UNDEFINED2,leftOffset=resolveValue(leftPos,absContentBoxW),topOffset=resolveValue(topPos,absContentBoxH),rightOffset=resolveValue(rightPos,absContentBoxW),bottomOffset=resolveValue(bottomPos,absContentBoxH),contentW=absPaddingBoxW,contentH=absPaddingBoxH,childAvailWidth,widthIsAuto=childStyle.width.unit===UNIT_AUTO2||childStyle.width.unit===UNIT_UNDEFINED2,widthIsPercent=childStyle.width.unit===UNIT_PERCENT2;if(widthIsAuto&&hasLeft&&hasRight)childAvailWidth=contentW-leftOffset-rightOffset-childMarginLeft-childMarginRight;else if(widthIsAuto)childAvailWidth=NaN;else if(widthIsPercent)childAvailWidth=absContentBoxW;else childAvailWidth=contentW;let childAvailHeight,heightIsAuto=childStyle.height.unit===UNIT_AUTO2||childStyle.height.unit===UNIT_UNDEFINED2,heightIsPercent=childStyle.height.unit===UNIT_PERCENT2;if(heightIsAuto&&hasTop&&hasBottom)childAvailHeight=contentH-topOffset-bottomOffset-childMarginTop-childMarginBottom;else if(heightIsAuto)childAvailHeight=NaN;else if(heightIsPercent)childAvailHeight=absContentBoxH;else childAvailHeight=contentH;let childX=childMarginLeft+leftOffset,childY=childMarginTop+topOffset,childAbsX=absX+marginLeft+absInnerLeft+leftOffset,childAbsY=absY+marginTop+absInnerTop+topOffset,clampIfNumber=(v)=>Number.isNaN(v)?NaN:Math.max(0,v);layoutNode(child,clampIfNumber(childAvailWidth),clampIfNumber(childAvailHeight),layout.left+absInnerLeft+childX,layout.top+absInnerTop+childY,childAbsX,childAbsY,direction);let childWidth=child.layout.width,childHeight=child.layout.height;if(!hasLeft&&!hasRight)if(isRow){let freeSpaceX=contentW-childWidth-childMarginLeft-childMarginRight;switch(style2.justifyContent){case JUSTIFY_CENTER2:childX=childMarginLeft+freeSpaceX/2;break;case JUSTIFY_FLEX_END2:childX=childMarginLeft+freeSpaceX;break;default:childX=childMarginLeft;break}}else{let alignment=style2.alignItems;if(childStyle.alignSelf!==ALIGN_AUTO2)alignment=childStyle.alignSelf;let freeSpaceX=contentW-childWidth-childMarginLeft-childMarginRight;switch(alignment){case ALIGN_CENTER2:childX=childMarginLeft+freeSpaceX/2;break;case ALIGN_FLEX_END2:childX=childMarginLeft+freeSpaceX;break;case ALIGN_STRETCH2:break;default:childX=childMarginLeft;break}}else if(!hasLeft&&hasRight)childX=contentW-rightOffset-childMarginRight-childWidth;else if(hasLeft&&hasRight){if(widthIsAuto)child.layout.width=Math.round(childAvailWidth);else if(hasAutoMarginLeft||hasAutoMarginRight){let freeSpace=Math.max(0,contentW-leftOffset-rightOffset-childWidth);if(hasAutoMarginLeft&&hasAutoMarginRight)childX=leftOffset+freeSpace/2;else if(hasAutoMarginLeft)childX=leftOffset+freeSpace}}if(!hasTop&&!hasBottom)if(isRow){let alignment=style2.alignItems;if(childStyle.alignSelf!==ALIGN_AUTO2)alignment=childStyle.alignSelf;let freeSpaceY=contentH-childHeight-childMarginTop-childMarginBottom;switch(alignment){case ALIGN_CENTER2:childY=childMarginTop+freeSpaceY/2;break;case ALIGN_FLEX_END2:childY=childMarginTop+freeSpaceY;break;case ALIGN_STRETCH2:break;default:childY=childMarginTop;break}}else{let freeSpaceY=contentH-childHeight-childMarginTop-childMarginBottom;switch(style2.justifyContent){case JUSTIFY_CENTER2:childY=childMarginTop+freeSpaceY/2;break;case JUSTIFY_FLEX_END2:childY=childMarginTop+freeSpaceY;break;default:childY=childMarginTop;break}}else if(!hasTop&&hasBottom)childY=contentH-bottomOffset-childMarginBottom-childHeight;else if(hasTop&&hasBottom){if(heightIsAuto)child.layout.height=Math.round(childAvailHeight);else if(hasAutoMarginTop||hasAutoMarginBottom){let freeSpace=Math.max(0,contentH-topOffset-bottomOffset-childHeight);if(hasAutoMarginTop&&hasAutoMarginBottom)childY=topOffset+freeSpace/2;else if(hasAutoMarginTop)childY=topOffset+freeSpace}}child.layout.left=Math.round(absInnerLeft+childX),child.layout.top=Math.round(absInnerTop+childY)}flex.lastAvailW=availableWidth,flex.lastAvailH=availableHeight,flex.lastOffsetX=offsetX,flex.lastOffsetY=offsetY,flex.lastAbsX=absX,flex.lastAbsY=absY,flex.lastDir=direction,flex.layoutValid=!0,_t?.layoutExit(_tn,layout.width,layout.height)}var init_layout_zero=__esm(async()=>{init_utils3();init_layout_helpers();init_layout_traversal();init_layout_measure();init_layout_helpers();init_layout_traversal();init_layout_measure();init_layout_flex_lines();await init_logger()});function createValue(value=0,unit=0){return{value,unit}}function createDefaultStyle(){return{display:0,positionType:1,position:[createValue(),createValue(),createValue(),createValue(),createValue(),createValue()],flexDirection:2,flexWrap:0,flexGrow:0,flexShrink:0,flexBasis:createValue(0,3),alignItems:4,alignSelf:0,alignContent:1,justifyContent:0,width:createValue(0,3),height:createValue(0,3),minWidth:createValue(),minHeight:createValue(),maxWidth:createValue(),maxHeight:createValue(),aspectRatio:NaN,margin:[createValue(),createValue(),createValue(),createValue(),createValue(),createValue()],padding:[createValue(),createValue(),createValue(),createValue(),createValue(),createValue()],border:[0,0,0,0,NaN,NaN],gap:[0,0],overflow:0}}var Node;var init_node_zero=__esm(async()=>{init_utils3();await __promiseAll([init_layout_zero(),init_logger()]);Node=class Node{_parent=null;_children=[];_style=createDefaultStyle();_measureFunc=null;_baselineFunc=null;_m0;_m1;_m2;_m3;_lc0;_lc1;_measureResult={width:0,height:0};_layoutResult={width:0,height:0};static measureCalls=0;static measureCacheHits=0;static resetMeasureStats(){Node.measureCalls=0,Node.measureCacheHits=0}_layout={left:0,top:0,width:0,height:0};_flex={mainSize:0,baseSize:0,mainMargin:0,flexGrow:0,flexShrink:0,minMain:0,maxMain:1/0,mainStartMarginAuto:!1,mainEndMarginAuto:!1,mainStartMarginValue:0,mainEndMarginValue:0,marginL:0,marginT:0,marginR:0,marginB:0,frozen:!1,lineIndex:0,relativeIndex:-1,baseline:0,lastAvailW:NaN,lastAvailH:NaN,lastOffsetX:NaN,lastOffsetY:NaN,lastAbsX:NaN,lastAbsY:NaN,layoutValid:!1,lastDir:0};_isDirty=!0;_hasNewLayout=!1;_lastCalcW=NaN;_lastCalcH=NaN;_lastCalcDir=0;static create(){return new Node}getChildCount(){return this._children.length}getChild(index){return this._children[index]}getParent(){return this._parent}insertChild(child,index){if(child===this)throw Error("Cannot insert a node as a child of itself");let ancestor=this._parent;while(ancestor!==null){if(ancestor===child)throw Error("Cannot insert an ancestor as a child (would create a cycle)");ancestor=ancestor._parent}if(child._parent!==null)child._parent.removeChild(child);child._parent=this;let clampedIndex=Math.max(0,Math.min(index,this._children.length));this._children.splice(clampedIndex,0,child);for(let i=clampedIndex+1;i<this._children.length;i++)this._children[i]._flex.layoutValid=!1;this.markDirty()}removeChild(child){let index=this._children.indexOf(child);if(index!==-1){this._children.splice(index,1),child._parent=null;for(let i=index;i<this._children.length;i++)this._children[i]._flex.layoutValid=!1;this.markDirty()}}free(){if(this._parent!==null)this._parent.removeChild(this);for(let child of this._children)child._parent=null;this._children=[],this._measureFunc=null,this._baselineFunc=null}freeRecursive(){let nodes=[];traversalStack.length=0,traversalStack.push(this);while(traversalStack.length>0){let current=traversalStack.pop();nodes.push(current);for(let child of current._children)traversalStack.push(child)}for(let i=nodes.length-1;i>=0;i--)nodes[i].free()}[Symbol.dispose](){this.free()}setMeasureFunc(measureFunc){this._measureFunc=measureFunc,this.markDirty()}unsetMeasureFunc(){this._measureFunc=null,this.markDirty()}hasMeasureFunc(){return this._measureFunc!==null}setBaselineFunc(baselineFunc){this._baselineFunc=baselineFunc,this.markDirty()}unsetBaselineFunc(){this._baselineFunc=null,this.markDirty()}hasBaselineFunc(){return this._baselineFunc!==null}cachedMeasure(w,wm,h,hm){if(!this._measureFunc)return null;Node.measureCalls++;let m0=this._m0;if(m0&&m0.w===w&&m0.wm===wm&&m0.h===h&&m0.hm===hm)return Node.measureCacheHits++,this._measureResult.width=m0.rw,this._measureResult.height=m0.rh,getTrace()?.measureCacheHit(0,w,h,m0.rw,m0.rh),this._measureResult;let m1=this._m1;if(m1&&m1.w===w&&m1.wm===wm&&m1.h===h&&m1.hm===hm)return Node.measureCacheHits++,this._measureResult.width=m1.rw,this._measureResult.height=m1.rh,getTrace()?.measureCacheHit(0,w,h,m1.rw,m1.rh),this._measureResult;let m2=this._m2;if(m2&&m2.w===w&&m2.wm===wm&&m2.h===h&&m2.hm===hm)return Node.measureCacheHits++,this._measureResult.width=m2.rw,this._measureResult.height=m2.rh,getTrace()?.measureCacheHit(0,w,h,m2.rw,m2.rh),this._measureResult;let m3=this._m3;if(m3&&m3.w===w&&m3.wm===wm&&m3.h===h&&m3.hm===hm)return Node.measureCacheHits++,this._measureResult.width=m3.rw,this._measureResult.height=m3.rh,getTrace()?.measureCacheHit(0,w,h,m3.rw,m3.rh),this._measureResult;getTrace()?.measureCacheMiss(0,w,h);let result=this._measureFunc(w,wm,h,hm);if(this._m2){if(!this._m3)this._m3={w:0,wm:0,h:0,hm:0,rw:0,rh:0};this._m3.w=this._m2.w,this._m3.wm=this._m2.wm,this._m3.h=this._m2.h,this._m3.hm=this._m2.hm,this._m3.rw=this._m2.rw,this._m3.rh=this._m2.rh}if(this._m1){if(!this._m2)this._m2={w:0,wm:0,h:0,hm:0,rw:0,rh:0};this._m2.w=this._m1.w,this._m2.wm=this._m1.wm,this._m2.h=this._m1.h,this._m2.hm=this._m1.hm,this._m2.rw=this._m1.rw,this._m2.rh=this._m1.rh}if(this._m0){if(!this._m1)this._m1={w:0,wm:0,h:0,hm:0,rw:0,rh:0};this._m1.w=this._m0.w,this._m1.wm=this._m0.wm,this._m1.h=this._m0.h,this._m1.hm=this._m0.hm,this._m1.rw=this._m0.rw,this._m1.rh=this._m0.rh}if(!this._m0)this._m0={w:0,wm:0,h:0,hm:0,rw:0,rh:0};return this._m0.w=w,this._m0.wm=wm,this._m0.h=h,this._m0.hm=hm,this._m0.rw=result.width,this._m0.rh=result.height,this._measureResult.width=result.width,this._measureResult.height=result.height,this._measureResult}getCachedLayout(availW,availH){if(this._isDirty)return null;let lc0=this._lc0;if(lc0&&Object.is(lc0.availW,availW)&&Object.is(lc0.availH,availH))return this._layoutResult.width=lc0.computedW,this._layoutResult.height=lc0.computedH,this._layoutResult;let lc1=this._lc1;if(lc1&&Object.is(lc1.availW,availW)&&Object.is(lc1.availH,availH))return this._layoutResult.width=lc1.computedW,this._layoutResult.height=lc1.computedH,this._layoutResult;return null}setCachedLayout(availW,availH,computedW,computedH){if(this._lc0){if(!this._lc1)this._lc1={availW:NaN,availH:NaN,computedW:0,computedH:0};this._lc1.availW=this._lc0.availW,this._lc1.availH=this._lc0.availH,this._lc1.computedW=this._lc0.computedW,this._lc1.computedH=this._lc0.computedH}if(!this._lc0)this._lc0={availW:0,availH:0,computedW:0,computedH:0};this._lc0.availW=availW,this._lc0.availH=availH,this._lc0.computedW=computedW,this._lc0.computedH=computedH}resetLayoutCache(){traversalStack.length=0,traversalStack.push(this);while(traversalStack.length>0){let node=traversalStack.pop();if(node._lc0)node._lc0.availW=-1;if(node._lc1)node._lc1.availW=-1;for(let child of node._children)traversalStack.push(child)}}isDirty(){return this._isDirty}markDirty(){let current=this;while(current!==null){if(current._m0=current._m1=current._m2=current._m3=void 0,current._lc0=current._lc1=void 0,current._isDirty)break;current._isDirty=!0,current._flex.layoutValid=!1,current=current._parent}}hasNewLayout(){return this._hasNewLayout}markLayoutSeen(){this._hasNewLayout=!1}calculateLayout(width,height,direction=DIRECTION_LTR2){let availableWidth=width??NaN,availableHeight=height??NaN;if(!this._isDirty&&Object.is(this._lastCalcW,availableWidth)&&Object.is(this._lastCalcH,availableHeight)&&this._lastCalcDir===direction){log5.debug?.("layout skip (not dirty, constraints unchanged)");return}this._lastCalcW=availableWidth,this._lastCalcH=availableHeight,this._lastCalcDir=direction;let start=log5.debug?Date.now():0,nodeCount=log5.debug?countNodes(this):0;Node.resetMeasureStats(),computeLayout(this,availableWidth,availableHeight,direction),this._isDirty=!1,this._hasNewLayout=!0,markSubtreeLayoutSeen(this),log5.debug?.("layout: %dx%d, %d nodes in %dms (measure: calls=%d hits=%d)",width,height,nodeCount,Date.now()-start,Node.measureCalls,Node.measureCacheHits)}getComputedLeft(){return this._layout.left}getComputedTop(){return this._layout.top}getComputedWidth(){return this._layout.width}getComputedHeight(){return this._layout.height}getComputedRight(){return this._layout.left+this._layout.width}getComputedBottom(){return this._layout.top+this._layout.height}getComputedPadding(edge){return getEdgeValue(this._style.padding,edge).value}getComputedMargin(edge){return getEdgeValue(this._style.margin,edge).value}getComputedBorder(edge){return getEdgeBorderValue(this._style.border,edge)}get children(){return this._children}get style(){return this._style}get layout(){return this._layout}get measureFunc(){return this._measureFunc}get baselineFunc(){return this._baselineFunc}get flex(){return this._flex}setWidth(value){if(Number.isNaN(value))this._style.width={value:0,unit:UNIT_AUTO2};else this._style.width={value,unit:UNIT_POINT2};this.markDirty()}setWidthPercent(value){this._style.width={value,unit:UNIT_PERCENT2},this.markDirty()}setWidthAuto(){this._style.width={value:0,unit:UNIT_AUTO2},this.markDirty()}setHeight(value){if(Number.isNaN(value))this._style.height={value:0,unit:UNIT_AUTO2};else this._style.height={value,unit:UNIT_POINT2};this.markDirty()}setHeightPercent(value){this._style.height={value,unit:UNIT_PERCENT2},this.markDirty()}setHeightAuto(){this._style.height={value:0,unit:UNIT_AUTO2},this.markDirty()}setMinWidth(value){this._style.minWidth={value,unit:UNIT_POINT2},this.markDirty()}setMinWidthPercent(value){this._style.minWidth={value,unit:UNIT_PERCENT2},this.markDirty()}setMinHeight(value){this._style.minHeight={value,unit:UNIT_POINT2},this.markDirty()}setMinHeightPercent(value){this._style.minHeight={value,unit:UNIT_PERCENT2},this.markDirty()}setMaxWidth(value){this._style.maxWidth={value,unit:UNIT_POINT2},this.markDirty()}setMaxWidthPercent(value){this._style.maxWidth={value,unit:UNIT_PERCENT2},this.markDirty()}setMaxHeight(value){this._style.maxHeight={value,unit:UNIT_POINT2},this.markDirty()}setMaxHeightPercent(value){this._style.maxHeight={value,unit:UNIT_PERCENT2},this.markDirty()}setAspectRatio(value){this._style.aspectRatio=value,this.markDirty()}setFlexGrow(value){this._style.flexGrow=value,this.markDirty()}setFlexShrink(value){this._style.flexShrink=value,this.markDirty()}setFlexBasis(value){this._style.flexBasis={value,unit:UNIT_POINT2},this.markDirty()}setFlexBasisPercent(value){this._style.flexBasis={value,unit:UNIT_PERCENT2},this.markDirty()}setFlexBasisAuto(){this._style.flexBasis={value:0,unit:UNIT_AUTO2},this.markDirty()}setFlexDirection(direction){this._style.flexDirection=direction,this.markDirty()}setFlexWrap(wrap){this._style.flexWrap=wrap,this.markDirty()}setAlignItems(align){this._style.alignItems=align,this.markDirty()}setAlignSelf(align){this._style.alignSelf=align,this.markDirty()}setAlignContent(align){this._style.alignContent=align,this.markDirty()}setJustifyContent(justify){this._style.justifyContent=justify,this.markDirty()}setPadding(edge,value){setEdgeValue(this._style.padding,edge,value,UNIT_POINT2),this.markDirty()}setPaddingPercent(edge,value){setEdgeValue(this._style.padding,edge,value,UNIT_PERCENT2),this.markDirty()}setMargin(edge,value){setEdgeValue(this._style.margin,edge,value,UNIT_POINT2),this.markDirty()}setMarginPercent(edge,value){setEdgeValue(this._style.margin,edge,value,UNIT_PERCENT2),this.markDirty()}setMarginAuto(edge){setEdgeValue(this._style.margin,edge,0,UNIT_AUTO2),this.markDirty()}setBorder(edge,value){setEdgeBorder(this._style.border,edge,value),this.markDirty()}setGap(gutter,value){if(gutter===GUTTER_COLUMN2)this._style.gap[0]=value;else if(gutter===GUTTER_ROW2)this._style.gap[1]=value;else if(gutter===GUTTER_ALL2)this._style.gap[0]=value,this._style.gap[1]=value;this.markDirty()}setPositionType(positionType){this._style.positionType=positionType,this.markDirty()}setPosition(edge,value){if(Number.isNaN(value))setEdgeValue(this._style.position,edge,0,UNIT_UNDEFINED2);else setEdgeValue(this._style.position,edge,value,UNIT_POINT2);this.markDirty()}setPositionPercent(edge,value){setEdgeValue(this._style.position,edge,value,UNIT_PERCENT2),this.markDirty()}setDisplay(display){this._style.display=display,this.markDirty()}setOverflow(overflow){this._style.overflow=overflow,this.markDirty()}getWidth(){return this._style.width}getHeight(){return this._style.height}getMinWidth(){return this._style.minWidth}getMinHeight(){return this._style.minHeight}getMaxWidth(){return this._style.maxWidth}getMaxHeight(){return this._style.maxHeight}getAspectRatio(){return this._style.aspectRatio}getFlexGrow(){return this._style.flexGrow}getFlexShrink(){return this._style.flexShrink}getFlexBasis(){return this._style.flexBasis}getFlexDirection(){return this._style.flexDirection}getFlexWrap(){return this._style.flexWrap}getAlignItems(){return this._style.alignItems}getAlignSelf(){return this._style.alignSelf}getAlignContent(){return this._style.alignContent}getJustifyContent(){return this._style.justifyContent}getPadding(edge){return getEdgeValue(this._style.padding,edge)}getMargin(edge){return getEdgeValue(this._style.margin,edge)}getBorder(edge){return getEdgeBorderValue(this._style.border,edge)}getPosition(edge){return getEdgeValue(this._style.position,edge)}getPositionType(){return this._style.positionType}getDisplay(){return this._style.display}getOverflow(){return this._style.overflow}getGap(gutter){if(gutter===GUTTER_COLUMN2)return this._style.gap[0];else if(gutter===GUTTER_ROW2)return this._style.gap[1];return this._style.gap[0]}}});var segmenter2;var init_monospace_measurer=__esm(()=>{segmenter2=new Intl.Segmenter(void 0,{granularity:"grapheme"})});var init_create_flexily=__esm(async()=>{init_monospace_measurer();await init_node_zero()});var segmenter3;var init_test_measurer=__esm(()=>{segmenter3=new Intl.Segmenter(void 0,{granularity:"grapheme"})});var init_src3=__esm(async()=>{init_monospace_measurer();init_test_measurer();await __promiseAll([init_create_flexily(),init_node_zero(),init_layout_zero()])});var exports_flexily_zero_adapter={};__export(exports_flexily_zero_adapter,{createFlexilyZeroEngine:()=>createFlexilyZeroEngine,FlexilyZeroLayoutEngine:()=>FlexilyZeroLayoutEngine});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(Node.create())}get constants(){return this._constants}get name(){return"flexily-zero"}}function createFlexilyZeroEngine(){return new FlexilyZeroLayoutEngine}var init_flexily_zero_adapter=__esm(async()=>{await init_src3()});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 init_flexily_zero_adapter().then(() => 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===`
|
|
70
74
|
`)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===`
|
|
71
75
|
`){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(`
|
|
72
|
-
`);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 init_github=()=>{};var init_cobalt2=()=>{};var init_synthwave=()=>{};var init_tomorrow_night=()=>{};var init_zenburn=()=>{};var init_ubuntu=()=>{};var init_tango=()=>{};var init_cyberpunk=()=>{};var init_vscode=()=>{};var init_one_light=()=>{};var init_night_owl=()=>{};var init_shades_of_purple=()=>{};var init_homebrew=()=>{};var init_neon=()=>{};var init_challenger_deep=()=>{};var init_doom_one=()=>{};var init_mariana=()=>{};var init_darcula=()=>{};var init_espresso=()=>{};var init_iceberg=()=>{};var init_serendipity=()=>{};var init_twilight=()=>{};var init_breeze=()=>{};var init_andromeda=()=>{};var init_relaxed=()=>{};var ansi16DarkTheme2,defaultDarkTheme,defaultLightTheme;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"]},defaultDarkTheme=deriveTheme(nord),defaultLightTheme=deriveTheme(catppuccinLatte)});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]===`
|
|
76
|
+
`);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=countNodes2(root);measureStats.reset();let t0=Date.now();root.layoutNode.calculateLayout(width,height);let elapsed=Date.now()-t0;log6.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 countNodes2(node){let count=1;for(let child of node.children)count+=countNodes2(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 log6;var init_layout_phase=__esm(()=>{init_measure_stats();init_dirty_tracking();init_helpers();log6=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 init_github=()=>{};var init_cobalt2=()=>{};var init_synthwave=()=>{};var init_tomorrow_night=()=>{};var init_zenburn=()=>{};var init_ubuntu=()=>{};var init_tango=()=>{};var init_cyberpunk=()=>{};var init_vscode=()=>{};var init_one_light=()=>{};var init_night_owl=()=>{};var init_shades_of_purple=()=>{};var init_homebrew=()=>{};var init_neon=()=>{};var init_challenger_deep=()=>{};var init_doom_one=()=>{};var init_mariana=()=>{};var init_darcula=()=>{};var init_espresso=()=>{};var init_iceberg=()=>{};var init_serendipity=()=>{};var init_twilight=()=>{};var init_breeze=()=>{};var init_andromeda=()=>{};var init_relaxed=()=>{};var ansi16DarkTheme2,defaultDarkTheme,defaultLightTheme;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"]},defaultDarkTheme=deriveTheme(nord),defaultLightTheme=deriveTheme(catppuccinLatte)});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]===`
|
|
73
77
|
`)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===`
|
|
74
78
|
`||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(`
|
|
75
|
-
`);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)=>truncateText(line,width,"end",ctx));if(wrap==="truncate-start")return lines.map((line)=>truncateText(line,width,"start",ctx));if(wrap==="truncate-middle")return lines.map((line)=>truncateText(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 truncateText(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)"}:
|
|
79
|
+
`);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)=>truncateText(line,width,"end",ctx));if(wrap==="truncate-start")return lines.map((line)=>truncateText(line,width,"start",ctx));if(wrap==="truncate-middle")return lines.map((line)=>truncateText(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 truncateText(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),log7.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 log7,bgConflictMode,warnedBgConflicts;var init_render_text=__esm(()=>{init_buffer();init_unicode();init_render_helpers();init_prepared_text();init_pretext();log7=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_src4=__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)"}:
|
|
76
80
|
${mismatches.join(`
|
|
77
|
-
`)}`)}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(`
|
|
78
|
-
`),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}function calculateLayout(root,width,height){let c=getConstants();if(!root.layoutNode)throw Error("Root node must have a layout node");root.layoutNode.calculateLayout(width,height,c.DIRECTION_LTR),propagateLayout2(root,0,0),notifyLayoutSubscribers2(root)}function propagateLayout2(node,parentX,parentY){if(node.prevLayout=node.boxRect,!node.layoutNode)return;let left=node.layoutNode.getComputedLeft(),top=node.layoutNode.getComputedTop(),width=node.layoutNode.getComputedWidth(),height=node.layoutNode.getComputedHeight();if(node.boxRect={x:parentX+left,y:parentY+top,width,height},node.layoutDirty=!1,!rectEqual(node.prevLayout,node.boxRect)){let epoch=getRenderEpoch();if(node.dirtyEpoch!==epoch)node.dirtyBits=CONTENT_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=CONTENT_BIT}for(let child of node.children)propagateLayout2(child,node.boxRect.x,node.boxRect.y)}function notifyLayoutSubscribers2(node){if(!rectEqual(node.prevLayout,node.boxRect))for(let subscriber of node.layoutSubscribers)subscriber();for(let child of node.children)notifyLayoutSubscribers2(child)}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 setInkStrictValidation(enabled){inkStrictValidation=enabled}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})});import React2,{act}from"react";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=React2.createElement(TermContext.Provider,{value:mockTerm},React2.createElement(StdoutContext.Provider,{value:{stdout:mockStdout,write:()=>{}}},React2.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 init_render_string=__esm(()=>{init_ansi2();init_buffer();init_context();init_pipeline2();init_reconciler();init_string_reconciler()});import React from"react";init_src2();function toChalkLevel2(cl){if(cl===null)return 0;if(cl==="basic")return 1;if(cl==="256")return 2;return 3}var detectedColor=typeof process<"u"&&process.stdout?detectColor(process.stdout):null,chalk=createStyle({level:detectedColor}),chalk_default=chalk;var detectedLevel=toChalkLevel2(detectedColor);var supportsColorStderr=(()=>{if(!process?.stderr)return!1;let level=toChalkLevel2(detectColor(process.stderr));return level===0?!1:{level}})();var foregroundColorNames=["black","red","green","yellow","blue","magenta","cyan","white","gray","grey","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"],backgroundColorNames=["bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgGray","bgGrey","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright"],colorNames=[...foregroundColorNames,...backgroundColorNames];init_unicode();function currentChalkLevel(){return chalk_default?.level??0}function resolveTerminalColumns(){if(process.env.COLUMNS){let val=Number(process.env.COLUMNS);if(val>0)return val}if(process.stdout?.columns&&process.stdout.columns>0)return process.stdout.columns;if(process.stderr?.columns&&process.stderr.columns>0)return process.stderr.columns;return 80}function resolveTerminalRows(){if(process.env.LINES){let val=Number(process.env.LINES);if(val>0)return val}if(process.stdout?.rows&&process.stdout.rows>0)return process.stdout.rows;if(process.stderr?.rows&&process.stderr.rows>0)return process.stderr.rows;return 24}var ForceStylesCtx=React.createContext(!1),InkRenderStateCtx=React.createContext(null);function containsAnsiEscapes(text){for(let i=0;i<text.length;i++){let code=text.charCodeAt(i);if(code===27)return!0;if(code>=128&&code<=159)return!0}return!1}function childrenContainAnsi(children){if(typeof children==="string")return containsAnsiEscapes(children);if(Array.isArray(children))return children.some((c)=>childrenContainAnsi(c));if(React.isValidElement(children))return childrenContainAnsi(children.props.children);return!1}var _userVS16Codepoints=new Set;function registerUserVS16(text){if(!text.includes("️"))return;let i=0;while(i<text.length){let cp=text.codePointAt(i),char=String.fromCodePoint(cp),charLen=char.length;if(i+charLen<text.length&&text.charCodeAt(i+charLen)===65039){if(isTextPresentationEmoji(char))_userVS16Codepoints.add(cp)}i+=charLen}}function scanChildrenForVS16(children){if(typeof children==="string")registerUserVS16(children);else if(Array.isArray(children))for(let child of children)scanChildrenForVS16(child);else if(React.isValidElement(children))scanChildrenForVS16(children.props.children)}function stripSilveryVS16(input){if(!input.includes("️"))return input;let result="",i=0;while(i<input.length){let cp=input.codePointAt(i),char=String.fromCodePoint(cp),charLen=char.length;if(i+charLen<input.length&&input.charCodeAt(i+charLen)===65039){if(isTextPresentationEmoji(char)){if(!_userVS16Codepoints.has(cp)){result+=char,i+=charLen+1;continue}}}result+=char,i+=charLen}return result}var STRING_SEQUENCE_INTROS={80:"dcs",94:"pm",95:"apc",88:"sos"},C1_STRING_SEQUENCE_MAP={144:"dcs",158:"pm",159:"apc",152:"sos"};function tokenizeAnsi(text){let tokens=[],len=text.length,i=0,textStart=i;function flushText(){if(i>textStart)tokens.push({type:"text",value:text.slice(textStart,i)})}while(i<len){let code=text.charCodeAt(i);if(code>=128&&code<=159){flushText();let c1Type=C1_STRING_SEQUENCE_MAP[code];if(c1Type){let start=i;i++,i=findST(text,i,len),tokens.push({type:c1Type,value:text.slice(start,i)})}else if(code===155){let start=i;i++,i=consumeCSI(text,i,len),tokens.push({type:"csi",value:text.slice(start,i)})}else if(code===157){let start=i;i++,i=findOSCEnd(text,i,len),tokens.push({type:"osc",value:text.slice(start,i)})}else tokens.push({type:"c1",value:text[i]}),i++;textStart=i;continue}if(code===27){if(flushText(),i+1>=len){tokens.push({type:"esc",value:text[i]}),i++,textStart=i;continue}let next=text.charCodeAt(i+1);if(next===91){let start=i;i+=2,i=consumeCSI(text,i,len),tokens.push({type:"csi",value:text.slice(start,i)}),textStart=i;continue}if(next===93){let start=i;i+=2,i=findOSCEnd(text,i,len),tokens.push({type:"osc",value:text.slice(start,i)}),textStart=i;continue}let stringType=STRING_SEQUENCE_INTROS[next];if(stringType){let start=i;i+=2,i=findST(text,i,len),tokens.push({type:stringType,value:text.slice(start,i)}),textStart=i;continue}if(next>=32&&next<=47){let start=i;i+=2;while(i<len){let c=text.charCodeAt(i);if(c<32||c>47)break;i++}if(i<len){let c=text.charCodeAt(i);if(c>=48&&c<=126)i++,tokens.push({type:"esc",value:text.slice(start,i)});else i=len,tokens.push({type:"esc",value:text.slice(start,i)})}else tokens.push({type:"esc",value:text.slice(start,i)});textStart=i;continue}if(next>=48&&next<=126){tokens.push({type:"esc",value:text.slice(i,i+2)}),i+=2,textStart=i;continue}tokens.push({type:"esc",value:text[i]}),i++,textStart=i;continue}i++}return flushText(),tokens}function consumeCSI(text,i,len){while(i<len){let c=text.charCodeAt(i);if(c<48||c>63)break;i++}while(i<len){let c=text.charCodeAt(i);if(c<32||c>47)break;i++}if(i<len){let c=text.charCodeAt(i);if(c>=64&&c<=126)i++}return i}function findST(text,i,len){while(i<len){let code=text.charCodeAt(i);if(code===156)return i+1;if(code===27&&i+1<len&&text.charCodeAt(i+1)===92)return i+2;i++}return len}function findOSCEnd(text,i,len){while(i<len){let code=text.charCodeAt(i);if(code===7)return i+1;if(code===156)return i+1;if(code===27&&i+1<len&&text.charCodeAt(i+1)===92)return i+2;i++}return len}function isCSISGR(value){if(value.length<2||value.charCodeAt(value.length-1)!==109)return!1;let start;if(value.charCodeAt(0)===27)start=2;else start=1;for(let i=start;i<value.length-1;i++){let c=value.charCodeAt(i);if(c<48||c>59)return!1}return!0}function extractColonSGRReplacements(sgrSequence){let paramsMatch=sgrSequence.match(/\x1b\[([0-9;:]+)m/);if(!paramsMatch)return[];let rawParams=paramsMatch[1];if(!rawParams.includes(":"))return[];let replacements=[],parts=rawParams.split(";");for(let part of parts){if(!part.includes(":"))continue;let subs=part.split(":"),code=Number(subs[0]);if((code===38||code===48)&&Number(subs[1])===2){let nums=subs.map((s)=>s===""?0:Number(s)),r=nums[3]??nums[2]??0,g=nums[4]??nums[3]??0,b=nums[5]??nums[4]??0,semicolonForm=`\x1B[${code};2;${r};${g};${b}m`;replacements.push({semicolonForm,colonForm:`\x1B[${part}m`})}}return replacements}function createColonSGRTracker(){let replacements=[];return{register(sgrSequence){let found=extractColonSGRReplacements(sgrSequence);for(let r of found)replacements.push(r)},restore(output){if(replacements.length===0)return output;let result=output;for(let{semicolonForm,colonForm}of replacements)result=result.replaceAll(semicolonForm,colonForm);return result},clear(){replacements.length=0}}}var colonSGRTracker=createColonSGRTracker();function restoreColonFormatSGR(output){return colonSGRTracker.restore(output)}function isOSCTerminated(value){if(value.length===0)return!1;let last=value.charCodeAt(value.length-1);if(last===7)return!0;if(last===156)return!0;if(value.length>=2&&last===92&&value.charCodeAt(value.length-2)===27)return!0;return!1}function isOSC8(value){if(value.charCodeAt(0)===27)return value.charCodeAt(2)===56&&value.charCodeAt(3)===59;return value.charCodeAt(1)===56&&value.charCodeAt(2)===59}function sanitizeAnsi(text){if(text.length===0)return"";let tokens=tokenizeAnsi(text),result="";for(let token of tokens)switch(token.type){case"text":result+=token.value;break;case"csi":if(isCSISGR(token.value))result+=token.value,colonSGRTracker.register(token.value);break;case"osc":if(isOSC8(token.value)&&isOSCTerminated(token.value))result+=token.value;break}return result}function sanitizeChildren(children){if(typeof children==="string")return sanitizeAnsi(children);if(Array.isArray(children))return children.map((child,i)=>sanitizeChildren(child));return children}import React3,{createContext as createContext4,useContext as useContext2}from"react";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)});init_context();init_render_string();import{useContext,useRef as useRef2}from"react";import{jsxDEV as jsxDEV2}from"react/jsx-dev-runtime";function Static({items,children,style:style2}){let stdoutCtx=useContext(StdoutContext),term2=useContext(TermContext),promoteScrollback=stdoutCtx?.promoteScrollback,renderedRef=useRef2([]),promotedCountRef=useRef2(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(`
|
|
81
|
+
`)}`)}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_src4();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 log8.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;log8.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;log8.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,log8.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 layoutNode2=getLayoutEngine().createNode();return{type,props,children:[],parent:null,layoutNode:layoutNode2,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 log8,baseLog;var init_ag=__esm(()=>{init_buffer();init_unicode();init_measure_phase();init_layout_phase();init_render_phase();init_dirty_tracking();log8=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)log9.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,log9.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 log9.debug?.(`pipeline: layout+render=${tLayout.toFixed(1)}ms output=${tOutput.toFixed(1)}ms total=${total.toFixed(1)}ms`),{output,buffer}}var log9,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();log9=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 layoutNode2=getLayoutEngine().createNode(),epoch=getRenderEpoch(),node={type,props,children:[],parent:null,layoutNode:layoutNode2,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(layoutNode2,props);if(type==="silvery-text"){let cachedText=null,measureCache=new Map;layoutNode2.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(`
|
|
82
|
+
`),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(layoutNode2,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("%"))layoutNode2.setWidthPercent(Number.parseFloat(props.width));else if(typeof props.width==="number")layoutNode2.setWidth(props.width);else if(props.width==="auto")layoutNode2.setWidthAuto()}else if(wasRemoved("width"))layoutNode2.setWidthAuto();if(props.height!==void 0){if(typeof props.height==="string"&&props.height.endsWith("%"))layoutNode2.setHeightPercent(Number.parseFloat(props.height));else if(typeof props.height==="number")layoutNode2.setHeight(props.height);else if(props.height==="auto")layoutNode2.setHeightAuto()}else if(wasRemoved("height"))layoutNode2.setHeightAuto();if(props.minWidth!==void 0){if(typeof props.minWidth==="string"&&props.minWidth.endsWith("%"))layoutNode2.setMinWidthPercent(Number.parseFloat(props.minWidth));else if(typeof props.minWidth==="number")layoutNode2.setMinWidth(props.minWidth)}else if(wasRemoved("minWidth"))layoutNode2.setMinWidth(0);if(props.minHeight!==void 0){if(typeof props.minHeight==="string"&&props.minHeight.endsWith("%"))layoutNode2.setMinHeightPercent(Number.parseFloat(props.minHeight));else if(typeof props.minHeight==="number")layoutNode2.setMinHeight(props.minHeight)}else if(wasRemoved("minHeight"))layoutNode2.setMinHeight(0);if(props.maxWidth!==void 0){if(typeof props.maxWidth==="string"&&props.maxWidth.endsWith("%"))layoutNode2.setMaxWidthPercent(Number.parseFloat(props.maxWidth));else if(typeof props.maxWidth==="number")layoutNode2.setMaxWidth(props.maxWidth)}else if(wasRemoved("maxWidth"))layoutNode2.setMaxWidth(Number.POSITIVE_INFINITY);if(props.maxHeight!==void 0){if(typeof props.maxHeight==="string"&&props.maxHeight.endsWith("%"))layoutNode2.setMaxHeightPercent(Number.parseFloat(props.maxHeight));else if(typeof props.maxHeight==="number")layoutNode2.setMaxHeight(props.maxHeight)}else if(wasRemoved("maxHeight"))layoutNode2.setMaxHeight(Number.POSITIVE_INFINITY);if(props.flexGrow!==void 0)layoutNode2.setFlexGrow(props.flexGrow);else if(wasRemoved("flexGrow"))layoutNode2.setFlexGrow(0);if(props.flexShrink!==void 0)layoutNode2.setFlexShrink(props.flexShrink);else if(wasRemoved("flexShrink"))layoutNode2.setFlexShrink(1);if(props.flexBasis!==void 0){if(typeof props.flexBasis==="string"&&props.flexBasis.endsWith("%"))layoutNode2.setFlexBasisPercent(Number.parseFloat(props.flexBasis));else if(props.flexBasis==="auto")layoutNode2.setFlexBasisAuto();else if(typeof props.flexBasis==="number")layoutNode2.setFlexBasis(props.flexBasis)}else if(wasRemoved("flexBasis"))layoutNode2.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};layoutNode2.setFlexDirection(directionMap[props.flexDirection]??c.FLEX_DIRECTION_ROW)}else if(wasRemoved("flexDirection"))layoutNode2.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};layoutNode2.setFlexWrap(wrapMap[props.flexWrap]??c.WRAP_NO_WRAP)}else if(wasRemoved("flexWrap"))layoutNode2.setFlexWrap(c.WRAP_NO_WRAP);if(props.alignItems!==void 0)layoutNode2.setAlignItems(alignToConstant(props.alignItems));else if(wasRemoved("alignItems"))layoutNode2.setAlignItems(c.ALIGN_STRETCH);if(props.alignSelf!==void 0)if(props.alignSelf==="auto")layoutNode2.setAlignSelf(c.ALIGN_AUTO);else layoutNode2.setAlignSelf(alignToConstant(props.alignSelf));else if(wasRemoved("alignSelf"))layoutNode2.setAlignSelf(c.ALIGN_AUTO);if(props.alignContent!==void 0)layoutNode2.setAlignContent(alignToConstant(props.alignContent));else if(wasRemoved("alignContent"))layoutNode2.setAlignContent(c.ALIGN_FLEX_START);if(props.justifyContent!==void 0)layoutNode2.setJustifyContent(justifyToConstant(props.justifyContent));else if(wasRemoved("justifyContent"))layoutNode2.setJustifyContent(c.JUSTIFY_FLEX_START);if(applySpacing(layoutNode2,"padding",props),applySpacing(layoutNode2,"margin",props),props.gap!==void 0)layoutNode2.setGap(c.GUTTER_ALL,props.gap);else if(wasRemoved("gap"))layoutNode2.setGap(c.GUTTER_ALL,0);if(props.columnGap!==void 0)layoutNode2.setGap(c.GUTTER_COLUMN,props.columnGap);else if(wasRemoved("columnGap"))layoutNode2.setGap(c.GUTTER_COLUMN,0);if(props.rowGap!==void 0)layoutNode2.setGap(c.GUTTER_ROW,props.rowGap);else if(wasRemoved("rowGap"))layoutNode2.setGap(c.GUTTER_ROW,0);if(props.display!==void 0)layoutNode2.setDisplay(props.display==="none"?c.DISPLAY_NONE:c.DISPLAY_FLEX);else if(wasRemoved("display"))layoutNode2.setDisplay(c.DISPLAY_FLEX);if(props.position!==void 0)if(props.position==="absolute")layoutNode2.setPositionType(c.POSITION_TYPE_ABSOLUTE);else if(props.position==="static")layoutNode2.setPositionType(c.POSITION_TYPE_STATIC);else layoutNode2.setPositionType(c.POSITION_TYPE_RELATIVE);else if(wasRemoved("position"))layoutNode2.setPositionType(c.POSITION_TYPE_RELATIVE);if(props.position!=="static")applyPositionOffset(layoutNode2,c.EDGE_TOP,props.top),applyPositionOffset(layoutNode2,c.EDGE_LEFT,props.left),applyPositionOffset(layoutNode2,c.EDGE_BOTTOM,props.bottom),applyPositionOffset(layoutNode2,c.EDGE_RIGHT,props.right);if(props.aspectRatio!==void 0)layoutNode2.setAspectRatio(props.aspectRatio);else if(wasRemoved("aspectRatio"))layoutNode2.setAspectRatio(NaN);let effectiveOverflow=props.overflow??(props.overflowX==="hidden"||props.overflowY==="hidden"?"hidden":void 0);if(effectiveOverflow!==void 0)if(effectiveOverflow==="hidden")layoutNode2.setOverflow(c.OVERFLOW_HIDDEN);else if(effectiveOverflow==="scroll")layoutNode2.setOverflow(c.OVERFLOW_HIDDEN);else layoutNode2.setOverflow(c.OVERFLOW_VISIBLE);else if(wasRemoved("overflow")||wasRemoved("overflowX")||wasRemoved("overflowY"))layoutNode2.setOverflow(c.OVERFLOW_VISIBLE);if(props.borderStyle){let borderWidth=getActiveLineHeight()>1?0:1;if(props.borderTop!==!1)layoutNode2.setBorder(c.EDGE_TOP,borderWidth);else layoutNode2.setBorder(c.EDGE_TOP,0);if(props.borderBottom!==!1)layoutNode2.setBorder(c.EDGE_BOTTOM,borderWidth);else layoutNode2.setBorder(c.EDGE_BOTTOM,0);if(props.borderLeft!==!1)layoutNode2.setBorder(c.EDGE_LEFT,borderWidth);else layoutNode2.setBorder(c.EDGE_LEFT,0);if(props.borderRight!==!1)layoutNode2.setBorder(c.EDGE_RIGHT,borderWidth);else layoutNode2.setBorder(c.EDGE_RIGHT,0)}else layoutNode2.setBorder(c.EDGE_TOP,0),layoutNode2.setBorder(c.EDGE_BOTTOM,0),layoutNode2.setBorder(c.EDGE_LEFT,0),layoutNode2.setBorder(c.EDGE_RIGHT,0)}function applySpacing(layoutNode2,type,props){let c=getConstants(),set=type==="padding"?layoutNode2.setPadding.bind(layoutNode2):layoutNode2.setMargin.bind(layoutNode2),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(layoutNode2,edge,value){if(value===void 0){layoutNode2.setPosition(edge,NaN);return}if(typeof value==="string"&&value.endsWith("%"))layoutNode2.setPositionPercent(edge,Number.parseFloat(value));else if(typeof value==="number")layoutNode2.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}function calculateLayout(root,width,height){let c=getConstants();if(!root.layoutNode)throw Error("Root node must have a layout node");root.layoutNode.calculateLayout(width,height,c.DIRECTION_LTR),propagateLayout2(root,0,0),notifyLayoutSubscribers2(root)}function propagateLayout2(node,parentX,parentY){if(node.prevLayout=node.boxRect,!node.layoutNode)return;let left=node.layoutNode.getComputedLeft(),top=node.layoutNode.getComputedTop(),width=node.layoutNode.getComputedWidth(),height=node.layoutNode.getComputedHeight();if(node.boxRect={x:parentX+left,y:parentY+top,width,height},node.layoutDirty=!1,!rectEqual(node.prevLayout,node.boxRect)){let epoch=getRenderEpoch();if(node.dirtyEpoch!==epoch)node.dirtyBits=CONTENT_BIT,node.dirtyEpoch=epoch;else node.dirtyBits|=CONTENT_BIT}for(let child of node.children)propagateLayout2(child,node.boxRect.x,node.boxRect.y)}function notifyLayoutSubscribers2(node){if(!rectEqual(node.prevLayout,node.boxRect))for(let subscriber of node.layoutSubscribers)subscriber();for(let child of node.children)notifyLayoutSubscribers2(child)}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 setInkStrictValidation(enabled){inkStrictValidation=enabled}function runWithDiscreteEvent(fn){let prev=currentUpdatePriority;currentUpdatePriority=DiscreteEventPriority;try{fn()}finally{currentUpdatePriority=prev}}var log10,onNodeRemovedCallback=null,hasWarnedBoxInsideText=!1,inkStrictValidation=!1,currentUpdatePriority,hostConfig;var init_host_config=__esm(()=>{init_dirty_tracking();init_helpers2();init_nodes();log10=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,log10.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})});import React2,{act}from"react";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=React2.createElement(TermContext.Provider,{value:mockTerm},React2.createElement(StdoutContext.Provider,{value:{stdout:mockStdout,write:()=>{}}},React2.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 init_render_string=__esm(()=>{init_ansi2();init_buffer();init_context();init_pipeline2();init_reconciler();init_string_reconciler()});import React from"react";init_src2();function toChalkLevel2(cl){if(cl===null)return 0;if(cl==="basic")return 1;if(cl==="256")return 2;return 3}var detectedColor=typeof process<"u"&&process.stdout?detectColor(process.stdout):null,chalk=createStyle({level:detectedColor}),chalk_default=chalk;var detectedLevel=toChalkLevel2(detectedColor);var supportsColorStderr=(()=>{if(!process?.stderr)return!1;let level=toChalkLevel2(detectColor(process.stderr));return level===0?!1:{level}})();var foregroundColorNames=["black","red","green","yellow","blue","magenta","cyan","white","gray","grey","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"],backgroundColorNames=["bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgGray","bgGrey","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright"],colorNames=[...foregroundColorNames,...backgroundColorNames];init_unicode();function currentChalkLevel(){return chalk_default?.level??0}function resolveTerminalColumns(){if(process.env.COLUMNS){let val=Number(process.env.COLUMNS);if(val>0)return val}if(process.stdout?.columns&&process.stdout.columns>0)return process.stdout.columns;if(process.stderr?.columns&&process.stderr.columns>0)return process.stderr.columns;return 80}function resolveTerminalRows(){if(process.env.LINES){let val=Number(process.env.LINES);if(val>0)return val}if(process.stdout?.rows&&process.stdout.rows>0)return process.stdout.rows;if(process.stderr?.rows&&process.stderr.rows>0)return process.stderr.rows;return 24}var ForceStylesCtx=React.createContext(!1),InkRenderStateCtx=React.createContext(null);function containsAnsiEscapes(text){for(let i=0;i<text.length;i++){let code=text.charCodeAt(i);if(code===27)return!0;if(code>=128&&code<=159)return!0}return!1}function childrenContainAnsi(children){if(typeof children==="string")return containsAnsiEscapes(children);if(Array.isArray(children))return children.some((c)=>childrenContainAnsi(c));if(React.isValidElement(children))return childrenContainAnsi(children.props.children);return!1}var _userVS16Codepoints=new Set;function registerUserVS16(text){if(!text.includes("️"))return;let i=0;while(i<text.length){let cp=text.codePointAt(i),char=String.fromCodePoint(cp),charLen=char.length;if(i+charLen<text.length&&text.charCodeAt(i+charLen)===65039){if(isTextPresentationEmoji(char))_userVS16Codepoints.add(cp)}i+=charLen}}function scanChildrenForVS16(children){if(typeof children==="string")registerUserVS16(children);else if(Array.isArray(children))for(let child of children)scanChildrenForVS16(child);else if(React.isValidElement(children))scanChildrenForVS16(children.props.children)}function stripSilveryVS16(input){if(!input.includes("️"))return input;let result="",i=0;while(i<input.length){let cp=input.codePointAt(i),char=String.fromCodePoint(cp),charLen=char.length;if(i+charLen<input.length&&input.charCodeAt(i+charLen)===65039){if(isTextPresentationEmoji(char)){if(!_userVS16Codepoints.has(cp)){result+=char,i+=charLen+1;continue}}}result+=char,i+=charLen}return result}var STRING_SEQUENCE_INTROS={80:"dcs",94:"pm",95:"apc",88:"sos"},C1_STRING_SEQUENCE_MAP={144:"dcs",158:"pm",159:"apc",152:"sos"};function tokenizeAnsi(text){let tokens=[],len=text.length,i=0,textStart=i;function flushText(){if(i>textStart)tokens.push({type:"text",value:text.slice(textStart,i)})}while(i<len){let code=text.charCodeAt(i);if(code>=128&&code<=159){flushText();let c1Type=C1_STRING_SEQUENCE_MAP[code];if(c1Type){let start=i;i++,i=findST(text,i,len),tokens.push({type:c1Type,value:text.slice(start,i)})}else if(code===155){let start=i;i++,i=consumeCSI(text,i,len),tokens.push({type:"csi",value:text.slice(start,i)})}else if(code===157){let start=i;i++,i=findOSCEnd(text,i,len),tokens.push({type:"osc",value:text.slice(start,i)})}else tokens.push({type:"c1",value:text[i]}),i++;textStart=i;continue}if(code===27){if(flushText(),i+1>=len){tokens.push({type:"esc",value:text[i]}),i++,textStart=i;continue}let next=text.charCodeAt(i+1);if(next===91){let start=i;i+=2,i=consumeCSI(text,i,len),tokens.push({type:"csi",value:text.slice(start,i)}),textStart=i;continue}if(next===93){let start=i;i+=2,i=findOSCEnd(text,i,len),tokens.push({type:"osc",value:text.slice(start,i)}),textStart=i;continue}let stringType=STRING_SEQUENCE_INTROS[next];if(stringType){let start=i;i+=2,i=findST(text,i,len),tokens.push({type:stringType,value:text.slice(start,i)}),textStart=i;continue}if(next>=32&&next<=47){let start=i;i+=2;while(i<len){let c=text.charCodeAt(i);if(c<32||c>47)break;i++}if(i<len){let c=text.charCodeAt(i);if(c>=48&&c<=126)i++,tokens.push({type:"esc",value:text.slice(start,i)});else i=len,tokens.push({type:"esc",value:text.slice(start,i)})}else tokens.push({type:"esc",value:text.slice(start,i)});textStart=i;continue}if(next>=48&&next<=126){tokens.push({type:"esc",value:text.slice(i,i+2)}),i+=2,textStart=i;continue}tokens.push({type:"esc",value:text[i]}),i++,textStart=i;continue}i++}return flushText(),tokens}function consumeCSI(text,i,len){while(i<len){let c=text.charCodeAt(i);if(c<48||c>63)break;i++}while(i<len){let c=text.charCodeAt(i);if(c<32||c>47)break;i++}if(i<len){let c=text.charCodeAt(i);if(c>=64&&c<=126)i++}return i}function findST(text,i,len){while(i<len){let code=text.charCodeAt(i);if(code===156)return i+1;if(code===27&&i+1<len&&text.charCodeAt(i+1)===92)return i+2;i++}return len}function findOSCEnd(text,i,len){while(i<len){let code=text.charCodeAt(i);if(code===7)return i+1;if(code===156)return i+1;if(code===27&&i+1<len&&text.charCodeAt(i+1)===92)return i+2;i++}return len}function isCSISGR(value){if(value.length<2||value.charCodeAt(value.length-1)!==109)return!1;let start;if(value.charCodeAt(0)===27)start=2;else start=1;for(let i=start;i<value.length-1;i++){let c=value.charCodeAt(i);if(c<48||c>59)return!1}return!0}function extractColonSGRReplacements(sgrSequence){let paramsMatch=sgrSequence.match(/\x1b\[([0-9;:]+)m/);if(!paramsMatch)return[];let rawParams=paramsMatch[1];if(!rawParams.includes(":"))return[];let replacements=[],parts=rawParams.split(";");for(let part of parts){if(!part.includes(":"))continue;let subs=part.split(":"),code=Number(subs[0]);if((code===38||code===48)&&Number(subs[1])===2){let nums=subs.map((s)=>s===""?0:Number(s)),r=nums[3]??nums[2]??0,g=nums[4]??nums[3]??0,b=nums[5]??nums[4]??0,semicolonForm=`\x1B[${code};2;${r};${g};${b}m`;replacements.push({semicolonForm,colonForm:`\x1B[${part}m`})}}return replacements}function createColonSGRTracker(){let replacements=[];return{register(sgrSequence){let found=extractColonSGRReplacements(sgrSequence);for(let r of found)replacements.push(r)},restore(output){if(replacements.length===0)return output;let result=output;for(let{semicolonForm,colonForm}of replacements)result=result.replaceAll(semicolonForm,colonForm);return result},clear(){replacements.length=0}}}var colonSGRTracker=createColonSGRTracker();function restoreColonFormatSGR(output){return colonSGRTracker.restore(output)}function isOSCTerminated(value){if(value.length===0)return!1;let last=value.charCodeAt(value.length-1);if(last===7)return!0;if(last===156)return!0;if(value.length>=2&&last===92&&value.charCodeAt(value.length-2)===27)return!0;return!1}function isOSC8(value){if(value.charCodeAt(0)===27)return value.charCodeAt(2)===56&&value.charCodeAt(3)===59;return value.charCodeAt(1)===56&&value.charCodeAt(2)===59}function sanitizeAnsi(text){if(text.length===0)return"";let tokens=tokenizeAnsi(text),result="";for(let token of tokens)switch(token.type){case"text":result+=token.value;break;case"csi":if(isCSISGR(token.value))result+=token.value,colonSGRTracker.register(token.value);break;case"osc":if(isOSC8(token.value)&&isOSCTerminated(token.value))result+=token.value;break}return result}function sanitizeChildren(children){if(typeof children==="string")return sanitizeAnsi(children);if(Array.isArray(children))return children.map((child,i)=>sanitizeChildren(child));return children}import React3,{createContext as createContext4,useContext as useContext2}from"react";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)});init_context();init_render_string();import{useContext,useRef as useRef2}from"react";import{jsxDEV as jsxDEV2}from"react/jsx-dev-runtime";function Static({items,children,style:style2}){let stdoutCtx=useContext(StdoutContext),term2=useContext(TermContext),promoteScrollback=stdoutCtx?.promoteScrollback,renderedRef=useRef2([]),promotedCountRef=useRef2(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(`
|
|
79
83
|
`),frozenContent=lines.map((line)=>`${line}\x1B[K`).join(`\r
|
|
80
84
|
`)+`\r
|
|
81
85
|
`;promoteScrollback(frozenContent,lines.length)}catch{promoteScrollback(`[static item ${i}]\x1B[K\r
|
|
@@ -98,24 +102,24 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#nes
|
|
|
98
102
|
`:" ";return parts.join(sep)}if(React10.isValidElement(node)){let props=node.props;if(props["aria-hidden"])return"";if(props.display==="none")return"";let direction=props.flexDirection==="column"?"column":"row",content;if(props["aria-label"]!=null)content=String(props["aria-label"]);else{let children=props.children;content=walkChildren(children,direction)}let statePrefix=buildStatePrefix(props["aria-state"]),role=props["aria-role"];if(role&&statePrefix)return`${role}: ${statePrefix}${content}`;if(role)return`${role}: ${content}`;if(statePrefix)return`${statePrefix}${content}`;return content}return""}function walkChildren(children,direction){if(children==null)return"";if(!Array.isArray(children)){let childArray=React10.Children.toArray(children);if(childArray.length<=1)return walkNode(children,direction);let parts2=childArray.map((child)=>walkNode(child,direction)).filter((s)=>s!==""),sep2=direction==="column"?`
|
|
99
103
|
`:" ";return parts2.join(sep2)}let parts=children.map((child)=>walkNode(child,direction)).filter((s)=>s!==""),sep=direction==="column"?`
|
|
100
104
|
`:" ";return parts.join(sep)}function buildStatePrefix(state){if(!state)return"";let activeStates=[],stateNames=["busy","checked","disabled","expanded","multiline","multiselectable","readonly","required","selected"];for(let name of stateNames)if(state[name])activeStates.push(`(${name})`);if(activeStates.length===0)return"";return activeStates.join(" ")+" "}init_ansi2();init_context();import process2 from"node:process";import{createLogger as createLogger14}from"loggily";import{useCallback as useCallback6,useEffect as useEffect5,useMemo as useMemo4,useRef as useRef9}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(`
|
|
101
|
-
`)}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_pipeline2();init_errors();init_errors();var
|
|
102
|
-
`)}getStaticOutput(){return this.staticOutput}scheduleNextFrame(delay){if(this.frameTimeout)return;this.frameTimeout=setTimeout(()=>{if(this.frameTimeout=null,!this.disposed)this.executeRender()},delay)}executeRender(){let __stack=[];try{const render=__using(__stack,this.log.span("render"),0);let startTime=Date.now();try{let width=this.stdout.columns??80,height=this.mode==="inline"?NaN:this.stdout.rows??24;
|
|
105
|
+
`)}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_pipeline2();init_errors();init_errors();var log11=createLogger13("silvery:scheduler"),SYNC_UPDATE_ENABLED=process.env.SILVERY_SYNC_UPDATE==="1"||process.env.SILVERY_SYNC_UPDATE==="true";class RenderScheduler{stdout;root;debugMode;minFrameTime;slowFrameThreshold;mode;pipelineConfig;getCursorState;nonTTYMode;outputTransformer;writeOutput;log;prevBuffer=null;prevLineCount=0;staticOutput="";renderScheduled=!1;lastRenderTime=0;frameTimeout=null;resizeCleanup=null;stats={renderCount:0,skippedCount:0,lastRenderTime:0,avgRenderTime:0};disposed=!1;paused=!1;pendingWhilePaused=!1;scrollbackOffset=0;constructor(options){if(this.stdout=options.stdout,this.root=options.root,this.debugMode=options.debug??!1,this.minFrameTime=options.minFrameTime??16,this.slowFrameThreshold=options.slowFrameThreshold??50,this.mode=options.mode??"fullscreen",this.pipelineConfig=options.pipelineConfig,this.getCursorState=options.cursorAccessors?.getCursorState??getCursorState,this.writeOutput=options.writeOutput??((data)=>options.stdout.write(data)),this.log=createLogger13("silvery:scheduler"),this.nonTTYMode=resolveNonTTYMode({mode:options.nonTTYMode,stdout:this.stdout}),this.outputTransformer=createOutputTransformer(this.nonTTYMode),log11.debug?.(`non-TTY mode resolved to: ${this.nonTTYMode}`),this.nonTTYMode==="tty")this.setupResizeListener()}getNonTTYMode(){return this.nonTTYMode}scheduleRender(){if(this.disposed)return;if(this.paused){this.pendingWhilePaused=!0;return}if(this.renderScheduled){this.stats.skippedCount++,log11.debug?.(`render skipped (batched), total: ${this.stats.skippedCount}`);return}this.renderScheduled=!0,log11.debug?.("render scheduled"),queueMicrotask(()=>{if(this.renderScheduled=!1,this.disposed)return;let timeSinceLastRender=Date.now()-this.lastRenderTime;if(timeSinceLastRender<this.minFrameTime)log11.debug?.(`frame limited, delay: ${this.minFrameTime-timeSinceLastRender}ms`),this.scheduleNextFrame(this.minFrameTime-timeSinceLastRender);else this.executeRender()})}forceRender(){if(this.disposed)return;if(this.paused){this.pendingWhilePaused=!0;return}if(this.renderScheduled=!1,this.frameTimeout)clearTimeout(this.frameTimeout),this.frameTimeout=null;this.executeRender()}getStats(){return{...this.stats}}addScrollbackLines(lines){if(this.mode!=="inline"||lines<=0)return;this.scrollbackOffset+=lines}notify(message,opts){if(this.disposed)return;notify({write:(data)=>this.writeOutput(data)},message,opts)}copyToClipboard(text){if(this.disposed)return;copyToClipboard({write:(data)=>this.writeOutput(data)},text)}pause(){if(this.disposed||this.paused)return;this.paused=!0,this.pendingWhilePaused=!1,log11.debug?.("scheduler paused")}resume(){if(this.disposed||!this.paused)return;if(this.paused=!1,log11.debug?.("scheduler resumed"),this.prevBuffer=null,this.pendingWhilePaused)this.pendingWhilePaused=!1,this.executeRender()}isPaused(){return this.paused}clear(){if(this.disposed)return;this.writeOutput("\x1B[2J\x1B[H\x1B[?25l"),this.prevBuffer=null}[Symbol.dispose](){this.dispose()}dispose(){if(this.disposed)return;if(log11.info?.(`dispose: renders=${this.stats.renderCount}, skipped=${this.stats.skippedCount}, avg=${Math.round(this.stats.avgRenderTime)}ms`),this.disposed=!0,this.renderScheduled=!1,this.frameTimeout)clearTimeout(this.frameTimeout),this.frameTimeout=null;if(this.resizeCleanup)this.resizeCleanup(),this.resizeCleanup=null;if(this.nonTTYMode==="static"&&this.staticOutput)this.writeOutput(this.staticOutput),this.writeOutput(`
|
|
106
|
+
`)}getStaticOutput(){return this.staticOutput}scheduleNextFrame(delay){if(this.frameTimeout)return;this.frameTimeout=setTimeout(()=>{if(this.frameTimeout=null,!this.disposed)this.executeRender()},delay)}executeRender(){let __stack=[];try{const render=__using(__stack,this.log.span("render"),0);let startTime=Date.now();try{let width=this.stdout.columns??80,height=this.mode==="inline"?NaN:this.stdout.rows??24;log11.debug?.(`render #${this.stats.renderCount+1}: ${width}x${height}, nonTTYMode=${this.nonTTYMode}`);let scrollbackOffset=this.scrollbackOffset;this.scrollbackOffset=0;let inlineCursor=this.mode==="inline"?this.getCursorState():void 0,{output,buffer}=executeRender(this.root,width,height,this.prevBuffer,{mode:this.mode,scrollbackOffset,termRows:this.mode==="inline"?this.stdout.rows??24:void 0,cursorPos:inlineCursor},this.pipelineConfig),transformedOutput;if(this.nonTTYMode==="tty")transformedOutput=output;else if(this.nonTTYMode==="static")this.staticOutput=stripAnsi3(output),transformedOutput="";else transformedOutput=this.outputTransformer(output,this.prevLineCount),this.prevLineCount=countLines(output);let cursorSuffix="";if(this.nonTTYMode==="tty"){let cursor=this.getCursorState();if(cursor?.visible){let shapeSeq=cursor.shape?setCursorStyle(cursor.shape):resetCursorStyle();cursorSuffix=ANSI.moveCursor(cursor.x,cursor.y)+shapeSeq+ANSI.CURSOR_SHOW}else cursorSuffix=ANSI.CURSOR_HIDE}if(transformedOutput.length>0||cursorSuffix.length>0){let fullOutput=this.nonTTYMode==="tty"&&SYNC_UPDATE_ENABLED?`${ANSI.SYNC_BEGIN}${transformedOutput}${cursorSuffix}${ANSI.SYNC_END}`:transformedOutput+cursorSuffix;if(log11.debug){let bytes=Buffer.byteLength(fullOutput);if(log11.debug?.(`stdout.write: ${bytes} bytes (${transformedOutput.length} chars output + ${cursorSuffix.length} chars cursor)`),bytes>16384)log11.debug?.(`large output: ${bytes} bytes may exceed pipe buffer (16KB on macOS), risk of mid-sequence split`)}let captureFile=process.env.SILVERY_CAPTURE_OUTPUT;if(captureFile){let fs2=__require("fs");fs2.appendFileSync(captureFile,`--- FRAME ${this.stats.renderCount+1} (${Buffer.byteLength(fullOutput)} bytes) ---
|
|
103
107
|
`),fs2.appendFileSync(captureFile,fullOutput),fs2.appendFileSync(captureFile,`
|
|
104
108
|
`)}this.writeOutput(fullOutput)}this.prevBuffer=buffer;let strictEnv=process.env.SILVERY_STRICT;if(strictEnv&&strictEnv!=="0"&&strictEnv!=="false"&&this.stats.renderCount>0){let renderNum=this.stats.renderCount+1,{buffer:freshBuffer}=executeRender(this.root,width,height,null,{mode:this.mode==="fullscreen"?"fullscreen":"inline",skipLayoutNotifications:!0},this.pipelineConfig),found=!1;for(let y=0;y<buffer.height&&!found;y++)for(let x=0;x<buffer.width&&!found;x++){let a=buffer.getCell(x,y),b=freshBuffer.getCell(x,y);if(!cellEquals(a,b)){found=!0;let ctx=buildMismatchContext(this.root,x,y,a,b,renderNum),renderPhaseStats=globalThis.__silvery_content_detail?structuredClone(globalThis.__silvery_content_detail):void 0,debugInfo=formatMismatchContext(ctx,renderPhaseStats),incText=bufferToText(buffer),freshText=bufferToText(freshBuffer),msg=debugInfo+`--- incremental ---
|
|
105
109
|
${incText}
|
|
106
110
|
--- fresh ---
|
|
107
111
|
${freshText}`;if(process.env.DEBUG_LOG)appendFileSync(process.env.DEBUG_LOG,msg+`
|
|
108
|
-
`);throw
|
|
109
|
-
`)}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,
|
|
110
|
-
`);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(
|
|
111
|
-
`);return{rerender:()=>{},unmount:()=>{},[Symbol.dispose](){},waitUntilExit:()=>Promise.resolve(),clear:()=>{},flush:()=>{},pause:()=>{},resume:()=>{}}}let mergedOptions={...options,stdout:options?.stdout??resolved.stdout??term2.stdout,stdin:options?.stdin??term2.stdin},mode=mergedOptions.mode??"fullscreen",resolvedOptions={stdout:mergedOptions.stdout??process2.stdout,stdin:mergedOptions.stdin??process2.stdin,exitOnCtrlC:mergedOptions.exitOnCtrlC??!0,debug:mergedOptions.debug??!1,patchConsole:mergedOptions.patchConsole??!0,alternateScreen:mergedOptions.alternateScreen??mode==="fullscreen",mode,nonTTYMode:mergedOptions.nonTTYMode??"auto"},instance=instances.get(resolvedOptions.stdout);if(!instance)instance=new SilveryInstance(resolvedOptions),instances.set(resolvedOptions.stdout,instance);let wrappedElement=jsxDEV7(TermContext.Provider,{value:term2,children:element},void 0,!1,void 0,this);return instance.render(wrappedElement),{rerender:(newElement)=>instance.rerender(jsxDEV7(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}}import{EventEmitter as EventEmitter2}from"node:events";import React12,{act as act2}from"react";function trueFunc(){return!0}function falseFunc(){return!1}var SelectorType;(function(SelectorType2){SelectorType2.Attribute="attribute",SelectorType2.Pseudo="pseudo",SelectorType2.PseudoElement="pseudo-element",SelectorType2.Tag="tag",SelectorType2.Universal="universal",SelectorType2.Adjacent="adjacent",SelectorType2.Child="child",SelectorType2.Descendant="descendant",SelectorType2.Parent="parent",SelectorType2.Sibling="sibling",SelectorType2.ColumnCombinator="column-combinator"})(SelectorType||(SelectorType={}));var AttributeAction;(function(AttributeAction2){AttributeAction2.Any="any",AttributeAction2.Element="element",AttributeAction2.End="end",AttributeAction2.Equals="equals",AttributeAction2.Exists="exists",AttributeAction2.Hyphen="hyphen",AttributeAction2.Not="not",AttributeAction2.Start="start"})(AttributeAction||(AttributeAction={}));var reName=/^[^#\\]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\u00B0-\uFFFF-])+/,reEscape=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,CharCode;(function(CharCode2){CharCode2[CharCode2.LeftParenthesis=40]="LeftParenthesis",CharCode2[CharCode2.RightParenthesis=41]="RightParenthesis",CharCode2[CharCode2.LeftSquareBracket=91]="LeftSquareBracket",CharCode2[CharCode2.RightSquareBracket=93]="RightSquareBracket",CharCode2[CharCode2.Comma=44]="Comma",CharCode2[CharCode2.Period=46]="Period",CharCode2[CharCode2.Colon=58]="Colon",CharCode2[CharCode2.SingleQuote=39]="SingleQuote",CharCode2[CharCode2.DoubleQuote=34]="DoubleQuote",CharCode2[CharCode2.Plus=43]="Plus",CharCode2[CharCode2.Tilde=126]="Tilde",CharCode2[CharCode2.QuestionMark=63]="QuestionMark",CharCode2[CharCode2.ExclamationMark=33]="ExclamationMark",CharCode2[CharCode2.Slash=47]="Slash",CharCode2[CharCode2.Equal=61]="Equal",CharCode2[CharCode2.Dollar=36]="Dollar",CharCode2[CharCode2.Pipe=124]="Pipe",CharCode2[CharCode2.Circumflex=94]="Circumflex",CharCode2[CharCode2.Asterisk=42]="Asterisk",CharCode2[CharCode2.GreaterThan=62]="GreaterThan",CharCode2[CharCode2.LessThan=60]="LessThan",CharCode2[CharCode2.Hash=35]="Hash",CharCode2[CharCode2.LowerI=105]="LowerI",CharCode2[CharCode2.LowerS=115]="LowerS",CharCode2[CharCode2.BackSlash=92]="BackSlash",CharCode2[CharCode2.Space=32]="Space",CharCode2[CharCode2.Tab=9]="Tab",CharCode2[CharCode2.NewLine=10]="NewLine",CharCode2[CharCode2.FormFeed=12]="FormFeed",CharCode2[CharCode2.CarriageReturn=13]="CarriageReturn"})(CharCode||(CharCode={}));var actionTypes=new Map([[CharCode.Tilde,AttributeAction.Element],[CharCode.Circumflex,AttributeAction.Start],[CharCode.Dollar,AttributeAction.End],[CharCode.Asterisk,AttributeAction.Any],[CharCode.ExclamationMark,AttributeAction.Not],[CharCode.Pipe,AttributeAction.Hyphen]]),unpackPseudos=new Set(["has","not","matches","is","where","host","host-context"]),pseudosToPseudoElements=new Set(["before","after","first-line","first-letter"]);function isTraversal(selector){switch(selector.type){case SelectorType.Adjacent:case SelectorType.Child:case SelectorType.Descendant:case SelectorType.Parent:case SelectorType.Sibling:case SelectorType.ColumnCombinator:return!0;case SelectorType.Attribute:case SelectorType.Pseudo:case SelectorType.PseudoElement:case SelectorType.Tag:case SelectorType.Universal:return!1}}var stripQuotesFromPseudos=new Set(["contains","icontains"]);function funescape(_2,escaped,escapedWhitespace){let high=Number.parseInt(escaped,16)-65536;return Number.isNaN(high)||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)}function unescapeCSS(cssString){return cssString.replace(reEscape,funescape)}function isQuote(c){return c===CharCode.SingleQuote||c===CharCode.DoubleQuote}function isWhitespace(c){return c===CharCode.Space||c===CharCode.Tab||c===CharCode.NewLine||c===CharCode.FormFeed||c===CharCode.CarriageReturn}function parse(selector){let subselects=[],endIndex=parseSelector(subselects,`${selector}`,0);if(endIndex<selector.length)throw Error(`Unmatched selector: ${selector.slice(endIndex)}`);return subselects}function parseSelector(subselects,selector,selectorIndex){let tokens=[];function getName(offset){let match=selector.slice(selectorIndex+offset).match(reName);if(!match)throw Error(`Expected name, found ${selector.slice(selectorIndex)}`);let[name]=match;return selectorIndex+=offset+name.length,unescapeCSS(name)}function stripWhitespace(offset){selectorIndex+=offset;while(selectorIndex<selector.length&&isWhitespace(selector.charCodeAt(selectorIndex)))selectorIndex++}function readValueWithParenthesis(){selectorIndex+=1;let start=selectorIndex;for(let counter=1;selectorIndex<selector.length;selectorIndex++)switch(selector.charCodeAt(selectorIndex)){case CharCode.BackSlash:{selectorIndex+=1;break}case CharCode.LeftParenthesis:{counter+=1;break}case CharCode.RightParenthesis:{if(counter-=1,counter===0)return unescapeCSS(selector.slice(start,selectorIndex++));break}}throw Error("Parenthesis not matched")}function ensureNotTraversal(){if(tokens.length>0&&isTraversal(tokens[tokens.length-1]))throw Error("Did not expect successive traversals.")}function addTraversal(type){if(tokens.length>0&&tokens[tokens.length-1].type===SelectorType.Descendant){tokens[tokens.length-1].type=type;return}ensureNotTraversal(),tokens.push({type})}function addSpecialAttribute(name,action){tokens.push({type:SelectorType.Attribute,name,action,value:getName(1),namespace:null,ignoreCase:"quirks"})}function finalizeSubselector(){if(tokens.length>0&&tokens[tokens.length-1].type===SelectorType.Descendant)tokens.pop();if(tokens.length===0)throw Error("Empty sub-selector");subselects.push(tokens)}if(stripWhitespace(0),selector.length===selectorIndex)return selectorIndex;loop:while(selectorIndex<selector.length){let firstChar=selector.charCodeAt(selectorIndex);switch(firstChar){case CharCode.Space:case CharCode.Tab:case CharCode.NewLine:case CharCode.FormFeed:case CharCode.CarriageReturn:{if(tokens.length===0||tokens[0].type!==SelectorType.Descendant)ensureNotTraversal(),tokens.push({type:SelectorType.Descendant});stripWhitespace(1);break}case CharCode.GreaterThan:{addTraversal(SelectorType.Child),stripWhitespace(1);break}case CharCode.LessThan:{addTraversal(SelectorType.Parent),stripWhitespace(1);break}case CharCode.Tilde:{addTraversal(SelectorType.Sibling),stripWhitespace(1);break}case CharCode.Plus:{addTraversal(SelectorType.Adjacent),stripWhitespace(1);break}case CharCode.Period:{addSpecialAttribute("class",AttributeAction.Element);break}case CharCode.Hash:{addSpecialAttribute("id",AttributeAction.Equals);break}case CharCode.LeftSquareBracket:{stripWhitespace(1);let name,namespace=null;if(selector.charCodeAt(selectorIndex)===CharCode.Pipe)name=getName(1);else if(selector.startsWith("*|",selectorIndex))namespace="*",name=getName(2);else if(name=getName(0),selector.charCodeAt(selectorIndex)===CharCode.Pipe&&selector.charCodeAt(selectorIndex+1)!==CharCode.Equal)namespace=name,name=getName(1);stripWhitespace(0);let action=AttributeAction.Exists,possibleAction=actionTypes.get(selector.charCodeAt(selectorIndex));if(possibleAction){if(action=possibleAction,selector.charCodeAt(selectorIndex+1)!==CharCode.Equal)throw Error("Expected `=`");stripWhitespace(2)}else if(selector.charCodeAt(selectorIndex)===CharCode.Equal)action=AttributeAction.Equals,stripWhitespace(1);let value="",ignoreCase=null;if(action!=="exists"){if(isQuote(selector.charCodeAt(selectorIndex))){let quote=selector.charCodeAt(selectorIndex);selectorIndex+=1;let sectionStart=selectorIndex;while(selectorIndex<selector.length&&selector.charCodeAt(selectorIndex)!==quote)selectorIndex+=selector.charCodeAt(selectorIndex)===CharCode.BackSlash?2:1;if(selector.charCodeAt(selectorIndex)!==quote)throw Error("Attribute value didn't end");value=unescapeCSS(selector.slice(sectionStart,selectorIndex)),selectorIndex+=1}else{let valueStart=selectorIndex;while(selectorIndex<selector.length&&!isWhitespace(selector.charCodeAt(selectorIndex))&&selector.charCodeAt(selectorIndex)!==CharCode.RightSquareBracket)selectorIndex+=selector.charCodeAt(selectorIndex)===CharCode.BackSlash?2:1;value=unescapeCSS(selector.slice(valueStart,selectorIndex))}switch(stripWhitespace(0),selector.charCodeAt(selectorIndex)|32){case CharCode.LowerI:{ignoreCase=!0,stripWhitespace(1);break}case CharCode.LowerS:{ignoreCase=!1,stripWhitespace(1);break}}}if(selector.charCodeAt(selectorIndex)!==CharCode.RightSquareBracket)throw Error("Attribute selector didn't terminate");selectorIndex+=1;let attributeSelector={type:SelectorType.Attribute,name,action,value,namespace,ignoreCase};tokens.push(attributeSelector);break}case CharCode.Colon:{if(selector.charCodeAt(selectorIndex+1)===CharCode.Colon){tokens.push({type:SelectorType.PseudoElement,name:getName(2).toLowerCase(),data:selector.charCodeAt(selectorIndex)===CharCode.LeftParenthesis?readValueWithParenthesis():null});break}let name=getName(1).toLowerCase();if(pseudosToPseudoElements.has(name)){tokens.push({type:SelectorType.PseudoElement,name,data:null});break}let data=null;if(selector.charCodeAt(selectorIndex)===CharCode.LeftParenthesis)if(unpackPseudos.has(name)){if(isQuote(selector.charCodeAt(selectorIndex+1)))throw Error(`Pseudo-selector ${name} cannot be quoted`);if(data=[],selectorIndex=parseSelector(data,selector,selectorIndex+1),selector.charCodeAt(selectorIndex)!==CharCode.RightParenthesis)throw Error(`Missing closing parenthesis in :${name} (${selector})`);selectorIndex+=1}else{if(data=readValueWithParenthesis(),stripQuotesFromPseudos.has(name)){let quot=data.charCodeAt(0);if(quot===data.charCodeAt(data.length-1)&&isQuote(quot))data=data.slice(1,-1)}data=unescapeCSS(data)}tokens.push({type:SelectorType.Pseudo,name,data});break}case CharCode.Comma:{finalizeSubselector(),tokens=[],stripWhitespace(1);break}default:{if(selector.startsWith("/*",selectorIndex)){let endIndex=selector.indexOf("*/",selectorIndex+2);if(endIndex===-1)throw Error("Comment was not terminated");if(selectorIndex=endIndex+2,tokens.length===0)stripWhitespace(0);break}let namespace=null,name;if(firstChar===CharCode.Asterisk)selectorIndex+=1,name="*";else if(firstChar===CharCode.Pipe){if(name="",selector.charCodeAt(selectorIndex+1)===CharCode.Pipe){addTraversal(SelectorType.ColumnCombinator),stripWhitespace(2);break}}else if(reName.test(selector.slice(selectorIndex)))name=getName(0);else break loop;if(selector.charCodeAt(selectorIndex)===CharCode.Pipe&&selector.charCodeAt(selectorIndex+1)!==CharCode.Pipe)if(namespace=name,selector.charCodeAt(selectorIndex+1)===CharCode.Asterisk)name="*",selectorIndex+=2;else name=getName(1);tokens.push(name==="*"?{type:SelectorType.Universal,namespace}:{type:SelectorType.Tag,name,namespace})}}}return finalizeSubselector(),selectorIndex}var ElementType;(function(ElementType2){ElementType2.Root="root",ElementType2.Text="text",ElementType2.Directive="directive",ElementType2.Comment="comment",ElementType2.Script="script",ElementType2.Style="style",ElementType2.Tag="tag",ElementType2.CDATA="cdata",ElementType2.Doctype="doctype"})(ElementType||(ElementType={}));function isTag(element){return element.type===ElementType.Tag||element.type===ElementType.Script||element.type===ElementType.Style}var{Root,Text:Text4,Directive,Comment,Script,Style,Tag,CDATA,Doctype}=ElementType;class Node{parent=null;prev=null;next=null;startIndex=null;endIndex=null;get parentNode(){return this.parent}set parentNode(parent){this.parent=parent}get previousSibling(){return this.prev}set previousSibling(previous){this.prev=previous}get nextSibling(){return this.next}set nextSibling(next){this.next=next}cloneNode(recursive=!1){return cloneNode(this,recursive)}}class DataNode extends Node{data;constructor(data){super();this.data=data}get nodeValue(){return this.data}set nodeValue(data){this.data=data}}class Text5 extends DataNode{type=ElementType.Text;get nodeType(){return 3}}class Comment2 extends DataNode{type=ElementType.Comment;get nodeType(){return 8}}class ProcessingInstruction extends DataNode{type=ElementType.Directive;name;constructor(name,data){super(data);this.name=name}get nodeType(){return 1}"x-name";"x-publicId";"x-systemId"}class NodeWithChildren extends Node{children;constructor(children){super();this.children=children}get firstChild(){return this.children[0]??null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(children){this.children=children}}class CDATA2 extends NodeWithChildren{type=ElementType.CDATA;get nodeType(){return 4}}class Document extends NodeWithChildren{type=ElementType.Root;get nodeType(){return 9}}class Element extends NodeWithChildren{name;attribs;type;constructor(name,attribs,children=[],type=name==="script"?ElementType.Script:name==="style"?ElementType.Style:ElementType.Tag){super(children);this.name=name,this.attribs=attribs,this.type=type}get nodeType(){return 1}get tagName(){return this.name}set tagName(name){this.name=name}get attributes(){return Object.keys(this.attribs).map((name)=>({name,value:this.attribs[name],namespace:this["x-attribsNamespace"]?.[name],prefix:this["x-attribsPrefix"]?.[name]}))}namespace;"x-attribsNamespace";"x-attribsPrefix"}function isTag2(node){return isTag(node)}function isCDATA(node){return node.type===ElementType.CDATA}function isText(node){return node.type===ElementType.Text}function isComment(node){return node.type===ElementType.Comment}function isDirective(node){return node.type===ElementType.Directive}function isDocument(node){return node.type===ElementType.Root}function hasChildren(node){return Object.hasOwn(node,"children")}function cloneNode(node,recursive=!1){let result;if(isText(node))result=new Text5(node.data);else if(isComment(node))result=new Comment2(node.data);else if(isTag2(node)){let children=recursive?cloneChildren(node.children):[],clone=new Element(node.name,{...node.attribs},children);for(let child of children)child.parent=clone;if(node.namespace!=null)clone.namespace=node.namespace;if(node["x-attribsNamespace"])clone["x-attribsNamespace"]={...node["x-attribsNamespace"]};if(node["x-attribsPrefix"])clone["x-attribsPrefix"]={...node["x-attribsPrefix"]};result=clone}else if(isCDATA(node)){let children=recursive?cloneChildren(node.children):[],clone=new CDATA2(children);for(let child of children)child.parent=clone;result=clone}else if(isDocument(node)){let children=recursive?cloneChildren(node.children):[],clone=new Document(children);for(let child of children)child.parent=clone;if(node["x-mode"])clone["x-mode"]=node["x-mode"];result=clone}else if(isDirective(node)){let instruction=new ProcessingInstruction(node.name,node.data);if(node["x-name"]!=null)instruction["x-name"]=node["x-name"],instruction["x-publicId"]=node["x-publicId"],instruction["x-systemId"]=node["x-systemId"];result=instruction}else throw Error(`Not implemented yet: ${node.type}`);if(result.startIndex=node.startIndex,result.endIndex=node.endIndex,node.sourceCodeLocation!=null)result.sourceCodeLocation=node.sourceCodeLocation;return result}function cloneChildren(childs){let children=childs.map((child)=>cloneNode(child,!0));for(let index=1;index<children.length;index++)children[index].prev=children[index-1],children[index-1].next=children[index];return children}var exports_dist2={};__export(exports_dist2,{uniqueSort:()=>uniqueSort,textContent:()=>textContent,testElement:()=>testElement,replaceElement:()=>replaceElement,removeSubsets:()=>removeSubsets,removeElement:()=>removeElement,prevElementSibling:()=>prevElementSibling,prependChild:()=>prependChild,prepend:()=>prepend,nextElementSibling:()=>nextElementSibling,innerText:()=>innerText,hasAttrib:()=>hasAttrib,getText:()=>getText,getSiblings:()=>getSiblings,getParent:()=>getParent,getOuterHTML:()=>getOuterHTML,getName:()=>getName,getInnerHTML:()=>getInnerHTML,getFeed:()=>getFeed,getElementsByTagType:()=>getElementsByTagType,getElementsByTagName:()=>getElementsByTagName,getElementsByClassName:()=>getElementsByClassName,getElements:()=>getElements,getElementById:()=>getElementById,getChildren:()=>getChildren,getAttributeValue:()=>getAttributeValue,findOne:()=>findOne,findAll:()=>findAll,find:()=>find,filter:()=>filter,existsOne:()=>existsOne,compareDocumentPosition:()=>compareDocumentPosition,appendChild:()=>appendChild,append:()=>append,DocumentPosition:()=>DocumentPosition});function filter(test,node,recurse=!0,limit=Number.POSITIVE_INFINITY){return find(test,Array.isArray(node)?node:[node],recurse,limit)}function find(test,nodes,recurse,limit){let result=[],nodeStack=[Array.isArray(nodes)?nodes:[nodes]],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(indexStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let element=nodeStack[0][indexStack[0]++];if(test(element)){if(result.push(element),--limit<=0)return result}if(recurse&&hasChildren(element)&&element.children.length>0)indexStack.unshift(0),nodeStack.unshift(element.children)}}function findOne(test,nodes,recurse=!0){let searchedNodes=Array.isArray(nodes)?nodes:[nodes];for(let node of searchedNodes){if(isTag2(node)&&test(node))return node;if(recurse&&hasChildren(node)&&node.children.length>0){let found=findOne(test,node.children,!0);if(found)return found}}return null}function existsOne(test,nodes){return(Array.isArray(nodes)?nodes:[nodes]).some((node)=>isTag2(node)&&test(node)||hasChildren(node)&&existsOne(test,node.children))}function findAll(test,nodes){let result=[],nodeStack=[Array.isArray(nodes)?nodes:[nodes]],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(nodeStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let element=nodeStack[0][indexStack[0]++];if(isTag2(element)&&test(element))result.push(element);if(hasChildren(element)&&element.children.length>0)indexStack.unshift(0),nodeStack.unshift(element.children)}}var Checks={tag_name(name){if(typeof name==="function")return(element)=>isTag2(element)&&name(element.name);if(name==="*")return isTag2;return(element)=>isTag2(element)&&element.name===name},tag_type(type){if(typeof type==="function")return(element)=>type(element.type);return(element)=>element.type===type},tag_contains(data){if(typeof data==="function")return(element)=>isText(element)&&data(element.data);return(element)=>isText(element)&&element.data===data}};function getAttribCheck(attrib,value){if(typeof value==="function")return(element)=>isTag2(element)&&value(element.attribs[attrib]);return(element)=>isTag2(element)&&element.attribs[attrib]===value}function combineFuncs(a,b){return(element)=>a(element)||b(element)}function compileTest(options){let funcs=Object.keys(options).map((key)=>{let value=options[key];return Object.hasOwn(Checks,key)?Checks[key](value):getAttribCheck(key,value)});return funcs.length===0?null:funcs.reduce(combineFuncs)}function testElement(options,node){let test=compileTest(options);return test?test(node):!0}function getElements(options,nodes,recurse,limit=Number.POSITIVE_INFINITY){let test=compileTest(options);return test?filter(test,nodes,recurse,limit):[]}function getElementById(id,nodes,recurse=!0){if(!Array.isArray(nodes))nodes=[nodes];return findOne(getAttribCheck("id",id),nodes,recurse)}function getElementsByTagName(tagName,nodes,recurse=!0,limit=Number.POSITIVE_INFINITY){return filter(Checks.tag_name(tagName),nodes,recurse,limit)}function getElementsByClassName(className,nodes,recurse=!0,limit=Number.POSITIVE_INFINITY){return filter(getAttribCheck("class",className),nodes,recurse,limit)}function getElementsByTagType(type,nodes,recurse=!0,limit=Number.POSITIVE_INFINITY){return filter(Checks.tag_type(type),nodes,recurse,limit)}var xmlCodeMap=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),getCodePoint=typeof String.prototype.codePointAt==="function"?(input,index)=>input.codePointAt(index):(c,index)=>(c.charCodeAt(index)&64512)===55296?(c.charCodeAt(index)-55296)*1024+c.charCodeAt(index+1)-56320+65536:c.charCodeAt(index);function encodeXML(input){let out,last=0,{length}=input;for(let index=0;index<length;index++){let char=input.charCodeAt(index);if(char<128&&((1342177476>>>char&1)===0||char>=64||char<32))continue;if(out===void 0)out=input.substring(0,index);else if(last!==index)out+=input.substring(last,index);if(char<64){out+=xmlCodeMap.get(char),last=index+1;continue}let cp=getCodePoint(input,index);if(out+=`&#x${cp.toString(16)};`,cp!==char)index++;last=index+1}if(out===void 0)return input;if(last<length)out+=input.substr(last);return out}function getEscaper(regex,map){return function(data){let match,lastIndex=0,result="";while(match=regex.exec(data)){if(lastIndex!==match.index)result+=data.substring(lastIndex,match.index);result+=map.get(match[0].charCodeAt(0)),lastIndex=match.index+1}return result+data.substring(lastIndex)}}var escapeAttribute=getEscaper(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),escapeText=getEscaper(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]));var EntityLevel;(function(EntityLevel2){EntityLevel2[EntityLevel2.XML=0]="XML",EntityLevel2[EntityLevel2.HTML=1]="HTML"})(EntityLevel||(EntityLevel={}));var EncodingMode;(function(EncodingMode2){EncodingMode2[EncodingMode2.UTF8=0]="UTF8",EncodingMode2[EncodingMode2.ASCII=1]="ASCII",EncodingMode2[EncodingMode2.Extensive=2]="Extensive",EncodingMode2[EncodingMode2.Attribute=3]="Attribute",EncodingMode2[EncodingMode2.Text=4]="Text"})(EncodingMode||(EncodingMode={}));var elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((value)=>[value.toLowerCase(),value])),attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((value)=>[value.toLowerCase(),value]));var unencodedElements=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function replaceQuotes(value){return value.replace(/"/g,""")}function formatAttributes(attributes,options){if(!attributes)return;let encode=(options.encodeEntities??options.decodeEntities)===!1?replaceQuotes:!!options.xmlMode||options.encodeEntities!=="utf8"?encodeXML:escapeAttribute;return Object.keys(attributes).map((key)=>{let value=attributes[key],normalizedValue=value==null?"":String(value);if(options.xmlMode==="foreign")key=attributeNames.get(key)??key;if(!(options.emptyAttrs||options.xmlMode)&&normalizedValue==="")return key;return`${key}="${encode(normalizedValue)}"`}).join(" ")}var singleTag=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function render(node,options={}){let nodes="length"in node?node:[node],output="",index=0;while(index<nodes.length)output+=renderNode(nodes[index],options),index++;return output}var dist_default=render;function renderNode(node,options){switch(node.type){case Root:return render(node.children,options);case Doctype:case Directive:return renderDirective(node);case Comment:return renderComment(node);case CDATA:return renderCdata(node);case Script:case Style:case Tag:return renderTag(node,options);case Text4:return renderText2(node,options)}}var foreignModeIntegrationPoints=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),foreignElements=new Set(["svg","math"]);function renderTag(element,options){if(options.xmlMode==="foreign"){if(element.name=elementNames.get(element.name)??element.name,element.parent&&foreignModeIntegrationPoints.has(element.parent.name))options={...options,xmlMode:!1}}if(!options.xmlMode&&foreignElements.has(element.name))options={...options,xmlMode:"foreign"};let tag=`<${element.name}`,attribs=formatAttributes(element.attribs,options);if(attribs)tag+=` ${attribs}`;if(element.children.length===0&&(options.xmlMode?options.selfClosingTags!==!1:options.selfClosingTags&&singleTag.has(element.name))){if(!options.xmlMode)tag+=" ";tag+="/>"}else{if(tag+=">",element.children.length>0)tag+=render(element.children,options);if(!!options.xmlMode||!singleTag.has(element.name))tag+=`</${element.name}>`}return tag}function renderDirective(element){return`<${element.data}>`}function renderText2(element,options){let data=element.data||"";if((options.encodeEntities??options.decodeEntities)!==!1&&!(!options.xmlMode&&element.parent&&unencodedElements.has(element.parent.name)))data=!!options.xmlMode||options.encodeEntities!=="utf8"?encodeXML(data):escapeText(data);return data}function renderCdata(element){return`<![CDATA[${element.children[0].data}]]>`}function renderComment(element){return`<!--${element.data}-->`}function getOuterHTML(node,options){return dist_default(node,options)}function getInnerHTML(node,options){return hasChildren(node)?node.children.map((node2)=>getOuterHTML(node2,options)).join(""):""}function getText(node){if(Array.isArray(node))return node.map(getText).join("");if(isTag2(node))return node.name==="br"?`
|
|
112
|
+
`);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
|
|
113
|
+
`)}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();init_keys();function createSubscriberList(){return{input:new Set,paste:new Set}}await init_flexily_zero_adapter();import{jsxDEV as jsxDEV7}from"react/jsx-dev-runtime";var log12=createLogger14("silvery:render");var instances=new Map;function SilveryApp({children,onInputSubscribe,exitOnCtrlC,stdoutWrite,stdout,onExit,onPause,onResume,onScrollback,getRoot:getRootProp,handleFocusCycling=!0}){let subscribersRef=useRef9(null);if(!subscribersRef.current)subscribersRef.current=createSubscriberList();let subscribers=subscribersRef.current,handleExit=useCallback6((error)=>{onExit(error)},[onExit]),exitOnCtrlCRef=useRef9(exitOnCtrlC);exitOnCtrlCRef.current=exitOnCtrlC;let handleExitRef=useRef9(handleExit);handleExitRef.current=handleExit;let focusManagerRef=useRef9(null),getRootRef=useRef9(getRootProp);getRootRef.current=getRootProp;let handleFocusCyclingRef=useRef9(handleFocusCycling);handleFocusCyclingRef.current=handleFocusCycling;let handleChunkRef=useRef9(null);if(handleChunkRef.current===null){let processSingleKey=function(chunk){if(log12.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)=>{log12.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;useEffect5(()=>{if(!onInputSubscribe)return;return onInputSubscribe(handleChunk)},[onInputSubscribe,handleChunk]);let stdoutContextValue=useMemo4(()=>({stdout,write:stdoutWrite,notifyScrollback:onScrollback}),[stdout,stdoutWrite,onScrollback]),runtimeContextValue=useMemo4(()=>({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=useMemo4(()=>createFocusManager(),[]);return focusManagerRef.current=focusManager,useEffect5(()=>{return setOnNodeRemoved((removedNode)=>focusManager.handleSubtreeRemoved(removedNode)),()=>setOnNodeRemoved(null)},[focusManager]),jsxDEV7(StdoutContext.Provider,{value:stdoutContextValue,children:jsxDEV7(StderrContext.Provider,{value:{stderr:process2.stderr,write:(data)=>{process2.stderr.write(data)}},children:jsxDEV7(FocusManagerContext.Provider,{value:focusManager,children:jsxDEV7(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){log12.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(),log12.debug?.(`SilveryInstance constructor complete in ${Date.now()-startTime}ms`)}render(element){log12.debug?.("SilveryInstance.render() start");let startTime=Date.now();if(this.isUnmounted||!this.fiberRoot)return;this.lastElement=element;let tree=jsxDEV7(CursorProvider,{store:this.cursorStore,children:jsxDEV7(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);log12.debug?.("SilveryInstance.render() calling updateContainerSync"),reconciler.updateContainerSync(tree,this.fiberRoot,null,null),log12.debug?.(`SilveryInstance.render() updateContainerSync complete in ${Date.now()-startTime}ms`),log12.debug?.("SilveryInstance.render() calling flushSyncWork");let flushStart=Date.now();reconciler.flushSyncWork(),log12.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}
|
|
114
|
+
`);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(log12.debug?.(`subscribeToInput: stdin=${stdin===process2.stdin?"process.stdin":"other"}, isTTY=${stdin.isTTY}, isRawModeSupported=${isRawModeSupported}`),!isRawModeSupported)return log12.debug?.("subscribeToInput: raw mode not supported, skipping"),()=>{};let handleReadable=()=>{let chunk;while((chunk=stdin.read())!==null)log12.debug?.(`subscribeToInput: stdin.read() returned: ${JSON.stringify(chunk)}`),handler(chunk)};return stdin.setEncoding("utf8"),stdin.ref(),stdin.setRawMode(!0),stdin.on("readable",handleReadable),log12.debug?.(`subscribeToInput: enabled raw mode, stdin.isRaw=${stdin.isRaw}`),()=>{log12.debug?.("subscribeToInput: cleanup — disabling raw mode"),stdin.setRawMode(!1),stdin.off("readable",handleReadable),stdin.unref()}}}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=jsxDEV7(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(`
|
|
115
|
+
`);return{rerender:()=>{},unmount:()=>{},[Symbol.dispose](){},waitUntilExit:()=>Promise.resolve(),clear:()=>{},flush:()=>{},pause:()=>{},resume:()=>{}}}let mergedOptions={...options,stdout:options?.stdout??resolved.stdout??term2.stdout,stdin:options?.stdin??term2.stdin},mode=mergedOptions.mode??"fullscreen",resolvedOptions={stdout:mergedOptions.stdout??process2.stdout,stdin:mergedOptions.stdin??process2.stdin,exitOnCtrlC:mergedOptions.exitOnCtrlC??!0,debug:mergedOptions.debug??!1,patchConsole:mergedOptions.patchConsole??!0,alternateScreen:mergedOptions.alternateScreen??mode==="fullscreen",mode,nonTTYMode:mergedOptions.nonTTYMode??"auto"},instance=instances.get(resolvedOptions.stdout);if(!instance)instance=new SilveryInstance(resolvedOptions),instances.set(resolvedOptions.stdout,instance);let wrappedElement=jsxDEV7(TermContext.Provider,{value:term2,children:element},void 0,!1,void 0,this);return instance.render(wrappedElement),{rerender:(newElement)=>instance.rerender(jsxDEV7(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}}import{EventEmitter as EventEmitter2}from"node:events";import React12,{act as act2}from"react";function trueFunc(){return!0}function falseFunc(){return!1}var SelectorType;(function(SelectorType2){SelectorType2.Attribute="attribute",SelectorType2.Pseudo="pseudo",SelectorType2.PseudoElement="pseudo-element",SelectorType2.Tag="tag",SelectorType2.Universal="universal",SelectorType2.Adjacent="adjacent",SelectorType2.Child="child",SelectorType2.Descendant="descendant",SelectorType2.Parent="parent",SelectorType2.Sibling="sibling",SelectorType2.ColumnCombinator="column-combinator"})(SelectorType||(SelectorType={}));var AttributeAction;(function(AttributeAction2){AttributeAction2.Any="any",AttributeAction2.Element="element",AttributeAction2.End="end",AttributeAction2.Equals="equals",AttributeAction2.Exists="exists",AttributeAction2.Hyphen="hyphen",AttributeAction2.Not="not",AttributeAction2.Start="start"})(AttributeAction||(AttributeAction={}));var reName=/^[^#\\]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\u00B0-\uFFFF-])+/,reEscape=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,CharCode;(function(CharCode2){CharCode2[CharCode2.LeftParenthesis=40]="LeftParenthesis",CharCode2[CharCode2.RightParenthesis=41]="RightParenthesis",CharCode2[CharCode2.LeftSquareBracket=91]="LeftSquareBracket",CharCode2[CharCode2.RightSquareBracket=93]="RightSquareBracket",CharCode2[CharCode2.Comma=44]="Comma",CharCode2[CharCode2.Period=46]="Period",CharCode2[CharCode2.Colon=58]="Colon",CharCode2[CharCode2.SingleQuote=39]="SingleQuote",CharCode2[CharCode2.DoubleQuote=34]="DoubleQuote",CharCode2[CharCode2.Plus=43]="Plus",CharCode2[CharCode2.Tilde=126]="Tilde",CharCode2[CharCode2.QuestionMark=63]="QuestionMark",CharCode2[CharCode2.ExclamationMark=33]="ExclamationMark",CharCode2[CharCode2.Slash=47]="Slash",CharCode2[CharCode2.Equal=61]="Equal",CharCode2[CharCode2.Dollar=36]="Dollar",CharCode2[CharCode2.Pipe=124]="Pipe",CharCode2[CharCode2.Circumflex=94]="Circumflex",CharCode2[CharCode2.Asterisk=42]="Asterisk",CharCode2[CharCode2.GreaterThan=62]="GreaterThan",CharCode2[CharCode2.LessThan=60]="LessThan",CharCode2[CharCode2.Hash=35]="Hash",CharCode2[CharCode2.LowerI=105]="LowerI",CharCode2[CharCode2.LowerS=115]="LowerS",CharCode2[CharCode2.BackSlash=92]="BackSlash",CharCode2[CharCode2.Space=32]="Space",CharCode2[CharCode2.Tab=9]="Tab",CharCode2[CharCode2.NewLine=10]="NewLine",CharCode2[CharCode2.FormFeed=12]="FormFeed",CharCode2[CharCode2.CarriageReturn=13]="CarriageReturn"})(CharCode||(CharCode={}));var actionTypes=new Map([[CharCode.Tilde,AttributeAction.Element],[CharCode.Circumflex,AttributeAction.Start],[CharCode.Dollar,AttributeAction.End],[CharCode.Asterisk,AttributeAction.Any],[CharCode.ExclamationMark,AttributeAction.Not],[CharCode.Pipe,AttributeAction.Hyphen]]),unpackPseudos=new Set(["has","not","matches","is","where","host","host-context"]),pseudosToPseudoElements=new Set(["before","after","first-line","first-letter"]);function isTraversal(selector){switch(selector.type){case SelectorType.Adjacent:case SelectorType.Child:case SelectorType.Descendant:case SelectorType.Parent:case SelectorType.Sibling:case SelectorType.ColumnCombinator:return!0;case SelectorType.Attribute:case SelectorType.Pseudo:case SelectorType.PseudoElement:case SelectorType.Tag:case SelectorType.Universal:return!1}}var stripQuotesFromPseudos=new Set(["contains","icontains"]);function funescape(_2,escaped,escapedWhitespace){let high=Number.parseInt(escaped,16)-65536;return Number.isNaN(high)||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)}function unescapeCSS(cssString){return cssString.replace(reEscape,funescape)}function isQuote(c){return c===CharCode.SingleQuote||c===CharCode.DoubleQuote}function isWhitespace(c){return c===CharCode.Space||c===CharCode.Tab||c===CharCode.NewLine||c===CharCode.FormFeed||c===CharCode.CarriageReturn}function parse(selector){let subselects=[],endIndex=parseSelector(subselects,`${selector}`,0);if(endIndex<selector.length)throw Error(`Unmatched selector: ${selector.slice(endIndex)}`);return subselects}function parseSelector(subselects,selector,selectorIndex){let tokens=[];function getName(offset){let match=selector.slice(selectorIndex+offset).match(reName);if(!match)throw Error(`Expected name, found ${selector.slice(selectorIndex)}`);let[name]=match;return selectorIndex+=offset+name.length,unescapeCSS(name)}function stripWhitespace(offset){selectorIndex+=offset;while(selectorIndex<selector.length&&isWhitespace(selector.charCodeAt(selectorIndex)))selectorIndex++}function readValueWithParenthesis(){selectorIndex+=1;let start=selectorIndex;for(let counter=1;selectorIndex<selector.length;selectorIndex++)switch(selector.charCodeAt(selectorIndex)){case CharCode.BackSlash:{selectorIndex+=1;break}case CharCode.LeftParenthesis:{counter+=1;break}case CharCode.RightParenthesis:{if(counter-=1,counter===0)return unescapeCSS(selector.slice(start,selectorIndex++));break}}throw Error("Parenthesis not matched")}function ensureNotTraversal(){if(tokens.length>0&&isTraversal(tokens[tokens.length-1]))throw Error("Did not expect successive traversals.")}function addTraversal(type){if(tokens.length>0&&tokens[tokens.length-1].type===SelectorType.Descendant){tokens[tokens.length-1].type=type;return}ensureNotTraversal(),tokens.push({type})}function addSpecialAttribute(name,action){tokens.push({type:SelectorType.Attribute,name,action,value:getName(1),namespace:null,ignoreCase:"quirks"})}function finalizeSubselector(){if(tokens.length>0&&tokens[tokens.length-1].type===SelectorType.Descendant)tokens.pop();if(tokens.length===0)throw Error("Empty sub-selector");subselects.push(tokens)}if(stripWhitespace(0),selector.length===selectorIndex)return selectorIndex;loop:while(selectorIndex<selector.length){let firstChar=selector.charCodeAt(selectorIndex);switch(firstChar){case CharCode.Space:case CharCode.Tab:case CharCode.NewLine:case CharCode.FormFeed:case CharCode.CarriageReturn:{if(tokens.length===0||tokens[0].type!==SelectorType.Descendant)ensureNotTraversal(),tokens.push({type:SelectorType.Descendant});stripWhitespace(1);break}case CharCode.GreaterThan:{addTraversal(SelectorType.Child),stripWhitespace(1);break}case CharCode.LessThan:{addTraversal(SelectorType.Parent),stripWhitespace(1);break}case CharCode.Tilde:{addTraversal(SelectorType.Sibling),stripWhitespace(1);break}case CharCode.Plus:{addTraversal(SelectorType.Adjacent),stripWhitespace(1);break}case CharCode.Period:{addSpecialAttribute("class",AttributeAction.Element);break}case CharCode.Hash:{addSpecialAttribute("id",AttributeAction.Equals);break}case CharCode.LeftSquareBracket:{stripWhitespace(1);let name,namespace=null;if(selector.charCodeAt(selectorIndex)===CharCode.Pipe)name=getName(1);else if(selector.startsWith("*|",selectorIndex))namespace="*",name=getName(2);else if(name=getName(0),selector.charCodeAt(selectorIndex)===CharCode.Pipe&&selector.charCodeAt(selectorIndex+1)!==CharCode.Equal)namespace=name,name=getName(1);stripWhitespace(0);let action=AttributeAction.Exists,possibleAction=actionTypes.get(selector.charCodeAt(selectorIndex));if(possibleAction){if(action=possibleAction,selector.charCodeAt(selectorIndex+1)!==CharCode.Equal)throw Error("Expected `=`");stripWhitespace(2)}else if(selector.charCodeAt(selectorIndex)===CharCode.Equal)action=AttributeAction.Equals,stripWhitespace(1);let value="",ignoreCase=null;if(action!=="exists"){if(isQuote(selector.charCodeAt(selectorIndex))){let quote=selector.charCodeAt(selectorIndex);selectorIndex+=1;let sectionStart=selectorIndex;while(selectorIndex<selector.length&&selector.charCodeAt(selectorIndex)!==quote)selectorIndex+=selector.charCodeAt(selectorIndex)===CharCode.BackSlash?2:1;if(selector.charCodeAt(selectorIndex)!==quote)throw Error("Attribute value didn't end");value=unescapeCSS(selector.slice(sectionStart,selectorIndex)),selectorIndex+=1}else{let valueStart=selectorIndex;while(selectorIndex<selector.length&&!isWhitespace(selector.charCodeAt(selectorIndex))&&selector.charCodeAt(selectorIndex)!==CharCode.RightSquareBracket)selectorIndex+=selector.charCodeAt(selectorIndex)===CharCode.BackSlash?2:1;value=unescapeCSS(selector.slice(valueStart,selectorIndex))}switch(stripWhitespace(0),selector.charCodeAt(selectorIndex)|32){case CharCode.LowerI:{ignoreCase=!0,stripWhitespace(1);break}case CharCode.LowerS:{ignoreCase=!1,stripWhitespace(1);break}}}if(selector.charCodeAt(selectorIndex)!==CharCode.RightSquareBracket)throw Error("Attribute selector didn't terminate");selectorIndex+=1;let attributeSelector={type:SelectorType.Attribute,name,action,value,namespace,ignoreCase};tokens.push(attributeSelector);break}case CharCode.Colon:{if(selector.charCodeAt(selectorIndex+1)===CharCode.Colon){tokens.push({type:SelectorType.PseudoElement,name:getName(2).toLowerCase(),data:selector.charCodeAt(selectorIndex)===CharCode.LeftParenthesis?readValueWithParenthesis():null});break}let name=getName(1).toLowerCase();if(pseudosToPseudoElements.has(name)){tokens.push({type:SelectorType.PseudoElement,name,data:null});break}let data=null;if(selector.charCodeAt(selectorIndex)===CharCode.LeftParenthesis)if(unpackPseudos.has(name)){if(isQuote(selector.charCodeAt(selectorIndex+1)))throw Error(`Pseudo-selector ${name} cannot be quoted`);if(data=[],selectorIndex=parseSelector(data,selector,selectorIndex+1),selector.charCodeAt(selectorIndex)!==CharCode.RightParenthesis)throw Error(`Missing closing parenthesis in :${name} (${selector})`);selectorIndex+=1}else{if(data=readValueWithParenthesis(),stripQuotesFromPseudos.has(name)){let quot=data.charCodeAt(0);if(quot===data.charCodeAt(data.length-1)&&isQuote(quot))data=data.slice(1,-1)}data=unescapeCSS(data)}tokens.push({type:SelectorType.Pseudo,name,data});break}case CharCode.Comma:{finalizeSubselector(),tokens=[],stripWhitespace(1);break}default:{if(selector.startsWith("/*",selectorIndex)){let endIndex=selector.indexOf("*/",selectorIndex+2);if(endIndex===-1)throw Error("Comment was not terminated");if(selectorIndex=endIndex+2,tokens.length===0)stripWhitespace(0);break}let namespace=null,name;if(firstChar===CharCode.Asterisk)selectorIndex+=1,name="*";else if(firstChar===CharCode.Pipe){if(name="",selector.charCodeAt(selectorIndex+1)===CharCode.Pipe){addTraversal(SelectorType.ColumnCombinator),stripWhitespace(2);break}}else if(reName.test(selector.slice(selectorIndex)))name=getName(0);else break loop;if(selector.charCodeAt(selectorIndex)===CharCode.Pipe&&selector.charCodeAt(selectorIndex+1)!==CharCode.Pipe)if(namespace=name,selector.charCodeAt(selectorIndex+1)===CharCode.Asterisk)name="*",selectorIndex+=2;else name=getName(1);tokens.push(name==="*"?{type:SelectorType.Universal,namespace}:{type:SelectorType.Tag,name,namespace})}}}return finalizeSubselector(),selectorIndex}var ElementType;(function(ElementType2){ElementType2.Root="root",ElementType2.Text="text",ElementType2.Directive="directive",ElementType2.Comment="comment",ElementType2.Script="script",ElementType2.Style="style",ElementType2.Tag="tag",ElementType2.CDATA="cdata",ElementType2.Doctype="doctype"})(ElementType||(ElementType={}));function isTag(element){return element.type===ElementType.Tag||element.type===ElementType.Script||element.type===ElementType.Style}var{Root,Text:Text4,Directive,Comment,Script,Style,Tag,CDATA,Doctype}=ElementType;class Node2{parent=null;prev=null;next=null;startIndex=null;endIndex=null;get parentNode(){return this.parent}set parentNode(parent){this.parent=parent}get previousSibling(){return this.prev}set previousSibling(previous){this.prev=previous}get nextSibling(){return this.next}set nextSibling(next){this.next=next}cloneNode(recursive=!1){return cloneNode(this,recursive)}}class DataNode extends Node2{data;constructor(data){super();this.data=data}get nodeValue(){return this.data}set nodeValue(data){this.data=data}}class Text5 extends DataNode{type=ElementType.Text;get nodeType(){return 3}}class Comment2 extends DataNode{type=ElementType.Comment;get nodeType(){return 8}}class ProcessingInstruction extends DataNode{type=ElementType.Directive;name;constructor(name,data){super(data);this.name=name}get nodeType(){return 1}"x-name";"x-publicId";"x-systemId"}class NodeWithChildren extends Node2{children;constructor(children){super();this.children=children}get firstChild(){return this.children[0]??null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(children){this.children=children}}class CDATA2 extends NodeWithChildren{type=ElementType.CDATA;get nodeType(){return 4}}class Document extends NodeWithChildren{type=ElementType.Root;get nodeType(){return 9}}class Element extends NodeWithChildren{name;attribs;type;constructor(name,attribs,children=[],type=name==="script"?ElementType.Script:name==="style"?ElementType.Style:ElementType.Tag){super(children);this.name=name,this.attribs=attribs,this.type=type}get nodeType(){return 1}get tagName(){return this.name}set tagName(name){this.name=name}get attributes(){return Object.keys(this.attribs).map((name)=>({name,value:this.attribs[name],namespace:this["x-attribsNamespace"]?.[name],prefix:this["x-attribsPrefix"]?.[name]}))}namespace;"x-attribsNamespace";"x-attribsPrefix"}function isTag2(node){return isTag(node)}function isCDATA(node){return node.type===ElementType.CDATA}function isText(node){return node.type===ElementType.Text}function isComment(node){return node.type===ElementType.Comment}function isDirective(node){return node.type===ElementType.Directive}function isDocument(node){return node.type===ElementType.Root}function hasChildren(node){return Object.hasOwn(node,"children")}function cloneNode(node,recursive=!1){let result;if(isText(node))result=new Text5(node.data);else if(isComment(node))result=new Comment2(node.data);else if(isTag2(node)){let children=recursive?cloneChildren(node.children):[],clone=new Element(node.name,{...node.attribs},children);for(let child of children)child.parent=clone;if(node.namespace!=null)clone.namespace=node.namespace;if(node["x-attribsNamespace"])clone["x-attribsNamespace"]={...node["x-attribsNamespace"]};if(node["x-attribsPrefix"])clone["x-attribsPrefix"]={...node["x-attribsPrefix"]};result=clone}else if(isCDATA(node)){let children=recursive?cloneChildren(node.children):[],clone=new CDATA2(children);for(let child of children)child.parent=clone;result=clone}else if(isDocument(node)){let children=recursive?cloneChildren(node.children):[],clone=new Document(children);for(let child of children)child.parent=clone;if(node["x-mode"])clone["x-mode"]=node["x-mode"];result=clone}else if(isDirective(node)){let instruction=new ProcessingInstruction(node.name,node.data);if(node["x-name"]!=null)instruction["x-name"]=node["x-name"],instruction["x-publicId"]=node["x-publicId"],instruction["x-systemId"]=node["x-systemId"];result=instruction}else throw Error(`Not implemented yet: ${node.type}`);if(result.startIndex=node.startIndex,result.endIndex=node.endIndex,node.sourceCodeLocation!=null)result.sourceCodeLocation=node.sourceCodeLocation;return result}function cloneChildren(childs){let children=childs.map((child)=>cloneNode(child,!0));for(let index=1;index<children.length;index++)children[index].prev=children[index-1],children[index-1].next=children[index];return children}var exports_dist2={};__export(exports_dist2,{uniqueSort:()=>uniqueSort,textContent:()=>textContent,testElement:()=>testElement,replaceElement:()=>replaceElement,removeSubsets:()=>removeSubsets,removeElement:()=>removeElement,prevElementSibling:()=>prevElementSibling,prependChild:()=>prependChild,prepend:()=>prepend,nextElementSibling:()=>nextElementSibling,innerText:()=>innerText,hasAttrib:()=>hasAttrib,getText:()=>getText,getSiblings:()=>getSiblings,getParent:()=>getParent,getOuterHTML:()=>getOuterHTML,getName:()=>getName,getInnerHTML:()=>getInnerHTML,getFeed:()=>getFeed,getElementsByTagType:()=>getElementsByTagType,getElementsByTagName:()=>getElementsByTagName,getElementsByClassName:()=>getElementsByClassName,getElements:()=>getElements,getElementById:()=>getElementById,getChildren:()=>getChildren,getAttributeValue:()=>getAttributeValue,findOne:()=>findOne,findAll:()=>findAll,find:()=>find,filter:()=>filter,existsOne:()=>existsOne,compareDocumentPosition:()=>compareDocumentPosition,appendChild:()=>appendChild,append:()=>append,DocumentPosition:()=>DocumentPosition});function filter(test,node,recurse=!0,limit=Number.POSITIVE_INFINITY){return find(test,Array.isArray(node)?node:[node],recurse,limit)}function find(test,nodes,recurse,limit){let result=[],nodeStack=[Array.isArray(nodes)?nodes:[nodes]],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(indexStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let element=nodeStack[0][indexStack[0]++];if(test(element)){if(result.push(element),--limit<=0)return result}if(recurse&&hasChildren(element)&&element.children.length>0)indexStack.unshift(0),nodeStack.unshift(element.children)}}function findOne(test,nodes,recurse=!0){let searchedNodes=Array.isArray(nodes)?nodes:[nodes];for(let node of searchedNodes){if(isTag2(node)&&test(node))return node;if(recurse&&hasChildren(node)&&node.children.length>0){let found=findOne(test,node.children,!0);if(found)return found}}return null}function existsOne(test,nodes){return(Array.isArray(nodes)?nodes:[nodes]).some((node)=>isTag2(node)&&test(node)||hasChildren(node)&&existsOne(test,node.children))}function findAll(test,nodes){let result=[],nodeStack=[Array.isArray(nodes)?nodes:[nodes]],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(nodeStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let element=nodeStack[0][indexStack[0]++];if(isTag2(element)&&test(element))result.push(element);if(hasChildren(element)&&element.children.length>0)indexStack.unshift(0),nodeStack.unshift(element.children)}}var Checks={tag_name(name){if(typeof name==="function")return(element)=>isTag2(element)&&name(element.name);if(name==="*")return isTag2;return(element)=>isTag2(element)&&element.name===name},tag_type(type){if(typeof type==="function")return(element)=>type(element.type);return(element)=>element.type===type},tag_contains(data){if(typeof data==="function")return(element)=>isText(element)&&data(element.data);return(element)=>isText(element)&&element.data===data}};function getAttribCheck(attrib,value){if(typeof value==="function")return(element)=>isTag2(element)&&value(element.attribs[attrib]);return(element)=>isTag2(element)&&element.attribs[attrib]===value}function combineFuncs(a,b){return(element)=>a(element)||b(element)}function compileTest(options){let funcs=Object.keys(options).map((key)=>{let value=options[key];return Object.hasOwn(Checks,key)?Checks[key](value):getAttribCheck(key,value)});return funcs.length===0?null:funcs.reduce(combineFuncs)}function testElement(options,node){let test=compileTest(options);return test?test(node):!0}function getElements(options,nodes,recurse,limit=Number.POSITIVE_INFINITY){let test=compileTest(options);return test?filter(test,nodes,recurse,limit):[]}function getElementById(id,nodes,recurse=!0){if(!Array.isArray(nodes))nodes=[nodes];return findOne(getAttribCheck("id",id),nodes,recurse)}function getElementsByTagName(tagName,nodes,recurse=!0,limit=Number.POSITIVE_INFINITY){return filter(Checks.tag_name(tagName),nodes,recurse,limit)}function getElementsByClassName(className,nodes,recurse=!0,limit=Number.POSITIVE_INFINITY){return filter(getAttribCheck("class",className),nodes,recurse,limit)}function getElementsByTagType(type,nodes,recurse=!0,limit=Number.POSITIVE_INFINITY){return filter(Checks.tag_type(type),nodes,recurse,limit)}var xmlCodeMap=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),getCodePoint=typeof String.prototype.codePointAt==="function"?(input,index)=>input.codePointAt(index):(c,index)=>(c.charCodeAt(index)&64512)===55296?(c.charCodeAt(index)-55296)*1024+c.charCodeAt(index+1)-56320+65536:c.charCodeAt(index);function encodeXML(input){let out,last=0,{length}=input;for(let index=0;index<length;index++){let char=input.charCodeAt(index);if(char<128&&((1342177476>>>char&1)===0||char>=64||char<32))continue;if(out===void 0)out=input.substring(0,index);else if(last!==index)out+=input.substring(last,index);if(char<64){out+=xmlCodeMap.get(char),last=index+1;continue}let cp=getCodePoint(input,index);if(out+=`&#x${cp.toString(16)};`,cp!==char)index++;last=index+1}if(out===void 0)return input;if(last<length)out+=input.substr(last);return out}function getEscaper(regex,map){return function(data){let match,lastIndex=0,result="";while(match=regex.exec(data)){if(lastIndex!==match.index)result+=data.substring(lastIndex,match.index);result+=map.get(match[0].charCodeAt(0)),lastIndex=match.index+1}return result+data.substring(lastIndex)}}var escapeAttribute=getEscaper(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),escapeText=getEscaper(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]));var EntityLevel;(function(EntityLevel2){EntityLevel2[EntityLevel2.XML=0]="XML",EntityLevel2[EntityLevel2.HTML=1]="HTML"})(EntityLevel||(EntityLevel={}));var EncodingMode;(function(EncodingMode2){EncodingMode2[EncodingMode2.UTF8=0]="UTF8",EncodingMode2[EncodingMode2.ASCII=1]="ASCII",EncodingMode2[EncodingMode2.Extensive=2]="Extensive",EncodingMode2[EncodingMode2.Attribute=3]="Attribute",EncodingMode2[EncodingMode2.Text=4]="Text"})(EncodingMode||(EncodingMode={}));var elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((value)=>[value.toLowerCase(),value])),attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((value)=>[value.toLowerCase(),value]));var unencodedElements=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function replaceQuotes(value){return value.replace(/"/g,""")}function formatAttributes(attributes,options){if(!attributes)return;let encode=(options.encodeEntities??options.decodeEntities)===!1?replaceQuotes:!!options.xmlMode||options.encodeEntities!=="utf8"?encodeXML:escapeAttribute;return Object.keys(attributes).map((key)=>{let value=attributes[key],normalizedValue=value==null?"":String(value);if(options.xmlMode==="foreign")key=attributeNames.get(key)??key;if(!(options.emptyAttrs||options.xmlMode)&&normalizedValue==="")return key;return`${key}="${encode(normalizedValue)}"`}).join(" ")}var singleTag=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function render(node,options={}){let nodes="length"in node?node:[node],output="",index=0;while(index<nodes.length)output+=renderNode(nodes[index],options),index++;return output}var dist_default=render;function renderNode(node,options){switch(node.type){case Root:return render(node.children,options);case Doctype:case Directive:return renderDirective(node);case Comment:return renderComment(node);case CDATA:return renderCdata(node);case Script:case Style:case Tag:return renderTag(node,options);case Text4:return renderText2(node,options)}}var foreignModeIntegrationPoints=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),foreignElements=new Set(["svg","math"]);function renderTag(element,options){if(options.xmlMode==="foreign"){if(element.name=elementNames.get(element.name)??element.name,element.parent&&foreignModeIntegrationPoints.has(element.parent.name))options={...options,xmlMode:!1}}if(!options.xmlMode&&foreignElements.has(element.name))options={...options,xmlMode:"foreign"};let tag=`<${element.name}`,attribs=formatAttributes(element.attribs,options);if(attribs)tag+=` ${attribs}`;if(element.children.length===0&&(options.xmlMode?options.selfClosingTags!==!1:options.selfClosingTags&&singleTag.has(element.name))){if(!options.xmlMode)tag+=" ";tag+="/>"}else{if(tag+=">",element.children.length>0)tag+=render(element.children,options);if(!!options.xmlMode||!singleTag.has(element.name))tag+=`</${element.name}>`}return tag}function renderDirective(element){return`<${element.data}>`}function renderText2(element,options){let data=element.data||"";if((options.encodeEntities??options.decodeEntities)!==!1&&!(!options.xmlMode&&element.parent&&unencodedElements.has(element.parent.name)))data=!!options.xmlMode||options.encodeEntities!=="utf8"?encodeXML(data):escapeText(data);return data}function renderCdata(element){return`<![CDATA[${element.children[0].data}]]>`}function renderComment(element){return`<!--${element.data}-->`}function getOuterHTML(node,options){return dist_default(node,options)}function getInnerHTML(node,options){return hasChildren(node)?node.children.map((node2)=>getOuterHTML(node2,options)).join(""):""}function getText(node){if(Array.isArray(node))return node.map(getText).join("");if(isTag2(node))return node.name==="br"?`
|
|
112
116
|
`:getText(node.children);if(isCDATA(node))return getText(node.children);if(isText(node))return node.data;return""}function textContent(node){if(Array.isArray(node))return node.map(textContent).join("");if(hasChildren(node)&&!isComment(node))return textContent(node.children);if(isText(node))return node.data;return""}function innerText(node){if(Array.isArray(node))return node.map(innerText).join("");if(hasChildren(node)&&(node.type===ElementType.Tag||isCDATA(node)))return innerText(node.children);if(isText(node))return node.data;return""}function getFeed(document2){let feedRoot=getOneElement(isValidFeed,document2);return feedRoot?feedRoot.name==="feed"?getAtomFeed(feedRoot):getRssFeed(feedRoot):null}function getAtomFeed(feedRoot){let childs=feedRoot.children,feed={type:"atom",items:getElementsByTagName("entry",childs).map((item)=>{let{children}=item,entry={media:getMediaElements(children)};addConditionally(entry,"id","id",children),addConditionally(entry,"title","title",children);let href2=getOneElement("link",children)?.attribs.href;if(href2)entry.link=href2;let description=fetch2("summary",children)||fetch2("content",children);if(description)entry.description=description;let pubDate=fetch2("updated",children);if(pubDate)entry.pubDate=new Date(pubDate);return entry})};addConditionally(feed,"id","id",childs),addConditionally(feed,"title","title",childs);let href=getOneElement("link",childs)?.attribs.href;if(href)feed.link=href;addConditionally(feed,"description","subtitle",childs);let updated=fetch2("updated",childs);if(updated)feed.updated=new Date(updated);return addConditionally(feed,"author","email",childs,!0),feed}function getRssFeed(feedRoot){let childs=getOneElement("channel",feedRoot.children)?.children??[],feed={type:feedRoot.name.substr(0,3),id:"",items:getElementsByTagName("item",feedRoot.children).map((item)=>{let{children}=item,entry={media:getMediaElements(children)};addConditionally(entry,"id","guid",children),addConditionally(entry,"title","title",children),addConditionally(entry,"link","link",children),addConditionally(entry,"description","description",children);let pubDate=fetch2("pubDate",children)||fetch2("dc:date",children);if(pubDate)entry.pubDate=new Date(pubDate);return entry})};addConditionally(feed,"title","title",childs),addConditionally(feed,"link","link",childs),addConditionally(feed,"description","description",childs);let updated=fetch2("lastBuildDate",childs);if(updated)feed.updated=new Date(updated);return addConditionally(feed,"author","managingEditor",childs,!0),feed}var MEDIA_KEYS_STRING=["url","type","lang"],MEDIA_KEYS_INT=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function getMediaElements(where){return getElementsByTagName("media:content",where).map((element)=>{let{attribs}=element,media={medium:attribs.medium,isDefault:!!attribs.isDefault};for(let attrib of MEDIA_KEYS_STRING)if(attribs[attrib])media[attrib]=attribs[attrib];for(let attrib of MEDIA_KEYS_INT)if(attribs[attrib])media[attrib]=Number.parseInt(attribs[attrib],10);if(attribs.expression)media.expression=attribs.expression;return media})}function getOneElement(tagName,node){return getElementsByTagName(tagName,node,!0,1)[0]}function fetch2(tagName,where,recurse=!1){return textContent(getElementsByTagName(tagName,where,recurse,1)).trim()}function addConditionally(object,property,tagName,where,recurse=!1){let value=fetch2(tagName,where,recurse);if(value)object[property]=value}function isValidFeed(value){return value==="rss"||value==="feed"||value==="rdf:RDF"}function removeSubsets(nodes){let index=nodes.length;while(--index>=0){let node=nodes[index];if(index>0&&nodes.lastIndexOf(node,index-1)>=0){nodes.splice(index,1);continue}for(let ancestor=node.parent;ancestor;ancestor=ancestor.parent)if(nodes.includes(ancestor)){nodes.splice(index,1);break}}return nodes}var DocumentPosition;(function(DocumentPosition2){DocumentPosition2[DocumentPosition2.DISCONNECTED=1]="DISCONNECTED",DocumentPosition2[DocumentPosition2.PRECEDING=2]="PRECEDING",DocumentPosition2[DocumentPosition2.FOLLOWING=4]="FOLLOWING",DocumentPosition2[DocumentPosition2.CONTAINS=8]="CONTAINS",DocumentPosition2[DocumentPosition2.CONTAINED_BY=16]="CONTAINED_BY"})(DocumentPosition||(DocumentPosition={}));function compareDocumentPosition(nodeA,nodeB){let aParents=[],bParents=[];if(nodeA===nodeB)return 0;let current=hasChildren(nodeA)?nodeA:nodeA.parent;while(current)aParents.unshift(current),current=current.parent;current=hasChildren(nodeB)?nodeB:nodeB.parent;while(current)bParents.unshift(current),current=current.parent;let maxIndex=Math.min(aParents.length,bParents.length),index=0;while(index<maxIndex&&aParents[index]===bParents[index])index++;if(index===0)return DocumentPosition.DISCONNECTED;let sharedParent=aParents[index-1],siblings=sharedParent.children,aSibling=aParents[index],bSibling=bParents[index];if(siblings.indexOf(aSibling)>siblings.indexOf(bSibling)){if(sharedParent===nodeB)return DocumentPosition.FOLLOWING|DocumentPosition.CONTAINED_BY;return DocumentPosition.FOLLOWING}if(sharedParent===nodeA)return DocumentPosition.PRECEDING|DocumentPosition.CONTAINS;return DocumentPosition.PRECEDING}function uniqueSort(nodes){return nodes=nodes.filter((node,index,array)=>!array.includes(node,index+1)),nodes.sort((a,b)=>{let relative=compareDocumentPosition(a,b);if(relative&DocumentPosition.PRECEDING)return-1;if(relative&DocumentPosition.FOLLOWING)return 1;return 0}),nodes}function removeElement(element){if(element.prev)element.prev.next=element.next;if(element.next)element.next.prev=element.prev;if(element.parent){let childs=element.parent.children,childsIndex=childs.lastIndexOf(element);if(childsIndex!==-1)childs.splice(childsIndex,1)}element.next=null,element.prev=null,element.parent=null}function replaceElement(element,replacement){if(replacement.prev=element.prev,replacement.prev)replacement.prev.next=replacement;if(replacement.next=element.next,replacement.next)replacement.next.prev=replacement;if(replacement.parent=element.parent,replacement.parent){let{children}=replacement.parent,elementIndex=children.lastIndexOf(element);if(elementIndex===-1)return;children[elementIndex]=replacement,element.parent=null}}function appendChild(parent,child){if(removeElement(child),child.next=null,child.parent=parent,parent.children.push(child)>1){let sibling=parent.children[parent.children.length-2];sibling.next=child,child.prev=sibling}else child.prev=null}function append(element,next){removeElement(next);let{parent}=element,currentNext=element.next;if(next.next=currentNext,next.prev=element,element.next=next,next.parent=parent,currentNext){if(currentNext.prev=next,parent){let childs=parent.children;childs.splice(childs.lastIndexOf(currentNext),0,next)}}else if(parent)parent.children.push(next)}function prependChild(parent,child){if(removeElement(child),child.parent=parent,child.prev=null,parent.children.unshift(child)===1)child.next=null;else{let sibling=parent.children[1];sibling.prev=child,child.next=sibling}}function prepend(element,previous){removeElement(previous);let{parent}=element;if(parent){let childs=parent.children;childs.splice(childs.indexOf(element),0,previous)}if(element.prev)element.prev.next=previous;previous.parent=parent,previous.prev=element.prev,previous.next=element,element.prev=previous}function getChildren(element){return hasChildren(element)?element.children:[]}function getParent(element){return element.parent||null}function getSiblings(element){let parent=getParent(element);if(parent!=null)return getChildren(parent);let siblings=[element],{prev,next}=element;while(prev!=null)siblings.unshift(prev),{prev}=prev;while(next!=null)siblings.push(next),{next}=next;return siblings}function getAttributeValue(element,name){let{attribs}=element;return attribs?.[name]}function hasAttrib(element,name){let{attribs}=element;return attribs!=null&&Object.hasOwn(attribs,name)&&attribs[name]!=null}function getName(element){return element.name}function nextElementSibling(element){let{next}=element;while(next!==null&&!isTag2(next))({next}=next);return next}function prevElementSibling(element){let{prev}=element;while(prev!==null&&!isTag2(prev))({prev}=prev);return prev}var reChars=/[-[\]{}()*+?.,\\^$|#\s]/g,whitespaceRe=/\s/;function escapeRegex(value){return value.replace(reChars,"\\$&")}var caseInsensitiveAttributes=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);function shouldIgnoreCase(selector,options){return typeof selector.ignoreCase==="boolean"?selector.ignoreCase:selector.ignoreCase==="quirks"?!!options.quirksMode:!options.xmlMode&&caseInsensitiveAttributes.has(selector.name)}var attributeRules={equals(next,data,options){let{adapter}=options,{name}=data,{value}=data;if(shouldIgnoreCase(data,options))return value=value.toLowerCase(),(element)=>{let attribute=adapter.getAttributeValue(element,name);return attribute!=null&&attribute.length===value.length&&attribute.toLowerCase()===value&&next(element)};return(element)=>adapter.getAttributeValue(element,name)===value&&next(element)},hyphen(next,data,options){let{adapter}=options,{name}=data,{value}=data,{length}=value;if(shouldIgnoreCase(data,options))return value=value.toLowerCase(),function(element){let attribute=adapter.getAttributeValue(element,name);return attribute!=null&&(attribute.length===length||attribute.charAt(length)==="-")&&attribute.substr(0,length).toLowerCase()===value&&next(element)};return function(element){let attribute=adapter.getAttributeValue(element,name);return attribute!=null&&(attribute.length===length||attribute.charAt(length)==="-")&&attribute.substr(0,length)===value&&next(element)}},element(next,data,options){let{adapter}=options,{name,value}=data;if(whitespaceRe.test(value))return falseFunc;let regex=new RegExp(`(?:^|\\s)${escapeRegex(value)}(?:$|\\s)`,shouldIgnoreCase(data,options)?"i":"");return function(node){let attribute=adapter.getAttributeValue(node,name);return attribute!=null&&attribute.length>=value.length&®ex.test(attribute)&&next(node)}},exists(next,{name},{adapter}){return(element)=>adapter.hasAttrib(element,name)&&next(element)},start(next,data,options){let{adapter}=options,{name}=data,{value}=data,{length}=value;if(length===0)return falseFunc;if(shouldIgnoreCase(data,options))return value=value.toLowerCase(),(element)=>{let attribute=adapter.getAttributeValue(element,name);return attribute!=null&&attribute.length>=length&&attribute.substr(0,length).toLowerCase()===value&&next(element)};return(element)=>!!adapter.getAttributeValue(element,name)?.startsWith(value)&&next(element)},end(next,data,options){let{adapter}=options,{name}=data,{value}=data,length=-value.length;if(length===0)return falseFunc;if(shouldIgnoreCase(data,options))return value=value.toLowerCase(),(element)=>adapter.getAttributeValue(element,name)?.substr(length).toLowerCase()===value&&next(element);return(element)=>!!adapter.getAttributeValue(element,name)?.endsWith(value)&&next(element)},any(next,data,options){let{adapter}=options,{name,value}=data;if(value==="")return falseFunc;if(shouldIgnoreCase(data,options)){let regex=new RegExp(escapeRegex(value),"i");return function(element){let attribute=adapter.getAttributeValue(element,name);return attribute!=null&&attribute.length>=value.length&®ex.test(attribute)&&next(element)}}return(element)=>!!adapter.getAttributeValue(element,name)?.includes(value)&&next(element)},not(next,data,options){let{adapter}=options,{name}=data,{value}=data;if(value==="")return(element)=>!!adapter.getAttributeValue(element,name)&&next(element);if(shouldIgnoreCase(data,options))return value=value.toLowerCase(),(element)=>{let attribute=adapter.getAttributeValue(element,name);return(attribute==null||attribute.length!==value.length||attribute.toLowerCase()!==value)&&next(element)};return(element)=>adapter.getAttributeValue(element,name)!==value&&next(element)}};function findAll2(query,nodes,options){let{adapter,xmlMode=!1}=options,result=[],nodeStack=[nodes],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(nodeStack.length===1)return result;nodeStack.shift(),indexStack.shift();continue}let element=nodeStack[0][indexStack[0]++];if(!adapter.isTag(element))continue;if(query(element))result.push(element);if(xmlMode||adapter.getName(element)!=="template"){let children=adapter.getChildren(element);if(children.length>0)nodeStack.unshift(children),indexStack.unshift(0)}}}function findOne2(query,nodes,options){let{adapter,xmlMode=!1}=options,nodeStack=[nodes],indexStack=[0];for(;;){if(indexStack[0]>=nodeStack[0].length){if(nodeStack.length===1)return null;nodeStack.shift(),indexStack.shift();continue}let element=nodeStack[0][indexStack[0]++];if(!adapter.isTag(element))continue;if(query(element))return element;if(xmlMode||adapter.getName(element)!=="template"){let children=adapter.getChildren(element);if(children.length>0)nodeStack.unshift(children),indexStack.unshift(0)}}}function getNextSiblings(element,adapter){let siblings=adapter.getSiblings(element);if(siblings.length<=1)return[];let elementIndex=siblings.indexOf(element);if(elementIndex===-1||elementIndex===siblings.length-1)return[];return siblings.slice(elementIndex+1).filter(adapter.isTag)}function getElementParent(node,adapter){let parent=adapter.getParent(node);return parent!=null&&adapter.isTag(parent)?parent:null}var aliases={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:`:is(
|
|
113
117
|
:is(button, input, select, textarea, optgroup, option)[disabled],
|
|
114
118
|
optgroup[disabled] > option,
|
|
115
119
|
fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)
|
|
116
120
|
)`,enabled:":is(button, input, select, textarea, optgroup, option, fieldset):not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], :selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])","read-only":"[readonly]:is(textarea, input:is([type=text i],[type=search i],[type=url i],[type=tel i],[type=email i],[type=password i],[type=date i],[type=month i],[type=week i],[type=time i],[type=datetime-local i],[type=number i]))","read-write":":not([readonly]):is(textarea, input:is([type=text i],[type=search i],[type=url i],[type=tel i],[type=email i],[type=password i],[type=date i],[type=month i],[type=week i],[type=time i],[type=datetime-local i],[type=number i]))",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"};function compile(parsed){let a=parsed[0],b=parsed[1]-1;if(b<0&&a<=0)return falseFunc;if(a===-1)return(index)=>index<=b;if(a===0)return(index)=>index===b;if(a===1)return b<0?trueFunc:(index)=>index>=b;let absA=Math.abs(a),bModulo=(b%absA+absA)%absA;return a>1?(index)=>index>=b&&index%absA===bModulo:(index)=>index<=b&&index%absA===bModulo}var whitespace=new Set([9,10,12,13,32]);function parse2(formula){switch(formula=formula.trim().toLowerCase(),formula){case"even":return[2,0];case"odd":return[2,1]}let index=0,a=0,sign=readSign(),number=readNumber();if(index<formula.length&&formula.charAt(index)==="n")if(index++,a=sign*(number??1),skipWhitespace(),index<formula.length)sign=readSign(),skipWhitespace(),number=readNumber();else sign=number=0;if(number===null||index<formula.length)throw Error(`n-th rule couldn't be parsed ('${formula}')`);return[a,sign*number];function readSign(){switch(formula.charAt(index)){case"-":return index++,-1;case"+":{index++;break}}return 1}function readNumber(){let start=index,value=0;while(index<formula.length&&formula.charCodeAt(index)>=48&&formula.charCodeAt(index)<=57)value=value*10+(formula.charCodeAt(index)-48),index++;return index===start?null:value}function skipWhitespace(){while(index<formula.length&&whitespace.has(formula.charCodeAt(index)))index++}}function nthCheck(formula){return compile(parse2(formula))}function cacheParentResults(next,{adapter,cacheResults},matches){if(cacheResults===!1||typeof WeakMap>"u")return(element)=>next(element)&&matches(element);let resultCache=new WeakMap;function addResultToCache(element){let result=matches(element);return resultCache.set(element,result),result}return function(element){if(!next(element))return!1;if(resultCache.has(element))return resultCache.get(element)??!1;let node=element;do{let parent=getElementParent(node,adapter);if(parent===null)return addResultToCache(element);node=parent}while(!resultCache.has(node));return resultCache.get(node)?addResultToCache(element):!1}}function copyOptions(options){let{context:_2,rootFunc:__,...copied}=options;return copied}function extendedFilter(tag,range){if(range[0]!=="*"&&range[0]!==tag[0])return!1;let tagIndex=1;for(let rangeIndex=1;rangeIndex<range.length;rangeIndex++){if(range[rangeIndex]==="*")continue;while(tagIndex<tag.length&&tag[tagIndex]!==range[rangeIndex])if(tag[tagIndex++].length<=1)return!1;if(tagIndex>=tag.length)return!1;tagIndex++}return!0}var nthOfRegex=/^(.+?)\s+of\s+(.+)$/is;function compileNth(reverse,ofType){return function(next,rule,options,context,compileToken){let{adapter,equals}=options,ofMatch=ofType?null:rule.match(nthOfRegex),nthCheck2=nthCheck(ofMatch?ofMatch[1].trim():rule);if(nthCheck2===falseFunc)return falseFunc;let ofSelector=ofMatch&&compileToken?compileToken(parse(ofMatch[2].trim()),copyOptions(options),context):void 0;if(ofSelector===falseFunc)return falseFunc;if(nthCheck2===trueFunc&&!ofSelector)return(element)=>getElementParent(element,adapter)!==null&&next(element);let shouldCount=ofSelector?(_element,sibling)=>ofSelector(sibling):ofType?(element,sibling)=>adapter.getName(sibling)===adapter.getName(element):trueFunc;if(reverse)return function(element){if(ofSelector&&!ofSelector(element))return!1;let siblings=adapter.getSiblings(element),pos=0;for(let index=siblings.length-1;index>=0;index--){let sibling=siblings[index];if(equals(element,sibling))break;if(adapter.isTag(sibling)&&shouldCount(element,sibling))pos++}return nthCheck2(pos)&&next(element)};return function(element){if(ofSelector&&!ofSelector(element))return!1;let siblings=adapter.getSiblings(element),pos=0;for(let sibling of siblings){if(equals(element,sibling))break;if(adapter.isTag(sibling)&&shouldCount(element,sibling))pos++}return nthCheck2(pos)&&next(element)}}}var filters={contains(next,text,options){let{getText:getText2}=options.adapter;return cacheParentResults(next,options,(element)=>getText2(element).includes(text))},icontains(next,text,options){let itext=text.toLowerCase(),{getText:getText2}=options.adapter;return cacheParentResults(next,options,(element)=>getText2(element).toLowerCase().includes(itext))},"nth-child":compileNth(!1,!1),"nth-last-child":compileNth(!0,!1),"nth-of-type":compileNth(!1,!0),"nth-last-of-type":compileNth(!0,!0),root(next,_rule,{adapter}){return(element)=>getElementParent(element,adapter)===null&&next(element)},scope(next,rule,options,context){let{equals}=options;if(!context||context.length===0)return filters.root(next,rule,options);if(context.length===1)return(element)=>equals(context[0],element)&&next(element);return(element)=>context.includes(element)&&next(element)},lang(next,code,{adapter}){let ranges=code.split(",").map((r)=>r.trim()).filter((r)=>r.length>0).map((r)=>r.replace(/^['"]|['"]$/g,"").toLowerCase().split("-"));return function(element){let node=element;while(node!=null){let value=adapter.getAttributeValue(node,"xml:lang")??adapter.getAttributeValue(node,"lang");if(value!=null){if(!value)return ranges.some((r)=>r[0]==="")&&next(element);let tag=value.toLowerCase().split("-");return ranges.some((r)=>extendedFilter(tag,r))&&next(element)}let parent=adapter.getParent(node);node=parent!=null&&adapter.isTag(parent)?parent:null}return ranges.some((r)=>r[0]==="")&&next(element)}},hover:dynamicStatePseudo("isHovered"),visited:dynamicStatePseudo("isVisited"),active:dynamicStatePseudo("isActive")};function dynamicStatePseudo(name){return function(next,_rule,{adapter}){let filterFunction=adapter[name];if(typeof filterFunction!=="function")return falseFunc;return function(element){return filterFunction(element)&&next(element)}}}var isDocumentWhiteSpace=/^[ \t\r\n]*$/,pseudos={empty(element,{adapter}){let children=adapter.getChildren(element);return children.every((element2)=>!adapter.isTag(element2))&&children.every((element2)=>isDocumentWhiteSpace.test(adapter.getText(element2)))},"first-child"(element,{adapter,equals}){if(adapter.prevElementSibling)return adapter.prevElementSibling(element)==null;let firstChild=adapter.getSiblings(element).find((sibling)=>adapter.isTag(sibling));return firstChild!=null&&equals(element,firstChild)},"last-child"(element,{adapter,equals}){let siblings=adapter.getSiblings(element);for(let index=siblings.length-1;index>=0;index--){if(equals(element,siblings[index]))return!0;if(adapter.isTag(siblings[index]))break}return!1},"first-of-type"(element,{adapter,equals}){let siblings=adapter.getSiblings(element),elementName=adapter.getName(element);for(let currentSibling of siblings){if(equals(element,currentSibling))return!0;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elementName)break}return!1},"last-of-type"(element,{adapter,equals}){let siblings=adapter.getSiblings(element),elementName=adapter.getName(element);for(let index=siblings.length-1;index>=0;index--){let currentSibling=siblings[index];if(equals(element,currentSibling))return!0;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elementName)break}return!1},"only-of-type"(element,{adapter,equals}){let elementName=adapter.getName(element);return adapter.getSiblings(element).every((sibling)=>equals(element,sibling)||!adapter.isTag(sibling)||adapter.getName(sibling)!==elementName)},"only-child"(element,{adapter,equals}){return adapter.getSiblings(element).every((sibling)=>equals(element,sibling)||!adapter.isTag(sibling))}};function verifyPseudoArguments(pseudoClassCondition,name,subselect,argumentIndex){if(subselect===null){if(pseudoClassCondition.length>argumentIndex)throw Error(`Pseudo-class :${name} requires an argument`)}else if(pseudoClassCondition.length===argumentIndex)throw Error(`Pseudo-class :${name} doesn't have any arguments`)}function isTraversal2(token){return token.type==="_flexibleDescendant"||isTraversal(token)}function sortRules(array){let ratings=array.map(getQuality);for(let index=1;index<array.length;index++){let procNew=ratings[index];if(procNew<0)continue;for(let currentIndex=index;currentIndex>0&&procNew<ratings[currentIndex-1];currentIndex--){let token=array[currentIndex];array[currentIndex]=array[currentIndex-1],array[currentIndex-1]=token,ratings[currentIndex]=ratings[currentIndex-1],ratings[currentIndex-1]=procNew}}}function getAttributeQuality(token){switch(token.action){case AttributeAction.Exists:return 10;case AttributeAction.Equals:return token.name==="id"?9:8;case AttributeAction.Not:return 7;case AttributeAction.Start:return 6;case AttributeAction.End:return 6;case AttributeAction.Any:return 5;case AttributeAction.Hyphen:return 4;case AttributeAction.Element:return 3}}function getQuality(token){switch(token.type){case SelectorType.Universal:return 50;case SelectorType.Tag:return 30;case SelectorType.Attribute:return Math.floor(getAttributeQuality(token)/(token.ignoreCase?2:1));case SelectorType.Pseudo:return token.data?token.name==="has"||token.name==="contains"||token.name==="icontains"?0:Array.isArray(token.data)?Math.max(0,Math.min(...token.data.map((d)=>Math.min(...d.map(getQuality))))):2:3;default:return-1}}function includesScopePseudo(t){return t.type===SelectorType.Pseudo&&(t.name==="scope"||Array.isArray(t.data)&&t.data.some((data)=>data.some(includesScopePseudo)))}var PLACEHOLDER_ELEMENT={};function hasDependsOnCurrentElement(selector){return selector.some((sel)=>sel.length>0&&(isTraversal2(sel[0])||sel.some(includesScopePseudo)))}var is=(next,token,options,context,compileToken)=>{let compiledToken=compileToken(token,copyOptions(options),context);return compiledToken===trueFunc?next:compiledToken===falseFunc?falseFunc:(element)=>compiledToken(element)&&next(element)},subselects={is,matches:is,where:is,not(next,token,options,context,compileToken){let compiledToken=compileToken(token,copyOptions(options),context);return compiledToken===falseFunc?next:compiledToken===trueFunc?falseFunc:(element)=>!compiledToken(element)&&next(element)},has(next,subselect,options,_context,compileToken){let{adapter}=options,copiedOptions=copyOptions(options);copiedOptions.relativeSelector=!0;let context=subselect.some((s)=>s.some(isTraversal2))?[PLACEHOLDER_ELEMENT]:void 0,skipCache=hasDependsOnCurrentElement(subselect),compiled=compileToken(subselect,copiedOptions,context);if(compiled===falseFunc)return falseFunc;if(context&&compiled!==trueFunc)return skipCache?(element)=>{if(!next(element))return!1;context[0]=element;let childs=adapter.getChildren(element);return findOne2(compiled,compiled.shouldTestNextSiblings?[...childs,...getNextSiblings(element,adapter)]:childs,options)!==null}:cacheParentResults(next,options,(element)=>{return context[0]=element,findOne2(compiled,adapter.getChildren(element),options)!==null});let hasOne=(element)=>findOne2(compiled,adapter.getChildren(element),options)!==null;return skipCache?(element)=>next(element)&&hasOne(element):cacheParentResults(next,options,hasOne)}};function compilePseudoSelector(next,selector,options,context,compileToken){let{name,data}=selector;if(Array.isArray(data)){if(!(name in subselects))throw Error(`Unknown pseudo-class :${name}(${data})`);return subselects[name](next,data,options,context,compileToken)}let userPseudo=options.pseudos?.[name],stringPseudo=typeof userPseudo==="string"?userPseudo:aliases[name];if(typeof stringPseudo==="string"){if(data!=null)throw Error(`Pseudo ${name} doesn't have any arguments`);let alias=parse(stringPseudo);return subselects.is(next,alias,options,context,compileToken)}if(typeof userPseudo==="function")return verifyPseudoArguments(userPseudo,name,data,1),(element)=>userPseudo(element,data)&&next(element);if(name in filters)return filters[name](next,data,options,context,compileToken);if(name in pseudos){let pseudo=pseudos[name];return verifyPseudoArguments(pseudo,name,data,2),(element)=>pseudo(element,options,data)&&next(element)}throw Error(`Unknown pseudo-class :${name}`)}function compileGeneralSelector(next,selector,options,context,compileToken,hasExpensiveSubselector){let{adapter,equals,cacheResults}=options;switch(selector.type){case SelectorType.PseudoElement:throw Error("Pseudo-elements are not supported by css-select");case SelectorType.ColumnCombinator:throw Error("Column combinators are not yet supported by css-select");case SelectorType.Attribute:{if(selector.namespace!=null)throw Error("Namespaced attributes are not yet supported by css-select");if(!options.xmlMode||options.lowerCaseAttributeNames)selector.name=selector.name.toLowerCase();return attributeRules[selector.action](next,selector,options)}case SelectorType.Pseudo:return compilePseudoSelector(next,selector,options,context,compileToken);case SelectorType.Tag:{if(selector.namespace!=null)throw Error("Namespaced tag names are not yet supported by css-select");let{name}=selector;if(!options.xmlMode||options.lowerCaseTags)name=name.toLowerCase();return function(element){return adapter.getName(element)===name&&next(element)}}case SelectorType.Descendant:{if(!hasExpensiveSubselector||cacheResults===!1||typeof WeakMap>"u")return function(element){let current=element;while(current=getElementParent(current,adapter))if(next(current))return!0;return!1};let resultCache=new WeakMap;return function(element){let current=element,result;while(current=getElementParent(current,adapter)){let cached=resultCache.get(current);if(cached===void 0){if(result??={matches:!1},result.matches=next(current),resultCache.set(current,result),result.matches)return!0}else{if(result)result.matches=cached.matches;return cached.matches}}return!1}}case"_flexibleDescendant":return function(element){let current=element;do{if(next(current))return!0;current=getElementParent(current,adapter)}while(current);return!1};case SelectorType.Parent:return function(element){return adapter.getChildren(element).some((element2)=>adapter.isTag(element2)&&next(element2))};case SelectorType.Child:return function(element){let parent=getElementParent(element,adapter);return parent!==null&&next(parent)};case SelectorType.Sibling:return function(element){let siblings=adapter.getSiblings(element);for(let currentSibling of siblings){if(equals(element,currentSibling))break;if(adapter.isTag(currentSibling)&&next(currentSibling))return!0}return!1};case SelectorType.Adjacent:{if(adapter.prevElementSibling)return function(element){let previous=adapter.prevElementSibling(element);return previous!=null&&next(previous)};return function(element){let siblings=adapter.getSiblings(element),lastElement;for(let currentSibling of siblings){if(equals(element,currentSibling))break;if(adapter.isTag(currentSibling))lastElement=currentSibling}return!!lastElement&&next(lastElement)}}case SelectorType.Universal:{if(selector.namespace!=null&&selector.namespace!=="*")throw Error("Namespaced universal selectors are not yet supported by css-select");return next}}}var DESCENDANT_TOKEN={type:SelectorType.Descendant},FLEXIBLE_DESCENDANT_TOKEN={type:"_flexibleDescendant"},SCOPE_TOKEN={type:SelectorType.Pseudo,name:"scope",data:null};function absolutize(token,{adapter},context){let hasContext=!!context?.every((element)=>element===PLACEHOLDER_ELEMENT||adapter.isTag(element)&&getElementParent(element,adapter)!==null);for(let t of token){if(t.length>0&&isTraversal2(t[0])&&t[0].type!==SelectorType.Descendant);else if(hasContext&&!t.some(includesScopePseudo))t.unshift(DESCENDANT_TOKEN);else continue;t.unshift(SCOPE_TOKEN)}}function compileToken(token,options,compilationContext){for(let rules of token)sortRules(rules);let{context=compilationContext,rootFunc:rootFunction=trueFunc}=options,isArrayContext=Array.isArray(context),finalContext=context&&(Array.isArray(context)?context:[context]);if(options.relativeSelector!==!1)absolutize(token,options,finalContext);else if(token.some((t)=>t.length>0&&isTraversal2(t[0])))throw Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");let shouldTestNextSiblings=!1,query=falseFunc;combineLoop:for(let rules of token){if(rules.length>=2){let[first,second]=rules;if(first.type!==SelectorType.Pseudo||first.name!=="scope");else if(isArrayContext&&second.type===SelectorType.Descendant)rules[1]=FLEXIBLE_DESCENDANT_TOKEN;else if(second.type===SelectorType.Adjacent||second.type===SelectorType.Sibling)shouldTestNextSiblings=!0}let next=rootFunction,hasExpensiveSubselector=!1;for(let rule of rules){if(next=compileGeneralSelector(next,rule,options,finalContext,compileToken,hasExpensiveSubselector),getQuality(rule)===0)hasExpensiveSubselector=!0;if(next===falseFunc)continue combineLoop}if(next===rootFunction)return rootFunction;query=query===falseFunc?next:or(query,next)}return query.shouldTestNextSiblings=shouldTestNextSiblings,query}function or(a,b){return(element)=>a(element)||b(element)}var defaultEquals=(a,b)=>a===b,defaultOptions={adapter:{...exports_dist2,isTag:isTag2},equals:defaultEquals};function convertOptionFormats(options){let finalOptions=options??defaultOptions;return finalOptions.adapter??=defaultOptions.adapter,finalOptions.equals??=finalOptions.adapter?.equals??defaultEquals,finalOptions}function compile2(selector,options,context){let convertedOptions=convertOptionFormats(options),next=_compileUnsafe(selector,convertedOptions,context);return next===falseFunc?falseFunc:(element)=>convertedOptions.adapter.isTag(element)&&next(element)}function _compileUnsafe(selector,options,context){return compileToken(typeof selector==="string"?parse(selector):selector,convertOptionFormats(options),context)}function getSelectorFunction(searchFunction){return function(query,elements,options){let convertedOptions=convertOptionFormats(options);if(typeof query!=="function")query=_compileUnsafe(query,convertedOptions,elements);let filteredElements=prepareContext(elements,convertedOptions.adapter,query.shouldTestNextSiblings);return searchFunction(query,filteredElements,convertedOptions)}}function prepareContext(elements,adapter,shouldTestNextSiblings=!1){if(shouldTestNextSiblings)elements=appendNextSiblings(elements,adapter);return Array.isArray(elements)?adapter.removeSubsets(elements):adapter.getChildren(elements)}function appendNextSiblings(element,adapter){let elements=Array.isArray(element)?[...element]:[element],elementsLength=elements.length;for(let index=0;index<elementsLength;index++){let nextSiblings=getNextSiblings(elements[index],adapter);elements.push(...nextSiblings)}return elements}var selectAll=getSelectorFunction((query,elements,options)=>query===falseFunc||!elements||elements.length===0?[]:findAll2(query,elements,options)),selectOne=getSelectorFunction((query,elements,options)=>query===falseFunc||!elements||elements.length===0?null:findOne2(query,elements,options));function is2(element,query,options){return(typeof query==="function"?query:compile2(query,options))(element)}function createAutoLocator(getContainer,opts){return new AutoLocatorImpl(getContainer,[],void 0,opts?.strict??!1)}class AutoLocatorImpl{getContainer;predicates;indexSelector;strict;constructor(getContainer,predicates,indexSelector,strict=!1){this.getContainer=getContainer;this.predicates=predicates;this.indexSelector=indexSelector;this.strict=strict}getByText(text){let predicate=(node)=>{let content=getNodeTextContent(node);if(!content)return!1;if(node.type!=="silvery-text")return!1;if(node.isRawText&&node.parent?.type==="silvery-text")return!1;if(typeof text==="string")return content.includes(text);return text.test(content)};return new AutoLocatorImpl(this.getContainer,[...this.predicates,predicate],void 0,this.strict)}getByTestId(id){let predicate=(node)=>{return getNodeProp(node,"testID")===id};return new AutoLocatorImpl(this.getContainer,[...this.predicates,predicate],void 0,this.strict)}locator(selector){let predicate=(node)=>{try{return is2(node,selector,cssSelectOptions)}catch{return!1}};return new AutoLocatorImpl(this.getContainer,[...this.predicates,predicate],void 0,this.strict)}filter(optionsOrPredicate){let predicate;if(typeof optionsOrPredicate==="function")predicate=optionsOrPredicate;else{let opts=optionsOrPredicate;predicate=(node)=>{if(opts.hasText!==void 0){let content=getNodeTextContent(node);if(typeof opts.hasText==="string"){if(!content.includes(opts.hasText))return!1}else if(!opts.hasText.test(content))return!1}if(opts.hasTestId!==void 0){if(getNodeProp(node,"testID")!==opts.hasTestId)return!1}if(opts.has!==void 0){let value=getNodeProp(node,opts.has.attr);if(opts.has.value!==void 0){if(value!==opts.has.value)return!1}else if(value===void 0)return!1}return!0}}return new AutoLocatorImpl(this.getContainer,[...this.predicates,predicate],void 0,this.strict)}first(){return new AutoLocatorImpl(this.getContainer,this.predicates,{type:"first"},this.strict)}last(){return new AutoLocatorImpl(this.getContainer,this.predicates,{type:"last"},this.strict)}nth(index){return new AutoLocatorImpl(this.getContainer,this.predicates,{type:"nth",index},this.strict)}resolve(){let nodes=this.resolveAll();if(this.indexSelector)switch(this.indexSelector.type){case"first":return nodes[0]??null;case"last":return nodes[nodes.length-1]??null;case"nth":return nodes[this.indexSelector.index??0]??null}if(this.strict&&nodes.length>1)throw Error(`Locator resolved to ${nodes.length} elements. Use .first(), .nth(n), or a more specific selector. Matched types: ${nodes.slice(0,3).map((n)=>n.type).join(", ")}${nodes.length>3?"...":""}`);return nodes[0]??null}resolveAll(){let container=this.getContainer();if(this.predicates.length===0)return[container];let matches=[];return walkTree(container,(node)=>{if(this.predicates.every((p)=>p(node)))matches.push(node)}),matches}count(){return this.resolveAll().length}textContent(){let node=this.resolve();if(!node)return"";return getNodeTextContent(node)}getAttribute(name){let node=this.resolve();if(!node)return;return getNodeProp(node,name)}boundingBox(){let node=this.resolve();if(!node)return null;return node.scrollRect??null}isVisible(){let box=this.boundingBox();if(!box)return!1;return box.width>0&&box.height>0}}function walkTree(node,visitor){visitor(node);for(let child of node.children)walkTree(child,visitor)}function getNodeTextContent(node){if(node.textContent!==void 0)return node.textContent;return node.children.map(getNodeTextContent).join("")}function getNodeProp(node,name){let value=node.props[name];if(value===void 0||value===null)return;return String(value)}var agNodeAdapter={isTag:(node)=>!node.isRawText,getAttributeValue:(element,name)=>getNodeProp(element,name),getChildren:(node)=>[...node.children],getName:(element)=>element.type??"unknown",getParent:(node)=>node.parent,getSiblings:(node)=>node.parent?[...node.parent.children]:[node],getText:(node)=>getNodeTextContent(node),hasAttrib:(element,name)=>getNodeProp(element,name)!==void 0,removeSubsets:(nodes)=>{return nodes.filter((node,i)=>{for(let j=0;j<nodes.length;j++)if(i!==j){let ancestor=node.parent;while(ancestor){if(ancestor===nodes[j])return!1;ancestor=ancestor.parent}}return!0})},prevElementSibling:(node)=>{if(!node.parent)return null;let siblings=node.parent.children,index=siblings.indexOf(node);for(let i=index-1;i>=0;i--)if(!siblings[i].isRawText)return siblings[i];return null}},cssSelectOptions={adapter:agNodeAdapter,xmlMode:!0,cacheResults:!1};function createBoundTerm(buffer,getRoot,getText2){return{cell(x,y){return buffer.getCell(x,y)},nodeAt(x,y){let root=getRoot();return findNodeAtScreenPosition(root,x,y)},get text(){return getText2()},get columns(){return buffer.width},get rows(){return buffer.height},get buffer(){return buffer}}}function findNodeAtScreenPosition(node,x,y){let rect=node.scrollRect;if(!rect)return null;if(x<rect.x||x>=rect.x+rect.width||y<rect.y||y>=rect.y+rect.height)return null;for(let child of node.children){let found=findNodeAtScreenPosition(child,x,y);if(found)return found}if(node.type==="silvery-text")for(let i=node.children.length-1;i>=0;i--){let child=node.children[i];if(child.inlineRects){for(let inlineRect of child.inlineRects)if(x>=inlineRect.x&&x<inlineRect.x+inlineRect.width&&y>=inlineRect.y&&y<inlineRect.y+inlineRect.height)return child}}return node}init_buffer();import{writeFile}from"node:fs/promises";function createScreenshotter(){let browser=null,page=null;async function ensureBrowser(){if(browser&&page)return page;let{chromium}=await import("playwright");return browser=await chromium.launch(),page=await(await browser.newContext()).newPage(),page}async function capture(html,outputPath){let p=await ensureBrowser();await p.setContent(html,{waitUntil:"load"}),await p.waitForTimeout(50);let buffer=await p.screenshot({fullPage:!0});if(outputPath)await writeFile(outputPath,buffer);return buffer}async function close(){if(browser)await browser.close(),browser=null,page=null}return{capture,close,[Symbol.asyncDispose]:close}}init_keys();function buildApp(options){let{getContainer,getBuffer,sendInput,rerender,unmount,waitUntilExit,clear,exitCalled=()=>!1,exitError=()=>{return},freshRender:freshRenderFn,debugFn,frames=[],columns,rows,kittyMode=!1,actAndRender,resize:resizeFn,focusManager:fm}=options,createLocator=()=>createAutoLocator(getContainer),getText2=()=>{let buffer=getBuffer();return buffer?bufferToText(buffer):""},boundTerm=null,mouseState=createMouseEventProcessor(),screenshotter=null,app={get text(){return getText2()},get ansi(){let buffer=getBuffer();return buffer?bufferToStyledText(buffer):""},get lines(){return getText2().split(`
|
|
117
121
|
`)},get width(){return getBuffer()?.width??columns},get height(){return getBuffer()?.height??rows},cell(col,row){let buffer=getBuffer();if(!buffer)return EMPTY_FRAME_CELL;return cellToFrameCell(buffer.getCell(col,row))},containsText(text){return getText2().includes(text)},nodeAt(x,y){let root=getContainer();return findNodeAtContentPosition(root,x,y)},getByTestId(id){return createLocator().getByTestId(id)},getByText(text){return createLocator().getByText(text)},locator(selector){return createLocator().locator(selector)},async press(key){let hotkey=parseHotkey(key);updateKeyboardModifiers(mouseState,{super:hotkey.super,hyper:hotkey.hyper,eventType:"press"});let sequence=kittyMode?keyToKittyAnsi(key):keyToAnsi(key);return sendInput(sequence),await Promise.resolve(),app},async pressSequence(...keys){for(let key of keys)await app.press(key);return app},async type(text){for(let char of text)sendInput(char);return await Promise.resolve(),app},async click(x,y,options2){let button=options2?.button??0;if(options2?.cmd)mouseState.keyboardModifiers.super=!0;let doClick=()=>{let parsed={button,x,y,action:"down",shift:options2?.shift??!1,meta:options2?.meta??!1,ctrl:options2?.ctrl??!1};processMouseEvent(mouseState,parsed,getContainer());let upParsed={...parsed,action:"up"};processMouseEvent(mouseState,upParsed,getContainer())};if(actAndRender)actAndRender(doClick);else doClick();if(options2?.cmd)mouseState.keyboardModifiers.super=!1;return await Promise.resolve(),app},async doubleClick(x,y,options2){let button=options2?.button??0;if(options2?.cmd)mouseState.keyboardModifiers.super=!0;let doDblClick=()=>{let baseParsed={button,x,y,action:"down",shift:options2?.shift??!1,meta:options2?.meta??!1,ctrl:options2?.ctrl??!1};processMouseEvent(mouseState,baseParsed,getContainer()),processMouseEvent(mouseState,{...baseParsed,action:"up"},getContainer()),processMouseEvent(mouseState,baseParsed,getContainer()),processMouseEvent(mouseState,{...baseParsed,action:"up"},getContainer())};if(actAndRender)actAndRender(doDblClick);else doDblClick();if(options2?.cmd)mouseState.keyboardModifiers.super=!1;return await Promise.resolve(),app},async hover(x,y){let doHover=()=>{processMouseEvent(mouseState,{button:0,x,y,action:"move",shift:!1,meta:!1,ctrl:!1},getContainer())};if(actAndRender)actAndRender(doHover);else doHover();return await Promise.resolve(),app},async wheel(x,y,delta){let doWheel=()=>{processMouseEvent(mouseState,{button:0,x,y,action:"wheel",delta,shift:!1,meta:!1,ctrl:!1},getContainer())};if(actAndRender)actAndRender(doWheel);else doWheel();return await Promise.resolve(),app},resize(cols,rows2){if(!resizeFn)throw Error("resize() is only available in test renderer");resizeFn(cols,rows2)},async run(){return waitUntilExit()},get term(){let buffer=getBuffer();if(!buffer)return createBoundTerm({width:columns,height:rows,getCell:()=>({char:" ",fg:null,bg:null,attrs:{},wide:!1,continuation:!1}),setCell:()=>{},clear:()=>{},inBounds:()=>!1},getContainer,getText2);if(!boundTerm||boundTerm.buffer!==buffer)boundTerm=createBoundTerm(buffer,getContainer,getText2);return boundTerm},async screenshot(outputPath){let buffer=getBuffer();if(!buffer)throw Error("No buffer available for screenshot");let html=bufferToHTML(buffer);if(!screenshotter)screenshotter=createScreenshotter();return screenshotter.capture(html,outputPath)},rerender,unmount(){if(screenshotter)screenshotter.close().catch(()=>{}),screenshotter=null;unmount()},[Symbol.dispose](){app.unmount()},waitUntilExit,clear,debug(){if(debugFn)debugFn();else console.log(app.text)},freshRender(){if(!freshRenderFn)throw Error("freshRender() is only available in test renderer");return freshRenderFn()},exitCalled,exitError,stdin:{write:sendInput},frames,lastFrame(){return frames[frames.length-1]},lastBuffer(){return getBuffer()??void 0},lastFrameText(){let buffer=getBuffer();return buffer?bufferToText(buffer):void 0},getContainer(){return getContainer()},focus(testID){if(fm){let root=getContainer();fm.focusById(testID,root,"programmatic")}},getFocusPath(){if(fm){let root=getContainer();return fm.getFocusPath(root)}return[]},get focusManager(){if(!fm)throw Error("FocusManager not available — pass focusManager to buildApp()");return fm},getCursorState(){return options.getCursorState?.()??null}};return app}function findNodeAtContentPosition(node,x,y){let rect=node.boxRect;if(!rect)return null;if(!pointInRect(x,y,rect))return null;for(let child of node.children){let found=findNodeAtContentPosition(child,x,y);if(found)return found}return node}init_buffer();init_context();init_pipeline2();init_reconciler();init_ansi2();init_buffer();init_keys();function debugTree(node,options={}){let{depth=Number.POSITIVE_INFINITY,showRects=!0,showText=!0}=options,lines=[];function safeStringify(value){try{return JSON.stringify(value)}catch{if(typeof value==="object"&&value!==null)return"[object]";return String(value)}}function walk(n,indent,currentDepth){if(currentDepth>depth)return;let props=Object.entries(n.props??{}).filter(([k])=>!["children"].includes(k)).filter(([,v])=>v!==void 0&&v!==null&&v!==!1).map(([k,v])=>{if(typeof v==="string")return`${k}="${v}"`;if(typeof v==="boolean")return k;return`${k}=${safeStringify(v)}`}).join(" "),rect="";if(showRects&&n.scrollRect){let{x,y,width,height}=n.scrollRect;rect=` [${x},${y} ${width}×${height}]`}let text="";if(showText&&n.textContent)text=` "${n.textContent.length>40?n.textContent.slice(0,37)+"...":n.textContent}"`;let propsStr=props?" "+props:"";lines.push(" ".repeat(indent)+`<${n.type}${propsStr}${text}${rect}>`);for(let child of n.children)walk(child,indent+1,currentDepth+1)}return walk(node,0,0),lines.join(`
|
|
118
|
-
`)}init_keys();import{createLogger as createLogger15}from"loggily";var
|
|
122
|
+
`)}init_keys();import{createLogger as createLogger15}from"loggily";var log13=createLogger15("silvery:render"),activeRenders=new Set,renderIdCounter=0,ACTIVE_RENDER_LEAK_THRESHOLD=1000;function pruneAndCountActiveRenders(){let count=0;for(let ref of activeRenders)if(ref.deref()===void 0)activeRenders.delete(ref);else count++;return count}function assertLayoutEngine(){if(!isLayoutEngineInitialized())throw Error("silvery: Layout engine not initialized. Call `await ensureEngine()` before render(), or use the testing module which initializes it automatically via top-level await.")}function isStore(arg){if(arg===null||typeof arg!=="object")return!1;let obj=arg;return typeof obj.cols==="number"&&typeof obj.rows==="number"&&!("layoutEngine"in obj)&&!("debug"in obj)&&!("incremental"in obj)&&!("singlePassLayout"in obj)&&!("autoRender"in obj)&&!("onFrame"in obj)&&!("kittyMode"in obj)&&!("wrapRoot"in obj)&&!("stdin"in obj)}function render2(element,optsOrStore={}){assertLayoutEngine();let storeMode=isStore(optsOrStore),cols=storeMode?optsOrStore.cols:optsOrStore.cols??80,rows=storeMode?optsOrStore.rows:optsOrStore.rows??24,debug=storeMode?!1:optsOrStore.debug??!1,incremental=storeMode?!0:optsOrStore.incremental??!0,singlePassLayout=storeMode?!1:optsOrStore.singlePassLayout??!1,kittyMode=storeMode?!1:optsOrStore.kittyMode??!1,autoRender=storeMode?!1:optsOrStore.autoRender??!1,onFrame=storeMode?void 0:optsOrStore.onFrame,onBufferReady=storeMode?void 0:optsOrStore.onBufferReady,wrapRoot=storeMode?void 0:optsOrStore.wrapRoot,stdinStream=storeMode?void 0:optsOrStore.stdin,liveCount=pruneAndCountActiveRenders();if(liveCount>=ACTIVE_RENDER_LEAK_THRESHOLD)throw Error(`silvery: ${liveCount} active render instances without unmount(). This is a render leak. Use createRenderer() for auto-cleanup, or call unmount() when done with each render.`);if(!storeMode&&optsOrStore.layoutEngine)setLayoutEngine(optsOrStore.layoutEngine);let renderId=++renderIdCounter,instance={frames:[],container:null,fiberRoot:null,prevBuffer:null,mounted:!0,rendering:!1,columns:cols,rows,inputEmitter:new EventEmitter2,debug,incremental,renderCount:0,singlePassLayout},hadReactCommit=!1,autoRenderScheduled=!1,inRenderCycle=!1;instance.container=createContainer(()=>{if(hadReactCommit=!0,autoRender&&!instance.rendering&&!inRenderCycle&&!autoRenderScheduled&&instance.mounted)autoRenderScheduled=!0,queueMicrotask(()=>{if(autoRenderScheduled=!1,!instance.mounted||instance.rendering||inRenderCycle)return;inRenderCycle=!0;try{let newFrame=doRender();instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight())}finally{inRenderCycle=!1}})}),instance.fiberRoot=createFiberRoot(instance.container);let getRootContentHeight=()=>{try{let root=getContainerRoot(instance.container);if(!root?.boxRect)return;let maxBottom=0,hasChildren2=!1;for(let child of root.children)if(child.boxRect){hasChildren2=!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}return hasChildren2?maxBottom:0}catch{return}},exitCalledFlag=!1,exitErrorValue,handleExit=(error)=>{if(exitCalledFlag=!0,exitErrorValue=error,debug)console.log("[silvery] exit() called",error?`with error: ${error.message}`:"")},stdoutEmitter=new EventEmitter2,mockStdout={columns:instance.columns,rows:instance.rows,write:()=>!0,isTTY:!0,on:(event,listener)=>{return stdoutEmitter.on(event,listener),mockStdout},off:(event,listener)=>{return stdoutEmitter.off(event,listener),mockStdout},once:(event,listener)=>{return stdoutEmitter.once(event,listener),mockStdout},removeListener:(event,listener)=>{return stdoutEmitter.removeListener(event,listener),mockStdout},addListener:(event,listener)=>{return stdoutEmitter.addListener(event,listener),mockStdout}},mockTerm=createTerm({color:"truecolor",stdout:mockStdout}),focusManager=createFocusManager();setOnNodeRemoved((removedNode)=>focusManager.handleSubtreeRemoved(removedNode));let cursorStore=createCursorStore(),runtimeValue={on(event,handler){if(event==="input"){let wrapped=(data)=>{let[input,key]=parseKey(data);handler(input,key)};return instance.inputEmitter.on("input",wrapped),()=>{instance.inputEmitter.removeListener("input",wrapped)}}if(event==="paste")return instance.inputEmitter.on("paste",handler),()=>{instance.inputEmitter.removeListener("paste",handler)};return()=>{}},emit(){},exit:handleExit};function wrapWithContexts(el){let inner=wrapRoot?wrapRoot(el):el;return React12.createElement(CursorProvider,{store:cursorStore},React12.createElement(TermContext.Provider,{value:mockTerm},React12.createElement(StdoutContext.Provider,{value:{stdout:mockStdout,write:()=>{}}},React12.createElement(FocusManagerContext.Provider,{value:focusManager},React12.createElement(RuntimeContext.Provider,{value:runtimeValue},inner)))))}let strictEnv=process.env.SILVERY_STRICT,strictMode=incremental&&strictEnv&&strictEnv!=="0"&&strictEnv!=="false",MAX_SINGLE_PASS_ITERATIONS=5;function doRender(){let output2,buffer;if(instance.singlePassLayout){let singlePassCount=0;for(let pass=0;pass<MAX_SINGLE_PASS_ITERATIONS;pass++){hadReactCommit=!1,singlePassCount++;let renderError=null;if(withActEnvironment2(()=>{if(act2(()=>{let root=getContainerRoot(instance.container);try{let result=executeRender(root,instance.columns,instance.rows,incremental?instance.prevBuffer:null);output2=result.output,buffer=result.buffer}catch(e){renderError=e;let attachedBuffer=e?.__silvery_buffer;if(attachedBuffer)buffer=attachedBuffer}if(buffer)instance.prevBuffer=buffer;instance.renderCount++,onBufferReady?.(output2,buffer,getRootContentHeight())}),!hadReactCommit)act2(()=>{reconciler.flushSyncWork()})}),renderError){if(!(renderError instanceof IncrementalRenderMismatchError))throw renderError}if(!hadReactCommit)break}if(hadReactCommit&&singlePassCount>=MAX_SINGLE_PASS_ITERATIONS){if(process.env.SILVERY_STRICT)log13.warn?.(`singlePassLayout exhausted ${MAX_SINGLE_PASS_ITERATIONS} iterations `+"with pending React commit — output may be stale")}if(incremental&&buffer&&singlePassCount>1)buffer.markAllRowsDirty()}else{let iterationCount=0;for(let iteration=0;iteration<5;iteration++){hadReactCommit=!1,iterationCount++;let classicRenderError=null;if(withActEnvironment2(()=>{if(act2(()=>{let root=getContainerRoot(instance.container);try{let result=executeRender(root,instance.columns,instance.rows,incremental?instance.prevBuffer:null);output2=result.output,buffer=result.buffer}catch(e){classicRenderError=e;let attachedBuffer=e?.__silvery_buffer;if(attachedBuffer)buffer=attachedBuffer}if(buffer)instance.prevBuffer=buffer;instance.renderCount++,onBufferReady?.(output2,buffer,getRootContentHeight())}),!hadReactCommit)act2(()=>{reconciler.flushSyncWork()})}),classicRenderError){if(!(classicRenderError instanceof IncrementalRenderMismatchError))throw classicRenderError}if(!hadReactCommit)break}if(hadReactCommit&&iterationCount>=5){if(process.env.SILVERY_STRICT)log13.warn?.("classic layout loop exhausted 5 iterations "+"with pending React commit — output may be stale")}if(incremental&&buffer&&iterationCount>1)buffer.markAllRowsDirty()}if(strictMode&&instance.renderCount>1){let root=getContainerRoot(instance.container),freshBuffer=doFreshRender();for(let y=0;y<buffer.height;y++)for(let x=0;x<buffer.width;x++){let a=buffer.getCell(x,y),b=freshBuffer.getCell(x,y);if(!cellEquals(a,b)){let trapInfo="",trap={x,y,log:[]};globalThis.__silvery_write_trap=trap;try{doFreshRender()}catch{}if(globalThis.__silvery_write_trap=null,trap.log.length>0)trapInfo=`
|
|
119
123
|
WRITE TRAP (${trap.log.length} writes to (${x},${y})):
|
|
120
124
|
${trap.log.join(`
|
|
121
125
|
`)}
|
|
@@ -124,7 +128,7 @@ WRITE TRAP: NO WRITES to (${x},${y})
|
|
|
124
128
|
`;let ctx=buildMismatchContext(root,x,y,a,b,instance.renderCount),renderPhaseStats=globalThis.__silvery_content_detail?structuredClone(globalThis.__silvery_content_detail):void 0,debugInfo=formatMismatchContext(ctx,renderPhaseStats),incText=bufferToText(buffer),freshText=bufferToText(freshBuffer),msg=debugInfo+trapInfo+`--- incremental ---
|
|
125
129
|
${incText}
|
|
126
130
|
--- fresh ---
|
|
127
|
-
${freshText}`;throw new IncrementalRenderMismatchError(msg,{renderPhaseStats,mismatchContext:ctx})}}}return output2}function doFreshRender(){let root=getContainerRoot(instance.container),{buffer}=executeRender(root,instance.columns,instance.rows,null,{skipLayoutNotifications:!0,skipScrollStateUpdates:!0});return buffer}instance.rendering=!0;try{withActEnvironment2(()=>{act2(()=>{reconciler.updateContainerSync(wrapWithContexts(element),instance.fiberRoot,null,null),reconciler.flushSyncWork()})})}finally{instance.rendering=!1}let savedSinglePass=instance.singlePassLayout;instance.singlePassLayout=!1;let output=doRender();if(instance.singlePassLayout=savedSinglePass,instance.frames.push(output),onFrame?.(output,instance.prevBuffer,getRootContentHeight()),debug)console.log("[silvery] Initial render:",output);let stdinOnReadable;if(stdinStream)stdinOnReadable=()=>{let chunk;while((chunk=stdinStream.read?.())!==null&&chunk!==void 0)instance.inputEmitter.emit("input",chunk)},stdinStream.on("readable",stdinOnReadable);let getContainer=()=>getContainerRoot(instance.container),getBuffer=()=>instance.prevBuffer,sendInput=(data)=>{if(!instance.mounted)throw Error("Cannot write to stdin after unmount");if(instance.rendering)throw Error("silvery: Re-entrant render detected. Cannot call press()/stdin.write() from inside a React render or effect. Use setTimeout or an event handler instead.");let t0=performance.now();instance.rendering=!0;try{let pasteResult=parseBracketedPaste(data);if(pasteResult)withActEnvironment2(()=>{act2(()=>{instance.inputEmitter.emit("paste",pasteResult.content)})});else withActEnvironment2(()=>{for(let keypress of splitRawInput(data)){let[,key]=parseKey(keypress);if(key.tab&&!key.shift){act2(()=>{let root=getContainerRoot(instance.container);focusManager.focusNext(root)});continue}if(key.tab&&key.shift){act2(()=>{let root=getContainerRoot(instance.container);focusManager.focusPrev(root)});continue}if(key.escape&&focusManager.activeElement){act2(()=>{focusManager.blur()});continue}act2(()=>{instance.inputEmitter.emit("input",keypress)})}})}finally{instance.rendering=!1}let t1=performance.now(),newFrame=doRender(),doRenderCount=1;if(instance.singlePassLayout)for(let flush2=0;flush2<5;flush2++){if(hadReactCommit=!1,withActEnvironment2(()=>{act2(()=>{reconciler.flushSyncWork()})}),!hadReactCommit)break;newFrame=doRender(),doRenderCount++}if(incremental&&doRenderCount>1&&instance.prevBuffer)instance.prevBuffer.markAllRowsDirty();let t2=performance.now();if(instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight()),debug)console.log("[silvery] stdin.write:",newFrame);globalThis.__silvery_last_timing={actMs:t1-t0,renderMs:t2-t1}},rerenderFn=(newElement)=>{if(!instance.mounted)throw Error("Cannot rerender after unmount");if(instance.rendering)throw Error("silvery: Re-entrant render detected. Cannot call rerender() from inside a React render or effect.");instance.rendering=!0;try{withActEnvironment2(()=>{act2(()=>{reconciler.updateContainerSync(wrapWithContexts(newElement),instance.fiberRoot,null,null),reconciler.flushSyncWork()})})}finally{instance.rendering=!1}let newFrame=doRender();if(instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight()),debug)console.log("[silvery] Rerender:",newFrame)},renderTracker={unmount:()=>{},id:renderId},renderRef=new WeakRef(renderTracker);activeRenders.add(renderRef);let unmountFn=()=>{if(!instance.mounted)throw Error("Already unmounted");if(withActEnvironment2(()=>{act2(()=>{reconciler.updateContainer(null,instance.fiberRoot,null,()=>{})})}),instance.mounted=!1,instance.inputEmitter.removeAllListeners(),stdinStream&&stdinOnReadable)stdinStream.removeListener("readable",stdinOnReadable);if(setOnNodeRemoved(null),activeRenders.delete(renderRef),debug)console.log("[silvery] Unmounted")};renderTracker.unmount=unmountFn;let clearFn=()=>{instance.frames.length=0,instance.prevBuffer=null},debugFn=()=>{console.log(debugTree(getContainerRoot(instance.container)))},actAndRenderFn=(fn)=>{if(!instance.mounted)return;withActEnvironment2(()=>{act2(()=>{fn()})});let newFrame=doRender();instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight())},resizeFn=(newCols,newRows)=>{if(!instance.mounted)throw Error("Cannot resize after unmount");instance.columns=newCols,instance.rows=newRows,mockStdout.columns=newCols,mockStdout.rows=newRows,stdoutEmitter.emit("resize"),instance.prevBuffer=null;let newFrame=doRender();if(instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight()),debug)console.log("[silvery] Resize:",newCols,"x",newRows)};return buildApp({getContainer,getBuffer,sendInput,rerender:rerenderFn,unmount:unmountFn,waitUntilExit:()=>Promise.resolve(),clear:clearFn,exitCalled:()=>exitCalledFlag,exitError:()=>exitErrorValue,freshRender:doFreshRender,debugFn,frames:instance.frames,columns:cols,rows,kittyMode,actAndRender:actAndRenderFn,resize:resizeFn,focusManager,getCursorState:cursorStore.accessors.getCursorState})}function withActEnvironment2(fn){let prev=globalThis.IS_REACT_ACT_ENVIRONMENT;globalThis.IS_REACT_ACT_ENVIRONMENT=!0;try{fn()}finally{globalThis.IS_REACT_ACT_ENVIRONMENT=prev}}init_host_config();init_render_string();init_flexily_zero_adapter();function resolveNode(nodeOrHandle){if(!nodeOrHandle)return null;if(typeof nodeOrHandle.getNode==="function")return nodeOrHandle.getNode();return nodeOrHandle}function measureElement(nodeOrHandle){let node=resolveNode(nodeOrHandle);if(!node)return{width:0,height:0};if(node.boxRect)return{width:node.boxRect.width,height:node.boxRect.height};let width=node.layoutNode?.getComputedWidth()??0,height=node.layoutNode?.getComputedHeight()??0;return{width:Number.isNaN(width)?0:width,height:Number.isNaN(height)?0:height}}init_nodes();function resolveRenderThrottleMs(options){let debug=options?.debug===!0,isScreenReaderEnabled=options?.isScreenReaderEnabled===!0;if(debug||isScreenReaderEnabled)return 0;let rawMaxFps=options?.maxFps,maxFps=typeof rawMaxFps==="number"?rawMaxFps:30;if(!(maxFps>0))return 0;return Math.max(1,Math.ceil(1000/maxFps))}function render3(element,options){if(setInkStrictValidation(!0),!isLayoutEngineInitialized())setLayoutEngine(createFlexilyZeroEngine());let stdout=options?.stdout,stdin=options?.stdin;if((options?.isScreenReaderEnabled??!1)&&stdout){let screenReaderOutput=renderScreenReaderOutput(element);stdout.write(screenReaderOutput);let unmounted=!1,instance={rerender:(newElement)=>{if(unmounted)return;let output=renderScreenReaderOutput(newElement);stdout.write(output)},unmount:()=>{unmounted=!0},[Symbol.dispose](){instance.unmount()},waitUntilExit:()=>Promise.resolve(),waitUntilRenderFlush:()=>Promise.resolve(),cleanup:()=>{instance.unmount()},clear:()=>{},flush:()=>{},pause:()=>{},resume:()=>{}};return instance}if(stdout)return renderTestMode(element,options,stdout,stdin);return renderInteractiveMode(element,options,stdout,stdin)}function renderTestMode(element,options,stdout,stdin){let chalkHasColors=currentChalkLevel()>0,renderState={hasEmbeddedAnsi:!1},isTTY2=stdout.isTTY===!0,resolvedInteractive=options?.interactive!==void 0?Boolean(options.interactive):isTTY2,useAltScreen=options?.alternateScreen===!0&&resolvedInteractive&&isTTY2,altScreenExited=!1;if(useAltScreen)stdout.write("\x1B[?1049h");let stderr=options?.stderr,debug=options?.debug??!1,renderThrottleMs=resolveRenderThrottleMs(options),stdinState=createInkStdinState(stdin??process.stdin,stdout),kittyManager=createKittyManager(stdin??process.stdin,stdout,resolveKittyManagerOptions(options?.kittyKeyboard)),cursorStore=createCursorStore(),cursorWasShown=!1,staticStore={renderedCount:0,fullStaticOutput:""},lastOutput="",pendingDebugWrites=[];function processBuffer(buffer,contentHeight){let output;if(!chalkHasColors&&!renderState.hasEmbeddedAnsi)output=bufferToText(buffer,{trimTrailingWhitespace:!0,trimEmptyLines:!1}),output=stripSilveryVS16(output);else output=bufferToStyledText(buffer,{trimTrailingWhitespace:!0,trimEmptyLines:!1}),output=stripSilveryVS16(output),output=restoreColonFormatSGR(output);if(contentHeight!=null)if(contentHeight>0){let lines=output.split(`
|
|
131
|
+
${freshText}`;throw new IncrementalRenderMismatchError(msg,{renderPhaseStats,mismatchContext:ctx})}}}return output2}function doFreshRender(){let root=getContainerRoot(instance.container),{buffer}=executeRender(root,instance.columns,instance.rows,null,{skipLayoutNotifications:!0,skipScrollStateUpdates:!0});return buffer}instance.rendering=!0;try{withActEnvironment2(()=>{act2(()=>{reconciler.updateContainerSync(wrapWithContexts(element),instance.fiberRoot,null,null),reconciler.flushSyncWork()})})}finally{instance.rendering=!1}let savedSinglePass=instance.singlePassLayout;instance.singlePassLayout=!1;let output=doRender();if(instance.singlePassLayout=savedSinglePass,instance.frames.push(output),onFrame?.(output,instance.prevBuffer,getRootContentHeight()),debug)console.log("[silvery] Initial render:",output);let stdinOnReadable;if(stdinStream)stdinOnReadable=()=>{let chunk;while((chunk=stdinStream.read?.())!==null&&chunk!==void 0)instance.inputEmitter.emit("input",chunk)},stdinStream.on("readable",stdinOnReadable);let getContainer=()=>getContainerRoot(instance.container),getBuffer=()=>instance.prevBuffer,sendInput=(data)=>{if(!instance.mounted)throw Error("Cannot write to stdin after unmount");if(instance.rendering)throw Error("silvery: Re-entrant render detected. Cannot call press()/stdin.write() from inside a React render or effect. Use setTimeout or an event handler instead.");let t0=performance.now();instance.rendering=!0;try{let pasteResult=parseBracketedPaste(data);if(pasteResult)withActEnvironment2(()=>{act2(()=>{instance.inputEmitter.emit("paste",pasteResult.content)})});else withActEnvironment2(()=>{for(let keypress of splitRawInput(data)){let[,key]=parseKey(keypress);if(key.tab&&!key.shift){act2(()=>{let root=getContainerRoot(instance.container);focusManager.focusNext(root)});continue}if(key.tab&&key.shift){act2(()=>{let root=getContainerRoot(instance.container);focusManager.focusPrev(root)});continue}if(key.escape&&focusManager.activeElement){act2(()=>{focusManager.blur()});continue}act2(()=>{instance.inputEmitter.emit("input",keypress)})}})}finally{instance.rendering=!1}let t1=performance.now(),newFrame=doRender(),doRenderCount=1;if(instance.singlePassLayout)for(let flush2=0;flush2<5;flush2++){if(hadReactCommit=!1,withActEnvironment2(()=>{act2(()=>{reconciler.flushSyncWork()})}),!hadReactCommit)break;newFrame=doRender(),doRenderCount++}if(incremental&&doRenderCount>1&&instance.prevBuffer)instance.prevBuffer.markAllRowsDirty();let t2=performance.now();if(instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight()),debug)console.log("[silvery] stdin.write:",newFrame);globalThis.__silvery_last_timing={actMs:t1-t0,renderMs:t2-t1}},rerenderFn=(newElement)=>{if(!instance.mounted)throw Error("Cannot rerender after unmount");if(instance.rendering)throw Error("silvery: Re-entrant render detected. Cannot call rerender() from inside a React render or effect.");instance.rendering=!0;try{withActEnvironment2(()=>{act2(()=>{reconciler.updateContainerSync(wrapWithContexts(newElement),instance.fiberRoot,null,null),reconciler.flushSyncWork()})})}finally{instance.rendering=!1}let newFrame=doRender();if(instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight()),debug)console.log("[silvery] Rerender:",newFrame)},renderTracker={unmount:()=>{},id:renderId},renderRef=new WeakRef(renderTracker);activeRenders.add(renderRef);let unmountFn=()=>{if(!instance.mounted)throw Error("Already unmounted");if(withActEnvironment2(()=>{act2(()=>{reconciler.updateContainer(null,instance.fiberRoot,null,()=>{})})}),instance.mounted=!1,instance.inputEmitter.removeAllListeners(),stdinStream&&stdinOnReadable)stdinStream.removeListener("readable",stdinOnReadable);if(setOnNodeRemoved(null),activeRenders.delete(renderRef),debug)console.log("[silvery] Unmounted")};renderTracker.unmount=unmountFn;let clearFn=()=>{instance.frames.length=0,instance.prevBuffer=null},debugFn=()=>{console.log(debugTree(getContainerRoot(instance.container)))},actAndRenderFn=(fn)=>{if(!instance.mounted)return;withActEnvironment2(()=>{act2(()=>{fn()})});let newFrame=doRender();instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight())},resizeFn=(newCols,newRows)=>{if(!instance.mounted)throw Error("Cannot resize after unmount");instance.columns=newCols,instance.rows=newRows,mockStdout.columns=newCols,mockStdout.rows=newRows,stdoutEmitter.emit("resize"),instance.prevBuffer=null;let newFrame=doRender();if(instance.frames.push(newFrame),onFrame?.(newFrame,instance.prevBuffer,getRootContentHeight()),debug)console.log("[silvery] Resize:",newCols,"x",newRows)};return buildApp({getContainer,getBuffer,sendInput,rerender:rerenderFn,unmount:unmountFn,waitUntilExit:()=>Promise.resolve(),clear:clearFn,exitCalled:()=>exitCalledFlag,exitError:()=>exitErrorValue,freshRender:doFreshRender,debugFn,frames:instance.frames,columns:cols,rows,kittyMode,actAndRender:actAndRenderFn,resize:resizeFn,focusManager,getCursorState:cursorStore.accessors.getCursorState})}function withActEnvironment2(fn){let prev=globalThis.IS_REACT_ACT_ENVIRONMENT;globalThis.IS_REACT_ACT_ENVIRONMENT=!0;try{fn()}finally{globalThis.IS_REACT_ACT_ENVIRONMENT=prev}}init_host_config();init_render_string();await init_flexily_zero_adapter();function resolveNode(nodeOrHandle){if(!nodeOrHandle)return null;if(typeof nodeOrHandle.getNode==="function")return nodeOrHandle.getNode();return nodeOrHandle}function measureElement(nodeOrHandle){let node=resolveNode(nodeOrHandle);if(!node)return{width:0,height:0};if(node.boxRect)return{width:node.boxRect.width,height:node.boxRect.height};let width=node.layoutNode?.getComputedWidth()??0,height=node.layoutNode?.getComputedHeight()??0;return{width:Number.isNaN(width)?0:width,height:Number.isNaN(height)?0:height}}init_nodes();function resolveRenderThrottleMs(options){let debug=options?.debug===!0,isScreenReaderEnabled=options?.isScreenReaderEnabled===!0;if(debug||isScreenReaderEnabled)return 0;let rawMaxFps=options?.maxFps,maxFps=typeof rawMaxFps==="number"?rawMaxFps:30;if(!(maxFps>0))return 0;return Math.max(1,Math.ceil(1000/maxFps))}function render3(element,options){if(setInkStrictValidation(!0),!isLayoutEngineInitialized())setLayoutEngine(createFlexilyZeroEngine());let stdout=options?.stdout,stdin=options?.stdin;if((options?.isScreenReaderEnabled??!1)&&stdout){let screenReaderOutput=renderScreenReaderOutput(element);stdout.write(screenReaderOutput);let unmounted=!1,instance={rerender:(newElement)=>{if(unmounted)return;let output=renderScreenReaderOutput(newElement);stdout.write(output)},unmount:()=>{unmounted=!0},[Symbol.dispose](){instance.unmount()},waitUntilExit:()=>Promise.resolve(),waitUntilRenderFlush:()=>Promise.resolve(),cleanup:()=>{instance.unmount()},clear:()=>{},flush:()=>{},pause:()=>{},resume:()=>{}};return instance}if(stdout)return renderTestMode(element,options,stdout,stdin);return renderInteractiveMode(element,options,stdout,stdin)}function renderTestMode(element,options,stdout,stdin){let chalkHasColors=currentChalkLevel()>0,renderState={hasEmbeddedAnsi:!1},isTTY2=stdout.isTTY===!0,resolvedInteractive=options?.interactive!==void 0?Boolean(options.interactive):isTTY2,useAltScreen=options?.alternateScreen===!0&&resolvedInteractive&&isTTY2,altScreenExited=!1;if(useAltScreen)stdout.write("\x1B[?1049h");let stderr=options?.stderr,debug=options?.debug??!1,renderThrottleMs=resolveRenderThrottleMs(options),stdinState=createInkStdinState(stdin??process.stdin,stdout),kittyManager=createKittyManager(stdin??process.stdin,stdout,resolveKittyManagerOptions(options?.kittyKeyboard)),cursorStore=createCursorStore(),cursorWasShown=!1,staticStore={renderedCount:0,fullStaticOutput:""},lastOutput="",pendingDebugWrites=[];function processBuffer(buffer,contentHeight){let output;if(!chalkHasColors&&!renderState.hasEmbeddedAnsi)output=bufferToText(buffer,{trimTrailingWhitespace:!0,trimEmptyLines:!1}),output=stripSilveryVS16(output);else output=bufferToStyledText(buffer,{trimTrailingWhitespace:!0,trimEmptyLines:!1}),output=stripSilveryVS16(output),output=restoreColonFormatSGR(output);if(contentHeight!=null)if(contentHeight>0){let lines=output.split(`
|
|
128
132
|
`);if(lines.length>contentHeight)output=lines.slice(0,contentHeight).join(`
|
|
129
133
|
`)}else output=output.replace(/\n+$/,"");else output=output.replace(/\n+$/,"");return output}function flushPendingDebugWrites(){if(pendingDebugWrites.length===0)return{suppressFrame:!1};let pending=pendingDebugWrites;pendingDebugWrites=[];let suppressFrame=!1;for(let{target,data}of pending){let frameWithNewline=lastOutput.endsWith(`
|
|
130
134
|
`)?lastOutput:lastOutput+`
|
|
@@ -135,4 +139,4 @@ ${freshText}`;throw new IncrementalRenderMismatchError(msg,{renderPhaseStats,mis
|
|
|
135
139
|
`);while(lines.length>0&&lines[lines.length-1]==="")lines.pop();output=lines.join(`
|
|
136
140
|
`)}if(stripAnsi3(output).trim()===""){if(staticStore.fullStaticOutput)return staticStore.fullStaticOutput.replace(/\n$/,"");return""}let dynamicOutput=restoreColonFormatSGR(output);if(colonSGRTracker.clear(),staticStore.fullStaticOutput)return staticStore.fullStaticOutput+dynamicOutput;return dynamicOutput}function needsLayoutRecalculation(node){let current=node;while(current){if(current.layoutDirty||isDirty(current.dirtyBits,current.dirtyEpoch,SUBTREE_BIT)||isDirty(current.dirtyBits,current.dirtyEpoch,CHILDREN_BIT))return!0;current=current.parent}return!1}function measureElement2(nodeOrHandle){let node=typeof nodeOrHandle?.getNode==="function"?nodeOrHandle.getNode():nodeOrHandle;if(!node)return{width:0,height:0};if(node.boxRect&&!needsLayoutRecalculation(node))return measureElement(node);let root=node;while(root.parent)root=root.parent;if(root.layoutNode){let termWidth=process.stdout?.columns||100,termHeight=process.stdout?.rows||24;try{calculateLayout(root,termWidth,termHeight)}catch{}}return measureElement(node)}init_ansi2();init_unicode();var cache=new Map;function measureText2(text){if(text.length===0)return{width:0,height:0};let cached=cache.get(text);if(cached)return cached;let result=measureText(text);return cache.set(text,result),result}export{useWindowSize,useStdout,useStdin,useStderr,usePaste,useIsScreenReaderEnabled,useInput,useFocusManager,useFocus,useCursor,useBoxMetrics,useApp,useAnimation,term,stripSilveryVS16,restoreColonFormatSGR,resolveFlags,renderToString,render3 as render,measureText2 as measureText,measureElement2 as measureElement,kittyModifiers,kittyFlags,initInkCompat,currentChalkLevel,createTerm,backgroundContext,Transform,Text3 as Text,Static2 as Static,Spacer,Newline,Box3 as Box};
|
|
137
141
|
|
|
138
|
-
//# debugId=
|
|
142
|
+
//# debugId=B603BDA0EF9FDF4064756E2164756E21
|