@visulima/tui 1.0.0-alpha.19 → 1.0.0-alpha.20

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.
Files changed (152) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/LICENSE.md +370 -107
  3. package/dist/components/accordion.d.ts +1 -1
  4. package/dist/components/approval-prompt.d.ts +1 -1
  5. package/dist/components/area-chart.d.ts +1 -1
  6. package/dist/components/badge.d.ts +1 -1
  7. package/dist/components/bar-chart.d.ts +1 -1
  8. package/dist/components/blink-dot.d.ts +1 -1
  9. package/dist/components/box.d.ts +4 -4
  10. package/dist/components/breadcrumb.d.ts +1 -1
  11. package/dist/components/button.d.ts +1 -1
  12. package/dist/components/calendar.d.ts +1 -1
  13. package/dist/components/canvas.js +1 -1
  14. package/dist/components/card.d.ts +1 -1
  15. package/dist/components/checkbox.d.ts +1 -1
  16. package/dist/components/collapsible.d.ts +1 -1
  17. package/dist/components/command-palette.d.ts +1 -1
  18. package/dist/components/content-switcher.d.ts +1 -1
  19. package/dist/components/controlled-scroll-view.d.ts +4 -4
  20. package/dist/components/cursor.d.ts +13 -4
  21. package/dist/components/cursor.js +1 -1
  22. package/dist/components/date-picker.d.ts +1 -1
  23. package/dist/components/definition-list.d.ts +1 -1
  24. package/dist/components/dialog.d.ts +5 -5
  25. package/dist/components/divider.d.ts +1 -1
  26. package/dist/components/form.d.ts +1 -1
  27. package/dist/components/gauge.d.ts +1 -1
  28. package/dist/components/gradient.d.ts +18 -1
  29. package/dist/components/gradient.js +4 -1
  30. package/dist/components/heading.d.ts +1 -1
  31. package/dist/components/heatmap.d.ts +1 -1
  32. package/dist/components/histogram.d.ts +1 -1
  33. package/dist/components/kbd.d.ts +1 -1
  34. package/dist/components/line-chart.d.ts +1 -1
  35. package/dist/components/link.js +1 -1
  36. package/dist/components/loading-indicator.d.ts +2 -2
  37. package/dist/components/menu.d.ts +1 -1
  38. package/dist/components/message-bubble.d.ts +1 -1
  39. package/dist/components/model-badge.d.ts +1 -1
  40. package/dist/components/multi-select.d.ts +1 -1
  41. package/dist/components/option-list.d.ts +1 -1
  42. package/dist/components/paragraph.d.ts +1 -1
  43. package/dist/components/placeholder.d.ts +1 -1
  44. package/dist/components/progress-bar.d.ts +2 -3
  45. package/dist/components/radio-group.d.ts +1 -1
  46. package/dist/components/scatter-plot.d.ts +1 -1
  47. package/dist/components/scroll-bar-box.d.ts +4 -4
  48. package/dist/components/scroll-bar.d.ts +4 -4
  49. package/dist/components/scroll-list.d.ts +4 -4
  50. package/dist/components/scroll-view.d.ts +4 -4
  51. package/dist/components/search-input.d.ts +1 -1
  52. package/dist/components/select-input-indicator.d.ts +1 -1
  53. package/dist/components/select-input-item.d.ts +1 -1
  54. package/dist/components/select-input.d.ts +1 -1
  55. package/dist/components/shimmer-text.d.ts +1 -1
  56. package/dist/components/slider.d.ts +1 -1
  57. package/dist/components/sparkline.d.ts +1 -1
  58. package/dist/components/spinner.d.ts +1 -1
  59. package/dist/components/spinner.js +1 -1
  60. package/dist/components/static-render.d.ts +4 -4
  61. package/dist/components/static.d.ts +2 -3
  62. package/dist/components/status-line.d.ts +1 -1
  63. package/dist/components/stepper.d.ts +1 -1
  64. package/dist/components/streaming-text.d.ts +1 -1
  65. package/dist/components/switch.d.ts +1 -1
  66. package/dist/components/tabs.d.ts +1 -1
  67. package/dist/components/tag.d.ts +1 -1
  68. package/dist/components/text.d.ts +2 -3
  69. package/dist/components/text.js +1 -1
  70. package/dist/components/tooltip.d.ts +1 -1
  71. package/dist/components/tree-view-entry.d.ts +4 -4
  72. package/dist/core/index.d.ts +1 -2
  73. package/dist/core/index.js +1 -1
  74. package/dist/ink/hooks/use-box-metrics.d.ts +4 -4
  75. package/dist/ink/hooks/use-box-metrics.js +1 -1
  76. package/dist/ink/hooks/use-cursor.d.ts +1 -1
  77. package/dist/ink/hooks/use-input.js +1 -1
  78. package/dist/ink/hooks/use-linked-scroll.d.ts +4 -4
  79. package/dist/ink/hooks/use-paste.js +1 -1
  80. package/dist/ink/hooks/use-text-selection.d.ts +5 -5
  81. package/dist/ink/hooks/use-text-selection.js +1 -1
  82. package/dist/ink/hooks/use-window-size.js +1 -1
  83. package/dist/ink/index.d.ts +7 -8
  84. package/dist/ink/index.js +1 -1
  85. package/dist/packem_shared/{DevTools-ClAYpMVI.js → DevTools-BR7K-5JX.js} +1 -1
  86. package/dist/packem_shared/InputParser-BAqciKJ6.js +2 -0
  87. package/dist/packem_shared/{LayoutNode-B8zej4dm.js → LayoutNode-B0qeT8sl.js} +1 -1
  88. package/dist/packem_shared/{MouseProvider-PnIUKURs.js → MouseProvider-CHU5DuwC.js} +1 -1
  89. package/dist/packem_shared/TuiApp-CxBtziW8.js +1 -0
  90. package/dist/packem_shared/_commonjsHelpers-CHNfUHCT.js +1 -0
  91. package/dist/packem_shared/ansi-parser-C5JuL732.js +1 -0
  92. package/dist/packem_shared/boxes-DyY_LXCi.js +1 -0
  93. package/dist/packem_shared/colorize-gy_cY-wC.js +2 -0
  94. package/dist/packem_shared/{comparePoints-YxQfR_zq.js → comparePoints-Dez5FkH9.js} +1 -1
  95. package/dist/packem_shared/constants-D12jy2Zh-RSfxu1eM.js +1 -0
  96. package/dist/packem_shared/createInlineLoop-D0JaKX9A.js +2 -0
  97. package/dist/packem_shared/createScreen-87XLHZq6.js +3 -0
  98. package/dist/packem_shared/cursor-helpers.d-BONB9tky.d.ts +12 -0
  99. package/dist/packem_shared/dom-CW6KYzFK.js +8 -0
  100. package/dist/packem_shared/{dom.d-CcFuBd-k.d.ts → dom.d-DgP_exKU.d.ts} +4 -5
  101. package/dist/packem_shared/erase-DKKNxHZ_.js +1 -0
  102. package/dist/packem_shared/get-string-width-CbMPWEJO.js +1 -0
  103. package/dist/packem_shared/{getPathToRoot-D5Hns9Er.js → getPathToRoot-B3q6OlQy.js} +1 -1
  104. package/dist/packem_shared/index-COPEEDn3.js +9 -0
  105. package/dist/packem_shared/index-CqsHHJkn.js +75 -0
  106. package/dist/packem_shared/index.d-Bk52cbgN.d.ts +14 -0
  107. package/dist/packem_shared/index.server.d-eZWyC2Ku.d.ts +5 -0
  108. package/dist/packem_shared/input.d-D-Yxqha8.d.ts +172 -0
  109. package/dist/packem_shared/measure-text-D-jVetsl.js +3 -0
  110. package/dist/packem_shared/mode-BOIU4Roy.js +1 -0
  111. package/dist/packem_shared/parseSgrMouse-DoBY7MKw.js +1 -0
  112. package/dist/packem_shared/reconciler-CGhHgXXG.js +1 -0
  113. package/dist/packem_shared/reconciler-ClRKkLS4.js +1 -0
  114. package/dist/packem_shared/{render-Dh7HMhK1.js → render-BoukeuYD.js} +1 -1
  115. package/dist/packem_shared/render-CBFHzIKj.js +27 -0
  116. package/dist/packem_shared/{render.d-B1kiO3Ca.d.ts → render.d-DarVJBG2.d.ts} +2 -2
  117. package/dist/packem_shared/{renderToString-DVE0cEHt.js → renderToString-Cx3DmmMR.js} +1 -1
  118. package/dist/packem_shared/{renderToString-BbQiRHrd.js → renderToString-nZdqfdWT.js} +1 -1
  119. package/dist/packem_shared/renderTreeToBuffer-LnGZkEUX.js +2 -0
  120. package/dist/packem_shared/renderer-C2ycheBL.js +17 -0
  121. package/dist/packem_shared/{selection.d-DAh7REnW.d.ts → selection.d-WuD_83yQ.d.ts} +1 -1
  122. package/dist/packem_shared/setEnableStyledLineCache-Cke6_ZQt.js +1 -0
  123. package/dist/packem_shared/strip-C6HQYmlg.js +1 -0
  124. package/dist/packem_shared/{styles.d-cMo36xQz.d.ts → styles.d-CLJdt-kg.d.ts} +98 -2
  125. package/dist/packem_shared/text-width-CI9G0a-z.js +2 -0
  126. package/dist/packem_shared/utils-THUhYKG2.js +1 -0
  127. package/dist/packem_shared/{wrapOrTruncateStyledLine-BZ00SM8i.js → wrapOrTruncateStyledLine-kyi6yijx.js} +1 -1
  128. package/dist/react/index.d.ts +1 -2
  129. package/dist/react/index.js +1 -1
  130. package/dist/testing/index.d.ts +5 -6
  131. package/dist/testing/index.js +1 -1
  132. package/index.js +539 -691
  133. package/package.json +11 -27
  134. package/dist/packem_shared/InputParser-B_qZcN3r.js +0 -2
  135. package/dist/packem_shared/TuiApp-BVDXP0Cv.js +0 -1
  136. package/dist/packem_shared/ansi-parser-B6uXaq65.js +0 -1
  137. package/dist/packem_shared/colorize-DbTZMrJO.js +0 -1
  138. package/dist/packem_shared/createInlineLoop-DRNZ7jqH.js +0 -2
  139. package/dist/packem_shared/createScreen-CrLrxA6t.js +0 -3
  140. package/dist/packem_shared/cursor-helpers.d-BIvqz0TZ.d.ts +0 -5
  141. package/dist/packem_shared/dom-BG-LS10p.js +0 -1
  142. package/dist/packem_shared/input.d-CgxV2e8U.d.ts +0 -90
  143. package/dist/packem_shared/measure-text-DDjHT1jD.js +0 -3
  144. package/dist/packem_shared/parseSgrMouse-Ccj70ijb.js +0 -1
  145. package/dist/packem_shared/reconciler-CUbhOvcr.js +0 -1
  146. package/dist/packem_shared/reconciler-DIfG72R9.js +0 -1
  147. package/dist/packem_shared/render-bdbSzkJo.js +0 -26
  148. package/dist/packem_shared/renderTreeToBuffer-CZilzyhN.js +0 -2
  149. package/dist/packem_shared/renderer-Cfi6ZyHf.js +0 -17
  150. package/dist/packem_shared/setEnableStyledLineCache-D2gZbwFM.js +0 -1
  151. package/dist/packem_shared/text-width-BU2eeTWn.js +0 -2
  152. package/dist/packem_shared/utils-CoviI5Vm.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/tui",
3
- "version": "1.0.0-alpha.19",
3
+ "version": "1.0.0-alpha.20",
4
4
  "description": "React-based TUI library powered by a native Rust diff engine, drop-in Ink-compatible API",
5
5
  "keywords": [
6
6
  "cli",
@@ -13,9 +13,7 @@
13
13
  "visulima"
14
14
  ],
15
15
  "homepage": "https://visulima.com/packages/tui",
16
- "bugs": {
17
- "url": "https://github.com/visulima/visulima/issues"
18
- },
16
+ "bugs": "https://github.com/visulima/visulima/issues",
19
17
  "repository": {
20
18
  "type": "git",
21
19
  "url": "git+https://github.com/visulima/visulima.git",
@@ -570,26 +568,12 @@
570
568
  "LICENSE.md"
571
569
  ],
572
570
  "dependencies": {
573
- "@visulima/ansi": "4.0.0-alpha.14",
574
- "@visulima/colorize": "2.0.0-alpha.11",
575
- "@visulima/error": "6.0.0-alpha.28",
576
- "@visulima/spinner": "1.0.0-alpha.1",
577
- "@visulima/string": "3.0.0-alpha.13",
578
- "cli-boxes": "^4.0.1",
579
- "code-excerpt": "^4.0.0",
580
- "is-in-ci": "^2.0.0",
581
- "patch-console": "^2.0.0",
582
- "scheduler": "^0.27.0",
583
- "signal-exit": "^4.1.0",
584
- "terminal-size": "^4.0.1",
585
- "tseep": "^1.3.1",
586
- "type-fest": "5.6.0",
587
571
  "yoga-layout": "~3.2.1"
588
572
  },
589
573
  "peerDependencies": {
590
574
  "@shikijs/langs": "^4.0.2",
591
575
  "@shikijs/themes": "^4.0.2",
592
- "@visulima/tabular": "4.0.0-alpha.11",
576
+ "@visulima/tabular": "4.0.0-alpha.12",
593
577
  "cfonts": "^3.3.1",
594
578
  "diff": "^9.0.0",
595
579
  "marked": "^18.0.3",
@@ -629,14 +613,14 @@
629
613
  }
630
614
  },
631
615
  "optionalDependencies": {
632
- "@visulima/tui-binding-darwin-arm64": "1.0.0-alpha.19",
633
- "@visulima/tui-binding-darwin-x64": "1.0.0-alpha.19",
634
- "@visulima/tui-binding-linux-arm64-musl": "1.0.0-alpha.19",
635
- "@visulima/tui-binding-linux-x64-gnu": "1.0.0-alpha.19",
636
- "@visulima/tui-binding-linux-arm64-gnu": "1.0.0-alpha.19",
637
- "@visulima/tui-binding-win32-arm64-msvc": "1.0.0-alpha.19",
638
- "@visulima/tui-binding-linux-x64-musl": "1.0.0-alpha.19",
639
- "@visulima/tui-binding-win32-x64-msvc": "1.0.0-alpha.19"
616
+ "@visulima/tui-binding-darwin-arm64": "1.0.0-alpha.20",
617
+ "@visulima/tui-binding-darwin-x64": "1.0.0-alpha.20",
618
+ "@visulima/tui-binding-linux-arm64-musl": "1.0.0-alpha.20",
619
+ "@visulima/tui-binding-linux-x64-gnu": "1.0.0-alpha.20",
620
+ "@visulima/tui-binding-linux-arm64-gnu": "1.0.0-alpha.20",
621
+ "@visulima/tui-binding-linux-x64-musl": "1.0.0-alpha.20",
622
+ "@visulima/tui-binding-win32-arm64-msvc": "1.0.0-alpha.20",
623
+ "@visulima/tui-binding-win32-x64-msvc": "1.0.0-alpha.20"
640
624
  },
