@nick-skriabin/glyph 0.1.53 → 0.1.55

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/README.md CHANGED
@@ -493,6 +493,9 @@ Display images in the terminal with inline rendering or OS preview. Supports loc
493
493
  | `placeholder` | `string` | filename | Custom placeholder text |
494
494
  | `onStateChange` | `(state) => void` | - | Called when state changes |
495
495
  | `onError` | `(error) => void` | - | Called on error |
496
+ | `autoSize` | `boolean` | `false` | Auto-size box to fit image dimensions |
497
+ | `maxWidth` | `number` | `80` | Max width in cells when autoSize is true |
498
+ | `maxHeight` | `number` | `24` | Max height in cells when autoSize is true |
496
499
 
497
500
  **Terminal support:**
498
501
  - **Inline rendering:** Kitty, Ghostty, WezTerm, iTerm2 (via Kitty Graphics or iTerm2 protocol)
@@ -504,6 +507,14 @@ Display images in the terminal with inline rendering or OS preview. Supports loc
504
507
  // Inline disabled - always use OS preview
505
508
  <Image src="./large-photo.jpg" inline={false} />
506
509
 
510
+ // Auto-size: box resizes to fit the image (instead of image fitting in box)
511
+ <Image
512
+ src="./photo.jpg"
513
+ autoSize
514
+ maxWidth={60}
515
+ maxHeight={20}
516
+ />
517
+
507
518
  // With state callback
508
519
  <Image
509
520
  src={imageUrl}
package/dist/index.d.ts CHANGED
@@ -542,8 +542,18 @@ interface ImageProps {
542
542
  onError?: (error: Error) => void;
543
543
  /** Auto-load on mount (default: false - user presses space) */
544
544
  autoLoad?: boolean;
545
+ /**
546
+ * Auto-size the box to fit the image dimensions (default: false).
547
+ * When true, the box resizes to match the image's aspect ratio.
548
+ * Use maxWidth/maxHeight to constrain the size.
549
+ */
550
+ autoSize?: boolean;
551
+ /** Maximum width in cells when autoSize is true */
552
+ maxWidth?: number;
553
+ /** Maximum height in cells when autoSize is true */
554
+ maxHeight?: number;
545
555
  }
546
- declare function Image({ src, width, height, style, focusedStyle, placeholderStyle, focusable, inline, placeholder, onStateChange, onError, autoLoad, }: ImageProps): React.JSX.Element;
556
+ declare function Image({ src, width, height, style, focusedStyle, placeholderStyle, focusable, inline, placeholder, onStateChange, onError, autoLoad, autoSize, maxWidth, maxHeight, }: ImageProps): React.JSX.Element;
547
557
 
548
558
  declare function useInput(handler: (key: Key) => void, deps?: any[]): void;
549
559
 
