@zaly/tui 0.0.10 → 0.0.12
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/assets/schemas/theme.schema.json +351 -36
- package/assets/themes/ayu-dark.json +2 -21
- package/assets/themes/catppuccin-frappe.json +2 -21
- package/assets/themes/catppuccin-latte.json +2 -21
- package/assets/themes/catppuccin-macchiato.json +2 -21
- package/assets/themes/catppuccin-mocha.json +2 -21
- package/assets/themes/dracula-soft.json +2 -21
- package/assets/themes/dracula.json +2 -21
- package/assets/themes/everforest-dark.json +2 -21
- package/assets/themes/everforest-light.json +2 -21
- package/assets/themes/github-dark.json +2 -21
- package/assets/themes/github-light.json +2 -21
- package/assets/themes/gruvbox-dark-medium.json +2 -21
- package/assets/themes/kanagawa-dragon.json +2 -21
- package/assets/themes/kanagawa-wave.json +2 -21
- package/assets/themes/material-theme-palenight.json +2 -21
- package/assets/themes/min-dark.json +2 -18
- package/assets/themes/min-light.json +2 -18
- package/assets/themes/monokai.json +2 -21
- package/assets/themes/night-owl.json +2 -21
- package/assets/themes/nord.json +2 -18
- package/assets/themes/one-dark-pro.json +2 -21
- package/assets/themes/one-light.json +2 -20
- package/assets/themes/poimandres.json +2 -21
- package/assets/themes/rose-pine.json +2 -18
- package/assets/themes/solarized-dark.json +2 -21
- package/assets/themes/solarized-light.json +2 -21
- package/assets/themes/synthwave-84.json +2 -21
- package/assets/themes/tokyonight-day.json +4 -5
- package/assets/themes/tokyonight-moon.json +3 -4
- package/assets/themes/tokyonight-night.json +3 -4
- package/assets/themes/tokyonight-storm.json +3 -4
- package/assets/themes/vesper.json +2 -17
- package/assets/themes/vitesse-dark.json +2 -21
- package/assets/themes/vitesse-light.json +2 -21
- package/dist/{actions-DFboj3g5.d.mts → actions-Dc4D4uSf.d.mts} +4 -4
- package/dist/{actions-DFboj3g5.d.mts.map → actions-Dc4D4uSf.d.mts.map} +1 -1
- package/dist/{ansi-Clq0ozyA.mjs → ansi-DZlXaItJ.mjs} +37 -2
- package/dist/ansi-DZlXaItJ.mjs.map +1 -0
- package/dist/ansi.d.mts +3 -1
- package/dist/ansi.d.mts.map +1 -1
- package/dist/ansi.mjs +1 -1
- package/dist/{autocomplete-CxzetPOo.d.mts → autocomplete-StW1QJZJ.d.mts} +4 -4
- package/dist/{autocomplete-CxzetPOo.d.mts.map → autocomplete-StW1QJZJ.d.mts.map} +1 -1
- package/dist/{box-DLEcEvDH.mjs → box-BkP4MF82.mjs} +2 -2
- package/dist/box-BkP4MF82.mjs.map +1 -0
- package/dist/{builder-DC9byAmK.mjs → builder-1z5ewEWK.mjs} +4 -4
- package/dist/builder-1z5ewEWK.mjs.map +1 -0
- package/dist/{callbacks-D132G8dy.mjs → callbacks-BwWTCqPJ.mjs} +3 -3
- package/dist/{callbacks-D132G8dy.mjs.map → callbacks-BwWTCqPJ.mjs.map} +1 -1
- package/dist/{ctx-8Nuf5BrN.mjs → ctx-B7BmPUCD.mjs} +3 -3
- package/dist/{ctx-8Nuf5BrN.mjs.map → ctx-B7BmPUCD.mjs.map} +1 -1
- package/dist/ctx-D_JgJ8Eo.mjs +1 -0
- package/dist/{divider-l0-JPEIm.mjs → divider-TSx9NhI_.mjs} +2 -2
- package/dist/divider-TSx9NhI_.mjs.map +1 -0
- package/dist/{files-BUsa-RVl.d.mts → files-7DUYSeNc.d.mts} +3 -3
- package/dist/{files-BUsa-RVl.d.mts.map → files-7DUYSeNc.d.mts.map} +1 -1
- package/dist/{github-D89A3F9U.d.mts → github-C1KfXk98.d.mts} +3 -3
- package/dist/{github-D89A3F9U.d.mts.map → github-C1KfXk98.d.mts.map} +1 -1
- package/dist/github-Cy2hfWJ7.mjs.map +1 -1
- package/dist/{image-34bU73bW.d.mts → image-VaT7AN-S.d.mts} +2 -2
- package/dist/{image-34bU73bW.d.mts.map → image-VaT7AN-S.d.mts.map} +1 -1
- package/dist/image.d.mts +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +4 -4
- package/dist/{input-Dylds_sI.d.mts → input-BAYux7qo.d.mts} +3 -3
- package/dist/{input-Dylds_sI.d.mts.map → input-BAYux7qo.d.mts.map} +1 -1
- package/dist/{input-D7fQEUdt.mjs → input-BGTTujDN.mjs} +16 -11
- package/dist/input-BGTTujDN.mjs.map +1 -0
- package/dist/{inspect-DPLRum7L.d.mts → inspect-CfNydMgO.d.mts} +11 -15
- package/dist/inspect-CfNydMgO.d.mts.map +1 -0
- package/dist/{inspect-CcgiZ_F9.mjs → inspect-jG_W4njH.mjs} +2 -2
- package/dist/{inspect-CcgiZ_F9.mjs.map → inspect-jG_W4njH.mjs.map} +1 -1
- package/dist/{log-Dy_QnPZF.mjs → log-ByKlM4iI.mjs} +5 -5
- package/dist/log-ByKlM4iI.mjs.map +1 -0
- package/dist/{logger-DvuX9DPS.mjs → logger-DSQb0sLP.mjs} +3 -3
- package/dist/{logger-DvuX9DPS.mjs.map → logger-DSQb0sLP.mjs.map} +1 -1
- package/dist/{markdown-BGPa7UzD.mjs → markdown-CwRmWuU6.mjs} +5 -5
- package/dist/{markdown-BGPa7UzD.mjs.map → markdown-CwRmWuU6.mjs.map} +1 -1
- package/dist/markdown.d.mts +1 -1
- package/dist/markdown.mjs +1 -1
- package/dist/{overlay-9WXYiGgW.mjs → overlay-BnvOKtGT.mjs} +2 -2
- package/dist/{overlay-9WXYiGgW.mjs.map → overlay-BnvOKtGT.mjs.map} +1 -1
- package/dist/{picker-JL8lZfRH.d.mts → picker-DQs_IW77.d.mts} +5 -5
- package/dist/{picker-JL8lZfRH.d.mts.map → picker-DQs_IW77.d.mts.map} +1 -1
- package/dist/{picker-BqHINl_a.mjs → picker-Dh5IUrTk.mjs} +2 -2
- package/dist/{picker-BqHINl_a.mjs.map → picker-Dh5IUrTk.mjs.map} +1 -1
- package/dist/{queries-Cvalgu6P.d.mts → queries-BDX8mcl5.d.mts} +26 -10
- package/dist/queries-BDX8mcl5.d.mts.map +1 -0
- package/dist/{registry-3hLzS4ks.mjs → registry-D-suU3g0.mjs} +15 -20
- package/dist/registry-D-suU3g0.mjs.map +1 -0
- package/dist/{render-f7M2856V.mjs → render-DEIUNLkh.mjs} +2 -2
- package/dist/{render-f7M2856V.mjs.map → render-DEIUNLkh.mjs.map} +1 -1
- package/dist/renderer-DhqbEVVR.mjs +1 -0
- package/dist/{renderer-DesbRwjQ.mjs → renderer-MQue4Da5.mjs} +2 -2
- package/dist/{renderer-DesbRwjQ.mjs.map → renderer-MQue4Da5.mjs.map} +1 -1
- package/dist/{renderer-V6AGjbyf.mjs → renderer-zDNlAovy.mjs} +66 -15
- package/dist/renderer-zDNlAovy.mjs.map +1 -0
- package/dist/{select-zGd5pbiB.d.mts → select-J2KtwxyK.d.mts} +3 -3
- package/dist/{select-zGd5pbiB.d.mts.map → select-J2KtwxyK.d.mts.map} +1 -1
- package/dist/services/logger.d.mts +1 -1
- package/dist/services/logger.mjs +1 -1
- package/dist/services/notifier.d.mts +1 -1
- package/dist/services/notifier.mjs +2 -2
- package/dist/services/picker.d.mts +5 -5
- package/dist/services/picker.mjs +6 -6
- package/dist/services/prompt.d.mts +4 -4
- package/dist/services/prompt.mjs +5 -5
- package/dist/shiki/server.mjs +1 -1
- package/dist/style.d.mts +2 -2
- package/dist/style.mjs +3 -3
- package/dist/{text-BefiXAFW.d.mts → text-CCYs9RB2.d.mts} +3 -3
- package/dist/{text-BefiXAFW.d.mts.map → text-CCYs9RB2.d.mts.map} +1 -1
- package/dist/{text-CRZD9KTN.mjs → text-CkQ7Irmt.mjs} +2 -2
- package/dist/{text-CRZD9KTN.mjs.map → text-CkQ7Irmt.mjs.map} +1 -1
- package/dist/{text-BLz1tRoC.mjs → text-XvPfweeg.mjs} +2 -2
- package/dist/text-XvPfweeg.mjs.map +1 -0
- package/dist/text.d.mts +1 -1
- package/dist/text.mjs +1 -1
- package/dist/{theme.config-BKXX_noZ.mjs → theme.config-B3Yx--C2.mjs} +12 -20
- package/dist/theme.config-B3Yx--C2.mjs.map +1 -0
- package/dist/themes.d.mts +1 -1
- package/dist/themes.mjs +1 -1
- package/dist/{tree-CArtDRec.d.mts → tree-DJl5W_B7.d.mts} +3 -3
- package/dist/{tree-CArtDRec.d.mts.map → tree-DJl5W_B7.d.mts.map} +1 -1
- package/dist/{types-C0EOLZDc.d.mts → types-D2EYlzmK.d.mts} +10 -18
- package/dist/types-D2EYlzmK.d.mts.map +1 -0
- package/dist/{widget-DtJU2-BJ.d.mts → widget-DPqBbB57.d.mts} +2 -2
- package/dist/{widget-DtJU2-BJ.d.mts.map → widget-DPqBbB57.d.mts.map} +1 -1
- package/dist/widgets/autocomplete.d.mts +1 -1
- package/dist/widgets/autocomplete.mjs +2 -2
- package/dist/widgets/box.d.mts +1 -1
- package/dist/widgets/box.mjs +1 -1
- package/dist/widgets/code.d.mts +2 -2
- package/dist/widgets/code.mjs +4 -4
- package/dist/widgets/completions/actions.d.mts +1 -1
- package/dist/widgets/completions/files.d.mts +1 -1
- package/dist/widgets/completions/github.d.mts +1 -1
- package/dist/widgets/completions/index.d.mts +3 -3
- package/dist/widgets/diff.d.mts +2 -2
- package/dist/widgets/diff.mjs +2 -2
- package/dist/widgets/divider.d.mts +3 -3
- package/dist/widgets/divider.mjs +1 -1
- package/dist/widgets/image.d.mts +1 -1
- package/dist/widgets/image.mjs +1 -1
- package/dist/widgets/input.d.mts +1 -1
- package/dist/widgets/input.mjs +1 -1
- package/dist/widgets/log.d.mts +1 -1
- package/dist/widgets/log.mjs +1 -1
- package/dist/widgets/markdown.d.mts +4 -4
- package/dist/widgets/markdown.mjs +1 -1
- package/dist/widgets/overlay.d.mts +1 -1
- package/dist/widgets/overlay.mjs +1 -1
- package/dist/widgets/picker.d.mts +1 -1
- package/dist/widgets/picker.mjs +1 -1
- package/dist/widgets/progress.d.mts +4 -4
- package/dist/widgets/progress.mjs.map +1 -1
- package/dist/widgets/select.d.mts +1 -1
- package/dist/widgets/show.d.mts +1 -1
- package/dist/widgets/spinner.d.mts +2 -2
- package/dist/widgets/text.d.mts +1 -1
- package/dist/widgets/text.mjs +1 -1
- package/dist/widgets/tree.d.mts +1 -1
- package/dist/widgets/widget.d.mts +1 -1
- package/package.json +2 -2
- package/dist/ansi-Clq0ozyA.mjs.map +0 -1
- package/dist/box-DLEcEvDH.mjs.map +0 -1
- package/dist/builder-DC9byAmK.mjs.map +0 -1
- package/dist/ctx-k0wTqeql.mjs +0 -1
- package/dist/divider-l0-JPEIm.mjs.map +0 -1
- package/dist/input-D7fQEUdt.mjs.map +0 -1
- package/dist/inspect-DPLRum7L.d.mts.map +0 -1
- package/dist/log-Dy_QnPZF.mjs.map +0 -1
- package/dist/queries-Cvalgu6P.d.mts.map +0 -1
- package/dist/registry-3hLzS4ks.mjs.map +0 -1
- package/dist/renderer-BSMOuiLM.mjs +0 -1
- package/dist/renderer-V6AGjbyf.mjs.map +0 -1
- package/dist/text-BLz1tRoC.mjs.map +0 -1
- package/dist/theme.config-BKXX_noZ.mjs.map +0 -1
- package/dist/types-C0EOLZDc.d.mts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer-
|
|
1
|
+
{"version":3,"file":"renderer-MQue4Da5.mjs","names":[],"sources":["../src/markdown/renderer.ts"],"sourcesContent":["import type { RenderCtx } from \"../core/ctx.ts\"\nimport type { Node } from \"../core/node.ts\"\nimport type { Image } from \"../widgets/image.ts\"\nimport type { MdOptions, RenderMarkdown } from \"./types.ts\"\n\nexport type MarkdownOptions = MdOptions & {\n parent?: Node\n}\n\nexport type MarkdownCtx = RenderCtx & {\n images?: boolean\n highlight?: (code: string, lang?: string) => string\n}\n\nexport class MarkdownRenderer {\n #render?: RenderMarkdown\n #images = new Map<string, Image>()\n #parent?: Node\n #opts: MarkdownOptions\n\n constructor(opts: MarkdownOptions = {}) {\n this.#opts = opts\n this.#parent = opts.parent\n }\n\n async render(source: string, ctx: MarkdownCtx): Promise<string> {\n // oxlint-disable-next-line unicorn/no-await-expression-member\n this.#render ??= this.#opts.render ?? (await import(\"#md\")).renderMarkdown\n\n const [{ createCallbacks }, { createImageCallback }] = await Promise.all([\n import(\"./callbacks.ts\"),\n import(\"./image.ts\"),\n ])\n\n const callbacks = createCallbacks(ctx)\n\n // Image handling: the callback emits `<img id=N>` markers during\n // rendering; a post-processing resolver then renders the referenced\n // images concurrently and splices their rows back in. Keeps the\n // markdown callback surface synchronous while supporting async\n // image preparation.\n const image =\n (ctx.images ?? true)\n ? createImageCallback({\n add: (child) => this.#parent?.add(child),\n images: this.#images,\n remove: (child) => this.#parent?.remove(child) ?? child.unmount(),\n })\n : undefined\n\n if (image) callbacks.image = image.cb\n\n let rendered = this.#render(source, callbacks, this.#opts)\n if (image) rendered = await image.resolve(ctx, rendered)\n return this.normalizeEol(source, rendered)\n }\n\n /** Mirror the source's trailing newlines: the renderer adds its own\n /* padding after blocks (`\\n\\n` after paragraphs, etc.) which would\n /* leave stray blank rows. Normalizing to what the caller typed keeps\n /* single-line inputs compact and preserves explicit spacing when\n /* they asked for it. */\n normalizeEol(source: string, rendered: string): string {\n // Collapse multiple blank lines to a maximum of one\n rendered = rendered.replace(/\\n\\n+/g, \"\\n\\n\")\n // Trim leading blank lines\n rendered = rendered.replace(/^\\s*\\n/, \"\")\n const trailing = /\\n*$/.exec(source)?.[0] ?? \"\"\n return rendered.replace(/\\n+$/, trailing)\n }\n}\n"],"mappings":";AAcA,IAAa,mBAAb,MAA8B;CAC5B;CACA,0BAAU,IAAI,IAAmB;CACjC;CACA;CAEA,YAAY,OAAwB,CAAC,GAAG;EACtC,KAAK,QAAQ;EACb,KAAK,UAAU,KAAK;CACtB;CAEA,MAAM,OAAO,QAAgB,KAAmC;EAE9D,KAAK,YAAY,KAAK,MAAM,WAAW,MAAM,OAAO,OAAA,CAAQ;EAE5D,MAAM,CAAC,EAAE,mBAAmB,EAAE,yBAAyB,MAAM,QAAQ,IAAI,CACvE,OAAO,6BACP,OAAO,uBACT,CAAC;EAED,MAAM,YAAY,gBAAgB,GAAG;EAOrC,MAAM,QACH,IAAI,UAAU,OACX,oBAAoB;GAClB,MAAM,UAAU,KAAK,SAAS,IAAI,KAAK;GACvC,QAAQ,KAAK;GACb,SAAS,UAAU,KAAK,SAAS,OAAO,KAAK,KAAK,MAAM,QAAQ;EAClE,CAAC,IACD,KAAA;EAEN,IAAI,OAAO,UAAU,QAAQ,MAAM;EAEnC,IAAI,WAAW,KAAK,QAAQ,QAAQ,WAAW,KAAK,KAAK;EACzD,IAAI,OAAO,WAAW,MAAM,MAAM,QAAQ,KAAK,QAAQ;EACvD,OAAO,KAAK,aAAa,QAAQ,QAAQ;CAC3C;;;;;;CAOA,aAAa,QAAgB,UAA0B;EAErD,WAAW,SAAS,QAAQ,UAAU,MAAM;EAE5C,WAAW,SAAS,QAAQ,UAAU,EAAE;EACxC,MAAM,WAAW,OAAO,KAAK,MAAM,CAAC,GAAG,MAAM;EAC7C,OAAO,SAAS,QAAQ,QAAQ,QAAQ;CAC1C;AACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { C as useActiveOwner, E as withOwner, S as unwrap, _ as peek, d as createSuspenseBoundary, h as memo, l as createRoot, n as SuspenseContext, o as createNode, v as provideContext, x as untrack, y as signal } from "./reactive-f7NpAi69.mjs";
|
|
2
|
-
import { t as defaultTheme } from "./registry-
|
|
3
|
-
import {
|
|
4
|
-
import { t as styleBuilder } from "./builder-
|
|
5
|
-
import { n as box } from "./box-
|
|
6
|
-
import { t as createCtx } from "./ctx-
|
|
7
|
-
import { t as RenderContext } from "./render-
|
|
8
|
-
import { t as TuiReporter } from "./logger-
|
|
1
|
+
import { C as useActiveOwner, E as withOwner, S as unwrap, _ as peek, d as createSuspenseBoundary, f as effect, h as memo, l as createRoot, n as SuspenseContext, o as createNode, v as provideContext, x as untrack, y as signal } from "./reactive-f7NpAi69.mjs";
|
|
2
|
+
import { t as defaultTheme } from "./registry-D-suU3g0.mjs";
|
|
3
|
+
import { c as stripAnsiBg, i as applyDefaultColors, t as RESET } from "./ansi-DZlXaItJ.mjs";
|
|
4
|
+
import { n as openStyle, t as styleBuilder } from "./builder-1z5ewEWK.mjs";
|
|
5
|
+
import { n as box } from "./box-BkP4MF82.mjs";
|
|
6
|
+
import { t as createCtx } from "./ctx-B7BmPUCD.mjs";
|
|
7
|
+
import { t as RenderContext } from "./render-DEIUNLkh.mjs";
|
|
8
|
+
import { t as TuiReporter } from "./logger-DSQb0sLP.mjs";
|
|
9
9
|
import { o as bumpPlacements } from "./kitty-JbCJC0iQ.mjs";
|
|
10
10
|
import { i as canonical, t as TerminalQueries } from "./queries-B_lOwEiE.mjs";
|
|
11
11
|
import { Emitter } from "@zaly/shared";
|
|
@@ -868,6 +868,21 @@ var Frame = class {
|
|
|
868
868
|
terminal;
|
|
869
869
|
#base = [];
|
|
870
870
|
#current = [];
|
|
871
|
+
#colors = {
|
|
872
|
+
bg: "",
|
|
873
|
+
fg: ""
|
|
874
|
+
};
|
|
875
|
+
get defaultStyle() {
|
|
876
|
+
return this.#colors.fg + this.#colors.bg;
|
|
877
|
+
}
|
|
878
|
+
setDefaultStyle(fg, bg) {
|
|
879
|
+
if (this.#colors.fg === fg && this.#colors.bg === bg) return;
|
|
880
|
+
this.#colors = {
|
|
881
|
+
bg,
|
|
882
|
+
fg
|
|
883
|
+
};
|
|
884
|
+
this.#current.fill(void 0);
|
|
885
|
+
}
|
|
871
886
|
constructor(terminal) {
|
|
872
887
|
this.terminal = terminal;
|
|
873
888
|
}
|
|
@@ -878,7 +893,7 @@ var Frame = class {
|
|
|
878
893
|
begin() {
|
|
879
894
|
const rows = this.terminal.rows;
|
|
880
895
|
if (this.#current.length !== rows || this.#base.length !== rows) this.reset(rows);
|
|
881
|
-
return new RenderFrame(this.terminal, this.#current, this.#base);
|
|
896
|
+
return new RenderFrame(this.terminal, this.#current, this.#base, this.#colors);
|
|
882
897
|
}
|
|
883
898
|
slice(row, from, to, width = this.terminal.cols) {
|
|
884
899
|
return sliceLine(this.#current[row - 1] ?? "", from, to, width);
|
|
@@ -888,12 +903,17 @@ var RenderFrame = class {
|
|
|
888
903
|
terminal;
|
|
889
904
|
current;
|
|
890
905
|
base;
|
|
906
|
+
defaults;
|
|
891
907
|
#ops = [];
|
|
892
908
|
#next;
|
|
893
|
-
constructor(terminal, current, base
|
|
909
|
+
constructor(terminal, current, base, defaults = {
|
|
910
|
+
bg: "",
|
|
911
|
+
fg: ""
|
|
912
|
+
}) {
|
|
894
913
|
this.terminal = terminal;
|
|
895
914
|
this.current = current;
|
|
896
915
|
this.base = base;
|
|
916
|
+
this.defaults = defaults;
|
|
897
917
|
this.#next = base.map((row) => row ?? "");
|
|
898
918
|
}
|
|
899
919
|
get(row) {
|
|
@@ -936,12 +956,15 @@ var RenderFrame = class {
|
|
|
936
956
|
for (let i = 0; i < this.#next.length; i++) this.base[i] = this.#next[i];
|
|
937
957
|
}
|
|
938
958
|
flush() {
|
|
959
|
+
const defaults = this.defaults.fg + this.defaults.bg;
|
|
960
|
+
const restore = defaults ? RESET + defaults : "";
|
|
939
961
|
for (let i = 0; i < this.#next.length; i++) {
|
|
940
962
|
const next = this.#next[i];
|
|
941
963
|
if (this.current[i] === next) continue;
|
|
942
964
|
const row = i + 1;
|
|
965
|
+
const content = applyDefaultColors(next.trimEnd(), this.defaults.fg, this.defaults.bg);
|
|
943
966
|
this.queue((terminal) => {
|
|
944
|
-
terminal.write(terminal.moveTo(row, 1) + terminal.clearLine() +
|
|
967
|
+
terminal.write(terminal.moveTo(row, 1) + terminal.clearLine() + content + restore);
|
|
945
968
|
});
|
|
946
969
|
this.current[i] = next;
|
|
947
970
|
}
|
|
@@ -978,8 +1001,18 @@ var RenderFrame = class {
|
|
|
978
1001
|
const ops = this.#ops.length;
|
|
979
1002
|
this.flush();
|
|
980
1003
|
const rows = this.#ops.length - ops;
|
|
981
|
-
|
|
982
|
-
this.#ops.length
|
|
1004
|
+
const defaults = this.defaults.fg + this.defaults.bg;
|
|
1005
|
+
if (this.#ops.length === 0) return {
|
|
1006
|
+
ops,
|
|
1007
|
+
rows
|
|
1008
|
+
};
|
|
1009
|
+
if (defaults) this.terminal.write(RESET + defaults);
|
|
1010
|
+
try {
|
|
1011
|
+
for (const op of this.#ops) op(this.terminal);
|
|
1012
|
+
} finally {
|
|
1013
|
+
if (defaults) this.terminal.write(RESET);
|
|
1014
|
+
this.#ops.length = 0;
|
|
1015
|
+
}
|
|
983
1016
|
return {
|
|
984
1017
|
ops,
|
|
985
1018
|
rows
|
|
@@ -2320,6 +2353,7 @@ var Renderer = class extends Emitter {
|
|
|
2320
2353
|
#decoder = new Decoder();
|
|
2321
2354
|
#stdin;
|
|
2322
2355
|
#theme = signal(void 0);
|
|
2356
|
+
#transparent = signal(false);
|
|
2323
2357
|
/** Root Owner — every surface's function-shape `add` / `append` runs
|
|
2324
2358
|
* its child under this Owner via `withOwner(#rootOwner, …)`, so
|
|
2325
2359
|
* context values provided here (`RenderContext`, future global
|
|
@@ -2360,6 +2394,7 @@ var Renderer = class extends Emitter {
|
|
|
2360
2394
|
});
|
|
2361
2395
|
this.frame = new Frame(this.terminal);
|
|
2362
2396
|
if (opts.theme) this.#theme.set(opts.theme);
|
|
2397
|
+
this.#transparent.set(() => opts.transparent ?? false);
|
|
2363
2398
|
this.ui = new UI(this);
|
|
2364
2399
|
this.stream = new Stream(this, { fixedFooterHeight: opts.fixedFooterHeight });
|
|
2365
2400
|
this.overlay = new OverlaySurface(this);
|
|
@@ -2375,6 +2410,13 @@ var Renderer = class extends Emitter {
|
|
|
2375
2410
|
style: memo(() => styleBuilder(this.#theme.get())),
|
|
2376
2411
|
theme: this.#theme.get
|
|
2377
2412
|
});
|
|
2413
|
+
effect(() => {
|
|
2414
|
+
const theme = this.theme;
|
|
2415
|
+
const transparent = this.transparent;
|
|
2416
|
+
const previous = this.frame.defaultStyle;
|
|
2417
|
+
this.frame.setDefaultStyle(openStyle({ fg: opts.defaultStyle?.fg }, theme), openStyle({ bg: transparent ? void 0 : opts.defaultStyle?.bg }, theme));
|
|
2418
|
+
if (this.frame.defaultStyle !== previous) untrack(() => this.#schedule());
|
|
2419
|
+
});
|
|
2378
2420
|
return useActiveOwner();
|
|
2379
2421
|
});
|
|
2380
2422
|
const reporter = new TuiReporter(opts.reporter);
|
|
@@ -2397,7 +2439,8 @@ var Renderer = class extends Emitter {
|
|
|
2397
2439
|
this.#ctx = void 0;
|
|
2398
2440
|
this.terminal.sync(() => {
|
|
2399
2441
|
this.terminal.clearScrollRegion();
|
|
2400
|
-
this.
|
|
2442
|
+
const defaults = this.frame.defaultStyle;
|
|
2443
|
+
this.terminal.write(`${defaults ? RESET + defaults : ""}${this.terminal.moveTo(1, 1)}\x1b[2J${defaults ? RESET : ""}`);
|
|
2401
2444
|
if (this.terminal.reserveBottom > 0) this.terminal.setScrollRegion(1, this.terminal.scrollBottom);
|
|
2402
2445
|
});
|
|
2403
2446
|
this.frame.reset();
|
|
@@ -2464,6 +2507,14 @@ var Renderer = class extends Emitter {
|
|
|
2464
2507
|
get theme() {
|
|
2465
2508
|
return this.#theme.get() ?? defaultTheme;
|
|
2466
2509
|
}
|
|
2510
|
+
/** Inherit the terminal background instead of painting the base background. */
|
|
2511
|
+
set transparent(transparent) {
|
|
2512
|
+
this.#transparent.set(transparent);
|
|
2513
|
+
}
|
|
2514
|
+
/** Current transparency setting. (tracked) */
|
|
2515
|
+
get transparent() {
|
|
2516
|
+
return unwrap(this.#transparent.get());
|
|
2517
|
+
}
|
|
2467
2518
|
start() {
|
|
2468
2519
|
if (this.#running) return;
|
|
2469
2520
|
this.#running = true;
|
|
@@ -2642,4 +2693,4 @@ var Renderer = class extends Emitter {
|
|
|
2642
2693
|
//#endregion
|
|
2643
2694
|
export { Renderer };
|
|
2644
2695
|
|
|
2645
|
-
//# sourceMappingURL=renderer-
|
|
2696
|
+
//# sourceMappingURL=renderer-zDNlAovy.mjs.map
|