641
625
  "engines": {
642
626
  "node": "^22.14.0 || >=24.10.0"
@@ -1,2 +0,0 @@
1
- var p=Object.defineProperty;var d=(r,t)=>p(r,"name",{value:t,configurable:!0});import{EventEmitter as c}from"tseep";var B=Object.defineProperty,x=d((r,t)=>B(r,"name",{value:t,configurable:!0}),"h");class b extends c{static{d(this,"InputParser")}constructor(t){super(),this.stdin=t}stdin;static{x(this,"InputParser")}_boundHandleData=null;_pasteBuffer=null;start(){typeof this.stdin.setRawMode=="function"&&this.stdin.setRawMode(!0),this.stdin.resume(),this.stdin.setEncoding("utf8"),this._boundHandleData=this.handleData.bind(this),this.stdin.on("data",this._boundHandleData)}stop(){typeof this.stdin.setRawMode=="function"&&this.stdin.setRawMode(!1),this.stdin.pause(),this._boundHandleData&&(this.stdin.removeListener("data",this._boundHandleData),this._boundHandleData=null)}handleData(t){if(t===""){this.emit("exit");return}if(t.includes("\x1B[200~")||this._pasteBuffer!==null){if(this._pasteBuffer===null?this._pasteBuffer=t.replace("\x1B[200~",""):this._pasteBuffer+=t,this._pasteBuffer.includes("\x1B[201~")){const e=this._pasteBuffer.replace("\x1B[201~","");this._pasteBuffer=null,this.emit("paste",e),this.listenerCount("paste")===0&&this.emit("data",e)}return}if(t.length===1){const e=t.charCodeAt(0);if(e>=1&&e<=26&&e!==3&&e!==9&&e!==10&&e!==13){const s=String.fromCharCode(e+96);this.emit("ctrl",s),this.emit("data",t,{ctrl:!0});return}}if(t==="\x1B[A"){this.emit("keydown","up");return}if(t==="\x1B[B"){this.emit("keydown","down");return}if(t==="\x1B[C"){this.emit("keydown","right");return}if(t==="\x1B[D"){this.emit("keydown","left");return}if(t===" "){this.emit("keydown","tab");return}if(t==="\x1B[Z"){this.emit("keydown","shift-tab");return}if(t==="\x1B"){this.emit("keydown","escape");return}if(t==="\r"||t===`
2
- `){this.emit("keydown","enter");return}if(t===""){this.emit("keydown","backspace");return}if(t==="\x1B[3~"){this.emit("keydown","delete");return}if(t==="\x1B[5~"){this.emit("keydown","pageUp");return}if(t==="\x1B[6~"){this.emit("keydown","pageDown");return}if(t==="\x1B[H"||t==="\x1B[1~"){this.emit("keydown","home");return}if(t==="\x1B[F"||t==="\x1B[4~"){this.emit("keydown","end");return}if(t.length===2&&t[0]==="\x1B"){this.emit("meta",t[1]),this.emit("data",t,{meta:!0});return}if(t.startsWith("\x1B[<")){const e=t.match(/\u001B\[<(\d+);(\d+);(\d+)(M)/i);if(e){const s=Number.parseInt(e[1]),u=Number.parseInt(e[2])-1,h=Number.parseInt(e[3])-1,a=e[4]==="m",o=(s&4)!==0,f=(s&8)!==0,l=(s&16)!==0,n=s&-29;let i=null;if(n===0&&!a?i="left":n===1&&!a?i="middle":n===2&&!a?i="right":n===64?i="scrollUp":n===65&&(i="scrollDown"),i){const m={button:i,ctrl:l,meta:f,shift:o,x:u,y:h};this.emit("mouse",m),i==="left"&&this.emit("click",{x:u,y:h})}}return}this.emit("data",t)}}export{b as InputParser};
@@ -1 +0,0 @@
1
- var u=Object.defineProperty;var r=(i,t)=>u(i,"name",{value:t,configurable:!0});import{createDecMode as f,setMode as o,resetMode as d}from"@visulima/ansi";import{EventEmitter as a}from"tseep";import{Renderer as s,TerminalGuard as l}from"./Renderer-DJXooAsp.js";var w=Object.defineProperty,c=r((i,t)=>w(i,"name",{value:t,configurable:!0}),"i");const h=f(2026),g=o(h),p=d(h);class k extends a{static{r(this,"TuiApp")}static{c(this,"TuiApp")}renderer;terminal=null;backBuffer;width;height;isRunning=!1;stdoutBuffer=[];stderrBuffer=[];constructor(){super(),this.width=process.stdout.columns||80,this.height=process.stdout.rows||24,this.renderer=new s(this.width,this.height),this.backBuffer=new Uint32Array(this.width*this.height*2)}start(){this.isRunning||(this.terminal=new l(!0),this.isRunning=!0)}quit(){this.emit("quit")}stop(){this.isRunning=!1,this.terminal?.leave(),this.terminal=null,this.stdoutBuffer.length>0&&(process.stdout.write(this.stdoutBuffer.join("")),this.stdoutBuffer=[]),this.stderrBuffer.length>0&&(process.stderr.write(this.stderrBuffer.join("")),this.stderrBuffer=[])}writeStdout(t){this.isRunning?this.stdoutBuffer.push(t):process.stdout.write(t)}writeStderr(t){this.isRunning?this.stderrBuffer.push(t):process.stderr.write(t)}getBuffer(){return this.backBuffer}getSize(){return{height:this.height,width:this.width}}resize(t,e){this.width=t,this.height=e,this.renderer=new s(t,e),this.backBuffer=new Uint32Array(t*e*2)}beforeFlushListeners=[];onBeforeFlush(t){return this.beforeFlushListeners.push(t),()=>{this.beforeFlushListeners=this.beforeFlushListeners.filter(e=>e!==t)}}paintNow(t,e){if(this.isRunning){t(this.width,this.height),e(this.backBuffer,this.width,this.height);for(const n of this.beforeFlushListeners)n(this.backBuffer,this.width,this.height);this.renderer.writeRaw(g);try{this.renderer.render(this.backBuffer)}finally{this.renderer.writeRaw(p)}}}}export{k as TuiApp};
@@ -1 +0,0 @@
1
- var c=Object.defineProperty;var i=(r,e)=>c(r,"name",{value:e,configurable:!0});import{enableNormalMouse as f,enableAnyEventMouse as m,enableSgrMouse as d,disableSgrMouse as b,disableAnyEventMouse as p,disableNormalMouse as y}from"@visulima/ansi";const B={mouseButton:{off:y,on:f},mouseMotion:{off:p,on:m},mouseMotionOthers:{off:"\x1B[?1015l",on:"\x1B[?1015h"},mouseSGR:{off:b,on:d}},M=/\[<(\d+);(\d+);(\d+)(M)$/i;var x=Object.defineProperty,g=i((r,e)=>x(r,"name",{value:e,configurable:!0}),"i");const v={0:"left",1:"middle",2:"right"},N={32:"left",33:"middle",34:"right"},A=g(r=>{const e=M.exec(r);if(!e)return;const a=Number(e[1]),t=Number(e[2]),n=Number(e[3]),s=e[4]==="m",o=a&-29;if(o===64||o===65)return{direction:o===64?"scrollup":"scrolldown",type:"scroll",x:t,y:n};if(o===35)return{type:"move",x:t,y:n};const u=N[o];if(u)return{action:s?"release":"press",button:u,type:"drag",x:t,y:n};const l=v[o];if(l)return{action:s?"release":"press",button:l,type:"click",x:t,y:n}},"parseSgrMouse");export{B as M,A as a};
@@ -1 +0,0 @@
1
- var g=Object.defineProperty;var c=(r,n)=>g(r,"name",{value:n,configurable:!0});import t from"@visulima/colorize";var f=Object.defineProperty,i=c((r,n)=>f(r,"name",{value:n,configurable:!0}),"i");const b=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,d=/^ansi256\(\s?(\d+)\s?\)$/,l=i(r=>r in t,"isNamedColor"),m=i((r,n,e)=>{if(!n)return r;if(l(n)){if(e==="foreground")return t[n](r);const o=`bg${n[0].toUpperCase()+n.slice(1)}`;return t[o](r)}if(n.startsWith("#"))return e==="foreground"?t.hex(n)(r):t.bgHex(n)(r);if(n.startsWith("ansi256")){const o=d.exec(n);if(!o)return r;const s=Number(o[1]);return e==="foreground"?t.ansi256(s)(r):t.bgAnsi256(s)(r)}if(n.startsWith("rgb")){const o=b.exec(n);if(!o)return r;const s=Number(o[1]),u=Number(o[2]),a=Number(o[3]);return e==="foreground"?t.rgb(s,u,a)(r):t.bgRgb(s,u,a)(r)}return r},"colorize"),N=i(r=>{const n=m("x",r,"background");if(n!=="x")return n.split("x")[0]},"getBackgroundColorEscape");export{m as d,N as g};
@@ -1,2 +0,0 @@
1
- var g=Object.defineProperty;var s=(i,o)=>g(i,"name",{value:o,configurable:!0});import{createDecMode as L,setMode as v,resetMode as S,BracketedPasteMode as O,cursorUp as N,cursorToColumn1 as Y,cursorHide as k,REQUEST_CURSOR_POSITION as z,cursorPosition as m,eraseLine as A,cursorShow as B}from"@visulima/ansi";import{terminalSize as C,Renderer as D}from"./Renderer-DJXooAsp.js";var G=Object.defineProperty,n=s((i,o)=>G(i,"name",{value:o,configurable:!0}),"r");const y=L(2026),_=v(y),j=S(y),H=v(O),Q=S(O);function q(i,o={}){const E=o.rows??10,P=o.fps??60,U=o.onExit??"preserve";let d=null,c=null,l=null,u=80,r=10,h=0,a=1;function e(t){c.writeRaw(t)}s(e,"e"),n(e,"write");function p(){l.fill(0),i(l,u,r,h++),e(_);try{c.render(l)}finally{e(j)}}s(p,"u"),n(p,"tick");function w(t){a=t-r,e(N(r)+Y),c.setRowOffset(a),p(),d=setInterval(()=>{p()},Math.round(1e3/P))}s(w,"E"),n(w,"startRendering");function I(){const t=C();u=t.cols;const x=t.rows;r=Math.min(E,x),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.setEncoding("utf8"),c=new D(u,r),l=new Uint32Array(u*r*2),e(k),e(H),e(`
2
- `.repeat(r)),e(z),process.on("SIGINT",f);let R="";const M=n(b=>{R+=b;const T=R.match(/\u001B\[(\d+);(\d+)R/);T&&(process.stdin.off("data",M),w(Number.parseInt(T[1],10)))},"onData");process.stdin.on("data",M)}s(I,"P"),n(I,"start");function f(){if(d&&(clearInterval(d),d=null),c){if(U==="destroy"){for(let t=0;t<r;t++)e(m(a+1+t,1)+A);e(m(a+1,1))}else e(m(a+r+1,1));e(Q),e(B)}process.stdin.isTTY&&process.stdin.setRawMode(!1),process.stdin.pause(),process.exit(0)}return s(f,"f"),n(f,"stop"),{start:I,stop:f}}s(q,"createInlineLoop");n(q,"createInlineLoop");export{q as createInlineLoop};
@@ -1,3 +0,0 @@
1
- var u=Object.defineProperty;var n=(t,r)=>u(t,"name",{value:r,configurable:!0});import{strip as i}from"@visulima/ansi";var c=Object.defineProperty,s=n((t,r)=>c(t,"name",{value:r,configurable:!0}),"e");const m=s((t,r)=>{const a=s(e=>e===void 0?"":i(e),"clean");return{contains(e){return this.text().includes(e)},frames(){return r.map(e=>i(e))},line(e){return this.text().split(`
2
- `)[e]??""},lines(){return this.text().split(`
3
- `).filter(e=>e.trim()!=="")},matches(e){return e.test(this.text())},rawFrames(){return[...r]},rawText(){return t()??""},text(){return a(t())}}},"createScreen");export{m as createScreen};
@@ -1,5 +0,0 @@
1
- type CursorPosition = {
2
- x: number;
3
- y: number;
4
- };
5
- export { CursorPosition as C };
@@ -1 +0,0 @@
1
- var f=Object.defineProperty;var s=(e,t)=>f(e,"name",{value:t,configurable:!0});import p from"yoga-layout";import{e as c}from"./measure-text-DDjHT1jD.js";import m from"./squashTextNodesWithMap-DCdi3SZ2.js";import{wordWrap as C,truncate as v}from"@visulima/string";var x=Object.defineProperty,R=s((e,t)=>x(e,"name",{value:t,configurable:!0}),"R");const u={},T={hard:"STRICT_WIDTH",wrap:"BREAK_WORDS","wrap-anywhere":"BREAK_AT_CHARACTERS","wrap-preserve-words":"PRESERVE_WORDS","wrap-strict":"STRICT_WIDTH"},k=R((e,t,o)=>{const r=e+String(t)+String(o),n=u[r];if(n)return n;let d=e;const N=T[o];if(N)d=C(e,{trim:!1,width:t,wrapMode:N}).replace(/\n$/,"");else if(o.startsWith("truncate")){let i="end";o==="truncate-middle"&&(i="middle"),o==="truncate-start"&&(i="start"),d=v(e,t,{position:i})}return u[r]=d,d},"wrapText");var S=Object.defineProperty,a=s((e,t)=>S(e,"name",{value:t,configurable:!0}),"n");let b=0;const P=a(e=>{const t={attributes:{},childNodes:[],internal_accessibility:{},internal_id:b++,nodeName:e,parentNode:void 0,style:{},yogaNode:e==="ink-virtual-text"||e==="ink-cursor"?void 0:p.Node.create()};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(_.bind(null,t)),t},"createNode"),l=a(e=>{g(e.nodeName==="ink-static-render"&&e.cachedRender?e.parentNode:e)},"markNodeAndParentIfStaticAsDirty"),O=a((e,t)=>{t.parentNode&&y(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),l(e)},"appendChildNode"),V=a((e,t,o)=>{t.parentNode&&y(t.parentNode,t),t.parentNode=e;const r=e.childNodes.indexOf(o);if(r===-1)e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount());else if(e.childNodes.splice(r,0,t),t.yogaNode){const n=e.childNodes.slice(0,r).filter(d=>!!d.yogaNode).length;e.yogaNode?.insertChild(t.yogaNode,n)}l(e)},"insertBeforeNode"),y=a((e,t)=>{if(t.yogaNode){const r=t.yogaNode.getParent();r&&r.removeChild(t.yogaNode)}t.parentNode=void 0;const o=e.childNodes.indexOf(t);o!==-1&&e.childNodes.splice(o,1),l(e)},"removeChildNode"),I=a((e,t,o)=>{if(t==="internal_accessibility"){e.internal_accessibility=o;return}e.attributes[t]=o},"setAttribute"),B=a((e,t)=>{e.style=t??{}},"setStyle"),H=a(e=>{const t={nodeName:"#text",nodeValue:e,parentNode:void 0,style:{},yogaNode:void 0};return w(t,e),t},"createTextNode"),_=a(function(e,t){const o=e.nodeName==="#text"?e.nodeValue:m(e),r=c(o);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;const n=e.style?.textWrap??"wrap",d=k(o,Math.floor(t),n);return c(d)},"measureTextNode"),h=a(e=>{if(e?.parentNode)return e.yogaNode??h(e.parentNode)},"findClosestYogaNode"),g=a(e=>{(e?.nodeName==="#text"||e?.nodeName==="ink-text"||e?.nodeName==="ink-virtual-text")&&h(e)?.markDirty();let t=e;for(;t;){if((t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&(t.internal_textCache=void 0),"childNodes"in t){if(t!==e&&t.nodeName==="ink-static-render"&&t.cachedRender)break;t.cachedRender=void 0}t=t.parentNode}},"markNodeAsDirty"),w=a((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,g(e)},"setTextNodeValue"),$=a((e,t)=>e.nodeName!=="ink-root"?()=>{}:(e.internal_layoutListeners??=new Set,e.internal_layoutListeners.add(t),()=>{e.internal_layoutListeners?.delete(t)}),"addLayoutListener"),j=a(e=>{if(!(e.nodeName!=="ink-root"||!e.internal_layoutListeners))for(const t of e.internal_layoutListeners)t()},"emitLayoutListeners"),M=a((e,t)=>{if(e.cachedRender=t,e.yogaNode){for(e.yogaNode.setWidth(t.width),e.yogaNode.setHeight(t.height);e.yogaNode.getChildCount()>0;)e.yogaNode.removeChild(e.yogaNode.getChild(0));e.isYogaTreeDetached=!0}},"setCachedRender"),K=a(e=>{const t=[];let o=e;for(;o;)t.unshift(o),o=o.parentNode;return t},"getPathToRoot"),Y=a(e=>{let t=e;for(;t;){const{userSelect:o}=t.style;if(o==="none")return!1;if(o==="text"||o==="all")return!0;t=t.parentNode}return!0},"isNodeSelectable");export{k as T,$ as a,V as b,P as c,O as d,j as e,H as f,K as g,B as h,Y as i,I as j,M as k,g as m,y as r,w as s};
@@ -1,90 +0,0 @@
1
- import { EventEmitter } from 'tseep';
2
- declare class TuiApp extends EventEmitter {
3
- private renderer;
4
- private terminal;
5
- private backBuffer;
6
- private width;
7
- private height;
8
- private isRunning;
9
- private stdoutBuffer;
10
- private stderrBuffer;
11
- constructor();
12
- /** Enters raw mode + alternate screen. Does NOT start any render loop. */
13
- start(): void;
14
- /** Request a clean exit — restores terminal, stops input, exits the process. */
15
- quit(): void;
16
- /** Exits raw mode + alternate screen, then flushes any buffered stdout/stderr. */
17
- stop(): void;
18
- /**
19
- * Buffer a write to stdout. While the alternate screen is active, writing
20
- * directly would corrupt the TUI. Buffered output is flushed on stop().
21
- */
22
- writeStdout(text: string): void;
23
- /**
24
- * Buffer a write to stderr. While the alternate screen is active, writing
25
- * directly would corrupt the TUI. Buffered output is flushed on stop().
26
- */
27
- writeStderr(text: string): void;
28
- /** Returns the shared Uint32Array back-buffer (width * height * 2 u32 cells). */
29
- getBuffer(): Uint32Array;
30
- /** Returns current terminal dimensions. */
31
- getSize(): {
32
- height: number;
33
- width: number;
34
- };
35
- /** Update terminal dimensions (called on SIGWINCH). */
36
- resize(width: number, height: number): void;
37
- /**
38
- * Callbacks fired on every frame after React paints the buffer but before
39
- * the Rust diff engine flushes to stdout. Use for direct buffer painting
40
- * that needs to overlay React output (animated graphs, overlays, FPS counters).
41
- * Multiple listeners are supported — they fire in registration order.
42
- */
43
- private beforeFlushListeners;
44
- onBeforeFlush(function_: (buffer: Uint32Array, width: number, height: number) => void): () => void;
45
- /**
46
- * Layout + paint synchronously. Called from the render loop on every dirty frame,
47
- * and directly on resize for immediate response.
48
- */
49
- paintNow(calculateLayout: (w: number, h: number) => void, renderToBuffer: (buf: Uint32Array, w: number, h: number) => void): void;
50
- }
51
- interface InlineOptions {
52
- /** Frames per second. Default: 60 */
53
- fps?: number;
54
- /**
55
- * What to do with the rendered content when the loop stops.
56
- * - 'preserve' (default) — content stays in terminal scrollback
57
- * - 'destroy' — content is cleared, terminal looks untouched
58
- */
59
- onExit?: "preserve" | "destroy";
60
- /** Number of terminal rows to reserve. Default: 10 */
61
- rows?: number;
62
- }
63
- type InlinePaintFn = (buf: Uint32Array, cols: number, rows: number, frame: number) => void;
64
- interface InlineLoop {
65
- start: () => void;
66
- stop: () => void;
67
- }
68
- /**
69
- * Create an inline render loop. Renders `rows` lines immediately below the
70
- * current cursor position (no alternate screen).
71
- */
72
- declare function createInlineLoop(paint: InlinePaintFn, options?: InlineOptions): InlineLoop;
73
- interface MouseEvent {
74
- button: "left" | "right" | "middle" | "scrollUp" | "scrollDown";
75
- ctrl: boolean;
76
- meta: boolean;
77
- shift: boolean;
78
- x: number;
79
- y: number;
80
- }
81
- declare class InputParser extends EventEmitter {
82
- private stdin;
83
- private _boundHandleData;
84
- private _pasteBuffer;
85
- constructor(stdin: NodeJS.ReadStream);
86
- start(): void;
87
- stop(): void;
88
- private handleData;
89
- }
90
- export { InlineLoop as I, MouseEvent as M, TuiApp as T, InlineOptions as a, InlinePaintFn as b, InputParser as c, createInlineLoop as d };
@@ -1,3 +0,0 @@
1
- var X=Object.defineProperty;var k=(r,t)=>X(r,"name",{value:t,configurable:!0});import{isFullwidthCodePoint as Y,getStringWidth as Z}from"@visulima/string";import{t as tt}from"./ansi-tokenizer-DqX9nJuk.js";var et=Object.defineProperty,st=k((r,t)=>et(r,"name",{value:t,configurable:!0}),"r$1");let H=class{static{k(this,"h")}static{st(this,"DataLimitedLruMap")}map;maxDataSize;maxKeys;currentDataSize=0;constructor(t,e){this.map=new Map,this.maxKeys=t,this.maxDataSize=e}get size(){return this.map.size}clear(){this.map.clear(),this.currentDataSize=0}get(t){if(!this.map.has(t))return;const e=this.map.get(t);return this.map.delete(t),this.map.set(t,e),e}set(t,e){const s=t.length;if(!(s>this.maxDataSize)){for(this.map.has(t)&&(this.map.delete(t),this.currentDataSize-=s);this.currentDataSize+s>this.maxDataSize&&this.map.size>0;){const a=this.map.keys().next().value;if(a===void 0)break;this.map.delete(a),this.currentDataSize-=a.length}for(;this.map.size>=this.maxKeys;){const a=this.map.keys().next().value;if(a===void 0)break;this.map.delete(a),this.currentDataSize-=a.length}this.map.set(t,e),this.currentDataSize+=s}}};const at=1,nt=2,K=4,j=8,R=16,M=32,V=64,x=128;var rt=Object.defineProperty,it=k((r,t)=>rt(r,"name",{value:t,configurable:!0}),"x");const p=1073741823,C=1073741824;class d{static{k(this,"StyledLine")}static{it(this,"StyledLine")}length=0;static emptyCache=new Map;text;charData;spans;_cachedTrimmedLength;static empty(t){if(t<=0)return new d;const e=d.emptyCache.get(t);if(e)return e.clone();const s=new d;s.length=t,s.text=" ".repeat(t),s.charData=Array.from({length:t});for(let a=0;a<t;a++)s.charData[a]=a;return s.spans=[{formatFlags:0,length:t}],s._cachedTrimmedLength=0,Object.freeze(s.spans[0]),Object.freeze(s.spans),Object.freeze(s),d.emptyCache.set(t,s),s.clone()}getValue(t){if(this.text===void 0||t<0||t>=this.length)return"";const e=this.charData[t]&p,s=t+1<this.length?this.charData[t+1]&p:this.text.length;return this.text.slice(e,s)}getTextRange(t,e){if(this.text===void 0||t<0||e>this.length||t>=e)return"";const s=this.charData[t]&p,a=e<this.length?this.charData[e]&p:this.text.length;return this.text.slice(s,a)}getSpan(t){if(this.spans===void 0||t<0||t>=this.length)return;let e=0;for(const s of this.spans){if(t<e+s.length)return s;e+=s.length}}getFullWidth(t){return this.charData===void 0||t<0||t>=this.length?!1:(this.charData[t]&C)!==0}hasStyles(t){const e=this.getSpan(t);return e?(e.formatFlags&~x)!==0||e.fgColor!==void 0||e.bgColor!==void 0||e.link!==void 0:!1}getFormatFlags(t){let e=this.getSpan(t)?.formatFlags??0;return this.getFullWidth(t)&&(e|=x),e}getFgColor(t){return this.getSpan(t)?.fgColor}getBgColor(t){return this.getSpan(t)?.bgColor}getLink(t){return this.getSpan(t)?.link}setInverted(t,e){this._cachedTrimmedLength=void 0,this.updateSpanAt(t,s=>{e?s.formatFlags|=M:s.formatFlags&=~M})}setBackgroundColor(t,e){this._cachedTrimmedLength=void 0,this.updateSpanAt(t,s=>{s.bgColor=e})}setForegroundColor(t,e){this._cachedTrimmedLength=void 0,this.updateSpanAt(t,s=>{s.fgColor=e})}setChar(t,e,s,a,n,h){if(t<0||t>=this.length)return;this._cachedTrimmedLength=void 0,this.ensureInitialized();const i=(s&x)!==0,o=s&~x,l=this.charData[t]&p,c=t+1<this.length?this.charData[t+1]&p:this.text.length,m=c-l,b=e.length;if(this.text=this.text.slice(0,l)+e+this.text.slice(c),m!==b){const f=b-m;for(let S=t+1;S<this.length;S++){const T=this.charData[S],w=T&p,L=T&C;this.charData[S]=w+f|L}}if(this.charData[t]=l|(i?C:0),this.trySetStyleAtIndex(t,o,a,n,h))return;this.splitSpansAt(t),this.splitSpansAt(t+1);let u=0;for(let f=0;f<this.spans.length;f++){const S=this.spans[f];if(u===t&&S.length===1){this.spans[f]={bgColor:n,fgColor:a,formatFlags:o,length:1,link:h};break}u+=S.length}this.mergeSpans()}setCharFast(t,e,s,a,n,h){if(t<0||t>=this.length)return;this._cachedTrimmedLength=void 0,this.ensureInitialized();const i=(s&x)!==0,o=s&~x,l=this.charData[t]&p,c=t+1<this.length?this.charData[t+1]&p:this.text.length,m=c-l;if(e.length===m)e!==this.text.slice(l,c)&&(this.text=this.text.slice(0,l)+e+this.text.slice(c)),this.charData[t]=l|(i?C:0);else{if(this.text=this.text.slice(0,l)+e+this.text.slice(c),m!==e.length){const u=e.length-m;for(let f=t+1;f<this.length;f++){const S=this.charData[f];this.charData[f]=(S&p)+u|S&C}}this.charData[t]=l|(i?C:0)}if(this.trySetStyleAtIndex(t,o,a,n,h))return;this.splitSpansAt(t),this.splitSpansAt(t+1);let b=0;for(let u=0;u<this.spans.length;u++){const f=this.spans[u];if(b===t&&f.length===1){this.spans[u]={bgColor:n,fgColor:a,formatFlags:o,length:1,link:h};break}b+=f.length}this.mergeSpans()}writeFrom(t,e,s=0,a){const n=a??e.length-s;if(n<=0||t>=this.length)return;this._cachedTrimmedLength=void 0,this.ensureInitialized();const h=Math.min(n,this.length-t,e.length-s),i=this.charData[t]&p,o=t+h<this.length?this.charData[t+h]&p:this.text.length;let l="";for(let g=0;g<h;g++)l+=e.getValue(s+g);const c=o-i,m=l.length-c;this.text=this.text.slice(0,i)+l+this.text.slice(o);let b=i;for(let g=0;g<h;g++){const D=e.getFullWidth(s+g);this.charData[t+g]=b|(D?C:0),b+=e.getValue(s+g).length}if(m!==0)for(let g=t+h;g<this.length;g++){const D=this.charData[g];this.charData[g]=(D&p)+m|D&C}this.splitSpansAt(t),this.splitSpansAt(t+h);const u=[];let f=0;for(const g of e.getSpans()){const D=f+g.length,P=Math.max(s,f),E=Math.min(s+h,D);if(P<E&&u.push({...g,length:E-P}),f=D,f>=s+h)break}let S=0,T=0;for(let g=0;g<this.spans.length;g++){if(T===t){S=g;break}T+=this.spans[g].length}let w=0,L=0;for(let g=S;g<this.spans.length&&L<h;g++)L+=this.spans[g].length,w++;this.spans.splice(S,w,...u),this.mergeSpans()}pushChar(t,e,s,a,n){this._cachedTrimmedLength=void 0,this.ensureInitialized();const h=(e&x)!==0,i=e&~x,o=this.text.length;this.text=(this.text??"")+t,this.charData.push(o|(h?C:0));const l=this.spans.at(-1);l?.formatFlags===i&&l.fgColor===s&&l.bgColor===a&&l.link===n?l.length++:this.spans.push({bgColor:a,fgColor:s,formatFlags:i,length:1,link:n}),this.length++}clone(){if(this.charData===void 0)return new d;const t=new d;return t.length=this.length,t.text=this.text,t.charData=[...this.charData],t.spans=this.spans.map(e=>({...e})),t._cachedTrimmedLength=this._cachedTrimmedLength,t}slice(t,e){if(this.charData===void 0)return new d;const s=Math.max(0,t),a=e===void 0?this.length:Math.min(this.length,e);if(s>=a)return new d;if(s===0&&a===this.length)return this.clone();const n=new d;n.length=a-s,n.charData=Array.from({length:n.length});const h=this.charData[s]&p,i=a<this.length?this.charData[a]&p:this.text.length;n.text=this.text.slice(h,i);for(let c=0;c<n.length;c++){const m=this.charData[s+c],b=m&p,u=m&C;n.charData[c]=b-h|u}const o=[];let l=0;for(const c of this.spans){const m=l,b=l+c.length,u=Math.max(s,m),f=Math.min(a,b);if(u<f&&o.push({...c,length:f-u}),l+=c.length,l>=a)break}return n.spans=o,n.mergeSpans(),n}combine(...t){if(t.length===0)return this.clone();const e=[this,...t].filter(i=>i.length>0);if(e.length===0)return new d;if(e.length===1)return e[0].clone();let s=0;for(const i of e)s+=i.length;const a=new d;a.length=s,a.text=e.map(i=>i.getText()).join(""),a.charData=Array.from({length:s});let n=0,h=0;for(const i of e){const o=i.charData,l=i.getText();if(o)for(let c=0;c<i.length;c++){const m=o[c],b=m&p,u=m&C;a.charData[n+c]=h+b|u}else for(let c=0;c<i.length;c++)a.charData[n+c]=h+c;n+=i.length,h+=l.length}return a.spans=e.flatMap(i=>i.getSpans().map(o=>({...o}))),a.mergeSpans(),a}getTrimmedLength(){if(this._cachedTrimmedLength!==void 0)return this._cachedTrimmedLength;if(this.length===0)return this._cachedTrimmedLength=0,0;if(this.text===void 0||this.charData===void 0)return this._cachedTrimmedLength=0,0;let t=this.length-1;if(this.spans)for(let e=this.spans.length-1;e>=0;e--){const s=this.spans[e];if((s.formatFlags&~x)!==0||s.fgColor!==void 0||s.bgColor!==void 0||s.link!==void 0)return this._cachedTrimmedLength=t+1,this._cachedTrimmedLength;for(let a=0;a<s.length;a++){const n=this.charData[t]&p;if((t+1<this.length?this.charData[t+1]&p:this.text.length)-n!==1||this.text[n]!==" ")return this._cachedTrimmedLength=t+1,this._cachedTrimmedLength;t--}}return this._cachedTrimmedLength=0,0}trimEnd(){const t=this.getTrimmedLength();return t===this.length?this:t===0?new d:this.slice(0,t)}equals(t){if(this.length!==t.length)return!1;if(this.length===0)return!0;if(this.getText()!==t.getText())return!1;const e=this.getSpans(),s=t.getSpans();if(e.length!==s.length)return!1;for(const[h,i]of e.entries()){const o=i,l=s[h];if(o.length!==l.length||o.formatFlags!==l.formatFlags||o.fgColor!==l.fgColor||o.bgColor!==l.bgColor||o.link!==l.link)return!1}const a=this.charData,n=t.charData;if(a&&n){for(let h=0;h<this.length;h++)if(a[h]!==n[h])return!1}return!0}getText(){return this.text??""}getSpans(){return this.spans??[]}getValues(){return Array.from({length:this.length},(t,e)=>this.getValue(e))}*[Symbol.iterator](){if(this.length===0)return;let t=0,e=0;const s=this.getSpans();for(let a=0;a<this.length;a++){const n=s[t],h=n?n.formatFlags:0,i=this.getFullWidth(a);yield{bgColor:n?.bgColor,fgColor:n?.fgColor,formatFlags:h|(i?x:0),fullWidth:i,hasStyles:(h&~x)!==0||n?.fgColor!==void 0||n?.bgColor!==void 0||n?.link!==void 0,link:n?.link,value:this.getValue(a)},n&&(e++,e>=n.length&&(t++,e=0))}}updateSpanAt(t,e){if(t<0||t>=this.length)return;this.ensureInitialized(),this.splitSpansAt(t),this.splitSpansAt(t+1);let s=0;for(const a of this.spans){if(s===t&&a.length===1){e(a);break}s+=a.length}this.mergeSpans()}ensureWidth(t){if(t<=this.length)return;this.ensureInitialized();const e=this.length,s=t-e,a=this.text.length;for(let h=0;h<s;h++)this.charData.push(a);this.length=t;const n=this.spans.at(-1);n?.formatFlags===0&&n.fgColor===void 0&&n.bgColor===void 0&&n.link===void 0?n.length+=s:this.spans.push({formatFlags:0,length:s})}ensureInitialized(){if(this.charData===void 0&&(this.text="",this.charData=Array.from({length:this.length}),this.spans=this.length>0?[{formatFlags:0,length:this.length}]:[],this.length>0&&this.text.length===0)){this.text=" ".repeat(this.length);for(let t=0;t<this.length;t++)this.charData[t]=t}}splitSpansAt(t){if(this.spans===void 0||t<=0||t>=this.length)return;let e=0;for(let s=0;s<this.spans.length;s++){const a=this.spans[s];if(t>e&&t<e+a.length){const n=t-e,h=a.length-n;this.spans.splice(s,1,{...a,length:n},{...a,length:h});return}e+=a.length}}trySetStyleAtIndex(t,e,s,a,n){if(!this.spans)return!1;let h=0,i=-1,o;for(let l=0;l<this.spans.length;l++){const c=this.spans[l];if(h<=t&&h+c.length>t){i=l,o=c;break}h+=c.length}if(!o)return!1;if(o.formatFlags===e&&o.fgColor===s&&o.bgColor===a&&o.link===n)return!0;if(t===h&&i>0){const l=this.spans[i-1];if(l.formatFlags===e&&l.fgColor===s&&l.bgColor===a&&l.link===n)return l.length+=1,o.length===1?this.spans.splice(i,1):o.length-=1,!0}if(t===h+o.length-1&&i<this.spans.length-1){const l=this.spans[i+1];if(l.formatFlags===e&&l.fgColor===s&&l.bgColor===a&&l.link===n)return l.length+=1,o.length===1?this.spans.splice(i,1):o.length-=1,!0}return!1}mergeSpans(){if(this.spans===void 0)return;const t=[];for(const e of this.spans){if(e.length===0)continue;const s=t.at(-1);s?.formatFlags===e.formatFlags&&s.fgColor===e.fgColor&&s.bgColor===e.bgColor&&s.link===e.link?s.length+=e.length:t.push({...e})}this.spans=t}}var ht=Object.defineProperty,I=k((r,t)=>ht(r,"name",{value:t,configurable:!0}),"u$1");const G={black:0,blue:4,cyan:6,gray:8,green:2,grey:8,magenta:5,red:1,white:7,yellow:3},U={blackBright:8,blueBright:12,cyanBright:14,greenBright:10,magentaBright:13,redBright:9,whiteBright:15,yellowBright:11},q=/^ansi256\(\s?(\d+)\s?\)$/,J=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Nt=I(r=>{const t=G[r];if(t!==void 0)return t;const e=U[r];if(e!==void 0)return e;const s=q.exec(r);if(s)return Number(s[1])&255;if(r.startsWith("#")&&r.length===7){const n=Number.parseInt(r.slice(1,3),16),h=Number.parseInt(r.slice(3,5),16),i=Number.parseInt(r.slice(5,7),16);return 16+36*Math.round(n/51)+6*Math.round(h/51)+Math.round(i/51)}const a=J.exec(r);return a?16+36*Math.round(Number(a[1])/51)+6*Math.round(Number(a[2])/51)+Math.round(Number(a[3])/51):255},"colorToAnsi256"),lt=I((r,t)=>{const e=t?30:40,s=G[r];if(s!==void 0)return[e+s];const a=U[r];if(a!==void 0)return[e+60+(a-8)];if(r.startsWith("#")&&r.length===7){const i=Number.parseInt(r.slice(1,3),16),o=Number.parseInt(r.slice(3,5),16),l=Number.parseInt(r.slice(5,7),16);return[t?38:48,2,i,o,l]}const n=q.exec(r);if(n)return[t?38:48,5,Number(n[1])];const h=J.exec(r);return h?[t?38:48,2,Number(h[1]),Number(h[2]),Number(h[3])]:[]},"colorToSgrParams");I((r,t)=>{const e=lt(r,t);if(e.length!==0)return`\x1B[${e.join(";")}m`},"colorToAnsiCode");const A=I(r=>{const t=["black","red","green","yellow","blue","magenta","cyan","white"];return r>=0&&r<=7?t[r]:`ansi256(${r})`},"ansi256ToColorName");var ot=Object.defineProperty,y=k((r,t)=>ot(r,"name",{value:t,configurable:!0}),"u");const _=y(()=>({bgColor:void 0,fgColor:void 0,formatFlags:0,link:void 0}),"createSgrState"),ct=y((r,t)=>{if(t.length===0)return _();const e=(t.includes(":")?t.replaceAll(":",";"):t).split(";").filter(o=>o.length>0).map(Number);let{bgColor:s,fgColor:a,formatFlags:n,link:h}=r,i=0;for(;i<e.length;){const o=e[i];switch(o){case 0:{n=0,a=void 0,s=void 0,h=void 0;break}case 1:{n|=at;break}case 2:{n|=nt;break}case 3:{n|=K;break}case 4:{n|=j;break}case 7:{n|=M;break}case 8:{n|=V;break}case 9:{n|=R;break}case 22:{n&=-4;break}case 23:{n&=~K;break}case 24:{n&=~j;break}case 27:{n&=~M;break}case 28:{n&=~V;break}case 29:{n&=~R;break}case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:{a=A(o-30);break}case 38:{e[i+1]===5&&e[i+2]!==void 0?(a=A(e[i+2]),i+=2):e[i+1]===2&&i+4<e.length&&(a=`rgb(${e[i+2]}, ${e[i+3]}, ${e[i+4]})`,i+=4);break}case 39:{a=void 0;break}case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:{s=A(o-40);break}case 48:{e[i+1]===5&&e[i+2]!==void 0?(s=A(e[i+2]),i+=2):e[i+1]===2&&i+4<e.length&&(s=`rgb(${e[i+2]}, ${e[i+3]}, ${e[i+4]})`,i+=4);break}case 49:{s=void 0;break}case 90:case 91:case 92:case 93:case 94:case 95:case 96:case 97:{a=`ansi256(${o-90+8})`;break}case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:{s=`ansi256(${o-100+8})`;break}}i++}return{bgColor:s,fgColor:a,formatFlags:n,link:h}},"applySgrParams"),z=127462,N=127487,gt=127995,ft=127999,ut=8205,dt=917504,mt=917631,pt=new RegExp("\\p{Mark}","u"),bt=new Intl.Segmenter(void 0,{granularity:"grapheme"}),St=y((r,t)=>!!(Y(t)||r.includes("️")||t>=z&&t<=N),"isFullwidthGrapheme"),xt=/(?:\u001B\]|\u009D)8;([^;]*);(.*?)(?:\u001B\\|\u0007|\u009C)/,Ct=y(r=>{const t=xt.exec(r);return!t?.[2]||t[2].length===0?void 0:r.endsWith("\x1B\\")?`ST:${t[2]}`:t[2]},"parseOscHyperlink"),Q=y((r,t,e)=>{const s=bt.segment(r),a=[];for(const{segment:n}of s)a.push(n);for(let n=0;n<a.length;n++){let h=a[n];if(h===" "){for(let l=0;l<4;l++)t.pushChar(" ",e.formatFlags,e.fgColor,e.bgColor,e.link);continue}if(h==="\b")continue;const i=h.codePointAt(0);if(!i)continue;if(i>=z&&i<=N&&n+1<a.length){const l=a[n+1],c=l.codePointAt(0);c&&c>=z&&c<=N&&(h+=l,n++)}else for(;n+1<a.length;){const l=a[n+1],c=l.codePointAt(0);if(!c)break;const m=pt.test(String.fromCodePoint(c)),b=c>=gt&&c<=ft,u=c===ut,f=c>=dt&&c<=mt;if(!m&&!b&&!u&&!f)break;h+=l,n++,u&&n+1<a.length&&(h+=a[n+1],n++)}const o=St(h,i)?e.formatFlags|x:e.formatFlags;t.pushChar(h,o,e.fgColor,e.bgColor,e.link)}},"processTextToken"),vt=y(r=>{if(r.length===0)return new d;const t=tt(r),e=new d;let s=_();for(const a of t)switch(a.type){case"csi":{a.finalCharacter==="m"&&(s=ct(s,a.parameterString));break}case"osc":{const n=Ct(a.value);n!==void 0?s={...s,link:n}:a.value.includes("8;")&&(s={...s,link:void 0});break}case"text":{Q(a.value,e,s);break}}return e},"textToStyledLine"),kt=/^[\u0020-\u007E]*$/,$t=y(r=>{if(r.length===0)return new d;const t=new d;if(kt.test(r)){for(const e of r)t.pushChar(e,0);return t}return Q(r,t,_()),t},"plainTextToStyledLine");var Dt=Object.defineProperty,v=k((r,t)=>Dt(r,"name",{value:t,configurable:!0}),"r");const $=new H(1e4,1e6),W=new Map,F=new H(1e4,1e6);let B=!0,O=Z;const Wt=v(r=>{B=r,r||F.clear()},"setEnableStyledLineCache"),Bt=v(()=>{F.clear()},"clearStyledLineCache"),_t=v(r=>{O=r,yt()},"setStringWidthFunction"),yt=v(()=>{$.clear(),W.clear(),F.clear()},"clearStringWidthCache"),Tt=v(r=>{if(r.length===1){const s=r.codePointAt(0);if(s!==void 0&&s>=32&&s<127)return 1}const t=W.get(r);if(t!==void 0)return t;let e;try{e=O(r)}catch{e=1}return W.set(r,e),e},"inkCharacterWidth"),Ft=v(r=>{try{return O(r)}catch{return 1}},"safeGetStringWidth"),Ot=v(r=>{if(r.length===0)return{height:0,width:0};const t=$.get(r);if(t)return t;const e=r.split(`
2
- `),s=Math.max(...e.map(n=>Ft(n))),a={height:e.length,width:s};return $.set(r,a),a},"measureText"),Pt=v(r=>{if(B){const e=F.get(r);if(e!==void 0)return e}const t=vt(r);return B&&F.set(r,t),t},"toStyledLine"),wt=v(r=>{let t=0;for(let e=0;e<r.length;e++)t+=Tt(r.getValue(e));return t},"styledLineWidth"),Lt=v(r=>{if(r.length===0)return[new d];const t=[];let e=0;for(let s=0;s<r.length;s++)r.getValue(s)===`
3
- `&&(t.push(s>e?r.slice(e,s):new d),e=s+1);return t.push(e<r.length?r.slice(e):new d),t},"splitStyledLineByNewline"),Et=v(r=>{if(r.length===0)return{height:0,width:0};const t=Lt(r);let e=0;for(const s of t)e=Math.max(e,wt(s));return{height:t.length,width:e}},"measureStyledLine");export{at as B,nt as D,x as F,V as H,K as I,d as S,j as U,Bt as a,_t as b,yt as c,wt as d,Ot as e,M as f,R as g,lt as h,Tt as i,Nt as j,vt as k,Lt as l,Et as m,$t as p,Wt as s,Pt as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./ansi-parser-B6uXaq65.js";export{e as parseSgrMouse};
@@ -1 +0,0 @@
1
- var P=Object.defineProperty;var p=(e,t)=>P(e,"name",{value:t,configurable:!0});import{createRequire as b}from"node:module";import{version as O,createContext as F}from"react";import G from"react-reconciler";import{NoEventPriority as L,DefaultEventPriority as v}from"react-reconciler/constants.js";import{unstable_shouldYield as w,unstable_scheduleCallback as k,unstable_now as B,unstable_cancelCallback as W}from"scheduler";import n from"yoga-layout";import{b as y,d as g,s as E,m as _,e as M,r as I,f as H,c as U,h as C,j as N}from"./dom-BG-LS10p.js";const re=b(import.meta.url),D=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,A=D;var Y=Object.defineProperty,u=p((e,t)=>Y(e,"name",{value:t,configurable:!0}),"t");const j=[["top",n.EDGE_TOP],["right",n.EDGE_RIGHT],["bottom",n.EDGE_BOTTOM],["left",n.EDGE_LEFT]],X=u((e,t)=>{if("position"in t){let r=n.POSITION_TYPE_RELATIVE;t.position==="absolute"?r=n.POSITION_TYPE_ABSOLUTE:t.position==="static"&&(r=n.POSITION_TYPE_STATIC),e.setPositionType(r)}for(const[r,s]of j){if(!(r in t))continue;const l=t[r];if(typeof l=="string"){e.setPositionPercent(s,Number.parseFloat(l));continue}e.setPosition(s,l)}},"applyPositionStyles"),V=u((e,t)=>{"margin"in t&&e.setMargin(n.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(n.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(n.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(n.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(n.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(n.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(n.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),J=u((e,t)=>{"padding"in t&&e.setPadding(n.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(n.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(n.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(n.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(n.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(n.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(n.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),q=u((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(n.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(n.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(n.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(n.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(n.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(n.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(n.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(n.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(n.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(n.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(n.ALIGN_FLEX_END),t.alignItems==="baseline"&&e.setAlignItems(n.ALIGN_BASELINE)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(n.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(n.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(n.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(n.ALIGN_FLEX_END),t.alignSelf==="stretch"&&e.setAlignSelf(n.ALIGN_STRETCH),t.alignSelf==="baseline"&&e.setAlignSelf(n.ALIGN_BASELINE)),"alignContent"in t&&((t.alignContent==="flex-start"||!t.alignContent)&&e.setAlignContent(n.ALIGN_FLEX_START),t.alignContent==="center"&&e.setAlignContent(n.ALIGN_CENTER),t.alignContent==="flex-end"&&e.setAlignContent(n.ALIGN_FLEX_END),t.alignContent==="space-between"&&e.setAlignContent(n.ALIGN_SPACE_BETWEEN),t.alignContent==="space-around"&&e.setAlignContent(n.ALIGN_SPACE_AROUND),t.alignContent==="space-evenly"&&e.setAlignContent(n.ALIGN_SPACE_EVENLY),t.alignContent==="stretch"&&e.setAlignContent(n.ALIGN_STRETCH)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(n.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(n.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(n.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(n.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(n.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(n.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),$=u((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0)),"maxWidth"in t&&(typeof t.maxWidth=="string"?e.setMaxWidthPercent(Number.parseInt(t.maxWidth,10)):e.setMaxWidth(t.maxWidth)),"maxHeight"in t&&(typeof t.maxHeight=="string"?e.setMaxHeightPercent(Number.parseInt(t.maxHeight,10)):e.setMaxHeight(t.maxHeight)),"aspectRatio"in t&&e.setAspectRatio(t.aspectRatio)},"applyDimensionStyles"),z=u((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?n.DISPLAY_FLEX:n.DISPLAY_NONE)},"applyDisplayStyles"),Z=u((e,t,r)=>{if(!("borderStyle"in t||"borderTop"in t||"borderBottom"in t||"borderLeft"in t||"borderRight"in t))return;const s=r.borderStyle?1:0;e.setBorder(n.EDGE_TOP,r.borderTop===!1?0:s),e.setBorder(n.EDGE_BOTTOM,r.borderBottom===!1?0:s),e.setBorder(n.EDGE_LEFT,r.borderLeft===!1?0:s),e.setBorder(n.EDGE_RIGHT,r.borderRight===!1?0:s)},"applyBorderStyles"),K=u((e,t)=>{"gap"in t&&e.setGap(n.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(n.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(n.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),Q=u((e,t)=>{const r=t.overflow??"visible",s=t.overflowX??r,l=t.overflowY??r;s==="scroll"||l==="scroll"?e.setOverflow(n.OVERFLOW_SCROLL):s==="hidden"||l==="hidden"?e.setOverflow(n.OVERFLOW_HIDDEN):e.setOverflow(n.OVERFLOW_VISIBLE)},"applyOverflowStyles"),S=u((e,t={},r=t)=>{X(e,t),V(e,t),J(e,t),q(e,t),$(e,t),z(e,t),Z(e,t,r),K(e,t),Q(e,r)},"styles");var ee=Object.defineProperty,c=p((e,t)=>ee(e,"name",{value:t,configurable:!0}),"c");if(A.env.DEV==="true"){let e=!1;try{import.meta.resolve("react-devtools-core"),e=!0}catch{}e&&await import("../packem_chunks/devtools.js")}const x=c((e,t)=>{if(e===t)return;if(!e)return t;const r={};let s=!1;for(const l of Object.keys(e))(!t||!Object.hasOwn(t,l))&&(r[l]=void 0,s=!0);if(t)for(const l of Object.keys(t))t[l]!==e[l]&&(r[l]=t[l],s=!0);return s?r:void 0},"diff"),h=c(e=>{if(e){if(e.yogaNode?.unsetMeasureFunc(),"resizeObservers"in e&&e.resizeObservers?.clear(),"childNodes"in e&&e.childNodes)for(const t of e.childNodes)h(t);e.yogaNode?.free(),"cachedRender"in e&&(e.cachedRender=void 0),"childNodes"in e&&(e.childNodes=[]),e.parentNode=void 0}},"cleanupNodeTree");let m=L,T;async function R(){const e=(await import("node:fs")).readFileSync(new URL("../package.json",import.meta.url),"utf8"),t=JSON.parse(e);return{name:t?.name,version:t?.version}}p(R,"B");c(R,"loadPackageJson");let f={name:"ink",version:O};if(A.env.DEV==="true")try{const e=await R();f={name:e.name||f.name,version:e.version||f.version}}catch(e){console.warn("Failed to load package.json in development mode. Falling back to default renderer metadata.",e)}const de=G({afterActiveInstanceBlur(){},appendChild:g,appendChildToContainer:g,appendInitialChild:g,beforeActiveInstanceBlur(){},cancelCallback:W,cancelTimeout:clearTimeout,clearContainer:c(()=>!1,"clearContainer"),commitTextUpdate(e,t,r){E(e,r)},commitUpdate(e,t,r,s){T&&e.internal_static&&(T.isStaticDirty=!0);const l=x(r,s),a=x(r.style,s.style);if(!l&&!a)return;let i=!!a;if(l){for(const[o,d]of Object.entries(l))if(o!=="children"){if(o==="style"){C(e,d);continue}if(o==="internal_transform"){e.internal_transform=d,i=!0;continue}if(o==="internal_cursor"){e.internal_cursor=d,i=!0;continue}if(o==="internal_static"){e.internal_static=!0,i=!0;continue}if(o==="sticky"){e.internal_sticky=d,i=!0;continue}if(o==="internalStickyAlternate"){e.internal_stickyAlternate=d,i=!0;continue}if(o==="opaque"){e.internal_opaque=d,i=!0;continue}if(o==="scrollbar"){e.internal_scrollbar=d,i=!0;continue}if(o==="internal_terminalCursorFocus"){e.internal_terminalCursorFocus=d,i=!0;continue}if(o==="internal_terminalCursorPosition"){e.internal_terminalCursorPosition=d,i=!0;continue}if(o==="cachedRender"){e.cachedRender=d,i=!0;continue}N(e,o,d),i=!0}}a&&e.yogaNode&&S(e.yogaNode,a,s.style??{}),i&&_(e)},createInstance(e,t,r,s){if(s.isInsideText&&e==="ink-box")throw new Error("<Box> can’t be nested inside <Text> component");if(s.isInsideText&&e==="ink-cursor")throw new Error("<Cursor> can’t be nested inside <Text> component");const l=e==="ink-text"&&s.isInsideText?"ink-virtual-text":e,a=U(l);for(const[i,o]of Object.entries(t))if(i!=="children"){if(i==="style"){C(a,o),a.yogaNode&&S(a.yogaNode,o);continue}if(i==="internal_transform"){a.internal_transform=o;continue}if(i==="internal_cursor"){a.internal_cursor=o;continue}if(i==="internal_static"){T=r,a.internal_static=!0,r.isStaticDirty=!0,r.staticNode=a;continue}if(i==="sticky"){a.internal_sticky=o;continue}if(i==="internalStickyAlternate"){a.internal_stickyAlternate=o;continue}if(i==="opaque"){a.internal_opaque=o;continue}if(i==="scrollbar"){a.internal_scrollbar=o;continue}if(i==="internal_terminalCursorFocus"){a.internal_terminalCursorFocus=o;continue}if(i==="internal_terminalCursorPosition"){a.internal_terminalCursorPosition=o;continue}if(i==="internal_static"){a.internal_static=!0;continue}if(i==="cachedRender"){a.cachedRender=o;continue}N(a,i,o)}return a},createTextInstance(e,t,r){if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return H(e)},detachDeletedInstance(){},finalizeInitialChildren(){return!1},getChildHostContext(e,t){const r=e.isInsideText,s=t==="ink-text"||t==="ink-virtual-text";return r===s?e:{isInsideText:s}},getCurrentUpdatePriority:c(()=>m,"getCurrentUpdatePriority"),getInstanceFromNode:c(()=>null,"getInstanceFromNode"),getInstanceFromScope:c(()=>null,"getInstanceFromScope"),getPublicInstance:c(e=>e,"getPublicInstance"),getRootHostContext:c(()=>({isInsideText:!1}),"getRootHostContext"),hideInstance(e){e.internal_hidden=!0,e.yogaNode?.setDisplay(n.DISPLAY_NONE),_(e)},hideTextInstance(e){E(e,"")},HostTransitionContext:F(null),insertBefore:y,insertInContainerBefore:y,isPrimaryRenderer:!0,maySuspendCommit(){return!0},noTimeout:-1,NotPendingTransition:void 0,now:B,preloadInstance(){return!0},prepareForCommit:c(()=>null,"prepareForCommit"),preparePortalMount:c(()=>null,"preparePortalMount"),prepareScopeUpdate(){},removeChild(e,t){I(e,t),h(t)},removeChildFromContainer(e,t){I(e,t),h(t)},rendererPackageName:f.name,rendererVersion:f.version,requestPostPaintCallback(){},resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),M(e),e.staticNode!==e.previousStaticNode&&(e.previousStaticNode=e.staticNode,typeof e.onStaticChange=="function"&&e.onStaticChange()),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},resetFormInstance(){},resetTextContent(){},resolveEventTimeStamp(){return-1.1},resolveEventType(){return null},resolveUpdatePriority(){return m!==L?m:v},scheduleCallback:k,scheduleMicrotask:queueMicrotask,scheduleTimeout:setTimeout,setCurrentUpdatePriority(e){m=e},shouldAttemptEagerTransition(){return!1},shouldSetTextContent:c(()=>!1,"shouldSetTextContent"),shouldYield:w,startSuspendingCommit(){},supportsHydration:!1,supportsMicrotasks:!0,supportsMutation:!0,supportsPersistence:!1,suspendInstance(){},trackSchedulerEvent(){},unhideInstance(e){e.internal_hidden=!1,e.yogaNode?.setDisplay(n.DISPLAY_FLEX),_(e)},unhideTextInstance(e,t){E(e,t)},waitForCommitToBeReady(){return null}});export{de as L,S as u};
@@ -1 +0,0 @@
1
- var y=Object.defineProperty;var c=(e,t)=>y(e,"name",{value:t,configurable:!0});import{createContext as b}from"react";import T from"react-reconciler";import{NoEventPriority as C,DefaultEventPriority as I,DiscreteEventPriority as P}from"react-reconciler/constants.js";import{unstable_shouldYield as k,unstable_scheduleCallback as x,unstable_now as S,unstable_cancelCallback as E}from"scheduler";import{LayoutNode as f}from"./LayoutNode-B8zej4dm.js";import{applyStyles as h,resolveColor as g}from"./NAMED_COLORS-B9fJsYdg.js";import{a as N}from"./text-width-BU2eeTWn.js";var A=Object.defineProperty,n=c((e,t)=>A(e,"name",{value:t,configurable:!0}),"o");let m=null;function _(e){m=e}c(_,"setOnAfterCommit");n(_,"setOnAfterCommit");let u=C;function p(e){const t=g(e.fg===void 0?e.color===void 0?void 0:e.color:e.fg),o=g(e.bg===void 0?e.backgroundColor===void 0?void 0:e.backgroundColor:e.bg);let r;return e.styles===void 0?(r=0,e.bold&&(r|=1),(e.dim||e.dimColor)&&(r|=2),e.italic&&(r|=4),e.underline&&(r|=8),e.blink&&(r|=16),e.inverse&&(r|=32),e.hidden&&(r|=64),e.strikethrough&&(r|=128)):r=e.styles,{bg:o,fg:t,styles:r}}c(p,"m");n(p,"resolveNodeColors");const U={afterActiveInstanceBlur:n(()=>{},"afterActiveInstanceBlur"),appendChild(e,t){e.insertChild(t,e.children.length)},appendChildToContainer(e,t){e.insertChild(t,e.children.length)},appendInitialChild(e,t){e.insertChild(t,e.children.length)},beforeActiveInstanceBlur:n(()=>{},"beforeActiveInstanceBlur"),cancelCallback:E,cancelTimeout:clearTimeout,clearContainer(e){},commitTextUpdate(e,t,o){e.text=o,e.yogaNode.markDirty()},commitUpdate(e,t,o,r,a){h(e.yogaNode,r);const{bg:i,fg:s,styles:d}=p(r);e.fg=s,e.bg=i,e.styles=d,e._style=r,e.transform=typeof r.transform=="function"?r.transform:void 0},createInstance(e,t,o,r,a){const i=new f,s={...t};s.flexDirection===void 0&&(s.flexDirection="row"),s.flexShrink===void 0&&(s.flexShrink=1),h(i.yogaNode,s);const{bg:d,fg:l,styles:v}=p(t);return i.fg=l,i.bg=d,i.styles=v,i._style=t,typeof t.transform=="function"&&(i.transform=t.transform),i},createTextInstance(e,t,o,r){const a=new f;return a.text=e,a.yogaNode.setWidth(N(e)),a.yogaNode.setHeight(1),a},detachDeletedInstance:n(e=>{e.destroy()},"detachDeletedInstance"),finalizeInitialChildren(e,t,o,r,a){return!1},getChildHostContext(e,t,o){return{isInsideText:t==="text"}},getCurrentEventPriority:n(()=>P,"getCurrentEventPriority"),getCurrentUpdatePriority:n(()=>u,"getCurrentUpdatePriority"),getInstanceFromNode:n(()=>null,"getInstanceFromNode"),getPublicInstance(e){return e},getRootHostContext(e){return{isInsideText:!1}},hideInstance(e){e._hidden=!0},hideTextInstance(e){e._hidden=!0},HostTransitionContext:b(null),insertBefore(e,t,o){t.parent&&t.remove();const r=e.children.indexOf(o);e.insertChild(t,r)},isPrimaryRenderer:!0,maySuspendCommit:n(()=>!0,"maySuspendCommit"),noTimeout:-1,NotPendingTransition:void 0,now:S,preloadInstance:n(()=>!0,"preloadInstance"),prepareForCommit(e){return null},preparePortalMount:n(()=>{},"preparePortalMount"),prepareScopeUpdate:n(()=>{},"prepareScopeUpdate"),prepareUpdate(e,t,o,r,a,i){const s=Object.keys(o).filter(l=>l!=="children"),d=Object.keys(r).filter(l=>l!=="children");if(s.length!==d.length)return!0;for(const l of d)if(o[l]!==r[l])return!0;return null},removeChild(e,t){t.remove()},removeChildFromContainer(e,t){t.remove()},requestPostPaintCallback:n(()=>{},"requestPostPaintCallback"),resetAfterCommit(e){typeof m=="function"&&m()},resolveEventTimeStamp:n(()=>-1.1,"resolveEventTimeStamp"),resolveEventType:n(()=>null,"resolveEventType"),resolveUpdatePriority(){return u!==C?u:I},scheduleCallback:x,scheduleMicrotask:queueMicrotask,scheduleTimeout:setTimeout,setCurrentUpdatePriority(e){u=e},shouldAttemptEagerTransition:n(()=>!1,"shouldAttemptEagerTransition"),shouldSetTextContent(e,t){return!1},shouldYield:k,startSuspendingCommit:n(()=>{},"startSuspendingCommit"),supportsHydration:!1,supportsMicrotasks:!0,supportsMutation:!0,supportsPersistence:!1,suspendInstance:n(()=>{},"suspendInstance"),trackSchedulerEvent:n(()=>{},"trackSchedulerEvent"),unhideInstance(e,t){e._hidden=!1},unhideTextInstance(e,t){e._hidden=!1},waitForCommitToBeReady:n(()=>null,"waitForCommitToBeReady"),warnsIfNotActing:!0},j=T(U);export{j as T,_ as s};
@@ -1,26 +0,0 @@
1
- var Oe=Object.defineProperty;var S=(e,t)=>Oe(e,"name",{value:t,configurable:!0});import{createRequire as Ee}from"node:module";import{jsxs as D,jsx as x}from"react/jsx-runtime";import{setMode as re,BracketedPasteMode as ie,resetMode as oe,cursorShow as dt,cursorUp as Rt,cursorTo as Et,cursorDown as Ie,cursorHide as G,eraseLines as z,cursorNextLine as De,eraseLineEnd as Be,createDecMode as Ae,ALT_SCREEN_ON as Me,clearScreenAndHomeCursor as We,ALT_SCREEN_OFF as _e}from"@visulima/ansi";import{wordWrap as He}from"@visulima/string";import se from"is-in-ci";import Ue from"patch-console";import{ConcurrentRoot as Ke,LegacyRoot as je}from"react-reconciler/constants.js";import{onExit as Fe}from"signal-exit";import _ from"yoga-layout";import{a as qe}from"./accessibility-context-DDyHTwmA.js";import{PureComponent as ze,useState as gt,useRef as B,useCallback as w,useEffect as Tt,useMemo as q}from"react";import{e as Ge}from"./animation-context-DW3p-vpk.js";import{t as Ve}from"./app-context-BVpKlG1z.js";import{o as Qe}from"./cursor-context-CFviBqPX.js";import{parseStacktrace as Ze}from"@visulima/error/stacktrace";import tr from"code-excerpt";import{Box as W}from"../components/box.js";import{Text as A}from"../components/text.js";import{o as er}from"./focus-context-CsT69klR.js";import{t as rr}from"./stderr-context-BzEaUICS.js";import{e as ir}from"./stdin-context-BTaaFagk.js";import{t as or}from"./stdout-context-BnblEPez.js";import{A as sr,B as nr,r as ur,R as ar}from"./renderer-Cfi6ZyHf.js";import{c as lr,e as dr}from"./dom-BG-LS10p.js";import{resolveFlags as cr}from"./kittyFlags-C3rZLbcK.js";import{a as hr}from"./measure-text-DDjHT1jD.js";import{L as $,u as fr}from"./reconciler-CUbhOvcr.js";import{measureAndExtractObservers as pr}from"./ResizeObserverEntry-Dq0dk8Kq.js";import{calculateScroll as mr}from"./getScrollHeight-ClEOyLHH.js";import{g as J}from"./utils-CoviI5Vm.js";import __cjs_mod__ from "node:module"; // -- packem CommonJS require shim --
2
- const require = __cjs_mod__.createRequire(import.meta.url);
3
- const Ne=Ee(import.meta.url),tt=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,lt=S(e=>{if(typeof tt<"u"&&tt.versions&&tt.versions.node){const[t,r]=tt.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return tt.getBuiltinModule(e)}return Ne(e)},"__cjs_getBuiltinModule"),I=tt,{cwd:ke}=I,{Stream:Le}=lt("node:stream"),{Buffer:zt}=lt("node:buffer"),{Console:$e}=lt("node:console"),{EventEmitter:Ye}=lt("node:events"),{existsSync:Xe,readFileSync:Je}=lt("node:fs");var gr=Object.defineProperty,N=S((e,t)=>gr(e,"name",{value:t,configurable:!0}),"i$2");const ne="\x1B[200~",Gt="\x1B[201~",vr=N(e=>e>=48&&e<=63,"isCsiParameterByte"),br=N(e=>e>=32&&e<=47,"isCsiIntermediateByte"),ue=N(e=>e>=64&&e<=126,"isCsiFinalByte"),wr=N((e,t,r)=>{const i=t+r+1;let o=i;for(;o<e.length;o++){const a=e.codePointAt(o);if(a===void 0)return"pending";if(!(vr(a)||br(a))&&!(a===91&&o===i))return ue(a)?{nextIndex:o+1,sequence:e.slice(t,o+1)}:void 0}return"pending"},"parseCsiSequence"),yr=N((e,t,r)=>{const i=t+r+2;if(i>e.length)return"pending";const o=e.codePointAt(i-1);if(!(o===void 0||!ue(o)))return{nextIndex:i,sequence:e.slice(t,i)}},"parseSs3Sequence"),Vt=N((e,t,r)=>{const i=e[t+r];if(i===void 0)return"pending";if(i==="[")return wr(e,t,r);if(i==="O")return yr(e,t,r)},"parseControlSequence"),Cr=N((e,t)=>{const r=e.codePointAt(t+1),i=r!==void 0&&r>65535?2:1,o=t+1+i;return{nextIndex:o,sequence:e.slice(t,o)}},"parseEscapedCodePoint"),Tr=N((e,t)=>{if(t===e.length-1)return"pending";if(e[t+1]==="\x1B"){if(t+2>=e.length)return"pending";const i=Vt(e,t,2);return i==="pending"?"pending":i||{nextIndex:t+2,sequence:e.slice(t,t+2)}}const r=Vt(e,t,1);return r==="pending"?"pending":r||Cr(e,t)},"parseEscapeSequence"),Qt=N((e,t)=>{let r=0;for(let i=0;i<e.length;i++){const o=e[i];(o===""||o==="\b")&&(i>r&&t.push(e.slice(r,i)),t.push(o),r=i+1)}r<e.length&&t.push(e.slice(r))},"splitDeleteAndBackspace"),xr=N(e=>{const t=[];let r=0;const i=N(o=>({events:t,pending:e.slice(o)}),"pendingFrom");for(;r<e.length;){const o=e.indexOf("\x1B",r);if(o===-1)return Qt(e.slice(r),t),{events:t,pending:""};o>r&&Qt(e.slice(r,o),t);const a=Tr(e,o);if(a==="pending")return i(o);if(a.sequence===ne){const s=a.nextIndex,u=e.indexOf(Gt,s);if(u===-1)return i(o);t.push({paste:e.slice(s,u)}),r=u+Gt.length;continue}t.push(a.sequence),r=a.nextIndex}return{events:t,pending:""}},"parseKeypresses"),Rr=N(()=>{let e="";return{flushPendingEscape(){if(!e.startsWith("\x1B"))return;const t=e;return e="",t},hasPendingEscape(){return e.startsWith("\x1B")&&!e.startsWith(ne)&&e!=="\x1B[200"},push(t){const r=xr(e+t);return e=r.pending,r.events},reset(){e=""}}},"createInputParser");var Sr=Object.defineProperty,ae=S((e,t)=>Sr(e,"name",{value:t,configurable:!0}),"x");const Xt=ae(e=>{if(!e)return e;const t=ke();return e.replace(`file://${t}/`,"").replace(`${t}/`,"")},"cleanupPath");function le({error:e}){const t=Ze(e),r=t[0],i=Xt(r?.file);let o,a=0;if(i&&r?.line&&Xe(i)){const s=Je(i,"utf8");if(o=tr(s,r.line),o)for(const{line:u}of o)a=Math.max(a,String(u).length)}return D(W,{flexDirection:"column",padding:1,children:[D(W,{children:[D(A,{backgroundColor:"red",color:"white",children:[" ","ERROR"," "]}),D(A,{children:[" ",e.message]})]}),r&&i?x(W,{marginTop:1,children:D(A,{dimColor:!0,children:[i,":",r.line,":",r.column]})}):null,r&&o?x(W,{flexDirection:"column",marginTop:1,children:o.map(({line:s,value:u})=>D(W,{children:[x(W,{width:a+1,children:D(A,{"aria-label":s===r.line?`Line ${s}, error`:`Line ${s}`,backgroundColor:s===r.line?"red":void 0,color:s===r.line?"white":void 0,dimColor:s!==r.line,children:[String(s).padStart(a," "),":"]})}),x(A,{backgroundColor:s===r.line?"red":void 0,color:s===r.line?"white":void 0,children:` ${u}`},s)]},s))}):null,t.length>0?x(W,{flexDirection:"column",marginTop:1,children:t.map(s=>{const u=Xt(s.file)??"";return!s.methodName&&!s.file?D(W,{children:[x(A,{dimColor:!0,children:"- "}),x(A,{bold:!0,dimColor:!0,children:s.raw})]},s.raw):D(W,{children:[x(A,{dimColor:!0,children:"- "}),x(A,{bold:!0,dimColor:!0,children:s.methodName??"<anonymous>"}),D(A,{"aria-label":`at ${u} line ${s.line} column ${s.column}`,color:"gray",dimColor:!0,children:[" ","(",u,":",s.line,":",s.column,")"]})]},s.raw)})}):null]})}S(le,"h$1");ae(le,"ErrorOverview");var Pr=Object.defineProperty,Or=S((e,t)=>Pr(e,"name",{value:t,configurable:!0}),"o$1");let Er=class extends ze{static{S(this,"i")}static{Or(this,"ErrorBoundary")}static displayName="InternalErrorBoundary";static getDerivedStateFromError(t){return{error:t}}state={error:void 0};componentDidCatch(t){this.props.onError(t)}render(){return this.state.error?x(le,{error:this.state.error}):this.props.children}};var Nr=Object.defineProperty,Jt=S((e,t)=>Nr(e,"name",{value:t,configurable:!0}),"J$1");const kr=" ",Lr="\x1B[Z",$r="\x1B",Ir=re(ie),Zt=oe(ie),de=Jt(({children:e,exitOnCtrlC:t,interactive:r,onExit:i,onWaitUntilRenderFlush:o,renderThrottleMs:a,setCursorPosition:s,stderr:u,stdin:n,stdout:h,writeToStderr:m,writeToStdout:v})=>{const[c,d]=gt(!0),[b,T]=gt(void 0),[,y]=gt([]),M=B(0),k=B(new Map),H=B(void 0),P=B(0),L=B(!1),U=B(0),[C]=gt(()=>{const l=new Ye;return l.setMaxListeners(1/0),l}),K=B(void 0),it=B(void 0);it.current??=Rr();const ot=B(void 0),kt=B(!1),ve=20,V=w(()=>{ot.current&&(clearTimeout(ot.current),ot.current=void 0)},[]),Q=w(()=>{H.current&&(clearTimeout(H.current),H.current=void 0)},[]),ht=w(()=>{if(Q(),k.current.size===0)return;let l=Number.POSITIVE_INFINITY;for(const f of k.current.values())l=Math.min(l,f.nextDueTime);const p=Math.max(0,l-performance.now());H.current=setTimeout(()=>{H.current=void 0;const f=performance.now(),R=[...k.current.values()];for(const O of R){if(f<O.nextDueTime)continue;O.callback(f);const Se=f-O.startTime,Pe=Math.floor(Se/O.interval)+1;O.nextDueTime=O.startTime+Pe*O.interval}ht()},p)},[Q]),Lt=w((l,p)=>{const f=performance.now();return k.current.set(l,{callback:l,interval:p,nextDueTime:f+p,startTime:f}),ht(),{startTime:f,unsubscribe(){if(k.current.delete(l),k.current.size===0){Q();return}ht()}}},[Q,ht]);Tt(()=>()=>{Q()},[Q]);const j=n.isTTY,$t=w(()=>{K.current&&(n.removeListener("readable",K.current),K.current=void 0)},[n]),ft=w(()=>{it.current?.reset(),V(),$t()},[V,$t]),X=w(()=>{L.current=!1,n.setRawMode(!1),n.unref(),P.current=0,ft()},[n,ft]),st=w(l=>{j&&(P.current>0||L.current)&&X(),i(l)},[j,X,i]),It=w(l=>{if(l.includes("")&&t){st();return}l===$r&&c&&T(p=>{if(!p)return p})},[t,st,c]),nt=w(l=>{It(l),C.emit("input",l)},[It,C]),Dt=w(()=>{V(),ot.current=setTimeout(()=>{ot.current=void 0;const l=it.current.flushPendingEscape();l&&nt(l)},ve)},[V,nt]),Ct=w(()=>{V();let l;for(;(l=n.read())!==null;){const p=it.current.push(l);for(const f of p)if(typeof f=="string")nt(f);else{if(C.listenerCount("paste")===0){kt.current||(kt.current=!0,m(`Warning: useInput() received bracketed paste because no usePaste() handler is active. This fallback is deprecated and will be removed in the next major version. Migrate paste handling to usePaste().
4
- `)),nt(f.paste);continue}C.emit("paste",f.paste)}}it.current.hasPendingEscape()&&Dt()},[n,nt,V,Dt,m,C]),Bt=w(()=>{K.current||(K.current=Ct,n.addListener("readable",Ct))},[n,Ct]),At=w(l=>{if(!j)throw n===I.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
5
- Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
6
- Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(n.setEncoding("utf8"),l){if(P.current===0){const p=L.current;L.current=!1,p||(n.ref(),n.setRawMode(!0)),Bt()}P.current++;return}P.current!==0&&--P.current===0&&(ft(),L.current=!0,queueMicrotask(()=>{L.current&&X()}))},[j,n,Bt,ft,X]),Mt=w(l=>{if(h.isTTY){if(l){U.current===0&&h.write(Ir),U.current++;return}U.current!==0&&--U.current===0&&h.write(Zt)}},[h]),Wt=w((l,p)=>{const f=l.findIndex(R=>R.id===p);for(let R=f+1;R<l.length;R++){const O=l[R];if(O?.isActive)return O.id}},[]),_t=w((l,p)=>{const f=l.findIndex(R=>R.id===p);for(let R=f-1;R>=0;R--){const O=l[R];if(O?.isActive)return O.id}},[]),pt=w(()=>{y(l=>(T(p=>{const f=l.find(R=>R.isActive)?.id;return Wt(l,p)??f}),l))},[Wt]),mt=w(()=>{y(l=>(T(p=>{const f=l.findLast(R=>R.isActive)?.id;return _t(l,p)??f}),l))},[_t]);Tt(()=>{const l=Jt(f=>{!c||M.current===0||(f===kr&&pt(),f===Lr&&mt())},"handleTabNavigation");C.on("input",l);const p=C;return()=>{p.off("input",l)}},[c,pt,mt,C]);const Ht=w(()=>{d(!0)},[]),Ut=w(()=>{d(!1)},[]),Kt=w(l=>{y(p=>(p.some(f=>f?.id===l)&&T(l),p))},[]),jt=w((l,{autoFocus:p})=>{y(f=>(M.current=f.length+1,[...f,{id:l,isActive:!0}])),p&&T(f=>f||l)},[]),Ft=w(l=>{T(p=>{if(p!==l)return p}),y(p=>{const f=p.filter(R=>R.id!==l);return M.current=f.length,f})},[]),qt=w(l=>{y(p=>p.map(f=>f.id!==l?f:{id:l,isActive:!0}))},[]),Yt=w(l=>{T(p=>{if(p!==l)return p}),y(p=>p.map(f=>f.id!==l?f:{id:l,isActive:!1}))},[]);Tt(()=>()=>{const l=!h.destroyed&&!h.writableEnded;r&&l&&h.write(dt),j&&(P.current>0||L.current)&&X(),U.current>0&&(h.isTTY&&l&&h.write(Zt),U.current=0)},[h,j,X,r]);const be=q(()=>({exit:st,waitUntilRenderFlush:o}),[st,o]),we=q(()=>({internal_eventEmitter:C,internal_exitOnCtrlC:t,isRawModeSupported:j,setBracketedPasteMode:Mt,setRawMode:At,stdin:n}),[n,At,Mt,j,t,C]),ye=q(()=>({stdout:h,write:v}),[h,v]),Ce=q(()=>({stderr:u,write:m}),[u,m]),Te=q(()=>({setCursorPosition:s}),[s]),xe=q(()=>({activate:qt,activeId:b,add:jt,deactivate:Yt,disableFocus:Ut,enableFocus:Ht,focus:Kt,focusNext:pt,focusPrevious:mt,remove:Ft}),[b,jt,Ft,qt,Yt,Ht,Ut,pt,mt,Kt]),Re=q(()=>({renderThrottleMs:a,subscribe:Lt}),[Lt,a]);return x(Ve.Provider,{value:be,children:x(ir.Provider,{value:we,children:x(or.Provider,{value:ye,children:x(rr.Provider,{value:Ce,children:x(er.Provider,{value:xe,children:x(Ge.Provider,{value:Re,children:x(Qe.Provider,{value:Te,children:x(Er,{onError:st,children:e})})})})})})})})},"App");de.displayName="InternalApp";var Dr=Object.defineProperty,Br=S((e,t)=>Dr(e,"name",{value:t,configurable:!0}),"m$2");const Ar=Br((e,t,r)=>{if(r<=0||!e.yogaNode)return"";const{yogaNode:i}=e,o=i.getComputedBorder(_.EDGE_LEFT),a=i.getComputedBorder(_.EDGE_RIGHT),s=i.getComputedBorder(_.EDGE_TOP),u=i.getComputedPadding(_.EDGE_LEFT),n=i.getComputedPadding(_.EDGE_RIGHT),h=i.getComputedPadding(_.EDGE_TOP),m=Math.round(i.getComputedWidth()-o-a-u-n);if(m<=0)return"";const v=new sr({height:r,width:m}),c=-(e.internal_scrollState?.scrollLeft??0)-o-u,d=-t-s-h;for(const b of e.childNodes)nr(b,v,{absoluteOffsetX:c,absoluteOffsetY:d,offsetX:c,offsetY:d,skipStaticElements:!1});return v.get().output},"composeBackbufferSlice"),St=new WeakMap;var Mr=Object.defineProperty,ct=S((e,t)=>Mr(e,"name",{value:t,configurable:!0}),"e");const bt=ct((e,t)=>e?.x!==t?.x||e?.y!==t?.y,"cursorPositionChanged"),rt=ct((e,t)=>{if(!t)return"";const r=e-t.y;return(r>0?Rt(r):"")+Et(t.x)+dt},"buildCursorSuffix"),ce=ct((e,t)=>{if(!t)return"";const r=e-1-t.y;return(r>0?Ie(r):"")+Et(0)},"buildReturnToBottom"),he=ct(e=>{const t=e.cursorWasShown?G:"",r=ce(e.previousLineCount,e.previousCursorPosition),i=rt(e.visibleLineCount,e.cursorPosition);return t+r+i},"buildCursorOnlySequence"),wt=ct((e,t,r)=>e?G+ce(t,r):"","buildReturnToBottomPrefix");var Wr=Object.defineProperty,E=S((e,t)=>Wr(e,"name",{value:t,configurable:!0}),"c$2");const at=E((e,t)=>t.endsWith(`
7
- `)?e.length-1:e.length,"visibleLineCount"),fe=E(e=>e.rows||1/0,"getViewportRows"),yt=E((e,t)=>Math.min(e,fe(t)),"clampToViewport"),_r=E((e,{showCursor:t=!1}={})=>{let r=0,i="",o=!1,a,s=!1,u,n=!1;const h=E(()=>s?a:void 0,"getActiveCursor"),m=E((c,d)=>{const b=bt(d,u);return c!==i||b},"hasChanges"),v=E(c=>{!t&&!o&&(e.write(G),o=!0);const d=h();s=!1;const b=bt(d,u);if(!m(c,d))return!1;const T=c.split(`
8
- `),y=at(T,c),M=rt(y,d);if(c===i&&b)e.write(he({cursorPosition:d,cursorWasShown:n,previousCursorPosition:u,previousLineCount:r,visibleLineCount:y}));else{i=c;const k=wt(n,r,u);e.write(k+z(yt(r,e))+c+M),r=T.length}return u=d?{...d}:void 0,n=d!==void 0,!0},"render");return v.clear=()=>{const c=wt(n,r,u);e.write(c+z(yt(r,e))),i="",r=0,u=void 0,n=!1},v.done=()=>{i="",r=0,u=void 0,n=!1,t||(e.write(dt),o=!1)},v.reset=()=>{i="",r=0,u=void 0,n=!1},v.sync=c=>{const d=s?a:void 0;s=!1;const b=c.split(`
9
- `);i=c,r=b.length,!d&&n&&e.write(G),d&&e.write(rt(at(b,c),d)),u=d?{...d}:void 0,n=d!==void 0},v.setCursorPosition=c=>{a=c,s=!0},v.isCursorDirty=()=>s,v.willRender=c=>m(c,h()),v},"createStandard"),Hr=E((e,{showCursor:t=!1}={})=>{let r=[],i="",o=!1,a,s=!1,u,n=!1;const h=E(()=>s?a:void 0,"getActiveCursor"),m=E((c,d)=>{const b=bt(d,u);return c!==i||b},"hasChanges"),v=E(c=>{!t&&!o&&(e.write(G),o=!0);const d=h();s=!1;const b=bt(d,u);if(!m(c,d))return!1;const T=c.split(`
10
- `),y=at(T,c),M=at(r,i);if(c===i&&b)return e.write(he({cursorPosition:d,cursorWasShown:n,previousCursorPosition:u,previousLineCount:r.length,visibleLineCount:y})),u=d?{...d}:void 0,n=d!==void 0,!0;const k=wt(n,r.length,u);if(c===`
11
- `||i.length===0){const C=rt(y,d);return e.write(k+z(yt(r.length,e))+c+C),n=d!==void 0,u=d?{...d}:void 0,i=c,r=T,!0}const H=c.endsWith(`
12
- `),P=[k],L=fe(e);if(y<M){const C=i.endsWith(`
13
- `)?1:0;P.push(z(Math.min(M-y+C,L)),Rt(Math.min(y,L-1)))}else P.push(Rt(Math.min(M-1,L-1)));for(let C=0;C<y;C++){const K=C===y-1;if(T[C]===r[C]){(!K||H)&&P.push(De());continue}P.push(Et(0)+T[C]+Be+(K&&!H?"":`
14
- `))}const U=rt(y,d);return P.push(U),e.write(P.join("")),n=d!==void 0,u=d?{...d}:void 0,i=c,r=T,!0},"render");return v.clear=()=>{const c=wt(n,r.length,u);e.write(c+z(yt(r.length,e))),i="",r=[],u=void 0,n=!1},v.done=()=>{i="",r=[],u=void 0,n=!1,t||(e.write(dt),o=!1)},v.reset=()=>{i="",r=[],u=void 0,n=!1},v.sync=c=>{const d=s?a:void 0;s=!1;const b=c.split(`
15
- `);i=c,r=b,!d&&n&&e.write(G),d&&e.write(rt(at(b,c),d)),u=d?{...d}:void 0,n=d!==void 0},v.setCursorPosition=c=>{a=c,s=!0},v.isCursorDirty=()=>s,v.willRender=c=>m(c,h()),v},"createIncremental"),Ur=E((e,{incremental:t=!1,showCursor:r=!1}={})=>t?Hr(e,{showCursor:r}):_r(e,{showCursor:r}),"create"),Kr={create:Ur};var jr=Object.defineProperty,Fr=S((e,t)=>jr(e,"name",{value:t,configurable:!0}),"t");const pe=Ae(2026),Y=re(pe),F=oe(pe);function me(e,t){return"isTTY"in e&&e.isTTY&&(t??!se)}S(me,"shouldSynchronize");Fr(me,"shouldSynchronize");var qr=Object.defineProperty,Pt=S((e,t)=>qr(e,"name",{value:t,configurable:!0}),"o");let Z;const Yr=Pt(()=>{if(Z!==!1){if(Z!==void 0)return Z;try{return Z=require("../../index.js").Renderer,Z}catch{Z=!1;return}}},"getRendererClass"),zr=Pt(e=>{const t=Yr();if(!t)return;let r,i=0,o=0;const a=Pt((s,u)=>{(!r||i!==s||o!==u)&&(r?r.resize(s,u):r=new t(s,u),i=s,o=u)},"ensureRenderer");return{clear(){if(r){const s=new Uint32Array(i*o*2),u=65535;for(let n=0;n<s.length;n+=2)s[n]=32,s[n+1]=u;r.render(s)}},destroy(){r=void 0},render(s,u,n){if(a(u,n),!!r){e.isTTY&&r.writeRaw(Y);try{r.render(s)}finally{e.isTTY&&r.writeRaw(F)}}},resize(s,u){a(s,u)}}},"createNative");var Gr=Object.defineProperty,et=S((e,t)=>Gr(e,"name",{value:t,configurable:!0}),"n$1");function Ot(e,t=0,r={}){const i=r.leading??!0,o=r.trailing??!0;let a,s,u,n;const h=et(()=>{if(s===void 0)return;const b=s;s=void 0,n=e(...b)},"invoke"),m=et(()=>{a!==void 0&&(clearTimeout(a),a=void 0)},"clearTimer"),v=et(()=>{a=void 0,o&&h(),s=void 0,u=void 0},"onTimerEnd"),c=et(()=>{m(),a=setTimeout(v,t)},"scheduleTimer"),d=et(function(...b){const T=Date.now();if(u??=T,T-u>=t)return s=b,h(),u=T,c(),n;s=b;const y=a===void 0;return c(),i&&y&&h(),n},"throttled");return d.cancel=()=>{m(),s=void 0,u=void 0},d.flush=()=>(m(),h(),u=void 0,n),d}S(Ot,"throttle");et(Ot,"throttle");var Vr=Object.defineProperty,g=S((e,t)=>Vr(e,"name",{value:t,configurable:!0}),"n");console.Console||(console.Console=$e);const ut=g(()=>{},"noop"),te=g(async()=>new Promise(e=>{setImmediate(e)}),"yieldImmediate"),Qr=27,Xr=91,Jr=63,Zr=117,ti=48,ei=57,ri=g(e=>e>=ti&&e<=ei,"isDigitByte"),ge=g((e,t)=>{if(e[t]!==Qr||e[t+1]!==Xr||e[t+2]!==Jr)return;let r=t+3;const i=r;for(;r<e.length&&ri(e[r]);)r++;if(r!==i){if(r===e.length)return{state:"partial"};if(e[r]===Zr)return{endIndex:r,state:"complete"}}},"matchKittyQueryResponse"),ii=g(e=>{for(let t=0;t<e.length;t++)if(ge(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),oi=g(e=>{const t=[];let r=0;for(;r<e.length;){const i=ge(e,r);if(i?.state==="complete"){r=i.endIndex+1;continue}if(i?.state==="partial")break;t.push(e[r]),r++}return t},"stripKittyQueryResponsesAndTrailingPartial"),si=g(({isTty:e,isUnmounting:t,nextOutputHeight:r,previousOutputHeight:i,viewportRows:o})=>{if(!e)return!1;const a=i>0,s=i>=o,u=i>o,n=r>o,h=s&&r<o;return u||n&&a||h||t&&s},"shouldClearTerminalForFrame"),xt=g(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),ee=g(e=>{const t=!e.destroyed&&!e.writableEnded&&(e.writable??!0),r=e._writableState!==void 0||e.writableLength!==void 0;return{canWriteToStdout:t,hasWritableState:r}},"getWritableStreamState"),vt=g((e,t)=>{if(!e||typeof e.flush!="function")return;const r=e;t?r.flush():typeof r.cancel=="function"&&r.cancel()},"settleThrottle");class ni{static{S(this,"vt")}static{g(this,"Ink")}isConcurrent;options;log;manualCursorPosition;renderedCursorPosition;renderedCursorRequested;throttledLog;isScreenReaderEnabled;interactive;renderThrottleMs;alternateScreen;isUnmounted;isUnmounting;lastOutput;lastOutputToRender;lastOutputHeight;lastTerminalWidth;nativeLog;useNativeRenderer;container;rootNode;fullStaticOutput;backbufferNode;backbufferMultiWarned=!1;exitPromise;exitResult;beforeExitHandler;restoreConsole;unsubscribeResize;throttledOnRender;hasPendingThrottledRender=!1;kittyProtocolEnabled=!1;cancelKittyDetection;nextRenderCommit;deferredInitDone=!1;constructor(t){this.options=t,this.rootNode=lr("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??I.env.INK_SCREEN_READER==="true",this.interactive=this.resolveInteractiveOption(t.interactive),this.alternateScreen=!1;const r=t.debug||this.isScreenReaderEnabled,i=t.maxFps??30,o=i>0?Math.max(1,Math.ceil(1e3/i)):0;this.renderThrottleMs=r?0:o;const a=r?this.onRender:(()=>{const u=Ot(this.onRender,o,{leading:!0,trailing:!0});return this.throttledOnRender=u,()=>{this.hasPendingThrottledRender=!0,u()}})();if(r&&(this.throttledOnRender=void 0),t.standardReactLayoutTiming){let u=!1;const n=g(()=>{u||(u=!0,queueMicrotask(()=>{u=!1,this.onRender()}))},"deferredRender");this.rootNode.onRender=n,this.rootNode.onImmediateRender=n}else this.rootNode.onRender=a,this.rootNode.onImmediateRender=this.onRender;this.rootNode.onStaticChange=this.handleStaticChange,this.log=Kr.create(t.stdout,{incremental:t.incrementalRendering}),this.useNativeRenderer=t.useNativeRenderer??!1,this.useNativeRenderer&&(this.nativeLog=zr(t.stdout),this.nativeLog||(this.useNativeRenderer=!1)),this.manualCursorPosition=void 0,this.renderedCursorPosition=void 0,this.renderedCursorRequested=!1,this.throttledLog=r?this.log:Ot(u=>{const n=this.log.willRender(u),h=this.shouldSync();h&&n&&this.options.stdout.write(Y),this.log(u),h&&n&&this.options.stdout.write(F)},void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.isUnmounting=!1,this.isConcurrent=t.concurrent??!1,this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.lastTerminalWidth=J(this.options.stdout).columns,this.fullStaticOutput="";const s=t.concurrent?Ke:je;this.container=$.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=Fe(this.unmount,{alwaysLast:!1}),this.setAlternateScreen(!!t.alternateScreen),t.patchConsole&&this.patchConsole(),this.interactive&&(t.stdout.on("resize",this.resized),this.unsubscribeResize=()=>{t.stdout.off("resize",this.resized)}),this.initImmediateKittyKeyboard(),I.env.DEV==="true"&&$.injectIntoDevTools(),this.exitPromise=new Promise((u,n)=>{this.resolveExitPromise=u,this.rejectExitPromise=n}),this.exitPromise.catch(ut)}runDeferredInit(){this.deferredInitDone||(this.deferredInitDone=!0,this.initDeferredKittyKeyboard())}resized=g(()=>{const t=J(this.options.stdout).columns;t<this.lastTerminalWidth&&(this.log.clear(),this.lastOutput="",this.lastOutputToRender=""),hr(),this.calculateLayout(),dr(this.rootNode),this.onRender(),this.lastTerminalWidth=t},"resized");resolveExitPromise=g(()=>{},"resolveExitPromise");rejectExitPromise=g(()=>{},"rejectExitPromise");unsubscribeExit=g(()=>{},"unsubscribeExit");handleAppExit=g(t=>{if(!(this.isUnmounted||this.isUnmounting)){if(xt(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");getActiveCursorPosition=g(()=>this.renderedCursorRequested?this.renderedCursorPosition:this.manualCursorPosition,"getActiveCursorPosition");setCursorPosition=g(t=>{this.manualCursorPosition=t,this.log.setCursorPosition(this.getActiveCursorPosition())},"setCursorPosition");restoreLastOutput=g(()=>{this.interactive&&(this.log.setCursorPosition(this.getActiveCursorPosition()),this.log(this.lastOutputToRender||`${this.lastOutput}
16
- `))},"restoreLastOutput");calculateLayout=g(()=>{const t=g(i=>{const o=new Map;this.calculateScrollAndTriggerObservers(i,o);for(const[a,s]of o)a.internalTrigger(s)},"flushLayoutObservers");this.backbufferNode=void 0,this.prepareYogaTree(this.rootNode,t);const r=J(this.options.stdout).columns;this.rootNode.yogaNode.setWidth(r),this.rootNode.yogaNode.calculateLayout(void 0,void 0,_.DIRECTION_LTR),t(this.rootNode)},"calculateLayout");calculateScrollAndTriggerObservers(t,r){if(t.nodeName==="ink-box"){const{style:i}=t,o=i.overflow??"visible",a=i.overflowX??o,s=i.overflowY??o;a==="scroll"||s==="scroll"?(mr(t),i.overflowToBackbuffer&&(this.backbufferNode&&this.backbufferNode!==t&&!this.backbufferMultiWarned&&(this.backbufferMultiWarned=!0,console.warn("[@visulima/tui] Multiple scrollable regions have `overflowToBackbuffer` enabled; only one is supported. The last one in render order wins.")),this.backbufferNode=t)):t.internal_scrollState&&delete t.internal_scrollState}if(pr(t,r),!t.internal_static)for(const i of t.childNodes)i.nodeName!=="#text"&&this.calculateScrollAndTriggerObservers(i,r)}recalculateLayout(){this.markAllTextNodesDirty(this.rootNode),this.calculateLayout(),this.onRender()}prepareYogaTree(t,r){if(t.isYogaTreeDetached&&!t.cachedRender&&t.yogaNode){for(t.yogaNode.setWidthAuto(),t.yogaNode.setHeightAuto(),fr(t.yogaNode,t.style);t.yogaNode.getChildCount()>0;)t.yogaNode.getChild(0).remove();let i=0;for(const o of t.childNodes){const a=o;o.nodeName!=="#text"&&a.yogaNode&&(t.yogaNode.insertChild(a.yogaNode,i),i++)}t.isYogaTreeDetached=!1,this.markAllTextNodesDirty(t)}for(const i of t.childNodes)i.nodeName!=="#text"&&this.prepareYogaTree(i,r);if(t.nodeName==="ink-static-render"&&!t.cachedRender){const i=J(this.options.stdout).columns,{width:o}=t.style;t.yogaNode&&(t.yogaNode.setWidth(typeof o=="number"?o:i),t.yogaNode.calculateLayout(void 0,void 0,_.DIRECTION_LTR)),r(t),ur(t,{skipStaticElements:!1,trackSelection:this.options.trackSelection}),t.internal_onRendered?.()}}markAllTextNodesDirty(t){if(!t.cachedRender){t.nodeName==="ink-text"&&t.yogaNode&&t.yogaNode.markDirty();for(const r of t.childNodes)r.nodeName!=="#text"&&this.markAllTextNodesDirty(r)}}handleStaticChange=g(()=>{this.fullStaticOutput=""},"handleStaticChange");computeBackbufferOutput(){const t=this.backbufferNode;if(!t?.internal_scrollState||!this.interactive||!this.options.stdout.isTTY||this.alternateScreen||this.isScreenReaderEnabled||this.options.debug)return"";const r=Math.round(t.internal_scrollState.scrollTop),i=t.yogaNode?.getComputedPadding(_.EDGE_TOP)??0,o=Math.max(0,r-Math.round(i)),a=t.internal_maxPushedScrollTop??0,{maxScrollbackLength:s}=t.style,u=s===void 0?a:Math.max(a,o-Math.max(0,s)),n=o-u;if(n<=0)return"";const h=Ar(t,u,n);return h===""?"":(t.internal_maxPushedScrollTop=o,`${h}\x1B[0m
17
- `)}onRender=g(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;this.deferredInitDone||this.runDeferredInit(),this.nextRenderCommit&&(this.nextRenderCommit.resolve(),this.nextRenderCommit=void 0);const t=ar(this.rootNode,this.isScreenReaderEnabled,{useNativeRenderer:this.useNativeRenderer}),{cursorPosition:r,cursorRequested:i,output:o,outputBuffer:a,outputHeight:s,outputWidth:u,staticOutput:n}=t;this.renderedCursorRequested=i,this.renderedCursorPosition=r;const h=this.computeBackbufferOutput();if(this.useNativeRenderer&&this.nativeLog&&a&&u){n&&n!==`
18
- `&&this.options.stdout.write(n),h&&this.options.stdout.write(h),this.nativeLog.render(a,u,s),this.lastOutputHeight=s;return}i&&this.log.setCursorPosition(this.getActiveCursorPosition());const m=n&&n!==`
19
- `;if(this.options.debug){m&&(this.fullStaticOutput+=n),this.lastOutput=o,this.lastOutputToRender=o,this.lastOutputHeight=s,this.options.stdout.write(this.fullStaticOutput+o);return}if(!this.interactive){m&&this.options.stdout.write(n),this.lastOutput=o,this.lastOutputToRender=`${o}
20
- `,this.lastOutputHeight=s;return}if(this.isScreenReaderEnabled){const v=this.shouldSync();if(v&&this.options.stdout.write(Y),m){const b=this.lastOutputHeight>0?z(this.lastOutputHeight):"";this.options.stdout.write(b+n),this.lastOutputHeight=0}if(o===this.lastOutput&&!m){v&&this.options.stdout.write(F);return}const c=J(this.options.stdout).columns,d=He(o,{trim:!1,width:c,wrapMode:"BREAK_WORDS"}).replace(/\n$/,"");if(m)this.options.stdout.write(d);else{const b=this.lastOutputHeight>0?z(this.lastOutputHeight):"";this.options.stdout.write(b+d)}this.lastOutput=o,this.lastOutputToRender=d,this.lastOutputHeight=d===""?0:d.split(`
21
- `).length,v&&this.options.stdout.write(F);return}m&&(this.fullStaticOutput+=n),this.renderInteractiveFrame(o,s,m?n:"",h)},"onRender");accessibilityContextValue;render(t){this.accessibilityContextValue??={isScreenReaderEnabled:this.isScreenReaderEnabled};const r=x(qe.Provider,{value:this.accessibilityContextValue,children:x(de,{exitOnCtrlC:this.options.exitOnCtrlC,interactive:this.interactive,onExit:this.handleAppExit,onWaitUntilRenderFlush:this.waitUntilRenderFlush,renderThrottleMs:this.renderThrottleMs,setCursorPosition:this.setCursorPosition,stderr:this.options.stderr,stdin:this.options.stdin,stdout:this.options.stdout,writeToStderr:this.writeToStderr,writeToStdout:this.writeToStdout,children:t})});this.options.concurrent?$.updateContainer(r,this.container,null,ut):($.updateContainerSync(r,this.container,null,ut),$.flushSyncWork())}writeToStdout=g(t=>{if(this.isUnmounted)return;if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(!this.interactive){this.options.stdout.write(t);return}const r=this.shouldSync();r&&this.options.stdout.write(Y),this.log.clear(),this.options.stdout.write(t),this.restoreLastOutput(),r&&this.options.stdout.write(F)},"writeToStdout");writeToStderr=g(t=>{if(this.isUnmounted)return;if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(!this.interactive){this.options.stderr.write(t);return}const r=this.shouldSync();r&&this.options.stdout.write(Y),this.log.clear(),this.options.stderr.write(t),this.restoreLastOutput(),r&&this.options.stdout.write(F)},"writeToStderr");unmount=g(t=>{if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(I.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);const r=this.options.stdout,{canWriteToStdout:i,hasWritableState:o}=ee(r);vt(this.throttledOnRender,i),i&&!this.alternateScreen&&(!this.throttledOnRender||!this.hasPendingThrottledRender&&this.fullStaticOutput==="")&&(this.calculateLayout(),this.onRender()),this.isUnmounted=!0,this.unsubscribeExit(),vt(this.throttledLog,i),typeof this.restoreConsole=="function"&&this.restoreConsole();const a=g(()=>{typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),this.cancelKittyDetection&&this.cancelKittyDetection(),i&&(this.kittyProtocolEnabled&&this.writeBestEffort(this.options.stdout,"\x1B[<u"),this.alternateScreen?(this.log.clear(),this.log.done(),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.fullStaticOutput="",this.writeBestEffort(this.options.stdout,_e),this.writeBestEffort(this.options.stdout,dt),this.alternateScreen=!1):this.interactive?this.options.debug||this.log.done():this.options.stdout.write(this.options.debug?`
22
- `:`${this.lastOutput}
23
- `)),this.kittyProtocolEnabled=!1,St.delete(this.options.stdout);const{exitResult:u}=this,n=g(()=>{xt(t)?this.rejectExitPromise(t):this.resolveExitPromise(u)},"resolveOrReject");t!==void 0&&!xt(t)?n():i&&o?this.options.stdout.write("",n):setImmediate(n)},"finishUnmount"),s=$;this.options.concurrent?($.updateContainerSync(null,this.container,null,ut),$.flushSyncWork(),s.flushPassiveEffects?.(),a()):($.updateContainerSync(null,this.container,null,ut),$.flushSyncWork(),a())},"unmount");async waitUntilExit(){return this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},I.on("beforeExit",this.beforeExitHandler)),this.exitPromise}async waitUntilRenderFlush(){if(this.isUnmounted||this.isUnmounting){await this.awaitExit();return}if(await te(),this.isUnmounted||this.isUnmounting){await this.awaitExit();return}if(this.isConcurrent&&this.hasPendingConcurrentWork()&&(await Promise.race([this.awaitNextRender(),this.awaitExit()]),this.isUnmounted||this.isUnmounting)){this.nextRenderCommit=void 0,await this.awaitExit();return}$.flushSyncWork();const t=this.options.stdout,{canWriteToStdout:r,hasWritableState:i}=ee(t);if(vt(this.throttledOnRender,r),vt(this.throttledLog,r),r&&i){await new Promise(o=>{this.options.stdout.write("",()=>{o()})});return}await te()}clear(){this.interactive&&!this.options.debug&&(this.log.clear(),this.log.sync(this.lastOutputToRender||`${this.lastOutput}
24
- `))}patchConsole(){this.options.debug||(this.restoreConsole=Ue((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}setAlternateScreen(t){this.alternateScreen=this.resolveAlternateScreenOption(t,this.interactive),this.alternateScreen&&(this.writeBestEffort(this.options.stdout,Me),this.writeBestEffort(this.options.stdout,G))}resolveInteractiveOption(t){return t??(!se&&!!this.options.stdout.isTTY)}resolveAlternateScreenOption(t,r){return!!t&&r&&!!this.options.stdout.isTTY}shouldSync(){return me(this.options.stdout,this.interactive)}writeBestEffort(t,r){try{t.write(r)}catch{}}async awaitExit(){try{await this.exitPromise}catch{}}hasPendingConcurrentWork(){const t=this.container;return(t.pendingLanes??0)!==0&&t.callbackNode!==void 0&&t.callbackNode!==null}async awaitNextRender(){if(!this.nextRenderCommit){let t;const r=new Promise(i=>{t=i});this.nextRenderCommit={promise:r,resolve:t}}return this.nextRenderCommit.promise}renderInteractiveFrame(t,r,i,o=""){const a=i+o,s=a!=="",u=this.options.stdout.isTTY,n=u?J(this.options.stdout).rows:24,h=u&&r>=n?t:`${t}
25
- `;if(si({isTty:u,isUnmounting:this.isUnmounting,nextOutputHeight:r,previousOutputHeight:this.lastOutputHeight,viewportRows:n})){if(this.options.incrementalRendering){s&&(this.log.clear(),this.options.stdout.write(a)),(t!==this.lastOutput||this.log.isCursorDirty()||s)&&this.throttledLog(h),this.lastOutput=t,this.lastOutputToRender=h,this.lastOutputHeight=r;return}const m=this.shouldSync();m&&this.options.stdout.write(Y),this.options.stdout.write(We+this.fullStaticOutput+o+t),this.lastOutput=t,this.lastOutputToRender=h,this.lastOutputHeight=r,this.log.sync(h),m&&this.options.stdout.write(F);return}if(s){const m=this.shouldSync();m&&this.options.stdout.write(Y),this.log.clear(),this.options.stdout.write(a),this.log(h),m&&this.options.stdout.write(F)}else(t!==this.lastOutput||this.log.isCursorDirty())&&this.throttledLog(h);this.lastOutput=t,this.lastOutputToRender=h,this.lastOutputHeight=r}initImmediateKittyKeyboard(){if(!this.options.kittyKeyboard)return;const t=this.options.kittyKeyboard;if((t.mode??"auto")!=="enabled")return;const r=t.flags??["disambiguateEscapeCodes"];this.options.stdin.isTTY&&this.options.stdout.isTTY&&this.enableKittyProtocol(r)}initDeferredKittyKeyboard(){if(!this.options.kittyKeyboard)return;const t=this.options.kittyKeyboard;if((t.mode??"auto")!=="auto")return;const r=t.flags??["disambiguateEscapeCodes"];!this.interactive||!this.options.stdin.isTTY||!this.options.stdout.isTTY||this.confirmKittySupport(r)}confirmKittySupport(t){const{stdin:r,stdout:i}=this.options;let o=[];const a=g(()=>{this.cancelKittyDetection=void 0,clearTimeout(u),r.removeListener("data",s);const n=oi(o);o=[],n.length>0&&r.unshift(zt.from(n))},"cleanup"),s=g(n=>{const h=typeof n=="string"?zt.from(n):n;for(const m of h)o.push(m);ii(o)&&(a(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");r.on("data",s);const u=setTimeout(a,200);this.cancelKittyDetection=a,i.write("\x1B[?u")}enableKittyProtocol(t){this.options.stdout.write(`\x1B[>${cr(t)}u`),this.kittyProtocolEnabled=!0}}var ui=Object.defineProperty,Nt=S((e,t)=>ui(e,"name",{value:t,configurable:!0}),"i");const Ki=Nt((e,t)=>{const r={alternateScreen:!1,concurrent:!1,debug:!1,exitOnCtrlC:!0,incrementalRendering:!1,maxFps:30,patchConsole:!0,stderr:I.stderr,stdin:I.stdin,stdout:I.stdout,...ai(t)},i=li(r.stdout,()=>new ni(r));return i.render(e),{cleanup(){i.unmount()},clear(){i.clear()},rerender(o){i.render(o)},rootNode:i.rootNode,unmount(){i.unmount()},waitUntilExit(){return i.waitUntilExit()},waitUntilRenderFlush(){return i.waitUntilRenderFlush()}}},"render"),ai=Nt((e={})=>e instanceof Le?{stdin:I.stdin,stdout:e}:e,"getOptions"),li=Nt((e,t)=>{const r=St.get(e);if(r===void 0){const i=t();return St.set(e,i),i}return I.stderr.write(`Warning: render() was called again for the same stdout before the previous Ink instance was unmounted. Reusing stdout across multiple render() calls is unsupported. Call unmount() first.
26
- `),r},"getInstance");export{Ki as default};
@@ -1,2 +0,0 @@
1
- var D=Object.defineProperty;var R=(t,o)=>D(t,"name",{value:o,configurable:!0});import G from"cli-boxes";import{resolveColor as W}from"./NAMED_COLORS-B9fJsYdg.js";import{g as I}from"./text-width-BU2eeTWn.js";var K=Object.defineProperty,B=R((t,o)=>K(t,"name",{value:o,configurable:!0}),"N");const V=1114112,F=9608,J=9600,Q=9604;function j(t){const o=t?.borderStyle?1:0;return{bottom:t?.borderBottom===!1?0:o,left:t?.borderLeft===!1?0:o,right:t?.borderRight===!1?0:o,top:t?.borderTop===!1?0:o}}R(j,"k");B(j,"getEffectiveBorderWidths");function H(t){let o=0;for(const i of t.children){const b=i.getLayout(),e=b.top+b.height;e>o&&(o=e)}const n=t._style,l=n?.paddingBottom??n?.paddingY??n?.padding??0;return o+l}R(H,"q");B(H,"getScrollContentHeight");function N(t,o,n,l,i,b,e,m,v,_,g,d){const r=j(d),a=m-r.top-r.bottom,u=d.scrollTop??0,h=H(t),M=a;if(h<=M||a<=0)return;const f=a*2,y=Math.max(2,Math.round(M/h*f)),s=h-M,x=f-y,T=s>0?Math.round(u/s*x):0,c=typeof d.scrollbarThumbColor=="string"?W(d.scrollbarThumbColor):v,p=i+e-1-r.right,S=_<<16|65280|c;for(let w=0;w<a;w++){const Y=w*2,X=Y+1,k=Y>=T&&Y<T+y,L=X>=T&&X<T+y;if(!k&&!L)continue;let C=F;k&&!L?C=J:!k&&L&&(C=Q),A(o,n,l,p,b+r.top+w,C,S,g)}}R(N,"z");B(N,"paintScrollbar");function q(t,o,n,l,i,b,e,m,v,_,g,d,r,a){const u=j(a),h=a.scrollTop??0,M=b+u.top;for(const f of t.children){if(!f._style?.sticky)continue;const y=f.getLayout();if(y.top>=h)continue;const s=f.parent;if(s&&s!==t){const S=s.getLayout();if(S.top+S.height<=h)continue}const x=M,T=f.fg===255?v:f.fg,c=f.bg===255?_:f.bg,p=f.styles===0?g:f.styles;E(f,o,n,l,i-y.left,x-y.top,T,c,p,d,r)}}R(q,"G");B(q,"paintStickyHeaders");function Z(t,o,n,l){for(let e=0;e<o.length;e+=2)o[e]=32,o[e+1]=65535;const i=[],b={x0:0,x1:n,y0:0,y1:l};try{E(t,o,n,l,0,0,t.fg,t.bg,t.styles,i,b);for(const e of i)z(e.node,o,n,l,e.absX,e.absY,e.w,e.h,e.fg,e.bg,e.styles,e.clip)}catch(e){console.error("Renderer Error:",e)}}R(Z,"renderTreeToBuffer");B(Z,"renderTreeToBuffer");function A(t,o,n,l,i,b,e,m){if(l<m.x0||l>=m.x1||i<m.y0||i>=m.y1||l<0||l>=o||i<0||i>=n)return;const v=(i*o+l)*2;t[v]=b,t[v+1]=e}R(A,"M");B(A,"writeCell");function z(t,o,n,l,i,b,e,m,v,_,g,d){if(!t._style?.borderStyle||e<=0||m<=0)return;const r=G[t._style.borderStyle],a=t._style.borderColor===void 0?v:W(t._style.borderColor),u=g<<16|_<<8|a,h=t._style.borderTop!==!1,M=t._style.borderBottom!==!1,f=t._style.borderLeft!==!1,y=t._style.borderRight!==!1,s=M&&(m>1||!h);if(h)for(let c=0;c<e;c++){let p;e===1?p=f&&y?r.left:f?r.topLeft:y?r.topRight:r.top:c===0&&f?p=r.topLeft:c===e-1&&y?p=r.topRight:p=r.top,A(o,n,l,i+c,b,p.codePointAt(0),u,d)}if(s)for(let c=0;c<e;c++){let p;e===1?p=f&&y?r.left:f?r.bottomLeft:y?r.bottomRight:r.bottom:c===0&&f?p=r.bottomLeft:c===e-1&&y?p=r.bottomRight:p=r.bottom,A(o,n,l,i+c,b+m-1,p.codePointAt(0),u,d)}const x=h?1:0,T=s?m-1:m;for(let c=x;c<T;c++)f&&A(o,n,l,i,b+c,r.left.codePointAt(0),u,d),y&&A(o,n,l,i+e-1,b+c,r.right.codePointAt(0),u,d)}R(z,"K");B(z,"paintBorder");function U(t){if(t._hidden)return"";if(t.text!==void 0)return t.text;const o=t.children.map(U).join("");return typeof t.transform=="function"?t.transform(o,0):o}R(U,"X");B(U,"collectText");function O(t,o,n,l,i,b,e,m,v,_){if(e<=0||m<=0)return;let g=0,d=0;for(const r of t){if(r===`
2
- `){g=0,d++;continue}const a=r.codePointAt(0)??32,u=I(r);if(g+u>e&&(g=0,d++),d>=m)break;if(u>e){A(o,n,l,i+g,b+d,32,v,_),g+=1;continue}A(o,n,l,i+g,b+d,a,v,_),u===2&&g+1<e&&A(o,n,l,i+g+1,b+d,V,v,_),g+=u}}R(O,"E");B(O,"paintText");function E(t,o,n,l,i,b,e,m,v,_,g){if(t._hidden)return;const d=t.getLayout(),r=Math.round(i+d.left),a=Math.round(b+d.top),u=Math.round(d.width),h=Math.round(d.height),M=t.fg===255?e:t.fg,f=t.bg===255?m:t.bg,y=t.styles===0?v:t.styles,s={x0:Math.max(g.x0,r),x1:Math.min(g.x1,r+u),y0:Math.max(g.y0,a),y1:Math.min(g.y1,a+h)};if(s.x0>=s.x1||s.y0>=s.y1)return;if(typeof t.transform=="function"){const L=U(t),C=t.transform(L,0),P=y<<16|f<<8|M;O(C,o,n,l,r,a,u,h,P,s);return}if(t.text===void 0){if(f!==255||y!==0){const L=y<<16|f<<8|M;for(let C=0;C<h;C++)for(let P=0;P<u;P++)A(o,n,l,r+P,a+C,32,L,s)}t._style?.borderStyle&&_.push({absX:r,absY:a,bg:f,clip:s,fg:M,h,node:t,styles:y,w:u})}else{const L=y<<16|f<<8|M;if(t.bg!==255)for(let C=0;C<h;C++)for(let P=0;P<u;P++)A(o,n,l,r+P,a+C,32,L,s);O(t.text,o,n,l,r,a,u,h,L,s)}const x=t._style,T=x?.overflow??"visible",c=x?.overflowX??T,p=x?.overflowY??T,S=c==="hidden"||c==="scroll",w=p==="hidden"||p==="scroll";let Y=s,X=0,k=0;if(S||w){const L=j(x);Y={x0:S?Math.max(s.x0,r+L.left):s.x0,x1:S?Math.min(s.x1,r+u-L.right):s.x1,y0:w?Math.max(s.y0,a+L.top):s.y0,y1:w?Math.min(s.y1,a+h-L.bottom):s.y1},p==="scroll"&&typeof x?.scrollTop=="number"&&(k=-x.scrollTop),c==="scroll"&&typeof x?.scrollLeft=="number"&&(X=-x.scrollLeft)}for(const L of t.children)L._style?.internalStickyAlternate||E(L,o,n,l,r+X,a+k,M,f,y,_,Y);(p==="scroll"||c==="scroll")&&x?.scrollbar!==!1&&N(t,o,n,l,r,a,u,h,M,y,s,x),p==="scroll"&&typeof x?.scrollTop=="number"&&q(t,o,n,l,r,a,u,h,M,f,y,_,Y,x)}R(E,"S");B(E,"paintNode");export{Z as renderTreeToBuffer};
@@ -1,17 +0,0 @@
1
- var Be=Object.defineProperty;var D=(o,e)=>Be(o,"name",{value:e,configurable:!0});import{T as Oe,i as De}from"./dom-BG-LS10p.js";import{getStringWidth as Q,indent as Pe,isFullwidthCodePoint as We}from"@visulima/string";import{B as H,D as A,I,U as j,f as z,H as Y,g as q,h as ae,F as V,j as de,S as $e,k as He,p as Ae}from"./measure-text-DDjHT1jD.js";import T from"yoga-layout";import{j as F,i as Fe,m as ue,c as ce}from"./layout-BMo200nF.js";import{g as Ge,d as J}from"./colorize-DbTZMrJO.js";import Ie from"@visulima/colorize";import je from"cli-boxes";import{getScrollTop as Me}from"./getScrollHeight-ClEOyLHH.js";import Te from"./squashTextNodesWithMap-DCdi3SZ2.js";import __cjs_mod__ from "node:module"; // -- packem CommonJS require shim --
2
- const require = __cjs_mod__.createRequire(import.meta.url);
3
- const ze=1114112;var Ye=Object.defineProperty,xe=D((o,e)=>Ye(o,"name",{value:e,configurable:!0}),"T$1");const qe=1,Ke=2,Xe=3,Ue=4,Ve=7,Je=8,Qe=9,he=22,ge=23,fe=24,pe=27,me=28,ye=29,be=39,ve=49,Ze="\x1B[",E=xe(o=>o.length===0?"":`${Ze}${o.join(";")}m`,"sgr"),et=xe(o=>{if(o.length===0)return"";let e="",t=0,r,n,s,i=!1,d=0;const g=o.getSpans();for(const f of g){const c=f.formatFlags&127,{fgColor:l}=f,{bgColor:a}=f,{link:h}=f,u=c;if(u!==t||l!==r||a!==n||h!==s){if(h!==s&&(s&&(e+=s.startsWith("ST:")?"\x1B]8;;\x1B\\":"\x1B]8;;\x07"),h)){const m=h.startsWith("ST:");e+=`\x1B]8;;${m?h.slice(3):h}${m?"\x1B\\":"\x07"}`}const p=t&(H|A),b=u&(H|A);if(p!==b){const m=t&H&&!(u&H),y=t&A&&!(u&A);(m||y)&&(e+=E([he])),u&H&&(!(t&H)||y)&&(e+=E([qe])),u&A&&(!(t&A)||m)&&(e+=E([Ke]))}u&I&&!(t&I)?e+=E([Xe]):!(u&I)&&t&I&&(e+=E([ge])),u&j&&!(t&j)?e+=E([Ue]):!(u&j)&&t&j&&(e+=E([fe])),u&z&&!(t&z)?e+=E([Ve]):!(u&z)&&t&z&&(e+=E([pe])),u&Y&&!(t&Y)?e+=E([Je]):!(u&Y)&&t&Y&&(e+=E([me])),u&q&&!(t&q)?e+=E([Qe]):!(u&q)&&t&q&&(e+=E([ye])),l!==r&&(e+=E(l?ae(l,!0):[be])),a!==n&&(e+=E(a?ae(a,!1):[ve])),i=u!==0||l!==void 0||a!==void 0,t=u,r=l,n=a,s=h}e+=o.getTextRange(d,d+f.length),d+=f.length}return i&&(t&(H|A)&&(e+=E([he])),t&I&&(e+=E([ge])),t&j&&(e+=E([fe])),t&z&&(e+=E([pe])),t&Y&&(e+=E([me])),t&q&&(e+=E([ye])),r!==void 0&&(e+=E([be])),n!==void 0&&(e+=E([ve]))),s&&(e+=s.startsWith("ST:")?"\x1B]8;;\x1B\\":"\x1B]8;;\x07"),e},"styledLineToString");var tt=Object.defineProperty,ke=D((o,e)=>tt(o,"name",{value:e,configurable:!0}),"v");class ee{static{D(this,"OutputCaches")}static{ke(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledLines=new Map;lines=new Map;maxEntries;pruneToFactor;constructor(e={}){const{maxEntries:t=3e4,pruneToFactor:r=.8}=e;this.maxEntries=Math.max(1,t),this.pruneToFactor=Math.min(.99,Math.max(.1,r))}getStyledLine(e){let t=this.styledLines.get(e);return t===void 0&&(t=this.hasAnsiControlMarker(e)?He(e):Ae(e),this.setCacheEntry(this.styledLines,e,t)),t}getStringWidth(e){let t=this.widths.get(e);return t===void 0&&(t=Q(e),this.setCacheEntry(this.widths,e,t)),t}getWidestLine(e){let t=this.blockWidths.get(e);if(t===void 0){let r=0;for(const n of this.getLines(e))r=Math.max(r,this.getStringWidth(n));t=r,this.setCacheEntry(this.blockWidths,e,t)}return t}getLines(e){let t=this.lines.get(e);return t===void 0&&(t=e.split(`
4
- `),this.setCacheEntry(this.lines,e,t)),t}hasAnsiControlMarker(e){for(const t of e){const r=t.codePointAt(0);if(ot.has(r))return!0}return!1}setCacheEntry(e,t,r){!e.has(t)&&e.size>=this.maxEntries&&this.pruneCache(e),e.set(t,r)}pruneCache(e){const t=Math.floor(this.maxEntries*this.pruneToFactor);for(const r of e.keys())if(e.delete(r),e.size<=t)break}}const ot=new Set([27,144,152,155,157,158,159]),rt=.6,it=30;class te{static{D(this,"A")}static{ke(this,"Output")}width;height;caches;grid;clipStack=[];previousLines=[];previousRenderedLines=[];lineMemoizationEnabled=!0;memoizationProbeCountdown=0;constructor(e){const{caches:t,height:r,width:n}=e;this.width=Math.round(n),this.height=Math.round(r),this.caches=t??new ee,this.grid=this.createGrid(this.width,this.height)}reset(e,t){this.width=Math.round(e),this.height=Math.round(t),this.clipStack.length=0,this.grid=this.createGrid(this.width,this.height)}startChildRegion(e,t,r,n){const s=Math.round(e),i=Math.round(t);this.clipStack.push({x1:s,x2:s+Math.round(r),y1:i,y2:i+Math.round(n)})}endChildRegion(){this.clipStack.pop()}write(e,t,r,n){if(!r)return;const{transformers:s}=n,i=this.clipStack.at(-1),d=this.caches.getLines(r),g=s.length>0;for(const[f,c]of d.entries()){const l=t+f;if(l<0||l>=this.grid.length||i&&(l<i.y1||l>=i.y2))continue;let a=c;if(g)for(const m of s)a=m(a,f);if(a.length===0)continue;const h=this.grid[l],u=this.caches.getStyledLine(a);let p=e;const b=i?Math.min(i.x2,h.length):1/0;for(let m=0;m<u.length&&!(p>=b);m++){if(i&&(p<i.x1||p>=i.x2)){p++,u.getFullWidth(m)&&p++;continue}if(p>=0){p>=h.length&&h.ensureWidth(p+2);const y=u.getSpan(m),k=u.getFullWidth(m),w=(y?.formatFlags??0)|(k?V:0);h.setCharFast(p,u.getValue(m),w,y?.fgColor,y?.bgColor,y?.link),k&&(p++,p>=h.length&&h.ensureWidth(p+1),h.setCharFast(p,"",w&~V,y?.fgColor,y?.bgColor,y?.link))}p++}}}writeStyledLine(e,t,r){if(r.length===0||t<0||t>=this.grid.length)return;const n=this.clipStack.at(-1);n&&(t<n.y1||t>=n.y2)||this.writeStyledLineToRow(this.grid[t],e,r,this.width,n)}getRootLines(){return this.grid}getCurrentClip(){return this.clipStack.at(-1)}addRegionTree(e,t,r){for(let n=0;n<e.height;n++){const s=r+n;if(s<0||s>=this.grid.length)continue;const i=e.lines[n];if(!i)continue;const d=this.grid[s];for(let g=0;g<i.length;g++){const f=t+g;if(f<0||f>=d.length)continue;const c=i.getValue(g);(c!==" "||i.hasStyles(g))&&d.setCharFast(f,c,i.getFormatFlags(g),i.getFgColor(g),i.getBgColor(g),i.getLink(g))}}for(const n of e.children)this.addRegionTree(n,t+n.x,r+n.y)}writeStyledLineToRow(e,t,r,n,s){let i=t;const d=s?Math.min(s.x2,n):1/0;for(let g=0;g<r.length&&!(i>=d);g++){if(s&&(i<s.x1||i>=s.x2)){i++,r.getFullWidth(g)&&i++;continue}if(i>=0){i>=e.length&&e.ensureWidth(i+2);const f=r.getSpan(g),c=r.getFullWidth(g),l=(f?.formatFlags??0)|(c?V:0);e.setCharFast(i,r.getValue(g),l,f?.fgColor,f?.bgColor,f?.link),c&&(i++,i>=e.length&&e.ensureWidth(i+1),e.setCharFast(i,"",l&~V,f?.fgColor,f?.bgColor,f?.link))}i++}}get(){const e=this.grid;this.lineMemoizationEnabled||(this.memoizationProbeCountdown>0?this.memoizationProbeCountdown--:this.lineMemoizationEnabled=!0);const t=this.lineMemoizationEnabled,r=this.previousLines.length>0,n=t&&r&&this.previousLines.length===e.length&&this.previousRenderedLines.length===e.length;this.previousLines.length>e.length&&(this.previousLines.length=e.length),this.previousRenderedLines.length>e.length&&(this.previousRenderedLines.length=e.length);const s=Array.from({length:e.length});let i=0;for(const[d,g]of e.entries()){const f=g;if(n&&this.previousLines[d]?.equals(f)){s[d]=this.previousRenderedLines[d]??"";continue}i++;const c=f.trimEnd(),l=et(c);s[d]=l,t&&(this.previousRenderedLines[d]=l,this.previousLines[d]=f.clone())}return t&&n&&e.length>0&&i/e.length>rt&&this.disableLineMemoization(),{height:e.length,output:s.join(`
5
- `)}}getBuffer(){const e=this.grid,t=e.length,r=new Uint32Array(this.width*t*2),n=65535;for(let s=0;s<r.length;s+=2)r[s]=32,r[s+1]=n;for(let s=0;s<t;s++){const i=e[s];for(let d=0;d<i.length&&d<this.width;d++){const g=i.getValue(d);if(g.length===0)continue;const f=g.codePointAt(0)??32,c=(s*this.width+d)*2,l=i.getSpan(d),a=l?.formatFlags??0,h=l?.fgColor,u=l?.bgColor,p=h?de(h):255,b=u?de(u):255,m=(a&255)<<16|(b&255)<<8|p&255;if(r[c]=f,r[c+1]=m,i.getFullWidth(d)&&d+1<this.width){const y=c+2;r[y]=ze,r[y+1]=m,d++}}}return{buffer:r,height:t}}createGrid(e,t){const r=[];for(let n=0;n<t;n++)r.push($e.empty(e));return r}disableLineMemoization(){this.lineMemoizationEnabled=!1,this.memoizationProbeCountdown=it,this.previousLines.length=0,this.previousRenderedLines.length=0}}var nt=Object.defineProperty,st=D((o,e)=>nt(o,"name",{value:e,configurable:!0}),"d");const lt=st(o=>Math.round(o.getComputedWidth()-Math.max(0,o.getComputedLeft()+o.getComputedWidth()-(o.getParent()?.getComputedWidth()??o.getComputedWidth()))-o.getComputedPadding(T.EDGE_LEFT)-o.getComputedPadding(T.EDGE_RIGHT)-o.getComputedBorder(T.EDGE_LEFT)-o.getComputedBorder(T.EDGE_RIGHT)),"getMaxWidth");var at=Object.defineProperty,dt=D((o,e)=>at(o,"name",{value:e,configurable:!0}),"c");const ut=dt((o,e,t,r)=>{if(!t.style.backgroundColor)return;const n=Math.round(t.yogaNode.getComputedWidth()),s=Math.round(t.yogaNode.getComputedHeight()),i=t.style.borderStyle&&t.style.borderLeft!==!1?1:0,d=t.style.borderStyle&&t.style.borderRight!==!1?1:0,g=t.style.borderStyle&&t.style.borderTop!==!1?1:0,f=t.style.borderStyle&&t.style.borderBottom!==!1?1:0,c=n-i-d,l=s-g-f;if(!(c>0&&l>0))return;const a=Ge(t.style.backgroundColor);if(!a)return;const h=`${a}${" ".repeat(c)}\x1B[49m`;for(let u=0;u<l;u++)r.write(o+i,e+g+u,h,{transformers:[]})},"renderBackground");var ct=Object.defineProperty,oe=D((o,e)=>ct(o,"name",{value:e,configurable:!0}),"T");const P=oe((o,e,t,r)=>{let n=J(o,e,"foreground");return n=J(n,t,"background"),r&&(n=Ie.dim(n)),n},"stylePiece"),Ce=oe((o,e,t,r,n,s,i,d)=>{if(!t&&!n)return P(o.repeat(e),s,i,d);const g=t?` ${t} `:"",f=n?` ${n} `:"",c=g.length,l=f.length,a=r??"left";if(c+l>=e){if(c>=e)return`${g.slice(0,e-1)}…`;const b=e-c;return b>3?g+f.slice(0,b):g+P(o.repeat(e-c),s,i,d)}const h=e-c-l;if(a==="left"||n)return g+P(o.repeat(h),s,i,d)+f;if(a==="right"){const b=e-c;return P(o.repeat(b),s,i,d)+g}const u=Math.floor(h/2),p=h-u;return P(o.repeat(u),s,i,d)+g+P(o.repeat(p),s,i,d)},"buildBorderWithTitle"),ht=oe((o,e,t,r)=>{if(t.style.borderStyle){const n=Math.round(t.yogaNode.getComputedWidth()),s=Math.round(t.yogaNode.getComputedHeight()),i=typeof t.style.borderStyle=="string"?je[t.style.borderStyle]:t.style.borderStyle,d=t.style.borderTopColor??t.style.borderColor,g=t.style.borderBottomColor??t.style.borderColor,f=t.style.borderLeftColor??t.style.borderColor,c=t.style.borderRightColor??t.style.borderColor,l=t.style.borderTopBackgroundColor??t.style.borderBackgroundColor,a=t.style.borderBottomBackgroundColor??t.style.borderBackgroundColor,h=t.style.borderLeftBackgroundColor??t.style.borderBackgroundColor,u=t.style.borderRightBackgroundColor??t.style.borderBackgroundColor,p=t.style.borderTopDimColor??t.style.borderDimColor,b=t.style.borderBottomDimColor??t.style.borderDimColor,m=t.style.borderLeftDimColor??t.style.borderDimColor,y=t.style.borderRightDimColor??t.style.borderDimColor,k=t.style.borderTop!==!1,w=t.style.borderBottom!==!1,B=t.style.borderLeft!==!1,W=t.style.borderRight!==!1,v=Math.max(0,n-(B?1:0)-(W?1:0));let M;if(k){const L=B?P(i.topLeft,d,l,p):"",O=W?P(i.topRight,d,l,p):"",R=Ce(i.top,v,t.style.borderTopTitle,t.style.borderTopTitleAlignment,t.style.borderTopRightTitle,d,l,p);M=L+R+O}let C=s;k&&(C-=1),w&&(C-=1),C=Math.max(0,C);let S="";B&&(S=`${P(i.left,f,h,m)}
6
- `.repeat(C));let N="";W&&(N=`${P(i.right,c,u,y)}
7
- `.repeat(C));let x;if(w){const L=B?P(i.bottomLeft,g,a,b):"",O=W?P(i.bottomRight,g,a,b):"",R=Ce(i.bottom,v,t.style.borderBottomTitle,t.style.borderBottomTitleAlignment,void 0,g,a,b);x=L+R+O}const _=k?1:0;M&&r.write(o,e,M,{transformers:[]}),S&&r.write(o,e+_,S,{transformers:[]}),N&&r.write(o+n-1,e+_,N,{transformers:[]}),x&&r.write(o,e+s-1,x,{transformers:[]})}},"renderBorder");var gt=Object.defineProperty,ft=D((o,e)=>gt(o,"name",{value:e,configurable:!0}),"m");const Ne=[],Se=ft(({axis:o,color:e,layout:t,output:r})=>{const{thumb:{end:n,endHalf:s,start:i,startHalf:d},x:g,y:f}=t;if(o==="vertical")for(let c=i;c<n;c++){let l="█";const a=2*c>=d&&2*c<s,h=2*c+1>=d&&2*c+1<s;a&&!h?l="▀":!a&&h&&(l="▄");const u=e?J(l,e,"foreground"):l;r.write(g,f+c,u,{transformers:Ne})}else for(let c=i;c<n;c++){let l="█";const a=2*c>=d&&2*c<s,h=2*c+1>=d&&2*c+1<s;a&&!h?l="▌":!a&&h&&(l="▐");const u=e?J(l,e,"foreground"):l;r.write(g+c,f,u,{transformers:Ne})}},"renderScrollbar");var pt=Object.defineProperty,re=D((o,e)=>pt(o,"name",{value:e,configurable:!0}),"b");const we=re((o,e=[])=>{for(const t of o.childNodes){if(t.nodeName==="#text")continue;const r=t;if(!r.internal_stickyAlternate)if(r.internal_sticky)e.push({node:r,type:r.internal_sticky==="bottom"?"bottom":"top"});else{const n=r.style.overflow??"visible",s=r.style.overflowX??n,i=r.style.overflowY??n;!(s==="scroll"||i==="scroll")&&r.childNodes&&we(r,e)}}return e},"getStickyDescendants"),mt=re((o,e,t,r)=>{let n,s=-1,i,d=-1;for(const[f,c]of o.entries()){const{node:l,type:a}=c;if(!l.yogaNode)continue;const h=F(l,e)??0,u=Math.round(l.yogaNode.getComputedHeight()),p=h+u,b=l.parentNode;let m=0,y=Number.MAX_SAFE_INTEGER;b?.yogaNode&&(m=F(b,e)??0,y=Math.round(b.yogaNode.getComputedHeight())),a==="top"&&h<t&&m+y>t&&(n=c,s=f),a==="bottom"&&Math.floor(p)>Math.floor(r)&&m<r&&(i=c,d=f)}const g=[];if(n){let f;for(let c=s+1;c<o.length;c++){const l=o[c];if(l.type!=="bottom"){f=l;break}}g.push({nextStickyNodeInfo:f,stickyNode:n.node,type:"top"})}if(i){let f;for(let c=d-1;c>=0;c--){const l=o[c];if(l.type==="bottom"){f=l;break}}g.push({nextStickyNodeInfo:f,stickyNode:i.node,type:"bottom"})}return g},"identifyActiveStickyNodes"),yt=re((o,e,t,r,n)=>{const{newTransformers:s,skipStaticElements:i,x:d,y:g}=n,{yogaNode:f}=e;if(!f)return;const c=f.getComputedBorder(T.EDGE_TOP),l=f.getComputedBorder(T.EDGE_LEFT),a=Me(e),h=e.internal_scrollState?.clientHeight??0;for(const{nextStickyNodeInfo:u,stickyNode:p,type:b}of o){if(!p.yogaNode)continue;const m=F(p,e)??0,y=Math.round(p.yogaNode.getComputedHeight()),k=d+(Fe(p,e)??0),w=p.parentNode;let B=0,W=Number.MAX_SAFE_INTEGER;w?.yogaNode&&(B=F(w,e)??0,W=Math.round(w.yogaNode.getComputedHeight()));let v;if(b==="top"){const S=w?.yogaNode?.getComputedBorder(T.EDGE_BOTTOM)??0,N=B+W-S;let x=g-a+N-y;const _=g-a+m,L=g+c;if(u?.node?.yogaNode){const O=F(u.node,e)??0,R=g-a+O-y;R<x&&(x=R)}v=Math.min(Math.max(L,_),x)}else{const S=w?.yogaNode?.getComputedBorder(T.EDGE_TOP)??0;let N=g-a+B+S;const x=g-a+m,_=g+c+h-y;if(u?.node?.yogaNode){const L=Math.round(u.node.yogaNode.getComputedHeight()),O=F(u.node,e)??0,R=g-a+O+L;R>N&&(N=R)}v=Math.max(Math.min(_,x),N)}const M=r({height:y,width:Math.round(p.yogaNode.getComputedWidth())});X(p,M,{offsetX:-Math.round(p.yogaNode.getComputedLeft()),offsetY:-Math.round(p.yogaNode.getComputedTop()),skipStaticElements:i,transformers:s});const C=M.get().output.split(`
8
- `);for(const[S,N]of C.entries())N&&N.length>0&&t.write(k-(d+l),v-(g+c)+S,N,{transformers:[]})}},"renderActiveStickyNodes");var bt=Object.defineProperty,$=D((o,e)=>bt(o,"name",{value:e,configurable:!0}),"x");const vt=$((o,e)=>{const t=o.childNodes[0]?.yogaNode;if(t){const r=Math.round(t.getComputedLeft()),n=Math.round(t.getComputedTop());e=`
9
- `.repeat(n)+Pe(e,r)}return e},"applyPaddingToText"),Ct=31,Nt=127,St=128,Et=159,Mt=$((o,e)=>{if(!Number.isFinite(e))return!1;if(e<0)return!0;let t=0;for(const r of o){if(r===`
10
- `){if(t>e)return!0;t=0;continue}const n=r.codePointAt(0);if(n<=Ct||n===Nt||n>=St&&n<=Et||We(n)||(t++,t>e))return!0}return!1},"mightExceedWidth"),Tt=$(o=>(o.internal_hidden??!1)||o.yogaNode?.getDisplay()===T.DISPLAY_NONE,"isNodeHidden"),xt=$(o=>{let e=o;for(;e;){if(Tt(e))return!0;e=e.parentNode}return!1},"isNodeOrAncestorHidden"),Z=$((o,e={})=>{if(e.skipStaticElements&&o.internal_static||o.internal_hidden||o.internal_stickyAlternate||o.yogaNode?.getDisplay()===T.DISPLAY_NONE)return"";let t="";if(o.nodeName==="ink-text")t=Te(o);else if(o.nodeName==="ink-box"||o.nodeName==="ink-root"){const r=o.style.flexDirection==="row"||o.style.flexDirection==="row-reverse"?" ":`
11
- `;t=(o.style.flexDirection==="row-reverse"||o.style.flexDirection==="column-reverse"?o.childNodes.toReversed():[...o.childNodes]).map(n=>Z(n,{parentRole:o.internal_accessibility?.role,skipStaticElements:e.skipStaticElements})).filter(Boolean).join(r)}if(o.internal_accessibility){const{role:r,state:n}=o.internal_accessibility;if(n){const s=Object.keys(n).filter(i=>n[i]).join(", ");s&&(t=`(${s}) ${t}`)}r&&r!==e.parentRole&&(t=`${r}: ${t}`)}return t},"renderNodeToScreenReaderOutput"),X=$((o,e,t)=>{const{absoluteOffsetX:r,absoluteOffsetY:n,offsetX:s=0,offsetY:i=0,renderState:d,selectionMap:g,skipStaticElements:f,transformers:c=[]}=t;if(f&&o.internal_static||o.internal_hidden)return;if(o.cachedRender){const a=Math.round(s+(o.yogaNode?.getComputedLeft()??0)),h=Math.round(i+(o.yogaNode?.getComputedTop()??0));e.addRegionTree(o.cachedRender,a,h);return}if(o.nodeName==="ink-cursor"){if(!d)return;d.cursorRequested=!0;const a=o.internal_cursor;if(!a){d.cursorPosition=void 0;return}if(a.inline){if(d.lastTextWriteEnd)d.cursorPosition={x:d.lastTextWriteEnd.x,y:d.lastTextWriteEnd.y};else{const p=o.parentNode?ue(o.parentNode):void 0;d.cursorPosition=p?{x:p.x,y:p.y}:void 0}return}const h=a.anchorRef?a.anchorRef.current:o.parentNode;if(!h){d.cursorPosition=void 0;return}if(a.anchorRef&&xt(h)){d.cursorPosition=void 0;return}const u=ue(h);if(!u){d.cursorPosition=void 0;return}d.cursorPosition={x:u.x+a.x,y:u.y+a.y};return}const{yogaNode:l}=o;if(l){if(l.getDisplay()===T.DISPLAY_NONE)return;const a=l.getComputedLeft(),h=l.getComputedTop(),u=Math.round(s+a),p=Math.round(i+h),b=Math.round((r??s)+a),m=Math.round((n??i)+h),y=e.getCurrentClip();if(y){const v=Math.round(l.getComputedWidth()),M=Math.round(l.getComputedHeight()),C=b+v,S=m+M,N=y.x1??-1/0,x=y.x2??1/0,_=y.y1??-1/0,L=y.y2??1/0;if(C<=N||b>=x||S<=_||m>=L)return}let k=c;if(typeof o.internal_transform=="function"&&(k=[o.internal_transform,...c]),o.nodeName==="ink-text"){let v=Te(o);if(v.length>0){const M=lt(l);if(Mt(v,M)&&Math.max(...v.split(`
12
- `).map(C=>Q(C)))>M){const C=o.style.textWrap??"wrap";v=Oe(v,Math.floor(M),C)}if(v=vt(o,v),e.write(u,p,v,{transformers:k}),d){const C=v.split(`
13
- `),S=C.at(-1)??"";d.lastTextWriteEnd={x:u+Q(S),y:p+C.length-1}}}return}let w=!1,B=0,W=0;if(o.nodeName==="ink-box"){ut(u,p,o,e),ht(u,p,o,e);const v=o.style.overflow??"visible",M=o.style.overflowX??v,C=o.style.overflowY??v,S=M==="hidden"||M==="scroll",N=C==="hidden"||C==="scroll";if(S||N){const x=Math.round(l.getComputedWidth()),_=Math.round(l.getComputedHeight()),L=S?u+l.getComputedBorder(T.EDGE_LEFT):u,O=S?x-l.getComputedBorder(T.EDGE_LEFT)-l.getComputedBorder(T.EDGE_RIGHT):x,R=N?p+l.getComputedBorder(T.EDGE_TOP):p,U=N?_-l.getComputedBorder(T.EDGE_TOP)-l.getComputedBorder(T.EDGE_BOTTOM):_;e.startChildRegion(L,R,Math.max(0,O),Math.max(0,U)),w=!0,C==="scroll"&&o.internal_scrollState&&(W=-o.internal_scrollState.scrollTop),M==="scroll"&&o.internal_scrollState&&(B=-o.internal_scrollState.scrollLeft)}}if(o.nodeName==="ink-root"||o.nodeName==="ink-box"||o.nodeName==="ink-static-render"){for(const v of o.childNodes)X(v,e,{absoluteOffsetX:b+B,absoluteOffsetY:m+W,offsetX:u+B,offsetY:p+W,renderState:d,selectionMap:g,skipStaticElements:f,transformers:k});if(o.nodeName==="ink-box"&&o.internal_scrollState){const v=we(o);if(v.length>0){const M=Me(o),C=o.internal_scrollState.clientHeight,S=M+C,N=mt(v,o,M,S);N.length>0&&yt(N,o,e,$(x=>new te(x),"createOutput"),{newTransformers:k,skipStaticElements:f,x:u,y:p})}}if(o.nodeName==="ink-box"&&o.internal_scrollState){const v=o.style.overflow??"visible",M=o.style.overflowX??v,C=o.style.overflowY??v,S=l.getComputedBorder(T.EDGE_LEFT),N=l.getComputedBorder(T.EDGE_RIGHT),x=l.getComputedBorder(T.EDGE_TOP),_=l.getComputedBorder(T.EDGE_BOTTOM),L=Math.round(l.getComputedWidth()-S-N),O=Math.round(l.getComputedHeight()-x-_),{clientHeight:R,clientWidth:U,scrollHeight:ie,scrollLeft:Le,scrollTop:Re,scrollWidth:ne}=o.internal_scrollState,se=C==="scroll"&&ie>R,_e=M==="scroll"&&ne>U,le=o.internal_scrollbar!==!1;if(se&&le){const G=ce({axis:"vertical",clientDimension:R,hasOppositeScrollbar:!1,height:O,marginBottom:0,marginRight:0,scrollDimension:ie,scrollPosition:Re,width:L,x:u+S,y:p+x});G&&Se({axis:"vertical",color:o.style.scrollbarThumbColor,layout:G,output:e})}if(_e&&le){const G=ce({axis:"horizontal",clientDimension:U,hasOppositeScrollbar:se,height:O,marginBottom:0,marginRight:0,scrollDimension:ne,scrollPosition:Le,width:L,x:u+S,y:p+x});G&&Se({axis:"horizontal",color:o.style.scrollbarThumbColor,layout:G,output:e})}}w&&e.endChildRegion()}}},"renderNodeToOutput"),zt=$((o,e)=>{if(!o.yogaNode)return;const t=Math.round(o.yogaNode.getComputedWidth()),r=Math.round(o.yogaNode.getComputedHeight());if(t<=0||r<=0)return;const{setCachedRender:n}=require("./dom"),s=new te({height:r,width:t});for(const d of o.childNodes)X(d,s,{skipStaticElements:e?.skipStaticElements??!1});const i={children:[],cursorPosition:void 0,height:r,id:o.internalId??"static",isScrollable:!1,lines:[...s.getRootLines()],selectableSpans:[],stickyHeaders:[],styledOutput:[...s.getRootLines()],width:t,x:0,y:0};n(o,i)},"renderToStatic");var kt=Object.defineProperty,K=D((o,e)=>kt(o,"name",{value:e,configurable:!0}),"N");const wt=K((o,e)=>{const t=new Map;if(e.rangeCount===0)return t;const r=e.getRangeAt(0),{endContainer:n,endOffset:s,startContainer:i,startOffset:d}=r;if(!i||!n)return t;let g=!1,f=!1;const c=K((a,h,u,p,b,m)=>{if(a.nodeName==="#text"){const{length:y}=a.nodeValue;i===a&&(b.value=!0,u.value=h.value+d),n===a&&(m.value=!0,p.value=h.value+s),h.value+=y}else if("childNodes"in a){for(const y of a.childNodes)a===i&&(b.value=!0,u.value=h.value),a===n&&(m.value=!0,p.value=h.value),c(y,h,u,p,b,m);a===i&&d===a.childNodes.length&&(b.value=!0,u.value=h.value),a===n&&s===a.childNodes.length&&(m.value=!0,p.value=h.value)}},"visitChildren"),l=K(a=>{if(a.nodeName==="ink-text"){if(!De(a))return;const h={value:0},u={value:-1},p={value:-1},b={value:!1},m={value:!1};for(const y of a.childNodes)a===i&&(b.value=!0,u.value=h.value),a===n&&(m.value=!0,p.value=h.value),c(y,h,u,p,b,m);if(a===i&&d===a.childNodes.length&&(b.value=!0,u.value=h.value),a===n&&s===a.childNodes.length&&(m.value=!0,p.value=h.value),(g||b.value)&&(!f||m.value)){const y=b.value?u.value:0,k=m.value?p.value:h.value;y!==-1&&k!==-1&&y<k&&t.set(a,{end:k,start:y})}b.value&&(g=!0),m.value&&(f=!0)}else{const{childNodes:h}=a;if(h){for(const u of h)a===i&&(g=!0),a===n&&(f=!0),l(u);a===i&&d===h.length&&(g=!0),a===n&&s===h.length&&(f=!0)}}},"visit");return l(o),t},"calculateSelectionMap"),Lt=new ee,Rt=new ee,_t=new WeakMap,Bt=new WeakMap,Ee=K(({caches:o,height:e,node:t,outputs:r,width:n})=>{let s=r.get(t);return s||(s=new te({caches:o,height:e,width:n}),r.set(t,s)),s.reset(n,e),s},"getReusableOutput"),Yt=K((o,e,t)=>{if(o.yogaNode){if(e){const f=Z(o,{skipStaticElements:!0}),c=f===""?0:f.split(`
14
- `).length;let l="";return o.staticNode&&(l=Z(o.staticNode,{skipStaticElements:!1})),{cursorPosition:void 0,cursorRequested:!1,output:f,outputHeight:c,staticOutput:l?`${l}
15
- `:""}}const r=t?.selection&&t.selection.rangeCount>0?wt(o,t.selection):void 0,n=Ee({caches:Lt,height:o.yogaNode.getComputedHeight(),node:o,outputs:_t,width:o.yogaNode.getComputedWidth()}),s={cursorPosition:void 0,cursorRequested:!1};X(o,n,{renderState:s,selectionMap:r,skipStaticElements:!0});let i;if(o.staticNode?.yogaNode&&(i=Ee({caches:Rt,height:o.staticNode.yogaNode.getComputedHeight(),node:o,outputs:Bt,width:o.staticNode.yogaNode.getComputedWidth()}),X(o.staticNode,i,{skipStaticElements:!1})),t?.useNativeRenderer){const{buffer:f,height:c}=n.getBuffer();return{cursorPosition:s.cursorPosition,cursorRequested:s.cursorRequested,output:"",outputBuffer:f,outputHeight:c,outputWidth:n.width,staticOutput:i?`${i.get().output}
16
- `:""}}const{height:d,output:g}=n.get();return{cursorPosition:s.cursorPosition,cursorRequested:s.cursorRequested,output:g,outputHeight:d,staticOutput:i?`${i.get().output}
17
- `:""}}return{cursorPosition:void 0,cursorRequested:!1,output:"",outputHeight:0,staticOutput:""}},"renderer");export{te as A,X as B,Yt as R,zt as r};
@@ -1 +0,0 @@
1
- import"@visulima/string";import{c as i,a as s,e as l,i as n,m as d,s as r,b as c,l as h,d as y,t as S}from"./measure-text-DDjHT1jD.js";export{i as clearStringWidthCache,s as clearStyledLineCache,l as default,n as inkCharacterWidth,d as measureStyledLine,r as setEnableStyledLineCache,c as setStringWidthFunction,h as splitStyledLineByNewline,y as styledLineWidth,S as toStyledLine};
@@ -1,2 +0,0 @@
1
- var m=Object.defineProperty;var o=(t,e)=>m(t,"name",{value:e,configurable:!0});import{getStringWidth as c}from"@visulima/string";var p=Object.defineProperty,u=o((t,e)=>p(t,"name",{value:e,configurable:!0}),"i");const d={ambiguousIsNarrow:!0,emojiWidth:1};function g(t){return Math.max(1,c(t,d))}o(g,"getCodePointWidth");u(g,"getCodePointWidth");function f(t){return c(t,d)}o(f,"getStringWidth");u(f,"getStringWidth");function h(t,e){if(e<=0)return 0;if(t.length===0)return 1;let i=1,r=0;for(const a of t){const n=Math.min(g(a),e);r+n>e&&(i++,r=0),r+=n}return i}o(h,"countWrappedRowsForLine");u(h,"countWrappedRowsForLine");function W(t,e){const i=t.split(`
2
- `);let r=0,a=0;for(const n of i){const s=f(n);s>r&&(r=s),a+=e>0?h(n,e):0}return{maxLineWidth:r,wrappedRows:a}}o(W,"measureTextBlock");u(W,"measureTextBlock");export{f as a,g,W as m};
@@ -1 +0,0 @@
1
- var t=Object.defineProperty;var s=(r,o)=>t(r,"name",{value:o,configurable:!0});import c from"terminal-size";var u=Object.defineProperty,i=s((r,o)=>u(r,"name",{value:o,configurable:!0}),"s");const l=i(r=>{const{columns:o,rows:e}=r;if(o&&e)return{columns:o,rows:e};const n=c();return{columns:o||n.columns||80,rows:e||n.rows||24}},"getWindowSize");export{l as g};