@profullstack/hqtui 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ansi.d.ts +10 -0
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +18 -0
- package/dist/ansi.js.map +1 -1
- package/dist/app.d.ts +30 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +95 -12
- package/dist/app.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/diff.d.ts +37 -1
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +79 -4
- package/dist/diff.js.map +1 -1
- package/dist/graphics/braille.d.ts.map +1 -1
- package/dist/graphics/braille.js +15 -2
- package/dist/graphics/braille.js.map +1 -1
- package/dist/graphics/canvas.d.ts +76 -0
- package/dist/graphics/canvas.d.ts.map +1 -0
- package/dist/graphics/canvas.js +110 -0
- package/dist/graphics/canvas.js.map +1 -0
- package/dist/graphics/chart.d.ts +70 -0
- package/dist/graphics/chart.d.ts.map +1 -0
- package/dist/graphics/chart.js +249 -0
- package/dist/graphics/chart.js.map +1 -0
- package/dist/graphics/index.d.ts +3 -0
- package/dist/graphics/index.d.ts.map +1 -1
- package/dist/graphics/index.js +3 -0
- package/dist/graphics/index.js.map +1 -1
- package/dist/graphics/world-data.d.ts +22 -0
- package/dist/graphics/world-data.d.ts.map +1 -0
- package/dist/graphics/world-data.js +1300 -0
- package/dist/graphics/world-data.js.map +1 -0
- package/dist/graphics/world.d.ts +70 -0
- package/dist/graphics/world.d.ts.map +1 -0
- package/dist/graphics/world.js +137 -0
- package/dist/graphics/world.js.map +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +21 -1
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +54 -4
- package/dist/layout.js.map +1 -1
- package/dist/richtext.d.ts +79 -0
- package/dist/richtext.d.ts.map +1 -0
- package/dist/richtext.js +272 -0
- package/dist/richtext.js.map +1 -0
- package/dist/surface.d.ts +37 -0
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +123 -15
- package/dist/surface.js.map +1 -1
- package/dist/terminal.d.ts +81 -0
- package/dist/terminal.d.ts.map +1 -1
- package/dist/terminal.js +131 -4
- package/dist/terminal.js.map +1 -1
- package/dist/ui.d.ts +108 -5
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +134 -11
- package/dist/ui.js.map +1 -1
- package/dist/unicode.d.ts +9 -0
- package/dist/unicode.d.ts.map +1 -1
- package/dist/unicode.js +25 -0
- package/dist/unicode.js.map +1 -1
- package/dist/widgets/calendar.d.ts +67 -0
- package/dist/widgets/calendar.d.ts.map +1 -0
- package/dist/widgets/calendar.js +118 -0
- package/dist/widgets/calendar.js.map +1 -0
- package/dist/widgets/chart.d.ts +24 -0
- package/dist/widgets/chart.d.ts.map +1 -0
- package/dist/widgets/chart.js +80 -0
- package/dist/widgets/chart.js.map +1 -0
- package/dist/widgets/index.d.ts +6 -0
- package/dist/widgets/index.d.ts.map +1 -1
- package/dist/widgets/index.js +6 -0
- package/dist/widgets/index.js.map +1 -1
- package/dist/widgets/meters.d.ts.map +1 -1
- package/dist/widgets/meters.js +11 -1
- package/dist/widgets/meters.js.map +1 -1
- package/dist/widgets/scrollbar.d.ts +66 -0
- package/dist/widgets/scrollbar.d.ts.map +1 -0
- package/dist/widgets/scrollbar.js +89 -0
- package/dist/widgets/scrollbar.js.map +1 -0
- package/dist/widgets/shadow.d.ts +42 -0
- package/dist/widgets/shadow.d.ts.map +1 -0
- package/dist/widgets/shadow.js +73 -0
- package/dist/widgets/shadow.js.map +1 -0
- package/dist/widgets/surface.d.ts +33 -0
- package/dist/widgets/surface.d.ts.map +1 -0
- package/dist/widgets/surface.js +37 -0
- package/dist/widgets/surface.js.map +1 -0
- package/dist/widgets/table.d.ts +1 -2
- package/dist/widgets/table.d.ts.map +1 -1
- package/dist/widgets/table.js +4 -12
- package/dist/widgets/table.js.map +1 -1
- package/dist/widgets/text.d.ts +12 -1
- package/dist/widgets/text.d.ts.map +1 -1
- package/dist/widgets/text.js +27 -3
- package/dist/widgets/text.js.map +1 -1
- package/dist/widgets/world.d.ts +32 -0
- package/dist/widgets/world.d.ts.map +1 -0
- package/dist/widgets/world.js +31 -0
- package/dist/widgets/world.js.map +1 -0
- package/package.json +1 -1
package/dist/surface.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAc,MAAM,YAAY,CAAC;AACvD,OAAO,EAAa,KAAK,EAAE,SAAS,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAWrE,MAAM,CAAC,MAAM,OAAO,GAAsD;IACxE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC/G,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9G,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9G,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC7G,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9G,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;CAC9G,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAE3B,MAAM,SAAS,GAAsC;IACnD,EAAE,EAAE,UAAU,GAAG,SAAS;IAC1B,EAAE,EAAE,SAAS,GAAG,SAAS;IACzB,EAAE,EAAE,OAAO,GAAG,UAAU;IACxB,EAAE,EAAE,OAAO,GAAG,SAAS;IACvB,CAAC,EAAE,SAAS,GAAG,UAAU;IACzB,CAAC,EAAE,OAAO,GAAG,SAAS;IACtB,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU;IACpC,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS;IACnC,EAAE,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS;IACtC,EAAE,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO;IACpC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS;CACpD,CAAC;AAEF;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAkC,EAAE,CAAC;QAChF,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,WAAW,CAAC,KAAmC,EAAE,IAAY;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAkC,EAAE,CAAC;QACvF,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAClD,CAAC;AAgCD;;;GAGG;AACH,MAAM,OAAO,OAAO;IACT,MAAM,CAAc;IACpB,IAAI,CAAO;IACX,IAAI,CAAO;IACX,KAAK,CAAQ;IAEtB,YAAY,MAAmB,EAAE,IAAU,EAAE,KAAY,EAAE,IAAW;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK;QACP,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,iEAAiE;IACjE,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QACrD,MAAM,GAAG,GAAS,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,gFAAgF;IAChF,MAAM,CAAC,IAAU,EAAE,YAAY,GAAG,IAAI;QACpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,OAAgB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAEO,OAAO,CAAC,IAAY,EAAE,IAAY;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACrF,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,KAAsB,EAAE,KAAa;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;YAAE,OAAO;QAClC,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACK,WAAW,CACjB,CAAS,EACT,CAAS,EACT,EAAU,EACV,KAAmC,EACnC,SAAgB;QAEhB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;YAAE,OAAO;QAElC,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,0DAA0D;IAC1D,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,OAAO,GAAgB,EAAE;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAE/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACzB,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC;YAC/D,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9C,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,KAAK,GAAU,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9E,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK;gBAAE,MAAM;YACrC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;YACD,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC;YACd,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,qDAAqD;IACrD,WAAW,CAAC,CAAS,EAAE,IAAY,EAAE,KAAY,EAAE,OAAO,GAAgB,EAAE;QAC1E,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,CAAC,KAAY,EAAE,EAAE,GAAG,EAAE;QACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAY,EAAE,EAAE,GAAG,EAAE;QACxE,MAAM,GAAG,GAAG,SAAS,CACnB,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAC/D,IAAI,CAAC,IAAI,CACV,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAY;QAChE,MAAM,GAAG,GAAG,SAAS,CACnB,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAC/D,IAAI,CAAC,IAAI,CACV,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,EAAE,GAAG,GAAG,EAAE,KAAa;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,EAAE,GAAG,GAAG,EAAE,KAAa;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,OAAO,GAAe,EAAE;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;QAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACpD,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QAEtB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,MAAM,WAAW,GAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAEtC,wEAAwE;QACxE,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ;YAC1B,CAAC,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC;YACtF,CAAC,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,EAAU,EAAE,EAAE;YAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;gBAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,EAAU,EAAE,EAAE;YAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;gBAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACpB,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,wBAAwB;QACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,aAAa,GAAG,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5F,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;YACnC,0EAA0E;YAC1E,sEAAsE;YACtE,0EAA0E;YAC1E,0EAA0E;YAC1E,yEAAyE;YACzE,sEAAsE;YACtE,MAAM,KAAK,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;YAC3C,MAAM,EAAE,GAAG,KAAK,KAAK,MAAM;gBACzB,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,KAAK,KAAK,OAAO;oBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;oBACzB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE;gBAC5C,EAAE,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK;gBAC7C,EAAE;aACH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACnC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,mEAAmE;IACnE,OAAO;QACL,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,MAAmB,EAAE,KAAY,EAAE,IAAW;IAC1E,OAAO,IAAI,OAAO,CAChB,MAAM,EACN,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAClE,KAAK,CACN,CAAC;AACJ,CAAC;AAGD,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
package/dist/terminal.d.ts
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
import { type Capabilities, type CapabilityOverrides } from "./capabilities.ts";
|
|
2
2
|
import { type InputEvent } from "./input.ts";
|
|
3
|
+
/**
|
|
4
|
+
* How much of the terminal the app owns.
|
|
5
|
+
*
|
|
6
|
+
* `fullscreen` is what hqtui has always done: the alternate screen, the whole
|
|
7
|
+
* grid, and the user's shell handed back untouched at the end.
|
|
8
|
+
*
|
|
9
|
+
* `inline` draws a bounded strip in the normal flow of the command line, the
|
|
10
|
+
* shape every installer and build tool uses -- a few live rows pinned below
|
|
11
|
+
* output that scrolls away above them, and a readable transcript left behind
|
|
12
|
+
* when the process exits. It has no absolute coordinates it can trust, because
|
|
13
|
+
* it does not know which screen row it started on and the terminal can scroll
|
|
14
|
+
* it up at any moment; it navigates from a saved cursor instead.
|
|
15
|
+
*
|
|
16
|
+
* `fixed` claims a rectangle of a terminal something else is driving.
|
|
17
|
+
*/
|
|
18
|
+
export type Viewport = {
|
|
19
|
+
mode: "fullscreen";
|
|
20
|
+
} | {
|
|
21
|
+
mode: "inline";
|
|
22
|
+
height: number;
|
|
23
|
+
} | {
|
|
24
|
+
mode: "fixed";
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
};
|
|
30
|
+
export interface Rect {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
}
|
|
3
36
|
export interface TerminalOptions {
|
|
4
37
|
input?: NodeJS.ReadStream;
|
|
5
38
|
output?: NodeJS.WriteStream;
|
|
@@ -15,6 +48,8 @@ export interface TerminalOptions {
|
|
|
15
48
|
installExitHandlers?: boolean;
|
|
16
49
|
/** How long to wait before a lone ESC counts as the Escape key. Default 30ms. */
|
|
17
50
|
escapeTimeout?: number;
|
|
51
|
+
/** How much of the terminal to draw into. Default the whole of it. */
|
|
52
|
+
viewport?: Viewport;
|
|
18
53
|
}
|
|
19
54
|
export interface TerminalSize {
|
|
20
55
|
columns: number;
|
|
@@ -40,16 +75,62 @@ export declare class Terminal {
|
|
|
40
75
|
private cleanupHandlers;
|
|
41
76
|
private teardownListeners;
|
|
42
77
|
private escapeTimer;
|
|
78
|
+
private viewportMode;
|
|
79
|
+
/**
|
|
80
|
+
* Rows an inline viewport has reserved below the anchor. Kept because a
|
|
81
|
+
* resize can shrink the terminal under it, and because `restore` has to know
|
|
82
|
+
* how far down to move before handing the shell back.
|
|
83
|
+
*/
|
|
84
|
+
private reserved;
|
|
43
85
|
private onData;
|
|
44
86
|
private dispatch;
|
|
45
87
|
private onResize;
|
|
46
88
|
constructor(options?: TerminalOptions);
|
|
47
89
|
size(): TerminalSize;
|
|
90
|
+
/** How much of the terminal the app owns. */
|
|
91
|
+
get viewport(): Viewport;
|
|
92
|
+
/**
|
|
93
|
+
* The region to draw into, in screen cells.
|
|
94
|
+
*
|
|
95
|
+
* For an inline viewport the `y` is a fiction -- it is always 0, because the
|
|
96
|
+
* strip is addressed from its own saved cursor rather than from the top of
|
|
97
|
+
* the screen -- but the width and height are real, and they are what the
|
|
98
|
+
* framebuffer is sized from.
|
|
99
|
+
*/
|
|
100
|
+
viewportRect(): Rect;
|
|
48
101
|
write(data: string): void;
|
|
49
102
|
/** Enter full-screen mode. Idempotent. */
|
|
50
103
|
enter(): void;
|
|
51
104
|
/** Put the terminal back exactly as it was found. Safe to call twice. */
|
|
52
105
|
restore(): void;
|
|
106
|
+
/**
|
|
107
|
+
* Make room for an inline viewport and remember where it starts.
|
|
108
|
+
*
|
|
109
|
+
* There is no way to ask where the cursor is without a round trip the caller
|
|
110
|
+
* would have to await, and no way to trust the answer afterwards -- any
|
|
111
|
+
* output scrolls the screen and moves the strip without a word. So the
|
|
112
|
+
* anchor is never a number: it is a saved cursor position, re-saved whenever
|
|
113
|
+
* the strip moves.
|
|
114
|
+
*
|
|
115
|
+
* Printing the newlines first is what reserves the space. If the cursor was
|
|
116
|
+
* near the bottom the terminal scrolls, which is exactly what should happen;
|
|
117
|
+
* walking back up then lands on the strip's first row wherever it ended up.
|
|
118
|
+
*/
|
|
119
|
+
private reserveInline;
|
|
120
|
+
/**
|
|
121
|
+
* Write lines above an inline viewport, permanently.
|
|
122
|
+
*
|
|
123
|
+
* This is the half of inline mode that makes it worth having: finished work
|
|
124
|
+
* scrolls away into the user's scrollback while the live rows stay put. The
|
|
125
|
+
* lines are printed where the strip currently begins and the strip is
|
|
126
|
+
* re-anchored below them, so if that runs off the bottom the terminal scrolls
|
|
127
|
+
* and the oldest lines leave through the top -- into scrollback, which is
|
|
128
|
+
* where they were always going.
|
|
129
|
+
*
|
|
130
|
+
* The caller repaints the viewport afterwards: everything below the anchor is
|
|
131
|
+
* now whatever the terminal happened to shift there.
|
|
132
|
+
*/
|
|
133
|
+
insertBefore(lines: string[]): void;
|
|
53
134
|
onInput(listener: Listener<InputEvent>): () => void;
|
|
54
135
|
onResizeEvent(listener: Listener<TerminalSize>): () => void;
|
|
55
136
|
/**
|
package/dist/terminal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAsB,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,gFAAgF;IAChF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
|
package/dist/terminal.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ansi, setTitle } from "./ansi.js";
|
|
1
|
+
import { ansi, moveTo, moveUp, setTitle } from "./ansi.js";
|
|
2
2
|
import { detectCapabilities } from "./capabilities.js";
|
|
3
3
|
import { InputParser } from "./input.js";
|
|
4
4
|
/**
|
|
@@ -20,6 +20,13 @@ export class Terminal {
|
|
|
20
20
|
cleanupHandlers = [];
|
|
21
21
|
teardownListeners = new Set();
|
|
22
22
|
escapeTimer = null;
|
|
23
|
+
viewportMode = { mode: "fullscreen" };
|
|
24
|
+
/**
|
|
25
|
+
* Rows an inline viewport has reserved below the anchor. Kept because a
|
|
26
|
+
* resize can shrink the terminal under it, and because `restore` has to know
|
|
27
|
+
* how far down to move before handing the shell back.
|
|
28
|
+
*/
|
|
29
|
+
reserved = 0;
|
|
23
30
|
onData = (chunk) => {
|
|
24
31
|
const text = typeof chunk === "string" ? chunk : chunk.toString("utf8");
|
|
25
32
|
this.dispatch(this.parser.parse(text));
|
|
@@ -51,8 +58,12 @@ export class Terminal {
|
|
|
51
58
|
this.output = options.output ?? process.stdout;
|
|
52
59
|
this.capabilities = detectCapabilities(options.capabilities ?? {}, process.env, this.output);
|
|
53
60
|
this.escapeTimeout = options.escapeTimeout ?? 30;
|
|
61
|
+
this.viewportMode = options.viewport ?? { mode: "fullscreen" };
|
|
62
|
+
// Only a fullscreen app may take the alternate screen. The whole point of
|
|
63
|
+
// the other two is to leave what is already on the terminal alone.
|
|
64
|
+
const fullscreen = this.viewportMode.mode === "fullscreen";
|
|
54
65
|
this.options = {
|
|
55
|
-
alternateScreen: options.alternateScreen ?? true,
|
|
66
|
+
alternateScreen: fullscreen ? options.alternateScreen ?? true : false,
|
|
56
67
|
mouse: options.mouse ?? this.capabilities.mouse,
|
|
57
68
|
hideCursor: options.hideCursor ?? true,
|
|
58
69
|
bracketedPaste: options.bracketedPaste ?? this.capabilities.bracketedPaste,
|
|
@@ -74,6 +85,38 @@ export class Terminal {
|
|
|
74
85
|
rows: usable(this.output.rows) ?? usable(process.env.LINES) ?? 24,
|
|
75
86
|
};
|
|
76
87
|
}
|
|
88
|
+
/** How much of the terminal the app owns. */
|
|
89
|
+
get viewport() {
|
|
90
|
+
return this.viewportMode;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The region to draw into, in screen cells.
|
|
94
|
+
*
|
|
95
|
+
* For an inline viewport the `y` is a fiction -- it is always 0, because the
|
|
96
|
+
* strip is addressed from its own saved cursor rather than from the top of
|
|
97
|
+
* the screen -- but the width and height are real, and they are what the
|
|
98
|
+
* framebuffer is sized from.
|
|
99
|
+
*/
|
|
100
|
+
viewportRect() {
|
|
101
|
+
const { columns, rows } = this.size();
|
|
102
|
+
const v = this.viewportMode;
|
|
103
|
+
if (v.mode === "inline") {
|
|
104
|
+
// A viewport taller than the terminal would scroll itself off the top
|
|
105
|
+
// every frame, so it gives up the rows it cannot have.
|
|
106
|
+
return { x: 0, y: 0, width: columns, height: Math.max(1, Math.min(v.height, rows)) };
|
|
107
|
+
}
|
|
108
|
+
if (v.mode === "fixed") {
|
|
109
|
+
const x = Math.max(0, Math.min(v.x, Math.max(0, columns - 1)));
|
|
110
|
+
const y = Math.max(0, Math.min(v.y, Math.max(0, rows - 1)));
|
|
111
|
+
return {
|
|
112
|
+
x,
|
|
113
|
+
y,
|
|
114
|
+
width: Math.max(0, Math.min(v.width, columns - x)),
|
|
115
|
+
height: Math.max(0, Math.min(v.height, rows - y)),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return { x: 0, y: 0, width: columns, height: rows };
|
|
119
|
+
}
|
|
77
120
|
write(data) {
|
|
78
121
|
if (data.length === 0)
|
|
79
122
|
return;
|
|
@@ -97,8 +140,14 @@ export class Terminal {
|
|
|
97
140
|
setup += ansi.focusOn;
|
|
98
141
|
if (this.options.title)
|
|
99
142
|
setup += setTitle(this.options.title);
|
|
100
|
-
|
|
143
|
+
// Only a fullscreen app owns the grid, so only a fullscreen app may wipe
|
|
144
|
+
// it. An inline strip or a fixed region is a guest on somebody else's
|
|
145
|
+
// screen and has no business clearing it.
|
|
146
|
+
if (this.viewportMode.mode === "fullscreen")
|
|
147
|
+
setup += ansi.clearScreen + ansi.cursorHome;
|
|
101
148
|
this.write(setup);
|
|
149
|
+
if (this.viewportMode.mode === "inline")
|
|
150
|
+
this.reserveInline();
|
|
102
151
|
if (this.input.isTTY && typeof this.input.setRawMode === "function") {
|
|
103
152
|
this.input.setRawMode(true);
|
|
104
153
|
this.rawWasSet = true;
|
|
@@ -126,6 +175,12 @@ export class Terminal {
|
|
|
126
175
|
}
|
|
127
176
|
this.input.pause?.();
|
|
128
177
|
let teardown = ansi.reset;
|
|
178
|
+
// An inline app leaves its last frame behind as part of the transcript, so
|
|
179
|
+
// the cursor has to come out below it rather than on top of it.
|
|
180
|
+
if (this.viewportMode.mode === "inline" && this.reserved > 0) {
|
|
181
|
+
teardown = toAnchor() + "\r" + "\n".repeat(this.reserved) + teardown;
|
|
182
|
+
this.reserved = 0;
|
|
183
|
+
}
|
|
129
184
|
if (this.options.focusEvents)
|
|
130
185
|
teardown += ansi.focusOff;
|
|
131
186
|
if (this.options.bracketedPaste)
|
|
@@ -134,12 +189,62 @@ export class Terminal {
|
|
|
134
189
|
teardown += ansi.mouseOff;
|
|
135
190
|
if (this.options.hideCursor)
|
|
136
191
|
teardown += ansi.cursorShow;
|
|
137
|
-
teardown += this.options.alternateScreen
|
|
192
|
+
teardown += this.options.alternateScreen
|
|
193
|
+
? ansi.alternateScreenOff
|
|
194
|
+
: this.viewportMode.mode === "inline" ? "" : `\n`;
|
|
138
195
|
this.write(teardown);
|
|
139
196
|
for (const off of this.cleanupHandlers)
|
|
140
197
|
off();
|
|
141
198
|
this.cleanupHandlers = [];
|
|
142
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Make room for an inline viewport and remember where it starts.
|
|
202
|
+
*
|
|
203
|
+
* There is no way to ask where the cursor is without a round trip the caller
|
|
204
|
+
* would have to await, and no way to trust the answer afterwards -- any
|
|
205
|
+
* output scrolls the screen and moves the strip without a word. So the
|
|
206
|
+
* anchor is never a number: it is a saved cursor position, re-saved whenever
|
|
207
|
+
* the strip moves.
|
|
208
|
+
*
|
|
209
|
+
* Printing the newlines first is what reserves the space. If the cursor was
|
|
210
|
+
* near the bottom the terminal scrolls, which is exactly what should happen;
|
|
211
|
+
* walking back up then lands on the strip's first row wherever it ended up.
|
|
212
|
+
*/
|
|
213
|
+
reserveInline() {
|
|
214
|
+
const height = this.viewportRect().height;
|
|
215
|
+
this.reserved = height;
|
|
216
|
+
this.write("\r" + "\n".repeat(Math.max(0, height - 1)) + moveUp(height - 1) + "\r");
|
|
217
|
+
this.write(anchor());
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Write lines above an inline viewport, permanently.
|
|
221
|
+
*
|
|
222
|
+
* This is the half of inline mode that makes it worth having: finished work
|
|
223
|
+
* scrolls away into the user's scrollback while the live rows stay put. The
|
|
224
|
+
* lines are printed where the strip currently begins and the strip is
|
|
225
|
+
* re-anchored below them, so if that runs off the bottom the terminal scrolls
|
|
226
|
+
* and the oldest lines leave through the top -- into scrollback, which is
|
|
227
|
+
* where they were always going.
|
|
228
|
+
*
|
|
229
|
+
* The caller repaints the viewport afterwards: everything below the anchor is
|
|
230
|
+
* now whatever the terminal happened to shift there.
|
|
231
|
+
*/
|
|
232
|
+
insertBefore(lines) {
|
|
233
|
+
if (this.viewportMode.mode !== "inline" || lines.length === 0)
|
|
234
|
+
return;
|
|
235
|
+
const height = this.reserved;
|
|
236
|
+
let out = toAnchor() + "\r";
|
|
237
|
+
for (const line of lines)
|
|
238
|
+
out += ansi.clearLine + line + ansi.reset + "\r\n";
|
|
239
|
+
// Re-reserve from the new anchor, then walk back to it. Writing the rows
|
|
240
|
+
// is what forces the terminal to scroll if the strip no longer fits, and
|
|
241
|
+
// walking back afterwards finds it wherever the scroll left it.
|
|
242
|
+
out += ansi.clearLine;
|
|
243
|
+
for (let i = 1; i < height; i++)
|
|
244
|
+
out += "\r\n" + ansi.clearLine;
|
|
245
|
+
out += moveUp(height - 1) + "\r" + anchor();
|
|
246
|
+
this.write(out);
|
|
247
|
+
}
|
|
143
248
|
onInput(listener) {
|
|
144
249
|
this.inputListeners.add(listener);
|
|
145
250
|
return () => this.inputListeners.delete(listener);
|
|
@@ -205,6 +310,28 @@ export class Terminal {
|
|
|
205
310
|
});
|
|
206
311
|
}
|
|
207
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* Save the anchor an inline viewport measures from.
|
|
315
|
+
*
|
|
316
|
+
* The pen is reset first so that the saved graphic rendition is always the
|
|
317
|
+
* default one. DECRC restores attributes along with the position, so without
|
|
318
|
+
* that the colour in force at some arbitrary moment would come back with every
|
|
319
|
+
* jump and quietly desynchronise the renderer's model of the terminal.
|
|
320
|
+
*/
|
|
321
|
+
function anchor() {
|
|
322
|
+
return ansi.reset + ansi.cursorSave;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Go back to the anchor, and immediately save it again.
|
|
326
|
+
*
|
|
327
|
+
* DECRC is a pop rather than a peek in some terminals: restore twice against
|
|
328
|
+
* one save and the second sends the cursor home, which is the top of the
|
|
329
|
+
* user's screen and not remotely where the viewport is. Re-arming after every
|
|
330
|
+
* restore makes the sequence mean the same thing on both kinds.
|
|
331
|
+
*/
|
|
332
|
+
function toAnchor() {
|
|
333
|
+
return ansi.cursorRestore + anchor();
|
|
334
|
+
}
|
|
208
335
|
export function createTerminal(options = {}) {
|
|
209
336
|
return new Terminal(options);
|
|
210
337
|
}
|
package/dist/terminal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type { Surface, BorderStyle, Align } from "./surface.ts";
|
|
1
|
+
import type { Surface, BorderStyle, Align, Sides } from "./surface.ts";
|
|
2
2
|
import type { Color } from "./color.ts";
|
|
3
3
|
import type { Theme } from "./theme.ts";
|
|
4
4
|
import type { Capabilities } from "./capabilities.ts";
|
|
5
|
-
import { type Rect, type Padding, type Size } from "./layout.ts";
|
|
5
|
+
import { type Justify, type Rect, type Padding, type Size } from "./layout.ts";
|
|
6
|
+
import { type RichText } from "./richtext.ts";
|
|
6
7
|
import { BrailleCanvas } from "./graphics/braille.ts";
|
|
8
|
+
import { type CanvasOptions } from "./graphics/canvas.ts";
|
|
9
|
+
import type { CountryOutline } from "./graphics/world.ts";
|
|
7
10
|
import * as W from "./widgets/index.ts";
|
|
8
11
|
export interface HitRegion {
|
|
9
12
|
rect: Rect;
|
|
@@ -48,6 +51,12 @@ export interface ScrollHandlers {
|
|
|
48
51
|
}
|
|
49
52
|
export interface ContainerOptions {
|
|
50
53
|
gap?: number;
|
|
54
|
+
/**
|
|
55
|
+
* Where space left over by the children goes. Defaults to "start", which is
|
|
56
|
+
* what every layout did before this existed, and is inert unless the
|
|
57
|
+
* children actually leave slack.
|
|
58
|
+
*/
|
|
59
|
+
justify?: Justify;
|
|
51
60
|
padding?: Padding;
|
|
52
61
|
/** Size along the parent's main axis. */
|
|
53
62
|
size?: Size;
|
|
@@ -56,6 +65,21 @@ export interface ContainerOptions {
|
|
|
56
65
|
min?: number;
|
|
57
66
|
max?: number;
|
|
58
67
|
background?: Color;
|
|
68
|
+
/**
|
|
69
|
+
* Treat this container's own edges as panel borders when collapsing.
|
|
70
|
+
*
|
|
71
|
+
* Collapsing merges a seam only where two bordered siblings meet, and a row
|
|
72
|
+
* or column is not itself bordered -- so wrapping a stack of panels in a
|
|
73
|
+
* column, which is the only way to put a stack beside one tall panel, used to
|
|
74
|
+
* make the seam down the middle of the screen the one seam that could never
|
|
75
|
+
* merge. Set this on such a wrapper and its edges join in.
|
|
76
|
+
*
|
|
77
|
+
* It is a declaration rather than something inferred, because the children
|
|
78
|
+
* are built only once the layout has been solved and the seam has to be
|
|
79
|
+
* known before that. True only if every child is a panel filling the
|
|
80
|
+
* container across the seam; otherwise a neighbour's border lands on content.
|
|
81
|
+
*/
|
|
82
|
+
bordered?: boolean;
|
|
59
83
|
}
|
|
60
84
|
export interface PanelOptions extends ContainerOptions {
|
|
61
85
|
title?: string;
|
|
@@ -66,6 +90,12 @@ export interface PanelOptions extends ContainerOptions {
|
|
|
66
90
|
footer?: string;
|
|
67
91
|
border?: BorderStyle;
|
|
68
92
|
borderColor?: Color;
|
|
93
|
+
/**
|
|
94
|
+
* Which edges of the panel to draw. Defaults to all four. Use it for chrome
|
|
95
|
+
* that is not a box: a header rule, a sidebar rail, a footer that should not
|
|
96
|
+
* look boxed in.
|
|
97
|
+
*/
|
|
98
|
+
sides?: Sides;
|
|
69
99
|
/** Draws the focused border color and joins the Tab order. */
|
|
70
100
|
focusable?: boolean;
|
|
71
101
|
focused?: boolean;
|
|
@@ -89,6 +119,7 @@ export declare class Container {
|
|
|
89
119
|
readonly direction: "row" | "column";
|
|
90
120
|
private children;
|
|
91
121
|
private gap;
|
|
122
|
+
private justify;
|
|
92
123
|
private inner;
|
|
93
124
|
constructor(surface: Surface, ctx: RenderContext, direction?: "row" | "column", options?: ContainerOptions);
|
|
94
125
|
get theme(): Theme;
|
|
@@ -140,11 +171,20 @@ export declare class Container {
|
|
|
140
171
|
spacer(size?: Size): this;
|
|
141
172
|
/** A horizontal rule, optionally labelled. */
|
|
142
173
|
divider(options?: W.DividerOptions & ContainerOptions): this;
|
|
143
|
-
|
|
174
|
+
/**
|
|
175
|
+
* A line, a paragraph, or styled spans:
|
|
176
|
+
*
|
|
177
|
+
* ui.text("plain");
|
|
178
|
+
* ui.text([{ text: "ERROR ", fg: theme.danger, bold: true }, { text: reason }]);
|
|
179
|
+
*
|
|
180
|
+
* The intrinsic height is measured the same way for both, so a styled
|
|
181
|
+
* paragraph reserves the rows it will actually occupy once wrapped.
|
|
182
|
+
*/
|
|
183
|
+
text(content: RichText, options?: W.TextOptions & ContainerOptions): this;
|
|
144
184
|
/** Muted secondary text. */
|
|
145
|
-
label(content:
|
|
185
|
+
label(content: RichText, options?: W.TextOptions & ContainerOptions): this;
|
|
146
186
|
/** Bold heading in the theme's title color. */
|
|
147
|
-
heading(content:
|
|
187
|
+
heading(content: RichText, options?: W.TextOptions & ContainerOptions): this;
|
|
148
188
|
badge(options: W.BadgeOptions & ContainerOptions): this;
|
|
149
189
|
/** Aligned label/value pairs. */
|
|
150
190
|
keyValues(rows: W.KeyValueRow[], options?: Omit<W.KeyValueOptions, "rows"> & ContainerOptions): this;
|
|
@@ -154,6 +194,16 @@ export declare class Container {
|
|
|
154
194
|
*/
|
|
155
195
|
table<Row>(options: W.TableOptions<Row> & ContainerOptions & ScrollHandlers): this;
|
|
156
196
|
list(options: W.ListOptions & ContainerOptions & ScrollHandlers): this;
|
|
197
|
+
/**
|
|
198
|
+
* A scrollbar over state you own, for anything that scrolls and is not a
|
|
199
|
+
* table: a wrapped paragraph, a canvas, a `draw()` of your own.
|
|
200
|
+
*
|
|
201
|
+
* The wheel and a click on the track both arrive as `onScroll`, so the same
|
|
202
|
+
* handler that drives the content drives the bar. A click reports the delta
|
|
203
|
+
* that would land the thumb where you clicked, which makes the bar a way to
|
|
204
|
+
* move rather than a picture of where you are.
|
|
205
|
+
*/
|
|
206
|
+
scrollbar(options: W.ScrollbarOptions & ContainerOptions & ScrollHandlers): this;
|
|
157
207
|
tree(options: W.TreeOptions & ContainerOptions & ScrollHandlers): this;
|
|
158
208
|
/** Register the widget's rect so the wheel and clicks reach it. */
|
|
159
209
|
private attachScroll;
|
|
@@ -165,6 +215,31 @@ export declare class Container {
|
|
|
165
215
|
progress(options: W.ProgressOptions & ContainerOptions): this;
|
|
166
216
|
/** Braille line/area graph. Fills the space it is given. */
|
|
167
217
|
graph(options: W.GraphOptions & ContainerOptions): this;
|
|
218
|
+
/**
|
|
219
|
+
* A chart of arbitrary (x, y) data, with a domain on both axes.
|
|
220
|
+
*
|
|
221
|
+
* `graph` plots a history buffer, one sample per column. Use this when the
|
|
222
|
+
* data has its own x values: two series of different lengths then line up,
|
|
223
|
+
* and a point lands where its x says it does.
|
|
224
|
+
*/
|
|
225
|
+
chart(options: W.ChartOptions & ContainerOptions): this;
|
|
226
|
+
/**
|
|
227
|
+
* Reset a region so an overlay can own it.
|
|
228
|
+
*
|
|
229
|
+
* Anything drawn into a region without clearing it first shows whatever was
|
|
230
|
+
* underneath through the cells it does not touch.
|
|
231
|
+
*/
|
|
232
|
+
clear(options?: W.ClearOptions & ContainerOptions): this;
|
|
233
|
+
/** Flood a region with one repeated symbol and style. */
|
|
234
|
+
fill(options?: W.FillOptions & ContainerOptions): this;
|
|
235
|
+
/**
|
|
236
|
+
* A month as a grid, with per-day styling.
|
|
237
|
+
*
|
|
238
|
+
* Sized to the month it shows: a month spans four, five or six week rows
|
|
239
|
+
* depending on where its first day falls, and reserving five leaves some
|
|
240
|
+
* months a row short and others a blank row long.
|
|
241
|
+
*/
|
|
242
|
+
calendar(options: W.CalendarOptions & ContainerOptions): this;
|
|
168
243
|
/** A filled area graph — `graph` with `fill` on. */
|
|
169
244
|
areaGraph(options: W.GraphOptions & ContainerOptions): this;
|
|
170
245
|
/** Several series on one set of axes. */
|
|
@@ -203,6 +278,26 @@ export declare class Container {
|
|
|
203
278
|
tooltip(options: W.TooltipOptions): this;
|
|
204
279
|
/** Draw straight onto the framebuffer region. Nothing is off limits. */
|
|
205
280
|
draw(fn: (surface: Surface) => void, options?: ContainerOptions): this;
|
|
281
|
+
/**
|
|
282
|
+
* A canvas drawn in your own coordinates rather than in pixels.
|
|
283
|
+
*
|
|
284
|
+
* `canvas` hands you the pixel grid and leaves the unit conversion to you,
|
|
285
|
+
* which means a drawing written for one panel size is wrong in the next.
|
|
286
|
+
* This takes bounds and shapes placed inside them, and y goes up.
|
|
287
|
+
*/
|
|
288
|
+
shapes(options: CanvasOptions & ContainerOptions): this;
|
|
289
|
+
/**
|
|
290
|
+
* A world map, and the country under whatever gets clicked.
|
|
291
|
+
*
|
|
292
|
+
* The click is answered by turning the cell back into degrees and testing it
|
|
293
|
+
* against the outlines, so the answer is the country actually under the
|
|
294
|
+
* cursor. Bounding boxes would be cheaper and wrong: Russia's covers most of
|
|
295
|
+
* the northern hemisphere and Chile's covers Argentina.
|
|
296
|
+
*/
|
|
297
|
+
worldMap(options?: W.WorldMapOptions & ContainerOptions & {
|
|
298
|
+
onSelect?: (country: CountryOutline | undefined) => void;
|
|
299
|
+
onHover?: (country: CountryOutline | undefined) => void;
|
|
300
|
+
}): this;
|
|
206
301
|
/** A Braille pixel canvas sized to the region, blitted when you are done. */
|
|
207
302
|
canvas(fn: (canvas: BrailleCanvas, surface: Surface) => void, options?: ContainerOptions & {
|
|
208
303
|
color?: Color;
|
|
@@ -225,6 +320,14 @@ export declare class GridContainer {
|
|
|
225
320
|
get theme(): Theme;
|
|
226
321
|
private track;
|
|
227
322
|
private push;
|
|
323
|
+
/**
|
|
324
|
+
* The gap between tracks, minus one where the whole grid is panels and
|
|
325
|
+
* collapsing is on, so neighbouring borders land in the same column and
|
|
326
|
+
* merge. A grid is one pair of track sizes rather than a list of siblings,
|
|
327
|
+
* so this is all or nothing: a single cell that is not a panel would have a
|
|
328
|
+
* neighbour's border drawn across its content.
|
|
329
|
+
*/
|
|
330
|
+
private seam;
|
|
228
331
|
/** A panel occupying the next free cell (or several, with colSpan/rowSpan). */
|
|
229
332
|
panel(options?: PanelOptions & CellOptions, build?: (panel: Container) => void): this;
|
|
230
333
|
cell(options?: CellOptions & ContainerOptions, build?: (cell: Container) => void): this;
|