silvery 0.17.4 → 0.18.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/README.md +7 -13
- package/dist/{UPNG-AVSMjiFE.mjs → UPNG-DvKjM6wE.mjs} +1 -1
- package/dist/{UPNG-AVSMjiFE.mjs.map → UPNG-DvKjM6wE.mjs.map} +1 -1
- package/dist/{__vite-browser-external-2447137e-D3GdsvS_.mjs → __vite-browser-external-2447137e-DPKHHqQK.mjs} +1 -1
- package/dist/{__vite-browser-external-2447137e-D3GdsvS_.mjs.map → __vite-browser-external-2447137e-DPKHHqQK.mjs.map} +1 -1
- package/dist/{animation-C_PTO0uH.mjs → animation-DhINOJk8.mjs} +1 -1
- package/dist/{animation-C_PTO0uH.mjs.map → animation-DhINOJk8.mjs.map} +1 -1
- package/dist/{ansi-CXLE_pt1.mjs → ansi-C6Qs1Wn2.mjs} +1 -1
- package/dist/{ansi-CXLE_pt1.mjs.map → ansi-C6Qs1Wn2.mjs.map} +1 -1
- package/dist/{ansi-zmNzgkPB.d.mts → ansi-CsjnZtAw.d.mts} +1 -1
- package/dist/{ansi-zmNzgkPB.d.mts.map → ansi-CsjnZtAw.d.mts.map} +1 -1
- package/dist/apng-CvSlLBtc.mjs +3 -0
- package/dist/{apng-ENBAJk-H.mjs → apng-DFFVOItr.mjs} +3 -3
- package/dist/{apng-ENBAJk-H.mjs.map → apng-DFFVOItr.mjs.map} +1 -1
- package/dist/{backend-CkIkIHR-.mjs → backend-DU0Y938U.mjs} +1 -1
- package/dist/{backend-CkIkIHR-.mjs.map → backend-DU0Y938U.mjs.map} +1 -1
- package/dist/{backends-CkvbG3js.mjs → backends-BihMKFY_.mjs} +3 -3
- package/dist/{backends-CkvbG3js.mjs.map → backends-BihMKFY_.mjs.map} +1 -1
- package/dist/backends-Dk_5G_gC.mjs +3 -0
- package/dist/cli-GwJ0S2In.mjs +4 -0
- package/dist/{context-QreF3UHr.mjs → context-BjWgrikx.mjs} +1 -1
- package/dist/{context-QreF3UHr.mjs.map → context-BjWgrikx.mjs.map} +1 -1
- package/dist/{derive-D7bFJdfU.d.mts → derive-O_Kb1Bk_.d.mts} +3 -3
- package/dist/derive-O_Kb1Bk_.d.mts.map +1 -0
- package/dist/{devtools-owvUPfBi.mjs → devtools-CeO9X_uv.mjs} +4 -4
- package/dist/{devtools-owvUPfBi.mjs.map → devtools-CeO9X_uv.mjs.map} +1 -1
- package/dist/devtools-nX4tj6OH.mjs +2 -0
- package/dist/{eta-DLiVPaSD.mjs → eta-BnQSZcWf.mjs} +1 -1
- package/dist/{eta-DLiVPaSD.mjs.map → eta-BnQSZcWf.mjs.map} +1 -1
- package/dist/{flexily-zero-adapter-DmG4Ge8t.mjs → flexily-zero-adapter-BOM0cl8R.mjs} +61 -9
- package/dist/flexily-zero-adapter-BOM0cl8R.mjs.map +1 -0
- package/dist/{flexily-zero-adapter-GHwEW11s.mjs → flexily-zero-adapter-V8R3HQtK.mjs} +1 -1
- package/dist/{gif-Bp6fIyN3.mjs → gif-B9Uq4qZA.mjs} +3 -3
- package/dist/{gif-Bp6fIyN3.mjs.map → gif-B9Uq4qZA.mjs.map} +1 -1
- package/dist/gif-BdrLRBmM.mjs +3 -0
- package/dist/{gifenc-GiVCZ9-3.mjs → gifenc-DfhOb4xr.mjs} +1 -1
- package/dist/{gifenc-GiVCZ9-3.mjs.map → gifenc-DfhOb4xr.mjs.map} +1 -1
- package/dist/{image-Dx7gYjkq.mjs → image-B0zMbVUr.mjs} +136 -5
- package/dist/image-B0zMbVUr.mjs.map +1 -0
- package/dist/index-Bh3U1K09.d.mts +10823 -0
- package/dist/index-Bh3U1K09.d.mts.map +1 -0
- package/dist/{index-p-wBs_wH.d.mts → index-C4vrhbud.d.mts} +1 -1
- package/dist/{index-p-wBs_wH.d.mts.map → index-C4vrhbud.d.mts.map} +1 -1
- package/dist/{index-DCVL3jHo.d.mts → index-dehZ18K-.d.mts} +144 -99
- package/dist/index-dehZ18K-.d.mts.map +1 -0
- package/dist/index.d.mts +7 -7219
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +13 -9343
- package/dist/index.mjs.map +1 -1
- package/dist/{key-mapping-BsUHe_nk.mjs → key-mapping-7k2ufK2b.mjs} +1 -1
- package/dist/{key-mapping-DsyfLEdC.mjs → key-mapping-WLUmxjx1.mjs} +1 -1
- package/dist/{key-mapping-DsyfLEdC.mjs.map → key-mapping-WLUmxjx1.mjs.map} +1 -1
- package/dist/{layout-engine-D_lSR4i9.mjs → layout-engine--drvrWjD.mjs} +1 -1
- package/dist/{layout-engine-B3dsnVLU.mjs → layout-engine-Dr3cY5U4.mjs} +3 -3
- package/dist/{layout-engine-B3dsnVLU.mjs.map → layout-engine-Dr3cY5U4.mjs.map} +1 -1
- package/dist/{multi-progress-CQVB9lES.mjs → multi-progress-CcdqJFlf.mjs} +3 -3
- package/dist/{multi-progress-CQVB9lES.mjs.map → multi-progress-CcdqJFlf.mjs.map} +1 -1
- package/dist/{multi-progress-C0-rkn86.d.mts → multi-progress-DQ-uUzLf.d.mts} +2 -2
- package/dist/{multi-progress-C0-rkn86.d.mts.map → multi-progress-DQ-uUzLf.d.mts.map} +1 -1
- package/dist/{node-Dedx-6xF.mjs → node-CP5WChgr.mjs} +1 -1
- package/dist/{node-Dedx-6xF.mjs.map → node-CP5WChgr.mjs.map} +1 -1
- package/dist/{progress-bar-COPSBlT9.mjs → progress-bar-IrUjkLfU.mjs} +4 -4
- package/dist/{progress-bar-COPSBlT9.mjs.map → progress-bar-IrUjkLfU.mjs.map} +1 -1
- package/dist/{reconciler-B-NaZvbO.mjs → reconciler-B8uxQxaU.mjs} +57 -81
- package/dist/reconciler-B8uxQxaU.mjs.map +1 -0
- package/dist/{render-string-CZKpuKXo.mjs → render-string-BwLG7rIX.mjs} +1 -1
- package/dist/{pipeline-BmfaZb1O.mjs → render-string-DVfgc8xr.mjs} +836 -508
- package/dist/render-string-DVfgc8xr.mjs.map +1 -0
- package/dist/{resvg-js-V6oMi8CY.mjs → resvg-js-Cwipz-_J.mjs} +1 -1
- package/dist/{resvg-js-V6oMi8CY.mjs.map → resvg-js-Cwipz-_J.mjs.map} +1 -1
- package/dist/runtime.d.mts +2 -2
- package/dist/runtime.mjs +3 -3
- package/dist/{spinner-Cgej6Vnb.d.mts → spinner-BRkaJI0N.d.mts} +2 -2
- package/dist/{spinner-Cgej6Vnb.d.mts.map → spinner-BRkaJI0N.d.mts.map} +1 -1
- package/dist/{spinner-DSByknyx.mjs → spinner-BmldKx0M.mjs} +3 -3
- package/dist/{spinner-DSByknyx.mjs.map → spinner-BmldKx0M.mjs.map} +1 -1
- package/dist/{src-C9f3hiVG.mjs → src-C0sOQW-t.mjs} +402 -156
- package/dist/src-C0sOQW-t.mjs.map +1 -0
- package/dist/src-CJPXf3fC.mjs +18348 -0
- package/dist/src-CJPXf3fC.mjs.map +1 -0
- package/dist/{src-fJVbhdn-.mjs → src-D8kLrQBT.mjs} +1 -1
- package/dist/{src-fJVbhdn-.mjs.map → src-D8kLrQBT.mjs.map} +1 -1
- package/dist/{src-9B5k0JmY.mjs → src-D_BS-as7.mjs} +1130 -100
- package/dist/src-D_BS-as7.mjs.map +1 -0
- package/dist/theme.d.mts +45 -30
- package/dist/theme.d.mts.map +1 -1
- package/dist/theme.mjs +3 -3
- package/dist/{types-CDgkE-Rw.d.mts → types-B4A8Ebba.d.mts} +1 -1
- package/dist/{types-CDgkE-Rw.d.mts.map → types-B4A8Ebba.d.mts.map} +1 -1
- package/dist/types-e4dpfbSa.mjs +468 -0
- package/dist/types-e4dpfbSa.mjs.map +1 -0
- package/dist/ui/animation.d.mts +1 -1
- package/dist/ui/animation.mjs +1 -1
- package/dist/ui/ansi.d.mts +1 -1
- package/dist/ui/ansi.mjs +1 -1
- package/dist/ui/cli.d.mts +3 -3
- package/dist/ui/cli.mjs +5 -5
- package/dist/ui/display.d.mts +2 -2
- package/dist/ui/display.mjs +1 -1
- package/dist/ui/display.mjs.map +1 -1
- package/dist/ui/image.d.mts +1 -1
- package/dist/ui/image.mjs +1 -1
- package/dist/ui/input.d.mts +3 -3
- package/dist/ui/input.mjs +2 -2
- package/dist/ui/input.mjs.map +1 -1
- package/dist/ui/progress.d.mts +3 -3
- package/dist/ui/progress.mjs +4 -4
- package/dist/ui/progress.mjs.map +1 -1
- package/dist/ui/react.d.mts +3 -3
- package/dist/ui/react.mjs +4 -4
- package/dist/ui/react.mjs.map +1 -1
- package/dist/ui/utils.mjs +1 -1
- package/dist/ui/wrappers.d.mts +2 -2
- package/dist/ui/wrappers.mjs +1 -1
- package/dist/ui.d.mts +5 -5
- package/dist/ui.mjs +6 -6
- package/dist/{useLatest-BMIYXd6e.d.mts → useLatest-6xqnGIU6.d.mts} +1 -1
- package/dist/{useLatest-BMIYXd6e.d.mts.map → useLatest-6xqnGIU6.d.mts.map} +1 -1
- package/dist/{with-text-input-CmHf_9d6.d.mts → with-text-input-lUh9gYAG.d.mts} +3 -3
- package/dist/{with-text-input-CmHf_9d6.d.mts.map → with-text-input-lUh9gYAG.d.mts.map} +1 -1
- package/dist/{wrapper-Dqh0zi2W.mjs → wrapper-CE6GQ27z.mjs} +1 -1
- package/dist/{wrapper-Dqh0zi2W.mjs.map → wrapper-CE6GQ27z.mjs.map} +1 -1
- package/dist/{wrappers-hhL8EQ_n.mjs → wrappers-JrEYTuKA.mjs} +4 -4
- package/dist/wrappers-JrEYTuKA.mjs.map +1 -0
- package/dist/yoga-adapter-B8LZpQcE.mjs +2 -0
- package/dist/{yoga-adapter-BJ9SOhTY.mjs → yoga-adapter-Bc8XT9cN.mjs} +11 -2
- package/dist/yoga-adapter-Bc8XT9cN.mjs.map +1 -0
- package/package.json +19 -14
- package/dist/apng-DCWY913R.mjs +0 -3
- package/dist/backends-CyJqNLeK.mjs +0 -3
- package/dist/cli-B-k7Bm56.mjs +0 -4
- package/dist/derive-D7bFJdfU.d.mts.map +0 -1
- package/dist/devtools-DS9NseGT.mjs +0 -2
- package/dist/flexily-zero-adapter-DmG4Ge8t.mjs.map +0 -1
- package/dist/gif-BaJNREpP.mjs +0 -3
- package/dist/image-Dx7gYjkq.mjs.map +0 -1
- package/dist/index-CBcSpGSM.d.mts +0 -3416
- package/dist/index-CBcSpGSM.d.mts.map +0 -1
- package/dist/index-DCVL3jHo.d.mts.map +0 -1
- package/dist/pipeline-BmfaZb1O.mjs.map +0 -1
- package/dist/reconciler-B-NaZvbO.mjs.map +0 -1
- package/dist/render-string-Bvh1XzBv.mjs +0 -201
- package/dist/render-string-Bvh1XzBv.mjs.map +0 -1
- package/dist/runtime-PH2xY1DM.mjs +0 -8723
- package/dist/runtime-PH2xY1DM.mjs.map +0 -1
- package/dist/src-9B5k0JmY.mjs.map +0 -1
- package/dist/src-C9f3hiVG.mjs.map +0 -1
- package/dist/types-Bhj5QkIQ.mjs +0 -13
- package/dist/types-Bhj5QkIQ.mjs.map +0 -1
- package/dist/useLayout-BG2cGl15.mjs +0 -139
- package/dist/useLayout-BG2cGl15.mjs.map +0 -1
- package/dist/wrappers-hhL8EQ_n.mjs.map +0 -1
- package/dist/yoga-adapter-BJ9SOhTY.mjs.map +0 -1
- package/dist/yoga-adapter-Daq6-dw1.mjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-bar-
|
|
1
|
+
{"version":3,"file":"progress-bar-IrUjkLfU.mjs","names":[],"sources":["../packages/ag-react/src/ui/cli/progress-bar.ts"],"sourcesContent":["/**\n * CLI ProgressBar - Determinate progress indicator with ETA\n */\n\nimport chalk from \"@silvery/ink/chalk\"\nimport type { ProgressBarOptions } from \"../types.js\"\nimport { CURSOR_HIDE, CURSOR_SHOW, CURSOR_TO_START, CLEAR_LINE_END, write, isTTY, getTerminalWidth } from \"./ansi\"\nimport { calculateETA, formatETA, DEFAULT_ETA_BUFFER_SIZE, type ETASample } from \"../utils/eta\"\n\n/** Default format string */\nconst DEFAULT_FORMAT = \":bar :percent | :current/:total | ETA: :eta\"\n\n/**\n * ProgressBar class for CLI progress indication\n *\n * @example\n * ```ts\n * const bar = new ProgressBar({ total: 100 });\n * bar.start();\n * for (let i = 0; i <= 100; i++) {\n * await doWork();\n * bar.update(i);\n * }\n * bar.stop();\n * ```\n */\nexport class ProgressBar {\n private total: number\n private format: string\n private width: number\n private complete: string\n private incomplete: string\n private stream: NodeJS.WriteStream\n private hideCursor: boolean\n private phases: Record<string, string>\n\n private current = 0\n private phase: string | null = null\n private startTime: number | null = null\n private isActive = false\n\n // ETA smoothing - track last N update times\n private etaBuffer: ETASample[] = []\n\n constructor(options: ProgressBarOptions = {}) {\n this.total = options.total ?? 100\n this.format = options.format ?? DEFAULT_FORMAT\n this.width = options.width ?? 40\n this.complete = options.complete ?? \"█\"\n this.incomplete = options.incomplete ?? \"░\"\n this.stream = options.stream ?? process.stdout\n this.hideCursor = options.hideCursor ?? true\n this.phases = options.phases ?? {}\n }\n\n /**\n * Start the progress bar\n */\n start(initialValue = 0, initialTotal?: number): this {\n if (initialTotal !== undefined) {\n this.total = initialTotal\n }\n\n this.current = initialValue\n this.startTime = Date.now()\n this.isActive = true\n this.etaBuffer = [{ time: this.startTime, value: initialValue }]\n\n if (this.hideCursor && isTTY(this.stream)) {\n write(CURSOR_HIDE, this.stream)\n }\n\n this.render()\n return this\n }\n\n /**\n * Update progress value\n */\n update(value: number, tokens?: Record<string, string | number>): this {\n this.current = Math.min(value, this.total)\n\n // Update ETA buffer\n const now = Date.now()\n this.etaBuffer.push({ time: now, value: this.current })\n if (this.etaBuffer.length > DEFAULT_ETA_BUFFER_SIZE) {\n this.etaBuffer.shift()\n }\n\n if (this.isActive) {\n this.render(tokens)\n }\n\n return this\n }\n\n /**\n * Increment progress by amount (default: 1)\n */\n increment(amount = 1, tokens?: Record<string, string | number>): this {\n return this.update(this.current + amount, tokens)\n }\n\n /**\n * Set the current phase (for multi-phase progress)\n */\n setPhase(phaseName: string, options?: { current?: number; total?: number }): this {\n this.phase = phaseName\n\n if (options?.total !== undefined) {\n this.total = options.total\n }\n if (options?.current !== undefined) {\n this.current = options.current\n // Reset ETA buffer on phase change\n this.etaBuffer = [{ time: Date.now(), value: this.current }]\n }\n\n if (this.isActive) {\n this.render()\n }\n\n return this\n }\n\n /**\n * Stop the progress bar\n */\n stop(clear = false): this {\n if (!this.isActive) {\n return this\n }\n\n this.isActive = false\n\n if (clear && isTTY(this.stream)) {\n write(`${CURSOR_TO_START}${CLEAR_LINE_END}`, this.stream)\n } else {\n write(\"\\n\", this.stream)\n }\n\n if (this.hideCursor && isTTY(this.stream)) {\n write(CURSOR_SHOW, this.stream)\n }\n\n return this\n }\n\n /** Get ETA in seconds using smoothed rate */\n private getETASeconds(): number | null {\n return calculateETA(this.etaBuffer, this.current, this.total)\n }\n\n /**\n * Render the progress bar\n */\n private render(tokens?: Record<string, string | number>): void {\n const percent = this.total > 0 ? this.current / this.total : 0\n const eta = this.getETASeconds()\n\n // Build the bar\n const completeLength = Math.round(this.width * percent)\n const incompleteLength = this.width - completeLength\n const bar = this.complete.repeat(completeLength) + this.incomplete.repeat(incompleteLength)\n\n // Get phase display name\n const phaseDisplay = this.phase ? (this.phases[this.phase] ?? this.phase) : \"\"\n\n // Calculate rate\n const elapsed = this.startTime ? (Date.now() - this.startTime) / 1000 : 0\n const rate = elapsed > 0 ? this.current / elapsed : 0\n\n // Replace tokens in format string\n let output = this.format\n .replace(\":bar\", chalk.cyan(bar))\n .replace(\":percent\", `${Math.round(percent * 100)}%`.padStart(4))\n .replace(\":current\", String(this.current))\n .replace(\":total\", String(this.total))\n .replace(\":eta\", formatETA(eta))\n .replace(\":elapsed\", formatETA(elapsed))\n .replace(\":rate\", rate.toFixed(1))\n .replace(\":phase\", chalk.dim(phaseDisplay))\n\n // Replace custom tokens\n if (tokens) {\n for (const [key, value] of Object.entries(tokens)) {\n output = output.replace(`:${key}`, String(value))\n }\n }\n\n // Truncate to terminal width\n const termWidth = getTerminalWidth(this.stream)\n if (output.length > termWidth) {\n output = output.slice(0, termWidth - 1)\n }\n\n if (isTTY(this.stream)) {\n write(`${CURSOR_TO_START}${output}${CLEAR_LINE_END}`, this.stream)\n }\n }\n\n /**\n * Get current progress ratio (0-1)\n */\n get ratio(): number {\n return this.total > 0 ? this.current / this.total : 0\n }\n\n /**\n * Get current progress percentage (0-100)\n */\n get percentage(): number {\n return Math.round(this.ratio * 100)\n }\n\n /**\n * Dispose the progress bar (calls stop)\n */\n [Symbol.dispose](): void {\n this.stop()\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { a as __toCommonJS, i as __require, n as __esmMin, r as __exportAll, t as __commonJSMin } from "./chunk-BSw8zbkd.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { n as
|
|
6
|
-
import { n as
|
|
7
|
-
import { n as
|
|
8
|
-
import { n as
|
|
1
|
+
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-BSw8zbkd.mjs";
|
|
2
|
+
import { a as syncTextContentSignal } from "./types-e4dpfbSa.mjs";
|
|
3
|
+
import { $ as detectTerminalCaps, C as createMixedStyle, J as fgColorCode, Q as detectInput, X as detectColor, Y as defaultCaps, Z as detectCursor, et as detectUnicode, q as bgColorCode, t as init_src$3, w as createStyle } from "./src-D_BS-as7.mjs";
|
|
4
|
+
import { n as keyToAnsi$1, r as parseKey$1, t as init_key_mapping } from "./key-mapping-WLUmxjx1.mjs";
|
|
5
|
+
import { _ as screenshotPng, a as ensureCachedVersion, c as isReady, d as init_terminal, f as createCellView, g as init_png, h as init_views, i as createTerminalByName, l as manifest, m as createRowView, n as backends, o as entry, p as createRegionView, r as buildBackend, s as init_backends, t as backend, u as createTerminal, v as init_svg, y as screenshotSvg } from "./backends-BihMKFY_.mjs";
|
|
6
|
+
import { n as src_exports$3, t as init_src$4 } from "./src-C0sOQW-t.mjs";
|
|
7
|
+
import { n as init_gif, t as createGif } from "./gif-B9Uq4qZA.mjs";
|
|
8
|
+
import { n as init_apng, t as createApng } from "./apng-DFFVOItr.mjs";
|
|
9
|
+
import { n as getConstants, r as getLayoutEngine } from "./layout-engine-Dr3cY5U4.mjs";
|
|
9
10
|
import { createContext } from "react";
|
|
10
11
|
import { createLogger } from "loggily";
|
|
11
12
|
import stringWidth from "string-width";
|
|
@@ -1118,6 +1119,7 @@ var buffer_exports = /* @__PURE__ */ __exportAll({
|
|
|
1118
1119
|
SELECTABLE_FLAG: () => SELECTABLE_FLAG,
|
|
1119
1120
|
TerminalBuffer: () => TerminalBuffer,
|
|
1120
1121
|
VISIBLE_SPACE_ATTR_MASK: () => VISIBLE_SPACE_ATTR_MASK,
|
|
1122
|
+
ansi256ToRgb: () => ansi256ToRgb,
|
|
1121
1123
|
attrsEquals: () => attrsEquals,
|
|
1122
1124
|
attrsToNumber: () => attrsToNumber,
|
|
1123
1125
|
bufferToHTML: () => bufferToHTML,
|
|
@@ -1811,6 +1813,9 @@ function trimTrailingWhitespacePreservingAnsi(str) {
|
|
|
1811
1813
|
* Colors 0-15: standard + bright colors (approximate).
|
|
1812
1814
|
* Colors 16-231: 6×6×6 color cube.
|
|
1813
1815
|
* Colors 232-255: grayscale ramp.
|
|
1816
|
+
*
|
|
1817
|
+
* Exported for the backdrop-fade pipeline pass, which needs to resolve
|
|
1818
|
+
* palette-indexed cells to RGB before blending via `@silvery/color`.
|
|
1814
1819
|
*/
|
|
1815
1820
|
function ansi256ToRgb(idx) {
|
|
1816
1821
|
if (idx < 16) {
|
|
@@ -2071,6 +2076,19 @@ var init_buffer = __esmMin((() => {
|
|
|
2071
2076
|
* This avoids modifying every individual setCell call — zero overhead (single OR per cell).
|
|
2072
2077
|
*/
|
|
2073
2078
|
_selectableMode = false;
|
|
2079
|
+
/**
|
|
2080
|
+
* Snapshots of cells underlying outlines drawn on this buffer.
|
|
2081
|
+
*
|
|
2082
|
+
* The decoration phase (outlines draw OUTSIDE owning nodes into parent
|
|
2083
|
+
* pixel space) uses these to restore pre-outline state before the next
|
|
2084
|
+
* frame's content render. Travels with the buffer via clone() so the
|
|
2085
|
+
* prev-buffer cascade naturally carries them forward.
|
|
2086
|
+
*
|
|
2087
|
+
* Written by `renderDecorationPass`, read/cleared by `clearPreviousOutlines`.
|
|
2088
|
+
* Uses `any[]` here to avoid circular typing — see `decoration-phase.ts`
|
|
2089
|
+
* for the `OutlineCellSnapshot` shape.
|
|
2090
|
+
*/
|
|
2091
|
+
outlineSnapshots = [];
|
|
2074
2092
|
width;
|
|
2075
2093
|
height;
|
|
2076
2094
|
constructor(width, height) {
|
|
@@ -2669,6 +2687,7 @@ var init_buffer = __esmMin((() => {
|
|
|
2669
2687
|
copy._minDirtyRow = -1;
|
|
2670
2688
|
copy._maxDirtyRow = -1;
|
|
2671
2689
|
copy._rowMetadata = this._rowMetadata.map((m) => ({ ...m }));
|
|
2690
|
+
copy.outlineSnapshots = [...this.outlineSnapshots];
|
|
2672
2691
|
return copy;
|
|
2673
2692
|
}
|
|
2674
2693
|
/**
|
|
@@ -3022,7 +3041,7 @@ const displayWidthCache = new DisplayWidthCache(1e4);
|
|
|
3022
3041
|
const DEFAULT_TEXT_SIZING_ENABLED = false;
|
|
3023
3042
|
/**
|
|
3024
3043
|
* Active measurer for the current pipeline execution.
|
|
3025
|
-
* Set by runWithMeasurer() during
|
|
3044
|
+
* Set by runWithMeasurer() during pipeline execution, restored after.
|
|
3026
3045
|
* When null, module-level functions use the lazy default measurer.
|
|
3027
3046
|
*/
|
|
3028
3047
|
let _scopedMeasurer = null;
|
|
@@ -5632,7 +5651,7 @@ async function executeTape(tape, options) {
|
|
|
5632
5651
|
let backendInstance;
|
|
5633
5652
|
const backendOpt = options?.backend ?? "vterm";
|
|
5634
5653
|
if (typeof backendOpt === "string") {
|
|
5635
|
-
const { backend } = await import("./backends-
|
|
5654
|
+
const { backend } = await import("./backends-Dk_5G_gC.mjs");
|
|
5636
5655
|
backendInstance = await backend(backendOpt);
|
|
5637
5656
|
} else backendInstance = backendOpt;
|
|
5638
5657
|
const terminal = createTerminal({
|
|
@@ -5725,7 +5744,7 @@ async function executeCommand(cmd, terminal, ctx) {
|
|
|
5725
5744
|
for (let i = 0; i < count; i++) {
|
|
5726
5745
|
if (terminal.alive) terminal.press(keyName);
|
|
5727
5746
|
else {
|
|
5728
|
-
const { keyToAnsi, parseKey } = await import("./key-mapping-
|
|
5747
|
+
const { keyToAnsi, parseKey } = await import("./key-mapping-7k2ufK2b.mjs");
|
|
5729
5748
|
const ansi = keyToAnsi(parseKey(keyName));
|
|
5730
5749
|
terminal.feed(ansi);
|
|
5731
5750
|
}
|
|
@@ -5737,7 +5756,7 @@ async function executeCommand(cmd, terminal, ctx) {
|
|
|
5737
5756
|
const keyStr = `Ctrl+${cmd.key}`;
|
|
5738
5757
|
if (terminal.alive) terminal.press(keyStr);
|
|
5739
5758
|
else {
|
|
5740
|
-
const { keyToAnsi, parseKey } = await import("./key-mapping-
|
|
5759
|
+
const { keyToAnsi, parseKey } = await import("./key-mapping-7k2ufK2b.mjs");
|
|
5741
5760
|
terminal.feed(keyToAnsi(parseKey(keyStr)));
|
|
5742
5761
|
}
|
|
5743
5762
|
break;
|
|
@@ -5746,7 +5765,7 @@ async function executeCommand(cmd, terminal, ctx) {
|
|
|
5746
5765
|
const keyStr = `Alt+${cmd.key}`;
|
|
5747
5766
|
if (terminal.alive) terminal.press(keyStr);
|
|
5748
5767
|
else {
|
|
5749
|
-
const { keyToAnsi, parseKey } = await import("./key-mapping-
|
|
5768
|
+
const { keyToAnsi, parseKey } = await import("./key-mapping-7k2ufK2b.mjs");
|
|
5750
5769
|
terminal.feed(keyToAnsi(parseKey(keyStr)));
|
|
5751
5770
|
}
|
|
5752
5771
|
break;
|
|
@@ -6145,11 +6164,11 @@ async function renderAnimation(frames, format, options) {
|
|
|
6145
6164
|
switch (format) {
|
|
6146
6165
|
case "svg": return createAnimatedSvg(frames, options);
|
|
6147
6166
|
case "gif": {
|
|
6148
|
-
const { createGif } = await import("./gif-
|
|
6167
|
+
const { createGif } = await import("./gif-BdrLRBmM.mjs");
|
|
6149
6168
|
return createGif(frames, options);
|
|
6150
6169
|
}
|
|
6151
6170
|
case "apng": {
|
|
6152
|
-
const { createApng } = await import("./apng-
|
|
6171
|
+
const { createApng } = await import("./apng-CvSlLBtc.mjs");
|
|
6153
6172
|
return createApng(frames, options);
|
|
6154
6173
|
}
|
|
6155
6174
|
default: throw new Error(`Unsupported animation format: ${format}`);
|
|
@@ -10619,7 +10638,7 @@ function createXtermBackend(opts) {
|
|
|
10619
10638
|
}
|
|
10620
10639
|
function init(options) {
|
|
10621
10640
|
if (term) term.dispose();
|
|
10622
|
-
term = new
|
|
10641
|
+
term = new Terminal({
|
|
10623
10642
|
cols: options.cols,
|
|
10624
10643
|
rows: options.rows,
|
|
10625
10644
|
scrollback: options.scrollbackLimit ?? 1e3,
|
|
@@ -10868,10 +10887,11 @@ function createXtermBackend(opts) {
|
|
|
10868
10887
|
};
|
|
10869
10888
|
return backend;
|
|
10870
10889
|
}
|
|
10871
|
-
var import_xterm_headless, ANSI_16, PALETTE_256, DEFAULT_COLS$1, DEFAULT_ROWS$1;
|
|
10890
|
+
var import_xterm_headless, Terminal, ANSI_16, PALETTE_256, DEFAULT_COLS$1, DEFAULT_ROWS$1;
|
|
10872
10891
|
var init_backend$1 = __esmMin((() => {
|
|
10873
|
-
import_xterm_headless = require_xterm_headless();
|
|
10892
|
+
import_xterm_headless = /* @__PURE__ */ __toESM(require_xterm_headless(), 1);
|
|
10874
10893
|
init_key_encoding();
|
|
10894
|
+
({Terminal} = import_xterm_headless.default);
|
|
10875
10895
|
ANSI_16 = [
|
|
10876
10896
|
{
|
|
10877
10897
|
r: 0,
|
|
@@ -11008,7 +11028,7 @@ var init_ghostty_web = __esmMin((() => {
|
|
|
11008
11028
|
await C.exists() && (B = await C.arrayBuffer());
|
|
11009
11029
|
} catch {}
|
|
11010
11030
|
if (!B) try {
|
|
11011
|
-
const I = await (await import("./__vite-browser-external-2447137e-
|
|
11031
|
+
const I = await (await import("./__vite-browser-external-2447137e-DPKHHqQK.mjs")).readFile(A);
|
|
11012
11032
|
B = I.buffer.slice(I.byteOffset, I.byteOffset + I.byteLength);
|
|
11013
11033
|
} catch {}
|
|
11014
11034
|
if (!B) {
|
|
@@ -13491,9 +13511,9 @@ function styleTransition(oldStyle, newStyle, ctx) {
|
|
|
13491
13511
|
if (Boolean(oa.hidden) !== Boolean(na.hidden)) codes.push(na.hidden ? "8" : "28");
|
|
13492
13512
|
if (Boolean(oa.strikethrough) !== Boolean(na.strikethrough)) codes.push(na.strikethrough ? "9" : "29");
|
|
13493
13513
|
if (Boolean(oa.blink) !== Boolean(na.blink)) codes.push(na.blink ? "5" : "25");
|
|
13494
|
-
if (!colorEquals(oldStyle.fg, newStyle.fg)) if (newStyle.fg === null) codes.push("39");
|
|
13514
|
+
if (!colorEquals(oldStyle.fg, newStyle.fg)) if (newStyle.fg === null || ctx.caps.colorLevel === "none") codes.push("39");
|
|
13495
13515
|
else codes.push(fgColorCode(newStyle.fg));
|
|
13496
|
-
if (!colorEquals(oldStyle.bg, newStyle.bg)) if (newStyle.bg === null) codes.push("49");
|
|
13516
|
+
if (!colorEquals(oldStyle.bg, newStyle.bg)) if (newStyle.bg === null || ctx.caps.colorLevel === "none") codes.push("49");
|
|
13497
13517
|
else codes.push(bgColorCode(newStyle.bg));
|
|
13498
13518
|
if (ctx.caps.underlineColor && !colorEquals(oldStyle.underlineColor, newStyle.underlineColor)) if (newStyle.underlineColor === null || newStyle.underlineColor === void 0) codes.push("59");
|
|
13499
13519
|
else if (typeof newStyle.underlineColor === "number") codes.push(`58;5;${newStyle.underlineColor}`);
|
|
@@ -14241,9 +14261,10 @@ function changesToAnsi(pool, count, ctx = defaultContext, buffer, startLine = 0,
|
|
|
14241
14261
|
function styleToAnsi(style, ctx = defaultContext) {
|
|
14242
14262
|
const fg = style.fg;
|
|
14243
14263
|
const bg = style.bg;
|
|
14264
|
+
const monoTier = ctx.caps.colorLevel === "none";
|
|
14244
14265
|
const codes = [];
|
|
14245
|
-
if (fg !== null) codes.push(fgColorCode(fg));
|
|
14246
|
-
if (bg !== null && !isDefaultBg(bg)) codes.push(bgColorCode(bg));
|
|
14266
|
+
if (fg !== null && !monoTier) codes.push(fgColorCode(fg));
|
|
14267
|
+
if (bg !== null && !isDefaultBg(bg) && !monoTier) codes.push(bgColorCode(bg));
|
|
14247
14268
|
if (style.attrs.bold) codes.push("1");
|
|
14248
14269
|
if (style.attrs.dim) codes.push("2");
|
|
14249
14270
|
if (style.attrs.italic) codes.push("3");
|
|
@@ -15387,11 +15408,6 @@ const measureStats = {
|
|
|
15387
15408
|
//#endregion
|
|
15388
15409
|
//#region packages/ag/src/dirty-tracking.ts
|
|
15389
15410
|
/**
|
|
15390
|
-
* Nodes with layoutDirty=true. Replaces hasLayoutDirtyNodes() tree walk.
|
|
15391
|
-
* Written by reconciler (host-config.ts), read by layoutPhase.
|
|
15392
|
-
*/
|
|
15393
|
-
const layoutDirtyNodes = /* @__PURE__ */ new Set();
|
|
15394
|
-
/**
|
|
15395
15411
|
* Nodes with any content/style dirty flag. Written by reconciler,
|
|
15396
15412
|
* read by render phase for targeted subtree entry.
|
|
15397
15413
|
*/
|
|
@@ -15407,19 +15423,14 @@ const contentDirtyNodes = /* @__PURE__ */ new Set();
|
|
|
15407
15423
|
*/
|
|
15408
15424
|
const styleOnlyDirtyNodes = /* @__PURE__ */ new Set();
|
|
15409
15425
|
/**
|
|
15410
|
-
* Nodes where scrollTo/scrollOffset changed. These don't
|
|
15411
|
-
*
|
|
15412
|
-
*
|
|
15413
|
-
* children positions.
|
|
15426
|
+
* Nodes where scrollTo/scrollOffset changed. These don't affect Flexily layout
|
|
15427
|
+
* dimensions, but the scroll, sticky, scrollRect, and notify phases must still
|
|
15428
|
+
* run to update visible children positions.
|
|
15414
15429
|
*
|
|
15415
15430
|
* Written by reconciler (host-config.ts commitUpdate), read by ag.ts
|
|
15416
15431
|
* layout-on-demand gate.
|
|
15417
15432
|
*/
|
|
15418
15433
|
const scrollDirtyNodes = /* @__PURE__ */ new Set();
|
|
15419
|
-
/** Mark a node as layout-dirty. Called when layoutDirty is set to true. */
|
|
15420
|
-
function trackLayoutDirty(node) {
|
|
15421
|
-
layoutDirtyNodes.add(node);
|
|
15422
|
-
}
|
|
15423
15434
|
/** Mark a node as content-dirty. Called when content/style flags are set. */
|
|
15424
15435
|
function trackContentDirty(node) {
|
|
15425
15436
|
contentDirtyNodes.add(node);
|
|
@@ -15427,8 +15438,8 @@ function trackContentDirty(node) {
|
|
|
15427
15438
|
/**
|
|
15428
15439
|
* Mark a node as style-only dirty. Called when commitUpdate sees
|
|
15429
15440
|
* contentChanged="style" AND layoutChanged=false.
|
|
15430
|
-
* If a node is later marked with contentDirty
|
|
15431
|
-
*
|
|
15441
|
+
* If a node is later marked with contentDirty, the render phase ignores
|
|
15442
|
+
* the style-only flag (full path takes precedence).
|
|
15432
15443
|
*/
|
|
15433
15444
|
function trackStyleOnlyDirty(node) {
|
|
15434
15445
|
styleOnlyDirtyNodes.add(node);
|
|
@@ -15437,25 +15448,16 @@ function trackStyleOnlyDirty(node) {
|
|
|
15437
15448
|
function trackScrollDirty(node) {
|
|
15438
15449
|
scrollDirtyNodes.add(node);
|
|
15439
15450
|
}
|
|
15440
|
-
/** O(1) check: are there any layout-dirty nodes? */
|
|
15441
|
-
function hasLayoutDirty() {
|
|
15442
|
-
return layoutDirtyNodes.size > 0;
|
|
15443
|
-
}
|
|
15444
15451
|
/** O(1) check: are there any scroll-dirty nodes? */
|
|
15445
15452
|
function hasScrollDirty() {
|
|
15446
15453
|
return scrollDirtyNodes.size > 0;
|
|
15447
15454
|
}
|
|
15448
15455
|
/** Clear all dirty tracking. Called after each render pass completes. */
|
|
15449
15456
|
function clearDirtyTracking() {
|
|
15450
|
-
layoutDirtyNodes.clear();
|
|
15451
15457
|
contentDirtyNodes.clear();
|
|
15452
15458
|
styleOnlyDirtyNodes.clear();
|
|
15453
15459
|
scrollDirtyNodes.clear();
|
|
15454
15460
|
}
|
|
15455
|
-
/** Clear only layout-dirty tracking. Called after layout phase. */
|
|
15456
|
-
function clearLayoutDirtyTracking() {
|
|
15457
|
-
layoutDirtyNodes.clear();
|
|
15458
|
-
}
|
|
15459
15461
|
//#endregion
|
|
15460
15462
|
//#region packages/ag-react/src/reconciler/helpers.ts
|
|
15461
15463
|
/**
|
|
@@ -15517,7 +15519,7 @@ const LAYOUT_PROPS = new Set([
|
|
|
15517
15519
|
"overflowY"
|
|
15518
15520
|
]);
|
|
15519
15521
|
/**
|
|
15520
|
-
* Set of content props that affect layout dimensions (trigger contentDirty +
|
|
15522
|
+
* Set of content props that affect layout dimensions (trigger contentDirty + Flexily markDirty()).
|
|
15521
15523
|
* wrap changes text line count; internal_transform changes text width.
|
|
15522
15524
|
*/
|
|
15523
15525
|
const TEXT_CONTENT_PROPS = new Set(["wrap", "internal_transform"]);
|
|
@@ -15638,10 +15640,8 @@ function createNode(type, props, measurer) {
|
|
|
15638
15640
|
prevScrollRect: null,
|
|
15639
15641
|
prevScreenRect: null,
|
|
15640
15642
|
layoutChangedThisFrame: epoch,
|
|
15641
|
-
layoutDirty: true,
|
|
15642
15643
|
dirtyBits: 31,
|
|
15643
|
-
dirtyEpoch: epoch
|
|
15644
|
-
layoutSubscribers: /* @__PURE__ */ new Set()
|
|
15644
|
+
dirtyEpoch: epoch
|
|
15645
15645
|
};
|
|
15646
15646
|
if (type === "silvery-box") applyBoxProps(layoutNode, props);
|
|
15647
15647
|
if (type === "silvery-text") {
|
|
@@ -15747,10 +15747,8 @@ function createVirtualTextNode(props) {
|
|
|
15747
15747
|
prevScrollRect: null,
|
|
15748
15748
|
prevScreenRect: null,
|
|
15749
15749
|
layoutChangedThisFrame: -1,
|
|
15750
|
-
layoutDirty: false,
|
|
15751
15750
|
dirtyBits: 23,
|
|
15752
15751
|
dirtyEpoch: getRenderEpoch(),
|
|
15753
|
-
layoutSubscribers: /* @__PURE__ */ new Set(),
|
|
15754
15752
|
isRawText: false,
|
|
15755
15753
|
inlineRects: null
|
|
15756
15754
|
};
|
|
@@ -15766,6 +15764,8 @@ function applyBoxProps(layoutNode, props, oldProps) {
|
|
|
15766
15764
|
if (typeof props.width === "string" && props.width.endsWith("%")) layoutNode.setWidthPercent(Number.parseFloat(props.width));
|
|
15767
15765
|
else if (typeof props.width === "number") layoutNode.setWidth(props.width);
|
|
15768
15766
|
else if (props.width === "auto") layoutNode.setWidthAuto();
|
|
15767
|
+
else if (props.width === "fit-content") layoutNode.setWidthFitContent();
|
|
15768
|
+
else if (props.width === "snug-content") layoutNode.setWidthSnugContent();
|
|
15769
15769
|
} else if (wasRemoved("width")) layoutNode.setWidthAuto();
|
|
15770
15770
|
if (props.height !== void 0) {
|
|
15771
15771
|
if (typeof props.height === "string" && props.height.endsWith("%")) layoutNode.setHeightPercent(Number.parseFloat(props.height));
|
|
@@ -15994,9 +15994,7 @@ function markLayoutAncestorDirty(node) {
|
|
|
15994
15994
|
ancestor.dirtyBits = 3;
|
|
15995
15995
|
ancestor.dirtyEpoch = epoch;
|
|
15996
15996
|
} else ancestor.dirtyBits |= 3;
|
|
15997
|
-
ancestor.layoutDirty = true;
|
|
15998
15997
|
ancestor.layoutNode.markDirty();
|
|
15999
|
-
trackLayoutDirty(ancestor);
|
|
16000
15998
|
trackContentDirty(ancestor);
|
|
16001
15999
|
}
|
|
16002
16000
|
}
|
|
@@ -16076,10 +16074,8 @@ const hostConfig = {
|
|
|
16076
16074
|
prevScrollRect: null,
|
|
16077
16075
|
prevScreenRect: null,
|
|
16078
16076
|
layoutChangedThisFrame: -1,
|
|
16079
|
-
layoutDirty: false,
|
|
16080
16077
|
dirtyBits: 23,
|
|
16081
16078
|
dirtyEpoch: epoch,
|
|
16082
|
-
layoutSubscribers: /* @__PURE__ */ new Set(),
|
|
16083
16079
|
textContent: text,
|
|
16084
16080
|
isRawText: true
|
|
16085
16081
|
};
|
|
@@ -16102,9 +16098,7 @@ const hostConfig = {
|
|
|
16102
16098
|
parentInstance.dirtyBits = parentInstance.dirtyEpoch !== epoch ? bits : parentInstance.dirtyBits | bits;
|
|
16103
16099
|
parentInstance.dirtyEpoch = epoch;
|
|
16104
16100
|
}
|
|
16105
|
-
parentInstance.layoutDirty = true;
|
|
16106
16101
|
parentInstance.layoutNode?.markDirty();
|
|
16107
|
-
trackLayoutDirty(parentInstance);
|
|
16108
16102
|
trackContentDirty(parentInstance);
|
|
16109
16103
|
markLayoutAncestorDirty(parentInstance);
|
|
16110
16104
|
markSubtreeDirty(parentInstance);
|
|
@@ -16135,9 +16129,7 @@ const hostConfig = {
|
|
|
16135
16129
|
container.root.dirtyBits = container.root.dirtyEpoch !== epoch ? bits : container.root.dirtyBits | bits;
|
|
16136
16130
|
container.root.dirtyEpoch = epoch;
|
|
16137
16131
|
}
|
|
16138
|
-
container.root.layoutDirty = true;
|
|
16139
16132
|
container.root.layoutNode?.markDirty();
|
|
16140
|
-
trackLayoutDirty(container.root);
|
|
16141
16133
|
trackContentDirty(container.root);
|
|
16142
16134
|
markSubtreeDirty(container.root);
|
|
16143
16135
|
},
|
|
@@ -16157,9 +16149,7 @@ const hostConfig = {
|
|
|
16157
16149
|
parentInstance.dirtyBits = parentInstance.dirtyEpoch !== epoch ? bits : parentInstance.dirtyBits | bits;
|
|
16158
16150
|
parentInstance.dirtyEpoch = epoch;
|
|
16159
16151
|
}
|
|
16160
|
-
parentInstance.layoutDirty = true;
|
|
16161
16152
|
parentInstance.layoutNode?.markDirty();
|
|
16162
|
-
trackLayoutDirty(parentInstance);
|
|
16163
16153
|
trackContentDirty(parentInstance);
|
|
16164
16154
|
markLayoutAncestorDirty(parentInstance);
|
|
16165
16155
|
markSubtreeDirty(parentInstance);
|
|
@@ -16181,9 +16171,7 @@ const hostConfig = {
|
|
|
16181
16171
|
container.root.dirtyBits = container.root.dirtyEpoch !== epoch ? bits : container.root.dirtyBits | bits;
|
|
16182
16172
|
container.root.dirtyEpoch = epoch;
|
|
16183
16173
|
}
|
|
16184
|
-
container.root.layoutDirty = true;
|
|
16185
16174
|
container.root.layoutNode?.markDirty();
|
|
16186
|
-
trackLayoutDirty(container.root);
|
|
16187
16175
|
trackContentDirty(container.root);
|
|
16188
16176
|
markSubtreeDirty(container.root);
|
|
16189
16177
|
}
|
|
@@ -16208,9 +16196,7 @@ const hostConfig = {
|
|
|
16208
16196
|
parentInstance.dirtyBits = parentInstance.dirtyEpoch !== epoch ? bits : parentInstance.dirtyBits | bits;
|
|
16209
16197
|
parentInstance.dirtyEpoch = epoch;
|
|
16210
16198
|
}
|
|
16211
|
-
parentInstance.layoutDirty = true;
|
|
16212
16199
|
parentInstance.layoutNode?.markDirty();
|
|
16213
|
-
trackLayoutDirty(parentInstance);
|
|
16214
16200
|
trackContentDirty(parentInstance);
|
|
16215
16201
|
markLayoutAncestorDirty(parentInstance);
|
|
16216
16202
|
markSubtreeDirty(parentInstance);
|
|
@@ -16236,9 +16222,7 @@ const hostConfig = {
|
|
|
16236
16222
|
container.root.dirtyBits = container.root.dirtyEpoch !== epoch ? bits : container.root.dirtyBits | bits;
|
|
16237
16223
|
container.root.dirtyEpoch = epoch;
|
|
16238
16224
|
}
|
|
16239
|
-
container.root.layoutDirty = true;
|
|
16240
16225
|
container.root.layoutNode?.markDirty();
|
|
16241
|
-
trackLayoutDirty(container.root);
|
|
16242
16226
|
trackContentDirty(container.root);
|
|
16243
16227
|
markSubtreeDirty(container.root);
|
|
16244
16228
|
}
|
|
@@ -16265,8 +16249,6 @@ const hostConfig = {
|
|
|
16265
16249
|
applyBoxProps(instance.layoutNode, newProps, oldProps);
|
|
16266
16250
|
instance.layoutNode.markDirty();
|
|
16267
16251
|
}
|
|
16268
|
-
instance.layoutDirty = true;
|
|
16269
|
-
trackLayoutDirty(instance);
|
|
16270
16252
|
}
|
|
16271
16253
|
if (contentChanged) {
|
|
16272
16254
|
const epoch = getRenderEpoch();
|
|
@@ -16277,7 +16259,6 @@ const hostConfig = {
|
|
|
16277
16259
|
}
|
|
16278
16260
|
if (oldProps.backgroundColor !== newProps.backgroundColor) bits |= 4;
|
|
16279
16261
|
if (oldProps.borderStyle && !newProps.borderStyle) bits |= 4;
|
|
16280
|
-
if (oldProps.outlineStyle && !newProps.outlineStyle) bits |= 4;
|
|
16281
16262
|
if (oldProps.theme !== newProps.theme) bits |= 4;
|
|
16282
16263
|
instance.dirtyBits = instance.dirtyEpoch !== epoch ? bits : instance.dirtyBits | bits;
|
|
16283
16264
|
instance.dirtyEpoch = epoch;
|
|
@@ -16288,13 +16269,14 @@ const hostConfig = {
|
|
|
16288
16269
|
const scrollToChanged = oldProps.scrollTo !== newProps.scrollTo;
|
|
16289
16270
|
const scrollOffsetChanged = oldProps.scrollOffset !== newProps.scrollOffset;
|
|
16290
16271
|
if (scrollToChanged || scrollOffsetChanged) trackScrollDirty(instance);
|
|
16291
|
-
if (
|
|
16272
|
+
if (layoutChanged || contentChanged || scrollToChanged || scrollOffsetChanged) {
|
|
16292
16273
|
markLayoutAncestorDirty(instance);
|
|
16293
16274
|
markSubtreeDirty(instance);
|
|
16294
16275
|
}
|
|
16295
16276
|
},
|
|
16296
16277
|
commitTextUpdate(textInstance, _oldText, newText) {
|
|
16297
16278
|
textInstance.textContent = newText;
|
|
16279
|
+
syncTextContentSignal(textInstance);
|
|
16298
16280
|
textInstance.props = { children: newText };
|
|
16299
16281
|
const epoch = getRenderEpoch();
|
|
16300
16282
|
const bits = 3;
|
|
@@ -16332,9 +16314,7 @@ const hostConfig = {
|
|
|
16332
16314
|
container.root.dirtyBits = container.root.dirtyEpoch !== epoch ? bits : container.root.dirtyBits | bits;
|
|
16333
16315
|
container.root.dirtyEpoch = epoch;
|
|
16334
16316
|
}
|
|
16335
|
-
container.root.layoutDirty = true;
|
|
16336
16317
|
container.root.layoutNode?.markDirty();
|
|
16337
|
-
trackLayoutDirty(container.root);
|
|
16338
16318
|
trackContentDirty(container.root);
|
|
16339
16319
|
markSubtreeDirty(container.root);
|
|
16340
16320
|
},
|
|
@@ -16394,9 +16374,7 @@ const hostConfig = {
|
|
|
16394
16374
|
const bits = 3;
|
|
16395
16375
|
instance.dirtyBits = instance.dirtyEpoch !== epoch ? bits : instance.dirtyBits | bits;
|
|
16396
16376
|
instance.dirtyEpoch = epoch;
|
|
16397
|
-
instance.layoutDirty = true;
|
|
16398
16377
|
if (instance.layoutNode) instance.layoutNode.markDirty();
|
|
16399
|
-
trackLayoutDirty(instance);
|
|
16400
16378
|
trackContentDirty(instance);
|
|
16401
16379
|
if (instance.parent) {
|
|
16402
16380
|
if (instance.parent.dirtyEpoch !== epoch) {
|
|
@@ -16414,9 +16392,7 @@ const hostConfig = {
|
|
|
16414
16392
|
const bits = 3;
|
|
16415
16393
|
instance.dirtyBits = instance.dirtyEpoch !== epoch ? bits : instance.dirtyBits | bits;
|
|
16416
16394
|
instance.dirtyEpoch = epoch;
|
|
16417
|
-
instance.layoutDirty = true;
|
|
16418
16395
|
if (instance.layoutNode) instance.layoutNode.markDirty();
|
|
16419
|
-
trackLayoutDirty(instance);
|
|
16420
16396
|
trackContentDirty(instance);
|
|
16421
16397
|
if (instance.parent) {
|
|
16422
16398
|
if (instance.parent.dirtyEpoch !== epoch) {
|
|
@@ -16501,6 +16477,6 @@ function getContainerRoot(container) {
|
|
|
16501
16477
|
return container.root;
|
|
16502
16478
|
}
|
|
16503
16479
|
//#endregion
|
|
16504
|
-
export {
|
|
16480
|
+
export { isWideGrapheme as $, isMouseSequence as A, bufferToText as At, displayWidth as B, keyToAnsi as Bt, enableFocusReporting as C, isPrivateUseArea as Ct, disableBracketedPaste as D, TerminalBuffer as Dt, PASTE_START as E, DEFAULT_BG as Et, IncrementalRenderMismatchError as F, createTextFrame as Ft, graphemeCount as G, parseHotkey as Gt, ensureEmojiPresentation as H, keyToModifiers as Ht, canBreakAnywhere as I, init_buffer as It, hasWideCharacters as J, splitRawInput$1 as Jt, graphemeWidth as K, parseKey as Kt, constrainText as L, isDefaultBg as Lt, createOutputPhase as M, cellEquals as Mt, outputPhase as N, colorEquals as Nt, enableBracketedPaste as O, ansi256ToRgb as Ot, setOutputCaps as P, createMutableCell as Pt, isTextSizingEnabled as Q, createMeasurer as R, emptyKey as Rt, disableFocusReporting as S, getCachedProbeResult as St, PASTE_END as T, textSized as Tt, getActiveLineHeight as U, keyToName as Ut, displayWidthAnsi as V, keyToKittyAnsi as Vt, getFirstCodePoint as W, matchHotkey as Wt, isCJK as X, hasZeroWidthCharacters as Y, isLikelyEmoji as Z, term as _, wrapText as _t, hostConfig as a, parseAnsiText as at, createTerm as b, writeTextTruncated as bt, clearDirtyTracking as c, setTextSizingEnabled as ct, collectPlainText as d, sliceByWidthRange as dt, isWordBoundary as et, advanceRenderEpoch as f, splitGraphemes as ft, isDirty as g, truncateText as gt, isCurrentEpoch as h, truncateAnsi as ht, reconciler as i, padText as it, parseMouseSequence as j, buffer_exports as jt, parseBracketedPaste as k, bufferToStyledText as kt, hasScrollDirty as l, sliceByWidth as lt, isAnyDirty as m, stripAnsi$1 as mt, createFiberRoot as n, measureText as nt, runWithDiscreteEvent as o, runWithMeasurer as ot, getRenderEpoch as p, splitGraphemesAnsiAware as pt, hasAnsi as q, parseKeypress as qt, getContainerRoot as r, normalizeText as rt, setOnNodeRemoved as s, setTextEmojiWide as st, createContainer as t, isZeroWidthGrapheme as tt, measureStats as u, sliceByWidthFromEnd as ut, createOutputGuard as v, writeLinesToBuffer as vt, parseFocusEvent as w, isTextSizingLikelySupported as wt, createTermProvider as x, detectTextSizingSupport as xt, patchConsole as y, writeTextToBuffer as yt, createWidthMeasurer as z, isModifierOnlyEvent as zt };
|
|
16505
16481
|
|
|
16506
|
-
//# sourceMappingURL=reconciler-
|
|
16482
|
+
//# sourceMappingURL=reconciler-B8uxQxaU.mjs.map
|