package/dist/index.js CHANGED
@@ -1,19 +1,19 @@
1
- import oe,{createContext,forwardRef,useState,useContext,useRef,useEffect,useLayoutEffect,useMemo,useCallback}from'react';import Sr from'react-reconciler';import fe from'string-width';import En,{FlexDirection,Justify,Align,Direction,Edge,Wrap,Gutter,PositionType,Overflow,MeasureMode}from'yoga-layout';import {writeFileSync,existsSync,readFileSync,unlinkSync,mkdirSync}from'fs';import {createHash}from'crypto';import {join,basename}from'path';import {tmpdir,platform}from'os';import {execSync,spawn,exec}from'child_process';var Cr=0;function rn(){return `glyph-focus-${Cr++}`}function on(e,t){let n=t.style??{};return {type:e,props:t,style:n,children:[],rawTextChildren:[],parent:null,yogaNode:null,text:null,layout:{x:0,y:0,width:0,height:0,innerX:0,innerY:0,innerWidth:0,innerHeight:0},focusId:e==="input"||t.focusable?rn():null,hidden:false}}function Ct(e,t){t.parent=e,e.children.push(t);}function sn(e,t){let n=e.children.indexOf(t);n!==-1&&(e.children.splice(n,1),t.parent=null);}function ln(e,t,n){t.parent=e;let r=e.children.indexOf(n);r!==-1?e.children.splice(r,0,t):e.children.push(t);}function Ze(e){let t={},n=e;for(;n;){let r=n.style;t.color===void 0&&r.color!==void 0&&(t.color=r.color),t.bg===void 0&&r.bg!==void 0&&(t.bg=r.bg),t.bold===void 0&&r.bold!==void 0&&(t.bold=r.bold),t.dim===void 0&&r.dim!==void 0&&(t.dim=r.dim),t.italic===void 0&&r.italic!==void 0&&(t.italic=r.italic),t.underline===void 0&&r.underline!==void 0&&(t.underline=r.underline),n=n.parent;}return t}function St(e){if(e.text!=null)return e.text;let t="";for(let n of e.children)t+=St(n);return t}var wt=32,cn={supportsMutation:true,supportsPersistence:false,supportsHydration:false,isPrimaryRenderer:true,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,supportsMicrotasks:true,scheduleMicrotask:queueMicrotask,getCurrentUpdatePriority:()=>wt,setCurrentUpdatePriority:e=>{},resolveUpdatePriority:()=>wt,getCurrentEventPriority:()=>wt,resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,shouldAttemptEagerTransition:()=>false,getInstanceFromNode:()=>null,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},prepareScopeUpdate:()=>{},getInstanceFromScope:()=>null,detachDeletedInstance:()=>{},requestPostPaintCallback:e=>{},maySuspendCommit:(e,t)=>false,preloadInstance:(e,t)=>true,startSuspendingCommit:()=>{},suspendInstance:(e,t)=>{},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:{$$typeof:Symbol.for("react.context"),_currentValue:null},resetFormInstance:e=>{},bindToConsole:(e,t,n)=>Function.prototype.bind.call(console[e],console,...t),supportsResources:false,isHostHoistableType:(e,t)=>false,supportsSingletons:false,isHostSingletonType:e=>false,supportsTestSelectors:false,createInstance(e,t,n,r,o){return on(e,t)},createTextInstance(e,t,n,r){return {type:"raw-text",text:e,parent:null}},appendInitialChild(e,t){if(t.type==="raw-text"){let n=t;n.parent=e,e.rawTextChildren.push(n),e.text=e.rawTextChildren.map(r=>r.text).join("");}else Ct(e,t);},finalizeInitialChildren(e,t,n,r,o){return false},shouldSetTextContent(e,t){return false},getRootHostContext(e){return {}},getChildHostContext(e,t,n){return e},getPublicInstance(e){return e},prepareForCommit(e){return null},resetAfterCommit(e){e.onCommit();},preparePortalMount(){},appendChild(e,t){if(t.type==="raw-text"){let n=t;n.parent=e,e.rawTextChildren.push(n),e.text=e.rawTextChildren.map(r=>r.text).join("");}else Ct(e,t);},appendChildToContainer(e,t){if(t.type==="raw-text")return;let n=t;n.parent=null,e.children.push(n);},insertBefore(e,t,n){t.type==="raw-text"||n.type==="raw-text"||ln(e,t,n);},insertInContainerBefore(e,t,n){if(t.type==="raw-text"||n.type==="raw-text")return;let r=t,o=n,s=e.children.indexOf(o);s!==-1?e.children.splice(s,0,r):e.children.push(r);},removeChild(e,t){if(t.type==="raw-text"){let n=t;n.parent=null;let r=e.rawTextChildren.indexOf(n);r!==-1&&e.rawTextChildren.splice(r,1),e.text=e.rawTextChildren.map(o=>o.text).join("")||null;return}sn(e,t);},removeChildFromContainer(e,t){if(t.type==="raw-text")return;let n=t,r=e.children.indexOf(n);r!==-1&&e.children.splice(r,1);},commitTextUpdate(e,t,n){e.text=n,e.parent&&(e.parent.text=e.parent.rawTextChildren.map(r=>r.text).join(""));},commitUpdate(e,t,n,r,o){e.props=r,e.style=r.style??{},r.focusable&&!e.focusId&&(e.focusId=`focus-${Math.random().toString(36).slice(2,9)}`);},hideInstance(e){e.hidden=true;},hideTextInstance(e){e.text="";},unhideInstance(e,t){e.hidden=false;},unhideTextInstance(e,t){e.text=t;},clearContainer(e){e.children.length=0;},resetTextContent(e){e.text=null;}};var Be=Sr(cn);Be.injectIntoDevTools({bundleType:process.env.NODE_ENV==="production"?0:1,version:"0.1.0",rendererPackageName:"glyph"});var et=class{stdout;stdin;wasRaw=false;cleanedUp=false;dataHandlers=new Set;stdinAttached=false;oscState="normal";oscAccum="";escFlushTimer=null;palette=new Map;paletteResolve=null;constructor(t=process.stdout,n=process.stdin){this.stdout=t,this.stdin=n;}get columns(){return this.stdout.columns||80}get rows(){return this.stdout.rows||24}enterRawMode(){this.stdin.isTTY&&(this.wasRaw=this.stdin.isRaw,this.stdin.setRawMode(true),this.stdin.resume(),this.stdin.setEncoding("utf-8"));}exitRawMode(){this.stdin.isTTY&&!this.wasRaw&&(this.stdin.setRawMode(false),this.stdin.pause());}write(t){this.stdout.write(t);}hideCursor(){this.write("\x1B[?25l");}showCursor(){this.write("\x1B[?25h");}moveCursor(t,n){this.write(`\x1B[${n+1};${t+1}H`);}setCursorColor(t){this.write(`\x1B]12;${t}\x07`);}resetCursorColor(){this.write("\x1B]112\x07");}enterAltScreen(){this.write("\x1B[?1049h");}exitAltScreen(){this.write("\x1B[?1049l");}clearScreen(){this.write("\x1B[2J\x1B[H");}resetStyles(){this.write("\x1B[0m");}enableKittyKeyboard(){this.write("\x1B[>1u");}disableKittyKeyboard(){this.write("\x1B[<u");}setup(){this.enterRawMode(),this.enterAltScreen(),this.enableKittyKeyboard(),this.hideCursor(),this.clearScreen(),this.attachStdinListener(),this.installCleanupHandlers();}cleanup(){this.cleanedUp||(this.cleanedUp=true,this.escFlushTimer!==null&&(clearTimeout(this.escFlushTimer),this.escFlushTimer=null),this.resetStyles(),this.resetCursorColor(),this.disableKittyKeyboard(),this.showCursor(),this.exitAltScreen(),this.exitRawMode());}suspend(){this.escFlushTimer!==null&&(clearTimeout(this.escFlushTimer),this.escFlushTimer=null),this.oscState="normal",this.oscAccum="",this.resetStyles(),this.resetCursorColor(),this.disableKittyKeyboard(),this.showCursor(),this.exitAltScreen(),this.exitRawMode();}resume(){this.enterRawMode(),this.enterAltScreen(),this.enableKittyKeyboard(),this.hideCursor(),this.clearScreen();}attachStdinListener(){this.stdinAttached||(this.stdinAttached=true,this.stdin.on("data",t=>{let n=typeof t=="string"?t:t.toString("utf-8");this.dispatchFiltered(n);}));}onData(t){return this.dataHandlers.add(t),()=>{this.dataHandlers.delete(t);}}dispatchFiltered(t){this.escFlushTimer!==null&&(clearTimeout(this.escFlushTimer),this.escFlushTimer=null);let n=this.filterOsc(t);if(n.length>0)for(let r of this.dataHandlers)r(n);this.oscState==="esc"&&(this.escFlushTimer=setTimeout(()=>{this.escFlushTimer=null,this.oscState="normal";for(let r of this.dataHandlers)r("\x1B");},50));}filterOsc(t){let n="";for(let r=0;r<t.length;r++){let o=t[r],s=t.charCodeAt(r);switch(this.oscState){case "normal":s===27?this.oscState="esc":n+=o;break;case "esc":o==="]"?(this.oscState="osc",this.oscAccum=""):(n+="\x1B"+o,this.oscState="normal");break;case "osc":s===7?(this.handleOscResponse(this.oscAccum),this.oscAccum="",this.oscState="normal"):s===27?this.oscState="osc_esc":this.oscAccum+=o;break;case "osc_esc":o==="\\"?(this.handleOscResponse(this.oscAccum),this.oscAccum="",this.oscState="normal"):(this.oscAccum+="\x1B"+o,this.oscState="osc");break}}return n}handleOscResponse(t){let n=t.match(/^4;(\d+);rgb:([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)/);if(n){let r=parseInt(n[1],10),o=parseInt(n[2].substring(0,2),16),s=parseInt(n[3].substring(0,2),16),i=parseInt(n[4].substring(0,2),16);this.palette.set(r,[o,s,i]),this.palette.size>=16&&this.paletteResolve&&(this.paletteResolve(),this.paletteResolve=null);}}queryPalette(){return new Promise(t=>{let n=()=>t(this.palette),r=setTimeout(n,200);this.paletteResolve=()=>{clearTimeout(r),n();};let o="";for(let s=0;s<16;s++)o+=`\x1B]4;${s};?\x07`;this.write(o);})}onResize(t){return this.stdout.on("resize",t),()=>{this.stdout.off("resize",t);}}installCleanupHandlers(){let t=()=>this.cleanup();process.on("exit",t);let n=r=>{t(),process.kill(process.pid,r);};process.once("SIGINT",()=>n("SIGINT")),process.once("SIGTERM",()=>n("SIGTERM")),process.on("uncaughtException",r=>{t(),console.error(r),process.exit(1);}),process.on("unhandledRejection",r=>{t(),console.error(r),process.exit(1);});}};function an(e){switch(e){case 9:return "tab";case 13:return "return";case 27:return "escape";case 32:return "space";case 127:return "backspace";case 57358:return "capslock";case 57359:return "scrolllock";case 57360:return "numlock";case 57361:return "printscreen";case 57362:return "pause";case 57363:return "menu";case 57364:return "f13";case 57365:return "f14";case 57366:return "f15";case 57367:return "f16";case 57368:return "f17";case 57369:return "f18";case 57370:return "f19";case 57371:return "f20";case 57372:return "f21";case 57373:return "f22";case 57374:return "f23";case 57375:return "f24";case 57376:return "f25";case 57399:return "kp0";case 57400:return "kp1";case 57401:return "kp2";case 57402:return "kp3";case 57403:return "kp4";case 57404:return "kp5";case 57405:return "kp6";case 57406:return "kp7";case 57407:return "kp8";case 57408:return "kp9";case 57409:return "kpdecimal";case 57410:return "kpdivide";case 57411:return "kpmultiply";case 57412:return "kpminus";case 57413:return "kpplus";case 57414:return "kpenter";case 57415:return "kpequal";case 57416:return "kpleft";case 57417:return "kpright";case 57418:return "kpup";case 57419:return "kpdown";case 57420:return "kppageup";case 57421:return "kppagedown";case 57422:return "kphome";case 57423:return "kpend";case 57424:return "kpinsert";case 57425:return "kpdelete";case 57428:return "mediaplaypause";case 57429:return "mediastop";case 57430:return "mediaprev";case 57431:return "medianext";case 57432:return "mediarewind";case 57433:return "mediafastforward";case 57434:return "mediamute";case 57435:return "volumedown";case 57436:return "volumeup";default:return e>=32&&e<=126?String.fromCharCode(e).toLowerCase():"unknown"}}function wr(e){switch(e.split(";")[0]){case "1":return "home";case "2":return "insert";case "3":return "delete";case "4":return "end";case "5":return "pageup";case "6":return "pagedown";case "7":return "home";case "8":return "end";case "11":return "f1";case "12":return "f2";case "13":return "f3";case "14":return "f4";case "15":return "f5";case "17":return "f6";case "18":return "f7";case "19":return "f8";case "20":return "f9";case "21":return "f10";case "23":return "f11";case "24":return "f12";case "25":return "f13";case "26":return "f14";case "28":return "f15";case "29":return "f16";case "31":return "f17";case "32":return "f18";case "33":return "f19";case "34":return "f20";default:return "unknown"}}function tt(e,t){let n=t-1;n&1&&(e.shift=true),n&2&&(e.alt=true),n&4&&(e.ctrl=true),n&8&&(e.meta=true);}function un(e){let t=[],n=0;for(;n<e.length;){let r=e[n],o=e.charCodeAt(n);if(r==="\x1B"){if(e[n+1]==="["){let s=vr(e,n);if(s){t.push(s.key),n=s.end;continue}}if(e[n+1]==="O"){let s=Ir(e,n);if(s){t.push(s.key),n=s.end;continue}}if(n+1<e.length&&e.charCodeAt(n+1)>=32){let s=e[n+1];t.push({name:s===" "?"space":s.toLowerCase(),sequence:e.substring(n,n+2),alt:true}),n+=2;continue}t.push({name:"escape",sequence:"\x1B"}),n++;continue}if(o>=1&&o<=26){let s=String.fromCharCode(o+96);o===13?t.push({name:"return",sequence:"\r"}):o===9?t.push({name:"tab",sequence:" "}):o===8?t.push({name:"backspace",sequence:"\b"}):t.push({name:s,sequence:r,ctrl:true}),n++;continue}if(o===127){t.push({name:"backspace",sequence:r}),n++;continue}t.push({name:r===" "?"space":r,sequence:r}),n++;}return t}function Ir(e,t){if(t+2>=e.length)return null;let n=e[t+2],r=e.substring(t,t+3),o;switch(n){case "A":o={name:"up",sequence:r};break;case "B":o={name:"down",sequence:r};break;case "C":o={name:"right",sequence:r};break;case "D":o={name:"left",sequence:r};break;case "H":o={name:"home",sequence:r};break;case "F":o={name:"end",sequence:r};break;case "P":o={name:"f1",sequence:r};break;case "Q":o={name:"f2",sequence:r};break;case "R":o={name:"f3",sequence:r};break;case "S":o={name:"f4",sequence:r};break;case "j":o={name:"kpmultiply",sequence:r};break;case "k":o={name:"kpplus",sequence:r};break;case "l":o={name:"kpcomma",sequence:r};break;case "m":o={name:"kpminus",sequence:r};break;case "n":o={name:"kpdecimal",sequence:r};break;case "o":o={name:"kpdivide",sequence:r};break;case "p":o={name:"kp0",sequence:r};break;case "q":o={name:"kp1",sequence:r};break;case "r":o={name:"kp2",sequence:r};break;case "s":o={name:"kp3",sequence:r};break;case "t":o={name:"kp4",sequence:r};break;case "u":o={name:"kp5",sequence:r};break;case "v":o={name:"kp6",sequence:r};break;case "w":o={name:"kp7",sequence:r};break;case "x":o={name:"kp8",sequence:r};break;case "y":o={name:"kp9",sequence:r};break;case "M":o={name:"kpenter",sequence:r};break;default:return null}return {key:o,end:t+3}}function vr(e,t){let n=t+2,r="";for(;n<e.length;){let c=e.charCodeAt(n);if(c>=48&&c<=63)r+=e[n],n++;else break}if(n>=e.length)return null;let o=e[n],s=e.substring(t,n+1);n++;let i;switch(o){case "A":i={name:"up",sequence:s};break;case "B":i={name:"down",sequence:s};break;case "C":i={name:"right",sequence:s};break;case "D":i={name:"left",sequence:s};break;case "H":i={name:"home",sequence:s};break;case "F":i={name:"end",sequence:s};break;case "Z":i={name:"tab",sequence:s,shift:true};break;case "P":i={name:"f1",sequence:s};break;case "Q":i={name:"f2",sequence:s};break;case "R":i={name:"f3",sequence:s};break;case "S":i={name:"f4",sequence:s};break;case "~":{if(r.startsWith("27;")){let c=r.split(";"),l=parseInt(c[1]??"1",10),u=parseInt(c[2]??"0",10);i={name:an(u),sequence:s},tt(i,l);break}if(i={name:wr(r),sequence:s},r.includes(";")){let c=r.split(";"),l=parseInt(c[1]??"1",10);tt(i,l);}break}case "u":{let c=r.split(";"),l=parseInt(c[0]??"0",10),u=parseInt(c[1]??"1",10);i={name:an(l),sequence:s},tt(i,u);break}case "I":i={name:"focus",sequence:s};break;case "O":i={name:"blur",sequence:s};break;default:i={name:"unknown",sequence:s};}if(r.includes(";")&&!["~","u"].includes(o)){let c=r.split(";"),l=parseInt(c[c.length-1]??"1",10);l>=1&&l<=16&&tt(i,l);}return {key:i,end:n}}var Rr={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",blackBright:"\x1B[90m",redBright:"\x1B[91m",greenBright:"\x1B[92m",yellowBright:"\x1B[93m",blueBright:"\x1B[94m",magentaBright:"\x1B[95m",cyanBright:"\x1B[96m",whiteBright:"\x1B[97m"},kr={black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m",blackBright:"\x1B[100m",redBright:"\x1B[101m",greenBright:"\x1B[102m",yellowBright:"\x1B[103m",blueBright:"\x1B[104m",magentaBright:"\x1B[105m",cyanBright:"\x1B[106m",whiteBright:"\x1B[107m"};function It(e){let t=e.replace("#",""),n=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),o=parseInt(t.substring(4,6),16);return {r:n,g:r,b:o}}function fn(e){if(typeof e=="string"){if(e.startsWith("#")){let{r:o,g:s,b:i}=It(e);return `\x1B[38;2;${o};${s};${i}m`}return Rr[e]??"\x1B[39m"}if(typeof e=="number")return `\x1B[38;5;${e}m`;let{r:t,g:n,b:r}=e;return `\x1B[38;2;${t};${n};${r}m`}function pn(e){if(typeof e=="string"){if(e.startsWith("#")){let{r:o,g:s,b:i}=It(e);return `\x1B[48;2;${o};${s};${i}m`}return kr[e]??"\x1B[49m"}if(typeof e=="number")return `\x1B[48;5;${e}m`;let{r:t,g:n,b:r}=e;return `\x1B[48;2;${t};${n};${r}m`}var dn={black:[0,0,0],red:[170,0,0],green:[0,170,0],yellow:[170,170,0],blue:[0,0,170],magenta:[170,0,170],cyan:[0,170,170],white:[170,170,170],blackBright:[85,85,85],redBright:[255,85,85],greenBright:[85,255,85],yellowBright:[255,255,85],blueBright:[85,85,255],magentaBright:[255,85,255],cyanBright:[85,255,255],whiteBright:[255,255,255]},mn=["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"],Fe=null;function hn(e){e.size>0&&(Fe=e);}function Pr(e){if(Fe){let t=mn.indexOf(e);if(t!==-1){let n=Fe.get(t);if(n)return n}}return dn[e]??null}function Tr(e){if(typeof e=="string"){if(e.startsWith("#")){let t=It(e);return [t.r,t.g,t.b]}return Pr(e)}if(typeof e=="number"){if(e<16){if(Fe){let s=Fe.get(e);if(s)return s}return dn[mn[e]]}if(e>=232){let s=(e-232)*10+8;return [s,s,s]}let t=e-16,n=t%6*51,r=Math.floor(t/6)%6*51;return [Math.floor(t/36)*51,r,n]}return [e.r,e.g,e.b]}function nt(e){let t=Tr(e);if(!t)return false;let[n,r,o]=t.map(i=>{let c=i/255;return c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4)});return .2126*n+.7152*r+.0722*o>.4}function vt(e,t){return e===t?true:e==null||t==null?false:typeof e=="object"&&typeof t=="object"?e.r===t.r&&e.g===t.g&&e.b===t.b:false}function gn(e){return e&&nt(e)?"black":"white"}var Ge=class e{width;height;cells;constructor(t,n){this.width=t,this.height=n,this.cells=new Array(t*n),this.clear();}clear(){for(let t=0;t<this.cells.length;t++)this.cells[t]={ch:" "};}resize(t,n){this.width=t,this.height=n,this.cells=new Array(t*n),this.clear();}get(t,n){if(!(t<0||t>=this.width||n<0||n>=this.height))return this.cells[n*this.width+t]}set(t,n,r){t<0||t>=this.width||n<0||n>=this.height||(this.cells[n*this.width+t]=r);}setChar(t,n,r,o,s,i,c,l,u){t<0||t>=this.width||n<0||n>=this.height||(this.cells[n*this.width+t]={ch:r,fg:o,bg:s,bold:i,dim:c,italic:l,underline:u});}fillRect(t,n,r,o,s,i,c){for(let l=n;l<n+o;l++)for(let u=t;u<t+r;u++)this.setChar(u,l,s,i,c);}clone(){let t=new e(this.width,this.height);for(let n=0;n<this.cells.length;n++){let r=this.cells[n];t.cells[n]={...r};}return t}cellsEqual(t,n){return t.ch===n.ch&&vt(t.fg,n.fg)&&vt(t.bg,n.bg)&&(t.bold??false)===(n.bold??false)&&(t.dim??false)===(n.dim??false)&&(t.italic??false)===(n.italic??false)&&(t.underline??false)===(n.underline??false)}};var Er={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|"}};function yn(e){return e==="none"?null:Er[e]}function xn(e,t,n,r){if(e.length===0)return {width:0,height:0};let o=e.split(`
2
- `);if(n===MeasureMode.Undefined||r==="none"){let l=0;for(let u of o){let f=fe(u);f>l&&(l=f);}return {width:l,height:o.length}}let s=Math.max(1,Math.floor(t)),i=ae(o,s,r),c=0;for(let l of i){let u=fe(l);u>c&&(c=u);}return {width:c,height:i.length}}function ae(e,t,n){let r=[];for(let o of e){if(fe(o)<=t){r.push(o);continue}if(n==="truncate"){r.push(bn(o,t));continue}if(n==="ellipsis"){r.push(Br(o,t));continue}let i=Fr(o,t);r.push(...i);}return r}function bn(e,t){let n="",r=0;for(let o of e){let s=fe(o);if(r+s>t)break;n+=o,r+=s;}return n}function Br(e,t){if(t<=1)return t===1?"\u2026":"";let n=bn(e,t-1);return fe(n)<fe(e)?n+"\u2026":e}function Fr(e,t){let n=[],r="",o=0,s="",i=0;for(let c=0;c<=e.length;c++){let l=e[c],u=c===e.length,f=l===" ";if(u||f){if(s.length>0){if(o+i<=t)r+=s,o+=i;else if(i<=t)r.length>0&&n.push(r),r=s,o=i;else for(let h of s){let b=fe(h);o+b>t&&r.length>0&&(n.push(r),r="",o=0),r+=h,o+=b;}s="",i=0;}f&&(o+1<=t?(r+=" ",o+=1):(r.length>0&&n.push(r),r=" ",o=1));}else l&&(s+=l,i+=fe(l));}return r.length>0&&n.push(r),n.length>0?n:[""]}var Cn={30:"black",31:"red",32:"green",33:"yellow",34:"blue",35:"magenta",36:"cyan",37:"white",90:"blackBright",91:"redBright",92:"greenBright",93:"yellowBright",94:"blueBright",95:"magentaBright",96:"cyanBright",97:"whiteBright"},Sn={40:"black",41:"red",42:"green",43:"yellow",44:"blue",45:"magenta",46:"cyan",47:"white",100:"blackBright",101:"redBright",102:"greenBright",103:"yellowBright",104:"blueBright",105:"magentaBright",106:"cyanBright",107:"whiteBright"};function Gr(e,t){let n=0;for(;n<e.length;){let r=e[n];switch(r){case 0:t.fg=void 0,t.bg=void 0,t.bold=false,t.dim=false,t.italic=false,t.underline=false;break;case 1:t.bold=true;break;case 2:t.dim=true;break;case 3:t.italic=true;break;case 4:t.underline=true;break;case 22:t.bold=false,t.dim=false;break;case 23:t.italic=false;break;case 24:t.underline=false;break;case 39:t.fg=void 0;break;case 49:t.bg=void 0;break;case 38:if(e[n+1]===5&&e[n+2]!==void 0)t.fg=e[n+2],n+=2;else if(e[n+1]===2&&e[n+4]!==void 0){let o=e[n+2]??0,s=e[n+3]??0,i=e[n+4]??0;t.fg=`#${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`,n+=4;}break;case 48:if(e[n+1]===5&&e[n+2]!==void 0)t.bg=e[n+2],n+=2;else if(e[n+1]===2&&e[n+4]!==void 0){let o=e[n+2]??0,s=e[n+3]??0,i=e[n+4]??0;t.bg=`#${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`,n+=4;}break;default:Cn[r]?t.fg=Cn[r]:Sn[r]&&(t.bg=Sn[r]);break}n++;}}function Rt(e){let t=[],n={},r="",o=/\x1b\[([0-9;]*)m/g,s=0,i;for(;(i=o.exec(e))!==null;){let l=e.slice(s,i.index);l&&(r+=l),r&&(t.push({text:r,style:{...n}}),r="");let f=(i[1]||"0").split(";").map(h=>parseInt(h,10)||0);Gr(f,n),s=o.lastIndex;}let c=e.slice(s);return c&&(r+=c),r&&t.push({text:r,style:{...n}}),t}function kt(e){return e.replace(/\x1b\[[0-9;]*m/g,"")}function wn(e,t,n={}){t.clear();let r={},o=[],s={x:0,y:0,width:t.width,height:t.height};for(let i of e)i.hidden||In(i,s,i.style.zIndex??0,o);o.sort((i,c)=>i.zIndex-c.zIndex);for(let i of o){let c=Mr(i.node,t,i.clip,n);c?.cursorPosition&&(r.cursorPosition=c.cursorPosition);}return r}function In(e,t,n,r){if(e.hidden)return;let o=e.style.zIndex??n,s=e.style.clip?Lr(t,{x:e.layout.innerX,y:e.layout.innerY,width:e.layout.innerWidth,height:e.layout.innerHeight}):t;if(r.push({node:e,clip:t,zIndex:o}),e.type!=="text"&&e.type!=="input")for(let i of e.children)In(i,s,o,r);}function Lr(e,t){let n=Math.max(e.x,t.x),r=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return {x:n,y:r,width:Math.max(0,o-n),height:Math.max(0,s-r)}}function rt(e,t,n){return e>=n.x&&e<n.x+n.width&&t>=n.y&&t<n.y+n.height}function Mr(e,t,n,r={}){let{x:o,y:s,width:i,height:c,innerX:l,innerY:u,innerWidth:f,innerHeight:h}=e.layout,b=e.style;if(i<=0||c<=0)return;let v=Ze(e).bg;if(b.bg)for(let m=s;m<s+c;m++)for(let x=o;x<o+i;x++)rt(x,m,n)&&t.setChar(x,m," ",void 0,b.bg);let d=b.border?yn(b.border):null;if(d&&i>=2&&c>=2){let m=b.borderColor,x=v;ue(t,n,o,s,d.topLeft,m,x);for(let P=o+1;P<o+i-1;P++)ue(t,n,P,s,d.horizontal,m,x);ue(t,n,o+i-1,s,d.topRight,m,x),ue(t,n,o,s+c-1,d.bottomLeft,m,x);for(let P=o+1;P<o+i-1;P++)ue(t,n,P,s+c-1,d.horizontal,m,x);ue(t,n,o+i-1,s+c-1,d.bottomRight,m,x);for(let P=s+1;P<s+c-1;P++)ue(t,n,o,P,d.vertical,m,x),ue(t,n,o+i-1,P,d.vertical,m,x);}if(e.type==="text")jr(e,t,n);else if(e.type==="input")return $r(e,t,n,r)}function ue(e,t,n,r,o,s,i,c,l,u,f){rt(n,r,t)&&e.setChar(n,r,o,s,i,c,l,u,f);}function vn(e,t){if(e!==void 0)return e;if(t!==void 0)return nt(t)?"black":"white"}function jr(e,t,n){let{innerX:r,innerY:o,innerWidth:s,innerHeight:i}=e.layout,c=Ze(e),l=St(e);if(!l)return;let u=vn(c.color,c.bg),f=e.style.wrap??"wrap",h=e.style.textAlign??"left",b=l.split(`
3
- `),I=b.map(d=>kt(d)),v=ae(I,s,f);for(let d=0;d<v.length&&d<i;d++){let m=0,x=0;for(let g=0;g<I.length;g++){let M=ae([I[g]],s,f).length;if(d<x+M){m=g;break}x+=M;}let P=v[d],R=fe(P),A=0;h==="center"?A=Math.max(0,Math.floor((s-R)/2)):h==="right"&&(A=Math.max(0,s-R));let D=b[m],B=Rt(D),T=d-x,N=ae([I[m]],s,f),L=0;for(let g=0;g<T;g++)L+=N[g].length;let C=L+P.length,y=0,S=0;for(let g of B)for(let M of g.text){if(S>=L&&S<C){if(fe(M)>0){let j=g.style.fg??u,H=g.style.bg??c.bg,q=g.style.bold??c.bold,O=g.style.dim??c.dim,W=g.style.italic??c.italic,z=g.style.underline??c.underline;ue(t,n,r+A+y,o+d,M,j,H,q,O,W,z);}y+=fe(M);}S++;}}}function $r(e,t,n,r={}){let{cursorInfo:o,useNativeCursor:s}=r,{innerX:i,innerY:c,innerWidth:l,innerHeight:u}=e.layout;if(l<=0||u<=0)return;let f=e.props.value??e.props.defaultValue??"",h=e.props.placeholder??"",b=f||h,I=!f&&!!h,v=e.props.multiline??false,d=Ze(e),m=vn(d.color,d.bg),x=d.bg?nt(d.bg)?"blackBright":"whiteBright":"blackBright",P=I?x:m??d.color??e.style.color,R=I?x:P,A=I?true:d.dim,D=o&&o.nodeId===e.focusId,B;if(v&&!I){let T=e.style.wrap??"wrap",N=b.split(`
4
- `),L=ae(N,l,T),C=0,y=0;if(D){let g=o.position,M=0,_=g,j=0;for(let z=0;z<N.length;z++){let $=N[z].length;if(g<=j+$){M=z,_=g-j;break}j+=$+1;}let H=0;for(let z=0;z<M;z++)H+=ae([N[z]],l,T).length;let q=ae([N[M]],l,T),O=0,W=0;for(let z=0;z<q.length;z++){let $=q[z];if(_<=O+$.length){W=z;break}O+=$.length;}C=H+W,y=fe(N[M].slice(O,O+(_-O)));}let S=Math.max(0,C-u+1);for(let g=0;g<u;g++){let M=S+g;if(M>=L.length)break;let _=L[M],j=0;for(let H of _){if(j>=l)break;let q=fe(H);q>0&&ue(t,n,i+j,c+g,H,R,d.bg,d.bold,A,d.italic,d.underline),j+=q;}}if(D){let g=C-S;if(g>=0&&g<u){let M=Math.min(y,l-1),_=i+M,j=c+g;if(rt(_,j,n)&&_<i+l)if(s)B={cursorPosition:{x:_,y:j,bg:d.bg}};else {let H=t.get(_,j),q=H?.ch&&H.ch!==" "?H.ch:"\u258C",O=d.bg??"black",W=d.color??"white";t.setChar(_,j,q,O,W,H?.bold,H?.dim,H?.italic,false);}}}}else {let T=0;for(let N of b){if(T>=l)break;let L=fe(N);L>0&&ue(t,n,i+T,c,N,R,d.bg,d.bold,A,d.italic,d.underline),T+=L;}if(D){let N=Math.min(o.position,l-1),L=i+N;if(rt(L,c,n)&&L<i+l)if(s)B={cursorPosition:{x:L,y:c,bg:d.bg}};else {let C=t.get(L,c),y=C?.ch&&C.ch!==" "?C.ch:"\u258C",S=d.bg??"black",g=d.color??"white";t.setChar(L,c,y,S,g,C?.bold,C?.dim,C?.italic,false);}}}return B}var Ar="\x1B",ge=`${Ar}[`;function Hr(e,t){return `${ge}${t+1};${e+1}H`}function Vr(e){let t=`${ge}0m`;return e.bold&&(t+=`${ge}1m`),e.dim&&(t+=`${ge}2m`),e.italic&&(t+=`${ge}3m`),e.underline&&(t+=`${ge}4m`),e.fg!=null&&(t+=fn(e.fg)),e.bg!=null&&(t+=pn(e.bg)),t}function Rn(e,t,n){let r="",o=-1,s=-1,i="";for(let c=0;c<t.height;c++)for(let l=0;l<t.width;l++){let u=t.get(l,c);if(!n){let h=e.get(l,c);if(h&&t.cellsEqual(u,h))continue}(s!==c||o!==l)&&(r+=Hr(l,c));let f=Vr(u);f!==i&&(r+=f,i=f),r+=u.ch,o=l+1,s=c;}return r.length>0&&(r+=`${ge}0m`),r}var Wr={row:FlexDirection.Row,column:FlexDirection.Column},_r={"flex-start":Justify.FlexStart,center:Justify.Center,"flex-end":Justify.FlexEnd,"space-between":Justify.SpaceBetween,"space-around":Justify.SpaceAround},qr={"flex-start":Align.FlexStart,center:Align.Center,"flex-end":Align.FlexEnd,stretch:Align.Stretch};function Tn(e,t,n){n!==void 0&&(typeof n=="string"&&n.endsWith("%"),t(n));}function pe(e,t,n){n!==void 0&&(typeof n=="string"&&n.endsWith("%")?e.setPositionPercent(t,parseFloat(n)):e.setPosition(t,n));}function zr(e,t,n){Tn(e,o=>e.setWidth(o),t.width),Tn(e,o=>e.setHeight(o),t.height),t.minWidth!==void 0&&e.setMinWidth(t.minWidth),t.minHeight!==void 0&&e.setMinHeight(t.minHeight),t.maxWidth!==void 0&&e.setMaxWidth(t.maxWidth),t.maxHeight!==void 0&&e.setMaxHeight(t.maxHeight),t.padding!==void 0&&e.setPadding(Edge.All,t.padding),t.paddingX!==void 0&&e.setPadding(Edge.Horizontal,t.paddingX),t.paddingY!==void 0&&e.setPadding(Edge.Vertical,t.paddingY),t.paddingTop!==void 0&&e.setPadding(Edge.Top,t.paddingTop),t.paddingRight!==void 0&&e.setPadding(Edge.Right,t.paddingRight),t.paddingBottom!==void 0&&e.setPadding(Edge.Bottom,t.paddingBottom),t.paddingLeft!==void 0&&e.setPadding(Edge.Left,t.paddingLeft);let r=t.border!=null&&t.border!=="none";e.setBorder(Edge.All,r?1:0),t.flexDirection&&e.setFlexDirection(Wr[t.flexDirection]??FlexDirection.Column),t.flexWrap&&e.setFlexWrap(t.flexWrap==="wrap"?Wrap.Wrap:Wrap.NoWrap),t.justifyContent&&e.setJustifyContent(_r[t.justifyContent]??Justify.FlexStart),t.alignItems&&e.setAlignItems(qr[t.alignItems]??Align.Stretch),t.flexGrow!==void 0&&e.setFlexGrow(t.flexGrow),t.flexShrink!==void 0&&e.setFlexShrink(t.flexShrink),t.gap!==void 0&&e.setGap(Gutter.All,t.gap),t.position==="absolute"?e.setPositionType(PositionType.Absolute):e.setPositionType(PositionType.Relative),t.inset!==void 0&&(pe(e,Edge.Top,t.inset),pe(e,Edge.Right,t.inset),pe(e,Edge.Bottom,t.inset),pe(e,Edge.Left,t.inset)),pe(e,Edge.Top,t.top),pe(e,Edge.Right,t.right),pe(e,Edge.Bottom,t.bottom),pe(e,Edge.Left,t.left),t.clip&&e.setOverflow(Overflow.Hidden);}function Nn(e){let t=En.Node.create();if(e.yogaNode=t,zr(t,e.style,e.type),e.type==="text"||e.type==="input")t.setMeasureFunc((n,r,o,s)=>{let i;return e.type==="input"?(i=e.props.value??e.props.defaultValue??e.props.placeholder??"",i.length===0&&(i=" ")):i=Bn(e),xn(i,n,r,e.style.wrap??"wrap")});else for(let n=0;n<e.children.length;n++){let r=e.children[n];r.hidden||(Nn(r),t.insertChild(r.yogaNode,t.getChildCount()));}}function Bn(e){if(e.text!=null)return e.text;let t="";for(let n of e.children)t+=Bn(n);if(t===""&&e.props.children!=null){if(typeof e.props.children=="string")return e.props.children;if(typeof e.props.children=="number")return String(e.props.children)}return t}function Fn(e,t,n){let r=e.yogaNode,o=r.getComputedLayout(),s=t+o.left,i=n+o.top,c=o.width,l=o.height,u=e.style.border&&e.style.border!=="none"?1:0,f=r.getComputedPadding(Edge.Top),h=r.getComputedPadding(Edge.Right),b=r.getComputedPadding(Edge.Bottom),I=r.getComputedPadding(Edge.Left),v=s+u+I,d=i+u+f,m=Math.max(0,c-u*2-I-h),x=Math.max(0,l-u*2-f-b),P=e.layout;(!P||P.x!==s||P.y!==i||P.width!==c||P.height!==l||P.innerX!==v||P.innerY!==d||P.innerWidth!==m||P.innerHeight!==x)&&(e.layout={x:s,y:i,width:c,height:l,innerX:v,innerY:d,innerWidth:m,innerHeight:x});for(let R of e.children)R.hidden||!R.yogaNode||Fn(R,s,i);}function Gn(e,t,n){let r=En.Node.create();r.setWidth(t),r.setHeight(n),r.setFlexDirection(FlexDirection.Column);for(let o of e)o.hidden||(Nn(o),r.insertChild(o.yogaNode,r.getChildCount()));r.calculateLayout(t,n,Direction.LTR);for(let o of e)o.hidden||!o.yogaNode||Fn(o,0,0);r.freeRecursive(),Ln(e);}function Ln(e){for(let t of e)t.yogaNode=null,Ln(t.children);}var J=createContext(null),X=createContext(null),ie=createContext(null),Re=createContext(null),st=createContext(null),it=createContext(null);var ne=null;function Me(e=false){if(ne)return ne;let t=process.env.TERM||"",n=process.env.TERM_PROGRAM||"",r=process.env.KITTY_WINDOW_ID,o=process.env.GHOSTTY_RESOURCES_DIR,s=process.env.WEZTERM_PANE,i=process.env.LC_TERMINAL||"",c=process.env.KONSOLE_VERSION;return r||t==="xterm-kitty"?(ne={name:"kitty",supportsKittyGraphics:true,supportsIterm2Images:false,supportsSixel:false},ne):o||t.includes("ghostty")?(ne={name:"ghostty",supportsKittyGraphics:true,supportsIterm2Images:false,supportsSixel:false},ne):s||n==="WezTerm"?(ne={name:"wezterm",supportsKittyGraphics:true,supportsIterm2Images:true,supportsSixel:true},ne):n==="iTerm.app"||i==="iTerm2"?(ne={name:"iterm2",supportsKittyGraphics:false,supportsIterm2Images:true,supportsSixel:false},ne):c?(ne={name:"konsole",supportsKittyGraphics:false,supportsIterm2Images:false,supportsSixel:true},ne):n==="vscode"?(ne={name:"vscode",supportsKittyGraphics:false,supportsIterm2Images:false,supportsSixel:false},ne):(ne={name:"unknown",supportsKittyGraphics:false,supportsIterm2Images:false,supportsSixel:false},ne)}function Pt(){let e=Me();return e.supportsKittyGraphics||e.supportsIterm2Images||e.supportsSixel}var re="\x1B";function lt(){return !!process.env.TMUX}function Tt(e){if(!lt())return e;let t=e.replace(/\x1b/g,"\x1B\x1B");return `${re}Ptmux;${t}${re}\\`}function Mn(e){let t=Me();return t.supportsKittyGraphics?Xr(e):t.supportsIterm2Images?Ur(e):null}function jn(e){if(Me().supportsKittyGraphics){let n;return n=`${re}_Ga=d,d=a${re}\\`,Tt(n)}return null}function Xr(e){let{data:t,width:n,height:r,x:o,y:s}=e,c=t.toString("base64"),l=`${re}[${s+1};${o+1}H`,u=Jr(t),f="a=T,f=100";u&&(f+=`,s=${u.width},v=${u.height}`),f+=`,c=${n},r=${r}`;let h=4096,b=[l];lt()&&b.unshift(`${re}[?25l`);for(let I=0;I<c.length;I+=h){let v=c.slice(I,I+h),m=I+h>=c.length?"m=0":"m=1",x;I===0?x=`${re}_G${f},${m},q=2;${v}${re}\\`:x=`${re}_G${m};${v}${re}\\`,b.push(Tt(x));}return lt()&&b.push(`${re}[?25h`),b.join("")}function Ur(e){let{data:t,width:n,height:r,x:o,y:s}=e,i=t.toString("base64"),c=`${re}[${s+1};${o+1}H`,l=[`width=${n}`,`height=${r}`,"preserveAspectRatio=1","inline=1"].join(";"),u=`${re}]1337;File=${l}:${i}\x07`;return c+(lt()?Tt(u):u)}function Jr(e){if(e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e.length>=24){let t=e.readUInt32BE(16),n=e.readUInt32BE(20);return {width:t,height:n}}if(e[0]===255&&e[1]===216&&e[2]===255){let t=2;for(;t<e.length-8;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n!==void 0&&(n>=192&&n<=195||n>=197&&n<=199||n>=201&&n<=203||n>=205&&n<=207)){let o=e.readUInt16BE(t+5);return {width:e.readUInt16BE(t+7),height:o}}let r=e.readUInt16BE(t+2);t+=2+r;}}if(e[0]===71&&e[1]===73&&e[2]===70&&e.length>=10){let t=e.readUInt16LE(6),n=e.readUInt16LE(8);return {width:t,height:n}}return null}function Yr(e,t={}){let n=t.stdout??process.stdout,r=t.stdin??process.stdin,o=t.debug??false,s=t.useNativeCursor??true,i=new et(n,r);i.setup();let c=false;i.queryPalette().then(a=>{hn(a),f=true,H();});let l=new Ge(i.columns,i.rows),u=new Ge(i.columns,i.rows),f=true,h=new Set,b=new Set,I=new Map,v={subscribe(a){return h.add(a),()=>h.delete(a)},subscribePriority(a){return b.add(a),()=>b.delete(a)},registerInputHandler(a,w){return I.set(a,w),()=>I.delete(a)}},d=new Map,m=new Map,x={registerImage(a){let w=d.get(a.id);(!w||w.x!==a.x||w.y!==a.y||w.width!==a.width||w.height!==a.height)&&(m.set(a.id,a),H());},unregisterImage(a){d.delete(a),m.delete(a);}};function P(){for(let a of m.values()){let w=Mn({data:a.data,width:a.width,height:a.height,x:a.x,y:a.y,id:a.id});w&&(i.write(w),d.set(a.id,{x:a.x,y:a.y,width:a.width,height:a.height}));}m.clear();}let R=null,A=new Map,D=[],B=new Set,T=[],N=new Set;function L(a){if(R!==a){R=a,H();for(let w of N)w(R);}}function C(){let a=[...D];if(T.length>0){let w=T[T.length-1];a=a.filter(k=>w.has(k));}return a=a.filter(w=>!B.has(w)),a.sort((w,k)=>{let F=A.get(w),p=A.get(k);if(!F||!p)return 0;let G=F.layout,V=p.layout;return G.y!==V.y?G.y-V.y:G.x-V.x}),a}let y={get focusedId(){return R},register(a,w){if(A.set(a,w),D.includes(a)||D.push(a),T.length>0&&T[T.length-1].add(a),R===null){let k=C();k.length>0&&L(k[0]);}return ()=>{A.delete(a);let k=D.indexOf(a);if(k!==-1&&D.splice(k,1),R===a){let F=C();L(F[0]??null);}}},requestFocus(a){L(a);},focusNext(){let a=C();if(a.length===0)return;let k=((R?a.indexOf(R):-1)+1)%a.length;L(a[k]);},focusPrev(){let a=C();if(a.length===0)return;let k=((R?a.indexOf(R):0)-1+a.length)%a.length;L(a[k]);},setSkippable(a,w){if(w){if(B.add(a),R===a){let k=C();k.length>0&&L(k[0]);}}else B.delete(a);},trapIds:null,pushTrap(a){return T.push(a),()=>{let w=T.indexOf(a);w!==-1&&T.splice(w,1);}},onFocusChange(a){return N.add(a),()=>{N.delete(a);}},getRegisteredElements(){let a=[];for(let w of D){if(B.has(w))continue;let k=A.get(w);k&&a.push({id:w,node:k});}return a},getActiveElements(){let a=C(),w=[];for(let k of a){if(B.has(k))continue;let F=A.get(k);F&&w.push({id:k,node:F});}return w}},S=new Map,g={getLayout(a){return a.layout},subscribe(a,w){return S.has(a)||S.set(a,new Set),S.get(a).add(w),()=>{let k=S.get(a);k&&(k.delete(w),k.size===0&&S.delete(a));}}},M={registerNode(){},unregisterNode(){},scheduleRender:H,exit(a){E.exit(a);},get columns(){return i.columns},get rows(){return i.rows}},_={type:"root",children:[],onCommit(){H();}},j=false;function H(){j||(j=true,queueMicrotask(()=>{j=false,q();}));}function q(){let a=i.columns,w=i.rows;(u.width!==a||u.height!==w)&&(u.resize(a,w),l.resize(a,w),f=true),Gn(_.children,a,w),O(_.children);let k;if(R){let G=A.get(R);G?.type==="input"&&(k={nodeId:R,position:G.props.cursorPosition??G.props.value?.length??0});}let F=wn(_.children,u,{cursorInfo:k,useNativeCursor:s}),p=Rn(l,u,f);if(p.length>0&&i.write(p),m.size>0&&c&&(i.hideCursor(),c=false),P(),s)if(F.cursorPosition){let G=gn(F.cursorPosition.bg);i.setCursorColor(G),i.moveCursor(F.cursorPosition.x,F.cursorPosition.y),c||(i.showCursor(),c=true);}else i.hideCursor(),c=false;for(let G=0;G<u.cells.length;G++)l.cells[G]={...u.cells[G]};f=false;}function O(a){for(let w of a){let k=S.get(w);if(k)for(let F of k)F(w.layout);O(w.children);}}let W=i.onData(a=>{let w=un(a);for(let k of w){if(k.ctrl&&k.name==="c"){E.exit();return}if(k.ctrl&&k.name==="z"){i.suspend(),process.kill(0,"SIGSTOP");return}let F=false;for(let p of b)if(p(k)){F=true;break}if(!F&&R){let p=I.get(R);p&&(F=p(k));}if(!F&&k.name==="tab"&&!k.ctrl&&!k.alt){k.shift?y.focusPrev():y.focusNext();continue}if(!F)for(let p of h)p(k);}}),z=i.onResize(()=>{f=true,H();}),$=()=>{i.resume(),f=true,H();};process.on("SIGCONT",$);let K=oe.createElement(Re.Provider,{value:M},oe.createElement(J.Provider,{value:v},oe.createElement(X.Provider,{value:y},oe.createElement(ie.Provider,{value:g},oe.createElement(it.Provider,{value:x},e))))),te=a=>{o&&console.error("Uncaught error:",a);},Y=a=>{o&&console.error("Error caught by boundary:",a);},se=a=>{o&&console.error("Recoverable error:",a);},ee=Be.createContainer(_,0,null,false,null,"",te,Y,se,null);Be.updateContainer(K,ee,null,null);let E={unmount(){Be.updateContainer(null,ee,null,null),W(),z(),process.off("SIGCONT",$);let a=jn();a&&i.write(a),i.cleanup();},exit(a){E.unmount(),process.exit(a??0);}};return E}var eo=forwardRef(function({children:t,style:n,focusable:r},o){return oe.createElement("box",{style:n,focusable:r,ref:o},t)});var ro=forwardRef(function({children:t,style:n,wrap:r},o){let s=r?{...n,wrap:r}:n;return oe.createElement("text",{style:s,ref:o},t)});function $n(e,t,n){if(n<=0)return {visualLine:0,visualCol:t,totalVisualLines:1,lineStartOffset:0,lineLength:e.length};let r=e.split(`
5
- `),o=[],s=0;for(let l of r){let u=ae([l],n,"wrap"),f=0;for(let h of u)o.push({text:h,logicalOffset:s+f}),f+=h.length;s+=l.length+1;}let i=0;for(let l=0;l<o.length;l++){let u=o[l],f=u.text.length,h=l+1<o.length&&o[l+1].logicalOffset!==u.logicalOffset+f,b=f+(h?1:0);if(t<i+f||l===o.length-1)return {visualLine:l,visualCol:Math.min(t-i,f),totalVisualLines:o.length,lineStartOffset:i,lineLength:f};i+=b;}let c=o.length-1;return {visualLine:c,visualCol:o[c].text.length,totalVisualLines:o.length,lineStartOffset:i-o[c].text.length,lineLength:o[c].text.length}}function An(e,t,n,r){if(r<=0)return Math.min(n,e.length);let o=e.split(`
6
- `),s=[],i=0;for(let f of o){let h=ae([f],r,"wrap"),b=0;for(let I of h)s.push({text:I,startOffset:i+b}),b+=I.length;i+=f.length+1;}let c=Math.max(0,Math.min(t,s.length-1)),l=s[c],u=Math.min(n,l.text.length);return l.startOffset+u}function Ae(e,t){let n=e.split(`
7
- `),r=t;for(let s=0;s<n.length;s++){if(r<=n[s].length)return {line:s,col:r,lines:n};r-=n[s].length+1;}let o=n.length-1;return {line:o,col:n[o].length,lines:n}}function He(e,t,n){let r=0;for(let o=0;o<t&&o<e.length;o++)r+=e[o].length+1;return r+Math.min(n,e[t]?.length??0)}function so(e){let{value:t,defaultValue:n="",onChange:r,onKeyPress:o,onBeforeChange:s,placeholder:i,style:c,focusedStyle:l,multiline:u,autoFocus:f,type:h="text"}=e,[b,I]=useState(n),[v,d]=useState(n.length),[m,x]=useState(0),[P,R]=useState(false),[A,D]=useState(false),B=useContext(J),T=useContext(X),N=useContext(ie),L=useRef(null),C=useRef(null),y=t!==void 0,S=y?t:b;useEffect(()=>{if(!N||!L.current)return;let W=N.getLayout(L.current);return x(W.innerWidth),N.subscribe(L.current,z=>{x(z.innerWidth);})},[N]);let g=useRef(S),M=useRef(v),_=useRef(S),j=useRef(v);useEffect(()=>{S!==_.current&&(g.current=S,_.current=S,M.current=S.length,j.current=S.length,d(S.length));},[S]),useEffect(()=>{v!==j.current&&(M.current=v,j.current=v);},[v]);let H=useRef({isControlled:y,onChange:r,onKeyPress:o,onBeforeChange:s,multiline:u??false,innerWidth:m,type:h});H.current={isControlled:y,onChange:r,onKeyPress:o,onBeforeChange:s,multiline:u??false,innerWidth:m,type:h},useEffect(()=>{if(!(!T||!C.current||!L.current))return T.register(C.current,L.current)},[T,A]);let q=useRef(false);useEffect(()=>{if(!A){q.current=false;return}if(f&&!q.current&&T&&C.current){q.current=true;let W=C.current,z=setTimeout(()=>{T.requestFocus(W);},0);return ()=>clearTimeout(z)}},[f,T,A]),useEffect(()=>{if(!T||!C.current)return;let W=C.current;return R(T.focusedId===W),T.onFocusChange(z=>{R(z===W);})},[T,A]),useEffect(()=>{if(!B||!C.current)return;let W=C.current,z=$=>{let{isControlled:K,onChange:te,onKeyPress:Y,onBeforeChange:se,multiline:ee}=H.current;if(Y?.($)===true)return true;let E=g.current,a=M.current;if($.name==="escape")return false;let w=(p,G)=>{let V=p,Q=G;if(se){let U=se(p,E);if(U===false)return;typeof U=="string"&&(V=U,Q=U.length);}g.current=V,M.current=Q,_.current=V,j.current=Q,K||I(V),te?.(V),d(Q);},k=p=>{M.current=p,j.current=p,d(p);};if($.name==="return"){if(ee){let p=E.slice(0,a)+`
8
- `+E.slice(a);return w(p,a+1),true}return false}if($.ctrl){if($.name==="w"){if(a>0){let p=a;for(;p>0&&E[p-1]===" ";)p--;for(;p>0&&E[p-1]!==" "&&(!ee||E[p-1]!==`
9
- `);)p--;let G=E.slice(0,p)+E.slice(a);w(G,p);}return true}if($.name==="a"){if(ee){let{line:p,lines:G}=Ae(E,a);k(He(G,p,0));}else k(0);return true}if($.name==="e"){if(ee){let{line:p,lines:G}=Ae(E,a);k(He(G,p,G[p].length));}else k(E.length);return true}if($.name==="k"){if(ee){let{line:p,lines:G}=Ae(E,a),V=He(G,p,G[p].length);if(a<V){let Q=E.slice(0,a)+E.slice(V);w(Q,a);}}else if(a<E.length){let p=E.slice(0,a);w(p,a);}return true}return false}if($.alt){if($.name==="left"||$.name==="b"){let p=a;for(;p>0&&E[p-1]===" ";)p--;for(;p>0&&E[p-1]!==" "&&E[p-1]!==`
10
- `;)p--;return k(p),true}if($.name==="right"||$.name==="f"){let p=a;for(;p<E.length&&E[p]!==" "&&E[p]!==`
11
- `;)p++;for(;p<E.length&&E[p]===" ";)p++;return k(p),true}if($.name==="backspace"||$.name==="d")if($.name==="backspace"){if(a>0){let p=a;for(;p>0&&E[p-1]===" ";)p--;for(;p>0&&E[p-1]!==" "&&E[p-1]!==`
12
- `;)p--;let G=E.slice(0,p)+E.slice(a);w(G,p);}return true}else {if(a<E.length){let p=a;for(;p<E.length&&E[p]!==" "&&E[p]!==`
13
- `;)p++;for(;p<E.length&&E[p]===" ";)p++;let G=E.slice(0,a)+E.slice(p);w(G,a);}return true}return false}if($.name==="left")return k(Math.max(0,a-1)),true;if($.name==="right")return k(Math.min(E.length,a+1)),true;if($.name==="up"){let{innerWidth:p}=H.current,G=$n(E,a,p);return G.visualLine>0&&k(An(E,G.visualLine-1,G.visualCol,p)),true}if($.name==="down"){let{innerWidth:p}=H.current,G=$n(E,a,p);return G.visualLine<G.totalVisualLines-1&&k(An(E,G.visualLine+1,G.visualCol,p)),true}if($.name==="home"){if(ee){let{line:p,lines:G}=Ae(E,a);k(He(G,p,0));}else k(0);return true}if($.name==="end"){if(ee){let{line:p,lines:G}=Ae(E,a);k(He(G,p,G[p].length));}else k(E.length);return true}if($.name==="backspace"){if(a>0){let p=E.slice(0,a-1)+E.slice(a);w(p,a-1);}return true}if($.name==="delete"){if(a<E.length){let p=E.slice(0,a)+E.slice(a+1);w(p,a);}return true}if($.name.length>1)return false;let F=$.sequence;if(F.length===1&&F.charCodeAt(0)>=32){let{type:p}=H.current;if(p==="number"){let V=/[0-9]/.test(F),Q=F==="."&&!E.includes("."),U=F==="-"&&a===0&&!E.includes("-");if(!V&&!Q&&!U)return true}let G=E.slice(0,a)+F+E.slice(a);return w(G,a+1),true}return false};return B.registerInputHandler(W,z)},[B,A]);let O={...c,...P&&l?l:{}};return oe.createElement("input",{style:O,value:S,defaultValue:n,placeholder:i,onChange:r,cursorPosition:M.current,multiline:u??false,focused:P,ref:W=>{W?(L.current=W,C.current=W.focusId,D(true)):(L.current=null,C.current=null,D(false));}})}function Nt({trap:e=false,children:t}){let n=useContext(X),r=useRef(null),o=useRef(new Set);return useLayoutEffect(()=>{if(!e||!n)return;r.current=n.focusedId;let s=n.pushTrap(o.current);return ()=>{s(),r.current&&n.requestFocus(r.current);}},[e,n]),useEffect(()=>{if(!(!e||!n)&&o.current.size>0){let s=o.current.values().next().value;s&&n.requestFocus(s);}},[e,n]),oe.createElement(oe.Fragment,null,t)}function uo({size:e}){return oe.createElement("box",{style:{flexGrow:e??1}})}function Kn(e){let t=e.toLowerCase().split("+");return {name:t[t.length-1],ctrl:t.includes("ctrl"),alt:t.includes("alt"),shift:t.includes("shift"),meta:t.includes("meta")||t.includes("cmd")||t.includes("super")||t.includes("win")}}function Wn(e,t){return !(t.name!==e.name||e.ctrl!==!!t.ctrl||e.alt!==!!t.alt||e.shift!==!!t.shift||e.meta!==!!t.meta)}function po({keypress:e,onPress:t,whenFocused:n,priority:r,disabled:o}){let s=useContext(J),i=useContext(X),c=useRef(t);c.current=t;let l=useRef(Kn(e));return l.current=Kn(e),useEffect(()=>{if(!(!s||o))if(r){let u=f=>!Wn(l.current,f)||n&&i?.focusedId!==n?false:(c.current(),true);return s.subscribePriority(u)}else {let u=f=>{Wn(l.current,f)&&(n&&i?.focusedId!==n||c.current());};return s.subscribe(u)}},[s,i,n,r,o]),null}function ho({children:e,zIndex:t=1e3}){return oe.createElement("box",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:t}},e)}function yo({onPress:e,style:t,focusedStyle:n,children:r,disabled:o}){let s=useContext(X),i=useContext(J),c=useRef(null),l=useRef(null),u=useRef(e);u.current=e;let[f,h]=useState(false),[b,I]=useState(false);useEffect(()=>{if(!(!s||!l.current||!c.current||o))return s.register(l.current,c.current)},[s,o,f]),useEffect(()=>{if(!s||!l.current)return;let d=l.current;return I(s.focusedId===d),s.onFocusChange(m=>{I(m===d);})},[s,f]),useEffect(()=>{if(!i||!l.current||o)return;let d=l.current,m=x=>s?.focusedId!==d?false:x.name==="return"||x.name===" "||x.sequence===" "?(u.current?.(),true):false;return i.registerInputHandler(d,m)},[i,s,o,f]);let v={...t,...b&&n?n:{}};return oe.createElement("box",{style:v,focusable:!o,ref:d=>{d?(c.current=d,l.current=d.focusId,h(true)):(c.current=null,l.current=null,h(false));}},r)}var So={x:0,y:0,width:0,height:0,innerX:0,innerY:0,innerWidth:0,innerHeight:0};function me(e){let t=useContext(ie),[n,r]=useState(So);return useEffect(()=>{if(!(!t||!e?.current))return r(t.getLayout(e.current)),t.subscribe(e.current,r)},[t,e]),n}function Ve(e,t=[]){let n=useContext(J);useEffect(()=>{if(n)return n.subscribe(e)},[n,...t]);}function ko({children:e,style:t,scrollOffset:n,onScroll:r,defaultScrollOffset:o=0,scrollStep:s=1,disableKeyboard:i,scrollToFocus:c=true,showScrollbar:l=true,focusable:u=true,focusedStyle:f}){let h=n!==void 0,[b,I]=useState(o),v=h?n:b,d=useRef(null),m=useRef(null),x=me(d),P=me(m),R=useContext(X),A=useContext(ie),D=useRef(null);u&&!D.current&&(D.current=`scrollview-${Math.random().toString(36).slice(2,9)}`);let B=u?D.current:null;useEffect(()=>{if(!(!u||!B||!R||!d.current))return R.register(B,d.current)},[u,B,R]);let T=u&&B&&R?.focusedId===B,N=x.innerHeight,L=P.height,C=Math.max(0,L-N),y=Math.max(0,Math.min(v,C)),S=useMemo(()=>({getBounds:()=>{let V=x.y;return {visibleTop:V,visibleBottom:V+N,viewportHeight:N,scrollOffset:y}}}),[x.y,N,y]),g=useCallback(V=>{let Q=Math.max(0,Math.min(V,C));h?r?.(Q):I(Q);},[h,r,C]);useEffect(()=>{v>C&&C>=0&&g(C);},[v,C,g]),useEffect(()=>!c||!R||!A||!m.current?void 0:R.onFocusChange(Q=>{if(!Q||!m.current)return;let U=Ye=>{if(Ye.focusId===Q)return Ye;for(let Qe of Ye.children){let Se=U(Qe);if(Se)return Se}return null},he=U(m.current);if(!he)return;let Ce=A.getLayout(he),Ee=m.current.layout?.y??0,Ue=Ce.y-Ee,Je=Ue+Ce.height,Ne=v,bt=v+N;Ue<Ne?g(Ue):Je>bt&&g(Je-N);}),[c,R,A,v,N,g]);let M=useCallback(()=>{if(!R)return false;let V=R.focusedId;if(!V)return false;if(u&&B&&V===B)return true;if(!m.current)return false;let Q=U=>{if(U.focusId===V)return true;for(let he of U.children)if(Q(he))return true;return false};return Q(m.current)},[R,u,B]);Ve(V=>{if(i||!M())return;let Q=Math.max(1,Math.floor(N/2)),U=Math.max(1,N);switch(V.name){case "pageup":g(v-U);break;case "pagedown":g(v+U);break;default:V.ctrl&&(V.name==="d"?g(v+Q):V.name==="u"?g(v-Q):V.name==="f"?g(v+U):V.name==="b"&&g(v-U));break}},[v,s,N,C,i,g,M]);let{padding:_,paddingX:j,paddingY:H,paddingTop:q,paddingRight:O,paddingBottom:W,paddingLeft:z,...$}=t??{},te=$.border!=null&&$.border!=="none"?2:0,Y=L>0?L+te:void 0,se={...$,...T?f:{},clip:true,...$.height===void 0&&Y!==void 0?{height:Y,flexShrink:$.flexShrink??1,minHeight:$.minHeight??0}:{}},ee={position:"absolute",top:-y,left:0,right:0,flexDirection:"column",..._!==void 0&&{padding:_},...j!==void 0&&{paddingX:j},...H!==void 0&&{paddingY:H},...q!==void 0&&{paddingTop:q},...O!==void 0&&{paddingRight:O},...W!==void 0&&{paddingBottom:W},...z!==void 0&&{paddingLeft:z}},E=L>N&&N>0,a=l&&E,w=Math.max(1,Math.floor(N/L*N)),k=L-N,F=k>0?Math.floor(y/k*(N-w)):0,p=[];if(a)for(let V=0;V<N;V++)V>=F&&V<F+w?p.push("\u2588"):p.push("\u2591");let G={position:"absolute",top:0,right:0,width:1,height:N,flexDirection:"column"};return oe.createElement(st.Provider,{value:S},oe.createElement("box",{style:se,ref:V=>{d.current=V??null;},...u?{focusable:true,focusId:B}:{}},oe.createElement("box",{style:{...ee,paddingRight:a?(ee.paddingRight??0)+1:ee.paddingRight},ref:V=>{m.current=V??null;}},e),a&&oe.createElement("box",{style:G},oe.createElement("text",{style:{color:"blackBright"}},p.join(`
14
- `)))))}function Ht({count:e,renderItem:t,selectedIndex:n,onSelectionChange:r,onSelect:o,defaultSelectedIndex:s=0,disabledIndices:i,style:c,focusable:l=true}){let u=n!==void 0,[f,h]=useState(s),b=u?n:f,I=useContext(X),v=useContext(J),d=useRef(null),m=useRef(null),x=useRef(o);x.current=o;let[P,R]=useState(false),[A,D]=useState(false),B=useRef(null),T=useCallback(y=>{let S=Math.max(0,Math.min(y,e-1));u?r?.(S):h(S);},[u,r,e]),N=useCallback((y,S)=>{if(!i||i.size===0)return Math.max(0,Math.min(y+S,e-1));let g=y+S;for(;g>=0&&g<e&&i.has(g);)g+=S;return g<0||g>=e?y:g},[i,e]);useEffect(()=>{if(!(!I||!m.current||!d.current||!l))return I.register(m.current,d.current)},[I,l,P]),useEffect(()=>{if(!I||!m.current)return;let y=m.current;return D(I.focusedId===y),I.onFocusChange(S=>{D(S===y);})},[I,P]);let L=useCallback(y=>{let S=y?e-1:0,g=y?-1:1,M=S;for(;M>=0&&M<e&&i?.has(M);)M+=g;return M>=0&&M<e?M:y?e-1:0},[i,e]);useEffect(()=>{if(!v||!m.current||!l)return;let y=m.current,S=g=>I?.focusedId!==y?false:g.name==="g"&&!g.ctrl&&!g.alt?B.current==="g"?(T(L(false)),B.current=null,true):(B.current="g",true):g.name==="G"||g.name==="g"&&g.shift?(B.current=null,T(L(true)),true):(B.current=null,g.name==="up"||g.name==="k"?(T(N(b,-1)),true):g.name==="down"||g.name==="j"?(T(N(b,1)),true):g.name==="return"?(i?.has(b)||x.current?.(b),true):false);return v.registerInputHandler(y,S)},[v,I,l,b,T,N,L,i,P]);let C=[];for(let y=0;y<e;y++)C.push(oe.createElement(oe.Fragment,{key:y},t({index:y,selected:y===b,focused:A})));return oe.createElement("box",{style:{flexDirection:"column",...c},focusable:l,ref:y=>{y?(d.current=y,m.current=y.focusId,R(true)):(d.current=null,m.current=null,R(false));}},...C)}function Po({items:e,selectedIndex:t,onSelectionChange:n,onSelect:r,defaultSelectedIndex:o=0,style:s,highlightColor:i="cyan",focusable:c=true}){let l=new Set;for(let f=0;f<e.length;f++)e[f].disabled&&l.add(f);let u=f=>{let h=e[f];h&&!h.disabled&&r?.(h.value,f);};return oe.createElement(Ht,{count:e.length,selectedIndex:t,onSelectionChange:n,onSelect:u,defaultSelectedIndex:o,disabledIndices:l.size>0?l:void 0,style:s,focusable:c,renderItem:({index:f,selected:h,focused:b})=>{let I=e[f],v=I.disabled,d=h&&b,m=h?">":" ";return oe.createElement("box",{style:{flexDirection:"row",...d?{bg:i}:{}}},oe.createElement("text",{style:d?{bold:true,color:"black"}:v?{dim:true}:{}},`${m} ${I.label}`))}})}function Bo({value:e,indeterminate:t=false,width:n="100%",label:r,showPercent:o=false,style:s,filled:i="\u2588",empty:c="\u2591"}){let l=useRef(null),f=me(l).innerWidth,[h,b]=useState(0);useEffect(()=>{if(!t)return;let x=setInterval(()=>{b(P=>(P+1)%Math.max(1,f+6));},100);return ()=>clearInterval(x)},[t,f]);let I=Math.max(0,Math.min(1,e??0)),v=o?` ${Math.round(I*100)}%`:"",d="";if(f>0)if(t&&e===void 0){let x=Math.max(1,Math.min(3,Math.floor(f/4))),P=[];for(let R=0;R<f;R++)R>=h-x&&R<h?P.push(i):P.push(c);d=P.join("");}else {let x=Math.round(I*f);d=i.repeat(x)+c.repeat(f-x);}let m=[];return r&&m.push(oe.createElement("text",{key:"label",style:{bold:true}},r+" ")),m.push(oe.createElement("box",{key:"track",style:{flexGrow:1,flexShrink:1},ref:x=>{l.current=x??null;}},oe.createElement("text",{key:"bar",style:{}},d))),o&&m.push(oe.createElement("text",{key:"pct",style:{bold:true}},v)),oe.createElement("box",{style:{flexDirection:"row",width:n,...s}},...m)}var Lo=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function Mo({frames:e=Lo,intervalMs:t=80,label:n,style:r}){let[o,s]=useState(0);useEffect(()=>{let c=setInterval(()=>{s(l=>(l+1)%e.length);},t);return ()=>clearInterval(c)},[e.length,t]);let i=[oe.createElement("text",{key:"frame",style:r},e[o])];return n&&i.push(oe.createElement("text",{key:"label",style:{}}," "+n)),oe.createElement("box",{style:{flexDirection:"row"}},...i)}var Yn=createContext(null),Oo=0;function Do(){let e=useContext(Yn);if(!e)throw new Error("useToast must be used within a <ToastHost>");return e.push}var Ko={info:{bg:"blackBright",title:"cyanBright",text:"white"},success:{bg:"blackBright",title:"greenBright",text:"white"},warning:{bg:"blackBright",title:"yellowBright",text:"white"},error:{bg:"blackBright",title:"redBright",text:"white"}};function Wo({position:e="bottom-right",maxVisible:t=5,children:n}){let[r,o]=useState([]),s=useRef(new Map),i=useCallback(I=>{let v=`toast-${Oo++}`,d={id:v,durationMs:3e3,variant:"info",...I};if(o(m=>[...m,d]),d.durationMs&&d.durationMs>0){let m=setTimeout(()=>{s.current.delete(v),o(x=>x.filter(P=>P.id!==v));},d.durationMs);s.current.set(v,m);}},[]);useEffect(()=>()=>{for(let I of s.current.values())clearTimeout(I);s.current.clear();},[]);let c=useRef({push:i});c.current.push=i;let l=e.startsWith("top"),u=e.endsWith("right"),f={position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:900,flexDirection:"column",justifyContent:l?"flex-start":"flex-end",alignItems:u?"flex-end":"flex-start",padding:1},b=r.slice(-t).map(I=>{let v=I.variant??"info",d=Ko[v],m=[];return I.title&&m.push(oe.createElement("text",{key:"title",style:{bold:true,color:d.title}},I.title)),m.push(oe.createElement("text",{key:"msg",style:{color:d.text}},I.message)),oe.createElement("box",{key:I.id,style:{bg:d.bg,paddingX:1,flexDirection:"column",minWidth:20,maxWidth:50}},...m)});return oe.createElement(Yn.Provider,{value:c.current},n,b.length>0?oe.createElement("box",{style:f},...b):null)}function qo({items:e,value:t,onChange:n,placeholder:r="Select...",style:o,focusedStyle:s,dropdownStyle:i,highlightColor:c="cyan",maxVisible:l=8,searchable:u=true,disabled:f}){let h=useContext(X),b=useContext(J),I=useContext(Re),v=useContext(st),d=useRef(null),m=useRef(null),x=useRef(n);x.current=n;let[P,R]=useState(false),[A,D]=useState(false),[B,T]=useState(false),[N,L]=useState(0),[C,y]=useState(""),[S,g]=useState(0),M=me(d),_=I?.rows??24,j=v?.getBounds(),q=e.find(w=>w.value===t)?.label??"",O=useMemo(()=>{if(!C)return e;let w=C.toLowerCase();return e.filter(k=>k.label.toLowerCase().includes(w))},[e,C]),W=Math.min(l,O.length),z=O.slice(S,S+W);useEffect(()=>{L(0),g(0);},[C]),useEffect(()=>{!A&&B&&(T(false),y(""));},[A,B]),useEffect(()=>{if(!(!h||!m.current||!d.current))return h.register(m.current,d.current)},[h,P]),useEffect(()=>{!h||!m.current||h.setSkippable(m.current,!!f);},[h,f,P]),useEffect(()=>{if(!h||!m.current)return;let w=m.current;return D(h.focusedId===w),h.onFocusChange(k=>{D(k===w);})},[h,P]);let $=useCallback((w,k)=>{let F=w+k;for(;F>=0&&F<O.length;){if(!O[F].disabled)return F;F+=k;}return w},[O]),K=useCallback(w=>{w<S?g(w):w>=S+W&&g(w-W+1);},[S,W]);useEffect(()=>{if(!b||!m.current||f)return;let w=m.current,k=F=>{if(h?.focusedId!==w)return false;if(!B){if(F.name==="return"||F.name===" "||F.sequence===" "||F.name==="down"){T(true),y("");let p=O.findIndex(V=>V.value===t),G=p>=0?p:0;return L(G),g(Math.max(0,G-Math.floor(l/2))),true}return false}if(F.name==="tab")return T(false),y(""),false;if(F.name==="escape")return T(false),y(""),true;if(F.name==="return"){let p=O[N];return p&&!p.disabled&&(x.current?.(p.value),T(false),y("")),true}if(F.name==="up"){let p=$(N,-1);return L(p),K(p),true}if(F.name==="down"){let p=$(N,1);return L(p),K(p),true}if(F.name==="backspace")return u&&C.length>0&&y(p=>p.slice(0,-1)),true;if(F.name==="home"){let p=$(-1,1);return L(p),K(p),true}if(F.name==="end"){let p=$(O.length,-1);return L(p),K(p),true}if(u&&F.sequence&&F.sequence.length===1&&!F.ctrl&&!F.alt){let p=F.sequence;if(p>=" "&&p<="~")return y(G=>G+p),true}return true};return b.registerInputHandler(w,k)},[b,h,f,B,N,O,t,l,u,C,$,K,P]);let Y={flexDirection:"row",width:"100%",...!o?.bg&&o?.border===void 0?{border:"single"}:{},...o,...A&&s?s:{}},se=q?o?.color??void 0:"blackBright",ee=[oe.createElement("text",{key:"label",style:{flexGrow:1,flexShrink:1,color:se,wrap:"ellipsis",...q?{}:{dim:true}}},q||r),oe.createElement("text",{key:"arrow",style:{flexShrink:0,color:A?c:"blackBright"}},B?" \u25B2":" \u25BC")],E=null;if(B){let w=[];u&&C&&w.push(oe.createElement("box",{key:"search",style:{paddingX:1}},oe.createElement("text",{style:{color:"blackBright",dim:true}},`/${C}`))),O.length===0&&w.push(oe.createElement("box",{key:"empty",style:{paddingX:1}},oe.createElement("text",{style:{dim:true,color:"blackBright"}},"No matches"))),S>0&&w.push(oe.createElement("box",{key:"scroll-up",style:{justifyContent:"center",alignItems:"center"}},oe.createElement("text",{style:{dim:true,color:"blackBright"}},"\u25B2"))),z.forEach((Ne,bt)=>{let Qe=S+bt===N,Se=Ne.disabled,xr={paddingX:1,...Qe&&!Se?{bg:c}:{}},br={...Qe&&!Se?{color:"black",bold:true}:{},...Se?{dim:true,color:"blackBright"}:{}};w.push(oe.createElement("box",{key:`item-${Ne.value}`,style:xr},oe.createElement("text",{style:br},Ne.label)));}),S+W<O.length&&w.push(oe.createElement("box",{key:"scroll-down",style:{justifyContent:"center",alignItems:"center"}},oe.createElement("text",{style:{dim:true,color:"blackBright"}},"\u25BC")));let k=S>0,F=S+W<O.length,p=u&&C,G=O.length===0,V=!i?.bg&&i?.border===void 0,U=W+(V?2:0);k&&(U+=1),F&&(U+=1),p&&(U+=1),G&&(U+=1);let he=M.y+M.height,Ce,Ee;j?(Ce=j.visibleBottom-he,Ee=M.y-j.visibleTop):(Ce=_-he,Ee=M.y);let Je=Ce<U&&Ee>=U?-U:M.height||1;E=oe.createElement("box",{style:{position:"absolute",top:Je,left:0,right:0,zIndex:9999,...V?{border:"single"}:{},bg:"black",flexDirection:"column",...i}},...w);}let a={flexDirection:"column",width:Y.width??"100%",minWidth:Y.minWidth,maxWidth:Y.maxWidth,flexGrow:Y.flexGrow,flexShrink:Y.flexShrink??1};return oe.createElement("box",{style:a},oe.createElement("box",{style:Y,focusable:true,ref:w=>{w?(d.current=w,m.current=w.focusId,R(true)):(d.current=null,m.current=null,R(false));}},...ee),E)}function zo({checked:e,onChange:t,label:n,style:r,focusedStyle:o,disabled:s,checkedChar:i="\u2713",uncheckedChar:c=" "}){let l=useContext(X),u=useContext(J),f=useRef(null),h=useRef(null),b=useRef(t);b.current=t;let I=useRef(e);I.current=e;let[v,d]=useState(false),[m,x]=useState(false);useEffect(()=>{if(!(!l||!h.current||!f.current||s))return l.register(h.current,f.current)},[l,s,v]),useEffect(()=>{if(!l||!h.current)return;let B=h.current;return x(l.focusedId===B),l.onFocusChange(T=>{x(T===B);})},[l,v]),useEffect(()=>{if(!u||!h.current||s)return;let B=h.current,T=N=>l?.focusedId!==B?false:N.name==="return"||N.name===" "||N.sequence===" "?(b.current(!I.current),true):false;return u.registerInputHandler(B,T)},[u,l,s,v]);let P={flexDirection:"row",gap:1,...r,...m&&o?o:{}},R=e?i:c,A={color:s?"blackBright":m?"white":r?.color},D={color:s?"blackBright":r?.color};return oe.createElement("box",{style:P,focusable:!s,ref:B=>{B?(f.current=B,h.current=B.focusId,d(true)):(f.current=null,h.current=null,d(false));}},oe.createElement("text",{key:"box",style:A},`[${R}]`),n?oe.createElement("text",{key:"label",style:D},n):null)}function Uo({items:e,value:t,onChange:n,style:r,itemStyle:o,focusedItemStyle:s,selectedItemStyle:i,disabled:c,direction:l="column",gap:u=0,selectedChar:f="\u25CF",unselectedChar:h="\u25CB"}){let b=useContext(X),I=useContext(J),v=useRef(null),d=useRef(null),m=useRef(n);m.current=n;let[x,P]=useState(false),[R,A]=useState(false),[D,B]=useState(()=>{let C=e.findIndex(y=>y.value===t);return C>=0?C:e.findIndex(y=>!y.disabled)}),T=useCallback((C,y)=>{let S=C;for(let g=0;g<e.length;g++)if(S=(S+y+e.length)%e.length,!e[S]?.disabled)return S;return C},[e]);useEffect(()=>{if(!(!b||!d.current||!v.current||c))return b.register(d.current,v.current)},[b,c,x]),useEffect(()=>{if(!b||!d.current)return;let C=d.current;return A(b.focusedId===C),b.onFocusChange(y=>{A(y===C);})},[b,x]),useEffect(()=>{if(!I||!d.current||c)return;let C=d.current,y=S=>{if(b?.focusedId!==C)return false;if(S.name==="up"||S.name==="left"||S.name==="k"||S.name==="tab"&&S.shift)return B(g=>T(g,-1)),true;if(S.name==="down"||S.name==="right"||S.name==="j"||S.name==="tab"&&!S.shift)return B(g=>T(g,1)),true;if(S.name==="return"||S.name===" "||S.sequence===" "){let g=e[D];return g&&!g.disabled&&m.current(g.value),true}return false};return I.registerInputHandler(C,y)},[I,b,c,e,D,T,x]),useEffect(()=>{let C=e.findIndex(y=>y.value===t);C>=0&&B(C);},[t,e]);let N={flexDirection:l,gap:u,...r},L=e.map((C,y)=>{let S=C.value===t,g=y===D,M=c||C.disabled,_=S?f:h,j={flexDirection:"row",gap:1,...o};S&&i&&(j={...j,...i}),R&&g&&s&&(j={...j,...s});let H=M?"blackBright":R&&g?s?.color??"white":S?i?.color??o?.color:o?.color;return oe.createElement("box",{key:y,style:j},oe.createElement("text",{key:"radio",style:{color:H}},`(${_})`),oe.createElement("text",{key:"label",style:{color:H}},C.label))});return oe.createElement("box",{style:N,focusable:!c,ref:C=>{C?(v.current=C,d.current=C.focusId,P(true)):(v.current=null,d.current=null,P(false));}},...L)}var or=createContext(null);function Yo(){let e=useContext(or);if(!e)throw new Error("useDialog must be used within a DialogHost");return e}function Qo({children:e}){let[t,n]=useState([]),r=useRef(0),o=useCallback((u,f)=>new Promise(h=>{let b=++r.current;n(I=>[...I,{id:b,type:"alert",content:u,okText:f?.okText??"OK",cancelText:"",style:f?.style,buttonStyle:f?.buttonStyle,okButtonStyle:f?.okButtonStyle,focusedButtonStyle:f?.focusedButtonStyle,backdropStyle:f?.backdropStyle,resolve:()=>h()}]);}),[]),s=useCallback((u,f)=>new Promise(h=>{let b=++r.current;n(I=>[...I,{id:b,type:"confirm",content:u,okText:f?.okText??"OK",cancelText:f?.cancelText??"Cancel",style:f?.style,buttonStyle:f?.buttonStyle,okButtonStyle:f?.okButtonStyle,cancelButtonStyle:f?.cancelButtonStyle,focusedButtonStyle:f?.focusedButtonStyle,backdropStyle:f?.backdropStyle,resolve:h}]);}),[]),i=useCallback((u,f)=>{n(h=>{let b=h.find(I=>I.id===u);return b&&b.resolve(f),h.filter(I=>I.id!==u)});},[]),c={alert:o,confirm:s},l=t[t.length-1];return oe.createElement(or.Provider,{value:c},e,l&&oe.createElement(Zo,{key:l.id,dialog:l,onDismiss:i}))}function Zo({dialog:e,onDismiss:t}){let n=useContext(X),r=useRef(null),o=useRef(null),s=useRef(null),i=useRef(null),[c,l]=useState("ok"),[u,f]=useState(0);useEffect(()=>{if(!n||u===0)return;let x=[];return r.current&&s.current&&x.push(n.register(s.current,r.current)),o.current&&i.current&&x.push(n.register(i.current,o.current)),s.current&&n.requestFocus(s.current),()=>x.forEach(P=>P())},[n,u]),useEffect(()=>{if(n)return n.onFocusChange(x=>{x===s.current?l("ok"):x===i.current&&l("cancel");})},[n]),Ve(x=>{if(x.name==="return"||x.name==="space"){e.type==="alert"?t(e.id,true):t(e.id,c==="ok");return}if(x.name==="escape"){t(e.id,false);return}e.type==="confirm"&&n&&(x.name==="left"||x.name==="right")&&(c==="ok"&&i.current?n.requestFocus(i.current):s.current&&n.requestFocus(s.current));},[e,c,n,t]);let h=typeof e.content=="string",b=h?e.content.length:0,v={minWidth:Math.max(20,h?Math.min(b+6,50):30),maxWidth:50,bg:"black",border:"round",borderColor:"white",padding:1,flexDirection:"column",gap:1,...e.style},d=(x,P)=>{let R={paddingX:2,bg:"blackBright",color:"white"},A={bg:"white",color:"black",bold:true},D=x==="ok"?e.okButtonStyle:e.cancelButtonStyle;return {...R,...e.buttonStyle,...D,...P?{...A,...e.focusedButtonStyle}:{}}},m={position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:999,...e.backdropStyle};return oe.createElement(Nt,{trap:true},oe.createElement("box",{style:m}),oe.createElement("box",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,justifyContent:"center",alignItems:"center",zIndex:1e3}},oe.createElement("box",{style:v},oe.createElement("box",{style:{flexDirection:"column"}},typeof e.content=="string"?oe.createElement("text",null,e.content):e.content),oe.createElement("box",{style:{flexDirection:"row",justifyContent:"flex-end",gap:1}},e.type==="confirm"&&oe.createElement("box",{style:d("cancel",c==="cancel"),focusable:true,ref:x=>{x&&x.focusId&&!i.current&&(o.current=x,i.current=x.focusId,f(P=>P+1));}},oe.createElement("text",null,e.cancelText)),oe.createElement("box",{style:d("ok",c==="ok"),focusable:true,ref:x=>{x&&x.focusId&&!s.current&&(r.current=x,s.current=x.focusId,f(P=>P+1));}},oe.createElement("text",null,e.okText))))))}function ns(e,t){let n=[],r=t.split("");if(e<=r.length)for(let o=0;o<e;o++)n.push(r[o]);else for(let o=0;o<r.length&&n.length<e;o++)for(let s=0;s<r.length&&n.length<e;s++)n.push(r[o]+r[s]);return n}function rs({children:e,activationKey:t="ctrl+o",hintStyle:n,hintBg:r="yellow",hintFg:o="black",hintChars:s="asdfghjklqwertyuiopzxcvbnm",enabled:i=true,debug:c=false}){let l=c?(...C)=>console.error("[JumpNav]",...C):()=>{},[u,f]=useState(false),[h,b]=useState(""),[I,v]=useState([]),d=useContext(J),m=useContext(X),x=useContext(ie);useEffect(()=>{l("Mounted, inputCtx:",!!d,"focusCtx:",!!m,"enabled:",i);},[]);let R=useCallback(C=>{let y=C.toLowerCase().split("+");return {ctrl:y.includes("ctrl"),alt:y.includes("alt"),shift:y.includes("shift"),meta:y.includes("meta"),name:y[y.length-1]??""}},[])(t),A=useCallback(()=>{if(!m?.getActiveElements){l("refreshElements: no getActiveElements");return}let C=m.getActiveElements();l("getActiveElements returned",C.length,"elements");let y=C.map(({id:S,node:g})=>({id:S,node:g,layout:x?.getLayout(g)??g.layout}));y.sort((S,g)=>S.layout.y!==g.layout.y?S.layout.y-g.layout.y:S.layout.x-g.layout.x),v(y);},[m,x,l]),D=useRef(false);useEffect(()=>{u&&!D.current&&(l("Activated! Refreshing elements..."),A()),D.current=u;},[u,A,l]);let B=I.filter(C=>C.layout.width>0&&C.layout.height>0),T=ns(B.length,s),N=useMemo(()=>{let C=new Map;return B.forEach((y,S)=>{T[S]&&C.set(T[S],y.id);}),C},[B,T]);useEffect(()=>{if(!d||!i){l("Not subscribing - inputCtx:",!!d,"enabled:",i);return}l("Subscribing to priority input, activation key:",t);let C=y=>{let S=y.name===R.name,g=!!y.ctrl===R.ctrl,M=!!y.alt===R.alt,_=!!y.shift===R.shift,j=!!y.meta===R.meta;if(!u&&S&&g&&M&&_&&j)return l("Activation key matched! Activating..."),f(true),b(""),true;if(u){if(y.name==="escape")return l("Escape pressed, deactivating"),f(false),b(""),true;if(y.name==="backspace")return b(""),true;if(y.sequence&&y.sequence.length===1&&/[a-z]/i.test(y.sequence)){let H=h+y.sequence.toLowerCase();l("Buffer:",H);let q=N.get(H);return q?(l("Jumping to",q),m?.requestFocus(q),f(false),b(""),true):[...N.keys()].some(W=>W.startsWith(H))?(b(H),true):(b(""),true)}return true}return false};return d.subscribePriority(C)},[d,i,u,R,h,N,m,t,l]);let L=u?oe.createElement("box",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:99998}},...B.map((C,y)=>{let S=T[y];if(!S)return null;let{x:g,y:M}=C.layout,_=S.startsWith(h)&&h.length>0;return oe.createElement("box",{key:C.id,style:{position:"absolute",top:M,left:Math.max(0,g-S.length-2),bg:_?"cyan":r,color:o,paddingX:1,zIndex:99999,...n}},oe.createElement("text",{style:{bold:true,color:o}},S))}),oe.createElement("box",{style:{position:"absolute",bottom:0,left:0,right:0,bg:"blackBright",paddingX:1,zIndex:99999}},oe.createElement("text",{style:{color:"white"}},h?`Jump: ${h}_`:"Press a key to jump \u2022 ESC to cancel"))):null;return oe.createElement(oe.Fragment,null,e,L)}var Te=join(tmpdir(),"glyph-image-cache");function mt(e){return e.startsWith("http://")||e.startsWith("https://")}function ls(e,t){let n=createHash("md5").update(e).digest("hex"),r=t?as(t):cs(e)||".png";return join(Te,`${n}${r}`)}function cs(e){try{let r=new URL(e).pathname.match(/\.(png|jpg|jpeg|gif|webp|bmp|ico)/i);if(r){let o=r[0].toLowerCase();return o===".jpg"?".jpeg":o}return ""}catch{return ""}}function as(e){switch(e){case "png":return ".png";case "jpeg":return ".jpeg";case "gif":return ".gif";case "webp":return ".webp";default:return ".png"}}function tn(e){if(mt(e))try{let t=new URL(e),n=t.pathname;return basename(n)||t.hostname}catch{return "remote-image"}return basename(e)}function cr(){existsSync(Te)||mkdirSync(Te,{recursive:true});}async function ar(e){let t=tn(e);return mt(e)?fs(e,t):us(e,t)}async function us(e,t){if(!existsSync(e))throw new Error(`Image not found: ${e}`);return {data:readFileSync(e),name:t,localPath:e,isRemote:false}}async function fs(e,t){cr();let n=createHash("md5").update(e).digest("hex"),r=[".png",".jpeg",".gif",".webp"];for(let u of r){let f=join(Te,`${n}${u}`);if(existsSync(f))return {data:readFileSync(f),name:t,localPath:f,isRemote:true}}let o=await fetch(e);if(!o.ok)throw new Error(`Failed to download image: ${o.status} ${o.statusText}`);let s=await o.arrayBuffer(),i=Buffer.from(s);if(!ps(i))throw new Error(`Invalid image data from: ${e}`);let c=ht(i),l=ls(e,c);return writeFileSync(l,i),{data:i,name:t,localPath:l,isRemote:true}}function ps(e){return e.length<4?false:e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71||e[0]===255&&e[1]===216&&e[2]===255||e[0]===71&&e[1]===73&&e[2]===70||e[0]===66&&e[1]===77||e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e.length>=12&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80||e[0]===0&&e[1]===0&&e[2]===1&&e[3]===0}function ht(e){return e.length<4?"unknown":e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71?"png":e[0]===255&&e[1]===216&&e[2]===255?"jpeg":e[0]===71&&e[1]===73&&e[2]===70?"gif":e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e.length>=12&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80?"webp":"unknown"}function ur(e,t){let n=ht(e);if(n==="png")return e;cr();let r=createHash("md5").update(e).digest("hex"),o=join(Te,`${r}.${n}`),s=join(Te,`${r}.png`);try{writeFileSync(o,e);let i=platform(),c=!1;if(i==="darwin")try{execSync(`sips -s format png "${o}" --out "${s}" 2>/dev/null`,{stdio:"pipe"}),c=!0;}catch{}if(!c)try{execSync(`magick "${o}" "${s}" 2>/dev/null`,{stdio:"pipe"}),c=!0;}catch{}if(!c)try{execSync(`convert "${o}" "${s}" 2>/dev/null`,{stdio:"pipe"}),c=!0;}catch{}if(c&&existsSync(s)){let l=readFileSync(s);try{unlinkSync(o);}catch{}try{unlinkSync(s);}catch{}return l}try{unlinkSync(o);}catch{}return null}catch{try{unlinkSync(o);}catch{}try{unlinkSync(s);}catch{}return null}}function ms(){let e=platform();return e==="darwin"?"quicklook":e==="linux"||e==="win32"?"open":"none"}async function nn(e){switch(ms()){case "quicklook":return hs(e);case "open":return ys(e);case "none":throw new Error("No preview method available on this platform")}}function hs(e){return new Promise((t,n)=>{let r=spawn("qlmanage",["-p",e],{detached:false,stdio:["ignore","ignore","ignore"]});r.on("error",o=>{n(new Error(`Failed to open Quick Look: ${o.message}`));}),setTimeout(()=>{gs();},50),r.on("close",o=>{t();});})}function gs(){exec(`osascript -e '
1
+ import oe,{createContext,forwardRef,useState,useContext,useRef,useEffect,useLayoutEffect,useMemo,useCallback}from'react';import wr from'react-reconciler';import he from'string-width';import Nn,{FlexDirection,Justify,Align,Direction,Edge,Wrap,Gutter,PositionType,Overflow,MeasureMode}from'yoga-layout';import {writeFileSync,existsSync,readFileSync,unlinkSync,mkdirSync}from'fs';import {createHash}from'crypto';import {join,basename}from'path';import {tmpdir,platform}from'os';import {execSync,spawn,exec}from'child_process';var Sr=0;function on(){return `glyph-focus-${Sr++}`}function sn(e,t){let n=t.style??{};return {type:e,props:t,style:n,children:[],rawTextChildren:[],parent:null,yogaNode:null,text:null,layout:{x:0,y:0,width:0,height:0,innerX:0,innerY:0,innerWidth:0,innerHeight:0},focusId:e==="input"||t.focusable?on():null,hidden:false}}function Ct(e,t){t.parent=e,e.children.push(t);}function ln(e,t){let n=e.children.indexOf(t);n!==-1&&(e.children.splice(n,1),t.parent=null);}function cn(e,t,n){t.parent=e;let r=e.children.indexOf(n);r!==-1?e.children.splice(r,0,t):e.children.push(t);}function et(e){let t={},n=e;for(;n;){let r=n.style;t.color===void 0&&r.color!==void 0&&(t.color=r.color),t.bg===void 0&&r.bg!==void 0&&(t.bg=r.bg),t.bold===void 0&&r.bold!==void 0&&(t.bold=r.bold),t.dim===void 0&&r.dim!==void 0&&(t.dim=r.dim),t.italic===void 0&&r.italic!==void 0&&(t.italic=r.italic),t.underline===void 0&&r.underline!==void 0&&(t.underline=r.underline),n=n.parent;}return t}function St(e){if(e.text!=null)return e.text;let t="";for(let n of e.children)t+=St(n);return t}var wt=32,an={supportsMutation:true,supportsPersistence:false,supportsHydration:false,isPrimaryRenderer:true,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,supportsMicrotasks:true,scheduleMicrotask:queueMicrotask,getCurrentUpdatePriority:()=>wt,setCurrentUpdatePriority:e=>{},resolveUpdatePriority:()=>wt,getCurrentEventPriority:()=>wt,resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,shouldAttemptEagerTransition:()=>false,getInstanceFromNode:()=>null,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},prepareScopeUpdate:()=>{},getInstanceFromScope:()=>null,detachDeletedInstance:()=>{},requestPostPaintCallback:e=>{},maySuspendCommit:(e,t)=>false,preloadInstance:(e,t)=>true,startSuspendingCommit:()=>{},suspendInstance:(e,t)=>{},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:{$$typeof:Symbol.for("react.context"),_currentValue:null},resetFormInstance:e=>{},bindToConsole:(e,t,n)=>Function.prototype.bind.call(console[e],console,...t),supportsResources:false,isHostHoistableType:(e,t)=>false,supportsSingletons:false,isHostSingletonType:e=>false,supportsTestSelectors:false,createInstance(e,t,n,r,o){return sn(e,t)},createTextInstance(e,t,n,r){return {type:"raw-text",text:e,parent:null}},appendInitialChild(e,t){if(t.type==="raw-text"){let n=t;n.parent=e,e.rawTextChildren.push(n),e.text=e.rawTextChildren.map(r=>r.text).join("");}else Ct(e,t);},finalizeInitialChildren(e,t,n,r,o){return false},shouldSetTextContent(e,t){return false},getRootHostContext(e){return {}},getChildHostContext(e,t,n){return e},getPublicInstance(e){return e},prepareForCommit(e){return null},resetAfterCommit(e){e.onCommit();},preparePortalMount(){},appendChild(e,t){if(t.type==="raw-text"){let n=t;n.parent=e,e.rawTextChildren.push(n),e.text=e.rawTextChildren.map(r=>r.text).join("");}else Ct(e,t);},appendChildToContainer(e,t){if(t.type==="raw-text")return;let n=t;n.parent=null,e.children.push(n);},insertBefore(e,t,n){t.type==="raw-text"||n.type==="raw-text"||cn(e,t,n);},insertInContainerBefore(e,t,n){if(t.type==="raw-text"||n.type==="raw-text")return;let r=t,o=n,s=e.children.indexOf(o);s!==-1?e.children.splice(s,0,r):e.children.push(r);},removeChild(e,t){if(t.type==="raw-text"){let n=t;n.parent=null;let r=e.rawTextChildren.indexOf(n);r!==-1&&e.rawTextChildren.splice(r,1),e.text=e.rawTextChildren.map(o=>o.text).join("")||null;return}ln(e,t);},removeChildFromContainer(e,t){if(t.type==="raw-text")return;let n=t,r=e.children.indexOf(n);r!==-1&&e.children.splice(r,1);},commitTextUpdate(e,t,n){e.text=n,e.parent&&(e.parent.text=e.parent.rawTextChildren.map(r=>r.text).join(""));},commitUpdate(e,t,n,r,o){e.props=r,e.style=r.style??{},r.focusable&&!e.focusId&&(e.focusId=`focus-${Math.random().toString(36).slice(2,9)}`);},hideInstance(e){e.hidden=true;},hideTextInstance(e){e.text="";},unhideInstance(e,t){e.hidden=false;},unhideTextInstance(e,t){e.text=t;},clearContainer(e){e.children.length=0;},resetTextContent(e){e.text=null;}};var Ae=wr(an);Ae.injectIntoDevTools({bundleType:process.env.NODE_ENV==="production"?0:1,version:"0.1.0",rendererPackageName:"glyph"});var tt=class{stdout;stdin;wasRaw=false;cleanedUp=false;dataHandlers=new Set;stdinAttached=false;oscState="normal";oscAccum="";escFlushTimer=null;palette=new Map;paletteResolve=null;constructor(t=process.stdout,n=process.stdin){this.stdout=t,this.stdin=n;}get columns(){return this.stdout.columns||80}get rows(){return this.stdout.rows||24}enterRawMode(){this.stdin.isTTY&&(this.wasRaw=this.stdin.isRaw,this.stdin.setRawMode(true),this.stdin.resume(),this.stdin.setEncoding("utf-8"));}exitRawMode(){this.stdin.isTTY&&!this.wasRaw&&(this.stdin.setRawMode(false),this.stdin.pause());}write(t){this.stdout.write(t);}hideCursor(){this.write("\x1B[?25l");}showCursor(){this.write("\x1B[?25h");}moveCursor(t,n){this.write(`\x1B[${n+1};${t+1}H`);}setCursorColor(t){this.write(`\x1B]12;${t}\x07`);}resetCursorColor(){this.write("\x1B]112\x07");}enterAltScreen(){this.write("\x1B[?1049h");}exitAltScreen(){this.write("\x1B[?1049l");}clearScreen(){this.write("\x1B[2J\x1B[H");}resetStyles(){this.write("\x1B[0m");}enableKittyKeyboard(){this.write("\x1B[>1u");}disableKittyKeyboard(){this.write("\x1B[<u");}setup(){this.enterRawMode(),this.enterAltScreen(),this.enableKittyKeyboard(),this.hideCursor(),this.clearScreen(),this.attachStdinListener(),this.installCleanupHandlers();}cleanup(){this.cleanedUp||(this.cleanedUp=true,this.escFlushTimer!==null&&(clearTimeout(this.escFlushTimer),this.escFlushTimer=null),this.resetStyles(),this.resetCursorColor(),this.disableKittyKeyboard(),this.showCursor(),this.exitAltScreen(),this.exitRawMode());}suspend(){this.escFlushTimer!==null&&(clearTimeout(this.escFlushTimer),this.escFlushTimer=null),this.oscState="normal",this.oscAccum="",this.resetStyles(),this.resetCursorColor(),this.disableKittyKeyboard(),this.showCursor(),this.exitAltScreen(),this.exitRawMode();}resume(){this.enterRawMode(),this.enterAltScreen(),this.enableKittyKeyboard(),this.hideCursor(),this.clearScreen();}attachStdinListener(){this.stdinAttached||(this.stdinAttached=true,this.stdin.on("data",t=>{let n=typeof t=="string"?t:t.toString("utf-8");this.dispatchFiltered(n);}));}onData(t){return this.dataHandlers.add(t),()=>{this.dataHandlers.delete(t);}}dispatchFiltered(t){this.escFlushTimer!==null&&(clearTimeout(this.escFlushTimer),this.escFlushTimer=null);let n=this.filterOsc(t);if(n.length>0)for(let r of this.dataHandlers)r(n);this.oscState==="esc"&&(this.escFlushTimer=setTimeout(()=>{this.escFlushTimer=null,this.oscState="normal";for(let r of this.dataHandlers)r("\x1B");},50));}filterOsc(t){let n="";for(let r=0;r<t.length;r++){let o=t[r],s=t.charCodeAt(r);switch(this.oscState){case "normal":s===27?this.oscState="esc":n+=o;break;case "esc":o==="]"?(this.oscState="osc",this.oscAccum=""):(n+="\x1B"+o,this.oscState="normal");break;case "osc":s===7?(this.handleOscResponse(this.oscAccum),this.oscAccum="",this.oscState="normal"):s===27?this.oscState="osc_esc":this.oscAccum+=o;break;case "osc_esc":o==="\\"?(this.handleOscResponse(this.oscAccum),this.oscAccum="",this.oscState="normal"):(this.oscAccum+="\x1B"+o,this.oscState="osc");break}}return n}handleOscResponse(t){let n=t.match(/^4;(\d+);rgb:([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)/);if(n){let r=parseInt(n[1],10),o=parseInt(n[2].substring(0,2),16),s=parseInt(n[3].substring(0,2),16),i=parseInt(n[4].substring(0,2),16);this.palette.set(r,[o,s,i]),this.palette.size>=16&&this.paletteResolve&&(this.paletteResolve(),this.paletteResolve=null);}}queryPalette(){return new Promise(t=>{let n=()=>t(this.palette),r=setTimeout(n,200);this.paletteResolve=()=>{clearTimeout(r),n();};let o="";for(let s=0;s<16;s++)o+=`\x1B]4;${s};?\x07`;this.write(o);})}onResize(t){return this.stdout.on("resize",t),()=>{this.stdout.off("resize",t);}}installCleanupHandlers(){let t=()=>this.cleanup();process.on("exit",t);let n=r=>{t(),process.kill(process.pid,r);};process.once("SIGINT",()=>n("SIGINT")),process.once("SIGTERM",()=>n("SIGTERM")),process.on("uncaughtException",r=>{t(),console.error(r),process.exit(1);}),process.on("unhandledRejection",r=>{t(),console.error(r),process.exit(1);});}};function un(e){switch(e){case 9:return "tab";case 13:return "return";case 27:return "escape";case 32:return "space";case 127:return "backspace";case 57358:return "capslock";case 57359:return "scrolllock";case 57360:return "numlock";case 57361:return "printscreen";case 57362:return "pause";case 57363:return "menu";case 57364:return "f13";case 57365:return "f14";case 57366:return "f15";case 57367:return "f16";case 57368:return "f17";case 57369:return "f18";case 57370:return "f19";case 57371:return "f20";case 57372:return "f21";case 57373:return "f22";case 57374:return "f23";case 57375:return "f24";case 57376:return "f25";case 57399:return "kp0";case 57400:return "kp1";case 57401:return "kp2";case 57402:return "kp3";case 57403:return "kp4";case 57404:return "kp5";case 57405:return "kp6";case 57406:return "kp7";case 57407:return "kp8";case 57408:return "kp9";case 57409:return "kpdecimal";case 57410:return "kpdivide";case 57411:return "kpmultiply";case 57412:return "kpminus";case 57413:return "kpplus";case 57414:return "kpenter";case 57415:return "kpequal";case 57416:return "kpleft";case 57417:return "kpright";case 57418:return "kpup";case 57419:return "kpdown";case 57420:return "kppageup";case 57421:return "kppagedown";case 57422:return "kphome";case 57423:return "kpend";case 57424:return "kpinsert";case 57425:return "kpdelete";case 57428:return "mediaplaypause";case 57429:return "mediastop";case 57430:return "mediaprev";case 57431:return "medianext";case 57432:return "mediarewind";case 57433:return "mediafastforward";case 57434:return "mediamute";case 57435:return "volumedown";case 57436:return "volumeup";default:return e>=32&&e<=126?String.fromCharCode(e).toLowerCase():"unknown"}}function Ir(e){switch(e.split(";")[0]){case "1":return "home";case "2":return "insert";case "3":return "delete";case "4":return "end";case "5":return "pageup";case "6":return "pagedown";case "7":return "home";case "8":return "end";case "11":return "f1";case "12":return "f2";case "13":return "f3";case "14":return "f4";case "15":return "f5";case "17":return "f6";case "18":return "f7";case "19":return "f8";case "20":return "f9";case "21":return "f10";case "23":return "f11";case "24":return "f12";case "25":return "f13";case "26":return "f14";case "28":return "f15";case "29":return "f16";case "31":return "f17";case "32":return "f18";case "33":return "f19";case "34":return "f20";default:return "unknown"}}function nt(e,t){let n=t-1;n&1&&(e.shift=true),n&2&&(e.alt=true),n&4&&(e.ctrl=true),n&8&&(e.meta=true);}function fn(e){let t=[],n=0;for(;n<e.length;){let r=e[n],o=e.charCodeAt(n);if(r==="\x1B"){if(e[n+1]==="["){let s=Rr(e,n);if(s){t.push(s.key),n=s.end;continue}}if(e[n+1]==="O"){let s=vr(e,n);if(s){t.push(s.key),n=s.end;continue}}if(n+1<e.length&&e.charCodeAt(n+1)>=32){let s=e[n+1];t.push({name:s===" "?"space":s.toLowerCase(),sequence:e.substring(n,n+2),alt:true}),n+=2;continue}t.push({name:"escape",sequence:"\x1B"}),n++;continue}if(o>=1&&o<=26){let s=String.fromCharCode(o+96);o===13?t.push({name:"return",sequence:"\r"}):o===9?t.push({name:"tab",sequence:" "}):o===8?t.push({name:"backspace",sequence:"\b"}):t.push({name:s,sequence:r,ctrl:true}),n++;continue}if(o===127){t.push({name:"backspace",sequence:r}),n++;continue}t.push({name:r===" "?"space":r,sequence:r}),n++;}return t}function vr(e,t){if(t+2>=e.length)return null;let n=e[t+2],r=e.substring(t,t+3),o;switch(n){case "A":o={name:"up",sequence:r};break;case "B":o={name:"down",sequence:r};break;case "C":o={name:"right",sequence:r};break;case "D":o={name:"left",sequence:r};break;case "H":o={name:"home",sequence:r};break;case "F":o={name:"end",sequence:r};break;case "P":o={name:"f1",sequence:r};break;case "Q":o={name:"f2",sequence:r};break;case "R":o={name:"f3",sequence:r};break;case "S":o={name:"f4",sequence:r};break;case "j":o={name:"kpmultiply",sequence:r};break;case "k":o={name:"kpplus",sequence:r};break;case "l":o={name:"kpcomma",sequence:r};break;case "m":o={name:"kpminus",sequence:r};break;case "n":o={name:"kpdecimal",sequence:r};break;case "o":o={name:"kpdivide",sequence:r};break;case "p":o={name:"kp0",sequence:r};break;case "q":o={name:"kp1",sequence:r};break;case "r":o={name:"kp2",sequence:r};break;case "s":o={name:"kp3",sequence:r};break;case "t":o={name:"kp4",sequence:r};break;case "u":o={name:"kp5",sequence:r};break;case "v":o={name:"kp6",sequence:r};break;case "w":o={name:"kp7",sequence:r};break;case "x":o={name:"kp8",sequence:r};break;case "y":o={name:"kp9",sequence:r};break;case "M":o={name:"kpenter",sequence:r};break;default:return null}return {key:o,end:t+3}}function Rr(e,t){let n=t+2,r="";for(;n<e.length;){let c=e.charCodeAt(n);if(c>=48&&c<=63)r+=e[n],n++;else break}if(n>=e.length)return null;let o=e[n],s=e.substring(t,n+1);n++;let i;switch(o){case "A":i={name:"up",sequence:s};break;case "B":i={name:"down",sequence:s};break;case "C":i={name:"right",sequence:s};break;case "D":i={name:"left",sequence:s};break;case "H":i={name:"home",sequence:s};break;case "F":i={name:"end",sequence:s};break;case "Z":i={name:"tab",sequence:s,shift:true};break;case "P":i={name:"f1",sequence:s};break;case "Q":i={name:"f2",sequence:s};break;case "R":i={name:"f3",sequence:s};break;case "S":i={name:"f4",sequence:s};break;case "~":{if(r.startsWith("27;")){let c=r.split(";"),l=parseInt(c[1]??"1",10),u=parseInt(c[2]??"0",10);i={name:un(u),sequence:s},nt(i,l);break}if(i={name:Ir(r),sequence:s},r.includes(";")){let c=r.split(";"),l=parseInt(c[1]??"1",10);nt(i,l);}break}case "u":{let c=r.split(";"),l=parseInt(c[0]??"0",10),u=parseInt(c[1]??"1",10);i={name:un(l),sequence:s},nt(i,u);break}case "I":i={name:"focus",sequence:s};break;case "O":i={name:"blur",sequence:s};break;default:i={name:"unknown",sequence:s};}if(r.includes(";")&&!["~","u"].includes(o)){let c=r.split(";"),l=parseInt(c[c.length-1]??"1",10);l>=1&&l<=16&&nt(i,l);}return {key:i,end:n}}var kr={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",blackBright:"\x1B[90m",redBright:"\x1B[91m",greenBright:"\x1B[92m",yellowBright:"\x1B[93m",blueBright:"\x1B[94m",magentaBright:"\x1B[95m",cyanBright:"\x1B[96m",whiteBright:"\x1B[97m"},Pr={black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m",blackBright:"\x1B[100m",redBright:"\x1B[101m",greenBright:"\x1B[102m",yellowBright:"\x1B[103m",blueBright:"\x1B[104m",magentaBright:"\x1B[105m",cyanBright:"\x1B[106m",whiteBright:"\x1B[107m"};function It(e){let t=e.replace("#",""),n=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),o=parseInt(t.substring(4,6),16);return {r:n,g:r,b:o}}function pn(e){if(typeof e=="string"){if(e.startsWith("#")){let{r:o,g:s,b:i}=It(e);return `\x1B[38;2;${o};${s};${i}m`}return kr[e]??"\x1B[39m"}if(typeof e=="number")return `\x1B[38;5;${e}m`;let{r:t,g:n,b:r}=e;return `\x1B[38;2;${t};${n};${r}m`}function dn(e){if(typeof e=="string"){if(e.startsWith("#")){let{r:o,g:s,b:i}=It(e);return `\x1B[48;2;${o};${s};${i}m`}return Pr[e]??"\x1B[49m"}if(typeof e=="number")return `\x1B[48;5;${e}m`;let{r:t,g:n,b:r}=e;return `\x1B[48;2;${t};${n};${r}m`}var mn={black:[0,0,0],red:[170,0,0],green:[0,170,0],yellow:[170,170,0],blue:[0,0,170],magenta:[170,0,170],cyan:[0,170,170],white:[170,170,170],blackBright:[85,85,85],redBright:[255,85,85],greenBright:[85,255,85],yellowBright:[255,255,85],blueBright:[85,85,255],magentaBright:[255,85,255],cyanBright:[85,255,255],whiteBright:[255,255,255]},hn=["black","red","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"],$e=null;function gn(e){e.size>0&&($e=e);}function Tr(e){if($e){let t=hn.indexOf(e);if(t!==-1){let n=$e.get(t);if(n)return n}}return mn[e]??null}function Er(e){if(typeof e=="string"){if(e.startsWith("#")){let t=It(e);return [t.r,t.g,t.b]}return Tr(e)}if(typeof e=="number"){if(e<16){if($e){let s=$e.get(e);if(s)return s}return mn[hn[e]]}if(e>=232){let s=(e-232)*10+8;return [s,s,s]}let t=e-16,n=t%6*51,r=Math.floor(t/6)%6*51;return [Math.floor(t/36)*51,r,n]}return [e.r,e.g,e.b]}function rt(e){let t=Er(e);if(!t)return false;let[n,r,o]=t.map(i=>{let c=i/255;return c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4)});return .2126*n+.7152*r+.0722*o>.4}function vt(e,t){return e===t?true:e==null||t==null?false:typeof e=="object"&&typeof t=="object"?e.r===t.r&&e.g===t.g&&e.b===t.b:false}function yn(e){return e&&rt(e)?"black":"white"}var He=class e{width;height;cells;constructor(t,n){this.width=t,this.height=n,this.cells=new Array(t*n),this.clear();}clear(){for(let t=0;t<this.cells.length;t++)this.cells[t]={ch:" "};}resize(t,n){this.width=t,this.height=n,this.cells=new Array(t*n),this.clear();}get(t,n){if(!(t<0||t>=this.width||n<0||n>=this.height))return this.cells[n*this.width+t]}set(t,n,r){t<0||t>=this.width||n<0||n>=this.height||(this.cells[n*this.width+t]=r);}setChar(t,n,r,o,s,i,c,l,u){t<0||t>=this.width||n<0||n>=this.height||(this.cells[n*this.width+t]={ch:r,fg:o,bg:s,bold:i,dim:c,italic:l,underline:u});}fillRect(t,n,r,o,s,i,c){for(let l=n;l<n+o;l++)for(let u=t;u<t+r;u++)this.setChar(u,l,s,i,c);}clone(){let t=new e(this.width,this.height);for(let n=0;n<this.cells.length;n++){let r=this.cells[n];t.cells[n]={...r};}return t}cellsEqual(t,n){return t.ch===n.ch&&vt(t.fg,n.fg)&&vt(t.bg,n.bg)&&(t.bold??false)===(n.bold??false)&&(t.dim??false)===(n.dim??false)&&(t.italic??false)===(n.italic??false)&&(t.underline??false)===(n.underline??false)}};var Nr={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|"}};function xn(e){return e==="none"?null:Nr[e]}function bn(e,t,n,r){if(e.length===0)return {width:0,height:0};let o=e.split(`
2
+ `);if(n===MeasureMode.Undefined||r==="none"){let l=0;for(let u of o){let f=he(u);f>l&&(l=f);}return {width:l,height:o.length}}let s=Math.max(1,Math.floor(t)),i=fe(o,s,r),c=0;for(let l of i){let u=he(l);u>c&&(c=u);}return {width:c,height:i.length}}function fe(e,t,n){let r=[];for(let o of e){if(he(o)<=t){r.push(o);continue}if(n==="truncate"){r.push(Cn(o,t));continue}if(n==="ellipsis"){r.push(Fr(o,t));continue}let i=Gr(o,t);r.push(...i);}return r}function Cn(e,t){let n="",r=0;for(let o of e){let s=he(o);if(r+s>t)break;n+=o,r+=s;}return n}function Fr(e,t){if(t<=1)return t===1?"\u2026":"";let n=Cn(e,t-1);return he(n)<he(e)?n+"\u2026":e}function Gr(e,t){let n=[],r="",o=0,s="",i=0;for(let c=0;c<=e.length;c++){let l=e[c],u=c===e.length,f=l===" ";if(u||f){if(s.length>0){if(o+i<=t)r+=s,o+=i;else if(i<=t)r.length>0&&n.push(r),r=s,o=i;else for(let h of s){let S=he(h);o+S>t&&r.length>0&&(n.push(r),r="",o=0),r+=h,o+=S;}s="",i=0;}f&&(o+1<=t?(r+=" ",o+=1):(r.length>0&&n.push(r),r=" ",o=1));}else l&&(s+=l,i+=he(l));}return r.length>0&&n.push(r),n.length>0?n:[""]}var Sn={30:"black",31:"red",32:"green",33:"yellow",34:"blue",35:"magenta",36:"cyan",37:"white",90:"blackBright",91:"redBright",92:"greenBright",93:"yellowBright",94:"blueBright",95:"magentaBright",96:"cyanBright",97:"whiteBright"},wn={40:"black",41:"red",42:"green",43:"yellow",44:"blue",45:"magenta",46:"cyan",47:"white",100:"blackBright",101:"redBright",102:"greenBright",103:"yellowBright",104:"blueBright",105:"magentaBright",106:"cyanBright",107:"whiteBright"};function Lr(e,t){let n=0;for(;n<e.length;){let r=e[n];switch(r){case 0:t.fg=void 0,t.bg=void 0,t.bold=false,t.dim=false,t.italic=false,t.underline=false;break;case 1:t.bold=true;break;case 2:t.dim=true;break;case 3:t.italic=true;break;case 4:t.underline=true;break;case 22:t.bold=false,t.dim=false;break;case 23:t.italic=false;break;case 24:t.underline=false;break;case 39:t.fg=void 0;break;case 49:t.bg=void 0;break;case 38:if(e[n+1]===5&&e[n+2]!==void 0)t.fg=e[n+2],n+=2;else if(e[n+1]===2&&e[n+4]!==void 0){let o=e[n+2]??0,s=e[n+3]??0,i=e[n+4]??0;t.fg=`#${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`,n+=4;}break;case 48:if(e[n+1]===5&&e[n+2]!==void 0)t.bg=e[n+2],n+=2;else if(e[n+1]===2&&e[n+4]!==void 0){let o=e[n+2]??0,s=e[n+3]??0,i=e[n+4]??0;t.bg=`#${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`,n+=4;}break;default:Sn[r]?t.fg=Sn[r]:wn[r]&&(t.bg=wn[r]);break}n++;}}function Rt(e){let t=[],n={},r="",o=/\x1b\[([0-9;]*)m/g,s=0,i;for(;(i=o.exec(e))!==null;){let l=e.slice(s,i.index);l&&(r+=l),r&&(t.push({text:r,style:{...n}}),r="");let f=(i[1]||"0").split(";").map(h=>parseInt(h,10)||0);Lr(f,n),s=o.lastIndex;}let c=e.slice(s);return c&&(r+=c),r&&t.push({text:r,style:{...n}}),t}function kt(e){return e.replace(/\x1b\[[0-9;]*m/g,"")}function In(e,t,n={}){t.clear();let r={},o=[],s={x:0,y:0,width:t.width,height:t.height};for(let i of e)i.hidden||vn(i,s,i.style.zIndex??0,o);o.sort((i,c)=>i.zIndex-c.zIndex);for(let i of o){let c=jr(i.node,t,i.clip,n);c?.cursorPosition&&(r.cursorPosition=c.cursorPosition);}return r}function vn(e,t,n,r){if(e.hidden)return;let o=e.style.zIndex??n,s=e.style.clip?Mr(t,{x:e.layout.innerX,y:e.layout.innerY,width:e.layout.innerWidth,height:e.layout.innerHeight}):t;if(r.push({node:e,clip:t,zIndex:o}),e.type!=="text"&&e.type!=="input")for(let i of e.children)vn(i,s,o,r);}function Mr(e,t){let n=Math.max(e.x,t.x),r=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return {x:n,y:r,width:Math.max(0,o-n),height:Math.max(0,s-r)}}function ot(e,t,n){return e>=n.x&&e<n.x+n.width&&t>=n.y&&t<n.y+n.height}function jr(e,t,n,r={}){let{x:o,y:s,width:i,height:c,innerX:l,innerY:u,innerWidth:f,innerHeight:h}=e.layout,S=e.style;if(i<=0||c<=0)return;let P=et(e).bg;if(S.bg)for(let g=s;g<s+c;g++)for(let b=o;b<o+i;b++)ot(b,g,n)&&t.setChar(b,g," ",void 0,S.bg);let d=S.border?xn(S.border):null;if(d&&i>=2&&c>=2){let g=S.borderColor,b=P;pe(t,n,o,s,d.topLeft,g,b);for(let k=o+1;k<o+i-1;k++)pe(t,n,k,s,d.horizontal,g,b);pe(t,n,o+i-1,s,d.topRight,g,b),pe(t,n,o,s+c-1,d.bottomLeft,g,b);for(let k=o+1;k<o+i-1;k++)pe(t,n,k,s+c-1,d.horizontal,g,b);pe(t,n,o+i-1,s+c-1,d.bottomRight,g,b);for(let k=s+1;k<s+c-1;k++)pe(t,n,o,k,d.vertical,g,b),pe(t,n,o+i-1,k,d.vertical,g,b);}if(e.type==="text")Ar(e,t,n);else if(e.type==="input")return $r(e,t,n,r)}function pe(e,t,n,r,o,s,i,c,l,u,f){ot(n,r,t)&&e.setChar(n,r,o,s,i,c,l,u,f);}function Rn(e,t){if(e!==void 0)return e;if(t!==void 0)return rt(t)?"black":"white"}function Ar(e,t,n){let{innerX:r,innerY:o,innerWidth:s,innerHeight:i}=e.layout,c=et(e),l=St(e);if(!l)return;let u=Rn(c.color,c.bg),f=e.style.wrap??"wrap",h=e.style.textAlign??"left",S=l.split(`
3
+ `),I=S.map(d=>kt(d)),P=fe(I,s,f);for(let d=0;d<P.length&&d<i;d++){let g=0,b=0;for(let y=0;y<I.length;y++){let G=fe([I[y]],s,f).length;if(d<b+G){g=y;break}b+=G;}let k=P[d],R=he(k),A=0;h==="center"?A=Math.max(0,Math.floor((s-R)/2)):h==="right"&&(A=Math.max(0,s-R));let D=S[g],B=Rt(D),F=d-b,E=fe([I[g]],s,f),M=0;for(let y=0;y<F;y++)M+=E[y].length;let x=M+k.length,C=0,w=0;for(let y of B)for(let G of y.text){if(w>=M&&w<x){if(he(G)>0){let H=y.style.fg??u,V=y.style.bg??c.bg,q=y.style.bold??c.bold,_=y.style.dim??c.dim,K=y.style.italic??c.italic,O=y.style.underline??c.underline;pe(t,n,r+A+C,o+d,G,H,V,q,_,K,O);}C+=he(G);}w++;}}}function $r(e,t,n,r={}){let{cursorInfo:o,useNativeCursor:s}=r,{innerX:i,innerY:c,innerWidth:l,innerHeight:u}=e.layout;if(l<=0||u<=0)return;let f=e.props.value??e.props.defaultValue??"",h=e.props.placeholder??"",S=f||h,I=!f&&!!h,P=e.props.multiline??false,d=et(e),g=Rn(d.color,d.bg),b=d.bg?rt(d.bg)?"blackBright":"whiteBright":"blackBright",k=I?b:g??d.color??e.style.color,R=I?b:k,A=I?true:d.dim,D=o&&o.nodeId===e.focusId,B;if(P&&!I){let F=e.style.wrap??"wrap",E=S.split(`
4
+ `),M=fe(E,l,F),x=0,C=0;if(D){let y=o.position,G=0,W=y,H=0;for(let O=0;O<E.length;O++){let j=E[O].length;if(y<=H+j){G=O,W=y-H;break}H+=j+1;}let V=0;for(let O=0;O<G;O++)V+=fe([E[O]],l,F).length;let q=fe([E[G]],l,F),_=0,K=0;for(let O=0;O<q.length;O++){let j=q[O];if(W<=_+j.length){K=O;break}_+=j.length;}x=V+K,C=he(E[G].slice(_,_+(W-_)));}let w=Math.max(0,x-u+1);for(let y=0;y<u;y++){let G=w+y;if(G>=M.length)break;let W=M[G],H=0;for(let V of W){if(H>=l)break;let q=he(V);q>0&&pe(t,n,i+H,c+y,V,R,d.bg,d.bold,A,d.italic,d.underline),H+=q;}}if(D){let y=x-w;if(y>=0&&y<u){let G=Math.min(C,l-1),W=i+G,H=c+y;if(ot(W,H,n)&&W<i+l)if(s)B={cursorPosition:{x:W,y:H,bg:d.bg}};else {let V=t.get(W,H),q=V?.ch&&V.ch!==" "?V.ch:"\u258C",_=d.bg??"black",K=d.color??"white";t.setChar(W,H,q,_,K,V?.bold,V?.dim,V?.italic,false);}}}}else {let F=0;for(let E of S){if(F>=l)break;let M=he(E);M>0&&pe(t,n,i+F,c,E,R,d.bg,d.bold,A,d.italic,d.underline),F+=M;}if(D){let E=Math.min(o.position,l-1),M=i+E;if(ot(M,c,n)&&M<i+l)if(s)B={cursorPosition:{x:M,y:c,bg:d.bg}};else {let x=t.get(M,c),C=x?.ch&&x.ch!==" "?x.ch:"\u258C",w=d.bg??"black",y=d.color??"white";t.setChar(M,c,C,w,y,x?.bold,x?.dim,x?.italic,false);}}}return B}var Hr="\x1B",we=`${Hr}[`;function Vr(e,t){return `${we}${t+1};${e+1}H`}function Or(e){let t=`${we}0m`;return e.bold&&(t+=`${we}1m`),e.dim&&(t+=`${we}2m`),e.italic&&(t+=`${we}3m`),e.underline&&(t+=`${we}4m`),e.fg!=null&&(t+=pn(e.fg)),e.bg!=null&&(t+=dn(e.bg)),t}function kn(e,t,n){let r="",o=-1,s=-1,i="";for(let c=0;c<t.height;c++)for(let l=0;l<t.width;l++){let u=t.get(l,c);if(!n){let h=e.get(l,c);if(h&&t.cellsEqual(u,h))continue}(s!==c||o!==l)&&(r+=Vr(l,c));let f=Or(u);f!==i&&(r+=f,i=f),r+=u.ch,o=l+1,s=c;}return r.length>0&&(r+=`${we}0m`),r}var _r={row:FlexDirection.Row,column:FlexDirection.Column},qr={"flex-start":Justify.FlexStart,center:Justify.Center,"flex-end":Justify.FlexEnd,"space-between":Justify.SpaceBetween,"space-around":Justify.SpaceAround},zr={"flex-start":Align.FlexStart,center:Align.Center,"flex-end":Align.FlexEnd,stretch:Align.Stretch};function En(e,t,n){n!==void 0&&(typeof n=="string"&&n.endsWith("%"),t(n));}function ge(e,t,n){n!==void 0&&(typeof n=="string"&&n.endsWith("%")?e.setPositionPercent(t,parseFloat(n)):e.setPosition(t,n));}function Xr(e,t,n){En(e,o=>e.setWidth(o),t.width),En(e,o=>e.setHeight(o),t.height),t.minWidth!==void 0&&e.setMinWidth(t.minWidth),t.minHeight!==void 0&&e.setMinHeight(t.minHeight),t.maxWidth!==void 0&&e.setMaxWidth(t.maxWidth),t.maxHeight!==void 0&&e.setMaxHeight(t.maxHeight),t.padding!==void 0&&e.setPadding(Edge.All,t.padding),t.paddingX!==void 0&&e.setPadding(Edge.Horizontal,t.paddingX),t.paddingY!==void 0&&e.setPadding(Edge.Vertical,t.paddingY),t.paddingTop!==void 0&&e.setPadding(Edge.Top,t.paddingTop),t.paddingRight!==void 0&&e.setPadding(Edge.Right,t.paddingRight),t.paddingBottom!==void 0&&e.setPadding(Edge.Bottom,t.paddingBottom),t.paddingLeft!==void 0&&e.setPadding(Edge.Left,t.paddingLeft);let r=t.border!=null&&t.border!=="none";e.setBorder(Edge.All,r?1:0),t.flexDirection&&e.setFlexDirection(_r[t.flexDirection]??FlexDirection.Column),t.flexWrap&&e.setFlexWrap(t.flexWrap==="wrap"?Wrap.Wrap:Wrap.NoWrap),t.justifyContent&&e.setJustifyContent(qr[t.justifyContent]??Justify.FlexStart),t.alignItems&&e.setAlignItems(zr[t.alignItems]??Align.Stretch),t.flexGrow!==void 0&&e.setFlexGrow(t.flexGrow),t.flexShrink!==void 0&&e.setFlexShrink(t.flexShrink),t.gap!==void 0&&e.setGap(Gutter.All,t.gap),t.position==="absolute"?e.setPositionType(PositionType.Absolute):e.setPositionType(PositionType.Relative),t.inset!==void 0&&(ge(e,Edge.Top,t.inset),ge(e,Edge.Right,t.inset),ge(e,Edge.Bottom,t.inset),ge(e,Edge.Left,t.inset)),ge(e,Edge.Top,t.top),ge(e,Edge.Right,t.right),ge(e,Edge.Bottom,t.bottom),ge(e,Edge.Left,t.left),t.clip&&e.setOverflow(Overflow.Hidden);}function Bn(e){let t=Nn.Node.create();if(e.yogaNode=t,Xr(t,e.style,e.type),e.type==="text"||e.type==="input")t.setMeasureFunc((n,r,o,s)=>{let i;return e.type==="input"?(i=e.props.value??e.props.defaultValue??e.props.placeholder??"",i.length===0&&(i=" ")):i=Fn(e),bn(i,n,r,e.style.wrap??"wrap")});else for(let n=0;n<e.children.length;n++){let r=e.children[n];r.hidden||(Bn(r),t.insertChild(r.yogaNode,t.getChildCount()));}}function Fn(e){if(e.text!=null)return e.text;let t="";for(let n of e.children)t+=Fn(n);if(t===""&&e.props.children!=null){if(typeof e.props.children=="string")return e.props.children;if(typeof e.props.children=="number")return String(e.props.children)}return t}function Gn(e,t,n){let r=e.yogaNode,o=r.getComputedLayout(),s=t+o.left,i=n+o.top,c=o.width,l=o.height,u=e.style.border&&e.style.border!=="none"?1:0,f=r.getComputedPadding(Edge.Top),h=r.getComputedPadding(Edge.Right),S=r.getComputedPadding(Edge.Bottom),I=r.getComputedPadding(Edge.Left),P=s+u+I,d=i+u+f,g=Math.max(0,c-u*2-I-h),b=Math.max(0,l-u*2-f-S),k=e.layout;(!k||k.x!==s||k.y!==i||k.width!==c||k.height!==l||k.innerX!==P||k.innerY!==d||k.innerWidth!==g||k.innerHeight!==b)&&(e.layout={x:s,y:i,width:c,height:l,innerX:P,innerY:d,innerWidth:g,innerHeight:b});for(let R of e.children)R.hidden||!R.yogaNode||Gn(R,s,i);}function Ln(e,t,n){let r=Nn.Node.create();r.setWidth(t),r.setHeight(n),r.setFlexDirection(FlexDirection.Column);for(let o of e)o.hidden||(Bn(o),r.insertChild(o.yogaNode,r.getChildCount()));r.calculateLayout(t,n,Direction.LTR);for(let o of e)o.hidden||!o.yogaNode||Gn(o,0,0);r.freeRecursive(),Mn(e);}function Mn(e){for(let t of e)t.yogaNode=null,Mn(t.children);}var J=createContext(null),z=createContext(null),se=createContext(null),Be=createContext(null),it=createContext(null),lt=createContext(null);var te=null;function Oe(e=false){if(te)return te;let t=process.env.TERM||"",n=process.env.TERM_PROGRAM||"",r=process.env.KITTY_WINDOW_ID,o=process.env.GHOSTTY_RESOURCES_DIR,s=process.env.WEZTERM_PANE,i=process.env.LC_TERMINAL||"",c=process.env.KONSOLE_VERSION;return r||t==="xterm-kitty"?(te={name:"kitty",supportsKittyGraphics:true,supportsIterm2Images:false,supportsSixel:false},te):o||t.includes("ghostty")?(te={name:"ghostty",supportsKittyGraphics:true,supportsIterm2Images:false,supportsSixel:false},te):s||n==="WezTerm"?(te={name:"wezterm",supportsKittyGraphics:true,supportsIterm2Images:true,supportsSixel:true},te):n==="iTerm.app"||i==="iTerm2"?(te={name:"iterm2",supportsKittyGraphics:false,supportsIterm2Images:true,supportsSixel:false},te):c?(te={name:"konsole",supportsKittyGraphics:false,supportsIterm2Images:false,supportsSixel:true},te):n==="vscode"?(te={name:"vscode",supportsKittyGraphics:false,supportsIterm2Images:false,supportsSixel:false},te):(te={name:"unknown",supportsKittyGraphics:false,supportsIterm2Images:false,supportsSixel:false},te)}function Pt(){let e=Oe();return e.supportsKittyGraphics||e.supportsIterm2Images||e.supportsSixel}var re="\x1B";function ct(){return !!process.env.TMUX}function Tt(e){if(!ct())return e;let t=e.replace(/\x1b/g,"\x1B\x1B");return `${re}Ptmux;${t}${re}\\`}function jn(e){let t=Oe();return t.supportsKittyGraphics?Ur(e):t.supportsIterm2Images?Jr(e):null}function An(e){if(Oe().supportsKittyGraphics){let n;return n=`${re}_Ga=d,d=a${re}\\`,Tt(n)}return null}function Ur(e){let{data:t,width:n,height:r,x:o,y:s}=e,c=t.toString("base64"),l=`${re}[${s+1};${o+1}H`,u=Et(t),f="a=T,f=100";u&&(f+=`,s=${u.width},v=${u.height}`),f+=`,c=${n},r=${r}`;let h=4096,S=[l];ct()&&S.unshift(`${re}[?25l`);for(let I=0;I<c.length;I+=h){let P=c.slice(I,I+h),g=I+h>=c.length?"m=0":"m=1",b;I===0?b=`${re}_G${f},${g},q=2;${P}${re}\\`:b=`${re}_G${g};${P}${re}\\`,S.push(Tt(b));}return ct()&&S.push(`${re}[?25h`),S.join("")}function Jr(e){let{data:t,width:n,height:r,x:o,y:s}=e,i=t.toString("base64"),c=`${re}[${s+1};${o+1}H`,l=[`width=${n}`,`height=${r}`,"preserveAspectRatio=1","inline=1"].join(";"),u=`${re}]1337;File=${l}:${i}\x07`;return c+(ct()?Tt(u):u)}function Et(e){if(e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e.length>=24){let t=e.readUInt32BE(16),n=e.readUInt32BE(20);return {width:t,height:n}}if(e[0]===255&&e[1]===216&&e[2]===255){let t=2;for(;t<e.length-8;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n!==void 0&&(n>=192&&n<=195||n>=197&&n<=199||n>=201&&n<=203||n>=205&&n<=207)){let o=e.readUInt16BE(t+5);return {width:e.readUInt16BE(t+7),height:o}}let r=e.readUInt16BE(t+2);t+=2+r;}}if(e[0]===71&&e[1]===73&&e[2]===70&&e.length>=10){let t=e.readUInt16LE(6),n=e.readUInt16LE(8);return {width:t,height:n}}return null}function Yr(e,t={}){let n=t.stdout??process.stdout,r=t.stdin??process.stdin,o=t.debug??false,s=t.useNativeCursor??true,i=new tt(n,r);i.setup();let c=false;i.queryPalette().then(a=>{gn(a),f=true,V();});let l=new He(i.columns,i.rows),u=new He(i.columns,i.rows),f=true,h=new Set,S=new Set,I=new Map,P={subscribe(a){return h.add(a),()=>h.delete(a)},subscribePriority(a){return S.add(a),()=>S.delete(a)},registerInputHandler(a,m){return I.set(a,m),()=>I.delete(a)}},d=new Map,g=new Map,b={registerImage(a){let m=d.get(a.id);(!m||m.x!==a.x||m.y!==a.y||m.width!==a.width||m.height!==a.height)&&(g.set(a.id,a),V());},unregisterImage(a){d.delete(a),g.delete(a);}};function k(){for(let a of g.values()){let m=jn({data:a.data,width:a.width,height:a.height,x:a.x,y:a.y,id:a.id});m&&(i.write(m),d.set(a.id,{x:a.x,y:a.y,width:a.width,height:a.height}));}g.clear();}let R=null,A=new Map,D=[],B=new Set,F=[],E=new Set;function M(a){if(R!==a){R=a,V();for(let m of E)m(R);}}function x(){let a=[...D];if(F.length>0){let m=F[F.length-1];a=a.filter(v=>m.has(v));}return a=a.filter(m=>!B.has(m)),a.sort((m,v)=>{let N=A.get(m),p=A.get(v);if(!N||!p)return 0;let L=N.layout,$=p.layout;return L.y!==$.y?L.y-$.y:L.x-$.x}),a}let C={get focusedId(){return R},register(a,m){if(A.set(a,m),D.includes(a)||D.push(a),F.length>0&&F[F.length-1].add(a),R===null){let v=x();v.length>0&&M(v[0]);}return ()=>{A.delete(a);let v=D.indexOf(a);if(v!==-1&&D.splice(v,1),R===a){let N=x();M(N[0]??null);}}},requestFocus(a){M(a);},focusNext(){let a=x();if(a.length===0)return;let v=((R?a.indexOf(R):-1)+1)%a.length;M(a[v]);},focusPrev(){let a=x();if(a.length===0)return;let v=((R?a.indexOf(R):0)-1+a.length)%a.length;M(a[v]);},setSkippable(a,m){if(m){if(B.add(a),R===a){let v=x();v.length>0&&M(v[0]);}}else B.delete(a);},trapIds:null,pushTrap(a){return F.push(a),()=>{let m=F.indexOf(a);m!==-1&&F.splice(m,1);}},onFocusChange(a){return E.add(a),()=>{E.delete(a);}},getRegisteredElements(){let a=[];for(let m of D){if(B.has(m))continue;let v=A.get(m);v&&a.push({id:m,node:v});}return a},getActiveElements(){let a=x(),m=[];for(let v of a){if(B.has(v))continue;let N=A.get(v);N&&m.push({id:v,node:N});}return m}},w=new Map,y={getLayout(a){return a.layout},subscribe(a,m){return w.has(a)||w.set(a,new Set),w.get(a).add(m),()=>{let v=w.get(a);v&&(v.delete(m),v.size===0&&w.delete(a));}}},G={registerNode(){},unregisterNode(){},scheduleRender:V,exit(a){T.exit(a);},get columns(){return i.columns},get rows(){return i.rows}},W={type:"root",children:[],onCommit(){V();}},H=false;function V(){H||(H=true,queueMicrotask(()=>{H=false,q();}));}function q(){let a=i.columns,m=i.rows;(u.width!==a||u.height!==m)&&(u.resize(a,m),l.resize(a,m),f=true),Ln(W.children,a,m),_(W.children);let v;if(R){let L=A.get(R);L?.type==="input"&&(v={nodeId:R,position:L.props.cursorPosition??L.props.value?.length??0});}let N=In(W.children,u,{cursorInfo:v,useNativeCursor:s}),p=kn(l,u,f);if(p.length>0&&i.write(p),g.size>0&&c&&(i.hideCursor(),c=false),k(),s)if(N.cursorPosition){let L=yn(N.cursorPosition.bg);i.setCursorColor(L),i.moveCursor(N.cursorPosition.x,N.cursorPosition.y),c||(i.showCursor(),c=true);}else i.hideCursor(),c=false;for(let L=0;L<u.cells.length;L++)l.cells[L]={...u.cells[L]};f=false;}function _(a){for(let m of a){let v=w.get(m);if(v)for(let N of v)N(m.layout);_(m.children);}}let K=i.onData(a=>{let m=fn(a);for(let v of m){if(v.ctrl&&v.name==="c"){T.exit();return}if(v.ctrl&&v.name==="z"){i.suspend(),process.kill(0,"SIGSTOP");return}let N=false;for(let p of S)if(p(v)){N=true;break}if(!N&&R){let p=I.get(R);p&&(N=p(v));}if(!N&&v.name==="tab"&&!v.ctrl&&!v.alt){v.shift?C.focusPrev():C.focusNext();continue}if(!N)for(let p of h)p(v);}}),O=i.onResize(()=>{f=true,V();}),j=()=>{i.resume(),f=true,V();};process.on("SIGCONT",j);let Q=oe.createElement(Be.Provider,{value:G},oe.createElement(J.Provider,{value:P},oe.createElement(z.Provider,{value:C},oe.createElement(se.Provider,{value:y},oe.createElement(lt.Provider,{value:b},e))))),ne=a=>{o&&console.error("Uncaught error:",a);},ee=a=>{o&&console.error("Error caught by boundary:",a);},ae=a=>{o&&console.error("Recoverable error:",a);},Z=Ae.createContainer(W,0,null,false,null,"",ne,ee,ae,null);Ae.updateContainer(Q,Z,null,null);let T={unmount(){Ae.updateContainer(null,Z,null,null),K(),O(),process.off("SIGCONT",j);let a=An();a&&i.write(a),i.cleanup();},exit(a){T.unmount(),process.exit(a??0);}};return T}var eo=forwardRef(function({children:t,style:n,focusable:r},o){return oe.createElement("box",{style:n,focusable:r,ref:o},t)});var ro=forwardRef(function({children:t,style:n,wrap:r},o){let s=r?{...n,wrap:r}:n;return oe.createElement("text",{style:s,ref:o},t)});function $n(e,t,n){if(n<=0)return {visualLine:0,visualCol:t,totalVisualLines:1,lineStartOffset:0,lineLength:e.length};let r=e.split(`
5
+ `),o=[],s=0;for(let l of r){let u=fe([l],n,"wrap"),f=0;for(let h of u)o.push({text:h,logicalOffset:s+f}),f+=h.length;s+=l.length+1;}let i=0;for(let l=0;l<o.length;l++){let u=o[l],f=u.text.length,h=l+1<o.length&&o[l+1].logicalOffset!==u.logicalOffset+f,S=f+(h?1:0);if(t<i+f||l===o.length-1)return {visualLine:l,visualCol:Math.min(t-i,f),totalVisualLines:o.length,lineStartOffset:i,lineLength:f};i+=S;}let c=o.length-1;return {visualLine:c,visualCol:o[c].text.length,totalVisualLines:o.length,lineStartOffset:i-o[c].text.length,lineLength:o[c].text.length}}function Hn(e,t,n,r){if(r<=0)return Math.min(n,e.length);let o=e.split(`
6
+ `),s=[],i=0;for(let f of o){let h=fe([f],r,"wrap"),S=0;for(let I of h)s.push({text:I,startOffset:i+S}),S+=I.length;i+=f.length+1;}let c=Math.max(0,Math.min(t,s.length-1)),l=s[c],u=Math.min(n,l.text.length);return l.startOffset+u}function We(e,t){let n=e.split(`
7
+ `),r=t;for(let s=0;s<n.length;s++){if(r<=n[s].length)return {line:s,col:r,lines:n};r-=n[s].length+1;}let o=n.length-1;return {line:o,col:n[o].length,lines:n}}function _e(e,t,n){let r=0;for(let o=0;o<t&&o<e.length;o++)r+=e[o].length+1;return r+Math.min(n,e[t]?.length??0)}function so(e){let{value:t,defaultValue:n="",onChange:r,onKeyPress:o,onBeforeChange:s,placeholder:i,style:c,focusedStyle:l,multiline:u,autoFocus:f,type:h="text"}=e,[S,I]=useState(n),[P,d]=useState(n.length),[g,b]=useState(0),[k,R]=useState(false),[A,D]=useState(false),B=useContext(J),F=useContext(z),E=useContext(se),M=useRef(null),x=useRef(null),C=t!==void 0,w=C?t:S;useEffect(()=>{if(!E||!M.current)return;let K=E.getLayout(M.current);return b(K.innerWidth),E.subscribe(M.current,O=>{b(O.innerWidth);})},[E]);let y=useRef(w),G=useRef(P),W=useRef(w),H=useRef(P);useEffect(()=>{w!==W.current&&(y.current=w,W.current=w,G.current=w.length,H.current=w.length,d(w.length));},[w]),useEffect(()=>{P!==H.current&&(G.current=P,H.current=P);},[P]);let V=useRef({isControlled:C,onChange:r,onKeyPress:o,onBeforeChange:s,multiline:u??false,innerWidth:g,type:h});V.current={isControlled:C,onChange:r,onKeyPress:o,onBeforeChange:s,multiline:u??false,innerWidth:g,type:h},useEffect(()=>{if(!(!F||!x.current||!M.current))return F.register(x.current,M.current)},[F,A]);let q=useRef(false);useEffect(()=>{if(!A){q.current=false;return}if(f&&!q.current&&F&&x.current){q.current=true;let K=x.current,O=setTimeout(()=>{F.requestFocus(K);},0);return ()=>clearTimeout(O)}},[f,F,A]),useEffect(()=>{if(!F||!x.current)return;let K=x.current;return R(F.focusedId===K),F.onFocusChange(O=>{R(O===K);})},[F,A]),useEffect(()=>{if(!B||!x.current)return;let K=x.current,O=j=>{let{isControlled:Q,onChange:ne,onKeyPress:ee,onBeforeChange:ae,multiline:Z}=V.current;if(ee?.(j)===true)return true;let T=y.current,a=G.current;if(j.name==="escape")return false;let m=(p,L)=>{let $=p,U=L;if(ae){let X=ae(p,T);if(X===false)return;typeof X=="string"&&($=X,U=X.length);}y.current=$,G.current=U,W.current=$,H.current=U,Q||I($),ne?.($),d(U);},v=p=>{G.current=p,H.current=p,d(p);};if(j.name==="return"){if(Z){let p=T.slice(0,a)+`
8
+ `+T.slice(a);return m(p,a+1),true}return false}if(j.ctrl){if(j.name==="w"){if(a>0){let p=a;for(;p>0&&T[p-1]===" ";)p--;for(;p>0&&T[p-1]!==" "&&(!Z||T[p-1]!==`
9
+ `);)p--;let L=T.slice(0,p)+T.slice(a);m(L,p);}return true}if(j.name==="a"){if(Z){let{line:p,lines:L}=We(T,a);v(_e(L,p,0));}else v(0);return true}if(j.name==="e"){if(Z){let{line:p,lines:L}=We(T,a);v(_e(L,p,L[p].length));}else v(T.length);return true}if(j.name==="k"){if(Z){let{line:p,lines:L}=We(T,a),$=_e(L,p,L[p].length);if(a<$){let U=T.slice(0,a)+T.slice($);m(U,a);}}else if(a<T.length){let p=T.slice(0,a);m(p,a);}return true}return false}if(j.alt){if(j.name==="left"||j.name==="b"){let p=a;for(;p>0&&T[p-1]===" ";)p--;for(;p>0&&T[p-1]!==" "&&T[p-1]!==`
10
+ `;)p--;return v(p),true}if(j.name==="right"||j.name==="f"){let p=a;for(;p<T.length&&T[p]!==" "&&T[p]!==`
11
+ `;)p++;for(;p<T.length&&T[p]===" ";)p++;return v(p),true}if(j.name==="backspace"||j.name==="d")if(j.name==="backspace"){if(a>0){let p=a;for(;p>0&&T[p-1]===" ";)p--;for(;p>0&&T[p-1]!==" "&&T[p-1]!==`
12
+ `;)p--;let L=T.slice(0,p)+T.slice(a);m(L,p);}return true}else {if(a<T.length){let p=a;for(;p<T.length&&T[p]!==" "&&T[p]!==`
13
+ `;)p++;for(;p<T.length&&T[p]===" ";)p++;let L=T.slice(0,a)+T.slice(p);m(L,a);}return true}return false}if(j.name==="left")return v(Math.max(0,a-1)),true;if(j.name==="right")return v(Math.min(T.length,a+1)),true;if(j.name==="up"){let{innerWidth:p}=V.current,L=$n(T,a,p);return L.visualLine>0&&v(Hn(T,L.visualLine-1,L.visualCol,p)),true}if(j.name==="down"){let{innerWidth:p}=V.current,L=$n(T,a,p);return L.visualLine<L.totalVisualLines-1&&v(Hn(T,L.visualLine+1,L.visualCol,p)),true}if(j.name==="home"){if(Z){let{line:p,lines:L}=We(T,a);v(_e(L,p,0));}else v(0);return true}if(j.name==="end"){if(Z){let{line:p,lines:L}=We(T,a);v(_e(L,p,L[p].length));}else v(T.length);return true}if(j.name==="backspace"){if(a>0){let p=T.slice(0,a-1)+T.slice(a);m(p,a-1);}return true}if(j.name==="delete"){if(a<T.length){let p=T.slice(0,a)+T.slice(a+1);m(p,a);}return true}if(j.name.length>1)return false;let N=j.sequence;if(N.length===1&&N.charCodeAt(0)>=32){let{type:p}=V.current;if(p==="number"){let $=/[0-9]/.test(N),U=N==="."&&!T.includes("."),X=N==="-"&&a===0&&!T.includes("-");if(!$&&!U&&!X)return true}let L=T.slice(0,a)+N+T.slice(a);return m(L,a+1),true}return false};return B.registerInputHandler(K,O)},[B,A]);let _={...c,...k&&l?l:{}};return oe.createElement("input",{style:_,value:w,defaultValue:n,placeholder:i,onChange:r,cursorPosition:G.current,multiline:u??false,focused:k,ref:K=>{K?(M.current=K,x.current=K.focusId,D(true)):(M.current=null,x.current=null,D(false));}})}function Bt({trap:e=false,children:t}){let n=useContext(z),r=useRef(null),o=useRef(new Set);return useLayoutEffect(()=>{if(!e||!n)return;r.current=n.focusedId;let s=n.pushTrap(o.current);return ()=>{s(),r.current&&n.requestFocus(r.current);}},[e,n]),useEffect(()=>{if(!(!e||!n)&&o.current.size>0){let s=o.current.values().next().value;s&&n.requestFocus(s);}},[e,n]),oe.createElement(oe.Fragment,null,t)}function uo({size:e}){return oe.createElement("box",{style:{flexGrow:e??1}})}function Wn(e){let t=e.toLowerCase().split("+");return {name:t[t.length-1],ctrl:t.includes("ctrl"),alt:t.includes("alt"),shift:t.includes("shift"),meta:t.includes("meta")||t.includes("cmd")||t.includes("super")||t.includes("win")}}function _n(e,t){return !(t.name!==e.name||e.ctrl!==!!t.ctrl||e.alt!==!!t.alt||e.shift!==!!t.shift||e.meta!==!!t.meta)}function po({keypress:e,onPress:t,whenFocused:n,priority:r,disabled:o}){let s=useContext(J),i=useContext(z),c=useRef(t);c.current=t;let l=useRef(Wn(e));return l.current=Wn(e),useEffect(()=>{if(!(!s||o))if(r){let u=f=>!_n(l.current,f)||n&&i?.focusedId!==n?false:(c.current(),true);return s.subscribePriority(u)}else {let u=f=>{_n(l.current,f)&&(n&&i?.focusedId!==n||c.current());};return s.subscribe(u)}},[s,i,n,r,o]),null}function ho({children:e,zIndex:t=1e3}){return oe.createElement("box",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:t}},e)}function yo({onPress:e,style:t,focusedStyle:n,children:r,disabled:o}){let s=useContext(z),i=useContext(J),c=useRef(null),l=useRef(null),u=useRef(e);u.current=e;let[f,h]=useState(false),[S,I]=useState(false);useEffect(()=>{if(!(!s||!l.current||!c.current||o))return s.register(l.current,c.current)},[s,o,f]),useEffect(()=>{if(!s||!l.current)return;let d=l.current;return I(s.focusedId===d),s.onFocusChange(g=>{I(g===d);})},[s,f]),useEffect(()=>{if(!i||!l.current||o)return;let d=l.current,g=b=>s?.focusedId!==d?false:b.name==="return"||b.name===" "||b.sequence===" "?(u.current?.(),true):false;return i.registerInputHandler(d,g)},[i,s,o,f]);let P={...t,...S&&n?n:{}};return oe.createElement("box",{style:P,focusable:!o,ref:d=>{d?(c.current=d,l.current=d.focusId,h(true)):(c.current=null,l.current=null,h(false));}},r)}var So={x:0,y:0,width:0,height:0,innerX:0,innerY:0,innerWidth:0,innerHeight:0};function xe(e){let t=useContext(se),[n,r]=useState(So);return useEffect(()=>{if(!(!t||!e?.current))return r(t.getLayout(e.current)),t.subscribe(e.current,r)},[t,e]),n}function qe(e,t=[]){let n=useContext(J);useEffect(()=>{if(n)return n.subscribe(e)},[n,...t]);}function ko({children:e,style:t,scrollOffset:n,onScroll:r,defaultScrollOffset:o=0,scrollStep:s=1,disableKeyboard:i,scrollToFocus:c=true,showScrollbar:l=true,focusable:u=true,focusedStyle:f}){let h=n!==void 0,[S,I]=useState(o),P=h?n:S,d=useRef(null),g=useRef(null),b=xe(d),k=xe(g),R=useContext(z),A=useContext(se),D=useRef(null);u&&!D.current&&(D.current=`scrollview-${Math.random().toString(36).slice(2,9)}`);let B=u?D.current:null;useEffect(()=>{if(!(!u||!B||!R||!d.current))return R.register(B,d.current)},[u,B,R]);let F=u&&B&&R?.focusedId===B,E=b.innerHeight,M=k.height,x=Math.max(0,M-E),C=Math.max(0,Math.min(P,x)),w=useMemo(()=>({getBounds:()=>{let $=b.y;return {visibleTop:$,visibleBottom:$+E,viewportHeight:E,scrollOffset:C}}}),[b.y,E,C]),y=useCallback($=>{let U=Math.max(0,Math.min($,x));h?r?.(U):I(U);},[h,r,x]);useEffect(()=>{P>x&&x>=0&&y(x);},[P,x,y]),useEffect(()=>!c||!R||!A||!g.current?void 0:R.onFocusChange(U=>{if(!U||!g.current)return;let X=ke=>{if(ke.focusId===U)return ke;for(let Se of ke.children){let Pe=X(Se);if(Pe)return Pe}return null},de=X(g.current);if(!de)return;let be=A.getLayout(de),ce=g.current.layout?.y??0,ue=be.y-ce,Ce=ue+be.height,me=P,je=P+E;ue<me?y(ue):Ce>je&&y(Ce-E);}),[c,R,A,P,E,y]);let G=useCallback(()=>{if(!R)return false;let $=R.focusedId;if(!$)return false;if(u&&B&&$===B)return true;if(!g.current)return false;let U=X=>{if(X.focusId===$)return true;for(let de of X.children)if(U(de))return true;return false};return U(g.current)},[R,u,B]);qe($=>{if(i||!G())return;let U=Math.max(1,Math.floor(E/2)),X=Math.max(1,E);switch($.name){case "pageup":y(P-X);break;case "pagedown":y(P+X);break;default:$.ctrl&&($.name==="d"?y(P+U):$.name==="u"?y(P-U):$.name==="f"?y(P+X):$.name==="b"&&y(P-X));break}},[P,s,E,x,i,y,G]);let{padding:W,paddingX:H,paddingY:V,paddingTop:q,paddingRight:_,paddingBottom:K,paddingLeft:O,...j}=t??{},ne=j.border!=null&&j.border!=="none"?2:0,ee=M>0?M+ne:void 0,ae={...j,...F?f:{},clip:true,...j.height===void 0&&ee!==void 0?{height:ee,flexShrink:j.flexShrink??1,minHeight:j.minHeight??0}:{}},Z={position:"absolute",top:-C,left:0,right:0,flexDirection:"column",...W!==void 0&&{padding:W},...H!==void 0&&{paddingX:H},...V!==void 0&&{paddingY:V},...q!==void 0&&{paddingTop:q},..._!==void 0&&{paddingRight:_},...K!==void 0&&{paddingBottom:K},...O!==void 0&&{paddingLeft:O}},T=M>E&&E>0,a=l&&T,m=Math.max(1,Math.floor(E/M*E)),v=M-E,N=v>0?Math.floor(C/v*(E-m)):0,p=[];if(a)for(let $=0;$<E;$++)$>=N&&$<N+m?p.push("\u2588"):p.push("\u2591");let L={position:"absolute",top:0,right:0,width:1,height:E,flexDirection:"column"};return oe.createElement(it.Provider,{value:w},oe.createElement("box",{style:ae,ref:$=>{d.current=$??null;},...u?{focusable:true,focusId:B}:{}},oe.createElement("box",{style:{...Z,paddingRight:a?(Z.paddingRight??0)+1:Z.paddingRight},ref:$=>{g.current=$??null;}},e),a&&oe.createElement("box",{style:L},oe.createElement("text",{style:{color:"blackBright"}},p.join(`
14
+ `)))))}function Vt({count:e,renderItem:t,selectedIndex:n,onSelectionChange:r,onSelect:o,defaultSelectedIndex:s=0,disabledIndices:i,style:c,focusable:l=true}){let u=n!==void 0,[f,h]=useState(s),S=u?n:f,I=useContext(z),P=useContext(J),d=useRef(null),g=useRef(null),b=useRef(o);b.current=o;let[k,R]=useState(false),[A,D]=useState(false),B=useRef(null),F=useCallback(C=>{let w=Math.max(0,Math.min(C,e-1));u?r?.(w):h(w);},[u,r,e]),E=useCallback((C,w)=>{if(!i||i.size===0)return Math.max(0,Math.min(C+w,e-1));let y=C+w;for(;y>=0&&y<e&&i.has(y);)y+=w;return y<0||y>=e?C:y},[i,e]);useEffect(()=>{if(!(!I||!g.current||!d.current||!l))return I.register(g.current,d.current)},[I,l,k]),useEffect(()=>{if(!I||!g.current)return;let C=g.current;return D(I.focusedId===C),I.onFocusChange(w=>{D(w===C);})},[I,k]);let M=useCallback(C=>{let w=C?e-1:0,y=C?-1:1,G=w;for(;G>=0&&G<e&&i?.has(G);)G+=y;return G>=0&&G<e?G:C?e-1:0},[i,e]);useEffect(()=>{if(!P||!g.current||!l)return;let C=g.current,w=y=>I?.focusedId!==C?false:y.name==="g"&&!y.ctrl&&!y.alt?B.current==="g"?(F(M(false)),B.current=null,true):(B.current="g",true):y.name==="G"||y.name==="g"&&y.shift?(B.current=null,F(M(true)),true):(B.current=null,y.name==="up"||y.name==="k"?(F(E(S,-1)),true):y.name==="down"||y.name==="j"?(F(E(S,1)),true):y.name==="return"?(i?.has(S)||b.current?.(S),true):false);return P.registerInputHandler(C,w)},[P,I,l,S,F,E,M,i,k]);let x=[];for(let C=0;C<e;C++)x.push(oe.createElement(oe.Fragment,{key:C},t({index:C,selected:C===S,focused:A})));return oe.createElement("box",{style:{flexDirection:"column",...c},focusable:l,ref:C=>{C?(d.current=C,g.current=C.focusId,R(true)):(d.current=null,g.current=null,R(false));}},...x)}function Po({items:e,selectedIndex:t,onSelectionChange:n,onSelect:r,defaultSelectedIndex:o=0,style:s,highlightColor:i="cyan",focusable:c=true}){let l=new Set;for(let f=0;f<e.length;f++)e[f].disabled&&l.add(f);let u=f=>{let h=e[f];h&&!h.disabled&&r?.(h.value,f);};return oe.createElement(Vt,{count:e.length,selectedIndex:t,onSelectionChange:n,onSelect:u,defaultSelectedIndex:o,disabledIndices:l.size>0?l:void 0,style:s,focusable:c,renderItem:({index:f,selected:h,focused:S})=>{let I=e[f],P=I.disabled,d=h&&S,g=h?">":" ";return oe.createElement("box",{style:{flexDirection:"row",...d?{bg:i}:{}}},oe.createElement("text",{style:d?{bold:true,color:"black"}:P?{dim:true}:{}},`${g} ${I.label}`))}})}function Bo({value:e,indeterminate:t=false,width:n="100%",label:r,showPercent:o=false,style:s,filled:i="\u2588",empty:c="\u2591"}){let l=useRef(null),f=xe(l).innerWidth,[h,S]=useState(0);useEffect(()=>{if(!t)return;let b=setInterval(()=>{S(k=>(k+1)%Math.max(1,f+6));},100);return ()=>clearInterval(b)},[t,f]);let I=Math.max(0,Math.min(1,e??0)),P=o?` ${Math.round(I*100)}%`:"",d="";if(f>0)if(t&&e===void 0){let b=Math.max(1,Math.min(3,Math.floor(f/4))),k=[];for(let R=0;R<f;R++)R>=h-b&&R<h?k.push(i):k.push(c);d=k.join("");}else {let b=Math.round(I*f);d=i.repeat(b)+c.repeat(f-b);}let g=[];return r&&g.push(oe.createElement("text",{key:"label",style:{bold:true}},r+" ")),g.push(oe.createElement("box",{key:"track",style:{flexGrow:1,flexShrink:1},ref:b=>{l.current=b??null;}},oe.createElement("text",{key:"bar",style:{}},d))),o&&g.push(oe.createElement("text",{key:"pct",style:{bold:true}},P)),oe.createElement("box",{style:{flexDirection:"row",width:n,...s}},...g)}var Lo=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function Mo({frames:e=Lo,intervalMs:t=80,label:n,style:r}){let[o,s]=useState(0);useEffect(()=>{let c=setInterval(()=>{s(l=>(l+1)%e.length);},t);return ()=>clearInterval(c)},[e.length,t]);let i=[oe.createElement("text",{key:"frame",style:r},e[o])];return n&&i.push(oe.createElement("text",{key:"label",style:{}}," "+n)),oe.createElement("box",{style:{flexDirection:"row"}},...i)}var Qn=createContext(null),Oo=0;function Do(){let e=useContext(Qn);if(!e)throw new Error("useToast must be used within a <ToastHost>");return e.push}var Ko={info:{bg:"blackBright",title:"cyanBright",text:"white"},success:{bg:"blackBright",title:"greenBright",text:"white"},warning:{bg:"blackBright",title:"yellowBright",text:"white"},error:{bg:"blackBright",title:"redBright",text:"white"}};function Wo({position:e="bottom-right",maxVisible:t=5,children:n}){let[r,o]=useState([]),s=useRef(new Map),i=useCallback(I=>{let P=`toast-${Oo++}`,d={id:P,durationMs:3e3,variant:"info",...I};if(o(g=>[...g,d]),d.durationMs&&d.durationMs>0){let g=setTimeout(()=>{s.current.delete(P),o(b=>b.filter(k=>k.id!==P));},d.durationMs);s.current.set(P,g);}},[]);useEffect(()=>()=>{for(let I of s.current.values())clearTimeout(I);s.current.clear();},[]);let c=useRef({push:i});c.current.push=i;let l=e.startsWith("top"),u=e.endsWith("right"),f={position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:900,flexDirection:"column",justifyContent:l?"flex-start":"flex-end",alignItems:u?"flex-end":"flex-start",padding:1},S=r.slice(-t).map(I=>{let P=I.variant??"info",d=Ko[P],g=[];return I.title&&g.push(oe.createElement("text",{key:"title",style:{bold:true,color:d.title}},I.title)),g.push(oe.createElement("text",{key:"msg",style:{color:d.text}},I.message)),oe.createElement("box",{key:I.id,style:{bg:d.bg,paddingX:1,flexDirection:"column",minWidth:20,maxWidth:50}},...g)});return oe.createElement(Qn.Provider,{value:c.current},n,S.length>0?oe.createElement("box",{style:f},...S):null)}function qo({items:e,value:t,onChange:n,placeholder:r="Select...",style:o,focusedStyle:s,dropdownStyle:i,highlightColor:c="cyan",maxVisible:l=8,searchable:u=true,disabled:f}){let h=useContext(z),S=useContext(J),I=useContext(Be),P=useContext(it),d=useRef(null),g=useRef(null),b=useRef(n);b.current=n;let[k,R]=useState(false),[A,D]=useState(false),[B,F]=useState(false),[E,M]=useState(0),[x,C]=useState(""),[w,y]=useState(0),G=xe(d),W=I?.rows??24,H=P?.getBounds(),q=e.find(m=>m.value===t)?.label??"",_=useMemo(()=>{if(!x)return e;let m=x.toLowerCase();return e.filter(v=>v.label.toLowerCase().includes(m))},[e,x]),K=Math.min(l,_.length),O=_.slice(w,w+K);useEffect(()=>{M(0),y(0);},[x]),useEffect(()=>{!A&&B&&(F(false),C(""));},[A,B]),useEffect(()=>{if(!(!h||!g.current||!d.current))return h.register(g.current,d.current)},[h,k]),useEffect(()=>{!h||!g.current||h.setSkippable(g.current,!!f);},[h,f,k]),useEffect(()=>{if(!h||!g.current)return;let m=g.current;return D(h.focusedId===m),h.onFocusChange(v=>{D(v===m);})},[h,k]);let j=useCallback((m,v)=>{let N=m+v;for(;N>=0&&N<_.length;){if(!_[N].disabled)return N;N+=v;}return m},[_]),Q=useCallback(m=>{m<w?y(m):m>=w+K&&y(m-K+1);},[w,K]);useEffect(()=>{if(!S||!g.current||f)return;let m=g.current,v=N=>{if(h?.focusedId!==m)return false;if(!B){if(N.name==="return"||N.name===" "||N.sequence===" "||N.name==="down"){F(true),C("");let p=_.findIndex($=>$.value===t),L=p>=0?p:0;return M(L),y(Math.max(0,L-Math.floor(l/2))),true}return false}if(N.name==="tab")return F(false),C(""),false;if(N.name==="escape")return F(false),C(""),true;if(N.name==="return"){let p=_[E];return p&&!p.disabled&&(b.current?.(p.value),F(false),C("")),true}if(N.name==="up"){let p=j(E,-1);return M(p),Q(p),true}if(N.name==="down"){let p=j(E,1);return M(p),Q(p),true}if(N.name==="backspace")return u&&x.length>0&&C(p=>p.slice(0,-1)),true;if(N.name==="home"){let p=j(-1,1);return M(p),Q(p),true}if(N.name==="end"){let p=j(_.length,-1);return M(p),Q(p),true}if(u&&N.sequence&&N.sequence.length===1&&!N.ctrl&&!N.alt){let p=N.sequence;if(p>=" "&&p<="~")return C(L=>L+p),true}return true};return S.registerInputHandler(m,v)},[S,h,f,B,E,_,t,l,u,x,j,Q,k]);let ee={flexDirection:"row",width:"100%",...!o?.bg&&o?.border===void 0?{border:"single"}:{},...o,...A&&s?s:{}},ae=q?o?.color??void 0:"blackBright",Z=[oe.createElement("text",{key:"label",style:{flexGrow:1,flexShrink:1,color:ae,wrap:"ellipsis",...q?{}:{dim:true}}},q||r),oe.createElement("text",{key:"arrow",style:{flexShrink:0,color:A?c:"blackBright"}},B?" \u25B2":" \u25BC")],T=null;if(B){let m=[];u&&x&&m.push(oe.createElement("box",{key:"search",style:{paddingX:1}},oe.createElement("text",{style:{color:"blackBright",dim:true}},`/${x}`))),_.length===0&&m.push(oe.createElement("box",{key:"empty",style:{paddingX:1}},oe.createElement("text",{style:{dim:true,color:"blackBright"}},"No matches"))),w>0&&m.push(oe.createElement("box",{key:"scroll-up",style:{justifyContent:"center",alignItems:"center"}},oe.createElement("text",{style:{dim:true,color:"blackBright"}},"\u25B2"))),O.forEach((me,je)=>{let Se=w+je===E,Pe=me.disabled,br={paddingX:1,...Se&&!Pe?{bg:c}:{}},Cr={...Se&&!Pe?{color:"black",bold:true}:{},...Pe?{dim:true,color:"blackBright"}:{}};m.push(oe.createElement("box",{key:`item-${me.value}`,style:br},oe.createElement("text",{style:Cr},me.label)));}),w+K<_.length&&m.push(oe.createElement("box",{key:"scroll-down",style:{justifyContent:"center",alignItems:"center"}},oe.createElement("text",{style:{dim:true,color:"blackBright"}},"\u25BC")));let v=w>0,N=w+K<_.length,p=u&&x,L=_.length===0,$=!i?.bg&&i?.border===void 0,X=K+($?2:0);v&&(X+=1),N&&(X+=1),p&&(X+=1),L&&(X+=1);let de=G.y+G.height,be,ce;H?(be=H.visibleBottom-de,ce=G.y-H.visibleTop):(be=W-de,ce=G.y);let Ce=be<X&&ce>=X?-X:G.height||1;T=oe.createElement("box",{style:{position:"absolute",top:Ce,left:0,right:0,zIndex:9999,...$?{border:"single"}:{},bg:"black",flexDirection:"column",...i}},...m);}let a={flexDirection:"column",width:ee.width??"100%",minWidth:ee.minWidth,maxWidth:ee.maxWidth,flexGrow:ee.flexGrow,flexShrink:ee.flexShrink??1};return oe.createElement("box",{style:a},oe.createElement("box",{style:ee,focusable:true,ref:m=>{m?(d.current=m,g.current=m.focusId,R(true)):(d.current=null,g.current=null,R(false));}},...Z),T)}function zo({checked:e,onChange:t,label:n,style:r,focusedStyle:o,disabled:s,checkedChar:i="\u2713",uncheckedChar:c=" "}){let l=useContext(z),u=useContext(J),f=useRef(null),h=useRef(null),S=useRef(t);S.current=t;let I=useRef(e);I.current=e;let[P,d]=useState(false),[g,b]=useState(false);useEffect(()=>{if(!(!l||!h.current||!f.current||s))return l.register(h.current,f.current)},[l,s,P]),useEffect(()=>{if(!l||!h.current)return;let B=h.current;return b(l.focusedId===B),l.onFocusChange(F=>{b(F===B);})},[l,P]),useEffect(()=>{if(!u||!h.current||s)return;let B=h.current,F=E=>l?.focusedId!==B?false:E.name==="return"||E.name===" "||E.sequence===" "?(S.current(!I.current),true):false;return u.registerInputHandler(B,F)},[u,l,s,P]);let k={flexDirection:"row",gap:1,...r,...g&&o?o:{}},R=e?i:c,A={color:s?"blackBright":g?"white":r?.color},D={color:s?"blackBright":r?.color};return oe.createElement("box",{style:k,focusable:!s,ref:B=>{B?(f.current=B,h.current=B.focusId,d(true)):(f.current=null,h.current=null,d(false));}},oe.createElement("text",{key:"box",style:A},`[${R}]`),n?oe.createElement("text",{key:"label",style:D},n):null)}function Uo({items:e,value:t,onChange:n,style:r,itemStyle:o,focusedItemStyle:s,selectedItemStyle:i,disabled:c,direction:l="column",gap:u=0,selectedChar:f="\u25CF",unselectedChar:h="\u25CB"}){let S=useContext(z),I=useContext(J),P=useRef(null),d=useRef(null),g=useRef(n);g.current=n;let[b,k]=useState(false),[R,A]=useState(false),[D,B]=useState(()=>{let x=e.findIndex(C=>C.value===t);return x>=0?x:e.findIndex(C=>!C.disabled)}),F=useCallback((x,C)=>{let w=x;for(let y=0;y<e.length;y++)if(w=(w+C+e.length)%e.length,!e[w]?.disabled)return w;return x},[e]);useEffect(()=>{if(!(!S||!d.current||!P.current||c))return S.register(d.current,P.current)},[S,c,b]),useEffect(()=>{if(!S||!d.current)return;let x=d.current;return A(S.focusedId===x),S.onFocusChange(C=>{A(C===x);})},[S,b]),useEffect(()=>{if(!I||!d.current||c)return;let x=d.current,C=w=>{if(S?.focusedId!==x)return false;if(w.name==="up"||w.name==="left"||w.name==="k"||w.name==="tab"&&w.shift)return B(y=>F(y,-1)),true;if(w.name==="down"||w.name==="right"||w.name==="j"||w.name==="tab"&&!w.shift)return B(y=>F(y,1)),true;if(w.name==="return"||w.name===" "||w.sequence===" "){let y=e[D];return y&&!y.disabled&&g.current(y.value),true}return false};return I.registerInputHandler(x,C)},[I,S,c,e,D,F,b]),useEffect(()=>{let x=e.findIndex(C=>C.value===t);x>=0&&B(x);},[t,e]);let E={flexDirection:l,gap:u,...r},M=e.map((x,C)=>{let w=x.value===t,y=C===D,G=c||x.disabled,W=w?f:h,H={flexDirection:"row",gap:1,...o};w&&i&&(H={...H,...i}),R&&y&&s&&(H={...H,...s});let V=G?"blackBright":R&&y?s?.color??"white":w?i?.color??o?.color:o?.color;return oe.createElement("box",{key:C,style:H},oe.createElement("text",{key:"radio",style:{color:V}},`(${W})`),oe.createElement("text",{key:"label",style:{color:V}},x.label))});return oe.createElement("box",{style:E,focusable:!c,ref:x=>{x?(P.current=x,d.current=x.focusId,k(true)):(P.current=null,d.current=null,k(false));}},...M)}var sr=createContext(null);function Yo(){let e=useContext(sr);if(!e)throw new Error("useDialog must be used within a DialogHost");return e}function Qo({children:e}){let[t,n]=useState([]),r=useRef(0),o=useCallback((u,f)=>new Promise(h=>{let S=++r.current;n(I=>[...I,{id:S,type:"alert",content:u,okText:f?.okText??"OK",cancelText:"",style:f?.style,buttonStyle:f?.buttonStyle,okButtonStyle:f?.okButtonStyle,focusedButtonStyle:f?.focusedButtonStyle,backdropStyle:f?.backdropStyle,resolve:()=>h()}]);}),[]),s=useCallback((u,f)=>new Promise(h=>{let S=++r.current;n(I=>[...I,{id:S,type:"confirm",content:u,okText:f?.okText??"OK",cancelText:f?.cancelText??"Cancel",style:f?.style,buttonStyle:f?.buttonStyle,okButtonStyle:f?.okButtonStyle,cancelButtonStyle:f?.cancelButtonStyle,focusedButtonStyle:f?.focusedButtonStyle,backdropStyle:f?.backdropStyle,resolve:h}]);}),[]),i=useCallback((u,f)=>{n(h=>{let S=h.find(I=>I.id===u);return S&&S.resolve(f),h.filter(I=>I.id!==u)});},[]),c={alert:o,confirm:s},l=t[t.length-1];return oe.createElement(sr.Provider,{value:c},e,l&&oe.createElement(Zo,{key:l.id,dialog:l,onDismiss:i}))}function Zo({dialog:e,onDismiss:t}){let n=useContext(z),r=useRef(null),o=useRef(null),s=useRef(null),i=useRef(null),[c,l]=useState("ok"),[u,f]=useState(0);useEffect(()=>{if(!n||u===0)return;let b=[];return r.current&&s.current&&b.push(n.register(s.current,r.current)),o.current&&i.current&&b.push(n.register(i.current,o.current)),s.current&&n.requestFocus(s.current),()=>b.forEach(k=>k())},[n,u]),useEffect(()=>{if(n)return n.onFocusChange(b=>{b===s.current?l("ok"):b===i.current&&l("cancel");})},[n]),qe(b=>{if(b.name==="return"||b.name==="space"){e.type==="alert"?t(e.id,true):t(e.id,c==="ok");return}if(b.name==="escape"){t(e.id,false);return}e.type==="confirm"&&n&&(b.name==="left"||b.name==="right")&&(c==="ok"&&i.current?n.requestFocus(i.current):s.current&&n.requestFocus(s.current));},[e,c,n,t]);let h=typeof e.content=="string",S=h?e.content.length:0,P={minWidth:Math.max(20,h?Math.min(S+6,50):30),maxWidth:50,bg:"black",border:"round",borderColor:"white",padding:1,flexDirection:"column",gap:1,...e.style},d=(b,k)=>{let R={paddingX:2,bg:"blackBright",color:"white"},A={bg:"white",color:"black",bold:true},D=b==="ok"?e.okButtonStyle:e.cancelButtonStyle;return {...R,...e.buttonStyle,...D,...k?{...A,...e.focusedButtonStyle}:{}}},g={position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:999,...e.backdropStyle};return oe.createElement(Bt,{trap:true},oe.createElement("box",{style:g}),oe.createElement("box",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,justifyContent:"center",alignItems:"center",zIndex:1e3}},oe.createElement("box",{style:P},oe.createElement("box",{style:{flexDirection:"column"}},typeof e.content=="string"?oe.createElement("text",null,e.content):e.content),oe.createElement("box",{style:{flexDirection:"row",justifyContent:"flex-end",gap:1}},e.type==="confirm"&&oe.createElement("box",{style:d("cancel",c==="cancel"),focusable:true,ref:b=>{b&&b.focusId&&!i.current&&(o.current=b,i.current=b.focusId,f(k=>k+1));}},oe.createElement("text",null,e.cancelText)),oe.createElement("box",{style:d("ok",c==="ok"),focusable:true,ref:b=>{b&&b.focusId&&!s.current&&(r.current=b,s.current=b.focusId,f(k=>k+1));}},oe.createElement("text",null,e.okText))))))}function ns(e,t){let n=[],r=t.split("");if(e<=r.length)for(let o=0;o<e;o++)n.push(r[o]);else for(let o=0;o<r.length&&n.length<e;o++)for(let s=0;s<r.length&&n.length<e;s++)n.push(r[o]+r[s]);return n}function rs({children:e,activationKey:t="ctrl+o",hintStyle:n,hintBg:r="yellow",hintFg:o="black",hintChars:s="asdfghjklqwertyuiopzxcvbnm",enabled:i=true,debug:c=false}){let l=c?(...x)=>console.error("[JumpNav]",...x):()=>{},[u,f]=useState(false),[h,S]=useState(""),[I,P]=useState([]),d=useContext(J),g=useContext(z),b=useContext(se);useEffect(()=>{l("Mounted, inputCtx:",!!d,"focusCtx:",!!g,"enabled:",i);},[]);let R=useCallback(x=>{let C=x.toLowerCase().split("+");return {ctrl:C.includes("ctrl"),alt:C.includes("alt"),shift:C.includes("shift"),meta:C.includes("meta"),name:C[C.length-1]??""}},[])(t),A=useCallback(()=>{if(!g?.getActiveElements){l("refreshElements: no getActiveElements");return}let x=g.getActiveElements();l("getActiveElements returned",x.length,"elements");let C=x.map(({id:w,node:y})=>({id:w,node:y,layout:b?.getLayout(y)??y.layout}));C.sort((w,y)=>w.layout.y!==y.layout.y?w.layout.y-y.layout.y:w.layout.x-y.layout.x),P(C);},[g,b,l]),D=useRef(false);useEffect(()=>{u&&!D.current&&(l("Activated! Refreshing elements..."),A()),D.current=u;},[u,A,l]);let B=I.filter(x=>x.layout.width>0&&x.layout.height>0),F=ns(B.length,s),E=useMemo(()=>{let x=new Map;return B.forEach((C,w)=>{F[w]&&x.set(F[w],C.id);}),x},[B,F]);useEffect(()=>{if(!d||!i){l("Not subscribing - inputCtx:",!!d,"enabled:",i);return}l("Subscribing to priority input, activation key:",t);let x=C=>{let w=C.name===R.name,y=!!C.ctrl===R.ctrl,G=!!C.alt===R.alt,W=!!C.shift===R.shift,H=!!C.meta===R.meta;if(!u&&w&&y&&G&&W&&H)return l("Activation key matched! Activating..."),f(true),S(""),true;if(u){if(C.name==="escape")return l("Escape pressed, deactivating"),f(false),S(""),true;if(C.name==="backspace")return S(""),true;if(C.sequence&&C.sequence.length===1&&/[a-z]/i.test(C.sequence)){let V=h+C.sequence.toLowerCase();l("Buffer:",V);let q=E.get(V);return q?(l("Jumping to",q),g?.requestFocus(q),f(false),S(""),true):[...E.keys()].some(K=>K.startsWith(V))?(S(V),true):(S(""),true)}return true}return false};return d.subscribePriority(x)},[d,i,u,R,h,E,g,t,l]);let M=u?oe.createElement("box",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",zIndex:99998}},...B.map((x,C)=>{let w=F[C];if(!w)return null;let{x:y,y:G}=x.layout,W=w.startsWith(h)&&h.length>0;return oe.createElement("box",{key:x.id,style:{position:"absolute",top:G,left:Math.max(0,y-w.length-2),bg:W?"cyan":r,color:o,paddingX:1,zIndex:99999,...n}},oe.createElement("text",{style:{bold:true,color:o}},w))}),oe.createElement("box",{style:{position:"absolute",bottom:0,left:0,right:0,bg:"blackBright",paddingX:1,zIndex:99999}},oe.createElement("text",{style:{color:"white"}},h?`Jump: ${h}_`:"Press a key to jump \u2022 ESC to cancel"))):null;return oe.createElement(oe.Fragment,null,e,M)}var Le=join(tmpdir(),"glyph-image-cache");function ht(e){return e.startsWith("http://")||e.startsWith("https://")}function ls(e,t){let n=createHash("md5").update(e).digest("hex"),r=t?as(t):cs(e)||".png";return join(Le,`${n}${r}`)}function cs(e){try{let r=new URL(e).pathname.match(/\.(png|jpg|jpeg|gif|webp|bmp|ico)/i);if(r){let o=r[0].toLowerCase();return o===".jpg"?".jpeg":o}return ""}catch{return ""}}function as(e){switch(e){case "png":return ".png";case "jpeg":return ".jpeg";case "gif":return ".gif";case "webp":return ".webp";default:return ".png"}}function nn(e){if(ht(e))try{let t=new URL(e),n=t.pathname;return basename(n)||t.hostname}catch{return "remote-image"}return basename(e)}function ar(){existsSync(Le)||mkdirSync(Le,{recursive:true});}async function ur(e){let t=nn(e);return ht(e)?fs(e,t):us(e,t)}async function us(e,t){if(!existsSync(e))throw new Error(`Image not found: ${e}`);return {data:readFileSync(e),name:t,localPath:e,isRemote:false}}async function fs(e,t){ar();let n=createHash("md5").update(e).digest("hex"),r=[".png",".jpeg",".gif",".webp"];for(let u of r){let f=join(Le,`${n}${u}`);if(existsSync(f))return {data:readFileSync(f),name:t,localPath:f,isRemote:true}}let o=await fetch(e);if(!o.ok)throw new Error(`Failed to download image: ${o.status} ${o.statusText}`);let s=await o.arrayBuffer(),i=Buffer.from(s);if(!ps(i))throw new Error(`Invalid image data from: ${e}`);let c=gt(i),l=ls(e,c);return writeFileSync(l,i),{data:i,name:t,localPath:l,isRemote:true}}function ps(e){return e.length<4?false:e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71||e[0]===255&&e[1]===216&&e[2]===255||e[0]===71&&e[1]===73&&e[2]===70||e[0]===66&&e[1]===77||e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e.length>=12&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80||e[0]===0&&e[1]===0&&e[2]===1&&e[3]===0}function gt(e){return e.length<4?"unknown":e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71?"png":e[0]===255&&e[1]===216&&e[2]===255?"jpeg":e[0]===71&&e[1]===73&&e[2]===70?"gif":e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e.length>=12&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80?"webp":"unknown"}function fr(e,t){let n=gt(e);if(n==="png")return e;ar();let r=createHash("md5").update(e).digest("hex"),o=join(Le,`${r}.${n}`),s=join(Le,`${r}.png`);try{writeFileSync(o,e);let i=platform(),c=!1;if(i==="darwin")try{execSync(`sips -s format png "${o}" --out "${s}" 2>/dev/null`,{stdio:"pipe"}),c=!0;}catch{}if(!c)try{execSync(`magick "${o}" "${s}" 2>/dev/null`,{stdio:"pipe"}),c=!0;}catch{}if(!c)try{execSync(`convert "${o}" "${s}" 2>/dev/null`,{stdio:"pipe"}),c=!0;}catch{}if(c&&existsSync(s)){let l=readFileSync(s);try{unlinkSync(o);}catch{}try{unlinkSync(s);}catch{}return l}try{unlinkSync(o);}catch{}return null}catch{try{unlinkSync(o);}catch{}try{unlinkSync(s);}catch{}return null}}function ms(){let e=platform();return e==="darwin"?"quicklook":e==="linux"||e==="win32"?"open":"none"}async function rn(e){switch(ms()){case "quicklook":return hs(e);case "open":return ys(e);case "none":throw new Error("No preview method available on this platform")}}function hs(e){return new Promise((t,n)=>{let r=spawn("qlmanage",["-p",e],{detached:false,stdio:["ignore","ignore","ignore"]});r.on("error",o=>{n(new Error(`Failed to open Quick Look: ${o.message}`));}),setTimeout(()=>{gs();},50),r.on("close",o=>{t();});})}function gs(){exec(`osascript -e '
15
15
  tell application "System Events"
16
16
  set frontmost of (first process whose name is "qlmanage") to true
17
17
  end tell
18
- '`,{stdio:"ignore"});}function ys(e){return new Promise((t,n)=>{let r=platform(),o,s;r==="linux"?(o="xdg-open",s=[e]):r==="win32"?(o="cmd",s=["/c","start",'""',e]):(o="open",s=[e]);let i=spawn(o,s,{detached:true,stdio:["ignore","ignore","ignore"]});i.unref(),i.on("error",c=>{n(new Error(`Failed to open preview: ${c.message}`));}),setTimeout(t,100);})}function xs({src:e,width:t,height:n,style:r,focusedStyle:o,placeholderStyle:s,focusable:i=true,inline:c=true,placeholder:l,onStateChange:u,onError:f,autoLoad:h=false}){let b=useContext(X),I=useContext(J),v=useContext(ie),d=useContext(it),m=useRef(null),x=useRef(null),P=useRef(Math.floor(Math.random()*1e6)),[R,A]=useState(false),[D,B]=useState(false),[T,N]=useState("placeholder"),[L,C]=useState(null),[y,S]=useState(null),g=useRef(null),M=l||tn(e),_=mt(e),j=useCallback(K=>{N(K),u?.(K);},[u]);useEffect(()=>{if(!(!b||!x.current||!m.current||!i))return b.register(x.current,m.current)},[b,i,R]),useEffect(()=>{if(!b||!x.current)return;let K=x.current;return B(b.focusedId===K),b.onFocusChange(te=>{B(te===K);})},[b,R]),useEffect(()=>{if(!(!v||!m.current))return S(v.getLayout(m.current)),v.subscribe(m.current,S)},[v,R]),useEffect(()=>{if(!d||T!=="loaded"||!g.current||!y)return;let{data:K,cellWidth:te,cellHeight:Y}=g.current,se=P.current;return d.registerImage({id:se,data:K,x:y.innerX,y:y.innerY,width:te,height:Y}),()=>{d.unregisterImage(se);}},[d,T,y]);let H=useCallback(async()=>{if(T!=="loading"){j("loading"),C(null);try{let K=await ar(e);if(c&&Pt()&&y){let Y=ht(K.data),se=K.data;if(Y!=="png"){let a=ur(K.data);if(!a){j("preview"),await nn(K.localPath),j("placeholder");return}se=a;}let ee=t??y.innerWidth,E=n??y.innerHeight;if(ee<=0||E<=0)throw new Error("Image area too small");g.current={data:se,localPath:K.localPath,cellWidth:ee,cellHeight:E},j("loaded");}else j("preview"),await nn(K.localPath),j("placeholder");}catch(K){let te=K instanceof Error?K:new Error(String(K));C(te.message),j("error"),f?.(te);}}},[e,T,c,y,t,n,j,f]);useEffect(()=>{if(!I||!x.current||!i)return;let K=x.current,te=Y=>b?.focusedId!==K?false:Y.name==="space"||Y.name==="return"||Y.name==="r"&&g.current?(H(),true):Y.name==="escape"&&T==="loaded"?(g.current=null,j("placeholder"),true):false;return I.registerInputHandler(K,te)},[I,b,i,R,H,T,j]),useEffect(()=>{h&&T==="placeholder"&&y&&y.innerWidth>0&&H();},[h,T,y,H]),useEffect(()=>{let K=P.current;return ()=>{d?.unregisterImage(K);}},[d]);let q,O;switch(T){case "placeholder":O=_?"\u{1F310}":"\u{1F5BC}\uFE0F",q=`${O} ${M}`;break;case "loading":O="\u23F3",q=`${O} Loading...`;break;case "loaded":q=null;break;case "preview":O="\u{1F441}\uFE0F",q=`${O} Previewing...`;break;case "error":O="\u274C",q=`${O} ${L||"Error"}`;break}let z={...{border:"round",borderColor:"blackBright",justifyContent:"center",alignItems:"center",...r,...t!==void 0?{width:t}:{},...n!==void 0?{height:n}:{}},...D?{borderColor:"cyan"}:{},...D&&o?o:{}},$={color:"blackBright",...s,...D?{color:"cyan"}:{}};return oe.createElement("box",{style:z,focusable:i,ref:K=>{K?(m.current=K,x.current=K.focusId,A(true)):(m.current=null,x.current=null,A(false));}},q!==null?oe.createElement("text",{style:$},q):null)}function Is(e){let t=useContext(X),[n]=useState(()=>`focus-${Math.random().toString(36).slice(2,9)}`),r=t?t.focusedId===n:false;useEffect(()=>{if(!(!t||!e?.current))return e.current.focusId=n,t.register(n,e.current)},[t,n,e]);let o=useMemo(()=>()=>{t?.requestFocus(n);},[t,n]);return {focused:r,focus:o}}function Rs(e={}){let{disabled:t,onFocus:n,onBlur:r,onKeyPress:o}=e,s=useContext(X),i=useContext(J),c=useRef(null),l=useRef(null),[u,f]=useState(false),h=useRef(n),b=useRef(r),I=useRef(o);h.current=n,b.current=r,I.current=o;let v=useCallback(m=>{c.current=m,m?l.current=m.focusId??null:l.current=null;},[]);useEffect(()=>{if(!(!s||!l.current||!c.current))return s.register(l.current,c.current)},[s]),useEffect(()=>{!s||!l.current||s.setSkippable(l.current,!!t);},[s,t]),useEffect(()=>{if(!s||!l.current)return;let m=l.current,x=s.focusedId===m;return f(x),s.onFocusChange(P=>{let R=P===m;f(A=>(R&&!A?h.current?.():!R&&A&&b.current?.(),R));})},[s]),useEffect(()=>{if(!i||!l.current||t)return;let m=l.current,x=P=>s?.focusedId!==m?false:I.current?.(P)===true;return i.registerInputHandler(m,x)},[i,s,t]);let d=useCallback(()=>{s&&l.current&&s.requestFocus(l.current);},[s]);return {ref:v,isFocused:u,focus:d,focusId:l.current}}function Ps(){let e=useContext(Re);if(!e)throw new Error("useApp must be used within a Glyph render tree");return {exit:e.exit,get columns(){return e.columns},get rows(){return e.rows}}}function Fs(){let e=useContext(X),t=useContext(ie),[n,r]=useState([]),o=useRef(()=>{}),s=useCallback(()=>{if(!e)return;let c=(e.getActiveElements?.()??e.getRegisteredElements?.()??[]).map(({id:l,node:u})=>({id:l,node:u,layout:t?.getLayout(u)??u.layout,type:u.type}));c.sort((l,u)=>l.layout.y!==u.layout.y?l.layout.y-u.layout.y:l.layout.x-u.layout.x),r(c);},[e,t]);return o.current=s,useEffect(()=>{if(!e)return;s();let i=e.onFocusChange(()=>{s();}),c=setTimeout(s,50);return ()=>{i(),clearTimeout(c);}},[e,t,s]),e?{elements:n,focusedId:e.focusedId,requestFocus:e.requestFocus,focusNext:e.focusNext,focusPrev:e.focusPrev,refresh:()=>o.current()}:null}function Gs(e){let t=[];for(let n of e)switch(n){case "9":t.push({type:"digit",char:n});break;case "a":t.push({type:"letter",char:n});break;case "*":t.push({type:"alphanumeric",char:n});break;default:t.push({type:"literal",char:n});break}return t}function Ls(e,t){switch(t){case "digit":return /\d/.test(e);case "letter":return /[a-zA-Z]/.test(e);case "alphanumeric":return /[a-zA-Z0-9]/.test(e);case "literal":return true}}function le(e){let t=typeof e=="string"?{mask:e}:e,{mask:n,placeholder:r="_",showPlaceholder:o=false}=t,s=Gs(n);return (i,c)=>{let l=[];for(let h of i)(h!==r&&!/[\s\-\(\)\/\.\:]/.test(h)||/[a-zA-Z0-9]/.test(h))&&/[a-zA-Z0-9]/.test(h)&&l.push(h);let u="",f=0;for(let h of s)if(h.type==="literal")(f<l.length||o)&&(u+=h.char);else if(f<l.length){let b=l[f];if(Ls(b,h.type))u+=b,f++;else {f++;continue}}else o&&(u+=r);return u}}var Ms={usPhone:le("(999) 999-9999"),intlPhone:le("+9 999 999 9999"),dateUS:le("99/99/9999"),dateEU:le("99/99/9999"),dateISO:le("9999-99-99"),time:le("99:99"),timeFull:le("99:99:99"),creditCard:le("9999 9999 9999 9999"),ssn:le("999-99-9999"),zip:le("99999"),zipPlus4:le("99999-9999"),ipv4:le("999.999.999.999"),mac:le("**:**:**:**:**:**")};export{eo as Box,yo as Button,zo as Checkbox,Qo as DialogHost,Nt as FocusScope,xs as Image,so as Input,rs as JumpNav,po as Keybind,Ht as List,Po as Menu,ho as Portal,Bo as Progress,Uo as Radio,ko as ScrollView,qo as Select,uo as Spacer,Mo as Spinner,ro as Text,Wo as ToastHost,le as createMask,Me as detectTerminalCapabilities,Ms as masks,Rt as parseAnsi,Yr as render,kt as stripAnsi,Pt as supportsInlineImages,Ps as useApp,Yo as useDialog,Is as useFocus,Fs as useFocusRegistry,Rs as useFocusable,Ve as useInput,me as useLayout,Do as useToast};//# sourceMappingURL=index.js.map
18
+ '`,()=>{});}function ys(e){return new Promise((t,n)=>{let r=platform(),o,s;r==="linux"?(o="xdg-open",s=[e]):r==="win32"?(o="cmd",s=["/c","start",'""',e]):(o="open",s=[e]);let i=spawn(o,s,{detached:true,stdio:["ignore","ignore","ignore"]});i.unref(),i.on("error",c=>{n(new Error(`Failed to open preview: ${c.message}`));}),setTimeout(t,100);})}function xs({src:e,width:t,height:n,style:r,focusedStyle:o,placeholderStyle:s,focusable:i=true,inline:c=true,placeholder:l,onStateChange:u,onError:f,autoLoad:h=false,autoSize:S=false,maxWidth:I,maxHeight:P}){let d=useContext(z),g=useContext(J),b=useContext(se),k=useContext(lt),R=useRef(null),A=useRef(null),D=useRef(Math.floor(Math.random()*1e6)),[B,F]=useState(false),[E,M]=useState(false),[x,C]=useState("placeholder"),[w,y]=useState(null),[G,W]=useState(null),[H,V]=useState(null),q=useRef(null),_=l||nn(e),K=ht(e),O=useCallback(m=>{C(m),u?.(m);},[u]);useEffect(()=>{if(!(!d||!A.current||!R.current||!i))return d.register(A.current,R.current)},[d,i,B]),useEffect(()=>{if(!d||!A.current)return;let m=A.current;return M(d.focusedId===m),d.onFocusChange(v=>{M(v===m);})},[d,B]),useEffect(()=>{if(!(!b||!R.current))return W(b.getLayout(R.current)),b.subscribe(R.current,W)},[b,B]),useEffect(()=>{if(!k||x!=="loaded"||!q.current||!G)return;let{data:m,cellWidth:v,cellHeight:N}=q.current,p=D.current;return k.registerImage({id:p,data:m,x:G.innerX,y:G.innerY,width:v,height:N}),()=>{k.unregisterImage(p);}},[k,x,G]);let j=useCallback(async()=>{if(x!=="loading"){O("loading"),y(null);try{let m=await ur(e);if(c&&Pt()&&G){let N=gt(m.data),p=m.data;if(N!=="png"){let X=fr(m.data);if(!X){O("preview"),await rn(m.localPath),O("placeholder");return}p=X;}let L=Et(p),$,U;if(S&&L){let ce=Math.ceil(L.width/8),ue=Math.ceil(L.height/16),Ce=I??80,me=P??24;if(ce>Ce||ue>me){let je=Ce/ce,ke=me/ue,Se=Math.min(je,ke);ce=Math.max(1,Math.round(ce*Se)),ue=Math.max(1,Math.round(ue*Se));}$=ce,U=ue,V({width:ce,height:ue});}else $=t??G.innerWidth,U=n??G.innerHeight;if($<=0||U<=0)throw new Error("Image area too small");q.current={data:p,localPath:m.localPath,cellWidth:$,cellHeight:U},O("loaded");}else O("preview"),await rn(m.localPath),O("placeholder");}catch(m){let v=m instanceof Error?m:new Error(String(m));y(v.message),O("error"),f?.(v);}}},[e,x,c,G,t,n,S,I,P,O,f]);useEffect(()=>{if(!g||!A.current||!i)return;let m=A.current,v=N=>d?.focusedId!==m?false:N.name==="space"||N.name==="return"||N.name==="r"&&q.current?(j(),true):N.name==="escape"&&x==="loaded"?(q.current=null,O("placeholder"),true):false;return g.registerInputHandler(m,v)},[g,d,i,B,j,x,O]),useEffect(()=>{h&&x==="placeholder"&&G&&G.innerWidth>0&&j();},[h,x,G,j]),useEffect(()=>{let m=D.current;return ()=>{k?.unregisterImage(m);}},[k]);let Q,ne;switch(x){case "placeholder":ne=K?"\u{1F310}":"\u{1F5BC}\uFE0F",Q=`${ne} ${_}`;break;case "loading":ne="\u23F3",Q=`${ne} Loading...`;break;case "loaded":Q=null;break;case "preview":ne="\u{1F441}\uFE0F",Q=`${ne} Previewing...`;break;case "error":ne="\u274C",Q=`${ne} ${w||"Error"}`;break}let ee=S&&H?H.width:t,ae=S&&H?H.height:n,T={...{border:"round",borderColor:"blackBright",justifyContent:"center",alignItems:"center",...r,...ee!==void 0?{width:ee}:{},...ae!==void 0?{height:ae}:{}},...E?{borderColor:"cyan"}:{},...E&&o?o:{}},a={color:"blackBright",...s,...E?{color:"cyan"}:{}};return oe.createElement("box",{style:T,focusable:i,ref:m=>{m?(R.current=m,A.current=m.focusId,F(true)):(R.current=null,A.current=null,F(false));}},Q!==null?oe.createElement("text",{style:a},Q):null)}function Is(e){let t=useContext(z),[n]=useState(()=>`focus-${Math.random().toString(36).slice(2,9)}`),r=t?t.focusedId===n:false;useEffect(()=>{if(!(!t||!e?.current))return e.current.focusId=n,t.register(n,e.current)},[t,n,e]);let o=useMemo(()=>()=>{t?.requestFocus(n);},[t,n]);return {focused:r,focus:o}}function Rs(e={}){let{disabled:t,onFocus:n,onBlur:r,onKeyPress:o}=e,s=useContext(z),i=useContext(J),c=useRef(null),l=useRef(null),[u,f]=useState(false),h=useRef(n),S=useRef(r),I=useRef(o);h.current=n,S.current=r,I.current=o;let P=useCallback(g=>{c.current=g,g?l.current=g.focusId??null:l.current=null;},[]);useEffect(()=>{if(!(!s||!l.current||!c.current))return s.register(l.current,c.current)},[s]),useEffect(()=>{!s||!l.current||s.setSkippable(l.current,!!t);},[s,t]),useEffect(()=>{if(!s||!l.current)return;let g=l.current,b=s.focusedId===g;return f(b),s.onFocusChange(k=>{let R=k===g;f(A=>(R&&!A?h.current?.():!R&&A&&S.current?.(),R));})},[s]),useEffect(()=>{if(!i||!l.current||t)return;let g=l.current,b=k=>s?.focusedId!==g?false:I.current?.(k)===true;return i.registerInputHandler(g,b)},[i,s,t]);let d=useCallback(()=>{s&&l.current&&s.requestFocus(l.current);},[s]);return {ref:P,isFocused:u,focus:d,focusId:l.current}}function Ps(){let e=useContext(Be);if(!e)throw new Error("useApp must be used within a Glyph render tree");return {exit:e.exit,get columns(){return e.columns},get rows(){return e.rows}}}function Fs(){let e=useContext(z),t=useContext(se),[n,r]=useState([]),o=useRef(()=>{}),s=useCallback(()=>{if(!e)return;let c=(e.getActiveElements?.()??e.getRegisteredElements?.()??[]).map(({id:l,node:u})=>({id:l,node:u,layout:t?.getLayout(u)??u.layout,type:u.type}));c.sort((l,u)=>l.layout.y!==u.layout.y?l.layout.y-u.layout.y:l.layout.x-u.layout.x),r(c);},[e,t]);return o.current=s,useEffect(()=>{if(!e)return;s();let i=e.onFocusChange(()=>{s();}),c=setTimeout(s,50);return ()=>{i(),clearTimeout(c);}},[e,t,s]),e?{elements:n,focusedId:e.focusedId,requestFocus:e.requestFocus,focusNext:e.focusNext,focusPrev:e.focusPrev,refresh:()=>o.current()}:null}function Gs(e){let t=[];for(let n of e)switch(n){case "9":t.push({type:"digit",char:n});break;case "a":t.push({type:"letter",char:n});break;case "*":t.push({type:"alphanumeric",char:n});break;default:t.push({type:"literal",char:n});break}return t}function Ls(e,t){switch(t){case "digit":return /\d/.test(e);case "letter":return /[a-zA-Z]/.test(e);case "alphanumeric":return /[a-zA-Z0-9]/.test(e);case "literal":return true}}function ie(e){let t=typeof e=="string"?{mask:e}:e,{mask:n,placeholder:r="_",showPlaceholder:o=false}=t,s=Gs(n);return (i,c)=>{let l=[];for(let h of i)(h!==r&&!/[\s\-\(\)\/\.\:]/.test(h)||/[a-zA-Z0-9]/.test(h))&&/[a-zA-Z0-9]/.test(h)&&l.push(h);let u="",f=0;for(let h of s)if(h.type==="literal")(f<l.length||o)&&(u+=h.char);else if(f<l.length){let S=l[f];if(Ls(S,h.type))u+=S,f++;else {f++;continue}}else o&&(u+=r);return u}}var Ms={usPhone:ie("(999) 999-9999"),intlPhone:ie("+9 999 999 9999"),dateUS:ie("99/99/9999"),dateEU:ie("99/99/9999"),dateISO:ie("9999-99-99"),time:ie("99:99"),timeFull:ie("99:99:99"),creditCard:ie("9999 9999 9999 9999"),ssn:ie("999-99-9999"),zip:ie("99999"),zipPlus4:ie("99999-9999"),ipv4:ie("999.999.999.999"),mac:ie("**:**:**:**:**:**")};export{eo as Box,yo as Button,zo as Checkbox,Qo as DialogHost,Bt as FocusScope,xs as Image,so as Input,rs as JumpNav,po as Keybind,Vt as List,Po as Menu,ho as Portal,Bo as Progress,Uo as Radio,ko as ScrollView,qo as Select,uo as Spacer,Mo as Spinner,ro as Text,Wo as ToastHost,ie as createMask,Oe as detectTerminalCapabilities,Ms as masks,Rt as parseAnsi,Yr as render,kt as stripAnsi,Pt as supportsInlineImages,Ps as useApp,Yo as useDialog,Is as useFocus,Fs as useFocusRegistry,Rs as useFocusable,qe as useInput,xe as useLayout,Do as useToast};//# sourceMappingURL=index.js.map
19
19
  //# sourceMappingURL=index.js.map